aboutsummaryrefslogtreecommitdiff
path: root/java/dagger/hilt/processor/internal
diff options
context:
space:
mode:
authorEric Chang <erichang@google.com>2021-01-19 15:43:47 -0800
committerDagger Team <dagger-dev+copybara@google.com>2021-01-19 15:45:04 -0800
commitb9325a45c4c73a5c5518d50f8ccf91a320e4661b (patch)
treee00072daca9bcac06b435d2f7aa556823b9c7cd5 /java/dagger/hilt/processor/internal
parent94a55bc7f786b24bc5e700bf50aa9671cb2f4feb (diff)
downloaddagger2-b9325a45c4c73a5c5518d50f8ccf91a320e4661b.tar.gz
Add back the deprecated ApplicationComponent since hilt-work latest release still uses it.
RELNOTES=Add back the deprecated ApplicationComponent. PiperOrigin-RevId: 352671220
Diffstat (limited to 'java/dagger/hilt/processor/internal')
-rw-r--r--java/dagger/hilt/processor/internal/ClassNames.java2
-rw-r--r--java/dagger/hilt/processor/internal/Components.java20
-rw-r--r--java/dagger/hilt/processor/internal/aggregateddeps/ComponentDependencies.java2
-rw-r--r--java/dagger/hilt/processor/internal/definecomponent/DefineComponentMetadatas.java8
4 files changed, 28 insertions, 4 deletions
diff --git a/java/dagger/hilt/processor/internal/ClassNames.java b/java/dagger/hilt/processor/internal/ClassNames.java
index 234ea7b45..776eb59f4 100644
--- a/java/dagger/hilt/processor/internal/ClassNames.java
+++ b/java/dagger/hilt/processor/internal/ClassNames.java
@@ -167,6 +167,8 @@ public final class ClassNames {
public static final ClassName ARRAYS = get("java.util", "Arrays");
// Standard components
+ public static final ClassName LEGACY_APPLICATION_COMPONENT =
+ get("dagger.hilt.android.components", "ApplicationComponent");
public static final ClassName SINGLETON_COMPONENT =
get("dagger.hilt.components", "SingletonComponent");
public static final ClassName ACTIVITY_COMPONENT =
diff --git a/java/dagger/hilt/processor/internal/Components.java b/java/dagger/hilt/processor/internal/Components.java
index 661dd8a9b..9ea7e64e7 100644
--- a/java/dagger/hilt/processor/internal/Components.java
+++ b/java/dagger/hilt/processor/internal/Components.java
@@ -93,16 +93,19 @@ public final class Components {
|| Processors.hasAnnotation(element, ClassNames.TEST_INSTALL_IN));
ImmutableSet<TypeElement> components =
- ImmutableSet.copyOf(
Processors.hasAnnotation(element, ClassNames.INSTALL_IN)
? Processors.getAnnotationClassValues(
elements,
Processors.getAnnotationMirror(element, ClassNames.INSTALL_IN),
- "value")
+ "value").stream()
+ .map(component -> mapComponents(elements, component))
+ .collect(toImmutableSet())
: Processors.getAnnotationClassValues(
elements,
Processors.getAnnotationMirror(element, ClassNames.TEST_INSTALL_IN),
- "components"));
+ "components").stream()
+ .map(component -> mapComponents(elements, component))
+ .collect(toImmutableSet());
ImmutableSet<TypeElement> undefinedComponents =
components.stream()
@@ -118,5 +121,16 @@ public final class Components {
return components.stream().map(ClassName::get).collect(toImmutableSet());
}
+ // Temporary hack while ApplicationComponent is renamed to SingletonComponent
+ private static TypeElement mapComponents(Elements elements, TypeElement element) {
+ if (ClassNames.LEGACY_APPLICATION_COMPONENT.equals(ClassName.get(element))) {
+ TypeElement singletonComponent =
+ elements.getTypeElement(ClassNames.SINGLETON_COMPONENT.canonicalName());
+ Preconditions.checkState(singletonComponent != null);
+ return singletonComponent;
+ }
+ return element;
+ }
+
private Components() {}
}
diff --git a/java/dagger/hilt/processor/internal/aggregateddeps/ComponentDependencies.java b/java/dagger/hilt/processor/internal/aggregateddeps/ComponentDependencies.java
index 23ed148c0..d943faf72 100644
--- a/java/dagger/hilt/processor/internal/aggregateddeps/ComponentDependencies.java
+++ b/java/dagger/hilt/processor/internal/aggregateddeps/ComponentDependencies.java
@@ -243,7 +243,7 @@ public abstract class ComponentDependencies {
// processor since new processors should convert to the new SingletonComponent when generating
// the metadata class.
if (descriptor.component().equals(ClassNames.SINGLETON_COMPONENT)) {
- builder.put("dagger.hilt.android.components.ApplicationComponent", descriptor);
+ builder.put(ClassNames.LEGACY_APPLICATION_COMPONENT.toString(), descriptor);
}
builder.put(descriptor.component().toString(), descriptor);
}
diff --git a/java/dagger/hilt/processor/internal/definecomponent/DefineComponentMetadatas.java b/java/dagger/hilt/processor/internal/definecomponent/DefineComponentMetadatas.java
index aa69e40e1..fde80265b 100644
--- a/java/dagger/hilt/processor/internal/definecomponent/DefineComponentMetadatas.java
+++ b/java/dagger/hilt/processor/internal/definecomponent/DefineComponentMetadatas.java
@@ -61,6 +61,13 @@ final class DefineComponentMetadatas {
}
private DefineComponentMetadata get(Element element, LinkedHashSet<Element> childPath) {
+ // This is a temporary hack to map the old ApplicationComponent to the new SingletonComponent
+ if (element.getKind().equals(ElementKind.INTERFACE)
+ && asType(element).getQualifiedName()
+ .contentEquals(ClassNames.LEGACY_APPLICATION_COMPONENT.toString())) {
+ element = asTypeElement(asType(element).getInterfaces().get(0));
+ }
+
if (!metadatas.containsKey(element)) {
metadatas.put(element, getUncached(element, childPath));
}
@@ -152,6 +159,7 @@ final class DefineComponentMetadatas {
ProcessorErrors.checkState(
ClassName.get(parent).equals(ClassNames.DEFINE_COMPONENT_NO_PARENT)
+ || ClassName.get(parent).equals(ClassNames.LEGACY_APPLICATION_COMPONENT)
|| Processors.hasAnnotation(parent, ClassNames.DEFINE_COMPONENT),
component,
"@DefineComponent %s, references a type not annotated with @DefineComponent: %s",