diff --git a/.teamcity/src/main/kotlin/common/JvmCategory.kt b/.teamcity/src/main/kotlin/common/JvmCategory.kt
index 345c2c649fa0..00a4e06f4e24 100644
--- a/.teamcity/src/main/kotlin/common/JvmCategory.kt
+++ b/.teamcity/src/main/kotlin/common/JvmCategory.kt
@@ -24,7 +24,7 @@ enum class JvmCategory(
// Oracle doesn't provide zip JDK distribution for Windows anymore, we avoid using it
MIN_VERSION_WINDOWS(JvmVendor.openjdk, JvmVersion.java8),
MAX_LTS_VERSION(JvmVendor.openjdk, JvmVersion.java17),
- MAX_VERSION(JvmVendor.openjdk, JvmVersion.java19),
+ MAX_VERSION(JvmVendor.oracle, JvmVersion.java20),
SANTA_TRACKER_SMOKE_TEST_VERSION(JvmVendor.openjdk, JvmVersion.java17),
- EXPERIMENTAL_VERSION(JvmVendor.openjdk, JvmVersion.java19)
+ EXPERIMENTAL_VERSION(JvmVendor.oracle, JvmVersion.java20)
}
diff --git a/.teamcity/src/main/kotlin/common/JvmVendor.kt b/.teamcity/src/main/kotlin/common/JvmVendor.kt
index b2e97b455ff9..692acca8e40f 100644
--- a/.teamcity/src/main/kotlin/common/JvmVendor.kt
+++ b/.teamcity/src/main/kotlin/common/JvmVendor.kt
@@ -18,6 +18,6 @@ package common
enum class JvmVendor(val displayName: String) {
oracle("Oracle"),
- openjdk("Openjdk"),
+ openjdk("Adoptium"),
zulu("Zulu")
}
diff --git a/.teamcity/src/main/kotlin/common/JvmVersion.kt b/.teamcity/src/main/kotlin/common/JvmVersion.kt
index 7ac2c9525710..2ea59b7d9893 100644
--- a/.teamcity/src/main/kotlin/common/JvmVersion.kt
+++ b/.teamcity/src/main/kotlin/common/JvmVersion.kt
@@ -20,5 +20,5 @@ enum class JvmVersion(val major: Int) {
java8(8),
java11(11),
java17(17),
- java19(19)
+ java20(20)
}
diff --git a/.teamcity/src/test/kotlin/ApplyDefaultConfigurationTest.kt b/.teamcity/src/test/kotlin/ApplyDefaultConfigurationTest.kt
index 5d28361754a2..62529fd765dd 100644
--- a/.teamcity/src/test/kotlin/ApplyDefaultConfigurationTest.kt
+++ b/.teamcity/src/test/kotlin/ApplyDefaultConfigurationTest.kt
@@ -141,8 +141,8 @@ class ApplyDefaultConfigurationTest {
private
fun expectedRunnerParam(daemon: String = "--daemon", extraParameters: String = "", os: Os = Os.LINUX): String {
- val linuxPaths = "-Porg.gradle.java.installations.paths=%linux.java8.oracle.64bit%,%linux.java11.openjdk.64bit%,%linux.java17.openjdk.64bit%,%linux.java19.openjdk.64bit%,%linux.java8.openjdk.64bit%"
- val windowsPaths = "-Porg.gradle.java.installations.paths=%windows.java8.oracle.64bit%,%windows.java11.openjdk.64bit%,%windows.java17.openjdk.64bit%,%windows.java19.openjdk.64bit%,%windows.java8.openjdk.64bit%"
+ val linuxPaths = "-Porg.gradle.java.installations.paths=%linux.java8.oracle.64bit%,%linux.java11.openjdk.64bit%,%linux.java17.openjdk.64bit%,%linux.java20.openjdk.64bit%,%linux.java8.openjdk.64bit%"
+ val windowsPaths = "-Porg.gradle.java.installations.paths=%windows.java8.oracle.64bit%,%windows.java11.openjdk.64bit%,%windows.java17.openjdk.64bit%,%windows.java20.openjdk.64bit%,%windows.java8.openjdk.64bit%"
val expectedInstallationPaths = if (os == Os.WINDOWS) windowsPaths else linuxPaths
return "-Dorg.gradle.workers.max=%maxParallelForks% -PmaxParallelForks=%maxParallelForks% $pluginPortalUrlOverride -s --no-configuration-cache %additional.gradle.parameters% $daemon --continue $extraParameters \"-Dscan.tag.Check\" \"-Dscan.tag.\" -PteamCityBuildId=%teamcity.build.id% \"$expectedInstallationPaths\" -Porg.gradle.java.installations.auto-download=false"
}
diff --git a/.teamcity/src/test/kotlin/PerformanceTestBuildTypeTest.kt b/.teamcity/src/test/kotlin/PerformanceTestBuildTypeTest.kt
index 4eeb6b070efe..5c71708aca14 100644
--- a/.teamcity/src/test/kotlin/PerformanceTestBuildTypeTest.kt
+++ b/.teamcity/src/test/kotlin/PerformanceTestBuildTypeTest.kt
@@ -91,7 +91,7 @@ class PerformanceTestBuildTypeTest {
"-PautoDownloadAndroidStudio=true",
"-PrunAndroidStudioInHeadlessMode=true",
"-Porg.gradle.java.installations.auto-download=false",
- "\"-Porg.gradle.java.installations.paths=%linux.java8.oracle.64bit%,%linux.java11.openjdk.64bit%,%linux.java17.openjdk.64bit%,%linux.java19.openjdk.64bit%,%linux.java8.openjdk.64bit%\"",
+ "\"-Porg.gradle.java.installations.paths=%linux.java8.oracle.64bit%,%linux.java11.openjdk.64bit%,%linux.java17.openjdk.64bit%,%linux.java20.openjdk.64bit%,%linux.java8.openjdk.64bit%\"",
"\"-Porg.gradle.performance.branchName=%teamcity.build.branch%\"",
"\"-Porg.gradle.performance.db.url=%performance.db.url%\"",
"\"-Porg.gradle.performance.db.username=%performance.db.username%\"",
diff --git a/subprojects/build-init/src/integTest/groovy/org/gradle/buildinit/plugins/MavenConversionDynamicPomIntegrationTest.groovy b/subprojects/build-init/src/integTest/groovy/org/gradle/buildinit/plugins/MavenConversionDynamicPomIntegrationTest.groovy
new file mode 100644
index 000000000000..a0e68bb5834c
--- /dev/null
+++ b/subprojects/build-init/src/integTest/groovy/org/gradle/buildinit/plugins/MavenConversionDynamicPomIntegrationTest.groovy
@@ -0,0 +1,219 @@
+/*
+ * Copyright 2012 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.gradle.buildinit.plugins
+
+import org.gradle.api.JavaVersion
+import org.gradle.buildinit.plugins.internal.modifiers.BuildInitDsl
+import org.gradle.internal.jvm.Jvm
+import org.gradle.test.precondition.Requires
+import org.gradle.test.preconditions.UnitTestPreconditions
+
+/**
+ * MavenConversionIntegrationTest tests that use a dynamically-generated POM to ensure cross-version compatibility.
+ */
+abstract class MavenConversionDynamicPomIntegrationTest extends AbstractInitIntegrationSpec {
+
+ @Override
+ String subprojectName() { null }
+
+ abstract BuildInitDsl getScriptDsl()
+
+ def setup() {
+ /**
+ * We need to configure the local maven repository explicitly as
+ * RepositorySystem.defaultUserLocalRepository is statically initialised and used when
+ * creating multiple ProjectBuildingRequest.
+ * */
+ m2.generateUserSettingsFile(m2.mavenRepo())
+ using m2
+
+ targetDir.file("src/main/java/Foo.java") << """
+ import org.apache.commons.lang.StringUtils;
+
+ public class Foo {
+ public String toString() {
+ return StringUtils.normalizeSpace("hi there!");
+ }
+ }
+ """
+ targetDir.file("src/test/java/FooTest.java") << """
+ import org.junit.Test;
+
+ public class FooTest {
+ @Test public void test() {
+ assert false: "test failure";
+ }
+ }
+ """
+ }
+
+ def "singleModule with same source and target"() {
+ def source = Jvm.current().javaVersion
+ def target = Jvm.current().javaVersion
+ writePom(source, target)
+
+ def dsl = dslFixtureFor(scriptDsl)
+
+ when:
+ run 'init', '--dsl', scriptDsl.id as String
+
+ then:
+ dsl.assertGradleFilesGenerated()
+ dsl.getSettingsFile().text.contains("rootProject.name = 'util'") || dsl.getSettingsFile().text.contains('rootProject.name = "util"')
+ MavenConversionIntegrationTest.assertContainsPublishingConfig(dsl.getBuildFile(), scriptDsl)
+ dsl.getBuildFile(targetDir).text.contains("java.sourceCompatibility = JavaVersion.${source.name()}")
+ !dsl.getBuildFile(targetDir).text.contains("java.targetCompatibility = ")
+
+ when:
+ fails 'clean', 'build'
+
+ then:
+ // when tests fail, jar may not exist
+ failure.assertHasDescription("Execution failed for task ':test'.")
+ failure.assertHasCause("There were failing tests.")
+ }
+
+ def "singleModule with different source and target"() {
+ def source = Jvm.current().javaVersion.previous() as JavaVersion
+ def target = Jvm.current().javaVersion
+ writePom(source, target)
+
+ def dsl = dslFixtureFor(scriptDsl)
+
+ when:
+ run 'init', '--dsl', scriptDsl.id as String
+
+ then:
+ dsl.assertGradleFilesGenerated()
+ dsl.getSettingsFile().text.contains("rootProject.name = 'util'") || dsl.getSettingsFile().text.contains('rootProject.name = "util"')
+ MavenConversionIntegrationTest.assertContainsPublishingConfig(dsl.getBuildFile(), scriptDsl)
+ dsl.getBuildFile(targetDir).text.contains("java.sourceCompatibility = JavaVersion.${source.name()}")
+ dsl.getBuildFile(targetDir).text.contains("java.targetCompatibility = JavaVersion.${target.name()}")
+
+ when:
+ fails 'clean', 'build'
+
+ then:
+ // when tests fail, jar may not exist
+ failure.assertHasDescription("Execution failed for task ':test'.")
+ failure.assertHasCause("There were failing tests.")
+ }
+
+ @Requires(UnitTestPreconditions.Jdk9OrLater)
+ def "singleModule with just source"() {
+ def source = Jvm.current().javaVersion
+ writePom(source, null)
+
+ def dsl = dslFixtureFor(scriptDsl)
+
+ when:
+ run 'init', '--dsl', scriptDsl.id as String
+
+ then:
+ dsl.assertGradleFilesGenerated()
+ dsl.getSettingsFile().text.contains("rootProject.name = 'util'") || dsl.getSettingsFile().text.contains('rootProject.name = "util"')
+ MavenConversionIntegrationTest.assertContainsPublishingConfig(dsl.getBuildFile(), scriptDsl)
+ dsl.getBuildFile(targetDir).text.contains("java.sourceCompatibility = JavaVersion.${source.name()}")
+ // target defaults to 1.8
+ dsl.getBuildFile(targetDir).text.contains("java.targetCompatibility = JavaVersion.VERSION_1_8")
+
+ when:
+ fails 'clean', 'build'
+
+ then:
+ // if the source and target are different, we can't actually compile because javac requires them to be the same
+ failure.assertHasDescription("Execution failed for task ':compileJava'.")
+ // May or may not be part of the failure cause (varies by javac version)
+ errorOutput.contains("source release ${source} requires target release ${source}")
+ }
+
+ @Requires(UnitTestPreconditions.Jdk9OrLater)
+ def "singleModule with just target"() {
+ def target = Jvm.current().javaVersion
+ writePom(null, target)
+
+ def dsl = dslFixtureFor(scriptDsl)
+
+ when:
+ run 'init', '--dsl', scriptDsl.id as String
+
+ then:
+ dsl.assertGradleFilesGenerated()
+ dsl.getSettingsFile().text.contains("rootProject.name = 'util'") || dsl.getSettingsFile().text.contains('rootProject.name = "util"')
+ MavenConversionIntegrationTest.assertContainsPublishingConfig(dsl.getBuildFile(), scriptDsl)
+ // source defaults to 1.8
+ dsl.getBuildFile(targetDir).text.contains("java.sourceCompatibility = JavaVersion.VERSION_1_8")
+ dsl.getBuildFile(targetDir).text.contains("java.targetCompatibility = JavaVersion.${target.name()}")
+
+ when:
+ fails 'clean', 'build'
+
+ then:
+ // when tests fail, jar may not exist
+ failure.assertHasDescription("Execution failed for task ':test'.")
+ failure.assertHasCause("There were failing tests.")
+ }
+
+ private writePom(source, target) {
+ // Dynamically generated POM file, based on MavenConversionIntegrationTest#singleModule pom.xml
+ targetDir.file("pom.xml") << """
+
+ 4.0.0
+
+ util
+ util
+ 2.5
+ jar
+
+
+
+ commons-lang
+ commons-lang
+ 2.6
+
+
+ junit
+ junit
+ 4.13.1
+ test
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+ ${source == null ? "" : ""}
+ ${target == null ? "" : "${target}"}
+
+
+
+
+
+ """
+ }
+}
+
+class KotlinDslMavenConversionDynamicPomIntegrationTest extends MavenConversionDynamicPomIntegrationTest {
+ BuildInitDsl scriptDsl = BuildInitDsl.KOTLIN
+}
+
+class GroovyDslMavenConversionDynamicPomIntegrationTest extends MavenConversionDynamicPomIntegrationTest {
+ BuildInitDsl scriptDsl = BuildInitDsl.GROOVY
+}
diff --git a/subprojects/build-init/src/integTest/groovy/org/gradle/buildinit/plugins/MavenConversionIntegrationTest.groovy b/subprojects/build-init/src/integTest/groovy/org/gradle/buildinit/plugins/MavenConversionIntegrationTest.groovy
index 9d3f625c3d25..4fe9c8989732 100644
--- a/subprojects/build-init/src/integTest/groovy/org/gradle/buildinit/plugins/MavenConversionIntegrationTest.groovy
+++ b/subprojects/build-init/src/integTest/groovy/org/gradle/buildinit/plugins/MavenConversionIntegrationTest.groovy
@@ -287,7 +287,7 @@ tasks.withType() {
}
}
- private static void assertContainsPublishingConfig(TestFile buildScript, BuildInitDsl dsl, String indent = "", List additionalArchiveTasks = []) {
+ static void assertContainsPublishingConfig(TestFile buildScript, BuildInitDsl dsl, String indent = "", List additionalArchiveTasks = []) {
def text = buildScript.text
if (dsl == BuildInitDsl.GROOVY) {
assert text.contains("id 'maven-publish'")
diff --git a/subprojects/build-init/src/integTest/resources/org/gradle/buildinit/plugins/MavenConversionIntegrationTest/emptySource/some-thing/pom.xml b/subprojects/build-init/src/integTest/resources/org/gradle/buildinit/plugins/MavenConversionIntegrationTest/emptySource/some-thing/pom.xml
index 725dea469840..2651837a87b6 100644
--- a/subprojects/build-init/src/integTest/resources/org/gradle/buildinit/plugins/MavenConversionIntegrationTest/emptySource/some-thing/pom.xml
+++ b/subprojects/build-init/src/integTest/resources/org/gradle/buildinit/plugins/MavenConversionIntegrationTest/emptySource/some-thing/pom.xml
@@ -12,7 +12,6 @@
maven-compiler-plugin
- 1.7
diff --git a/subprojects/build-init/src/integTest/resources/org/gradle/buildinit/plugins/MavenConversionIntegrationTest/emptyTarget/some-thing/pom.xml b/subprojects/build-init/src/integTest/resources/org/gradle/buildinit/plugins/MavenConversionIntegrationTest/emptyTarget/some-thing/pom.xml
index 165f95bc9326..12185c0aff06 100644
--- a/subprojects/build-init/src/integTest/resources/org/gradle/buildinit/plugins/MavenConversionIntegrationTest/emptyTarget/some-thing/pom.xml
+++ b/subprojects/build-init/src/integTest/resources/org/gradle/buildinit/plugins/MavenConversionIntegrationTest/emptyTarget/some-thing/pom.xml
@@ -11,7 +11,6 @@
org.apache.maven.plugins
maven-compiler-plugin
-
diff --git a/subprojects/build-init/src/integTest/resources/org/gradle/buildinit/plugins/MavenConversionIntegrationTest/enforcerplugin/some-thing/pom.xml b/subprojects/build-init/src/integTest/resources/org/gradle/buildinit/plugins/MavenConversionIntegrationTest/enforcerplugin/some-thing/pom.xml
index 82ce123ea4d9..86e35917a0c1 100644
--- a/subprojects/build-init/src/integTest/resources/org/gradle/buildinit/plugins/MavenConversionIntegrationTest/enforcerplugin/some-thing/pom.xml
+++ b/subprojects/build-init/src/integTest/resources/org/gradle/buildinit/plugins/MavenConversionIntegrationTest/enforcerplugin/some-thing/pom.xml
@@ -41,10 +41,6 @@
org.apache.maven.plugins
maven-compiler-plugin
-
-
- 1.7
-
diff --git a/subprojects/build-init/src/integTest/resources/org/gradle/buildinit/plugins/MavenConversionIntegrationTest/expandProperties/some-thing/pom.xml b/subprojects/build-init/src/integTest/resources/org/gradle/buildinit/plugins/MavenConversionIntegrationTest/expandProperties/some-thing/pom.xml
index 0f46599ee7f2..2bfa685230a6 100644
--- a/subprojects/build-init/src/integTest/resources/org/gradle/buildinit/plugins/MavenConversionIntegrationTest/expandProperties/some-thing/pom.xml
+++ b/subprojects/build-init/src/integTest/resources/org/gradle/buildinit/plugins/MavenConversionIntegrationTest/expandProperties/some-thing/pom.xml
@@ -30,10 +30,6 @@
org.apache.maven.plugins
maven-compiler-plugin
${compiler-version}
-
-
- 1.7
-
diff --git a/subprojects/build-init/src/integTest/resources/org/gradle/buildinit/plugins/MavenConversionIntegrationTest/flatmultimodule/some-thing/webinar-parent/pom.xml b/subprojects/build-init/src/integTest/resources/org/gradle/buildinit/plugins/MavenConversionIntegrationTest/flatmultimodule/some-thing/webinar-parent/pom.xml
index 3b059f3660bf..a81aa4e3aa35 100644
--- a/subprojects/build-init/src/integTest/resources/org/gradle/buildinit/plugins/MavenConversionIntegrationTest/flatmultimodule/some-thing/webinar-parent/pom.xml
+++ b/subprojects/build-init/src/integTest/resources/org/gradle/buildinit/plugins/MavenConversionIntegrationTest/flatmultimodule/some-thing/webinar-parent/pom.xml
@@ -33,10 +33,6 @@
org.apache.maven.plugins
maven-compiler-plugin
-
-
- 1.7
-
diff --git a/subprojects/build-init/src/integTest/resources/org/gradle/buildinit/plugins/MavenConversionIntegrationTest/insecureProtocolAllow/some-thing/pom.xml b/subprojects/build-init/src/integTest/resources/org/gradle/buildinit/plugins/MavenConversionIntegrationTest/insecureProtocolAllow/some-thing/pom.xml
index b522079b3ac7..b02c108e94aa 100644
--- a/subprojects/build-init/src/integTest/resources/org/gradle/buildinit/plugins/MavenConversionIntegrationTest/insecureProtocolAllow/some-thing/pom.xml
+++ b/subprojects/build-init/src/integTest/resources/org/gradle/buildinit/plugins/MavenConversionIntegrationTest/insecureProtocolAllow/some-thing/pom.xml
@@ -44,10 +44,6 @@
org.apache.maven.plugins
maven-compiler-plugin
-
-
- 1.7
-
diff --git a/subprojects/build-init/src/integTest/resources/org/gradle/buildinit/plugins/MavenConversionIntegrationTest/insecureProtocolDefaultHandling/some-thing/pom.xml b/subprojects/build-init/src/integTest/resources/org/gradle/buildinit/plugins/MavenConversionIntegrationTest/insecureProtocolDefaultHandling/some-thing/pom.xml
index b522079b3ac7..b02c108e94aa 100644
--- a/subprojects/build-init/src/integTest/resources/org/gradle/buildinit/plugins/MavenConversionIntegrationTest/insecureProtocolDefaultHandling/some-thing/pom.xml
+++ b/subprojects/build-init/src/integTest/resources/org/gradle/buildinit/plugins/MavenConversionIntegrationTest/insecureProtocolDefaultHandling/some-thing/pom.xml
@@ -44,10 +44,6 @@
org.apache.maven.plugins
maven-compiler-plugin
-
-
- 1.7
-
diff --git a/subprojects/build-init/src/integTest/resources/org/gradle/buildinit/plugins/MavenConversionIntegrationTest/insecureProtocolFail/some-thing/pom.xml b/subprojects/build-init/src/integTest/resources/org/gradle/buildinit/plugins/MavenConversionIntegrationTest/insecureProtocolFail/some-thing/pom.xml
index b522079b3ac7..b02c108e94aa 100644
--- a/subprojects/build-init/src/integTest/resources/org/gradle/buildinit/plugins/MavenConversionIntegrationTest/insecureProtocolFail/some-thing/pom.xml
+++ b/subprojects/build-init/src/integTest/resources/org/gradle/buildinit/plugins/MavenConversionIntegrationTest/insecureProtocolFail/some-thing/pom.xml
@@ -44,10 +44,6 @@
org.apache.maven.plugins
maven-compiler-plugin
-
-
- 1.7
-
diff --git a/subprojects/build-init/src/integTest/resources/org/gradle/buildinit/plugins/MavenConversionIntegrationTest/insecureProtocolUpgrade/some-thing/pom.xml b/subprojects/build-init/src/integTest/resources/org/gradle/buildinit/plugins/MavenConversionIntegrationTest/insecureProtocolUpgrade/some-thing/pom.xml
index b522079b3ac7..b02c108e94aa 100644
--- a/subprojects/build-init/src/integTest/resources/org/gradle/buildinit/plugins/MavenConversionIntegrationTest/insecureProtocolUpgrade/some-thing/pom.xml
+++ b/subprojects/build-init/src/integTest/resources/org/gradle/buildinit/plugins/MavenConversionIntegrationTest/insecureProtocolUpgrade/some-thing/pom.xml
@@ -44,10 +44,6 @@
org.apache.maven.plugins
maven-compiler-plugin
-
-
- 1.7
-
diff --git a/subprojects/build-init/src/integTest/resources/org/gradle/buildinit/plugins/MavenConversionIntegrationTest/insecureProtocolWarn/some-thing/pom.xml b/subprojects/build-init/src/integTest/resources/org/gradle/buildinit/plugins/MavenConversionIntegrationTest/insecureProtocolWarn/some-thing/pom.xml
index b522079b3ac7..b02c108e94aa 100644
--- a/subprojects/build-init/src/integTest/resources/org/gradle/buildinit/plugins/MavenConversionIntegrationTest/insecureProtocolWarn/some-thing/pom.xml
+++ b/subprojects/build-init/src/integTest/resources/org/gradle/buildinit/plugins/MavenConversionIntegrationTest/insecureProtocolWarn/some-thing/pom.xml
@@ -44,10 +44,6 @@
org.apache.maven.plugins
maven-compiler-plugin
-
-
- 1.7
-
diff --git a/subprojects/build-init/src/integTest/resources/org/gradle/buildinit/plugins/MavenConversionIntegrationTest/multiModule/some-thing/pom.xml b/subprojects/build-init/src/integTest/resources/org/gradle/buildinit/plugins/MavenConversionIntegrationTest/multiModule/some-thing/pom.xml
index e7daab1e756a..1149d2da4b96 100644
--- a/subprojects/build-init/src/integTest/resources/org/gradle/buildinit/plugins/MavenConversionIntegrationTest/multiModule/some-thing/pom.xml
+++ b/subprojects/build-init/src/integTest/resources/org/gradle/buildinit/plugins/MavenConversionIntegrationTest/multiModule/some-thing/pom.xml
@@ -33,10 +33,6 @@
org.apache.maven.plugins
maven-compiler-plugin
-
-
- 1.7
-
org.apache.maven.plugins
diff --git a/subprojects/build-init/src/integTest/resources/org/gradle/buildinit/plugins/MavenConversionIntegrationTest/multiModuleNoBackReferences/some-thing/pom.xml b/subprojects/build-init/src/integTest/resources/org/gradle/buildinit/plugins/MavenConversionIntegrationTest/multiModuleNoBackReferences/some-thing/pom.xml
index e7daab1e756a..1149d2da4b96 100644
--- a/subprojects/build-init/src/integTest/resources/org/gradle/buildinit/plugins/MavenConversionIntegrationTest/multiModuleNoBackReferences/some-thing/pom.xml
+++ b/subprojects/build-init/src/integTest/resources/org/gradle/buildinit/plugins/MavenConversionIntegrationTest/multiModuleNoBackReferences/some-thing/pom.xml
@@ -33,10 +33,6 @@
org.apache.maven.plugins
maven-compiler-plugin
-
-
- 1.7
-
org.apache.maven.plugins
diff --git a/subprojects/build-init/src/integTest/resources/org/gradle/buildinit/plugins/MavenConversionIntegrationTest/multiModuleWithNestedParent/some-thing/pom.xml b/subprojects/build-init/src/integTest/resources/org/gradle/buildinit/plugins/MavenConversionIntegrationTest/multiModuleWithNestedParent/some-thing/pom.xml
index 2f0c48830561..52a0d911cdc0 100644
--- a/subprojects/build-init/src/integTest/resources/org/gradle/buildinit/plugins/MavenConversionIntegrationTest/multiModuleWithNestedParent/some-thing/pom.xml
+++ b/subprojects/build-init/src/integTest/resources/org/gradle/buildinit/plugins/MavenConversionIntegrationTest/multiModuleWithNestedParent/some-thing/pom.xml
@@ -25,10 +25,6 @@
org.apache.maven.plugins
maven-compiler-plugin
-
-
- 1.7
-
diff --git a/subprojects/build-init/src/integTest/resources/org/gradle/buildinit/plugins/MavenConversionIntegrationTest/multiModuleWithRemoteParent/some-thing/pom.xml b/subprojects/build-init/src/integTest/resources/org/gradle/buildinit/plugins/MavenConversionIntegrationTest/multiModuleWithRemoteParent/some-thing/pom.xml
index 4106940c052e..2df695e8186d 100644
--- a/subprojects/build-init/src/integTest/resources/org/gradle/buildinit/plugins/MavenConversionIntegrationTest/multiModuleWithRemoteParent/some-thing/pom.xml
+++ b/subprojects/build-init/src/integTest/resources/org/gradle/buildinit/plugins/MavenConversionIntegrationTest/multiModuleWithRemoteParent/some-thing/pom.xml
@@ -47,10 +47,6 @@
org.apache.maven.plugins
maven-compiler-plugin
-
-
- 1.7
-
diff --git a/subprojects/build-init/src/integTest/resources/org/gradle/buildinit/plugins/MavenConversionIntegrationTest/remoteparent/some-thing/pom.xml b/subprojects/build-init/src/integTest/resources/org/gradle/buildinit/plugins/MavenConversionIntegrationTest/remoteparent/some-thing/pom.xml
index ea72edb34d1c..a2ce4e6e483d 100644
--- a/subprojects/build-init/src/integTest/resources/org/gradle/buildinit/plugins/MavenConversionIntegrationTest/remoteparent/some-thing/pom.xml
+++ b/subprojects/build-init/src/integTest/resources/org/gradle/buildinit/plugins/MavenConversionIntegrationTest/remoteparent/some-thing/pom.xml
@@ -23,10 +23,6 @@
org.apache.maven.plugins
maven-compiler-plugin
-
-
- 1.7
-
diff --git a/subprojects/build-init/src/integTest/resources/org/gradle/buildinit/plugins/MavenConversionIntegrationTest/singleModule/some-thing/pom.xml b/subprojects/build-init/src/integTest/resources/org/gradle/buildinit/plugins/MavenConversionIntegrationTest/singleModule/some-thing/pom.xml
index 069d16d99287..bf9c7ae63f4d 100644
--- a/subprojects/build-init/src/integTest/resources/org/gradle/buildinit/plugins/MavenConversionIntegrationTest/singleModule/some-thing/pom.xml
+++ b/subprojects/build-init/src/integTest/resources/org/gradle/buildinit/plugins/MavenConversionIntegrationTest/singleModule/some-thing/pom.xml
@@ -25,10 +25,6 @@
org.apache.maven.plugins
maven-compiler-plugin
-
-
- 1.7
-
diff --git a/subprojects/build-init/src/integTest/resources/org/gradle/buildinit/plugins/MavenConversionIntegrationTest/testsJar/some-thing/pom.xml b/subprojects/build-init/src/integTest/resources/org/gradle/buildinit/plugins/MavenConversionIntegrationTest/testsJar/some-thing/pom.xml
index 3b036bfe13be..019e27def343 100644
--- a/subprojects/build-init/src/integTest/resources/org/gradle/buildinit/plugins/MavenConversionIntegrationTest/testsJar/some-thing/pom.xml
+++ b/subprojects/build-init/src/integTest/resources/org/gradle/buildinit/plugins/MavenConversionIntegrationTest/testsJar/some-thing/pom.xml
@@ -36,10 +36,6 @@
org.apache.maven.plugins
maven-compiler-plugin
-
-
- 1.7
-
diff --git a/subprojects/build-init/src/main/resources/org/gradle/buildinit/tasks/templates/library-versions.properties b/subprojects/build-init/src/main/resources/org/gradle/buildinit/tasks/templates/library-versions.properties
index 5853ab3c1670..6832f11a24e5 100644
--- a/subprojects/build-init/src/main/resources/org/gradle/buildinit/tasks/templates/library-versions.properties
+++ b/subprojects/build-init/src/main/resources/org/gradle/buildinit/tasks/templates/library-versions.properties
@@ -1,16 +1,16 @@
#Generated file, please do not edit - Version values used in build-init templates
commons-math=3.6.1
commons-text=1.10.0
-groovy=3.0.17
-guava=31.1-jre
-junit-jupiter=5.9.2
+groovy=3.0.18
+guava=32.1.1-jre
+junit-jupiter=5.9.3
junit=4.13.2
kotlin=1.9.0
-scala-library=2.13.10
+scala-library=2.13.11
scala-xml=1.2.0
scala=2.13
-scalatest=3.2.15
+scalatest=3.2.16
scalatestplus-junit=3.2.2.0
slf4j=2.0.7
spock=2.2-groovy-3.0
-testng=7.5
+testng=7.5.1
diff --git a/subprojects/core/src/integTest/groovy/org/gradle/JansiEndUserIntegrationTest.groovy b/subprojects/core/src/integTest/groovy/org/gradle/JansiEndUserIntegrationTest.groovy
index a08109100e44..0a2e4c578fb1 100644
--- a/subprojects/core/src/integTest/groovy/org/gradle/JansiEndUserIntegrationTest.groovy
+++ b/subprojects/core/src/integTest/groovy/org/gradle/JansiEndUserIntegrationTest.groovy
@@ -17,12 +17,14 @@
package org.gradle
import org.gradle.integtests.fixtures.AbstractIntegrationSpec
+import org.gradle.integtests.fixtures.AvailableJavaHomes
+import org.gradle.integtests.fixtures.jvm.JavaToolchainFixture
import spock.lang.Ignore
import spock.lang.Issue
import static org.gradle.internal.nativeintegration.jansi.JansiBootPathConfigurer.JANSI_LIBRARY_PATH_SYS_PROP
-class JansiEndUserIntegrationTest extends AbstractIntegrationSpec {
+class JansiEndUserIntegrationTest extends AbstractIntegrationSpec implements JavaToolchainFixture {
private final static String JANSI_VERSION = '1.11'
@@ -87,7 +89,7 @@ class JansiEndUserIntegrationTest extends AbstractIntegrationSpec {
public class MyClass {}
"""
- succeeds 'compileJava'
+ withInstallations(AvailableJavaHomes.jdk11).succeeds 'compileJava'
then:
outputContains('Hello World')
@@ -97,7 +99,10 @@ class JansiEndUserIntegrationTest extends AbstractIntegrationSpec {
when:
AnnotationProcessorPublisher annotationProcessorPublisher = new AnnotationProcessorPublisher()
annotationProcessorPublisher.writeSourceFiles()
- inDirectory(annotationProcessorPublisher.projectDir).withTasks('publish').run()
+ withInstallations(AvailableJavaHomes.jdk11)
+ .inDirectory(annotationProcessorPublisher.projectDir)
+ .withTasks('publish')
+ .run()
then:
annotationProcessorPublisher.publishedJarFile.isFile()
@@ -123,7 +128,7 @@ class JansiEndUserIntegrationTest extends AbstractIntegrationSpec {
class MyClass {}
"""
- succeeds 'compileGroovy'
+ withInstallations(AvailableJavaHomes.jdk11).succeeds 'compileGroovy'
then:
outputContains('Hello World')
@@ -139,6 +144,7 @@ class JansiEndUserIntegrationTest extends AbstractIntegrationSpec {
static String annotationProcessorDependency(File repoDir, String processorDependency) {
"""
+ java.toolchain.languageVersion = JavaLanguageVersion.of(11)
java.sourceCompatibility = '1.7'
repositories {
@@ -200,6 +206,7 @@ class JansiEndUserIntegrationTest extends AbstractIntegrationSpec {
group = '$group'
version = '$version'
+ java.toolchain.languageVersion = JavaLanguageVersion.of(11)
java.sourceCompatibility = '1.7'
dependencies {
diff --git a/subprojects/internal-instrumentation-processor/src/test/groovy/org/gradle/internal/instrumentation/InstrumentationCodeGenTest.groovy b/subprojects/internal-instrumentation-processor/src/test/groovy/org/gradle/internal/instrumentation/InstrumentationCodeGenTest.groovy
index ec3f71136c71..8f1d669581a8 100644
--- a/subprojects/internal-instrumentation-processor/src/test/groovy/org/gradle/internal/instrumentation/InstrumentationCodeGenTest.groovy
+++ b/subprojects/internal-instrumentation-processor/src/test/groovy/org/gradle/internal/instrumentation/InstrumentationCodeGenTest.groovy
@@ -26,6 +26,7 @@ import spock.lang.Specification
import javax.tools.JavaFileObject
import static com.google.testing.compile.Compiler.javac
+import static org.junit.Assume.assumeTrue
abstract class InstrumentationCodeGenTest extends Specification {
@@ -49,6 +50,7 @@ abstract class InstrumentationCodeGenTest extends Specification {
}
private static com.google.testing.compile.Compiler getCompiler() {
+ assumeTrue("Java 20+ do not support --release=8", Jvm.current().javaVersion < JavaVersion.VERSION_20)
if (Jvm.current().javaVersion.isCompatibleWith(JavaVersion.VERSION_1_9)) {
return javac().withOptions("--release=8")
}
diff --git a/subprojects/internal-integ-testing/src/main/groovy/org/gradle/integtests/fixtures/executer/DefaultGradleDistribution.groovy b/subprojects/internal-integ-testing/src/main/groovy/org/gradle/integtests/fixtures/executer/DefaultGradleDistribution.groovy
index 178c5ae66361..ab2b338a0e15 100644
--- a/subprojects/internal-integ-testing/src/main/groovy/org/gradle/integtests/fixtures/executer/DefaultGradleDistribution.groovy
+++ b/subprojects/internal-integ-testing/src/main/groovy/org/gradle/integtests/fixtures/executer/DefaultGradleDistribution.groovy
@@ -142,7 +142,12 @@ class DefaultGradleDistribution implements GradleDistribution {
return javaVersion >= JavaVersion.VERSION_1_8 && javaVersion <= JavaVersion.VERSION_18
}
- return javaVersion >= JavaVersion.VERSION_1_8 && maybeEnforceHighestVersion(javaVersion, JavaVersion.VERSION_19)
+ // 8.3 added JDK 20 support
+ if (isSameOrOlder("8.2.1")) {
+ return javaVersion >= JavaVersion.VERSION_1_8 && javaVersion <= JavaVersion.VERSION_19
+ }
+
+ return javaVersion >= JavaVersion.VERSION_1_8 && maybeEnforceHighestVersion(javaVersion, JavaVersion.VERSION_20)
}
@Override
diff --git a/subprojects/internal-testing/src/main/resources/valid-precondition-combinations.csv b/subprojects/internal-testing/src/main/resources/valid-precondition-combinations.csv
index c2c52302e3f6..d527a92d8b2c 100644
--- a/subprojects/internal-testing/src/main/resources/valid-precondition-combinations.csv
+++ b/subprojects/internal-testing/src/main/resources/valid-precondition-combinations.csv
@@ -18,6 +18,7 @@ UnitTestPreconditions$HighPerformance
UnitTestPreconditions$Jdk10OrEarlier
UnitTestPreconditions$Jdk11OrEarlier
UnitTestPreconditions$Jdk11OrLater
+UnitTestPreconditions$Jdk12OrLater
UnitTestPreconditions$Jdk14OrLater
UnitTestPreconditions$Jdk14OrLater,IntegTestPreconditions$NotEmbeddedExecutor
UnitTestPreconditions$Jdk15OrEarlier
diff --git a/subprojects/language-java/src/integTest/groovy/org/gradle/java/compile/incremental/BaseIncrementalCompilationAfterFailureIntegrationTest.groovy b/subprojects/language-java/src/integTest/groovy/org/gradle/java/compile/incremental/BaseIncrementalCompilationAfterFailureIntegrationTest.groovy
index 3b1e203f3c77..51cd7ecf2b93 100644
--- a/subprojects/language-java/src/integTest/groovy/org/gradle/java/compile/incremental/BaseIncrementalCompilationAfterFailureIntegrationTest.groovy
+++ b/subprojects/language-java/src/integTest/groovy/org/gradle/java/compile/incremental/BaseIncrementalCompilationAfterFailureIntegrationTest.groovy
@@ -444,7 +444,7 @@ class GroovyIncrementalCompilationAfterFailureIntegrationTest extends BaseIncrem
}
${mavenCentralRepository()}
dependencies {
- testImplementation 'org.codehaus.groovy:groovy:3.0.13'
+ testImplementation 'org.codehaus.groovy:groovy:3.0.18'
testImplementation 'org.spockframework:spock-core:2.1-groovy-3.0'
}
tasks.withType(GroovyCompile) {
diff --git a/subprojects/plugins/src/integTest/groovy/org/gradle/java/compile/AbstractIncrementalCompileIntegrationTest.groovy b/subprojects/plugins/src/integTest/groovy/org/gradle/java/compile/AbstractIncrementalCompileIntegrationTest.groovy
index c62992d3e3b0..3069bc172d09 100644
--- a/subprojects/plugins/src/integTest/groovy/org/gradle/java/compile/AbstractIncrementalCompileIntegrationTest.groovy
+++ b/subprojects/plugins/src/integTest/groovy/org/gradle/java/compile/AbstractIncrementalCompileIntegrationTest.groovy
@@ -19,6 +19,7 @@ package org.gradle.java.compile
import org.gradle.integtests.fixtures.AbstractIntegrationSpec
import org.gradle.integtests.fixtures.CompiledLanguage
import org.gradle.integtests.fixtures.FeaturePreviewsFixture
+import org.gradle.internal.jvm.Jvm
abstract class AbstractIncrementalCompileIntegrationTest extends AbstractIntegrationSpec implements IncrementalCompileMultiProjectTestFixture {
abstract CompiledLanguage getLanguage()
@@ -34,7 +35,7 @@ abstract class AbstractIncrementalCompileIntegrationTest extends AbstractIntegra
file("src/main/${language.name}/Test.${language.name}") << 'public class Test{}'
buildFile << """
apply plugin: '${language.name}'
- java.sourceCompatibility = '1.7'
+ java.sourceCompatibility = '${Jvm.current().javaVersion.previous()}'
${language.compileTaskName}.options.debug = true
${language.compileTaskName}.options.incremental = true
${language.projectGroovyDependencies()}
@@ -47,7 +48,7 @@ abstract class AbstractIncrementalCompileIntegrationTest extends AbstractIntegra
executedAndNotSkipped ":${language.compileTaskName}"
when:
- buildFile << 'java.sourceCompatibility = 1.8\n'
+ buildFile << "java.sourceCompatibility = '${Jvm.current().javaVersion}'\n"
succeeds ":${language.compileTaskName}"
then:
diff --git a/subprojects/plugins/src/integTest/groovy/org/gradle/java/compile/BasicJavaCompilerIntegrationSpec.groovy b/subprojects/plugins/src/integTest/groovy/org/gradle/java/compile/BasicJavaCompilerIntegrationSpec.groovy
index 9722ae39e08a..d4a1beb1aaa4 100644
--- a/subprojects/plugins/src/integTest/groovy/org/gradle/java/compile/BasicJavaCompilerIntegrationSpec.groovy
+++ b/subprojects/plugins/src/integTest/groovy/org/gradle/java/compile/BasicJavaCompilerIntegrationSpec.groovy
@@ -218,7 +218,7 @@ compileJava {
"""
}
- @Requires(UnitTestPreconditions.Jdk9OrLater)
+ @Requires(UnitTestPreconditions.Jdk11OrLater)
def "compile with release flag using #notation notation"() {
given:
goodCode()
@@ -234,34 +234,34 @@ compileJava {
def compileClasspathTarget = targetVersionOf(configurations.compileClasspath)
def runtimeClasspathTarget = targetVersionOf(configurations.runtimeClasspath)
doFirst {
- assert apiElementsTarget.get() == 8
- assert runtimeElementsTarget.get() == 8
- assert compileClasspathTarget.get() == 8
- assert runtimeClasspathTarget.get() == 8
+ assert apiElementsTarget.get() == 11
+ assert runtimeElementsTarget.get() == 11
+ assert compileClasspathTarget.get() == 11
+ assert runtimeClasspathTarget.get() == 11
}
}
"""
expect:
succeeds 'compileJava'
- bytecodeVersion() == 52
+ bytecodeVersion() == 55
where:
notation << [
- "'8'",
- '8', // Integer, see #13351
- '"${8}"' // GString, see #13351
+ "'11'",
+ '11', // Integer, see #13351
+ '"${11}"' // GString, see #13351
]
}
- @Requires(UnitTestPreconditions.Jdk9OrLater)
+ @Requires(UnitTestPreconditions.Jdk11OrLater)
def "compile with release property set"() {
given:
goodCode()
buildFile << """
java.targetCompatibility = JavaVersion.VERSION_1_7 // ignored
compileJava.targetCompatibility = '10' // ignored
-compileJava.options.release.set(8)
+compileJava.options.release.set(11)
compileJava {
def targetVersionOf = { config ->
provider { config.attributes.getAttribute(TargetJvmVersion.TARGET_JVM_VERSION_ATTRIBUTE) }
@@ -271,17 +271,17 @@ compileJava {
def compileClasspathTarget = targetVersionOf(configurations.compileClasspath)
def runtimeClasspathTarget = targetVersionOf(configurations.runtimeClasspath)
doFirst {
- assert apiElementsTarget.get() == 8
- assert runtimeElementsTarget.get() == 8
- assert compileClasspathTarget.get() == 8
- assert runtimeClasspathTarget.get() == 8
+ assert apiElementsTarget.get() == 11
+ assert runtimeElementsTarget.get() == 11
+ assert compileClasspathTarget.get() == 11
+ assert runtimeClasspathTarget.get() == 11
}
}
"""
expect:
succeeds 'compileJava'
- bytecodeVersion() == 52
+ bytecodeVersion() == 55
}
@Requires(UnitTestPreconditions.Jdk9OrLater)
@@ -298,14 +298,14 @@ compileJava.options.release.set(8)
failureHasCause('Cannot specify --release via `CompileOptions.compilerArgs` when using `JavaCompile.release`.')
}
- @Requires(UnitTestPreconditions.Jdk9OrLater)
+ @Requires(UnitTestPreconditions.Jdk11OrLater)
def "compile with release property and autoTargetJvmDisabled"() {
given:
goodCode()
buildFile << """
java.targetCompatibility = JavaVersion.VERSION_1_7 // ignored
compileJava.targetCompatibility = '10' // ignored
-compileJava.options.release.set(8)
+compileJava.options.release.set(11)
java.disableAutoTargetJvm()
compileJava {
def apiElementsAttributes = configurations.apiElements.attributes
@@ -313,8 +313,8 @@ compileJava {
def compileClasspathAttributes = configurations.compileClasspath.attributes
def runtimeClasspathAttributes = configurations.runtimeClasspath.attributes
doFirst {
- assert apiElementsAttributes.getAttribute(TargetJvmVersion.TARGET_JVM_VERSION_ATTRIBUTE) == 8
- assert runtimeElementsAttributes.getAttribute(TargetJvmVersion.TARGET_JVM_VERSION_ATTRIBUTE) == 8
+ assert apiElementsAttributes.getAttribute(TargetJvmVersion.TARGET_JVM_VERSION_ATTRIBUTE) == 11
+ assert runtimeElementsAttributes.getAttribute(TargetJvmVersion.TARGET_JVM_VERSION_ATTRIBUTE) == 11
assert compileClasspathAttributes.getAttribute(TargetJvmVersion.TARGET_JVM_VERSION_ATTRIBUTE) == Integer.MAX_VALUE
assert runtimeClasspathAttributes.getAttribute(TargetJvmVersion.TARGET_JVM_VERSION_ATTRIBUTE) == Integer.MAX_VALUE
}
@@ -323,7 +323,7 @@ compileJava {
expect:
succeeds 'compileJava'
- bytecodeVersion() == 52
+ bytecodeVersion() == 55
}
def "compile with target compatibility"() {
@@ -385,58 +385,58 @@ compileJava {
bytecodeVersion() == 52
}
- @Requires(UnitTestPreconditions.Jdk9OrLater)
+ @Requires(UnitTestPreconditions.Jdk12OrLater)
def "compile fails when using newer API with release option"() {
given:
- file("src/main/java/compile/test/FailsOnJava8.java") << '''
+ file("src/main/java/compile/test/FailsOnJava11.java") << '''
package compile.test;
import java.util.stream.Stream;
import java.util.function.Predicate;
-public class FailsOnJava8 {
- public Stream takeFromStream(Stream stream) {
- return stream.takeWhile(Predicate.isEqual("foo"));
+public class FailsOnJava11 {
+ static {
+ System.out.println("Hello, world!".describeConstable());
}
}
'''
buildFile << """
-compileJava.options.compilerArgs.addAll(['--release', '8'])
+compileJava.options.compilerArgs.addAll(['--release', '11'])
"""
expect:
fails 'compileJava'
output.contains(logStatement())
failure.assertHasErrorOutput("cannot find symbol")
- failure.assertHasErrorOutput("method takeWhile")
+ failure.assertHasErrorOutput("method describeConstable")
}
- @Requires(UnitTestPreconditions.Jdk9OrLater)
+ @Requires(UnitTestPreconditions.Jdk12OrLater)
def "compile fails when using newer API with release property"() {
given:
- file("src/main/java/compile/test/FailsOnJava8.java") << '''
+ file("src/main/java/compile/test/FailsOnJava11.java") << '''
package compile.test;
import java.util.stream.Stream;
import java.util.function.Predicate;
-public class FailsOnJava8 {
- public Stream takeFromStream(Stream stream) {
- return stream.takeWhile(Predicate.isEqual("foo"));
+public class FailsOnJava11 {
+ static {
+ System.out.println("Hello, world!".describeConstable());
}
}
'''
buildFile << """
-compileJava.options.release.set(8)
+compileJava.options.release.set(11)
"""
expect:
fails 'compileJava'
output.contains(logStatement())
failure.assertHasErrorOutput("cannot find symbol")
- failure.assertHasErrorOutput("method takeWhile")
+ failure.assertHasErrorOutput("method describeConstable")
}
def buildScript() {
@@ -543,7 +543,9 @@ class Main {
def writeAnnotationProcessorProject() {
file("processor").create {
- file("build.gradle") << "apply plugin: 'java'"
+ file("build.gradle") << """
+ apply plugin: 'java'
+ """
"src/main" {
file("resources/META-INF/services/javax.annotation.processing.Processor") << "com.test.SimpleAnnotationProcessor"
"java/com/test/" {
diff --git a/subprojects/scala/src/integTest/groovy/org/gradle/integtests/ScalaAnnotationProcessingIntegrationTest.groovy b/subprojects/scala/src/integTest/groovy/org/gradle/integtests/ScalaAnnotationProcessingIntegrationTest.groovy
index ae343695e628..d95d1f8dcde1 100644
--- a/subprojects/scala/src/integTest/groovy/org/gradle/integtests/ScalaAnnotationProcessingIntegrationTest.groovy
+++ b/subprojects/scala/src/integTest/groovy/org/gradle/integtests/ScalaAnnotationProcessingIntegrationTest.groovy
@@ -181,8 +181,6 @@ class ScalaAnnotationProcessingIntegrationTest extends AbstractIntegrationSpec {
static String annotationProcessorDependency(File repoDir, String processorDependency) {
"""
- java.sourceCompatibility = '1.7'
-
repositories {
maven {
url '${repoDir.toURI()}'
@@ -266,7 +264,6 @@ class ScalaAnnotationProcessingIntegrationTest extends AbstractIntegrationSpec {
group = '$group'
version = '$version'
- java.sourceCompatibility = '1.7'
publishing {
publications {
diff --git a/subprojects/scala/src/integTest/groovy/org/gradle/integtests/fixtures/ScalaCoverage.groovy b/subprojects/scala/src/integTest/groovy/org/gradle/integtests/fixtures/ScalaCoverage.groovy
index f78af3536842..d82bc51a0fb6 100644
--- a/subprojects/scala/src/integTest/groovy/org/gradle/integtests/fixtures/ScalaCoverage.groovy
+++ b/subprojects/scala/src/integTest/groovy/org/gradle/integtests/fixtures/ScalaCoverage.groovy
@@ -20,13 +20,32 @@ import org.gradle.api.JavaVersion
class ScalaCoverage {
- static final String[] SCALA_2 = ["2.11.12", "2.12.17", "2.13.10"]
- static final String[] SCALA_3 = ["3.1.3", "3.2.1"]
+ private static final Map SCALA_2_VERSIONS = [
+ "2.11.12": JavaVersion.VERSION_1_9,
+ "2.12.18": JavaVersion.VERSION_20,
+ "2.13.11": JavaVersion.VERSION_20,
+ ]
+ private static final Map SCALA_3_VERSIONS = [
+ "3.1.3": JavaVersion.VERSION_18,
+ "3.2.2": JavaVersion.VERSION_19,
+ "3.3.0": JavaVersion.VERSION_20,
+ ]
+ static final String[] SCALA_2 = SCALA_2_VERSIONS.keySet().toArray(new String[0])
+ static final String[] SCALA_3 = SCALA_3_VERSIONS.keySet().toArray(new String[0])
static final String[] DEFAULT = SCALA_2 + SCALA_3
static final String[] LATEST_IN_MAJOR = [SCALA_2.last(), SCALA_3.last()]
- //to be used with getOrDefault(version, JavaVersion.VERSION_1_8)
- static final Map SCALA_VERSION_TO_MAX_JAVA_VERSION = ["2.13.6" : JavaVersion.VERSION_17, "2.13.1": JavaVersion.VERSION_12]
+ static JavaVersion getMaximumJavaVersionForScalaVersion(Object scalaVersion) {
+ def v2 = SCALA_2_VERSIONS.get(scalaVersion)
+ if (v2 != null) {
+ return v2
+ }
+ def v3 = SCALA_3_VERSIONS.get(scalaVersion)
+ if (v3 != null) {
+ return v3
+ }
+ throw new IllegalArgumentException("Unknown Scala version: " + scalaVersion)
+ }
}
diff --git a/subprojects/scala/src/integTest/groovy/org/gradle/scala/compile/AbstractToolchainZincScalaCompileIntegrationTest.groovy b/subprojects/scala/src/integTest/groovy/org/gradle/scala/compile/AbstractToolchainZincScalaCompileIntegrationTest.groovy
index fe7cd7d5a4e4..73a9a6b4a432 100644
--- a/subprojects/scala/src/integTest/groovy/org/gradle/scala/compile/AbstractToolchainZincScalaCompileIntegrationTest.groovy
+++ b/subprojects/scala/src/integTest/groovy/org/gradle/scala/compile/AbstractToolchainZincScalaCompileIntegrationTest.groovy
@@ -16,7 +16,7 @@
package org.gradle.scala.compile
-import org.gradle.api.JavaVersion
+
import org.gradle.integtests.fixtures.ScalaCoverage
import org.gradle.integtests.fixtures.jvm.JavaToolchainFixture
import org.gradle.internal.jvm.Jvm
@@ -29,7 +29,7 @@ abstract class AbstractToolchainZincScalaCompileIntegrationTest extends BasicZin
def setup() {
jdk = computeJdkForTest()
Assume.assumeNotNull(jdk)
- Assume.assumeTrue(ScalaCoverage.SCALA_VERSION_TO_MAX_JAVA_VERSION.getOrDefault(version, JavaVersion.VERSION_1_8).isCompatibleWith(jdk.javaVersion))
+ Assume.assumeTrue(jdk.javaVersion <= ScalaCoverage.getMaximumJavaVersionForScalaVersion(version))
executer.beforeExecute {
withInstallations(jdk)
}
diff --git a/subprojects/test-kit/src/integTest/groovy/org/gradle/testkit/runner/enduser/GradleRunnerMiscEndUserIntegrationTest.groovy b/subprojects/test-kit/src/integTest/groovy/org/gradle/testkit/runner/enduser/GradleRunnerMiscEndUserIntegrationTest.groovy
index 235ccce168cc..94226e565629 100644
--- a/subprojects/test-kit/src/integTest/groovy/org/gradle/testkit/runner/enduser/GradleRunnerMiscEndUserIntegrationTest.groovy
+++ b/subprojects/test-kit/src/integTest/groovy/org/gradle/testkit/runner/enduser/GradleRunnerMiscEndUserIntegrationTest.groovy
@@ -41,6 +41,9 @@ class GradleRunnerMiscEndUserIntegrationTest extends BaseTestKitEndUserIntegrati
suites {
test {
useSpock()
+ dependencies {
+ implementation localGroovy()
+ }
}
}
}
diff --git a/subprojects/testing-jvm/src/integTest/groovy/org/gradle/testing/TestTaskJdkRelocationIntegrationTest.groovy b/subprojects/testing-jvm/src/integTest/groovy/org/gradle/testing/TestTaskJdkRelocationIntegrationTest.groovy
index 272e92f2b2d5..2ee3900230ee 100644
--- a/subprojects/testing-jvm/src/integTest/groovy/org/gradle/testing/TestTaskJdkRelocationIntegrationTest.groovy
+++ b/subprojects/testing-jvm/src/integTest/groovy/org/gradle/testing/TestTaskJdkRelocationIntegrationTest.groovy
@@ -19,6 +19,7 @@ package org.gradle.testing
import org.gradle.api.JavaVersion
import org.gradle.integtests.fixtures.AbstractTaskRelocationIntegrationTest
import org.gradle.integtests.fixtures.AvailableJavaHomes
+import org.gradle.integtests.fixtures.jvm.JavaToolchainFixture
import org.gradle.internal.jvm.Jvm
import org.gradle.test.precondition.Requires
import org.gradle.test.preconditions.IntegTestPreconditions
@@ -27,7 +28,13 @@ import org.gradle.util.internal.TextUtil
import static org.gradle.util.internal.TextUtil.normaliseLineSeparators
@Requires(IntegTestPreconditions.MoreThanOneJava8HomeAvailable)
-class TestTaskJdkRelocationIntegrationTest extends AbstractTaskRelocationIntegrationTest {
+class TestTaskJdkRelocationIntegrationTest extends AbstractTaskRelocationIntegrationTest implements JavaToolchainFixture {
+
+ def setup() {
+ executer.beforeExecute {
+ withInstallations(AvailableJavaHomes.jdk11)
+ }
+ }
private File getOriginalJavaExecutable() {
getAvailableJdk8s()[0].javaExecutable
@@ -70,6 +77,9 @@ class TestTaskJdkRelocationIntegrationTest extends AbstractTaskRelocationIntegra
}
java {
+ toolchain {
+ languageVersion = JavaLanguageVersion.of(11)
+ }
sourceCompatibility = "1.7"
targetCompatibility = "1.7"
}
diff --git a/subprojects/tooling-api/src/crossVersionTest/groovy/org/gradle/integtests/tooling/r25/TestProgressCrossVersionSpec.groovy b/subprojects/tooling-api/src/crossVersionTest/groovy/org/gradle/integtests/tooling/r25/TestProgressCrossVersionSpec.groovy
index 8b87bcf4396c..b7b559748936 100644
--- a/subprojects/tooling-api/src/crossVersionTest/groovy/org/gradle/integtests/tooling/r25/TestProgressCrossVersionSpec.groovy
+++ b/subprojects/tooling-api/src/crossVersionTest/groovy/org/gradle/integtests/tooling/r25/TestProgressCrossVersionSpec.groovy
@@ -17,7 +17,7 @@
package org.gradle.integtests.tooling.r25
-import org.gradle.api.JavaVersion
+
import org.gradle.integtests.tooling.fixture.ProgressEvents
import org.gradle.integtests.tooling.fixture.ToolingApiSpecification
import org.gradle.integtests.tooling.fixture.WithOldConfigurationsSupport
@@ -482,7 +482,6 @@ class TestProgressCrossVersionSpec extends ToolingApiSpecification implements Wi
def goodCode() {
buildFile << """
apply plugin: 'java'
- ${javaSourceCompatibility(JavaVersion.VERSION_1_7)}
${mavenCentralRepository()}
dependencies { ${testImplementationConfiguration} 'junit:junit:4.13' }
compileTestJava.options.fork = true // forked as 'Gradle Test Executor 1'
@@ -497,12 +496,4 @@ class TestProgressCrossVersionSpec extends ToolingApiSpecification implements Wi
}
"""
}
-
- private String javaSourceCompatibility(JavaVersion javaVersion) {
- if (targetVersion >= GradleVersion.version("5.0")) {
- return "java.sourceCompatibility = JavaVersion.${javaVersion.name()}"
- } else {
- return "sourceCompatibility = '${javaVersion.toString()}'"
- }
- }
}
diff --git a/subprojects/workers/src/integTest/groovy/org/gradle/workers/internal/WorkerDaemonIntegrationTest.groovy b/subprojects/workers/src/integTest/groovy/org/gradle/workers/internal/WorkerDaemonIntegrationTest.groovy
index a9f6d398d798..ec1f4d1f7e7b 100644
--- a/subprojects/workers/src/integTest/groovy/org/gradle/workers/internal/WorkerDaemonIntegrationTest.groovy
+++ b/subprojects/workers/src/integTest/groovy/org/gradle/workers/internal/WorkerDaemonIntegrationTest.groovy
@@ -18,6 +18,7 @@ package org.gradle.workers.internal
import org.gradle.integtests.fixtures.AvailableJavaHomes
import org.gradle.integtests.fixtures.executer.GradleContextualExecuter
+import org.gradle.integtests.fixtures.jvm.JavaToolchainFixture
import org.gradle.integtests.fixtures.timeout.IntegrationTestTimeout
import org.gradle.internal.jvm.Jvm
import org.gradle.test.precondition.TestPrecondition
@@ -30,7 +31,7 @@ import static org.gradle.api.internal.file.TestFiles.systemSpecificAbsolutePath
import static org.gradle.util.internal.TextUtil.normaliseFileSeparators
@IntegrationTestTimeout(180)
-class WorkerDaemonIntegrationTest extends AbstractWorkerExecutorIntegrationTest {
+class WorkerDaemonIntegrationTest extends AbstractWorkerExecutorIntegrationTest implements JavaToolchainFixture {
boolean isOracleJDK = TestPrecondition.satisfied(UnitTestPreconditions.JdkOracle) && (Jvm.current().jre != null)
WorkerExecutorFixture.WorkActionClass workActionThatPrintsWorkingDirectory
@@ -166,7 +167,7 @@ class WorkerDaemonIntegrationTest extends AbstractWorkerExecutorIntegrationTest
"""
when:
- succeeds("runInDaemon")
+ withInstallations(AvailableJavaHomes.jdk11).succeeds("runInDaemon")
then:
assertWorkerExecuted("runInDaemon")
diff --git a/subprojects/workers/src/testFixtures/groovy/org/gradle/workers/fixtures/WorkerExecutorFixture.groovy b/subprojects/workers/src/testFixtures/groovy/org/gradle/workers/fixtures/WorkerExecutorFixture.groovy
index 183e52775c84..3bdedd97dd4a 100644
--- a/subprojects/workers/src/testFixtures/groovy/org/gradle/workers/fixtures/WorkerExecutorFixture.groovy
+++ b/subprojects/workers/src/testFixtures/groovy/org/gradle/workers/fixtures/WorkerExecutorFixture.groovy
@@ -201,6 +201,7 @@ class WorkerExecutorFixture {
void withJava7CompatibleClasses() {
file('buildSrc/build.gradle') << """
+ java.toolchain.languageVersion = JavaLanguageVersion.of(11)
tasks.withType(JavaCompile) {
sourceCompatibility = "1.7"
targetCompatibility = "1.7"