diff --git a/gradle-plugin/build.gradle.kts b/gradle-plugin/build.gradle.kts index 6475c0de..5af7afd0 100644 --- a/gradle-plugin/build.gradle.kts +++ b/gradle-plugin/build.gradle.kts @@ -1,4 +1,3 @@ -import org.gradle.kotlin.dsl.internal.sharedruntime.codegen.licenseHeader import org.jetbrains.kotlin.gradle.tasks.KotlinCompile import java.util.* @@ -6,6 +5,7 @@ plugins { kotlin("jvm") version "1.9.22" `java-gradle-plugin` `maven-publish` + id("io.github.sgtsilvio.gradle.metadata") version "0.5.0" } metadata { @@ -33,9 +33,10 @@ dependencies { // commons compress implementation("org.apache.commons:commons-compress:1.26.1") - testImplementation(kotlin("test")) + implementation(project(":")) + implementation(rootProject.sourceSets.getByName("shared").output) - implementation("org.ow2.asm:asm:${asmVersion}") + testImplementation(kotlin("test")) } tasks.withType { diff --git a/gradle-plugin/src/main/kotlin/xyz/wagyourtail/jvmdg/gradle/task/ShadeAPI.kt b/gradle-plugin/src/main/kotlin/xyz/wagyourtail/jvmdg/gradle/task/ShadeAPI.kt index f0007774..126f138e 100644 --- a/gradle-plugin/src/main/kotlin/xyz/wagyourtail/jvmdg/gradle/task/ShadeAPI.kt +++ b/gradle-plugin/src/main/kotlin/xyz/wagyourtail/jvmdg/gradle/task/ShadeAPI.kt @@ -44,6 +44,9 @@ abstract class ShadeAPI : Jar() { @get:Optional var shadePath by FinalizeOnRead(LazyMutable { archiveBaseName.get().replace(Regex("[ -]"), "_") + "/jvmdg/api" }) + init { + debugPrint.convention(false) + } private var configureShade: JavaExecSpec.() -> Unit = {} diff --git a/gradle-plugin/test-downgrade/build.gradle.kts b/gradle-plugin/test-downgrade/build.gradle.kts index f19b46b2..b2a70317 100644 --- a/gradle-plugin/test-downgrade/build.gradle.kts +++ b/gradle-plugin/test-downgrade/build.gradle.kts @@ -2,9 +2,31 @@ import xyz.wagyourtail.jvmdg.gradle.task.DowngradeJar import xyz.wagyourtail.jvmdg.gradle.task.ShadeAPI import java.util.* -plugins { - `java` - id("xyz.wagyourtail.jvmdowngrader") +buildscript { + repositories { + flatDir { + dirs("../../build/libs") + } + flatDir { + dirs("../build/libs") + } + } + dependencies { + val props = projectDir.parentFile.parentFile.resolve("gradle.properties").inputStream().use { + val props = java.util.Properties() + props.load(it) + props + } + classpath("xyz.wagyourtail.jvmdowngrader:jvmdowngrader-gradle-plugin:${props.getProperty("version")}") + classpath("xyz.wagyourtail.jvmdowngrader:jvmdowngrader:${props.getProperty("version")}") + + classpath("org.apache.commons:commons-compress:1.26.1") + + classpath("org.ow2.asm:asm:${props.getProperty("asm_version")}") + classpath("org.ow2.asm:asm-commons:${props.getProperty("asm_version")}") + classpath("org.ow2.asm:asm-tree:${props.getProperty("asm_version")}") + classpath("org.ow2.asm:asm-util:${props.getProperty("asm_version")}") + } } val props = projectDir.parentFile.parentFile.resolve("gradle.properties").inputStream().use { @@ -13,8 +35,12 @@ val props = projectDir.parentFile.parentFile.resolve("gradle.properties").inputS props } -jvmdg.version = props.getProperty("version") as String +plugins { + java +} + +apply(plugin = "xyz.wagyourtail.jvmdowngrader") val testVersion: JavaVersion = JavaVersion.toVersion(props.getProperty("testVersion") as String) @@ -58,6 +84,7 @@ val downgradeJar9 by tasks.creating(DowngradeJar::class) { archiveClassifier.set("downgraded-9") downgradeTo = JavaVersion.VERSION_1_9 archiveVersion.set(props.getProperty("version") as String) +// destinationDirectory.set(temporaryDir) } val shadeDowngradedApi9 by tasks.creating(ShadeAPI::class) { @@ -66,5 +93,9 @@ val shadeDowngradedApi9 by tasks.creating(ShadeAPI::class) { downgradeTo = JavaVersion.VERSION_1_9 } -tasks.build.get().dependsOn(tasks.shadeDowngradedApi) +tasks.getByName("downgradeJar") { +// destinationDirectory.set(temporaryDir) +} + +tasks.build.get().dependsOn(tasks.getByName("shadeDowngradedApi")) tasks.build.get().dependsOn(shadeDowngradedApi9) \ No newline at end of file diff --git a/gradle-plugin/test-downgrade/settings.gradle.kts b/gradle-plugin/test-downgrade/settings.gradle.kts index 6e2ee68e..743df1fa 100644 --- a/gradle-plugin/test-downgrade/settings.gradle.kts +++ b/gradle-plugin/test-downgrade/settings.gradle.kts @@ -4,6 +4,4 @@ pluginManagement { } } -includeBuild("../") - rootProject.name = "test-downgrade" \ No newline at end of file diff --git a/src/main/java/xyz/wagyourtail/jvmdg/cli/Main.java b/src/main/java/xyz/wagyourtail/jvmdg/cli/Main.java index 025fa4d4..f009448f 100644 --- a/src/main/java/xyz/wagyourtail/jvmdg/cli/Main.java +++ b/src/main/java/xyz/wagyourtail/jvmdg/cli/Main.java @@ -191,16 +191,22 @@ public static Set getClasspath(Map> args) { public static void downgrade(Map> args) throws IOException { Map targets = new HashMap<>(); List fileSystems = new ArrayList<>(); - getTargets(args, targets, fileSystems); + try { + getTargets(args, targets, fileSystems); - List inputs = new ArrayList<>(); - List outputs = new ArrayList<>(); - for (Map.Entry entry : targets.entrySet()) { - inputs.add(entry.getKey()); - outputs.add(entry.getValue()); - } + List inputs = new ArrayList<>(); + List outputs = new ArrayList<>(); + for (Map.Entry entry : targets.entrySet()) { + inputs.add(entry.getKey()); + outputs.add(entry.getValue()); + } - PathDowngrader.downgradePaths(Flags.classVersion, inputs, outputs, getClasspath(args)); + PathDowngrader.downgradePaths(Flags.classVersion, inputs, outputs, getClasspath(args)); + } finally { + for (FileSystem fileSystem : fileSystems) { + fileSystem.close(); + } + } } public static void shade(Map> args) throws IOException { @@ -224,16 +230,22 @@ public static void shade(Map> args) throws IOException { Map targets = new HashMap<>(); List fileSystems = new ArrayList<>(); - getTargets(args, targets, fileSystems); + try { + getTargets(args, targets, fileSystems); - List inputs = new ArrayList<>(); - List outputs = new ArrayList<>(); - for (Map.Entry entry : targets.entrySet()) { - inputs.add(entry.getKey()); - outputs.add(entry.getValue()); - } + List inputs = new ArrayList<>(); + List outputs = new ArrayList<>(); + for (Map.Entry entry : targets.entrySet()) { + inputs.add(entry.getKey()); + outputs.add(entry.getValue()); + } - ApiShader.shadeApis(Flags.classVersion, prefix, inputs, outputs, downgradedApi); + ApiShader.shadeApis(Flags.classVersion, prefix, inputs, outputs, downgradedApi); + } finally { + for (FileSystem fileSystem : fileSystems) { + fileSystem.close(); + } + } } public static void bootstrap(Map> args, List unparsed) throws MalformedURLException, ClassNotFoundException, NoSuchMethodException, InvocationTargetException, IllegalAccessException {