aboutsummaryrefslogtreecommitdiff
path: root/java/dagger/hilt/android/plugin
diff options
context:
space:
mode:
Diffstat (limited to 'java/dagger/hilt/android/plugin')
-rw-r--r--java/dagger/hilt/android/plugin/build.gradle2
-rw-r--r--java/dagger/hilt/android/plugin/src/main/kotlin/dagger/hilt/android/plugin/AndroidEntryPointClassTransformer.kt5
-rw-r--r--java/dagger/hilt/android/plugin/src/main/kotlin/dagger/hilt/android/plugin/HiltGradlePlugin.kt9
-rw-r--r--java/dagger/hilt/android/plugin/src/main/kotlin/dagger/hilt/android/plugin/util/SimpleAGPVersion.kt21
-rw-r--r--java/dagger/hilt/android/plugin/src/test/kotlin/IncrementalProcessorTest.kt34
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"