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))));