Class OciInjectionProcessorObserver
java.lang.Object
io.helidon.integrations.oci.sdk.processor.OciInjectionProcessorObserver
- All Implemented Interfaces:
InjectionAnnotationProcessorObserver
public class OciInjectionProcessorObserver
extends Object
implements InjectionAnnotationProcessorObserver
This processor is an implementation of
InjectionAnnotationProcessorObserver. When on the APT classpath, it will monitor
InjectionAnnotationProcessor for all injection points that are
using the OCI SDK Services and translate those injection points into code-generated
Activators, ModuleComponent, etc. for those services / components.
This process will therefore make the OCI SDK set of services injectable by your (non-MP-based) Helidon application, and
be tailored to exactly what is actually used by your application from the SDK.
For example, if your code had this:
@Inject
com.oracle.bmc.ObjectStorage objStore;
This would result in code generating the necessary artifacts at compile time that will make ObjectStorage injectable.
All injection points using the same package name as the OCI SDK (e.g., com.oracle.bmc as shown with ObjectStorage in
the case above) will be observed and processed and eventually result in code generation into your
target/generated-sources directory. This is the case for any artifact that is attempted to be injected unless there is
found a configuration signaling an exception to avoid the code generation for the activator.
The processor will allows exceptions in one of three ways:
- via the code directly here - see the
shouldProcess(io.helidon.common.types.TypedElementInfo, javax.annotation.processing.ProcessingEnvironment)method. - via resources on the classpath - the implementation looks for files named
TAG_TYPENAME_EXCEPTIONSin the same package name as this class, and will read those resources during initialization. Each line of this file would be a fully qualified type name to avoid processing that type name. - via
-Adirectives on the compiler command line. Using the same tag as referenced above. The line can be comma-delimited, and each token will be treated as a fully qualified type name to signal that the type should be not be processed.
-
Constructor Summary
ConstructorsConstructorDescriptionDeprecated.this is a Java ServiceLoader implementation and the constructor should not be used directly -
Method Summary
Modifier and TypeMethodDescriptionvoidonProcessingEvent(io.helidon.inject.processor.ProcessingEvent event) Called after a processing event that occurred in theInjectionAnnotationProcessor.
-
Constructor Details
-
OciInjectionProcessorObserver
Deprecated.this is a Java ServiceLoader implementation and the constructor should not be used directlyService loader based constructor.
-
-
Method Details
-
onProcessingEvent
public void onProcessingEvent(io.helidon.inject.processor.ProcessingEvent event) Description copied from interface:InjectionAnnotationProcessorObserverCalled after a processing event that occurred in theInjectionAnnotationProcessor.- Specified by:
onProcessingEventin interfaceInjectionAnnotationProcessorObserver- Parameters:
event- the event
-