diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c3e254426..a92e032eb 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -175,6 +175,7 @@ jobs: --copyright "(C) 2016 - 2021 Skymatic GmbH" --java-options "-Xss5m" --java-options "-Xmx256m" + --java-options "-Dcryptomator.appVersion=\"${{ needs.metadata.outputs.versionStr }}\"" ${{ matrix.jpackageoptions }} - name: Create appdir.tar run: tar -cvf appdir.tar appdir diff --git a/src/main/java/org/cryptomator/common/Environment.java b/src/main/java/org/cryptomator/common/Environment.java index 3cd691fae..bec4a2986 100644 --- a/src/main/java/org/cryptomator/common/Environment.java +++ b/src/main/java/org/cryptomator/common/Environment.java @@ -38,6 +38,7 @@ public class Environment { LOG.debug("cryptomator.logDir: {}", System.getProperty("cryptomator.logDir")); LOG.debug("cryptomator.mountPointsDir: {}", System.getProperty("cryptomator.mountPointsDir")); LOG.debug("cryptomator.minPwLength: {}", System.getProperty("cryptomator.minPwLength")); + LOG.debug("cryptomator.appVersion: {}", System.getProperty("cryptomator.appVersion")); LOG.debug("cryptomator.buildNumber: {}", System.getProperty("cryptomator.buildNumber")); LOG.debug("cryptomator.showTrayIcon: {}", System.getProperty("cryptomator.showTrayIcon")); LOG.debug("fuse.experimental: {}", Boolean.getBoolean("fuse.experimental")); @@ -67,6 +68,10 @@ public class Environment { return getPath("cryptomator.mountPointsDir").map(this::replaceHomeDir); } + public Optional getAppVersion() { + return Optional.ofNullable(System.getProperty("cryptomator.appVersion")); + } + public Optional getBuildNumber() { return Optional.ofNullable(System.getProperty("cryptomator.buildNumber")); } diff --git a/src/main/java/org/cryptomator/launcher/Cryptomator.java b/src/main/java/org/cryptomator/launcher/Cryptomator.java index 18a748fd8..5502d804a 100644 --- a/src/main/java/org/cryptomator/launcher/Cryptomator.java +++ b/src/main/java/org/cryptomator/launcher/Cryptomator.java @@ -38,18 +38,16 @@ public class Cryptomator { private final DebugMode debugMode; private final Environment env; private final Lazy ipcMessageHandler; - private final Optional applicationVersion; private final CountDownLatch shutdownLatch; private final ShutdownHook shutdownHook; private final Lazy uiLauncher; @Inject - Cryptomator(LoggerConfiguration logConfig, DebugMode debugMode, Environment env, Lazy ipcMessageHandler, @Named("applicationVersion") Optional applicationVersion, @Named("shutdownLatch") CountDownLatch shutdownLatch, ShutdownHook shutdownHook, Lazy uiLauncher) { + Cryptomator(LoggerConfiguration logConfig, DebugMode debugMode, Environment env, Lazy ipcMessageHandler, @Named("shutdownLatch") CountDownLatch shutdownLatch, ShutdownHook shutdownHook, Lazy uiLauncher) { this.logConfig = logConfig; this.debugMode = debugMode; this.env = env; this.ipcMessageHandler = ipcMessageHandler; - this.applicationVersion = applicationVersion; this.shutdownLatch = shutdownLatch; this.shutdownHook = shutdownHook; this.uiLauncher = uiLauncher; @@ -69,7 +67,7 @@ public class Cryptomator { */ private int run(String[] args) { logConfig.init(); - LOG.info("Starting Cryptomator {} on {} {} ({})", applicationVersion.orElse("SNAPSHOT"), SystemUtils.OS_NAME, SystemUtils.OS_VERSION, SystemUtils.OS_ARCH); + LOG.info("Starting Cryptomator {} on {} {} ({})", env.getAppVersion().orElse("SNAPSHOT"), SystemUtils.OS_NAME, SystemUtils.OS_VERSION, SystemUtils.OS_ARCH); debugMode.initialize(); /* diff --git a/src/main/java/org/cryptomator/launcher/CryptomatorModule.java b/src/main/java/org/cryptomator/launcher/CryptomatorModule.java index 4afe332b6..906971492 100644 --- a/src/main/java/org/cryptomator/launcher/CryptomatorModule.java +++ b/src/main/java/org/cryptomator/launcher/CryptomatorModule.java @@ -18,11 +18,4 @@ class CryptomatorModule { return new CountDownLatch(1); } - @Provides - @Singleton - @Named("applicationVersion") - static Optional provideApplicationVersion() { - return Optional.ofNullable(Cryptomator.class.getPackage().getImplementationVersion()); - } - } diff --git a/src/main/java/org/cryptomator/ui/fxapp/UpdateChecker.java b/src/main/java/org/cryptomator/ui/fxapp/UpdateChecker.java index d68521b6d..729791356 100644 --- a/src/main/java/org/cryptomator/ui/fxapp/UpdateChecker.java +++ b/src/main/java/org/cryptomator/ui/fxapp/UpdateChecker.java @@ -1,5 +1,6 @@ package org.cryptomator.ui.fxapp; +import org.cryptomator.common.Environment; import org.cryptomator.common.settings.Settings; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -31,9 +32,9 @@ public class UpdateChecker { private final ScheduledService updateCheckerService; @Inject - UpdateChecker(Settings settings, @Named("applicationVersion") Optional applicationVersion, @Named("latestVersion") StringProperty latestVersionProperty, @Named("SemVer") Comparator semVerComparator, ScheduledService updateCheckerService) { + UpdateChecker(Settings settings, Environment env, @Named("latestVersion") StringProperty latestVersionProperty, @Named("SemVer") Comparator semVerComparator, ScheduledService updateCheckerService) { this.settings = settings; - this.applicationVersion = applicationVersion; + this.applicationVersion = env.getAppVersion(); this.latestVersionProperty = latestVersionProperty; this.semVerComparator = semVerComparator; this.updateCheckerService = updateCheckerService; diff --git a/src/main/java/org/cryptomator/ui/fxapp/UpdateCheckerModule.java b/src/main/java/org/cryptomator/ui/fxapp/UpdateCheckerModule.java index ef8621f3b..8c9f7fb20 100644 --- a/src/main/java/org/cryptomator/ui/fxapp/UpdateCheckerModule.java +++ b/src/main/java/org/cryptomator/ui/fxapp/UpdateCheckerModule.java @@ -3,6 +3,7 @@ package org.cryptomator.ui.fxapp; import dagger.Module; import dagger.Provides; import org.apache.commons.lang3.SystemUtils; +import org.cryptomator.common.Environment; import org.cryptomator.common.settings.Settings; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -51,9 +52,9 @@ public abstract class UpdateCheckerModule { @Provides @FxApplicationScoped - static HttpRequest provideCheckForUpdatesRequest(@Named("applicationVersion") Optional applicationVersion) { + static HttpRequest provideCheckForUpdatesRequest(Environment env) { String userAgent = String.format("Cryptomator VersionChecker/%s %s %s (%s)", // - applicationVersion.orElse("SNAPSHOT"), // + env.getAppVersion().orElse("SNAPSHOT"), // SystemUtils.OS_NAME, // SystemUtils.OS_VERSION, // SystemUtils.OS_ARCH); //