You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2013/02/14 00:18:38 UTC
svn commit: r1445977 - in
/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config:
AnnotationDeployer.java DeploymentLoader.java
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))));