Browse Source

Restrict "validateMultiReleaseJar" task to Java 25+

This commit configures the "validateMultiReleaseJar" Gradle task only if
the current Java runtime for Gradle is 25+.

Closes gh-35850
pull/35853/head
Brian Clozel 4 weeks ago
parent
commit
2cca56064e
  1. 13
      buildSrc/src/main/java/org/springframework/build/multirelease/MultiReleaseJarPlugin.java
  2. 3
      buildSrc/src/test/java/org/springframework/build/multirelease/MultiReleaseJarPluginTests.java

13
buildSrc/src/main/java/org/springframework/build/multirelease/MultiReleaseJarPlugin.java

@ -18,6 +18,7 @@ package org.springframework.build.multirelease;
import javax.inject.Inject; import javax.inject.Inject;
import org.gradle.api.JavaVersion;
import org.gradle.api.Plugin; import org.gradle.api.Plugin;
import org.gradle.api.Project; import org.gradle.api.Project;
import org.gradle.api.artifacts.ConfigurationContainer; import org.gradle.api.artifacts.ConfigurationContainer;
@ -64,10 +65,12 @@ public class MultiReleaseJarPlugin implements Plugin<Project> {
dependencies, dependencies,
objects); objects);
TaskProvider<MultiReleaseJarValidateTask> validateJarTask = tasks.register(VALIDATE_JAR_TASK_NAME, MultiReleaseJarValidateTask.class, (task) -> { if (JavaVersion.current().isCompatibleWith(JavaVersion.VERSION_25)) {
task.getJar().set(tasks.named("jar", Jar.class).flatMap(AbstractArchiveTask::getArchiveFile)); TaskProvider<MultiReleaseJarValidateTask> validateJarTask = tasks.register(VALIDATE_JAR_TASK_NAME, MultiReleaseJarValidateTask.class, (task) -> {
task.getJavaLauncher().set(task.getJavaToolchainService().launcherFor(spec -> spec.getLanguageVersion().set(JavaLanguageVersion.of(25)))); task.getJar().set(tasks.named("jar", Jar.class).flatMap(AbstractArchiveTask::getArchiveFile));
}); task.getJavaLauncher().set(task.getJavaToolchainService().launcherFor(spec -> spec.getLanguageVersion().set(JavaLanguageVersion.of(25))));
tasks.named("check", task -> task.dependsOn(validateJarTask)); });
tasks.named("check", task -> task.dependsOn(validateJarTask));
}
} }
} }

3
buildSrc/src/test/java/org/springframework/build/multirelease/MultiReleaseJarPluginTests.java

@ -29,6 +29,8 @@ import org.gradle.testkit.runner.GradleRunner;
import org.gradle.testkit.runner.UnexpectedBuildFailure; import org.gradle.testkit.runner.UnexpectedBuildFailure;
import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.condition.DisabledForJreRange;
import org.junit.jupiter.api.condition.JRE;
import org.junit.jupiter.api.io.TempDir; import org.junit.jupiter.api.io.TempDir;
import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat;
@ -122,6 +124,7 @@ public class MultiReleaseJarPluginTests {
} }
@Test @Test
@DisabledForJreRange(max = JRE.JAVA_24, disabledReason = "'jar --validate' is available as of Java 25")
void validateJar() throws IOException { void validateJar() throws IOException {
writeBuildFile(""" writeBuildFile("""
plugins { plugins {

Loading…
Cancel
Save