[ 
https://issues.apache.org/jira/browse/OWB-1110?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mark Struberg resolved OWB-1110.
--------------------------------
    Resolution: Fixed

> implement exclude mechanism to suppress UnproxyableResolutionException for 
> some classes
> ---------------------------------------------------------------------------------------
>
>                 Key: OWB-1110
>                 URL: https://issues.apache.org/jira/browse/OWB-1110
>             Project: OpenWebBeans
>          Issue Type: New Feature
>          Components: Core
>    Affects Versions: 1.6.2
>            Reporter: Mark Struberg
>            Assignee: Mark Struberg
>             Fix For: 1.6.3
>
>
> As proposed to the CDI EG for the CDI-2.0 specification.
> Sometimes you have to provide a producer for a class with non-private, 
> non-static final classes. In those cases the CDI spec defines that a 
> UnproxyableResolutionException needs to be thrown. And for a good reason. 
> Usually this should be avoided but sometimes the code containing those final 
> methods is not under your control. E.g. ThreadPoolExecutor, ConcurrentHashMap 
> as of Java7 or if you need to integrate with some legacy applications.
> In all those cases it would be great to have an exclude list for that rule.
> The mechanism proposed to the CDI EG is to have a 2-phase configuration:
> 1.) system.env and system.settings to define 'global' allowProxying classes. 
> This is needed if the whole deployable is not under your control. E.g. when 
> installing a WAR or EAR which contains a ConcurrentHashMap producer on a 
> container running Java7 or later. Usage:
> -Djavax.enterprise.inject.allowProxying.classes=com.acme.MyClass1,org.some.OtherClass
> and
> export 
> JAVAX_ENTERPRISE_INJECT_ALLOWPROXYING_CLASSES=net.some.OtherClass3,com.acme.YetAnotherClass
> 2.) Adding the allow in some beans.xml. This is for cases where you have to 
> integrate another jar or class which is not under your control but the app 
> itself is yours.
> {code}
> <beans>
>  <allowProxying>
>    <class>net.some.MoreClass</class>
>  </allowProxying>
> </beans>
> {code}
> All the given classes will simply get added to to a big Set<String> at boot 
> time and for those classes the UnproxyableResolutionException will get 
> supressed. (We might log out an info msg instead).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to