Skip to content

Commit

Permalink
fix(UpdateChecker): Update VersionChecker to 1.0.7 and refactor Updat…
Browse files Browse the repository at this point in the history
…eChecker to DI to prevent false positives and correctly check for available updates.
  • Loading branch information
Griefed committed Feb 27, 2022
1 parent 520d936 commit 341d2d1
Show file tree
Hide file tree
Showing 7 changed files with 282 additions and 71 deletions.
60 changes: 41 additions & 19 deletions backend/main/java/de/griefed/serverpackcreator/Main.java
Original file line number Diff line number Diff line change
Expand Up @@ -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.");
Expand Down Expand Up @@ -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();
Expand Down Expand Up @@ -317,6 +326,19 @@ private static void webservice(DefaultFiles defaultFiles, HashMap<String, String
}
}

private static void checkForUpdate(LocalizationManager LOCALIZATIONMANAGER, UpdateChecker UPDATECHECKER, ApplicationProperties APPLICATIONPROPERTIES) {

String updater = UPDATECHECKER.checkForUpdate(APPLICATIONPROPERTIES.getServerPackCreatorVersion(), APPLICATIONPROPERTIES.checkForAvailablePreReleases());

if (updater.contains(";")) {
LOG.info(LOCALIZATIONMANAGER.getLocalizedString("update.dialog.available"));
LOG.info(" " + updater.split(";")[0]);
LOG.info(" " + updater.split(";")[1]);
} else {
LOG.info(LOCALIZATIONMANAGER.getLocalizedString("updates.log.info.none"));
}
}

private static void preRunCheck(ConfigurationCreator CONFIGURATIONCREATOR) {
// Start generation of a new configuration with user input if no configuration file is present.
if (!new File("creator.conf").exists() && !new File("serverpackcreator.conf").exists()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@ public class SwingGuiInitializer extends JPanel {
private final SystemUtilities SYSTEMUTILITIES;
private final ApplicationProperties APPLICATIONPROPERTIES;
private final ApplicationPlugins APPLICATIONPLUGINS;
private final UpdateChecker UPDATECHECKER;

private final LightTheme LIGHTTHEME = new LightTheme();
private final DarkTheme DARKTHEME = new DarkTheme();
Expand All @@ -96,8 +97,6 @@ public class SwingGuiInitializer extends JPanel {

private BufferedImage bufferedImage;

private final String update;

/**
* <strong>Constructor</strong><p>
* Used for Dependency Injection.<p>
Expand All @@ -120,20 +119,18 @@ 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,
CurseCreateModpack injectedCurseCreateModpack, ServerPackHandler injectedServerPackHandler,
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 {
Expand Down Expand Up @@ -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;
}
Expand All @@ -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) {
Expand All @@ -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(
Expand Down Expand Up @@ -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();
Expand Down
Loading

0 comments on commit 341d2d1

Please sign in to comment.