diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3AndGradleDaemon.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3AndGradleDaemon.kt index b07e8caac3c..f0d85163a63 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3AndGradleDaemon.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3AndGradleDaemon.kt @@ -46,6 +46,9 @@ class Kapt3AndGradleDaemon : KGPDaemonsBaseTest() { } @DisplayName("Annotation processor class should be loaded only once") + // Since Gradle 8.0 toolchain is always configured. + // Which forces Kapt tasks to run using workers with process isolation, + // which is not compatible with classloaders caching. @GradleTestVersions(maxVersion = TestVersions.Gradle.G_7_6) @GradleTest fun testAnnotationProcessorClassIsLoadedOnce(gradleVersion: GradleVersion) { diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3IT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3IT.kt index 9b2700653af..7e2cab590d5 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3IT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3IT.kt @@ -893,8 +893,6 @@ open class Kapt3IT : Kapt3BaseIT() { } @DisplayName("KT-31127: processor using Filer api does not break 'javaCompile' task") - @GradleTestVersions(maxVersion = TestVersions.Gradle.G_7_6) - @AndroidTestVersions(maxVersion = TestVersions.AGP.AGP_74) @GradleTest fun testKotlinProcessorUsingFiler(gradleVersion: GradleVersion) { project("kotlinProject", gradleVersion) { @@ -931,7 +929,6 @@ open class Kapt3IT : Kapt3BaseIT() { @DisplayName("should do annotation processing when 'sourceCompatibility = 8' and JDK is 11+") @JdkVersions(versions = [JavaVersion.VERSION_11]) - @GradleTestVersions(maxVersion = TestVersions.Gradle.G_7_6) @GradleWithJdkTest fun testSimpleWithJdk11AndSourceLevel8( gradleVersion: GradleVersion, @@ -946,6 +943,14 @@ open class Kapt3IT : Kapt3BaseIT() { "\nsourceCompatibility = '8'" ) + // because Java sourceCompatibility is fixed JVM target will different with JDK 11 on Gradle 8 + // as the toolchain by default will use the Gradle JDK version + gradleProperties.appendText( + """ + |kotlin.jvm.target.validation.mode=warning + """.trimMargin() + ) + build("assemble") { assertTasksExecuted(":kaptKotlin", ":kaptGenerateStubsKotlin") assertOutputContains("Javac options: {-source=1.8}") diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KaptIncrementalWithAggregatingApt.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KaptIncrementalWithAggregatingApt.kt index 3f5601791a2..69759e5856e 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KaptIncrementalWithAggregatingApt.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KaptIncrementalWithAggregatingApt.kt @@ -93,7 +93,6 @@ open class KaptIncrementalWithAggregatingApt : KaptIncrementalIT() { @DisplayName("Incremental changes in JDK9+") @JdkVersions(versions = [JavaVersion.VERSION_1_9]) - @GradleTestVersions(maxVersion = TestVersions.Gradle.G_7_6) @GradleWithJdkTest fun testIncrementalChangesWithJdk9(gradleVersion: GradleVersion, jdk: JdkVersions.ProvidedJdk) { kaptProject(gradleVersion, buildJdk = jdk.location) { diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KaptIncrementalWithIsolatingApt.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KaptIncrementalWithIsolatingApt.kt index d00bd78d43b..caafdc6ff04 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KaptIncrementalWithIsolatingApt.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KaptIncrementalWithIsolatingApt.kt @@ -166,9 +166,11 @@ open class KaptIncrementalWithIsolatingApt : KaptIncrementalIT() { @DisplayName("KT-33617: sources in compile classpath jars") @JdkVersions(versions = [JavaVersion.VERSION_11]) - @GradleTestVersions(maxVersion = TestVersions.Gradle.G_7_6) @GradleWithJdkTest - fun testSourcesInCompileClasspathJars(gradleVersion: GradleVersion, jdk: JdkVersions.ProvidedJdk) { + fun testSourcesInCompileClasspathJars( + gradleVersion: GradleVersion, + jdk: JdkVersions.ProvidedJdk + ) { kaptProject(gradleVersion, buildJdk = jdk.location) { // create jar with .class and .java file for the same type ZipOutputStream(projectPath.resolve("lib-with-sources.jar").outputStream()).use { @@ -299,6 +301,13 @@ open class KaptIncrementalWithIsolatingApt : KaptIncrementalIT() { buildOptions = defaultBuildOptions.copy(androidVersion = agpVersion), buildJdk = providedJdk.location ) { + // Remove the once minimal supported AGP version will be 8.1.0: https://issuetracker.google.com/issues/260059413 + gradleProperties.appendText( + """ + |kotlin.jvm.target.validation.mode=warning + """.trimMargin() + ) + build("clean", ":mylibrary:assembleDebug") subProject("baseLibrary") diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/android/Kapt3AndroidExternalIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/android/Kapt3AndroidExternalIT.kt index 4d6209b4b78..4e6d2e9ff2a 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/android/Kapt3AndroidExternalIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/android/Kapt3AndroidExternalIT.kt @@ -11,10 +11,14 @@ import org.jetbrains.kotlin.gradle.Kapt3BaseIT import org.jetbrains.kotlin.gradle.testbase.* import org.junit.jupiter.api.DisplayName import java.io.File +import kotlin.io.path.appendText @DisplayName("android with kapt3 external dependencies tests") @AndroidGradlePluginTests class Kapt3AndroidExternalIT : Kapt3BaseIT() { + + // Deprecated and doesn't work with Gradle 8 + AGP 8, so keeping max Gradle version as 7.6 + // For example: https://github.com/JakeWharton/butterknife/issues/1686 @DisplayName("kapt works with butterknife") @GradleTestVersions(maxVersion = TestVersions.Gradle.G_7_6) @AndroidTestVersions(maxVersion = TestVersions.AGP.AGP_74) @@ -129,8 +133,6 @@ class Kapt3AndroidExternalIT : Kapt3BaseIT() { } @DisplayName("kapt works with databinding") - @GradleTestVersions(maxVersion = TestVersions.Gradle.G_7_6) - @AndroidTestVersions(maxVersion = TestVersions.AGP.AGP_74) @GradleAndroidTest fun testDatabinding( gradleVersion: GradleVersion, @@ -144,6 +146,13 @@ class Kapt3AndroidExternalIT : Kapt3BaseIT() { // TODO: remove the `if` when we drop support for [TestVersions.AGP.AGP_42] buildJdk = if (jdkVersion.version >= JavaVersion.VERSION_11) jdkVersion.location else File(System.getProperty("jdk11Home")) ) { + // Remove the once minimal supported AGP version will be 8.1.0: https://issuetracker.google.com/issues/260059413 + gradleProperties.appendText( + """ + |kotlin.jvm.target.validation.mode=warning + """.trimMargin() + ) + build( "assembleDebug", "assembleAndroidTest", ) { diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/android/Kapt3AndroidIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/android/Kapt3AndroidIT.kt index 4f1d0004604..09099e89b2b 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/android/Kapt3AndroidIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/android/Kapt3AndroidIT.kt @@ -36,8 +36,6 @@ class Kapt3AndroidIT : Kapt3BaseIT() { } @DisplayName("KT-25374: kapt doesn't fail with anonymous classes with IC") - @GradleTestVersions(maxVersion = TestVersions.Gradle.G_7_6) - @AndroidTestVersions(maxVersion = TestVersions.AGP.AGP_74) @GradleAndroidTest fun testICWithAnonymousClasses( gradleVersion: GradleVersion, @@ -50,6 +48,12 @@ class Kapt3AndroidIT : Kapt3BaseIT() { buildOptions = defaultBuildOptions.copy(androidVersion = agpVersion), buildJdk = jdkVersion.location ) { + gradleProperties.appendText( + """ + |kotlin.jvm.target.validation.mode=warning + """.trimMargin() + ) + build("assembleDebug") { assertKaptSuccessful() } @@ -121,8 +125,6 @@ class Kapt3AndroidIT : Kapt3BaseIT() { } @DisplayName("KT-31127: kapt doesn't break JavaCompile when using Filer API") - @GradleTestVersions(maxVersion = TestVersions.Gradle.G_7_6) - @AndroidTestVersions(maxVersion = TestVersions.AGP.AGP_74) @GradleAndroidTest fun testKotlinProcessorUsingFiler( gradleVersion: GradleVersion, @@ -135,6 +137,7 @@ class Kapt3AndroidIT : Kapt3BaseIT() { buildOptions = defaultBuildOptions.copy(androidVersion = agpVersion), buildJdk = jdkVersion.location ) { + // Remove the once minimal supported AGP version will be 8.1.0: https://issuetracker.google.com/issues/260059413 //language=properties gradleProperties.append( """ @@ -144,11 +147,13 @@ class Kapt3AndroidIT : Kapt3BaseIT() { ) buildGradle.appendText( + //language=groovy """ apply plugin: 'kotlin-kapt' android { - libraryVariants.all { - it.getGenerateBuildConfigProvider().get().enabled = false + libraryVariants.configureEach { + def generateTaskProvider = it.getGenerateBuildConfigProvider() + if (generateTaskProvider != null) generateTaskProvider.configure { enabled = false } } } diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kapt2/android-databinding/app/build.gradle b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kapt2/android-databinding/app/build.gradle index 83dc0dde9e3..e2653407dbc 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kapt2/android-databinding/app/build.gradle +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kapt2/android-databinding/app/build.gradle @@ -26,11 +26,6 @@ android { proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } - - compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 - } } dependencies { diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kapt2/android-databinding/library/build.gradle b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kapt2/android-databinding/library/build.gradle index 3ba5e28d6f7..5d95f7bbe43 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kapt2/android-databinding/library/build.gradle +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kapt2/android-databinding/library/build.gradle @@ -23,12 +23,6 @@ android { minifyEnabled false } } - - compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 - } - } dependencies { diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kapt2/android-databinding/library/src/androidTest/AndroidManifest.xml b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kapt2/android-databinding/library/src/androidTest/AndroidManifest.xml index 663d4d59ec7..337d08cf4fd 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kapt2/android-databinding/library/src/androidTest/AndroidManifest.xml +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kapt2/android-databinding/library/src/androidTest/AndroidManifest.xml @@ -1,4 +1,4 @@ - + diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kaptIncrementalCompilationProject/build.gradle b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kaptIncrementalCompilationProject/build.gradle index f86d1c506b6..7ede7ec2b6f 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kaptIncrementalCompilationProject/build.gradle +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kaptIncrementalCompilationProject/build.gradle @@ -12,11 +12,6 @@ repositories { } } -java { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 -} - dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" implementation "org.jetbrains.kotlin:annotation-processor-example:$kotlin_version"