]
Martin Kouba commented on CDI-561:
----------------------------------
bq. Accessing the true class of the instance in a clean way...
Just note that the class of a contextual instance might not be the class one would expect
because a contextual instance is an internal container construct (for example in Weld it
might be a subclass).
Add the possibility to unmanage a bean instance
-----------------------------------------------
Key: CDI-561
URL:
https://issues.jboss.org/browse/CDI-561
Project: CDI Specification Issues
Issue Type: Feature Request
Components: Beans
Affects Versions: 1.2.Final, 1.1.Final, 2.0-EDR1
Reporter: Antoine Sabot-Durand
Fix For: 2.0 (discussion)
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.