Author: rmannibucau
Date: Wed Feb 13 23:18:37 2013
New Revision: 1445977

URL: http://svn.apache.org/r1445977
Log:
jsf classes (converters for instance) can be in the shared part of an ear

Modified:
    
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
    
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java

Modified: 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java?rev=1445977&r1=1445976&r2=1445977&view=diff
==============================================================================
--- 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
 (original)
+++ 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
 Wed Feb 13 23:18:37 2013
@@ -1110,6 +1110,19 @@ public class AnnotationDeployer implemen
             /*
              * JSF
              */
+
+            // we need to look for JSF stuff in ear libs (converters...) so 
get back the finder for this part
+            IAnnotationFinder parentFinder = null;
+            final AppModule appModule = webModule.getAppModule();
+            if (appModule != null) {
+                for (final EjbModule module : appModule.getEjbModules()) {
+                    if 
(!module.getModuleId().startsWith(DeploymentLoader.EAR_SCOPED_CDI_BEANS)) {
+                        parentFinder = module.getFinder();
+                        break;
+                    }
+                }
+            }
+
             final ClassLoader classLoader = webModule.getClassLoader();
             for (String jsfClass : JSF_CLASSES) {
                 final Class<? extends Annotation> clazz;
@@ -1119,11 +1132,20 @@ public class AnnotationDeployer implemen
                     continue;
                 }
 
+                final Set<String> convertedClasses = new HashSet<String>();
+
+                if (parentFinder != null) {
+                    final List<Annotated<Class<?>>> foundParent = 
parentFinder.findMetaAnnotatedClasses(clazz);
+                    for (Annotated<Class<?>> annotated : foundParent) {
+                        convertedClasses.add(annotated.get().getName());
+                    }
+                }
+
                 final List<Annotated<Class<?>>> found = 
finder.findMetaAnnotatedClasses(clazz);
-                final Set<String> convertedClasses = new 
HashSet<String>(found.size());
                 for (Annotated<Class<?>> annotated : found) {
                     convertedClasses.add(annotated.get().getName());
                 }
+
                 webModule.getJsfAnnotatedClasses().put(jsfClass, 
convertedClasses);
             }
 

Modified: 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java?rev=1445977&r1=1445976&r2=1445977&view=diff
==============================================================================
--- 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java
 (original)
+++ 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java
 Wed Feb 13 23:18:37 2013
@@ -97,6 +97,7 @@ public class DeploymentLoader implements
 
     private static final String ddDir = "META-INF/";
     public static final String EAR_WEBAPP_PERSISTENCE_XML_JARS = 
"ear-webapp-persistence-xml-jars";
+    public static final String EAR_SCOPED_CDI_BEANS = "ear-scoped-cdi-beans_";
     public static final String RAR_URLS_KEY = "rar-urls";
     public static final String URLS_KEY = "urls";
     private boolean scanManagedBeans = true;
@@ -973,8 +974,7 @@ public class DeploymentLoader implements
 
         if (complete == null) return;
 
-        // don't change the name without looking in tomee and 
org.apache.openejb.config.AnnotationDeployer.DiscoverAnnotatedBeans.deploy()
-        final EjbModule ejbModule = new EjbModule(appModule.getClassLoader(), 
"ear-scoped-cdi-beans_" + appModule.getModuleId(), new EjbJar(), new 
OpenejbJar());
+        final EjbModule ejbModule = new EjbModule(appModule.getClassLoader(), 
EAR_SCOPED_CDI_BEANS + appModule.getModuleId(), new EjbJar(), new OpenejbJar());
         ejbModule.setBeans(complete);
         ejbModule.setFinder(new FinderFactory.ModuleLimitedFinder(new 
org.apache.xbean.finder.AnnotationFinder(new 
WebappAggregatedArchive(appModule.getClassLoader(), appModule.getAltDDs(), 
xmls))));
 


Reply via email to