diff --git a/build.gradle b/build.gradle index 78734cf..ae2ed8a 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:4.0.2' + classpath 'gradle.plugin.edu.sc.seis.gradle:launch4j:2.4.4' } } @@ -15,26 +15,25 @@ 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' +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.6' -sourceCompatibility = '1.6' +targetCompatibility = JavaVersion.VERSION_1_6 +sourceCompatibility = JavaVersion.VERSION_1_6 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 @@ -56,30 +55,32 @@ 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 ) } -launch4j { +createExe { + dependsOn 'prepareManifest' + 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" + 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" - 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) { - dependsOn 'launch4j' - from 'build/launch4j/' + launch4j.outfile + dependsOn 'createExe' + from "build/launch4j/${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 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 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/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 47407be..4be52bb 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 RuntimeException { JdomParser parser = new JdomParser(); - JsonRootNode jsonProfileData; + JsonNode jsonProfileData; try { @@ -354,12 +353,12 @@ private JsonRootNode readLauncherProfiles(File launcherProfiles) throws Headless } catch (Exception e) { - throw Throwables.propagate(e); + throw new RuntimeException(e); } 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)