@Documented
@Target(value=TYPE)
@Retention(value=RUNTIME)
public @interface TFEnhanced
The reason for 2 stages is that stage 1 must be done at build time, while stage 2 can be done either at build time, or dynmically, for example in a ClassFileTransformer. It is extremely helpful if EnhanceTool knows whether a class has already been enhanced, so it can avoid making a mess by enhancing a class multiple times. This is also necessary for incremental enhancement when a project is recompiled: only those classes that have been recompiled will be enhanced again.
Modifier and Type | Required Element and Description |
---|---|
TraceEnhanceLevel |
stage |
public abstract TraceEnhanceLevel stage