Browse Source

report client version in user agent header during update checks [ci skip]

Sebastian Stenzel 9 years ago
parent
commit
8784115c75

+ 2 - 1
main/filesystem-inmemory/src/main/java/org/cryptomator/filesystem/inmem/InMemoryNode.java

@@ -8,6 +8,7 @@
  *******************************************************************************/
 package org.cryptomator.filesystem.inmem;
 
+import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.UncheckedIOException;
 import java.time.Instant;
@@ -47,7 +48,7 @@ class InMemoryNode implements Node {
 	@Override
 	public Instant lastModified() {
 		if (!exists()) {
-			throw new UncheckedIOException(new IOException("File does not exist"));
+			throw new UncheckedIOException(new FileNotFoundException("File does not exist"));
 		}
 		return lastModified;
 	}

+ 8 - 1
main/ui/src/main/java/org/cryptomator/ui/controllers/WelcomeController.java

@@ -14,6 +14,7 @@ import java.net.URL;
 import java.util.Comparator;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.Optional;
 import java.util.ResourceBundle;
 import java.util.concurrent.ExecutorService;
 
@@ -26,6 +27,7 @@ import org.apache.commons.httpclient.HttpMethod;
 import org.apache.commons.httpclient.HttpStatus;
 import org.apache.commons.httpclient.cookie.CookiePolicy;
 import org.apache.commons.httpclient.methods.GetMethod;
+import org.apache.commons.httpclient.params.HttpClientParams;
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.lang3.SystemUtils;
 import org.cryptomator.ui.settings.Settings;
@@ -138,6 +140,7 @@ public class WelcomeController extends AbstractFXMLViewController {
 		});
 		final HttpClient client = new HttpClient();
 		final HttpMethod method = new GetMethod("https://cryptomator.org/downloads/latestVersion.json");
+		client.getParams().setParameter(HttpClientParams.USER_AGENT, "Cryptomator VersionChecker/" + applicationVersion().orElse("SNAPSHOT"));
 		client.getParams().setCookiePolicy(CookiePolicy.IGNORE_COOKIES);
 		client.getParams().setConnectionManagerTimeout(5000);
 		try {
@@ -161,6 +164,10 @@ public class WelcomeController extends AbstractFXMLViewController {
 		}
 	}
 
+	private Optional<String> applicationVersion() {
+		return Optional.ofNullable(getClass().getPackage().getImplementationVersion());
+	}
+
 	private void compareVersions(final Map<String, String> latestVersions) {
 		final String latestVersion;
 		if (SystemUtils.IS_OS_MAC_OSX) {
@@ -173,7 +180,7 @@ public class WelcomeController extends AbstractFXMLViewController {
 			// no version check possible on unsupported OS
 			return;
 		}
-		final String currentVersion = WelcomeController.class.getPackage().getImplementationVersion();
+		final String currentVersion = applicationVersion().orElse(null);
 		LOG.debug("Current version: {}, lastest version: {}", currentVersion, latestVersion);
 		if (currentVersion != null && semVerComparator.compare(currentVersion, latestVersion) < 0) {
 			final String msg = String.format(resourceBundle.getString("welcome.newVersionMessage"), latestVersion, currentVersion);