|
@@ -20,13 +20,13 @@ import javax.inject.Inject;
|
|
|
import javax.inject.Named;
|
|
|
import javax.inject.Singleton;
|
|
|
|
|
|
-import org.apache.commons.httpclient.HttpClient;
|
|
|
-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.lang3.SystemUtils;
|
|
|
+import org.apache.http.client.config.RequestConfig;
|
|
|
+import org.apache.http.client.methods.CloseableHttpResponse;
|
|
|
+import org.apache.http.client.methods.HttpGet;
|
|
|
+import org.apache.http.impl.client.CloseableHttpClient;
|
|
|
+import org.apache.http.impl.client.HttpClientBuilder;
|
|
|
+import org.apache.http.impl.client.HttpClients;
|
|
|
import org.cryptomator.ui.settings.Localization;
|
|
|
import org.cryptomator.ui.settings.Settings;
|
|
|
import org.cryptomator.ui.util.ApplicationVersion;
|
|
@@ -104,20 +104,30 @@ public class WelcomeController extends LocalizedFXMLViewController {
|
|
|
checkForUpdatesStatus.setText(localization.getString("welcome.checkForUpdates.label.currentlyChecking"));
|
|
|
checkForUpdatesIndicator.setVisible(true);
|
|
|
asyncTaskService.asyncTaskOf(() -> {
|
|
|
- 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);
|
|
|
- client.executeMethod(method);
|
|
|
- final InputStream responseBodyStream = method.getResponseBodyAsStream();
|
|
|
- if (method.getStatusCode() == HttpStatus.SC_OK && responseBodyStream != null) {
|
|
|
- Gson gson = new GsonBuilder().setLenient().create();
|
|
|
- Reader utf8Reader = new InputStreamReader(responseBodyStream, StandardCharsets.UTF_8);
|
|
|
- Map<String, String> map = gson.fromJson(utf8Reader, new TypeToken<Map<String, String>>() {
|
|
|
- }.getType());
|
|
|
- if (map != null) {
|
|
|
- this.compareVersions(map);
|
|
|
+ RequestConfig requestConfig = RequestConfig.custom() //
|
|
|
+ .setConnectTimeout(5000) //
|
|
|
+ .setConnectionRequestTimeout(5000) //
|
|
|
+ .setSocketTimeout(5000) //
|
|
|
+ .build();
|
|
|
+ HttpClientBuilder httpClientBuilder = HttpClients.custom() //
|
|
|
+ .disableCookieManagement() //
|
|
|
+ .setDefaultRequestConfig(requestConfig) //
|
|
|
+ .setUserAgent("Cryptomator VersionChecker/" + ApplicationVersion.orElse("SNAPSHOT"));
|
|
|
+ LOG.debug("Checking for updates...");
|
|
|
+ try (CloseableHttpClient client = httpClientBuilder.build()) {
|
|
|
+ HttpGet request = new HttpGet("https://cryptomator.org/downloads/latestVersion.json");
|
|
|
+ try (CloseableHttpResponse response = client.execute(request)) {
|
|
|
+ if (response.getStatusLine().getStatusCode() == 200 && response.getEntity() != null) {
|
|
|
+ try (InputStream in = response.getEntity().getContent()) {
|
|
|
+ Gson gson = new GsonBuilder().setLenient().create();
|
|
|
+ Reader utf8Reader = new InputStreamReader(in, StandardCharsets.UTF_8);
|
|
|
+ Map<String, String> map = gson.fromJson(utf8Reader, new TypeToken<Map<String, String>>() {
|
|
|
+ }.getType());
|
|
|
+ if (map != null) {
|
|
|
+ this.compareVersions(map);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}).andFinally(() -> {
|
|
@@ -139,7 +149,7 @@ public class WelcomeController extends LocalizedFXMLViewController {
|
|
|
return;
|
|
|
}
|
|
|
final String currentVersion = ApplicationVersion.orElse(null);
|
|
|
- LOG.debug("Current version: {}, lastest version: {}", currentVersion, latestVersion);
|
|
|
+ LOG.info("Current version: {}, lastest version: {}", currentVersion, latestVersion);
|
|
|
if (currentVersion != null && semVerComparator.compare(currentVersion, latestVersion) < 0) {
|
|
|
final String msg = String.format(localization.getString("welcome.newVersionMessage"), latestVersion, currentVersion);
|
|
|
Platform.runLater(() -> {
|