Această regulă semnalează valorile @Target altele decât ElementType.TYPE pe adnotări personalizate care îndeplinesc condiţiile următoare:
@InterceptorBinding.@Interceptor.Următoarele sunt adnotări interceptor ciclu de viaţă:
Următorul exemplu nu se conformează cu specificaţia Java EE 7 CDI (Contexts and Dependency Injection) 1.2 dar a fost tolerată în implementarea CDI 1.0, care se bazează pe implementarea Apache OpenWebBeans. În CDI 1.2, care se bazează pe implementarea Weld, aplicaţia nu porneşte:
@InterceptorBinding @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.TYPE, ElementType.METHOD}) public @Target MyIInterceptorBinding {}
@Interceptor @MyIInterceptorBinding public class MyIInterceptor {
@PostActivate
void postActivate (InvocationContext inv)
@PreDestroy
void preDestroy (InvocationContext inv)
}
Pentru a rezolva această problemă, înlăturaţi ElementType.METHOD din adnotarea @Target şi înlăturaţi toate referinţele la adnotare pe metodele aplicaţiei.
Dacă orice tipuri de element diferite de ElementType.TYPE sunt specificate, acestea trebuie să fie, de asemenea, înlăturate.
Pentru informaţii suplimentare despre implementarea Java EE 7 CDI 1.2, vedeţi Contexts and Dependency Injection 1.2 behavior changes.