diff options
author | Brad Corso <bcorso@google.com> | 2021-02-24 16:40:20 -0800 |
---|---|---|
committer | Dagger Team <dagger-dev+copybara@google.com> | 2021-02-24 16:44:41 -0800 |
commit | 1ad74b995bf337bbb281f16a2ec20f3cabdf83d2 (patch) | |
tree | 30c84129efcf6370e64ddbc0f35b0d2d13eafa61 /java/dagger/hilt/processor | |
parent | 289f59fe8e4f8081761aa88c97b43054c3f0124e (diff) | |
download | dagger2-1ad74b995bf337bbb281f16a2ec20f3cabdf83d2.tar.gz |
Follow-up changes to the EarlyEntryPoint API
This CL changes the usage of @EarlyEntryPoint from being an addition to @EntryPoint to being a replacement for @EntryPoint.
It also adds the @Beta annotation to the API.
RELNOTES=N/A
PiperOrigin-RevId: 359399064
Diffstat (limited to 'java/dagger/hilt/processor')
3 files changed, 23 insertions, 7 deletions
diff --git a/java/dagger/hilt/processor/BUILD b/java/dagger/hilt/processor/BUILD index 03d1e12ac..87adcf34f 100644 --- a/java/dagger/hilt/processor/BUILD +++ b/java/dagger/hilt/processor/BUILD @@ -27,7 +27,6 @@ java_library( "//java/dagger/hilt/android/processor/internal/androidentrypoint:processor_lib", "//java/dagger/hilt/android/processor/internal/bindvalue:bind_value_processor_lib", "//java/dagger/hilt/android/processor/internal/customtestapplication:processor_lib", - "//java/dagger/hilt/android/processor/internal/earlyentrypoint:processor_lib", "//java/dagger/hilt/android/processor/internal/uninstallmodules:processor_lib", "//java/dagger/hilt/android/processor/internal/viewmodel:processor_lib", "//java/dagger/hilt/android/processor/internal/viewmodel:validation_plugin_lib", @@ -64,7 +63,6 @@ gen_maven_artifact( "//java/dagger/hilt/android/processor/internal/androidentrypoint:processor_lib", "//java/dagger/hilt/android/processor/internal/bindvalue:bind_value_processor_lib", "//java/dagger/hilt/android/processor/internal/customtestapplication:processor_lib", - "//java/dagger/hilt/android/processor/internal/earlyentrypoint:processor_lib", "//java/dagger/hilt/android/processor/internal/viewmodel:validation_plugin_lib", "//java/dagger/hilt/android/processor/internal/uninstallmodules:processor_lib", "//java/dagger/hilt/android/processor/internal/viewmodel:processor_lib", diff --git a/java/dagger/hilt/processor/internal/aggregateddeps/AggregatedDepsProcessor.java b/java/dagger/hilt/processor/internal/aggregateddeps/AggregatedDepsProcessor.java index 88c4fc76c..2ac0b3d03 100644 --- a/java/dagger/hilt/processor/internal/aggregateddeps/AggregatedDepsProcessor.java +++ b/java/dagger/hilt/processor/internal/aggregateddeps/AggregatedDepsProcessor.java @@ -65,6 +65,7 @@ public final class AggregatedDepsProcessor extends BaseProcessor { private static final ImmutableSet<ClassName> ENTRY_POINT_ANNOTATIONS = ImmutableSet.of( ClassNames.ENTRY_POINT, + ClassNames.EARLY_ENTRY_POINT, ClassNames.GENERATED_ENTRY_POINT, ClassNames.COMPONENT_ENTRY_POINT); @@ -308,6 +309,28 @@ public final class AggregatedDepsProcessor extends BaseProcessor { element); TypeElement entryPoint = asType(element); + if (entryPointAnnotation.equals(ClassNames.EARLY_ENTRY_POINT)) { + ImmutableSet<ClassName> components = Components.getComponents(getElementUtils(), element); + ProcessorErrors.checkState( + components.equals(ImmutableSet.of(ClassNames.SINGLETON_COMPONENT)), + element, + "@EarlyEntryPoint can only be installed into the SingletonComponent. Found: %s", + components); + + Optional<TypeElement> optionalTestElement = + Processors.getOriginatingTestElement(element, getElementUtils()); + ProcessorErrors.checkState( + !optionalTestElement.isPresent(), + element, + "@EarlyEntryPoint-annotated entry point, %s, cannot be nested in (or originate from) " + + "a @HiltAndroidTest-annotated class, %s. This requirement is to avoid confusion " + + "with other, test-specific entry points.", + asType(element).getQualifiedName().toString(), + optionalTestElement + .map(testElement -> testElement.getQualifiedName().toString()) + .orElse("")); + } + generateAggregatedDeps( entryPointAnnotation.equals(ClassNames.COMPONENT_ENTRY_POINT) ? "componentEntryPoints" diff --git a/java/dagger/hilt/processor/internal/aggregateddeps/PkgPrivateEntryPointGenerator.java b/java/dagger/hilt/processor/internal/aggregateddeps/PkgPrivateEntryPointGenerator.java index fee4330d7..6dac59fb7 100644 --- a/java/dagger/hilt/processor/internal/aggregateddeps/PkgPrivateEntryPointGenerator.java +++ b/java/dagger/hilt/processor/internal/aggregateddeps/PkgPrivateEntryPointGenerator.java @@ -19,7 +19,6 @@ package dagger.hilt.processor.internal.aggregateddeps; import com.squareup.javapoet.AnnotationSpec; import com.squareup.javapoet.JavaFile; import com.squareup.javapoet.TypeSpec; -import dagger.hilt.processor.internal.ClassNames; import dagger.hilt.processor.internal.Processors; import java.io.IOException; import javax.annotation.processing.ProcessingEnvironment; @@ -70,10 +69,6 @@ final class PkgPrivateEntryPointGenerator { AnnotationSpec.get(metadata.getOptionalInstallInAnnotationMirror().get())); } - if (Processors.hasAnnotation(metadata.getTypeElement(), ClassNames.EARLY_ENTRY_POINT)) { - entryPointInterfaceBuilder.addAnnotation(ClassNames.EARLY_ENTRY_POINT); - } - JavaFile.builder( metadata.generatedClassName().packageName(), entryPointInterfaceBuilder.build()) .build() |