diff --git a/backend/main/java/de/griefed/serverpackcreator/Main.java b/backend/main/java/de/griefed/serverpackcreator/Main.java index ed2fa71b5..a8f8a1d83 100644 --- a/backend/main/java/de/griefed/serverpackcreator/Main.java +++ b/backend/main/java/de/griefed/serverpackcreator/Main.java @@ -145,12 +145,6 @@ public static void main(String[] args) { LOG.info(String.format(LOCALIZATIONMANAGER.getLocalizedString("main.log.info.system.osversion"), systemInformation.get("osVersion"))); LOG.info(LOCALIZATIONMANAGER.getLocalizedString("main.log.info.system.include")); - String updater = new UpdateChecker(LOCALIZATIONMANAGER, APPLICATIONPROPERTIES).checkForUpdate(); - - if (!updater.equals(LOCALIZATIONMANAGER.getLocalizedString("updates.log.info.none"))) { - LOG.info(String.format(LOCALIZATIONMANAGER.getLocalizedString("main.log.info.newupdate"), updater.split(";")[0], updater.split(";")[1])); - } - // Print help and information about ServerPackCreator which could help the user figure out what to do. if (Arrays.asList(args).contains("-help")) { LOG.debug("Issued printing of help."); @@ -213,69 +207,84 @@ public static void main(String[] args) { } else { - regular(APPLICATIONPROPERTIES, LOCALIZATIONMANAGER, DEFAULTFILES, args, updater); + regular(APPLICATIONPROPERTIES, LOCALIZATIONMANAGER, args); } } - private static void regular(ApplicationProperties applicationProperties, LocalizationManager localizationManager, DefaultFiles defaultFiles, String[] args, String updater) { + private static void regular(ApplicationProperties APPLICATIONPROPERTIES, LocalizationManager LOCALIZATIONMANAGER, String[] args) { ListUtilities LISTUTILITIES = new ListUtilities(); StringUtilities STRINGUTILITIES = new StringUtilities(); SystemUtilities SYSTEMUTILITIES = new SystemUtilities(); + UpdateChecker UPDATECHECKER = new UpdateChecker(LOCALIZATIONMANAGER, APPLICATIONPROPERTIES); + VersionLister VERSIONLISTER = new VersionLister( - applicationProperties + APPLICATIONPROPERTIES ); BooleanUtilities BOOLEANUTILITIES = new BooleanUtilities( - localizationManager, applicationProperties + LOCALIZATIONMANAGER, APPLICATIONPROPERTIES ); ConfigUtilities CONFIGUTILITIES = new ConfigUtilities( - localizationManager, BOOLEANUTILITIES, LISTUTILITIES, applicationProperties, STRINGUTILITIES, VERSIONLISTER + LOCALIZATIONMANAGER, BOOLEANUTILITIES, LISTUTILITIES, APPLICATIONPROPERTIES, STRINGUTILITIES, + VERSIONLISTER ); CurseCreateModpack CURSECREATEMODPACK = new CurseCreateModpack( - localizationManager, applicationProperties, VERSIONLISTER, BOOLEANUTILITIES, LISTUTILITIES, STRINGUTILITIES, CONFIGUTILITIES, SYSTEMUTILITIES + LOCALIZATIONMANAGER, APPLICATIONPROPERTIES, VERSIONLISTER, BOOLEANUTILITIES, LISTUTILITIES, + STRINGUTILITIES, CONFIGUTILITIES, SYSTEMUTILITIES ); ConfigurationHandler CONFIGURATIONHANDLER = new ConfigurationHandler( - localizationManager, CURSECREATEMODPACK, VERSIONLISTER, applicationProperties, BOOLEANUTILITIES, LISTUTILITIES, STRINGUTILITIES, SYSTEMUTILITIES, CONFIGUTILITIES + LOCALIZATIONMANAGER, CURSECREATEMODPACK, VERSIONLISTER, APPLICATIONPROPERTIES, BOOLEANUTILITIES, + LISTUTILITIES, STRINGUTILITIES, SYSTEMUTILITIES, CONFIGUTILITIES ); ConfigurationCreator CONFIGURATIONCREATOR = new ConfigurationCreator( - localizationManager, CONFIGURATIONHANDLER, BOOLEANUTILITIES, applicationProperties, LISTUTILITIES, STRINGUTILITIES, CONFIGUTILITIES, SYSTEMUTILITIES, CURSECREATEMODPACK, VERSIONLISTER + LOCALIZATIONMANAGER, CONFIGURATIONHANDLER, BOOLEANUTILITIES, APPLICATIONPROPERTIES, LISTUTILITIES, + STRINGUTILITIES, CONFIGUTILITIES, SYSTEMUTILITIES, CURSECREATEMODPACK, VERSIONLISTER ); ApplicationPlugins APPLICATIONPLUGINS = new ApplicationPlugins(); ServerPackHandler SERVERPACKHANDLER = new ServerPackHandler( - localizationManager, CURSECREATEMODPACK, CONFIGURATIONHANDLER, applicationProperties, VERSIONLISTER, BOOLEANUTILITIES, LISTUTILITIES, STRINGUTILITIES, SYSTEMUTILITIES, CONFIGUTILITIES, APPLICATIONPLUGINS + LOCALIZATIONMANAGER, CURSECREATEMODPACK, CONFIGURATIONHANDLER, APPLICATIONPROPERTIES, VERSIONLISTER, + BOOLEANUTILITIES, LISTUTILITIES, STRINGUTILITIES, SYSTEMUTILITIES, CONFIGUTILITIES, APPLICATIONPLUGINS ); if (Arrays.asList(args).contains("-cgen")) { + checkForUpdate(LOCALIZATIONMANAGER, UPDATECHECKER, APPLICATIONPROPERTIES); + // Start generation of a new configuration file with user input. CONFIGURATIONCREATOR.createConfigurationFile(); - runHeadless(CONFIGURATIONHANDLER, SERVERPACKHANDLER, applicationProperties); + runHeadless(CONFIGURATIONHANDLER, SERVERPACKHANDLER, APPLICATIONPROPERTIES); // Start ServerPackCreator in commandline mode. } else if (Arrays.asList(args).contains("-cli") || GraphicsEnvironment.isHeadless()) { - runHeadlessWithPreChecks(CONFIGURATIONHANDLER, SERVERPACKHANDLER, applicationProperties, CONFIGURATIONCREATOR); + checkForUpdate(LOCALIZATIONMANAGER, UPDATECHECKER, APPLICATIONPROPERTIES); + + runHeadlessWithPreChecks(CONFIGURATIONHANDLER, SERVERPACKHANDLER, APPLICATIONPROPERTIES, CONFIGURATIONCREATOR); // If the environment is headless, so no possibility for GUI, start in commandline-mode. } else if (GraphicsEnvironment.isHeadless()) { - runHeadlessWithPreChecks(CONFIGURATIONHANDLER, SERVERPACKHANDLER, applicationProperties, CONFIGURATIONCREATOR); + checkForUpdate(LOCALIZATIONMANAGER, UPDATECHECKER, APPLICATIONPROPERTIES); + + runHeadlessWithPreChecks(CONFIGURATIONHANDLER, SERVERPACKHANDLER, APPLICATIONPROPERTIES, CONFIGURATIONCREATOR); // If no mode is specified, and we have a graphical environment, start in GUI mode. } else { SwingGuiInitializer swingGuiInitializer = new SwingGuiInitializer( - localizationManager, CONFIGURATIONHANDLER, CURSECREATEMODPACK, SERVERPACKHANDLER, applicationProperties, VERSIONLISTER, BOOLEANUTILITIES, LISTUTILITIES, STRINGUTILITIES, CONFIGUTILITIES, SYSTEMUTILITIES, updater, APPLICATIONPLUGINS + LOCALIZATIONMANAGER, CONFIGURATIONHANDLER, CURSECREATEMODPACK, SERVERPACKHANDLER, APPLICATIONPROPERTIES, + VERSIONLISTER, BOOLEANUTILITIES, LISTUTILITIES, STRINGUTILITIES, CONFIGUTILITIES, SYSTEMUTILITIES, + UPDATECHECKER, APPLICATIONPLUGINS ); swingGuiInitializer.mainGUI(); @@ -317,6 +326,19 @@ private static void webservice(DefaultFiles defaultFiles, HashMapConstructor

* Used for Dependency Injection.

@@ -120,7 +119,7 @@ public class SwingGuiInitializer extends JPanel { * @param injectedStringUtilities Instance of {@link StringUtilities}. * @param injectedConfigUtilities Instance of {@link ConfigUtilities}. * @param injectedSystemUtilities Instance of {@link SystemUtilities}. - * @param updater String. Update message fetcher from Main. + * @param injectedUpdateChecker Instance of {@link UpdateChecker}. * @param injectedPluginManager Instance of {@link ApplicationPlugins}. */ public SwingGuiInitializer(LocalizationManager injectedLocalizationManager, ConfigurationHandler injectedConfigurationHandler, @@ -128,12 +127,10 @@ public SwingGuiInitializer(LocalizationManager injectedLocalizationManager, Conf ApplicationProperties injectedApplicationProperties, VersionLister injectedVersionLister, BooleanUtilities injectedBooleanUtilities, ListUtilities injectedListUtilities, StringUtilities injectedStringUtilities, ConfigUtilities injectedConfigUtilities, SystemUtilities injectedSystemUtilities, - String updater, ApplicationPlugins injectedPluginManager) { + UpdateChecker injectedUpdateChecker, ApplicationPlugins injectedPluginManager) { super(new GridLayout(1, 1)); - this.update = updater; - if (injectedApplicationProperties == null) { this.APPLICATIONPROPERTIES = new ApplicationProperties(); } else { @@ -176,19 +173,22 @@ public SwingGuiInitializer(LocalizationManager injectedLocalizationManager, Conf } if (injectedConfigUtilities == null) { - this.CONFIGUTILITIES = new ConfigUtilities(LOCALIZATIONMANAGER, BOOLEANUTILITIES, LISTUTILITIES, APPLICATIONPROPERTIES, STRINGUTILITIES, VERSIONLISTER); + this.CONFIGUTILITIES = new ConfigUtilities(LOCALIZATIONMANAGER, BOOLEANUTILITIES, LISTUTILITIES, + APPLICATIONPROPERTIES, STRINGUTILITIES, VERSIONLISTER); } else { this.CONFIGUTILITIES = injectedConfigUtilities; } if (injectedConfigurationHandler == null) { - this.CURSECREATEMODPACK = new CurseCreateModpack(LOCALIZATIONMANAGER, APPLICATIONPROPERTIES, VERSIONLISTER, BOOLEANUTILITIES, LISTUTILITIES, STRINGUTILITIES, CONFIGUTILITIES, SYSTEMUTILITIES); + this.CURSECREATEMODPACK = new CurseCreateModpack(LOCALIZATIONMANAGER, APPLICATIONPROPERTIES, VERSIONLISTER, + BOOLEANUTILITIES, LISTUTILITIES, STRINGUTILITIES, CONFIGUTILITIES, SYSTEMUTILITIES); } else { this.CURSECREATEMODPACK = injectedCurseCreateModpack; } if (injectedConfigurationHandler == null) { - this.CONFIGURATIONHANDLER = new ConfigurationHandler(LOCALIZATIONMANAGER, CURSECREATEMODPACK, VERSIONLISTER, APPLICATIONPROPERTIES, BOOLEANUTILITIES, LISTUTILITIES, STRINGUTILITIES, SYSTEMUTILITIES, CONFIGUTILITIES); + this.CONFIGURATIONHANDLER = new ConfigurationHandler(LOCALIZATIONMANAGER, CURSECREATEMODPACK, VERSIONLISTER, + APPLICATIONPROPERTIES, BOOLEANUTILITIES, LISTUTILITIES, STRINGUTILITIES, SYSTEMUTILITIES, CONFIGUTILITIES); } else { this.CONFIGURATIONHANDLER = injectedConfigurationHandler; } @@ -200,11 +200,19 @@ public SwingGuiInitializer(LocalizationManager injectedLocalizationManager, Conf } if (injectedServerPackHandler == null) { - this.CREATESERVERPACK = new ServerPackHandler(LOCALIZATIONMANAGER, CURSECREATEMODPACK, CONFIGURATIONHANDLER, APPLICATIONPROPERTIES, VERSIONLISTER, BOOLEANUTILITIES, LISTUTILITIES, STRINGUTILITIES, SYSTEMUTILITIES, CONFIGUTILITIES, APPLICATIONPLUGINS); + this.CREATESERVERPACK = new ServerPackHandler(LOCALIZATIONMANAGER, CURSECREATEMODPACK, CONFIGURATIONHANDLER, + APPLICATIONPROPERTIES, VERSIONLISTER, BOOLEANUTILITIES, LISTUTILITIES, STRINGUTILITIES, SYSTEMUTILITIES, + CONFIGUTILITIES, APPLICATIONPLUGINS); } else { this.CREATESERVERPACK = injectedServerPackHandler; } + if (injectedUpdateChecker == null) { + this.UPDATECHECKER = new UpdateChecker(LOCALIZATIONMANAGER, APPLICATIONPROPERTIES); + } else { + this.UPDATECHECKER = injectedUpdateChecker; + } + try { bufferedImage = ImageIO.read(Objects.requireNonNull(getClass().getResource("/de/griefed/resources/gui/tile.png"))); } catch (IOException ex) { @@ -214,7 +222,9 @@ public SwingGuiInitializer(LocalizationManager injectedLocalizationManager, Conf this.FRAME_SERVERPACKCREATOR = new JFrame(LOCALIZATIONMANAGER.getLocalizedString("createserverpack.gui.createandshowgui") + " - " + APPLICATIONPROPERTIES.getServerPackCreatorVersion()); this.TAB_CREATESERVERPACK = new TabCreateServerPack( - LOCALIZATIONMANAGER, CONFIGURATIONHANDLER, CURSECREATEMODPACK, CREATESERVERPACK, VERSIONLISTER, APPLICATIONPROPERTIES, FRAME_SERVERPACKCREATOR, BOOLEANUTILITIES, LISTUTILITIES, STRINGUTILITIES, CONFIGUTILITIES, SYSTEMUTILITIES, APPLICATIONPLUGINS + LOCALIZATIONMANAGER, CONFIGURATIONHANDLER, CURSECREATEMODPACK, CREATESERVERPACK, VERSIONLISTER, APPLICATIONPROPERTIES, + FRAME_SERVERPACKCREATOR, BOOLEANUTILITIES, LISTUTILITIES, STRINGUTILITIES, CONFIGUTILITIES, SYSTEMUTILITIES, + APPLICATIONPLUGINS ); this.TAB_LOG_SERVERPACKCREATOR = new TabServerPackCreatorLog( @@ -375,9 +385,11 @@ private void createAndShowGUI() { */ private void displayUpdateDialog() { - if (!update.equals(LOCALIZATIONMANAGER.getLocalizedString("updates.log.info.none"))) { - String version = update.split(";")[0]; - String url = update.split(";")[1]; + String updater = UPDATECHECKER.checkForUpdate(APPLICATIONPROPERTIES.getServerPackCreatorVersion(), APPLICATIONPROPERTIES.checkForAvailablePreReleases()); + + if (updater.contains(";")) { + String version = updater.split(";")[0]; + String url = updater.split(";")[1]; String textContent = String.format(LOCALIZATIONMANAGER.getLocalizedString("update.dialog.new"), url); StyledDocument styledDocument = new DefaultStyledDocument(); diff --git a/backend/main/java/de/griefed/serverpackcreator/utilities/UpdateChecker.java b/backend/main/java/de/griefed/serverpackcreator/utilities/UpdateChecker.java index 03dd2a187..66b1ff449 100644 --- a/backend/main/java/de/griefed/serverpackcreator/utilities/UpdateChecker.java +++ b/backend/main/java/de/griefed/serverpackcreator/utilities/UpdateChecker.java @@ -25,6 +25,7 @@ import de.griefed.versionchecker.gitlab.GitLabChecker; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import org.jetbrains.annotations.NotNull; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -115,66 +116,95 @@ public UpdateChecker refresh() { return this; } + /** + * Getter for the instance of our {@link GitHubChecker}. + * @author Griefed + * @return {@link GitHubChecker}. + */ + public GitHubChecker getGitHub() { + return GITHUB; + } + + /** + * Getter for the instance of our {@link GitLabChecker} for GitLab. + * @author Griefed + * @return {@link GitLabChecker}. + */ + public GitLabChecker getGitLab() { + return GITLAB; + } + + /** + * Getter for the instance of our {@link GitLabChecker} for GitGriefed. + * @author Griefed + * @return {@link GitLabChecker}. + */ + public GitLabChecker getGitGriefed() { + return GITGRIEFED; + } + /** * Check our GitLab, GitGriefed and GitHub instances for updates, sequentially, and then return the update. * @author Griefed + * @param version {@link String} The version for which to check for updates. + * @param preReleaseCheck {@link Boolean} Whether to check pre-releases as well. Use true to check pre-releases + * as well, false to only check with regular releases. * @return {@link String} The update, if available, as well as the download URL. */ - public String checkForUpdate() { - String updater = LOCALIZATIONMANAGER.getLocalizedString("updates.log.info.none"); + public String checkForUpdate(@NotNull String version, Boolean preReleaseCheck) { - if (!APPLICATIONPROPERTIES.getServerPackCreatorVersion().equals("dev")) { + if (version.equalsIgnoreCase("dev")) { + return LOCALIZATIONMANAGER.getLocalizedString("updates.log.info.none"); + } - if (GITHUB != null) { - LOG.debug("Checking GitLab for updates..."); + String updater = null; - // Check GitHub for the most recent release. - // Check GitHub for new versions, with/without pre-releases depending on property. - updater = GITHUB.checkForUpdate(APPLICATIONPROPERTIES.getServerPackCreatorVersion(), APPLICATIONPROPERTIES.checkForAvailablePreReleases()); - } + if (GITHUB != null) { + LOG.debug("Checking GitLab for updates..."); + // Check GitHub for the most recent release. + updater = GITHUB.checkForUpdate(version, preReleaseCheck); + } - if (GITGRIEFED != null) { - LOG.debug("Checking GitGriefed for updates..."); + if (GITGRIEFED != null && updater != null) { + LOG.debug("Checking GitGriefed for updates..."); - // After checking GitHub, and we did not get a version, check GitGriefed. - // Check GitGriefed for new versions, with/without pre-releases depending on property. - // Only check if we did not already get a version from prior checks. - if (!updater.contains(";") && GITGRIEFED.checkForUpdate(APPLICATIONPROPERTIES.getServerPackCreatorVersion(), APPLICATIONPROPERTIES.checkForAvailablePreReleases()).contains(";")) { + // After checking GitHub, and we did not get a version, check GitGriefed. + if (!updater.contains(";") && GITGRIEFED.checkForUpdate(version, preReleaseCheck).contains(";")) { - updater = GITGRIEFED.checkForUpdate(updater.split(";")[0], APPLICATIONPROPERTIES.checkForAvailablePreReleases()); + updater = GITGRIEFED.checkForUpdate(version, preReleaseCheck); - // Check GitGriefed for a newer version, with the version received from GitHub, if we received a new version from GitHub. - // With/without pre-releases depending on property. - } else if (updater.contains(";") && GITGRIEFED.checkForUpdate(updater.split(";")[0], APPLICATIONPROPERTIES.checkForAvailablePreReleases()).contains(";")) { + // Check GitGriefed for a newer version, with the version received from GitHub, if we received a new version from GitHub. + } else if (updater.contains(";") && GITGRIEFED.checkForUpdate(updater.split(";")[0], preReleaseCheck).contains(";")) { - updater = GITGRIEFED.checkForUpdate(updater.split(";")[0], APPLICATIONPROPERTIES.checkForAvailablePreReleases()); - } + updater = GITGRIEFED.checkForUpdate(updater.split(";")[0], preReleaseCheck); } + } - if (GITLAB != null) { - LOG.debug("Checking GitHub for updates..."); + if (GITLAB != null && updater != null) { + LOG.debug("Checking GitHub for updates..."); - // After checking GitGriefed, and we did not get a version, check GitLab. - // Check GitLab for new versions, with/without pre-releases depending on property. - // Only check if we did not already get a version from prior checks. - if (!updater.contains(";") && GITLAB.checkForUpdate(APPLICATIONPROPERTIES.getServerPackCreatorVersion(), APPLICATIONPROPERTIES.checkForAvailablePreReleases()).contains(";")) { + // After checking GitGriefed, and we did not get a version, check GitLab. + if (!updater.contains(";") && GITLAB.checkForUpdate(version, preReleaseCheck).contains(";")) { - updater = GITLAB.checkForUpdate(updater.split(";")[0], APPLICATIONPROPERTIES.checkForAvailablePreReleases()); + updater = GITLAB.checkForUpdate(version, preReleaseCheck); - // Check GitLab for a newer version, with the version we received from GitGriefed, if we received a new version from GitGriefed. - // With/without pre-releases depending on property. - } else if (updater.contains(";") && GITLAB.checkForUpdate(updater.split(";")[0], APPLICATIONPROPERTIES.checkForAvailablePreReleases()).contains(";")) { + // Check GitLab for a newer version, with the version we received from GitGriefed, if we received a new version from GitGriefed. + } else if (updater.contains(";") && GITLAB.checkForUpdate(updater.split(";")[0], preReleaseCheck).contains(";")) { - updater = GITLAB.checkForUpdate(updater.split(";")[0], APPLICATIONPROPERTIES.checkForAvailablePreReleases()); - } + updater = GITLAB.checkForUpdate(updater.split(";")[0], preReleaseCheck); } - } + LOG.debug("Received " + updater + " from UpdateChecker."); - return updater; + + if (updater == null) { + return LOCALIZATIONMANAGER.getLocalizedString("updates.log.info.none"); + } else { + return updater; + } } } diff --git a/backend/main/resources/CHANGELOG.md b/backend/main/resources/CHANGELOG.md index 38e22b94a..1e67a5de5 100644 --- a/backend/main/resources/CHANGELOG.md +++ b/backend/main/resources/CHANGELOG.md @@ -1,3 +1,15 @@ +## [3.0.0-beta.6](https://git.griefed.de/Griefed/ServerPackCreator/compare/3.0.0-beta.5...3.0.0-beta.6) (2022-02-25) + + +### 💎 Improvements + +* **Clientside Mods Help:** Expand help text for clientside only mods with a more detailed explanation of possible ways of configuration ([2ba30ea](https://git.griefed.de/Griefed/ServerPackCreator/commit/2ba30ea8c6727e24f89e133d8dc929fcbefa2228)) + + +### Other + +* **README:** Fix markdown formatting. Thanks GitHub/IDEA, for showing different renderings of the same markdown file. *le sigh* ([bc780b5](https://git.griefed.de/Griefed/ServerPackCreator/commit/bc780b5f11dc8c0c3999f9fb992e5fbc93e053e7)) + ## [3.0.0-beta.5](https://git.griefed.de/Griefed/ServerPackCreator/compare/3.0.0-beta.4...3.0.0-beta.5) (2022-02-25) diff --git a/backend/test/java/de/griefed/serverpackcreator/utilities/UpdateCheckerTest.java b/backend/test/java/de/griefed/serverpackcreator/utilities/UpdateCheckerTest.java index 09bbda113..2acce9d22 100644 --- a/backend/test/java/de/griefed/serverpackcreator/utilities/UpdateCheckerTest.java +++ b/backend/test/java/de/griefed/serverpackcreator/utilities/UpdateCheckerTest.java @@ -2,6 +2,7 @@ import de.griefed.serverpackcreator.ApplicationProperties; import de.griefed.serverpackcreator.i18n.LocalizationManager; +import de.griefed.versionchecker.github.GitHubChecker; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; @@ -16,10 +17,143 @@ public class UpdateCheckerTest { } + @Test + void textInstances() { + Assertions.assertNotNull(UPDATECHECKER.getGitHub()); + Assertions.assertNotNull(UPDATECHECKER.getGitLab()); + Assertions.assertNotNull(UPDATECHECKER.getGitGriefed()); + } + @Test void checkForUpdateTest() { + String latest = UPDATECHECKER.getGitHub().latestVersion(false); + String latestPre = UPDATECHECKER.getGitHub().latestVersion(true); + Assertions.assertNotNull(UPDATECHECKER.refresh()); - Assertions.assertNotNull(UPDATECHECKER.checkForUpdate()); + + System.out.println("Old version should return the newest regular release, whilst not checking for pre-releases."); + Assertions.assertEquals(latest,UPDATECHECKER.checkForUpdate( + "2.0.0", + false + ).split(";")[0]); + + System.out.println("Old version should return the newest pre-release release, whilst checking for pre-releases, too."); + Assertions.assertEquals(latestPre,UPDATECHECKER.checkForUpdate( + "2.0.0", + true + ).split(";")[0]); + + + + System.out.println("Old alpha should return the newest regular release, whilst not checking for pre-releases."); + Assertions.assertEquals(latest,UPDATECHECKER.checkForUpdate( + "2.0.0-alpha.2", + false + ).split(";")[0]); + + System.out.println("Old alpha should return the newest alpha/beta, whilst checking for pre-releases, too."); + Assertions.assertEquals(latestPre,UPDATECHECKER.checkForUpdate( + "2.0.0-alpha.2", + true + ).split(";")[0]); + + + + System.out.println("Old beta should return the newest regular release, whilst not checking for pre-releases."); + Assertions.assertEquals(latest,UPDATECHECKER.checkForUpdate( + "2.0.0-beta.2", + false + ).split(";")[0]); + + System.out.println("Old beta should return the newest alpha/beta, whilst checking for pre-releases, too."); + Assertions.assertEquals(latestPre,UPDATECHECKER.checkForUpdate( + "2.0.0-beta.2", + true + ).split(";")[0]); + + + + System.out.println("Old beta, but newer than the newest regular release, should return no available updates, whilst not checking for pre-releases."); + Assertions.assertEquals("No updates available.",UPDATECHECKER.checkForUpdate( + "3.0.0-beta.2", + false + ).split(";")[0]); + + System.out.println("Old beta, but newer than the newest regular release, should the latest available alpha/beta, whilst checking for pre-releases, too."); + Assertions.assertEquals(latestPre,UPDATECHECKER.checkForUpdate( + "3.0.0-beta.2", + true + ).split(";")[0]); + + + + System.out.println("Old beta, but newer than the newest regular release, should return no available updates, whilst not checking for pre-releases."); + Assertions.assertEquals("No updates available.",UPDATECHECKER.checkForUpdate( + "3.0.0-alpha.2", + false + ).split(";")[0]); + + System.out.println("Old alpha, but newer than the newest regular release, should return the newest alpha/beta, whilst checking for pre-releases, too."); + Assertions.assertEquals(latestPre,UPDATECHECKER.checkForUpdate( + "3.0.0-alpha.2", + true + ).split(";")[0]); + + + + System.out.println("Future alpha should return no available updates, whilst not checking for pre-releases."); + Assertions.assertEquals("No updates available.",UPDATECHECKER.checkForUpdate( + "123.456.789-alpha.2", + false + ).split(";")[0]); + + System.out.println("Future alpha should return no available updates, whilst checking for pre-releases, too."); + Assertions.assertEquals("No updates available.",UPDATECHECKER.checkForUpdate( + "123.456.789-alpha.2", + true + ).split(";")[0]); + + + + System.out.println("Future beta should return no available updates, whilst not checking for pre-releases."); + Assertions.assertEquals("No updates available.",UPDATECHECKER.checkForUpdate( + "123.456.789-beta.2", + false + ).split(";")[0]); + + System.out.println("Future beta should return no available updates, whilst checking for pre-releases, too."); + Assertions.assertEquals("No updates available.",UPDATECHECKER.checkForUpdate( + "123.456.789-beta.2", + true + ).split(";")[0]); + + + + System.out.println("Newer version should return no available updates, whilst not checking for pre-releases."); + Assertions.assertEquals("No updates available.",UPDATECHECKER.checkForUpdate( + "123.456.789", + false + )); + + System.out.println("Newer version should return no available updates, whilst checking for pre-releases."); + Assertions.assertEquals("No updates available.",UPDATECHECKER.checkForUpdate( + "123.456.789", + true + )); + + + + System.out.println("Newest version should return no available updates, whilst not checking for pre-releases."); + Assertions.assertEquals("No updates available.",UPDATECHECKER.checkForUpdate( + latest, + false + )); + + System.out.println("Newest alpha/beta should return no available updates, whilst checking for pre-releases, too."); + Assertions.assertEquals("No updates available.",UPDATECHECKER.checkForUpdate( + latestPre, + true + )); } } diff --git a/backend/test/resources/serverpackcreator.properties b/backend/test/resources/serverpackcreator.properties index f5a6869a8..4afff3768 100644 --- a/backend/test/resources/serverpackcreator.properties +++ b/backend/test/resources/serverpackcreator.properties @@ -13,4 +13,5 @@ de.griefed.serverpackcreator.spring.cursecontroller.regenerate.enabled=false de.griefed.serverpackcreator.spring.schedules.database.cleanup=0 0 24 * * de.griefed.serverpackcreator.spring.artemis.queue.max_disk_usage=90 de.griefed.serverpackcreator.configuration.saveloadedconfig=false -de.griefed.serverpackcreator.configuration.directories.mustinclude=mods,config,defaultconfigs,scripts,saves,seeds,libraries \ No newline at end of file +de.griefed.serverpackcreator.configuration.directories.mustinclude=mods,config,defaultconfigs,scripts,saves,seeds,libraries +de.griefed.serverpackcreator.versioncheck.prerelease=false \ No newline at end of file diff --git a/build.gradle b/build.gradle index 140276094..224662278 100644 --- a/build.gradle +++ b/build.gradle @@ -64,7 +64,7 @@ configurations { dependencies { // Backend - embed 'de.griefed:versionchecker:1.0.6' + embed 'de.griefed:versionchecker:1.0.7' embed 'com.electronwill.night-config:hocon:3.6.5' embed 'commons-io:commons-io:2.11.0' embed 'commons-lang:commons-lang:2.6'