CDI implementations make heavy uses of proxies to support normal scope and interceptor decorators. There are use case where being able to have a bean instance without its proxy could be useful
- Accessing the true class of the instance in a clean way
- Being able to capture an instance state to use its information outside CDI or as an event payload
The limitation we have on Async event is probably a good example. As we don't propagate active normal context at firing time, it's not possible to inject a bean with such a scope (except @ApplicationScoped since Application context is shared), it could be useful to give the possibility to copy such a bean instance to a standard pojo instance so it could be used as event payload for instance.
We could even imagine that the mechanism could be transparently activated if an asynchronous observer inject a @RequestScoped or @SessionScoped bean.
- relates to
-
CDI-10 Add ability to access a bean instance from a proxy
- Closed