/** * Forces a check for an update and registers the listener if it is not already registered * @param updateCheckListener */ public void checkForUpdate(UpdateCheckListener updateCheckListener) { listeners.add(updateCheckListener); if (scheduler != null) { scheduler.schedule(new UpdateCheckTask(this, versionServiceUrl, productName), 0, SECONDS); } else { // the scheduler won't be provided if the service isn't actually running, // but management may still ask for a check on update new UpdateCheckTask(this, versionServiceUrl, productName).run(); } }
@Override public void start() throws Exception { // add listeners listeners.clear(); addListener(new UpdateCheckLoggingListener()); Map<String, Object> serviceSpecificObjects = serviceContext.getServiceSpecificObjects(); Object managementListener = serviceSpecificObjects.get(MANAGEMENT_UPDATE_CHECK_LISTENER); if (managementListener != null && managementListener instanceof UpdateCheckListener) { addListener((UpdateCheckListener) managementListener); } for (UpdateCheckListener listener : listeners) { listener.setUpdateCheckService(this); } scheduledTasks = scheduler.scheduleAtFixedRate(new UpdateCheckTask(this, versionServiceUrl, productName), 0, 7, DAYS); }