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 2012/11/14 18:18:58 UTC

svn commit: r1409262 - in /openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb: cdi/OpenEJBLifecycle.java cdi/WebappBeanManager.java config/DeploymentLoader.java

Author: rmannibucau
Date: Wed Nov 14 17:18:57 2012
New Revision: 1409262

URL: http://svn.apache.org/viewvc?rev=1409262&view=rev
Log:
TOMEE-569 cdi in ear

Modified:
    openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBLifecycle.java
    openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/WebappBeanManager.java
    openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java

Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBLifecycle.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBLifecycle.java?rev=1409262&r1=1409261&r2=1409262&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBLifecycle.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBLifecycle.java Wed Nov 14 17:18:57 2012
@@ -324,6 +324,10 @@ public class OpenEJBLifecycle implements
             }
             //Start actual starting on sub-classes
             afterStartApplication(startupObject);
+
+            if (beanManager instanceof WebappBeanManager) {
+                ((WebappBeanManager) beanManager).afterStart();
+            }
         } finally {
             Thread.currentThread().setContextClassLoader(oldCl);
 

Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/WebappBeanManager.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/WebappBeanManager.java?rev=1409262&r1=1409261&r2=1409262&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/WebappBeanManager.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/WebappBeanManager.java Wed Nov 14 17:18:57 2012
@@ -16,6 +16,9 @@
  */
 package org.apache.openejb.cdi;
 
+import org.apache.webbeans.component.BeanManagerBean;
+import org.apache.webbeans.component.BuildInOwbBean;
+import org.apache.webbeans.component.ConversationBean;
 import org.apache.webbeans.container.BeanManagerImpl;
 
 import javax.el.ELResolver;
@@ -367,16 +370,6 @@ public class WebappBeanManager extends B
     }
 
     @Override
-    public BeanManager addInternalBean(Bean<?> newBean) {
-        super.addInternalBean(newBean);
-
-        deploymentBeans.clear();
-        deploymentBeans.addAll(getParentBm().getBeans());
-        deploymentBeans.addAll(super.getBeans());
-        return this;
-    }
-
-    @Override
     public Set<Bean<?>> getComponents() {
         return deploymentBeans;
     }
@@ -385,4 +378,16 @@ public class WebappBeanManager extends B
     public Set<Bean<?>> getBeans() {
         return deploymentBeans;
     }
+
+    public void afterStart() {
+        deploymentBeans.clear();
+        for (Bean<?> bean : getParentBm().getBeans()) {
+            if (bean instanceof BeanManagerBean || bean instanceof BuildInOwbBean
+                    || bean instanceof ConversationBean) {
+                continue;
+            }
+            deploymentBeans.add(bean);
+        }
+        deploymentBeans.addAll(super.getBeans());
+    }
 }

Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java?rev=1409262&r1=1409261&r2=1409262&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java Wed Nov 14 17:18:57 2012
@@ -298,6 +298,7 @@ public class DeploymentLoader implements
             final Map<String, String> webContextRoots = new HashMap<String, String>();
 
             final URL applicationXmlUrl = appDescriptors.get("application.xml");
+            final List<URL> extraLibs = new ArrayList<URL>();
 
             final Application application;
             if (applicationXmlUrl != null) {
@@ -309,7 +310,8 @@ public class DeploymentLoader implements
                             ejbModules.put(module.getEjb(), url);
                         } else if (module.getJava() != null) {
                             final URL url = finder.find(module.getJava().trim());
-                            clientModules.put(module.getConnector(), url);
+                            clientModules.put(module.getJava(), url);
+                            extraLibs.add(url);
                         } else if (module.getConnector() != null) {
                             final URL url = finder.find(module.getConnector().trim());
                             resouceModules.put(module.getConnector(), url);
@@ -367,7 +369,7 @@ public class DeploymentLoader implements
                 final String dir = application.getLibraryDirectory();
                 if (!dir.endsWith("/")) application.setLibraryDirectory(dir + "/");
             }
-            final List<URL> extraLibs = new ArrayList<URL>();
+
             try {
                 final Map<String, URL> libs = finder.getResourcesMap(application.getLibraryDirectory());
                 extraLibs.addAll(libs.values());
@@ -626,6 +628,8 @@ public class DeploymentLoader implements
 
     public void addWebModule(final AppModule appModule, final URL warUrl, final ClassLoader parentClassLoader, final String contextRoot, final String moduleName) throws OpenEJBException {
         final WebModule webModule = createWebModule(appModule.getJarLocation(), URLs.toFilePath(warUrl), parentClassLoader, contextRoot, moduleName);
+        final List<URL> parentUrls = filterWebappUrls(appModule.getAdditionalLibraries().toArray(new URL[appModule.getAdditionalLibraries().size()]), (URL) webModule.getAltDDs().get(NewLoaderLogic.EXCLUSION_FILE));
+        webModule.getScannableUrls().addAll(parentUrls);
         addWebModule(webModule, appModule);
     }