diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml
new file mode 100644
index 0000000..2b63946
--- /dev/null
+++ b/.idea/uiDesigner.xml
@@ -0,0 +1,124 @@
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/java/eu/m724/jarupdater/download/Downloader.java b/src/main/java/eu/m724/jarupdater/download/Downloader.java
index d573f0f..d07437d 100644
--- a/src/main/java/eu/m724/jarupdater/download/Downloader.java
+++ b/src/main/java/eu/m724/jarupdater/download/Downloader.java
@@ -6,16 +6,16 @@ import java.util.concurrent.CompletableFuture;
public interface Downloader {
/**
* downloads a file and verifies it
- * @param url
- * @param sha256hex
+ * @param url the file url to download from
+ * @param sha256hex the sha256 hash to verify
* @return a future which can throw ioexception or signatureexception
*/
CompletableFuture downloadAndVerify(String url, String sha256hex);
/**
* moves source into destination
- * @param source
- * @param destination
+ * @param source source file
+ * @param destination destination file (path)
* @return a future which can throw ioexception
*/
CompletableFuture install(File source, File destination);
diff --git a/src/main/java/eu/m724/jarupdater/environment/ConstantEnvironment.java b/src/main/java/eu/m724/jarupdater/environment/ConstantEnvironment.java
index d32a3a8..b52cb0b 100644
--- a/src/main/java/eu/m724/jarupdater/environment/ConstantEnvironment.java
+++ b/src/main/java/eu/m724/jarupdater/environment/ConstantEnvironment.java
@@ -3,9 +3,9 @@ package eu.m724.jarupdater.environment;
import java.nio.file.Path;
public class ConstantEnvironment implements Environment {
- private String runningVersion;
- private String channel;
- private Path runningJarFilePath;
+ private final String runningVersion;
+ private final String channel;
+ private final Path runningJarFilePath;
public ConstantEnvironment(String runningVersion, String channel, Path runningJarFilePath) {
this.runningVersion = runningVersion;
@@ -13,19 +13,8 @@ public class ConstantEnvironment implements Environment {
this.runningJarFilePath = runningJarFilePath;
}
- @Override
- public String getRunningVersion() {
- return runningVersion;
- }
-
- @Override
- public String getChannel() {
- return channel;
- }
-
- @Override
- public Path getRunningJarFilePath() {
- return runningJarFilePath;
- }
+ @Override public String getRunningVersion() { return runningVersion; }
+ @Override public String getChannel() { return channel; }
+ @Override public Path getRunningJarFilePath() { return runningJarFilePath; }
}
diff --git a/src/main/java/eu/m724/jarupdater/environment/Environment.java b/src/main/java/eu/m724/jarupdater/environment/Environment.java
index 9bfafcb..04b057a 100644
--- a/src/main/java/eu/m724/jarupdater/environment/Environment.java
+++ b/src/main/java/eu/m724/jarupdater/environment/Environment.java
@@ -3,7 +3,7 @@ package eu.m724.jarupdater.environment;
import java.nio.file.Path;
public interface Environment {
- public String getRunningVersion();
- public String getChannel();
- public Path getRunningJarFilePath();
+ String getRunningVersion();
+ String getChannel();
+ Path getRunningJarFilePath();
}
diff --git a/src/main/java/eu/m724/jarupdater/live/GiteaMetadataDAO.java b/src/main/java/eu/m724/jarupdater/live/GiteaMetadataDAO.java
index f688975..c0325a4 100644
--- a/src/main/java/eu/m724/jarupdater/live/GiteaMetadataDAO.java
+++ b/src/main/java/eu/m724/jarupdater/live/GiteaMetadataDAO.java
@@ -17,8 +17,8 @@ import com.google.gson.Gson;
import eu.m724.jarupdater.object.Version;
public class GiteaMetadataDAO implements MetadataDAO {
- private String url;
- private String branch;
+ private final String url;
+ private final String branch;
public GiteaMetadataDAO(String url, String branch) {
this.url = url;
@@ -29,50 +29,44 @@ public class GiteaMetadataDAO implements MetadataDAO {
@Override
public CompletableFuture> getChannels() {
String url = getFileUrl("channels.txt");
-
- CompletableFuture> channelsFuture =
- makeRequest(url).thenApply(response -> {
- if (response.statusCode() != 200)
- throw new CompletionException(new IOException("Server returned status code %d".formatted(response.statusCode())));
-
- return response.body().lines().toList();
- });
-
- return channelsFuture;
+
+ return makeRequest(url).thenApply(response -> {
+ if (response.statusCode() != 200)
+ throw new CompletionException(new IOException("Server returned status code %d".formatted(response.statusCode())));
+
+ return response.body().lines().toList();
+ });
}
@Override
public CompletableFuture getMetadata(String channel, String versionLabel) {
String url = getFileUrl(channel, versionLabel, "meta-v1.json");
-
- CompletableFuture metadataFuture =
- makeRequest(url).thenApply(response -> {
- if (response.statusCode() != 200)
- throw new CompletionException(new IOException("Server returned status code %d".formatted(response.statusCode())));
- // not throwing nosuchversionexecpion because it's not possible to tell if the server is broken or it really doesn't exist
-
- Version version = new Gson().fromJson(response.body(), Version.class);
- return version;
- });
-
- return metadataFuture;
+
+ // not throwing nosuchversionexecpion because it's not possible to tell if the server is broken or it really doesn't exist
+
+ return makeRequest(url).thenApply(response -> {
+ if (response.statusCode() != 200)
+ throw new CompletionException(new IOException("Server returned status code %d".formatted(response.statusCode())));
+ // not throwing nosuchversionexecpion because it's not possible to tell if the server is broken or it really doesn't exist
+
+ return new Gson().fromJson(response.body(), Version.class);
+ });
}
private CompletableFuture> makeRequest(String url) {
- System.out.println("Request: " + url);
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.header("User-Agent", "ju/1") // jar updater v1
.build();
-
- CompletableFuture> responseFuture =
- HttpClient.newBuilder()
+
+ HttpClient.Builder httpClientBuilder = HttpClient.newBuilder()
.followRedirects(Redirect.NORMAL)
- .proxy(ProxySelector.getDefault()).build().
- sendAsync(request, BodyHandlers.ofString());
-
- return responseFuture;
+ .proxy(ProxySelector.getDefault());
+
+ try (HttpClient httpClient = httpClientBuilder.build()) {
+ return httpClient.sendAsync(request, BodyHandlers.ofString());
+ }
}
private String getFileUrl(String... paths) {
diff --git a/src/main/java/eu/m724/jarupdater/live/MetadataDAO.java b/src/main/java/eu/m724/jarupdater/live/MetadataDAO.java
index 1c6afc2..e34f31d 100644
--- a/src/main/java/eu/m724/jarupdater/live/MetadataDAO.java
+++ b/src/main/java/eu/m724/jarupdater/live/MetadataDAO.java
@@ -14,8 +14,8 @@ public interface MetadataDAO {
/**
* get metadata of a version in channel
- * @param channel
- * @param versionLabel
+ * @param channel the channel
+ * @param versionLabel basically version number
* @return a future which can throw ioexcpeitons or nosuchfilexxception
*/
CompletableFuture getMetadata(String channel, String versionLabel);
diff --git a/src/main/java/eu/m724/jarupdater/live/MetadataFacade.java b/src/main/java/eu/m724/jarupdater/live/MetadataFacade.java
index f212601..403dccf 100644
--- a/src/main/java/eu/m724/jarupdater/live/MetadataFacade.java
+++ b/src/main/java/eu/m724/jarupdater/live/MetadataFacade.java
@@ -8,10 +8,10 @@ import eu.m724.jarupdater.environment.Environment;
import eu.m724.jarupdater.object.Version;
public class MetadataFacade {
- private Environment environment;
- private MetadataDAO metadataDao;
+ private final Environment environment;
+ private final MetadataDAO metadataDao;
- private HashMap> cache = new HashMap<>();
+ private final HashMap> cache = new HashMap<>();
private CompletableFuture> channels = null;
public MetadataFacade(Environment environment, MetadataDAO metadataDao) {
diff --git a/src/main/java/eu/m724/jarupdater/object/NoSuchVersionException.java b/src/main/java/eu/m724/jarupdater/object/NoSuchVersionException.java
index 4ead06e..fe466d6 100644
--- a/src/main/java/eu/m724/jarupdater/object/NoSuchVersionException.java
+++ b/src/main/java/eu/m724/jarupdater/object/NoSuchVersionException.java
@@ -1,9 +1,11 @@
package eu.m724.jarupdater.object;
import java.io.IOException;
+import java.io.Serial;
public class NoSuchVersionException extends IOException {
+ @Serial
private static final long serialVersionUID = 8435964987348892266L;
public NoSuchVersionException(String version) {
diff --git a/src/main/java/eu/m724/jarupdater/updater/Updater.java b/src/main/java/eu/m724/jarupdater/updater/Updater.java
index 462ca3d..497e97a 100644
--- a/src/main/java/eu/m724/jarupdater/updater/Updater.java
+++ b/src/main/java/eu/m724/jarupdater/updater/Updater.java
@@ -73,9 +73,9 @@ public class Updater {
downloaded = latestVersionFuture.thenApply(latestVersion -> {
String url = latestVersion.getFileUrl();
String hash = latestVersion.getSha256();
-
- File file = downloader.downloadAndVerify(url, hash).join();
- return file; // TODO better way of catching exception?
+
+ // TODO better way of catching exception?
+ return downloader.downloadAndVerify(url, hash).join();
});
return downloaded;