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