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