some event stuff.. (incomplete?)
Project: http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/commit/fff5de51 Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/tree/fff5de51 Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/diff/fff5de51 Branch: refs/heads/master Commit: fff5de51c19adfcf83b4dab3973ff6c846bbcdc7 Parents: a3483f5 Author: Stian Soiland-Reyes <[email protected]> Authored: Fri Oct 21 13:09:44 2016 +0200 Committer: Stian Soiland-Reyes <[email protected]> Committed: Fri Oct 21 13:09:44 2016 +0200 ---------------------------------------------------------------------- .../spring/perspective-results-context-osgi.xml | 2 +- .../plugins/ui/CheckForUpdatesStartupHook.java | 62 ++++++++++++-------- .../spring/plugins-gui-context-osgi.xml | 11 +++- .../META-INF/spring/plugins-gui-context.xml | 6 +- 4 files changed, 55 insertions(+), 26 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/fff5de51/taverna-perspective-results/src/main/resources/META-INF/spring/perspective-results-context-osgi.xml ---------------------------------------------------------------------- diff --git a/taverna-perspective-results/src/main/resources/META-INF/spring/perspective-results-context-osgi.xml b/taverna-perspective-results/src/main/resources/META-INF/spring/perspective-results-context-osgi.xml index d6ec0be..41ccc36 100644 --- a/taverna-perspective-results/src/main/resources/META-INF/spring/perspective-results-context-osgi.xml +++ b/taverna-perspective-results/src/main/resources/META-INF/spring/perspective-results-context-osgi.xml @@ -27,7 +27,7 @@ <service ref="ResultsPerspective" auto-export="interfaces"> <service-properties value-type="java.lang.String[]"> <beans:entry key="event.topics" - value="uk/org/taverna/platform/run/RunService/*" /> + value="org/apache/taverna/platform/run/api/RunService/*" /> </service-properties> </service> http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/fff5de51/taverna-plugins-gui/src/main/java/org/apache/taverna/raven/plugins/ui/CheckForUpdatesStartupHook.java ---------------------------------------------------------------------- diff --git a/taverna-plugins-gui/src/main/java/org/apache/taverna/raven/plugins/ui/CheckForUpdatesStartupHook.java b/taverna-plugins-gui/src/main/java/org/apache/taverna/raven/plugins/ui/CheckForUpdatesStartupHook.java index 725f789..75d8424 100644 --- a/taverna-plugins-gui/src/main/java/org/apache/taverna/raven/plugins/ui/CheckForUpdatesStartupHook.java +++ b/taverna-plugins-gui/src/main/java/org/apache/taverna/raven/plugins/ui/CheckForUpdatesStartupHook.java @@ -19,10 +19,14 @@ package org.apache.taverna.raven.plugins.ui; import java.io.File; import java.util.Date; -import uk.org.taverna.commons.plugin.PluginManager; -import uk.org.taverna.configuration.app.ApplicationConfiguration; - +import org.apache.log4j.Logger; +import org.apache.taverna.configuration.app.ApplicationConfiguration; +import org.apache.taverna.plugin.PluginException; +import org.apache.taverna.plugin.PluginManager; import org.apache.taverna.workbench.StartupSPI; +import org.osgi.service.event.Event; +import org.osgi.service.event.EventAdmin; +import org.osgi.service.event.EventHandler; /** * Startup hook for checking if there are available updates for Taverna plugins. @@ -31,24 +35,31 @@ import org.apache.taverna.workbench.StartupSPI; * @author Stian Soiland-Reyes * */ -public class CheckForUpdatesStartupHook implements StartupSPI { +public class CheckForUpdatesStartupHook implements StartupSPI, EventHandler { + + public void setPluginManager(PluginManager pluginManager) { + this.pluginManager = pluginManager; + } + + public void setApplicationConfiguration(ApplicationConfiguration applicationConfiguration) { + this.applicationConfiguration = applicationConfiguration; + } public static final String CHECK_FOR_UPDATES_DIRECTORY_NAME = "updates"; public static final String LAST_UPDATE_CHECK_FILE_NAME = "last_update_check"; + private EventAdmin eventAdmin; private PluginManager pluginManager; private ApplicationConfiguration applicationConfiguration; - - public static File checkForUpdatesDirectory = getCheckForUpdatesDirectory(); - public static File lastUpdateCheckFile = new File(checkForUpdatesDirectory, - LAST_UPDATE_CHECK_FILE_NAME); + private Logger logger = Logger.getLogger(CheckForUpdatesStartupHook.class); public int positionHint() { return 90; } public boolean startup() { - + File lastUpdateCheckFile = new File(getCheckForUpdatesDirectory(), + LAST_UPDATE_CHECK_FILE_NAME); // Check if more than 2 weeks passed since we checked for updates. if (lastUpdateCheckFile.exists()) { long lastModified = lastUpdateCheckFile.lastModified(); @@ -56,30 +67,26 @@ public class CheckForUpdatesStartupHook implements StartupSPI { if (now - lastModified < 14 * 24 * 3600 * 1000) { // 2 weeks have not passed since we // last asked + // No need to check for updates yet return true; - } else { // Check again for updates - if (pluginManager.checkForUpdates()) { - CheckForUpdatesDialog dialog = new CheckForUpdatesDialog(); - dialog.setVisible(true); - } - return true; - } - } else { - // If we are here - then this is the first time to check for updates - if (pluginManager.checkForUpdates()) { - CheckForUpdatesDialog dialog = new CheckForUpdatesDialog(); - dialog.setVisible(true); } - return true; } + try { + pluginManager.checkForUpdates(); + } catch (PluginException e) { + logger.error("Can't check for updates", e); + return false; + } + return true; } + /** * Gets the registration directory where info about registration will be saved to. */ public File getCheckForUpdatesDirectory() { - File home = applicationConfiguration.getApplicationHomeDir(); + File home = applicationConfiguration.getApplicationHomeDir().toFile(); File registrationDirectory = new File(home, CHECK_FOR_UPDATES_DIRECTORY_NAME); if (!registrationDirectory.exists()) { @@ -87,4 +94,13 @@ public class CheckForUpdatesStartupHook implements StartupSPI { } return registrationDirectory; } + + @Override + public void handleEvent(Event event) { + // TODO: Handle Plug + if (event.getTopic().equals(PluginManager.UPDATES_AVAILABLE) { + CheckForUpdatesDialog dialog = new CheckForUpdatesDialog(); + dialog.setVisible(true); + } + } } http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/fff5de51/taverna-plugins-gui/src/main/resources/META-INF/spring/plugins-gui-context-osgi.xml ---------------------------------------------------------------------- diff --git a/taverna-plugins-gui/src/main/resources/META-INF/spring/plugins-gui-context-osgi.xml b/taverna-plugins-gui/src/main/resources/META-INF/spring/plugins-gui-context-osgi.xml index e10ffa6..566a170 100644 --- a/taverna-plugins-gui/src/main/resources/META-INF/spring/plugins-gui-context-osgi.xml +++ b/taverna-plugins-gui/src/main/resources/META-INF/spring/plugins-gui-context-osgi.xml @@ -24,6 +24,15 @@ http://www.springframework.org/schema/osgi http://www.springframework.org/schema/osgi/spring-osgi.xsd"> - <service ref="CheckForUpdatesStartupHook" interface="org.apache.taverna.workbench.StartupSPI" /> + <service ref="CheckForUpdatesStartupHook" auto-export="interfaces"> + <service-properties value-type="java.lang.String[]"> + <beans:entry key="event.topics" + value="org/apache/taverna/platform/run/api/RunService/*" /> + </service-properties> + </service> + <reference id="eventAdmin" interface="org.osgi.service.event.EventAdmin" /> + <reference id="pluginManager" interface="org.apache.taverna.plugin.PluginManager" /> + <reference id="applicationConfiguration" interface="org.apache.taverna.configuration.app.ApplicationConfiguration" /> + </beans:beans> http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/fff5de51/taverna-plugins-gui/src/main/resources/META-INF/spring/plugins-gui-context.xml ---------------------------------------------------------------------- diff --git a/taverna-plugins-gui/src/main/resources/META-INF/spring/plugins-gui-context.xml b/taverna-plugins-gui/src/main/resources/META-INF/spring/plugins-gui-context.xml index 7610e16..7900c3f 100644 --- a/taverna-plugins-gui/src/main/resources/META-INF/spring/plugins-gui-context.xml +++ b/taverna-plugins-gui/src/main/resources/META-INF/spring/plugins-gui-context.xml @@ -21,6 +21,10 @@ xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> - <bean id="CheckForUpdatesStartupHook" class="net.sf.taverna.raven.plugins.ui.CheckForUpdatesStartupHook" /> + <bean id="CheckForUpdatesStartupHook" class="net.sf.taverna.raven.plugins.ui.CheckForUpdatesStartupHook"> + <property name="eventAdmin" ref="eventAdmin" /> + <property name="pluginManager" ref="pluginManager" /> + <property name="applicationConfiguration" ref="applicationConfiguration" /> + </bean> </beans>
