Details
-
Bug
-
Resolution: Done
-
Blocker
-
7.0.0.Final
-
None
-
Release Notes
Description
Having an EJB
@Singleton public class Bus { private boolean initialized = false; public boolean isInitialized() { return initialized; } public void setInitialized(boolean initialized) { this.initialized = initialized; } }
and a CDI extension that wraps EJB's InjectionTarget
public class WrappingExtension implements Extension { public void wrapInjectionTarget(@Observes ProcessInjectionTarget<Bus> event) { final InjectionTarget<Bus> injectionTarget = event.getInjectionTarget(); event.setInjectionTarget(new ForwardingInjectionTarget<Bus>() { @Override public void inject(Bus instance, CreationalContext<Bus> ctx) { super.inject(instance, ctx); instance.setInitialized(true); } @Override public InjectionTarget<Bus> getDelegate() { return injectionTarget; } }); } }
the InjectionTarget implementation is never invoked. When the Bus bean is changed to a CDI bean (@Singleton annotation is removed), the InjectionTarget implementation is invoked as expected.