diff options
Diffstat (limited to 'java/dagger/hilt/android/plugin')
5 files changed, 29 insertions, 42 deletions
diff --git a/java/dagger/hilt/android/plugin/build.gradle b/java/dagger/hilt/android/plugin/build.gradle index 480c6f0a4..274ecbead 100644 --- a/java/dagger/hilt/android/plugin/build.gradle +++ b/java/dagger/hilt/android/plugin/build.gradle @@ -17,7 +17,6 @@ buildscript { repositories { google() - mavenCentral() jcenter() } } @@ -30,7 +29,6 @@ plugins { repositories { google() - mavenCentral() jcenter() } diff --git a/java/dagger/hilt/android/plugin/src/main/kotlin/dagger/hilt/android/plugin/AndroidEntryPointClassTransformer.kt b/java/dagger/hilt/android/plugin/src/main/kotlin/dagger/hilt/android/plugin/AndroidEntryPointClassTransformer.kt index 3bbf1e190..e066f48a1 100644 --- a/java/dagger/hilt/android/plugin/src/main/kotlin/dagger/hilt/android/plugin/AndroidEntryPointClassTransformer.kt +++ b/java/dagger/hilt/android/plugin/src/main/kotlin/dagger/hilt/android/plugin/AndroidEntryPointClassTransformer.kt @@ -81,7 +81,6 @@ internal class AndroidEntryPointClassTransformer( if (entry.isClassFile()) { val clazz = classPool.makeClass(input, false) transformed = transformClassToOutput(clazz) || transformed - clazz.detach() } entry = input.nextEntry } @@ -100,9 +99,7 @@ internal class AndroidEntryPointClassTransformer( "Invalid file, '$inputFile' is not a class." } val clazz = inputFile.inputStream().use { classPool.makeClass(it, false) } - val transformed = transformClassToOutput(clazz) - clazz.detach() - return transformed + return transformClassToOutput(clazz) } private fun transformClassToOutput(clazz: CtClass): Boolean { diff --git a/java/dagger/hilt/android/plugin/src/main/kotlin/dagger/hilt/android/plugin/HiltGradlePlugin.kt b/java/dagger/hilt/android/plugin/src/main/kotlin/dagger/hilt/android/plugin/HiltGradlePlugin.kt index a82826ed8..e26edb5fd 100644 --- a/java/dagger/hilt/android/plugin/src/main/kotlin/dagger/hilt/android/plugin/HiltGradlePlugin.kt +++ b/java/dagger/hilt/android/plugin/src/main/kotlin/dagger/hilt/android/plugin/HiltGradlePlugin.kt @@ -32,12 +32,10 @@ import com.android.build.gradle.api.UnitTestVariant import dagger.hilt.android.plugin.util.CopyTransform import dagger.hilt.android.plugin.util.SimpleAGPVersion import java.io.File -import javax.inject.Inject import org.gradle.api.Plugin import org.gradle.api.Project import org.gradle.api.artifacts.component.ProjectComponentIdentifier import org.gradle.api.attributes.Attribute -import org.gradle.api.provider.ProviderFactory /** * A Gradle plugin that checks if the project is an Android project and if so, registers a @@ -47,9 +45,7 @@ import org.gradle.api.provider.ProviderFactory * classes annotated with `@AndroidEntryPoint` since the registered transform by this plugin will * update the superclass. */ -class HiltGradlePlugin @Inject constructor( - val providers: ProviderFactory -) : Plugin<Project> { +class HiltGradlePlugin : Plugin<Project> { override fun apply(project: Project) { var configured = false project.plugins.withType(AndroidBasePlugin::class.java) { @@ -131,7 +127,6 @@ class HiltGradlePlugin @Inject constructor( } } - @Suppress("UnstableApiUsage") private fun configureVariantCompileClasspath( project: Project, hiltExtension: HiltExtension, @@ -165,7 +160,7 @@ class HiltGradlePlugin @Inject constructor( "android.injected.build.model.only.versioned", // Sent by AS 2.4+ "android.injected.build.model.feature.full.dependencies", // Sent by AS 2.4+ "android.injected.build.model.v2", // Sent by AS 4.2+ - ).any { providers.gradleProperty(it).forUseAtConfigurationTime().isPresent } + ).any { project.properties.containsKey(it) } ) { // Do not configure compile classpath when AndroidStudio is building the model (syncing) // otherwise it will cause a freeze. diff --git a/java/dagger/hilt/android/plugin/src/main/kotlin/dagger/hilt/android/plugin/util/SimpleAGPVersion.kt b/java/dagger/hilt/android/plugin/src/main/kotlin/dagger/hilt/android/plugin/util/SimpleAGPVersion.kt index 339c83e1a..158043124 100644 --- a/java/dagger/hilt/android/plugin/src/main/kotlin/dagger/hilt/android/plugin/util/SimpleAGPVersion.kt +++ b/java/dagger/hilt/android/plugin/src/main/kotlin/dagger/hilt/android/plugin/util/SimpleAGPVersion.kt @@ -1,5 +1,7 @@ package dagger.hilt.android.plugin.util +import com.android.Version + /** * Simple Android Gradle Plugin version class since there is no public API one. b/175816217 */ @@ -18,18 +20,7 @@ internal data class SimpleAGPVersion( companion object { - // TODO(danysantiago): Migrate to AndroidPluginVersion once it is available (b/175816217) - val ANDROID_GRADLE_PLUGIN_VERSION by lazy { - val clazz = - findClass("com.android.Version") - ?: findClass("com.android.builder.model.Version") - if (clazz != null) { - return@lazy parse(clazz.getField("ANDROID_GRADLE_PLUGIN_VERSION").get(null) as String) - } - error( - "Unable to obtain AGP version. It is likely that the AGP version being used is too old." - ) - } + val ANDROID_GRADLE_PLUGIN_VERSION by lazy { parse(Version.ANDROID_GRADLE_PLUGIN_VERSION) } fun parse(version: String?) = tryParse(version) ?: error("Unable to parse AGP version: $version") @@ -46,11 +37,5 @@ internal data class SimpleAGPVersion( return SimpleAGPVersion(parts[0].toInt(), parts[1].toInt()) } - - private fun findClass(fqName: String) = try { - Class.forName(fqName) - } catch (ex: ClassNotFoundException) { - null - } } } diff --git a/java/dagger/hilt/android/plugin/src/test/kotlin/IncrementalProcessorTest.kt b/java/dagger/hilt/android/plugin/src/test/kotlin/IncrementalProcessorTest.kt index cab50aab0..a003ab516 100644 --- a/java/dagger/hilt/android/plugin/src/test/kotlin/IncrementalProcessorTest.kt +++ b/java/dagger/hilt/android/plugin/src/test/kotlin/IncrementalProcessorTest.kt @@ -157,22 +157,28 @@ class IncrementalProcessorTest { genActivityInjector2 = File(projectRoot, "$GEN_SRC_DIR/simple/Activity2_GeneratedInjector.java") genAppInjectorDeps = File( projectRoot, - "$GEN_SRC_DIR/hilt_aggregated_deps/_simple_SimpleApp_GeneratedInjector.java" + "$GEN_SRC_DIR/hilt_aggregated_deps/simple_SimpleApp_GeneratedInjectorModuleDeps.java" ) genActivityInjectorDeps1 = File( projectRoot, - "$GEN_SRC_DIR/hilt_aggregated_deps/_simple_Activity1_GeneratedInjector.java" + "$GEN_SRC_DIR/hilt_aggregated_deps/simple_Activity1_GeneratedInjectorModuleDeps.java" ) genActivityInjectorDeps2 = File( projectRoot, - "$GEN_SRC_DIR/hilt_aggregated_deps/_simple_Activity2_GeneratedInjector.java" + "$GEN_SRC_DIR/hilt_aggregated_deps/simple_Activity2_GeneratedInjectorModuleDeps.java" ) genModuleDeps1 = File( projectRoot, - "$GEN_SRC_DIR/hilt_aggregated_deps/_simple_Module1.java" + "$GEN_SRC_DIR/hilt_aggregated_deps/simple_Module1ModuleDeps.java" + ) + genModuleDeps2 = File( + projectRoot, + "$GEN_SRC_DIR/hilt_aggregated_deps/simple_Module2ModuleDeps.java" + ) + genHiltComponents = File( + projectRoot, + "$GEN_SRC_DIR/simple/SimpleApp_HiltComponents.java" ) - genModuleDeps2 = File(projectRoot, "$GEN_SRC_DIR/hilt_aggregated_deps/_simple_Module2.java") - genHiltComponents = File(projectRoot, "$GEN_SRC_DIR/simple/SimpleApp_HiltComponents.java") genDaggerHiltApplicationComponent = File( projectRoot, "$GEN_SRC_DIR/simple/DaggerSimpleApp_HiltComponents_SingletonC.java" @@ -197,18 +203,24 @@ class IncrementalProcessorTest { ) classGenAppInjectorDeps = File( projectRoot, - "$CLASS_DIR/hilt_aggregated_deps/_simple_SimpleApp_GeneratedInjector.class" + "$CLASS_DIR/hilt_aggregated_deps/simple_SimpleApp_GeneratedInjectorModuleDeps.class" ) classGenActivityInjectorDeps1 = File( projectRoot, - "$CLASS_DIR/hilt_aggregated_deps/_simple_Activity1_GeneratedInjector.class" + "$CLASS_DIR/hilt_aggregated_deps/simple_Activity1_GeneratedInjectorModuleDeps.class" ) classGenActivityInjectorDeps2 = File( projectRoot, - "$CLASS_DIR/hilt_aggregated_deps/_simple_Activity2_GeneratedInjector.class" + "$CLASS_DIR/hilt_aggregated_deps/simple_Activity2_GeneratedInjectorModuleDeps.class" + ) + classGenModuleDeps1 = File( + projectRoot, + "$CLASS_DIR/hilt_aggregated_deps/simple_Module1ModuleDeps.class" + ) + classGenModuleDeps2 = File( + projectRoot, + "$CLASS_DIR/hilt_aggregated_deps/simple_Module2ModuleDeps.class" ) - classGenModuleDeps1 = File(projectRoot, "$CLASS_DIR/hilt_aggregated_deps/_simple_Module1.class") - classGenModuleDeps2 = File(projectRoot, "$CLASS_DIR/hilt_aggregated_deps/_simple_Module2.class") classGenHiltComponents = File( projectRoot, "$CLASS_DIR/simple/SimpleApp_HiltComponents.class" |