From 1d6728ee80285865634c2d9a3f30b2c9b4fb0b3b Mon Sep 17 00:00:00 2001 From: CDAGaming Date: Thu, 11 Jan 2018 16:23:06 -0600 Subject: [PATCH 1/5] Full Compatibility with 1.12.2 This Commit Upgrades Dependencies to be more compatible with 1.12.2 as well as replaces any deprecation issues. --- build.gradle | 22 +++++++++---------- .../liteloader/installer/VersionInfo.java | 3 +-- .../actions/ClientInstallAction.java | 15 ++++++------- .../installer/modifiers/CascadeModifier.java | 3 +-- .../modifiers/InstallationModifier.java | 4 ++-- .../modifiers/InstallerModifier.java | 3 +-- .../installer/targets/TargetVersion.java | 11 +++++----- 7 files changed, 28 insertions(+), 33 deletions(-) diff --git a/build.gradle b/build.gradle index 78734cf..3ccfc45 100644 --- a/build.gradle +++ b/build.gradle @@ -6,8 +6,8 @@ buildscript { } } dependencies { - classpath 'com.github.jengelman.gradle.plugins:shadow:1.2.0' - classpath 'gradle.plugin.edu.sc.seis.gradle:launch4j:1.6.1' + classpath 'com.github.jengelman.gradle.plugins:shadow:2.0.2' + classpath 'gradle.plugin.edu.sc.seis.gradle:launch4j:2.4.2' } } @@ -15,8 +15,8 @@ apply plugin: 'java' apply plugin: 'edu.sc.seis.launch4j' apply plugin: 'com.github.johnrengelman.shadow' -// launch4j dependsOn doesn't work -defaultTasks 'prepareManifest', 'build', 'launch4j', 'gather' +// createExe dependsOn doesn't work +defaultTasks 'prepareManifest', 'build', 'createExe', 'gather' group = 'com.mumfrey' @@ -25,16 +25,16 @@ version = "${project.verMajor}.${project.verMinor}${project.revision ext.mcversion = "${project.verMajor}.${project.verMinor}${project.revision}" ext.msversion = "${project.verMajor}.${project.verMinor}.${project.verRevision}.${project.verBuild}" archivesBaseName = 'liteloader-installer' -targetCompatibility = '1.6' -sourceCompatibility = '1.6' +targetCompatibility = '1.8' +sourceCompatibility = '1.8' repositories { mavenCentral() } dependencies { - compile 'com.google.guava:guava:17.0' - compile 'net.sourceforge.argo:argo:3.7' + compile 'com.google.guava:guava:21.0' + compile 'net.sourceforge.argo:argo:4.6' } // resolve problem with shadowJar @@ -64,7 +64,7 @@ task prepareManifest(type: Copy) { ) } -launch4j { +createExe { copyConfigurable = project.tasks.shadowJar.outputs.files jar = 'lib/' + project.tasks.shadowJar.archiveName icon = "${projectDir}/launch4j/liteloader_installer_icon.ico" @@ -73,8 +73,8 @@ launch4j { version = project.msversion internalName = project.sxsname productName = "LiteLoader" - description = "LiteLoader Installer for Minecraft ${project.mcversion} release {project.verRelease}" - copyright = "Copyright (C) 2013-15 Adam Mummery-Smith" + fileDescription = "LiteLoader Installer for Minecraft ${project.mcversion} release {project.verRelease}" + copyright = "Copyright (C) 2013-2018 Adam Mummery-Smith" } task gather(type: Copy) { diff --git a/src/main/java/com/mumfrey/liteloader/installer/VersionInfo.java b/src/main/java/com/mumfrey/liteloader/installer/VersionInfo.java index 0c3ebbf..e4d2a19 100644 --- a/src/main/java/com/mumfrey/liteloader/installer/VersionInfo.java +++ b/src/main/java/com/mumfrey/liteloader/installer/VersionInfo.java @@ -15,12 +15,11 @@ import argo.jdom.JdomParser; import argo.jdom.JsonNode; -import argo.jdom.JsonRootNode; public class VersionInfo { public static final VersionInfo INSTANCE = new VersionInfo(); - public final JsonRootNode versionData; + public final JsonNode versionData; public VersionInfo() { diff --git a/src/main/java/com/mumfrey/liteloader/installer/actions/ClientInstallAction.java b/src/main/java/com/mumfrey/liteloader/installer/actions/ClientInstallAction.java index 47407be..600a642 100644 --- a/src/main/java/com/mumfrey/liteloader/installer/actions/ClientInstallAction.java +++ b/src/main/java/com/mumfrey/liteloader/installer/actions/ClientInstallAction.java @@ -31,7 +31,6 @@ import argo.jdom.JsonField; import argo.jdom.JsonNode; import argo.jdom.JsonNodeFactories; -import argo.jdom.JsonRootNode; import argo.jdom.JsonStringNode; import argo.saj.InvalidSyntaxException; @@ -246,7 +245,7 @@ public final boolean run(File target, List modifiers, IIns if (!this.writeVersionFile(modifiers, versionTarget)) return false; - JsonRootNode jsonProfileData = this.readLauncherProfiles(launcherProfiles); + JsonNode jsonProfileData = this.readLauncherProfiles(launcherProfiles); if (jsonProfileData == null) return false; HashMap modifiedData = this.modifyProfileData(target, jsonProfileData, modifiers); @@ -310,7 +309,7 @@ private File prepareVersionDir(File target) throws HeadlessException private boolean writeVersionFile(List modifiers, File versionTarget) throws HeadlessException { File versionJsonFile = new File(versionTarget, this.getVersion() + ".json"); - JsonRootNode versionJson = JsonNodeFactories.object(VersionInfo.getVersionInfo().getFields()); + JsonNode versionJson = JsonNodeFactories.object(VersionInfo.getVersionInfo().getFields()); try { @@ -335,10 +334,10 @@ private boolean writeVersionFile(List modifiers, File vers return true; } - private JsonRootNode readLauncherProfiles(File launcherProfiles) throws HeadlessException, RuntimeException + private JsonNode readLauncherProfiles(File launcherProfiles) throws HeadlessException, RuntimeException { JdomParser parser = new JdomParser(); - JsonRootNode jsonProfileData; + JsonNode jsonProfileData; try { @@ -359,7 +358,7 @@ private JsonRootNode readLauncherProfiles(File launcherProfiles) throws Headless return jsonProfileData; } - private HashMap modifyProfileData(File target, JsonRootNode jsonProfileData, List modifiers) + private HashMap modifyProfileData(File target, JsonNode jsonProfileData, List modifiers) { Set jvmArgs = new LinkedHashSet(); List allModifiers = Collections.unmodifiableList(modifiers); @@ -400,13 +399,13 @@ private HashMap modifyProfileData(File target, JsonRoo } profileCopy.put(JsonNodeFactories.string(this.getProfileName()), JsonNodeFactories.object(fields)); - JsonRootNode profileJsonCopy = JsonNodeFactories.object(profileCopy); + JsonNode profileJsonCopy = JsonNodeFactories.object(profileCopy); modifiedData.put(JsonNodeFactories.string("profiles"), profileJsonCopy); return modifiedData; } - private boolean writeLauncherProfiles(JsonRootNode jsonProfileData, File launcherProfiles) throws HeadlessException + private boolean writeLauncherProfiles(JsonNode jsonProfileData, File launcherProfiles) throws HeadlessException { try { diff --git a/src/main/java/com/mumfrey/liteloader/installer/modifiers/CascadeModifier.java b/src/main/java/com/mumfrey/liteloader/installer/modifiers/CascadeModifier.java index a99ef6f..d7bf77a 100644 --- a/src/main/java/com/mumfrey/liteloader/installer/modifiers/CascadeModifier.java +++ b/src/main/java/com/mumfrey/liteloader/installer/modifiers/CascadeModifier.java @@ -17,7 +17,6 @@ import argo.jdom.JsonField; import argo.jdom.JsonNode; import argo.jdom.JsonNodeFactories; -import argo.jdom.JsonRootNode; import argo.jdom.JsonStringNode; public abstract class CascadeModifier implements ActionModifier @@ -35,7 +34,7 @@ public abstract class CascadeModifier implements ActionModifier protected Map> validVersionLibraries = new HashMap>(); @Override - public JsonRootNode modifyVersion(JsonRootNode versionJson) + public JsonNode modifyVersion(JsonNode versionJson) { String tweakClass = this.getTweakClass(); diff --git a/src/main/java/com/mumfrey/liteloader/installer/modifiers/InstallationModifier.java b/src/main/java/com/mumfrey/liteloader/installer/modifiers/InstallationModifier.java index e754cc8..0268a86 100644 --- a/src/main/java/com/mumfrey/liteloader/installer/modifiers/InstallationModifier.java +++ b/src/main/java/com/mumfrey/liteloader/installer/modifiers/InstallationModifier.java @@ -4,13 +4,13 @@ import java.util.Set; import argo.jdom.JsonField; -import argo.jdom.JsonRootNode; +import argo.jdom.JsonNode; public interface InstallationModifier { public abstract String getExclusivityKey(); - public abstract JsonRootNode modifyVersion(JsonRootNode versionJson); + public abstract JsonNode modifyVersion(JsonNode versionJson); public abstract void modifyFields(List fields); diff --git a/src/main/java/com/mumfrey/liteloader/installer/modifiers/InstallerModifier.java b/src/main/java/com/mumfrey/liteloader/installer/modifiers/InstallerModifier.java index 1c9882e..6f6b9c3 100644 --- a/src/main/java/com/mumfrey/liteloader/installer/modifiers/InstallerModifier.java +++ b/src/main/java/com/mumfrey/liteloader/installer/modifiers/InstallerModifier.java @@ -9,7 +9,6 @@ import argo.jdom.JdomParser; import argo.jdom.JsonNode; -import argo.jdom.JsonRootNode; import com.google.common.base.Throwables; @@ -94,7 +93,7 @@ private static Map> readVersionLibraries(File targetDir) try { JdomParser parser = new JdomParser(); - JsonRootNode json = parser.parse(new FileReader(versionJson)); + JsonNode json = parser.parse(new FileReader(versionJson)); List libraries = json.getArrayNode("libraries"); for (JsonNode library : libraries) { diff --git a/src/main/java/com/mumfrey/liteloader/installer/targets/TargetVersion.java b/src/main/java/com/mumfrey/liteloader/installer/targets/TargetVersion.java index 7df54d2..f08c11c 100644 --- a/src/main/java/com/mumfrey/liteloader/installer/targets/TargetVersion.java +++ b/src/main/java/com/mumfrey/liteloader/installer/targets/TargetVersion.java @@ -1,7 +1,6 @@ package com.mumfrey.liteloader.installer.targets; import java.io.File; -import java.io.FileNotFoundException; import java.io.IOException; import java.util.ArrayList; import java.util.List; @@ -13,8 +12,8 @@ import argo.jdom.JdomParser; import argo.jdom.JsonField; +import argo.jdom.JsonNode; import argo.jdom.JsonNodeFactories; -import argo.jdom.JsonRootNode; import argo.jdom.JsonStringNode; import argo.saj.InvalidSyntaxException; @@ -37,7 +36,7 @@ public class TargetVersion implements InstallationModifier private final ActionModifier modifier; private String minecraftArguments; - public TargetVersion(File file) throws IllegalArgumentException, FileNotFoundException, IOException, InvalidSyntaxException + public TargetVersion(File file) throws IllegalArgumentException, IOException, InvalidSyntaxException { if (!file.isDirectory()) { @@ -51,7 +50,7 @@ public TargetVersion(File file) throws IllegalArgumentException, FileNotFoundExc throw new IllegalArgumentException("Version json file not found reading: " + json.getAbsolutePath()); } - JsonRootNode versionData = new JdomParser().parse(Files.newReader(json, Charsets.UTF_8)); + JsonNode versionData = new JdomParser().parse(Files.newReader(json, Charsets.UTF_8)); String versionId = versionData.getStringValue("id"); if (versionId == null || !versionId.equals(name)) { @@ -93,7 +92,7 @@ public String getExclusivityKey() } @Override - public JsonRootNode modifyVersion(JsonRootNode versionJson) + public JsonNode modifyVersion(JsonNode versionJson) { try { @@ -231,7 +230,7 @@ private String guessVersion(Pattern pattern) * @param versionData * @return */ - private static String getMinecraftArguments(JsonRootNode versionData) + private static String getMinecraftArguments(JsonNode versionData) { String minecraftArguments = versionData.getStringValue("minecraftArguments"); if (minecraftArguments != null) From fe7594667cf6ae2dab42b7d8fd40cf71428ba297 Mon Sep 17 00:00:00 2001 From: CDAGaming Date: Thu, 11 Jan 2018 16:26:13 -0600 Subject: [PATCH 2/5] Code Cleanup + Deprecated Method Replacement --- .../mumfrey/liteloader/installer/actions/ClientAction.java | 3 +-- .../liteloader/installer/actions/ClientInstallAction.java | 4 ++-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/mumfrey/liteloader/installer/actions/ClientAction.java b/src/main/java/com/mumfrey/liteloader/installer/actions/ClientAction.java index 3899469..7f04577 100644 --- a/src/main/java/com/mumfrey/liteloader/installer/actions/ClientAction.java +++ b/src/main/java/com/mumfrey/liteloader/installer/actions/ClientAction.java @@ -82,8 +82,7 @@ protected boolean extractLibraries(File target, IInstallerMonitor monitor) throw { File libraries = new File(target, "libraries"); File targetLibraryFile = VersionInfo.getLibraryPath(libraries); - if (!this.extractLibrary(targetLibraryFile, VersionInfo.getContainedFile())) return false; - return true; + return this.extractLibrary(targetLibraryFile, VersionInfo.getContainedFile()); } protected final boolean extractLibrary(File targetLibraryFile, String containedFile) throws HeadlessException diff --git a/src/main/java/com/mumfrey/liteloader/installer/actions/ClientInstallAction.java b/src/main/java/com/mumfrey/liteloader/installer/actions/ClientInstallAction.java index 600a642..4be52bb 100644 --- a/src/main/java/com/mumfrey/liteloader/installer/actions/ClientInstallAction.java +++ b/src/main/java/com/mumfrey/liteloader/installer/actions/ClientInstallAction.java @@ -334,7 +334,7 @@ private boolean writeVersionFile(List modifiers, File vers return true; } - private JsonNode readLauncherProfiles(File launcherProfiles) throws HeadlessException, RuntimeException + private JsonNode readLauncherProfiles(File launcherProfiles) throws RuntimeException { JdomParser parser = new JdomParser(); JsonNode jsonProfileData; @@ -353,7 +353,7 @@ private JsonNode readLauncherProfiles(File launcherProfiles) throws HeadlessExce } catch (Exception e) { - throw Throwables.propagate(e); + throw new RuntimeException(e); } return jsonProfileData; } From 87c982e32e51530db7c3f526f9c28abb861dd691 Mon Sep 17 00:00:00 2001 From: CDAGaming Date: Sun, 14 Jan 2018 13:55:01 -0600 Subject: [PATCH 3/5] Update launch4j and Fix Deprecation Error --- build.gradle | 14 +++++++------- .../liteloader_installer_icon.ico | Bin .../liteloader_installer_manifest.xml | 0 3 files changed, 7 insertions(+), 7 deletions(-) rename {launch4j => createExe}/liteloader_installer_icon.ico (100%) rename {launch4j => createExe}/liteloader_installer_manifest.xml (100%) diff --git a/build.gradle b/build.gradle index 3ccfc45..26454c3 100644 --- a/build.gradle +++ b/build.gradle @@ -7,7 +7,7 @@ buildscript { } dependencies { classpath 'com.github.jengelman.gradle.plugins:shadow:2.0.2' - classpath 'gradle.plugin.edu.sc.seis.gradle:launch4j:2.4.2' + classpath 'gradle.plugin.edu.sc.seis.gradle:launch4j:2.4.3' } } @@ -56,8 +56,8 @@ shadowJar { } task prepareManifest(type: Copy) { - from 'launch4j/liteloader_installer_manifest.xml' - into tasks.launch4j.temporaryDir + from 'createExe/liteloader_installer_manifest.xml' + into tasks.createExe.temporaryDir expand( artefact: project.sxsname, msversion: project.msversion @@ -67,8 +67,8 @@ task prepareManifest(type: Copy) { createExe { copyConfigurable = project.tasks.shadowJar.outputs.files jar = 'lib/' + project.tasks.shadowJar.archiveName - icon = "${projectDir}/launch4j/liteloader_installer_icon.ico" - manifest = "${tasks.launch4j.temporaryDir}/liteloader_installer_manifest.xml" + icon = "${projectDir}/createExe/liteloader_installer_icon.ico" + manifest = "${tasks.createExe.temporaryDir}/liteloader_installer_manifest.xml" outfile = tasks.shadowJar.archiveName - ".jar" + ".exe" version = project.msversion internalName = project.sxsname @@ -78,8 +78,8 @@ createExe { } task gather(type: Copy) { - dependsOn 'launch4j' - from 'build/launch4j/' + launch4j.outfile + dependsOn 'createExe' + from 'build/createExe/' + createExe.outfile into 'build/libs/' } diff --git a/launch4j/liteloader_installer_icon.ico b/createExe/liteloader_installer_icon.ico similarity index 100% rename from launch4j/liteloader_installer_icon.ico rename to createExe/liteloader_installer_icon.ico diff --git a/launch4j/liteloader_installer_manifest.xml b/createExe/liteloader_installer_manifest.xml similarity index 100% rename from launch4j/liteloader_installer_manifest.xml rename to createExe/liteloader_installer_manifest.xml From a12c7c9e85b7861c4ee8e8555cafd5df7dfa352f Mon Sep 17 00:00:00 2001 From: CDAGaming Date: Fri, 23 Nov 2018 22:41:00 -0600 Subject: [PATCH 4/5] [Multi-Commit] Multiple Changes, Read Details [Fix] Revert to Java v1.6 for Installer [Fix] Add dependsOn to createExe (It does work) [Fix] Fixed a GString Reference in Installer FileDescription [Change] createExe#jar now is a GString [Change] project.verRelease is now 00, not -00 (Fixed Format in version to have the dash) --- build.gradle | 17 +++++++++-------- gradle.properties | 2 +- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/build.gradle b/build.gradle index 26454c3..f5883bf 100644 --- a/build.gradle +++ b/build.gradle @@ -6,8 +6,8 @@ buildscript { } } dependencies { - classpath 'com.github.jengelman.gradle.plugins:shadow:2.0.2' - classpath 'gradle.plugin.edu.sc.seis.gradle:launch4j:2.4.3' + classpath 'com.github.jengelman.gradle.plugins:shadow:4.0.2' + classpath 'gradle.plugin.edu.sc.seis.gradle:launch4j:2.4.4' } } @@ -15,18 +15,17 @@ apply plugin: 'java' apply plugin: 'edu.sc.seis.launch4j' apply plugin: 'com.github.johnrengelman.shadow' -// createExe dependsOn doesn't work defaultTasks 'prepareManifest', 'build', 'createExe', 'gather' group = 'com.mumfrey' ext.revision = project.verRevision == "0" ? "" : ".${project.verRevision}" -version = "${project.verMajor}.${project.verMinor}${project.revision}${project.verRelease}" +version = "${project.verMajor}.${project.verMinor}${project.revision}-${project.verRelease}" ext.mcversion = "${project.verMajor}.${project.verMinor}${project.revision}" ext.msversion = "${project.verMajor}.${project.verMinor}.${project.verRevision}.${project.verBuild}" archivesBaseName = 'liteloader-installer' -targetCompatibility = '1.8' -sourceCompatibility = '1.8' +targetCompatibility = JavaVersion.VERSION_1_6 +sourceCompatibility = JavaVersion.VERSION_1_6 repositories { mavenCentral() @@ -65,15 +64,17 @@ task prepareManifest(type: Copy) { } createExe { + dependsOn 'prepareManifest' + copyConfigurable = project.tasks.shadowJar.outputs.files - jar = 'lib/' + project.tasks.shadowJar.archiveName + jar = "lib/${project.tasks.shadowJar.archiveName}" icon = "${projectDir}/createExe/liteloader_installer_icon.ico" manifest = "${tasks.createExe.temporaryDir}/liteloader_installer_manifest.xml" outfile = tasks.shadowJar.archiveName - ".jar" + ".exe" version = project.msversion internalName = project.sxsname productName = "LiteLoader" - fileDescription = "LiteLoader Installer for Minecraft ${project.mcversion} release {project.verRelease}" + fileDescription = "LiteLoader Installer for Minecraft ${project.mcversion} - Release ${project.verRelease}" copyright = "Copyright (C) 2013-2018 Adam Mummery-Smith" } diff --git a/gradle.properties b/gradle.properties index 964bcab..1918634 100644 --- a/gradle.properties +++ b/gradle.properties @@ -8,6 +8,6 @@ organization=Mumfrey verMajor=1 verMinor=12 verRevision=2 -verRelease=-00 +verRelease=00 verBuild=0 upstreamJar="${x.projectDir}/../LiteLoader/build/libs/liteloader-${x.mcversion}-SNAPSHOT-release.jar" \ No newline at end of file From 715ffb3f92421b33584c627d9a83adcd98c36071 Mon Sep 17 00:00:00 2001 From: CDAGaming Date: Fri, 23 Nov 2018 22:47:20 -0600 Subject: [PATCH 5/5] Convert gather#from to GString and Fix Reference (Installer EXE is still outputted at build/launch4j now launch/createExe) --- build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index f5883bf..ae2ed8a 100644 --- a/build.gradle +++ b/build.gradle @@ -65,7 +65,7 @@ task prepareManifest(type: Copy) { createExe { dependsOn 'prepareManifest' - + copyConfigurable = project.tasks.shadowJar.outputs.files jar = "lib/${project.tasks.shadowJar.archiveName}" icon = "${projectDir}/createExe/liteloader_installer_icon.ico" @@ -80,7 +80,7 @@ createExe { task gather(type: Copy) { dependsOn 'createExe' - from 'build/createExe/' + createExe.outfile + from "build/launch4j/${createExe.outfile}" into 'build/libs/' }