- All Implemented Interfaces:
- Processor
@SupportedAnnotationTypes(value="xapi.annotation.reflect.MirroredAnnotation")
@SupportedSourceVersion(value=RELEASE_8)
public class AnnotationMirrorProcessor
extends AbstractProcessor
This is the annotation processor for our injection library.
It scans for our injection annotations and writes manifests to speed up
injection. default implementations go in META-INF/instances or
META-INF/singletons.
Platform specific injection types go into META-INF/$type/instances,
META-INF/$type/singletons.
It is included in the core api because it is run on the core api; every jar
built will include these manifests, whether they are used at runtime or not.
Gwt injection does not look at the manifests, and a bytecode enhancer is in
the works to further process jre environments, by replacing calls to X_Inject
with direct access of the injected type.
Final builds (bound to pre-deploy) can also be further enhanced, by replacing
all references to an injected interface with it's replacement type (changing
all class references, and changing invokeinterface to invokespecial). This
may be unnecessary once javac optimize=true after replacing the X_Inject call
site.
- Author:
- "James X. Nelson (james@wetheinter.net)"