diff options
Diffstat (limited to 'src/net/java/sip/communicator')
4 files changed, 76 insertions, 8 deletions
diff --git a/src/net/java/sip/communicator/impl/sparkle/SparkleActivator.java b/src/net/java/sip/communicator/impl/sparkle/SparkleActivator.java index 8a98b5f..80477e3 100644 --- a/src/net/java/sip/communicator/impl/sparkle/SparkleActivator.java +++ b/src/net/java/sip/communicator/impl/sparkle/SparkleActivator.java @@ -7,6 +7,8 @@ package net.java.sip.communicator.impl.sparkle; import org.osgi.framework.*; + +import net.java.sip.communicator.service.configuration.*; import net.java.sip.communicator.util.*; /** @@ -23,16 +25,31 @@ public class SparkleActivator private static Logger logger = Logger.getLogger(SparkleActivator.class); /** + * A reference to the ConfigurationService implementation instance that + * is currently registered with the bundle context. + */ + private static ConfigurationService configurationService = null; + + /** + * The current BundleContext. + */ + private static BundleContext bundleContext = null; + + /** * Native method declaration * * @param pathToSparkleFramework the path to the Sparkle framerok * @param updateAtStartup specifies whether Sparkle should be checking for * updates on startup. * @param checkInterval specifies an interval for the update checks. + * @param downloadLink a custom download link for sparkle (i.e. the + * SUFeedURL). If null the default URL will be choosen (the + * SUFeedURL parameter in the .app/Contents/Info.pList). */ public native static void initSparkle(String pathToSparkleFramework, boolean updateAtStartup, - int checkInterval); + int checkInterval, + String downloadLink); /** * Whether updates are checked at startup @@ -51,6 +68,12 @@ public class SparkleActivator private static boolean sparkleLibLoaded = false; /** + * Property name for the update link in the configuration file. + */ + private static final String PROP_UPDATE_LINK = + "net.java.sip.communicator.UPDATE_LINK"; + + /** * Initialize and start Sparkle * * @param bundleContext BundleContext @@ -58,6 +81,8 @@ public class SparkleActivator */ public void start(BundleContext bundleContext) throws Exception { + this.bundleContext = bundleContext; + /** * Dynamically loads JNI object. Will fail if non-MacOSX * or when libinit_sparkle.dylib is outside of the LD_LIBRARY_PATH @@ -79,10 +104,14 @@ public class SparkleActivator return; } + String downloadLink = getConfigurationService().getString( + PROP_UPDATE_LINK); + + System.out.println("download link is: " + downloadLink); // TODO: better way to get the Sparkle Framework path? initSparkle(System.getProperty("user.dir") + "/../../Frameworks/Sparkle.framework", - updateAtStartup, checkInterval); + updateAtStartup, checkInterval, downloadLink); if (logger.isInfoEnabled()) logger.info("Sparkle Plugin ...[Started]"); } @@ -97,7 +126,28 @@ public class SparkleActivator */ public void stop(BundleContext bundleContext) throws Exception { + bundleContext = null; if (logger.isInfoEnabled()) logger.info("Sparkle Plugin ...[Stopped]"); } + + /** + * Returns a reference to a ConfigurationService implementation currently + * registered in the bundle context or null if no such implementation was + * found. + * + * @return a currently valid implementation of the ConfigurationService. + */ + public static ConfigurationService getConfigurationService() + { + if (configurationService == null) + { + ServiceReference confReference + = bundleContext.getServiceReference( + ConfigurationService.class.getName()); + configurationService + = (ConfigurationService)bundleContext.getService(confReference); + } + return configurationService; + } } diff --git a/src/net/java/sip/communicator/impl/sparkle/sparkle.manifest.mf b/src/net/java/sip/communicator/impl/sparkle/sparkle.manifest.mf index 2bfc04d..a905b84 100644 --- a/src/net/java/sip/communicator/impl/sparkle/sparkle.manifest.mf +++ b/src/net/java/sip/communicator/impl/sparkle/sparkle.manifest.mf @@ -5,4 +5,5 @@ Bundle-Vendor: sip-communicator.org Bundle-Version: 0.0.1 System-Bundle: yes Import-Package: org.osgi.framework, + net.java.sip.communicator.service.configuration, net.java.sip.communicator.util diff --git a/src/net/java/sip/communicator/plugin/updatechecker/Resources.java b/src/net/java/sip/communicator/plugin/updatechecker/Resources.java index 31db17b..f845bd1 100644 --- a/src/net/java/sip/communicator/plugin/updatechecker/Resources.java +++ b/src/net/java/sip/communicator/plugin/updatechecker/Resources.java @@ -39,7 +39,8 @@ public class Resources if (!configPropsFile.exists()) { if (logger.isInfoEnabled()) - logger.info("No config file specified for update checker. Disabling update checks"); + logger.info("No config file specified for update checker." + + " Disabling update checks"); return null; } diff --git a/src/net/java/sip/communicator/plugin/updatechecker/UpdateCheckActivator.java b/src/net/java/sip/communicator/plugin/updatechecker/UpdateCheckActivator.java index 74b8fdc..1dc5128 100644 --- a/src/net/java/sip/communicator/plugin/updatechecker/UpdateCheckActivator.java +++ b/src/net/java/sip/communicator/plugin/updatechecker/UpdateCheckActivator.java @@ -72,6 +72,12 @@ public class UpdateCheckActivator private static final String UPDATECHECKER_ENABLED = "net.java.sip.communicator.plugin.updatechecker.ENABLED"; + /** + * Property name for the update link in the configuration file. + */ + private static final String PROP_UPDATE_LINK = + "net.java.sip.communicator.UPDATE_LINK"; + static { removeDownloadRestrictions(); @@ -237,7 +243,15 @@ public class UpdateCheckActivator net.java.sip.communicator.service.version.Version ver = verService.getCurrentVersion(); - String configString = Resources.getConfigString("update_link"); + String configString = null; + + configString = getConfigurationService().getString( + PROP_UPDATE_LINK); + + if(configString == null) + { + configString = Resources.getConfigString("update_link"); + } if(configString == null) { @@ -283,6 +297,8 @@ public class UpdateCheckActivator { final JDialog dialog = new SIPCommDialog() { + private static final long serialVersionUID = 0L; + protected void close(boolean isEscaped) { } @@ -695,9 +711,7 @@ public class UpdateCheckActivator { public void run() { - String osName = System.getProperty("os.name"); - - if (osName.startsWith("Windows")) + if (OSUtils.IS_WINDOWS) { // register update button Hashtable<String, String> toolsMenuFilter @@ -715,7 +729,7 @@ public class UpdateCheckActivator if(isNewestVersion()) return; - if (osName.startsWith("Windows")) + if (OSUtils.IS_WINDOWS) { windowsUpdaterShow(); return; @@ -723,6 +737,8 @@ public class UpdateCheckActivator final JDialog dialog = new SIPCommDialog() { + private static final long serialVersionUID = 0L; + protected void close(boolean isEscaped) { } |