Skip to content
Closed
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -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
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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)
Expand All @@ -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 {
Expand Down
1 change: 0 additions & 1 deletion src/test/groovy/org/gradle/android/SimpleAndroidApp.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
7 changes: 2 additions & 5 deletions src/test/resources/expectedOutcomes/9.0_outcomes.json
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down Expand Up @@ -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",
Expand Down Expand Up @@ -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"
}
2 changes: 1 addition & 1 deletion src/test/resources/versions.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"testedVersions": {
"9.0.0-alpha04": [
"9.0.0-alpha06": [
"9.0.0"
],
"8.13.0": [
Expand Down
Loading