You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openwebbeans.apache.org by "Leonardo Uribe (JIRA)" <ji...@apache.org> on 2013/09/03 23:07:52 UTC

[jira] [Commented] (OWB-895) BeforeBeanDiscovery.addAnnotatedType() calls does not work as expected when owb jars are deployed outside WEB-INF/lib folder

    [ https://issues.apache.org/jira/browse/OWB-895?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13757073#comment-13757073 ] 

Leonardo Uribe commented on OWB-895:
------------------------------------

I have tried with the latest snapshot and the exception is still present (apache-tomee-1.6.0-20130903.041125-168-webprofile.zip). I'll provide an example soon.
                
> BeforeBeanDiscovery.addAnnotatedType() calls does not work as expected when owb jars are deployed outside WEB-INF/lib folder
> ----------------------------------------------------------------------------------------------------------------------------
>
>                 Key: OWB-895
>                 URL: https://issues.apache.org/jira/browse/OWB-895
>             Project: OpenWebBeans
>          Issue Type: Bug
>          Components: Context and Scopes, Injection and Lookup, Java EE Integration
>    Affects Versions: 1.1.8
>         Environment: Apache Tomee 1.5.2, OpenWebBeans 1.1.8
>            Reporter: Leonardo Uribe
>
> I have been working on the CDI extension points of MyFaces Core 2.2.x, specially the part related to @ViewScoped and @FlowScoped annotations.
> The solution proposed and committed on the latest snapshot works with weld and openwebbeans. But on the way, I have found a problem when I tried to deploy a demo application in Tomee 1.5.2
> MyFaces jars has internally some beans that needs to be registered in CDI:
> - org.apache.myfaces.flow.cdi.FlowBuilderFactoryBean  (deals with @FlowBuilderParameter and @FlowDefinition)
> - org.apache.myfaces.flow.cdi.FlowScopeBeanHolder  (session scope bean that store flow scope)
> - org.apache.myfaces.cdi.view.ViewScopeBeanHolder  (session scope bean that store view scope)
> And in the classes implementing Extension you can find some code like this to register the beans:
>     void beforeBeanDiscovery(
>         @Observes final BeforeBeanDiscovery event, BeanManager beanManager)
>     {
>         // Register FlowBuilderFactoryBean as a bean with CDI annotations, so the system
>         // can take it into account, and use it later when necessary.
>         AnnotatedType flowDiscoveryHelper = beanManager.createAnnotatedType(FlowBuilderFactoryBean.class);
>         event.addAnnotatedType(flowDiscoveryHelper);
>     }
> It works well as long as owb jars are located in WEB-INF/lib folder, but in Tomee, MyFaces and OWB jars are located in <tomee folder>/lib . In theory the code should work but it doesn't. 
> The effect is the application fails because these beans are not registered on CDI environment.
> Suggestions are welcome.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira