Uploaded image for project: 'OpenWebBeans'
  1. OpenWebBeans
  2. OWB-895

BeforeBeanDiscovery.addAnnotatedType() calls does not work as expected when owb jars are deployed outside WEB-INF/lib folder




      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.




            • Assignee:
              romain.manni-bucau Romain Manni-Bucau
              lu4242 Leonardo Uribe
            • Votes:
              0 Vote for this issue
              3 Start watching this issue


              • Created: