diff --git a/gradle.properties b/gradle.properties index 27cdb3e0..a391334f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -6,4 +6,4 @@ org.gradle.kotlin.dsl.allWarningsAsErrors=true systemProp.pts.enabled=true -org.gradle.android.latestKnownAgpVersion=9.0.0-alpha04 +org.gradle.android.latestKnownAgpVersion=9.0.0-alpha06 diff --git a/src/main/groovy/org/gradle/android/workarounds/JdkImageWorkaround.groovy b/src/main/groovy/org/gradle/android/workarounds/JdkImageWorkaround.groovy index 4a41f337..6034354c 100644 --- a/src/main/groovy/org/gradle/android/workarounds/JdkImageWorkaround.groovy +++ b/src/main/groovy/org/gradle/android/workarounds/JdkImageWorkaround.groovy @@ -3,6 +3,7 @@ package org.gradle.android.workarounds import com.google.common.annotations.VisibleForTesting import com.google.common.collect.Lists import org.gradle.android.AndroidIssue +import org.gradle.android.VersionNumber import org.gradle.android.Versions import org.gradle.api.Project import org.gradle.api.artifacts.transform.CacheableTransform @@ -60,20 +61,30 @@ class JdkImageWorkaround implements Workaround { // runtime configuration before querying (and instantiating) task configurations. applyRuntimeClasspathNormalization(project) - applyToAllAndroidVariants(project) { variant -> - variant.javaCompileProvider.configure { JavaCompile task -> - def jdkImageInput = getJdkImageInput(task) - if (jdkImageInput != null) { - setupExtractedJdkImageInputTransform(project, getJvmHome(task)) - replaceCommandLineProvider(task, jdkImageInput) + if (Versions.CURRENT_ANDROID_VERSION < VersionNumber.parse("9.0.0-alpha04")) { + applyToAllAndroidVariantsLegacy(project) { variant -> + variant.javaCompileProvider.configure { JavaCompile task -> + jdkTransform(project, task) + } + } + } else { + applyToAllAndroidVariants(project) { variant -> + variant.configureJavaCompileTask { compileTask -> + jdkTransform(project, compileTask) } } } } - // Configuration for Old Variant API will drop in AGP 9. We will need to use a different - // approach to retrieve the variants using the new Variant API. - private static void applyToAllAndroidVariants(Project project, Closure configureVariant) { + private static void jdkTransform(Project project, JavaCompile task) { + def jdkImageInput = getJdkImageInput(task) + if (jdkImageInput != null) { + setupExtractedJdkImageInputTransform(project, getJvmHome(task)) + replaceCommandLineProvider(task, jdkImageInput) + } + } + + private static void applyToAllAndroidVariantsLegacy(Project project, Closure configureVariant) { project.plugins.withId("com.android.application") { def android = project.extensions.findByName("android") android.unitTestVariants.all(configureVariant) @@ -87,6 +98,20 @@ class JdkImageWorkaround implements Workaround { } } + private static void applyToAllAndroidVariants(Project project, Closure configureVariant) { + project.plugins.withId("com.android.application") { + def androidComponents = project.extensions.findByName("androidComponents") + def selector = androidComponents.selector() + androidComponents.onVariants(selector.all(), configureVariant) + } + + project.plugins.withId("com.android.library") { + def androidComponents = project.extensions.findByName("androidComponents") + def selector = androidComponents.selector() + androidComponents.onVariants(selector.all(), configureVariant) + } + } + static def applyRuntimeClasspathNormalization(Project project) { project.normalization { handler -> handler.runtimeClasspath { diff --git a/src/test/groovy/org/gradle/android/SimpleAndroidApp.groovy b/src/test/groovy/org/gradle/android/SimpleAndroidApp.groovy index f544f2dd..3ad0f181 100644 --- a/src/test/groovy/org/gradle/android/SimpleAndroidApp.groovy +++ b/src/test/groovy/org/gradle/android/SimpleAndroidApp.groovy @@ -117,7 +117,6 @@ class SimpleAndroidApp { file("gradle.properties") << """ android.useAndroidX=true - android.newDsl=false org.gradle.jvmargs=-Xmx1536m -Dkotlin.daemon.jvm.options=-Xmx768m,-Xms256m kapt.use.worker.api=${kaptWorkersEnabled} android.experimental.enableSourceSetPathsMap=true diff --git a/src/test/resources/expectedOutcomes/9.0_outcomes.json b/src/test/resources/expectedOutcomes/9.0_outcomes.json index 4d34acbf..49df61c1 100644 --- a/src/test/resources/expectedOutcomes/9.0_outcomes.json +++ b/src/test/resources/expectedOutcomes/9.0_outcomes.json @@ -34,10 +34,8 @@ ":app:extractReleaseVersionControlInfo" : "SUCCESS", ":app:generateDebugAssets" : "UP_TO_DATE", ":app:generateDebugResources" : "FROM_CACHE", - ":app:generateDebugResValues" : "FROM_CACHE", ":app:generateReleaseAssets" : "UP_TO_DATE", ":app:generateReleaseResources" : "FROM_CACHE", - ":app:generateReleaseResValues" : "FROM_CACHE", ":app:javaPreCompileDebug" : "FROM_CACHE", ":app:javaPreCompileRelease" : "FROM_CACHE", ":app:mapDebugSourceSetPaths" : "SUCCESS", @@ -128,11 +126,9 @@ ":library:extractReleaseAnnotations" : "FROM_CACHE", ":library:generateDebugAssets" : "UP_TO_DATE", ":library:generateDebugResources" : "FROM_CACHE", - ":library:generateDebugResValues" : "FROM_CACHE", ":library:generateDebugRFile" : "FROM_CACHE", ":library:generateReleaseAssets" : "UP_TO_DATE", ":library:generateReleaseResources" : "FROM_CACHE", - ":library:generateReleaseResValues" : "FROM_CACHE", ":library:generateReleaseRFile" : "FROM_CACHE", ":library:javaPreCompileDebug" : "FROM_CACHE", ":library:javaPreCompileRelease" : "FROM_CACHE", @@ -180,5 +176,6 @@ ":app:processReleaseNavigationResources" : "FROM_CACHE", ":app:compileReleaseNavigationResources" : "FROM_CACHE", ":app:generateDebugRFile" : "FROM_CACHE", - ":app:generateReleaseRFile" : "FROM_CACHE" + ":app:generateReleaseRFile" : "FROM_CACHE", + ":library:compileReleaseNavigationResources" : "FROM_CACHE" } diff --git a/src/test/resources/versions.json b/src/test/resources/versions.json index 19afa1c8..24b0fd17 100644 --- a/src/test/resources/versions.json +++ b/src/test/resources/versions.json @@ -1,6 +1,6 @@ { "testedVersions": { - "9.0.0-alpha04": [ + "9.0.0-alpha06": [ "9.0.0" ], "8.13.0": [