[
https://issues.jboss.org/browse/CDI-527?page=com.atlassian.jira.plugin.sy...
]
Mark Struberg commented on CDI-527:
-----------------------------------
Happy new year!
I think there is an agreement that we shall not remove the non-proxyable rules in general
(Option B).
Option A. is purely an educational thing.
We might write some blog about it but we should not pollute the spec with long
explanations.
Those should go into a side letter instead.
But I also grok Emilys statement and have a possible solution for it.
We could enhance the beans.xml.
{code}
<beans>
<allowProxying>
<class>com.acme.MyClassWithFinalMethods</class>
</allowProxying>
</beans>
{code}
It would be in the chapter 5 sense of BDA of course.
Otherwise it would make no sense at all as y'ou would have to re-package the jar
again.
Means having a jar with the above in an EARs /lib folder would allow it for the whole
EAR.
If it's just in an WAR WEB-INF/lib/ jar inside an EAR then it would only allow it for
this very WAR in the EAR.
The container could log out a WARNING if it finds such entries.
Something like "Class XxxYyyy explicitly declared as proxyable despite having final
methods!"
allow proxying of classes with non-private final methods
--------------------------------------------------------
Key: CDI-527
URL:
https://issues.jboss.org/browse/CDI-527
Project: CDI Specification Issues
Issue Type: Feature Request
Components: Beans
Affects Versions: 1.2.Final
Reporter: Mark Struberg
Assignee: Mark Struberg
Fix For: 2.0 (proposed)
Currently we explicitly disallow proxying of classes with non-private final methods.
EJB _does_ allow this. And there are a few final methods in the JDK and other libs. E.g.
HashMap#initHashSeedAsNeeded. Currently we cannot have a producer method for it.
We might rethink our decision and allow it. Probably with an own annotation like
@AllowProxying which disables this check for certain cases (subclass managed-beans or
producers).
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)