diff --git a/.gitea/workflows/build.yaml b/.gitea/workflows/build.yaml index 150b9ce..926bc13 100644 --- a/.gitea/workflows/build.yaml +++ b/.gitea/workflows/build.yaml @@ -4,17 +4,10 @@ on: branches: [ master ] jobs: build: - runs-on: hostinger + runs-on: woryzen steps: - name: Checkout sources uses: actions/checkout@v4 - - name: Setup Java - uses: actions/setup-java@v4 - with: - distribution: graalvm - java-version: 21 - - name: Setup Gradle - uses: gradle/actions/setup-gradle@v3 - name: Execute Gradle build env: PUBLISHER_TOKEN: ${{ secrets.PUBLISHER_TOKEN }} diff --git a/build.gradle b/build.gradle index aa19747..0279afa 100644 --- a/build.gradle +++ b/build.gradle @@ -16,7 +16,7 @@ allprojects { java { toolchain { - languageVersion = JavaLanguageVersion.of(21) + languageVersion = JavaLanguageVersion.of(25) } } @@ -30,7 +30,9 @@ allprojects { dependencies { testImplementation catalog.junit.jupiter.api + testImplementation catalog.junit.jupiter.params testRuntimeOnly catalog.junit.jupiter.engine + testRuntimeOnly catalog.junit.platform.launcher } tasks.named(JavaPlugin.COMPILE_JAVA_TASK_NAME, JavaCompile) { diff --git a/gradle.properties b/gradle.properties index 3fd479f..40adfb7 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,7 +1,7 @@ gitea.maven.url = https://gitea.woggioni.net/api/packages/woggioni/maven -lys.version = 2025.03.08 +lys.version = 2026.03.26 -version.envelope=2025.03.12 +version.envelope=2026.04.28 org.gradle.caching=true diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index a4b76b9..9bbc975 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index ed4c299..f6d2fc4 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.5.0-all.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/gradlew b/gradlew index f5feea6..faf9300 100755 --- a/gradlew +++ b/gradlew @@ -86,8 +86,7 @@ done # shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} # Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) -APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s -' "$PWD" ) || exit +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum @@ -206,7 +205,7 @@ fi DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Collect all arguments for the java command: -# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, # and any embedded shellness will be escaped. # * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be # treated as '${Hostname}' itself on the command line. diff --git a/src/main/java/net/woggioni/gradle/envelope/EnvelopeJarTask.java b/src/main/java/net/woggioni/gradle/envelope/EnvelopeJarTask.java index 678c691..558a5b7 100644 --- a/src/main/java/net/woggioni/gradle/envelope/EnvelopeJarTask.java +++ b/src/main/java/net/woggioni/gradle/envelope/EnvelopeJarTask.java @@ -25,6 +25,7 @@ import org.gradle.api.provider.ListProperty; import org.gradle.api.provider.MapProperty; import org.gradle.api.provider.Property; import org.gradle.api.provider.Provider; +import org.gradle.api.tasks.CacheableTask; import org.gradle.api.tasks.Input; import org.gradle.api.tasks.Optional; import org.gradle.api.tasks.TaskContainer; @@ -64,6 +65,7 @@ import static java.util.zip.Deflater.BEST_COMPRESSION; import static java.util.zip.Deflater.NO_COMPRESSION; import static net.woggioni.gradle.envelope.EnvelopePlugin.ENVELOPE_GROUP_NAME; +@CacheableTask @SuppressWarnings({"unused" }) public abstract class EnvelopeJarTask extends AbstractArchiveTask { @@ -291,9 +293,12 @@ public abstract class EnvelopeJarTask extends AbstractArchiveTask { mainAttributes.put(Attributes.Name.MANIFEST_VERSION, "1.0"); mainAttributes.put(Attributes.Name.MAIN_CLASS, Constants.DEFAULT_LAUNCHER); mainAttributes.putValue("Multi-Release", "true"); - mainAttributes.put(new Attributes.Name("Launcher-Agent-Class"), Constants.AGENT_LAUNCHER); - mainAttributes.put(new Attributes.Name("Can-Redefine-Classes"), "true"); - mainAttributes.put(new Attributes.Name("Can-Retransform-Classes"), "true"); + if(!getJavaAgents().isEmpty()) { + mainAttributes.put(new Attributes.Name("Launcher-Agent-Class"), Constants.AGENT_LAUNCHER); + mainAttributes.put(new Attributes.Name("Premain-Class"), Constants.AGENT_LAUNCHER); + mainAttributes.put(new Attributes.Name("Can-Redefine-Classes"), "true"); + mainAttributes.put(new Attributes.Name("Can-Retransform-Classes"), "true"); + } String separator = "" + Constants.EXTRA_CLASSPATH_ENTRY_SEPARATOR; ListProperty extraClasspathProperty = EnvelopeJarTask.this.getExtraClasspath(); java.util.Optional.of(extraClasspathProperty) diff --git a/src/main/java/net/woggioni/gradle/envelope/ExtractLauncherTask.java b/src/main/java/net/woggioni/gradle/envelope/ExtractLauncherTask.java index 27dffb0..d438bb6 100644 --- a/src/main/java/net/woggioni/gradle/envelope/ExtractLauncherTask.java +++ b/src/main/java/net/woggioni/gradle/envelope/ExtractLauncherTask.java @@ -4,6 +4,7 @@ import lombok.Getter; import lombok.SneakyThrows; import net.woggioni.envelope.Common; import org.gradle.api.DefaultTask; +import org.gradle.api.tasks.CacheableTask; import org.gradle.api.tasks.Input; import org.gradle.api.tasks.OutputFile; import org.gradle.api.tasks.TaskAction; @@ -13,6 +14,7 @@ import java.io.OutputStream; import java.nio.file.Files; import java.nio.file.Path; +@CacheableTask public class ExtractLauncherTask extends DefaultTask { @Getter(onMethod_ = @OutputFile)