diff --git a/pom.xml b/pom.xml index 028d4e0b3490679de4956e50e419a4e14707ddeb..f80fb950e20e89d52579cfb31c96ab2ecc0d8e3e 100644 --- a/pom.xml +++ b/pom.xml @@ -57,7 +57,7 @@ <java.version>1.8</java.version> <jlibs.version>2.0.4</jlibs.version> - <versionizer.version>1.0.3</versionizer.version> + <versionizer.version>1.1.0</versionizer.version> <webjars-locator.version>0.36</webjars-locator.version> <jquery.version>3.3.1</jquery.version> <materializecss.version>1.0.0</materializecss.version> @@ -183,6 +183,8 @@ <artifactId>sortablejs</artifactId> <version>${sortablejs.version}</version> </dependency> + + <!-- selenium --> <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-api</artifactId> diff --git a/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsController.java b/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsController.java index 4343b87711c05c253d33d5e851e9c5d24ccbef16..1ba5be5d52b6c547f8a40957036b2d7a7052447d 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsController.java +++ b/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsController.java @@ -283,7 +283,7 @@ public class SettingsController extends BaseController return "redirect:/settings"; } - UpdateItem.Entry entry = new UpdateItem.Entry(budgetMasterUpdateService.getAvailableVersion(), budgetMasterUpdateService.getExecutablePath(), budgetMasterUpdateService.getFileType()); + UpdateItem.Entry entry = new UpdateItem.Entry(budgetMasterUpdateService.getAvailableVersion()); try { budgetMasterUpdateService.getUpdateService().runVersionizerInstance(entry); diff --git a/src/main/java/de/deadlocker8/budgetmaster/update/BudgetMasterUpdateService.java b/src/main/java/de/deadlocker8/budgetmaster/update/BudgetMasterUpdateService.java index bbbc67a8bb6a02098eec50d40d3848da0a2ff9ef..246210ba7cba768439450156ca50124bbdc1c5ff 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/update/BudgetMasterUpdateService.java +++ b/src/main/java/de/deadlocker8/budgetmaster/update/BudgetMasterUpdateService.java @@ -5,6 +5,7 @@ import de.deadlocker8.budgetmaster.Main; import de.deadlocker8.budgetmaster.settings.SettingsService; import de.thecodelabs.storage.settings.Storage; import de.thecodelabs.storage.settings.StorageTypes; +import de.thecodelabs.utils.util.SystemUtils; import de.thecodelabs.versionizer.VersionizerItem; import de.thecodelabs.versionizer.config.Artifact; import de.thecodelabs.versionizer.config.Repository; @@ -21,6 +22,7 @@ import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Service; import java.io.File; +import java.nio.file.Paths; @Service public class BudgetMasterUpdateService @@ -51,6 +53,9 @@ public class BudgetMasterUpdateService updateStrategy = UpdateService.Strategy.JAR; fileType = RemoteFile.FileType.JAR; + SystemUtils.setIsJarHook(new IsJarFileHook()); + SystemUtils.setIsExeHook(new IsExeFileHook()); + if(source != null) { isRunningFromSource = false; @@ -86,6 +91,7 @@ public class BudgetMasterUpdateService artifact.setVersion(Build.getInstance().getVersionName()); artifact.setGroupId("de.deadlocker8"); artifact.setArtifactId("BudgetMaster"); + artifact.setArtifactType(Artifact.ArtifactType.RUNTIME); return artifact; } @@ -95,8 +101,13 @@ public class BudgetMasterUpdateService ClassLoader classLoader = Main.class.getClassLoader(); Repository repository = Storage.load(classLoader.getResourceAsStream("repositories.json"), StorageTypes.JSON, Repository.class); - VersionizerItem versionizerItem = new VersionizerItem(repository, artifact, executablePath); - return UpdateService.startVersionizer(versionizerItem, updateStrategy, UpdateService.InteractionType.HEADLESS, UpdateService.RepositoryType.RELEASE); + VersionizerItem versionizerItem = new VersionizerItem(repository, executablePath); + UpdateService updateService = UpdateService.startVersionizer(versionizerItem, updateStrategy, UpdateService.InteractionType.HEADLESS, UpdateService.RepositoryType.RELEASE); + if(executablePath != null) + { + updateService.addArtifact(artifact, Paths.get(executablePath)); + } + return updateService; } public UpdateService getUpdateService() diff --git a/src/main/java/de/deadlocker8/budgetmaster/update/IsExeFileHook.java b/src/main/java/de/deadlocker8/budgetmaster/update/IsExeFileHook.java new file mode 100644 index 0000000000000000000000000000000000000000..b094cca606f2a0106041c436bd84649780cebed5 --- /dev/null +++ b/src/main/java/de/deadlocker8/budgetmaster/update/IsExeFileHook.java @@ -0,0 +1,22 @@ +package de.deadlocker8.budgetmaster.update; + +import de.thecodelabs.utils.util.SystemUtils; +import org.springframework.boot.ApplicationHome; + +import java.io.File; + +public class IsExeFileHook implements SystemUtils.SystemFileHook +{ + @Override + public boolean isFileType() + { + File source = new ApplicationHome().getSource(); + if(source == null) + { + return false; + } + + String sourcePath = source.getAbsolutePath(); + return sourcePath.endsWith(".exe") || sourcePath.endsWith(".EXE"); + } +} diff --git a/src/main/java/de/deadlocker8/budgetmaster/update/IsJarFileHook.java b/src/main/java/de/deadlocker8/budgetmaster/update/IsJarFileHook.java new file mode 100644 index 0000000000000000000000000000000000000000..6391736b432514eb5c85ae7a25032779bf6ee719 --- /dev/null +++ b/src/main/java/de/deadlocker8/budgetmaster/update/IsJarFileHook.java @@ -0,0 +1,22 @@ +package de.deadlocker8.budgetmaster.update; + +import de.thecodelabs.utils.util.SystemUtils; +import org.springframework.boot.ApplicationHome; + +import java.io.File; + +public class IsJarFileHook implements SystemUtils.SystemFileHook +{ + @Override + public boolean isFileType() + { + File source = new ApplicationHome().getSource(); + if(source == null) + { + return false; + } + + String sourcePath = source.getAbsolutePath(); + return sourcePath.endsWith(".jar") || sourcePath.endsWith(".JAR"); + } +}