You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by dj...@apache.org on 2011/07/15 02:52:47 UTC
svn commit: r1146934 - in /geronimo/server/trunk/plugins:
axis/geronimo-axis-builder/src/main/java/org/apache/geronimo/axis/builder/
corba/geronimo-corba-builder/src/main/java/org/apache/geronimo/corba/deployment/
j2ee/geronimo-j2ee-builder/src/main/ja...
Author: djencks
Date: Fri Jul 15 00:52:45 2011
New Revision: 1146934
URL: http://svn.apache.org/viewvc?rev=1146934&view=rev
Log:
GERONIMO-5050 really use only one owb context for the whole ear, and combine all the module info into it
Added:
geronimo/server/trunk/plugins/openejb/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/AppInfoGBean.java (with props)
Removed:
geronimo/server/trunk/plugins/openejb/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/EjbModuleStarter.java
geronimo/server/trunk/plugins/openejb/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/GeronimoEjbInfo.java
geronimo/server/trunk/plugins/openejb/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/MEJBGBean.java
Modified:
geronimo/server/trunk/plugins/axis/geronimo-axis-builder/src/main/java/org/apache/geronimo/axis/builder/AxisModuleBuilderExtension.java
geronimo/server/trunk/plugins/corba/geronimo-corba-builder/src/main/java/org/apache/geronimo/corba/deployment/CorbaModuleBuilderExtension.java
geronimo/server/trunk/plugins/j2ee/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/deployment/EARContext.java
geronimo/server/trunk/plugins/jaxws/geronimo-jaxws-ejb-builder/src/main/java/org/apache/geronimo/jaxws/ejb/builder/EJBWebServiceFinder.java
geronimo/server/trunk/plugins/jaxws/geronimo-jaxws-ejb-builder/src/main/java/org/apache/geronimo/jaxws/ejb/builder/JAXWSEJBModuleBuilderExtension.java
geronimo/server/trunk/plugins/jetty8/geronimo-jetty8/src/main/java/org/apache/geronimo/jetty8/WebAppContextWrapper.java
geronimo/server/trunk/plugins/openejb/geronimo-openejb-builder/src/main/java/org/apache/geronimo/openejb/deployment/EjbDeploymentBuilder.java
geronimo/server/trunk/plugins/openejb/geronimo-openejb-builder/src/main/java/org/apache/geronimo/openejb/deployment/EjbModule.java
geronimo/server/trunk/plugins/openejb/geronimo-openejb-builder/src/main/java/org/apache/geronimo/openejb/deployment/EjbModuleBuilder.java
geronimo/server/trunk/plugins/openejb/geronimo-openejb-builder/src/main/java/org/apache/geronimo/openejb/deployment/EjbRefBuilder.java
geronimo/server/trunk/plugins/openejb/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/EjbModuleImpl.java
geronimo/server/trunk/plugins/openejb/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/cdi/OpenWebBeansWebInitializer.java
geronimo/server/trunk/plugins/openejb/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/cdi/ThreadSingletonServiceAdapter.java
geronimo/server/trunk/plugins/tomcat/geronimo-tomcat7-builder/src/main/java/org/apache/geronimo/tomcat/deployment/TomcatModuleBuilder.java
geronimo/server/trunk/plugins/tomcat/geronimo-tomcat7/src/main/java/org/apache/geronimo/tomcat/GeronimoStandardContext.java
Modified: geronimo/server/trunk/plugins/axis/geronimo-axis-builder/src/main/java/org/apache/geronimo/axis/builder/AxisModuleBuilderExtension.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/axis/geronimo-axis-builder/src/main/java/org/apache/geronimo/axis/builder/AxisModuleBuilderExtension.java?rev=1146934&r1=1146933&r2=1146934&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/axis/geronimo-axis-builder/src/main/java/org/apache/geronimo/axis/builder/AxisModuleBuilderExtension.java (original)
+++ geronimo/server/trunk/plugins/axis/geronimo-axis-builder/src/main/java/org/apache/geronimo/axis/builder/AxisModuleBuilderExtension.java Fri Jul 15 00:52:45 2011
@@ -129,7 +129,7 @@ public class AxisModuleBuilderExtension
Map<String, WebServiceBinding> wsBindingMap = createWebServiceBindingMap(ejbModule);
- for (EnterpriseBeanInfo bean : ejbModule.getEjbInfo().getEjbJarInfo().enterpriseBeans) {
+ for (EnterpriseBeanInfo bean : ejbModule.getEjbJarInfo().enterpriseBeans) {
String j2eeType = null;
if (bean.type == EnterpriseBeanInfo.STATELESS) {
@@ -192,7 +192,7 @@ public class AxisModuleBuilderExtension
Map<String, WebServiceBinding> wsBindingMap = createWebServiceBindingMap(ejbModule);
- for (EnterpriseBeanInfo bean : ejbModule.getEjbInfo().getEjbJarInfo().enterpriseBeans) {
+ for (EnterpriseBeanInfo bean : ejbModule.getEjbJarInfo().enterpriseBeans) {
String j2eeType = null;
if (bean.type == EnterpriseBeanInfo.STATELESS) {
Modified: geronimo/server/trunk/plugins/corba/geronimo-corba-builder/src/main/java/org/apache/geronimo/corba/deployment/CorbaModuleBuilderExtension.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/corba/geronimo-corba-builder/src/main/java/org/apache/geronimo/corba/deployment/CorbaModuleBuilderExtension.java?rev=1146934&r1=1146933&r2=1146934&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/corba/geronimo-corba-builder/src/main/java/org/apache/geronimo/corba/deployment/CorbaModuleBuilderExtension.java (original)
+++ geronimo/server/trunk/plugins/corba/geronimo-corba-builder/src/main/java/org/apache/geronimo/corba/deployment/CorbaModuleBuilderExtension.java Fri Jul 15 00:52:45 2011
@@ -238,7 +238,7 @@ public class CorbaModuleBuilderExtension
* module.
*/
private AbstractName resolveEjb(EARContext earContext, EjbModule ejbModule, String name) throws DeploymentException {
- for (EnterpriseBeanInfo bean : ejbModule.getEjbInfo().getEjbJarInfo().enterpriseBeans) {
+ for (EnterpriseBeanInfo bean : ejbModule.getEjbJarInfo().enterpriseBeans) {
// search for the target ejb
if (name.equals(bean.ejbName)) {
switch (bean.type) {
Modified: geronimo/server/trunk/plugins/j2ee/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/deployment/EARContext.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/j2ee/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/deployment/EARContext.java?rev=1146934&r1=1146933&r2=1146934&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/j2ee/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/deployment/EARContext.java (original)
+++ geronimo/server/trunk/plugins/j2ee/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/deployment/EARContext.java Fri Jul 15 00:52:45 2011
@@ -245,4 +245,13 @@ public class EARContext extends Deployme
return (AbstractName) context.get(this);
}
};
+
+ public static final EARContext.Key<AbstractName> APPINFO_GBEAN_NAME_KEY = new Key<AbstractName>() {
+
+ @Override
+ public AbstractName get(Map<Key, Object> context) {
+ return (AbstractName) context.get(this);
+ }
+ };
+
}
Modified: geronimo/server/trunk/plugins/jaxws/geronimo-jaxws-ejb-builder/src/main/java/org/apache/geronimo/jaxws/ejb/builder/EJBWebServiceFinder.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/jaxws/geronimo-jaxws-ejb-builder/src/main/java/org/apache/geronimo/jaxws/ejb/builder/EJBWebServiceFinder.java?rev=1146934&r1=1146933&r2=1146934&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/jaxws/geronimo-jaxws-ejb-builder/src/main/java/org/apache/geronimo/jaxws/ejb/builder/EJBWebServiceFinder.java (original)
+++ geronimo/server/trunk/plugins/jaxws/geronimo-jaxws-ejb-builder/src/main/java/org/apache/geronimo/jaxws/ejb/builder/EJBWebServiceFinder.java Fri Jul 15 00:52:45 2011
@@ -48,7 +48,7 @@ public class EJBWebServiceFinder impleme
throws DeploymentException {
Bundle bundle = ejbModule.getEarContext().getDeploymentBundle();
Set<String> ejbWebServiceClassNames = new HashSet<String>();
- for (EnterpriseBeanInfo bean : ejbModule.getEjbInfo().getEjbJarInfo().enterpriseBeans) {
+ for (EnterpriseBeanInfo bean : ejbModule.getEjbJarInfo().enterpriseBeans) {
if (bean.type != EnterpriseBeanInfo.STATELESS && bean.type != EnterpriseBeanInfo.SINGLETON) {
continue;
}
Modified: geronimo/server/trunk/plugins/jaxws/geronimo-jaxws-ejb-builder/src/main/java/org/apache/geronimo/jaxws/ejb/builder/JAXWSEJBModuleBuilderExtension.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/jaxws/geronimo-jaxws-ejb-builder/src/main/java/org/apache/geronimo/jaxws/ejb/builder/JAXWSEJBModuleBuilderExtension.java?rev=1146934&r1=1146933&r2=1146934&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/jaxws/geronimo-jaxws-ejb-builder/src/main/java/org/apache/geronimo/jaxws/ejb/builder/JAXWSEJBModuleBuilderExtension.java (original)
+++ geronimo/server/trunk/plugins/jaxws/geronimo-jaxws-ejb-builder/src/main/java/org/apache/geronimo/jaxws/ejb/builder/JAXWSEJBModuleBuilderExtension.java Fri Jul 15 00:52:45 2011
@@ -127,7 +127,7 @@ public class JAXWSEJBModuleBuilderExtens
jaxwsBuilder.findWebServices(module, true, correctedPortLocations, environment, ejbModule.getSharedContext());
- for (EnterpriseBeanInfo bean : ejbModule.getEjbInfo().getEjbJarInfo().enterpriseBeans) {
+ for (EnterpriseBeanInfo bean : ejbModule.getEjbJarInfo().enterpriseBeans) {
String j2eeType = null;
if (bean.type == EnterpriseBeanInfo.STATELESS) {
@@ -192,7 +192,7 @@ public class JAXWSEJBModuleBuilderExtens
Map<String, WebServiceBinding> wsBindingMap = createWebServiceBindingMap(ejbModule);
- for (EnterpriseBeanInfo bean : ejbModule.getEjbInfo().getEjbJarInfo().enterpriseBeans) {
+ for (EnterpriseBeanInfo bean : ejbModule.getEjbJarInfo().enterpriseBeans) {
String j2eeType = null;
if (bean.type == EnterpriseBeanInfo.STATELESS) {
j2eeType = NameFactory.STATELESS_SESSION_BEAN;
Modified: geronimo/server/trunk/plugins/jetty8/geronimo-jetty8/src/main/java/org/apache/geronimo/jetty8/WebAppContextWrapper.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/jetty8/geronimo-jetty8/src/main/java/org/apache/geronimo/jetty8/WebAppContextWrapper.java?rev=1146934&r1=1146933&r2=1146934&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/jetty8/geronimo-jetty8/src/main/java/org/apache/geronimo/jetty8/WebAppContextWrapper.java (original)
+++ geronimo/server/trunk/plugins/jetty8/geronimo-jetty8/src/main/java/org/apache/geronimo/jetty8/WebAppContextWrapper.java Fri Jul 15 00:52:45 2011
@@ -17,6 +17,8 @@
package org.apache.geronimo.jetty8;
+import java.beans.beancontext.BeanContext;
+import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Hashtable;
@@ -301,19 +303,21 @@ public class WebAppContextWrapper implem
}
//supply web.xml to jasper
webAppContext.setAttribute(JASPER_WEB_XML_NAME, originalSpecDD);
+ WebBeansContext webBeansContext;
if (sharedOwbContext == null) {
- //we have to initialize the owb context
- Thread thread = Thread.currentThread();
- ClassLoader cl = thread.getContextClassLoader();
- thread.setContextClassLoader(classLoader);
- try {
- integrationContext.setOwbContext(OpenWebBeansWebInitializer.newWebBeansContext(webAppContext.getServletContext()));
- } finally {
- thread.setContextClassLoader(cl);
- }
+ webBeansContext = OpenWebBeansWebInitializer.newWebBeansContext(null);
} else {
- integrationContext.setOwbContext(sharedOwbContext.getOWBContext());
+ webBeansContext= sharedOwbContext.getOWBContext();
+ }
+ Thread thread = Thread.currentThread();
+ ClassLoader cl = thread.getContextClassLoader();
+ thread.setContextClassLoader(classLoader);
+ try {
+ OpenWebBeansWebInitializer.initializeServletContext(webBeansContext, webAppContext.getServletContext());
+ } finally {
+ thread.setContextClassLoader(cl);
}
+ integrationContext.setOwbContext(webBeansContext);
}
Modified: geronimo/server/trunk/plugins/openejb/geronimo-openejb-builder/src/main/java/org/apache/geronimo/openejb/deployment/EjbDeploymentBuilder.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/openejb/geronimo-openejb-builder/src/main/java/org/apache/geronimo/openejb/deployment/EjbDeploymentBuilder.java?rev=1146934&r1=1146933&r2=1146934&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/openejb/geronimo-openejb-builder/src/main/java/org/apache/geronimo/openejb/deployment/EjbDeploymentBuilder.java (original)
+++ geronimo/server/trunk/plugins/openejb/geronimo-openejb-builder/src/main/java/org/apache/geronimo/openejb/deployment/EjbDeploymentBuilder.java Fri Jul 15 00:52:45 2011
@@ -19,7 +19,6 @@ package org.apache.geronimo.openejb.depl
import java.security.Permission;
import java.security.PermissionCollection;
-import java.security.Permissions;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
@@ -42,7 +41,6 @@ import org.apache.geronimo.j2ee.deployme
import org.apache.geronimo.j2ee.deployment.EARContext;
import org.apache.geronimo.j2ee.deployment.Module;
import org.apache.geronimo.j2ee.deployment.NamingBuilder;
-import org.apache.geronimo.j2ee.deployment.WebModule;
import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory;
import org.apache.geronimo.j2ee.jndi.JndiKey;
import org.apache.geronimo.j2ee.jndi.JndiScope;
@@ -403,7 +401,7 @@ public class EjbDeploymentBuilder {
parentModule = parentModule.getParentModule();
}
- EjbJarInfo ejbJarInfo = ejbModule.getEjbInfo().getEjbJarInfo();
+ EjbJarInfo ejbJarInfo = ejbModule.getEjbJarInfo();
for (EnterpriseBean bean : ejbJar.getEnterpriseBeans()) {
String ejbName = bean.getEjbName();
String deploymentId = getDeploymentId(ejbName, ejbJarInfo);
Modified: geronimo/server/trunk/plugins/openejb/geronimo-openejb-builder/src/main/java/org/apache/geronimo/openejb/deployment/EjbModule.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/openejb/geronimo-openejb-builder/src/main/java/org/apache/geronimo/openejb/deployment/EjbModule.java?rev=1146934&r1=1146933&r2=1146934&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/openejb/geronimo-openejb-builder/src/main/java/org/apache/geronimo/openejb/deployment/EjbModule.java (original)
+++ geronimo/server/trunk/plugins/openejb/geronimo-openejb-builder/src/main/java/org/apache/geronimo/openejb/deployment/EjbModule.java Fri Jul 15 00:52:45 2011
@@ -26,9 +26,9 @@ import org.apache.geronimo.j2ee.deployme
import org.apache.geronimo.j2ee.jndi.JndiKey;
import org.apache.geronimo.kernel.config.ConfigurationModuleType;
import org.apache.geronimo.kernel.repository.Environment;
-import org.apache.geronimo.openejb.GeronimoEjbInfo;
import org.apache.geronimo.openejb.xbeans.ejbjar.OpenejbGeronimoEjbJarType;
import org.apache.openejb.ClassLoaderUtil;
+import org.apache.openejb.assembler.classic.EjbJarInfo;
import org.apache.openejb.config.ConfigurationFactory;
import org.apache.openejb.core.TempClassLoader;
import org.apache.openejb.jee.EjbJar;
@@ -41,7 +41,7 @@ import org.apache.xmlbeans.XmlObject;
* @version $Rev$ $Date$
*/
public class EjbModule extends EJBModule<OpenejbGeronimoEjbJarType> {
- private GeronimoEjbInfo ejbInfo;
+ private EjbJarInfo ejbJarInfo;
private EjbDeploymentBuilder ejbDeploymentBuilder;
private final org.apache.openejb.config.EjbModule ejbModule;
private final ConfigurationFactory.Chain preAutoConfigDeployer;
@@ -78,12 +78,12 @@ public class EjbModule extends EJBModule
return ejbModule;
}
- public GeronimoEjbInfo getEjbInfo() {
- return ejbInfo;
+ public EjbJarInfo getEjbJarInfo() {
+ return ejbJarInfo;
}
- public void setEjbInfo(GeronimoEjbInfo ejbInfo) {
- this.ejbInfo = ejbInfo;
+ public void setEjbJarInfo(EjbJarInfo ejbInfo) {
+ this.ejbJarInfo = ejbInfo;
}
public EjbDeploymentBuilder getEjbBuilder() {
Modified: geronimo/server/trunk/plugins/openejb/geronimo-openejb-builder/src/main/java/org/apache/geronimo/openejb/deployment/EjbModuleBuilder.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/openejb/geronimo-openejb-builder/src/main/java/org/apache/geronimo/openejb/deployment/EjbModuleBuilder.java?rev=1146934&r1=1146933&r2=1146934&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/openejb/geronimo-openejb-builder/src/main/java/org/apache/geronimo/openejb/deployment/EjbModuleBuilder.java (original)
+++ geronimo/server/trunk/plugins/openejb/geronimo-openejb-builder/src/main/java/org/apache/geronimo/openejb/deployment/EjbModuleBuilder.java Fri Jul 15 00:52:45 2011
@@ -84,11 +84,10 @@ import org.apache.geronimo.kernel.reposi
import org.apache.geronimo.kernel.util.FileUtils;
import org.apache.geronimo.kernel.util.JarUtils;
import org.apache.geronimo.naming.deployment.ResourceEnvironmentSetter;
+import org.apache.geronimo.openejb.AppInfoGBean;
import org.apache.geronimo.openejb.EjbContainer;
import org.apache.geronimo.openejb.EjbDeployment;
import org.apache.geronimo.openejb.EjbModuleImpl;
-import org.apache.geronimo.openejb.EjbModuleStarter;
-import org.apache.geronimo.openejb.GeronimoEjbInfo;
import org.apache.geronimo.openejb.OpenEjbSystem;
import org.apache.geronimo.openejb.cdi.SharedOwbContext;
import org.apache.geronimo.openejb.xbeans.ejbjar.OpenejbGeronimoEjbJarType;
@@ -772,9 +771,9 @@ public class EjbModuleBuilder implements
- GeronimoEjbInfo ejbInfo = getEjbInfo(earContext, ejbModule, bundle);
+ AppInfo appInfo = getAppInfo(earContext, ejbModule, bundle);
- ejbModule.setEjbInfo(ejbInfo);
+ ejbModule.setEjbJarInfo(AppInfoGBean.getEjbJarInfo(appInfo, ejbModule.getModuleURI()));
// update the original spec dd with the metadata complete dd
EjbJar ejbJar = ejbModule.getEjbJar();
@@ -815,30 +814,16 @@ public class EjbModuleBuilder implements
GBeanData ejbModuleGBeanData = new GBeanData(ejbModule.getModuleName(), EjbModuleImpl.class);
- AbstractName starterName = earContext.getNaming().createChildName(ejbModule.getModuleName(), "EjbModuleStarter", "EjbModuleStarter");
- GBeanData ejbModuleStarterGBeanData = new GBeanData(starterName, EjbModuleStarter.class);
- ejbModuleStarterGBeanData.setReferencePattern("EjbModule", ejbModule.getModuleName());
- ejbModuleStarterGBeanData.setReferencePattern("OpenEjbSystem", new AbstractNameQuery(null, Collections.EMPTY_MAP, OpenEjbSystem.class.getName()));
try {
- //sets up the openejb infrastructure; happens before web modules start
- earContext.addGBean(ejbModuleGBeanData);
//starts the ejbs; happens in module order (which may be before or after web modules)
- ejbModule.addGBean(ejbModuleStarterGBeanData);
-
+ ejbModule.addGBean(ejbModuleGBeanData);
+
} catch (GBeanAlreadyExistsException e) {
throw new DeploymentException("Could not add ejb module gbean", e);
}
//commented out code is for sharing owb context of an ejb module in a war with the war
// module.getSharedContext().put(SharedOwbContext.class, ejbModuleGBeanData);
- //this shares the OWB context over the whole ear
- Module<?,?> m = module;
- while (m.getParentModule() != null) {
- m = m.getParentModule();
- }
- if (m.getSharedContext().get(SharedOwbContext.class) == null) {
- m.getSharedContext().put(SharedOwbContext.class, ejbModuleGBeanData);
- }
for (ModuleBuilderExtension builder : moduleBuilderExtensions) {
try {
@@ -850,9 +835,9 @@ public class EjbModuleBuilder implements
}
}
- private GeronimoEjbInfo getEjbInfo(EARContext earContext, EjbModule ejbModule, Bundle bundle) throws DeploymentException {
+ private AppInfo getAppInfo(EARContext earContext, EjbModule ejbModule, Bundle bundle) throws DeploymentException {
EarData earData = EarData.KEY.get(earContext.getGeneralData());
- if (earData.getEjbInfos().isEmpty()) {
+ if (earData.getAppInfo() == null) {
ClassLoader bundleLoader = new BundleClassLoader(bundle);
@@ -894,12 +879,7 @@ public class EjbModuleBuilder implements
throw new DeploymentException(e);
}
- // add all of the modules to the ear data
- for (EjbJarInfo ejbJar : appInfo.ejbJars) {
- GeronimoEjbInfo ejbInfo = new GeronimoEjbInfo(ejbJar, appInfo.globalJndiEnc, appInfo.appJndiEnc, appInfo.appId);
- earData.addEjbInfo(ejbInfo);
- }
-
+ earData.setAppInfo(appInfo);
// add the cmp jar
CmpJarBuilder cmp2Builder = new CmpJarBuilder(appInfo, bundleLoader);
try {
@@ -920,11 +900,23 @@ public class EjbModuleBuilder implements
if (appInfo.cmpMappingsXml != null) {
addGeronimmoOpenEJBPersistenceUnit(ejbModule);
}
+ Module m = ejbModule;
+ while (m.getParentModule() != null) {
+ m = m.getParentModule();
+ }
+ AbstractName appInfoName = earContext.getNaming().createChildName(m.getModuleName(), "appInfoGBean", "appInfoGBean");
+ earContext.getGeneralData().put(EARContext.APPINFO_GBEAN_NAME_KEY, appInfoName);
+ GBeanData appInfoData = new GBeanData(appInfoName, AppInfoGBean.class);
+ appInfoData.setAttribute("appInfo", appInfo);
+ appInfoData.setReferencePattern("OpenEjbSystem", new AbstractNameQuery(null, Collections.EMPTY_MAP, OpenEjbSystem.class.getName()));
+ try {
+ earContext.addGBean(appInfoData);
+ } catch (GBeanAlreadyExistsException e) {
+ throw new DeploymentException("Duplicate app info gbean", e);
+ }
}
- // find our module
- GeronimoEjbInfo ejbInfo = earData.getEjbInfo(ejbModule.getEjbModule().getModuleUri().toString());
- return ejbInfo;
+ return earData.getAppInfo();
}
private AppInfo configureApplication(AppModule appModule, EjbModule ejbModule, Configuration configuration)
@@ -1197,7 +1189,7 @@ public class EjbModuleBuilder implements
linkResolver.add(rootUrl, name, id);
}
- EjbJarInfo ejbJarInfo = ejbModule.getEjbInfo().getEjbJarInfo();
+ EjbJarInfo ejbJarInfo = ejbModule.getEjbJarInfo();
for (EnterpriseBeanInfo beanInfo : ejbJarInfo.enterpriseBeans) {
if (beanInfo instanceof StatefulBeanInfo) {
StatefulBeanInfo statefulBeanInfo = (StatefulBeanInfo) beanInfo;
@@ -1227,8 +1219,8 @@ public class EjbModuleBuilder implements
EjbDeployment.class.getName())));
ejbModuleGBeanData.setReferencePattern("OpenEjbSystem", new AbstractNameQuery(null, Collections.EMPTY_MAP, OpenEjbSystem.class.getName()));
- ejbModuleGBeanData.setAttribute("ejbInfo", ejbModule.getEjbInfo());
- ejbModuleGBeanData.setAttribute("modulePath", ejbModule.getTargetPath());
+ ejbModuleGBeanData.setReferencePattern("AppInfo", EARContext.APPINFO_GBEAN_NAME_KEY.get(earContext.getGeneralData()));
+ ejbModuleGBeanData.setAttribute("moduleURI", ejbModule.getEjbModule().getModuleUri());
ejbModuleGBeanData.setAttribute("moduleContext", module.getJndiScope(JndiScope.module));
} catch (Exception e) {
throw new DeploymentException("Unable to initialize EJBModule GBean " + ejbModule.getModuleName(), e);
@@ -1238,7 +1230,7 @@ public class EjbModuleBuilder implements
ejbDeploymentBuilder.addEjbModuleDependency(ejbModuleGBeanData);
// add the Jacc permissions to the ear
- String policyContextId = ejbModule.getEjbInfo().getEjbJarInfo().moduleUri.toString();
+ String policyContextId = ejbModule.getEjbJarInfo().moduleUri.toString();
ComponentPermissions componentPermissions = (ComponentPermissions) earContext.getContextIDToPermissionsMap().get(policyContextId);
if (componentPermissions == null) {
componentPermissions = new ComponentPermissions(new Permissions(), new Permissions(), new HashMap<String, PermissionCollection>());
@@ -1264,7 +1256,7 @@ public class EjbModuleBuilder implements
return;
}
OpenejbJarType openejbJarType = (OpenejbJarType) altDD;
- EjbJarInfo ejbJarInfo = ejbModule.getEjbInfo().getEjbJarInfo();
+ EjbJarInfo ejbJarInfo = ejbModule.getEjbJarInfo();
Map<String, MessageDrivenBeanInfo> mdbs = new TreeMap<String, MessageDrivenBeanInfo>();
for (EnterpriseBeanInfo enterpriseBean : ejbJarInfo.enterpriseBeans) {
@@ -1427,7 +1419,7 @@ public class EjbModuleBuilder implements
};
private final Map<String, EjbModule> ejbModules = new TreeMap<String, EjbModule>();
- private final Map<String, GeronimoEjbInfo> ejbJars = new TreeMap<String, GeronimoEjbInfo>();
+ private AppInfo appInfo;
public void addEjbModule(EjbModule ejbModule) {
ejbModules.put(ejbModule.getEjbModule().getModuleUri().toString(), ejbModule);
@@ -1445,21 +1437,12 @@ public class EjbModuleBuilder implements
return ejbModules.values();
}
- public void addEjbInfo(GeronimoEjbInfo ejbInfo) {
- ejbJars.put(ejbInfo.getEjbJarInfo().moduleUri.toString(), ejbInfo);
- }
-
- public GeronimoEjbInfo getEjbInfo(String moduleURI) throws DeploymentException {
- GeronimoEjbInfo ejbInfo = ejbJars.get(moduleURI);
- if (ejbInfo == null) {
- throw new DeploymentException("Ejb jar configuration passed but expected module " +
- moduleURI + " was not found in configured module list " + ejbJars.keySet());
- }
- return ejbInfo;
+ public void setAppInfo(AppInfo appInfo) {
+ this.appInfo = appInfo;
}
- public Collection<GeronimoEjbInfo> getEjbInfos() {
- return ejbJars.values();
+ public AppInfo getAppInfo() throws DeploymentException {
+ return appInfo;
}
}
Modified: geronimo/server/trunk/plugins/openejb/geronimo-openejb-builder/src/main/java/org/apache/geronimo/openejb/deployment/EjbRefBuilder.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/openejb/geronimo-openejb-builder/src/main/java/org/apache/geronimo/openejb/deployment/EjbRefBuilder.java?rev=1146934&r1=1146933&r2=1146934&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/openejb/geronimo-openejb-builder/src/main/java/org/apache/geronimo/openejb/deployment/EjbRefBuilder.java (original)
+++ geronimo/server/trunk/plugins/openejb/geronimo-openejb-builder/src/main/java/org/apache/geronimo/openejb/deployment/EjbRefBuilder.java Fri Jul 15 00:52:45 2011
@@ -44,7 +44,6 @@ import org.apache.geronimo.j2ee.jndi.Jnd
import org.apache.geronimo.kernel.repository.Environment;
import org.apache.geronimo.naming.deployment.AbstractNamingBuilder;
import org.apache.geronimo.openejb.ClientEjbReference;
-import org.apache.geronimo.openejb.GeronimoEjbInfo;
import org.apache.geronimo.xbeans.geronimo.naming.GerEjbLocalRefDocument;
import org.apache.geronimo.xbeans.geronimo.naming.GerEjbLocalRefType;
import org.apache.geronimo.xbeans.geronimo.naming.GerEjbRefDocument;
@@ -137,15 +136,12 @@ public class EjbRefBuilder extends Abstr
Set<String> ejbLocalRefNames = new HashSet<String>();
try {
EjbModuleBuilder.EarData earData = EjbModuleBuilder.EarData.KEY.get(module.getRootEarContext().getGeneralData());
- Collection<GeronimoEjbInfo> ejbInfos = Collections.emptySet();
- if (earData != null) {
- ejbInfos = earData.getEjbInfos();
+ if (earData == null) {
+ //no ejbs anywhere?
+ return;
}
- AppInfo appInfo = new AppInfo();
- for (GeronimoEjbInfo ejbInfo : ejbInfos) {
- appInfo.ejbJars.add(ejbInfo.getEjbJarInfo());
- }
+ AppInfo appInfo = earData.getAppInfo();
JndiEncInfoBuilder jndiEncInfoBuilder = new JndiEncInfoBuilder(appInfo);
JndiEncInfo moduleJndi = new JndiEncInfo();
Added: geronimo/server/trunk/plugins/openejb/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/AppInfoGBean.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/openejb/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/AppInfoGBean.java?rev=1146934&view=auto
==============================================================================
--- geronimo/server/trunk/plugins/openejb/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/AppInfoGBean.java (added)
+++ geronimo/server/trunk/plugins/openejb/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/AppInfoGBean.java Fri Jul 15 00:52:45 2011
@@ -0,0 +1,125 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+
+package org.apache.geronimo.openejb;
+
+import java.io.IOException;
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.naming.NamingException;
+import org.apache.geronimo.gbean.GBeanLifecycle;
+import org.apache.geronimo.gbean.annotation.GBean;
+import org.apache.geronimo.gbean.annotation.ParamAttribute;
+import org.apache.geronimo.gbean.annotation.ParamReference;
+import org.apache.geronimo.gbean.annotation.ParamSpecial;
+import org.apache.geronimo.gbean.annotation.SpecialAttributeType;
+import org.apache.geronimo.openejb.cdi.SharedOwbContext;
+import org.apache.openejb.AppContext;
+import org.apache.openejb.BeanContext;
+import org.apache.openejb.NoSuchApplicationException;
+import org.apache.openejb.OpenEJBException;
+import org.apache.openejb.UndeployException;
+import org.apache.openejb.assembler.classic.AppInfo;
+import org.apache.openejb.assembler.classic.EjbJarInfo;
+import org.apache.webbeans.config.WebBeansContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * @version $Rev:$ $Date:$
+ */
+
+@GBean
+public class AppInfoGBean implements SharedOwbContext, GBeanLifecycle {
+ private static final Logger log = LoggerFactory.getLogger(AppInfoGBean.class);
+
+ private final AppInfo appInfo;
+ private final ClassLoader classLoader;
+ private final OpenEjbSystem openEjbSystem;
+ private final AppContext appContext;
+
+ public AppInfoGBean(@ParamAttribute(name = "appInfo")AppInfo appInfo,
+ @ParamSpecial(type = SpecialAttributeType.classLoader) ClassLoader classLoader,
+ @ParamReference(name = "OpenEjbSystem") OpenEjbSystem openEjbSystem) throws NamingException, IOException, OpenEJBException {
+ this.appInfo = appInfo;
+ this.classLoader = classLoader;
+ this.openEjbSystem = openEjbSystem;
+ this.appContext = openEjbSystem.createApplication(appInfo, classLoader, false);
+
+ }
+
+ @Override
+ public void doStart() throws Exception {
+ }
+
+ @Override
+ public void doStop() {
+ try {
+ openEjbSystem.removeApplication(appInfo, classLoader);
+ } catch (NoSuchApplicationException e) {
+ log.error("Module does not exist.", e);
+ } catch (UndeployException e) {
+ List<Throwable> causes = e.getCauses();
+ log.error(e.getMessage() + ": Encountered " + causes.size() + " failures.");
+ for (Throwable throwable : causes) {
+ log.info(throwable.toString(), throwable);
+ }
+ }
+ }
+
+ @Override
+ public void doFail() {
+ doStop();
+ }
+
+ @Override
+ public WebBeansContext getOWBContext() {
+ return appContext.getWebBeansContext();
+ }
+
+ public List<BeanContext> getModuleBeanContexts(URI moduleURI) {
+ List<BeanContext> beanContexts = new ArrayList<BeanContext>();
+ for (BeanContext beanContext: appContext.getDeployments()) {
+ if (moduleURI.toString().equals(beanContext.getModuleID())) {
+ beanContexts.add(beanContext);
+ }
+ }
+ return beanContexts;
+ }
+
+ public EjbJarInfo getEjbJarInfo(URI moduleURI) {
+ return getEjbJarInfo(appInfo, moduleURI);
+ }
+
+ public static EjbJarInfo getEjbJarInfo(AppInfo appInfo, URI moduleURI) {
+ for (EjbJarInfo info: appInfo.ejbJars) {
+ if (moduleURI.equals(info.moduleUri)) {
+ return info;
+ }
+ }
+ //differing interpretation of standalone modules. Openejb uses the module file name as moduleURI and geronimo uses an empty string.
+ if (appInfo.ejbJars.size() == 1 && moduleURI.toString().isEmpty()) {
+ return appInfo.ejbJars.get(0);
+ }
+ throw new IllegalStateException("No module named '" + moduleURI + "' found in appInfo " + appInfo);
+ }
+}
Propchange: geronimo/server/trunk/plugins/openejb/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/AppInfoGBean.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/server/trunk/plugins/openejb/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/AppInfoGBean.java
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: geronimo/server/trunk/plugins/openejb/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/AppInfoGBean.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: geronimo/server/trunk/plugins/openejb/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/EjbModuleImpl.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/openejb/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/EjbModuleImpl.java?rev=1146934&r1=1146933&r2=1146934&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/openejb/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/EjbModuleImpl.java (original)
+++ geronimo/server/trunk/plugins/openejb/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/EjbModuleImpl.java Fri Jul 15 00:52:45 2011
@@ -16,6 +16,7 @@
*/
package org.apache.geronimo.openejb;
+import java.net.URI;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
@@ -23,7 +24,6 @@ import java.util.Hashtable;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
-import java.util.Set;
import javax.management.ObjectName;
import javax.naming.NamingException;
@@ -43,13 +43,11 @@ import org.apache.geronimo.management.EJ
import org.apache.geronimo.management.EJBModule;
import org.apache.geronimo.management.J2EEApplication;
import org.apache.geronimo.management.J2EEServer;
-import org.apache.geronimo.openejb.cdi.SharedOwbContext;
-import org.apache.openejb.AppContext;
import org.apache.openejb.BeanContext;
-import org.apache.openejb.NoSuchApplicationException;
-import org.apache.openejb.UndeployException;
-import org.apache.openejb.assembler.classic.AppInfo;
-import org.apache.webbeans.config.WebBeansContext;
+import org.apache.openejb.Container;
+import org.apache.openejb.OpenEJBException;
+import org.apache.openejb.assembler.classic.EjbResolver;
+import org.apache.openejb.loader.SystemInstance;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -58,29 +56,31 @@ import org.slf4j.LoggerFactory;
*/
@GBean(j2eeType = NameFactory.EJB_MODULE)
-public class EjbModuleImpl implements EJBModule, GBeanLifecycle, SharedOwbContext {
+public class EjbModuleImpl implements EJBModule, GBeanLifecycle {
private static final Logger log = LoggerFactory.getLogger(EjbModuleImpl.class);
private final J2EEServer server;
private final J2EEApplication application;
private final String deploymentDescriptor;
private final String objectName;
+ private URI moduleURI;
private final Map<String, EjbDeployment> ejbs = new HashMap<String, EjbDeployment>();
private final ClassLoader classLoader;
private final OpenEjbSystem openEjbSystem;
- private final AppInfo appInfo;
- private AppContext appContext;
+ private final AppInfoGBean appInfoGBean;
public EjbModuleImpl(@ParamSpecial(type = SpecialAttributeType.objectName) String objectName,
@ParamReference(name = "J2EEServer", namingType = NameFactory.J2EE_SERVER) J2EEServer server,
@ParamReference(name = "J2EEApplication", namingType = NameFactory.J2EE_APPLICATION) J2EEApplication application,
+ @ParamAttribute(name = "moduleURI") URI moduleURI,
@ParamAttribute(name = "deploymentDescriptor") String deploymentDescriptor,
@ParamAttribute(name = "isStandalone") boolean isStandalone,
@ParamReference(name = "EJBCollection") Collection<? extends EjbDeployment> ejbs,
@ParamSpecial(type = SpecialAttributeType.classLoader) ClassLoader classLoader,
@ParamReference(name = "OpenEjbSystem") OpenEjbSystem openEjbSystem,
- @ParamAttribute(name = "ejbInfo") GeronimoEjbInfo ejbInfo) throws NamingException {
+ @ParamReference(name = "AppInfo") AppInfoGBean appInfoGBean) throws NamingException {
this.objectName = objectName;
+ this.moduleURI = moduleURI;
ObjectName myObjectName = ObjectNameUtil.getObjectName(objectName);
verifyObjectName(myObjectName);
@@ -106,10 +106,7 @@ public class EjbModuleImpl implements EJ
this.classLoader = classLoader;
this.openEjbSystem = openEjbSystem;
-
- this.appInfo = ejbInfo.createAppInfo();
-
- this.appInfo.standaloneModule = isStandalone;
+ this.appInfoGBean = appInfoGBean;
}
private void removeEjb(EjbDeployment ejb) {
@@ -174,38 +171,48 @@ public class EjbModuleImpl implements EJ
return result;
}
- @Override
- public WebBeansContext getOWBContext() {
- if (appContext == null) {
- throw new IllegalStateException("Not started");
- }
- return appContext.getWebBeansContext();
- }
-
- public Map<String, EjbDeployment> getEjbDeploymentMap() {
- return ejbs;
- }
-
- public AppInfo getAppInfo() {
- return appInfo;
- }
-
- public AppContext getAppContext() {
- return appContext;
- }
-
public void doStart() throws Exception {
- appContext = openEjbSystem.createApplication(appInfo, classLoader, false);
-// for (String deploymentId: ejbs.keySet()) {
-// BeanContext beanContext = openEjbSystem.getDeploymentInfo(deploymentId);
-// GeronimoThreadContextListener.get().getEjbDeployment((BeanContext) beanContext);
-// }
+ List<BeanContext> allDeployments = appInfoGBean.getModuleBeanContexts(moduleURI);
+ //start code from openejb assembler
+
+ // deploy
+ for (BeanContext deployment : allDeployments) {
+ try {
+ Container container = deployment.getContainer();
+ container.deploy(deployment);
+ log.info("createApplication.createdEjb" + deployment.getDeploymentID() + deployment.getEjbName() + container.getContainerID());
+ if (log.isDebugEnabled()) {
+ for (Map.Entry<Object, Object> entry : deployment.getProperties().entrySet()) {
+ log.info("createApplication.createdEjb.property" + deployment.getEjbName() + entry.getKey() + entry.getValue());
+ }
+ }
+ } catch (OpenEJBException e) {
+ log.warn("Apparent double start of ejb?? ", e);
+ } catch (Throwable t) {
+ throw new OpenEJBException("Error deploying '"+deployment.getEjbName()+"'. Exception: "+t.getClass()+": "+t.getMessage(), t);
+ }
+ }
+
+ // start
+ for (BeanContext deployment : allDeployments) {
+ try {
+ Container container = deployment.getContainer();
+ container.start(deployment);
+ log.info("createApplication.startedEjb" + deployment.getDeploymentID() + deployment.getEjbName() + container.getContainerID());
+ } catch (Throwable t) {
+ throw new OpenEJBException("Error starting '"+deployment.getEjbName()+"'. Exception: "+t.getClass()+": "+t.getMessage(), t);
+ }
+ }
+ EjbResolver globalEjbResolver = SystemInstance.get().getComponent(EjbResolver.class);
+ globalEjbResolver.add(appInfoGBean.getEjbJarInfo(moduleURI));
+
+ for (String deploymentId: ejbs.keySet()) {
+ BeanContext beanContext = openEjbSystem.getDeploymentInfo(deploymentId);
+ GeronimoThreadContextListener.get().getEjbDeployment(beanContext);
+ }
}
public void doStop() {
- try {
- openEjbSystem.removeApplication(appInfo, classLoader);
-
Iterator<EjbDeployment> it= ejbs.values().iterator();
while(it.hasNext())
{
@@ -213,15 +220,6 @@ public class EjbModuleImpl implements EJ
it.remove();
}
- } catch (NoSuchApplicationException e) {
- log.error("Module does not exist.", e);
- } catch (UndeployException e) {
- List<Throwable> causes = e.getCauses();
- log.error(e.getMessage() + ": Encountered " + causes.size() + " failures.");
- for (Throwable throwable : causes) {
- log.info(throwable.toString(), throwable);
- }
- }
}
public void doFail() {
Modified: geronimo/server/trunk/plugins/openejb/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/cdi/OpenWebBeansWebInitializer.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/openejb/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/cdi/OpenWebBeansWebInitializer.java?rev=1146934&r1=1146933&r2=1146934&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/openejb/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/cdi/OpenWebBeansWebInitializer.java (original)
+++ geronimo/server/trunk/plugins/openejb/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/cdi/OpenWebBeansWebInitializer.java Fri Jul 15 00:52:45 2011
@@ -80,32 +80,42 @@ public class OpenWebBeansWebInitializer
//must be last since it idiotically copies stuff
OpenEJBLifecycle lifecycle = new OpenEJBLifecycle(webBeansContext);
webBeansContext.registerService(ContainerLifecycle.class, lifecycle);
- if (startup != null) {
- GeronimoSingletonService.contextEntered(webBeansContext);
- try {
- //from OWB's WebBeansConfigurationListener
- try {
- if (startup instanceof ServletContext) {
- StartupObject startupObject = new StartupObject(new AppContext("none", SystemInstance.get(), Thread.currentThread().getContextClassLoader(), null, null, true), new AppInfo(), Collections.<BeanContext>emptyList());
- lifecycle.startApplication(startupObject);
- lifecycle.startServletContext((ServletContext)startup);
- } else if (startup instanceof StartupObject) {
- lifecycle.startApplication(startup);
+ WebBeansContext oldContext = GeronimoSingletonService.contextEntered(webBeansContext);
+ try {
+ //from OWB's WebBeansConfigurationListener
+
+ try {
+ if (startup == null) {
+ //this should only be used for servlet tests
+ StartupObject startupObject = new StartupObject(new AppContext("none", SystemInstance.get(), Thread.currentThread().getContextClassLoader(), null, null, true), new AppInfo(), Collections.<BeanContext>emptyList());
+ lifecycle.startApplication(startupObject);
+// lifecycle.startServletContext((ServletContext)startup);
+ } else if (startup instanceof StartupObject) {
+ lifecycle.startApplication(startup);
// ((StartupObject)startup).getAppContext().setWebBeansContext(webBeansContext);
- }
- } catch (Exception e) {
- // logger.error(OWBLogConst.ERROR_0018, event.getServletContext().getContextPath());
- WebBeansUtil.throwRuntimeExceptions(e);
}
-
- } finally {
- GeronimoSingletonService.contextExited(null);
+ } catch (Exception e) {
+ // logger.error(OWBLogConst.ERROR_0018, event.getServletContext().getContextPath());
+ WebBeansUtil.throwRuntimeExceptions(e);
}
+
+ } finally {
+ GeronimoSingletonService.contextExited(oldContext);
}
return webBeansContext;
}
+ public static void initializeServletContext(WebBeansContext webBeansContext, ServletContext servletContext) {
+ WebBeansContext oldContext = GeronimoSingletonService.contextEntered(webBeansContext);
+ try {
+ OpenEJBLifecycle lifecycle = (OpenEJBLifecycle) webBeansContext.getService(ContainerLifecycle.class);
+ lifecycle.startServletContext(servletContext);
+ } finally {
+ GeronimoSingletonService.contextExited(oldContext);
+ }
+ }
+
// public OpenWebBeansWebInitializer(WebBeansContext webBeansContext, ServletContext servletContext) {
// GeronimoSingletonService.contextEntered(webBeansContext);
//
Modified: geronimo/server/trunk/plugins/openejb/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/cdi/ThreadSingletonServiceAdapter.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/openejb/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/cdi/ThreadSingletonServiceAdapter.java?rev=1146934&r1=1146933&r2=1146934&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/openejb/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/cdi/ThreadSingletonServiceAdapter.java (original)
+++ geronimo/server/trunk/plugins/openejb/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/cdi/ThreadSingletonServiceAdapter.java Fri Jul 15 00:52:45 2011
@@ -75,6 +75,7 @@ public class ThreadSingletonServiceAdapt
contextExited(old);
}
}
+
@Override
public Object contextEntered(WebBeansContext owbContext) {
return GeronimoSingletonService.contextEntered(owbContext);
Modified: geronimo/server/trunk/plugins/tomcat/geronimo-tomcat7-builder/src/main/java/org/apache/geronimo/tomcat/deployment/TomcatModuleBuilder.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/tomcat/geronimo-tomcat7-builder/src/main/java/org/apache/geronimo/tomcat/deployment/TomcatModuleBuilder.java?rev=1146934&r1=1146933&r2=1146934&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/tomcat/geronimo-tomcat7-builder/src/main/java/org/apache/geronimo/tomcat/deployment/TomcatModuleBuilder.java (original)
+++ geronimo/server/trunk/plugins/tomcat/geronimo-tomcat7-builder/src/main/java/org/apache/geronimo/tomcat/deployment/TomcatModuleBuilder.java Fri Jul 15 00:52:45 2011
@@ -30,11 +30,8 @@ import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import java.util.jar.JarFile;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
import javax.servlet.Servlet;
-import javax.xml.bind.JAXBException;
import org.apache.geronimo.common.DeploymentException;
import org.apache.geronimo.deployment.Deployable;
@@ -73,10 +70,6 @@ import org.apache.geronimo.kernel.util.J
import org.apache.geronimo.naming.deployment.ENCConfigBuilder;
import org.apache.geronimo.naming.deployment.GBeanResourceEnvironmentBuilder;
import org.apache.geronimo.naming.deployment.ResourceEnvironmentSetter;
-import org.apache.geronimo.openejb.cdi.SharedOwbContext;
-import org.apache.geronimo.schema.ElementConverter;
-import org.apache.geronimo.schema.NamespaceElementConverter;
-import org.apache.geronimo.schema.SchemaConversionUtils;
import org.apache.geronimo.security.deployment.GeronimoSecurityBuilderImpl;
import org.apache.geronimo.security.jaas.ConfigurationFactory;
import org.apache.geronimo.tomcat.LifecycleListenerGBean;
@@ -714,13 +707,8 @@ public class TomcatModuleBuilder extends
// }
// }
//This shares a single OWB context for the whole ear
- Module<?,?> m = module;
- while (m.getParentModule() != null) {
- m = m.getParentModule();
- }
- if (m.getSharedContext().get(SharedOwbContext.class) != null) {
- GBeanData data = (GBeanData) m.getSharedContext().get(SharedOwbContext.class);
- AbstractName name = data.getAbstractName();
+ AbstractName name = EARContext.APPINFO_GBEAN_NAME_KEY.get(earContext.getGeneralData());
+ if (name != null) {
webModuleData.setReferencePattern("SharedOwbContext", name);
}
Modified: geronimo/server/trunk/plugins/tomcat/geronimo-tomcat7/src/main/java/org/apache/geronimo/tomcat/GeronimoStandardContext.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/tomcat/geronimo-tomcat7/src/main/java/org/apache/geronimo/tomcat/GeronimoStandardContext.java?rev=1146934&r1=1146933&r2=1146934&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/tomcat/geronimo-tomcat7/src/main/java/org/apache/geronimo/tomcat/GeronimoStandardContext.java (original)
+++ geronimo/server/trunk/plugins/tomcat/geronimo-tomcat7/src/main/java/org/apache/geronimo/tomcat/GeronimoStandardContext.java Fri Jul 15 00:52:45 2011
@@ -245,8 +245,10 @@ public class GeronimoStandardContext ext
WebBeansContext owbContext = ctx.getOWBContext();
if (owbContext == null) {
- owbContext = OpenWebBeansWebInitializer.newWebBeansContext(servletContext);
+ //hopefully for tests only
+ owbContext = OpenWebBeansWebInitializer.newWebBeansContext(null);
}
+ OpenWebBeansWebInitializer.initializeServletContext(owbContext, servletContext);
if (getInstanceManager() instanceof TomcatInstanceManager) {
((TomcatInstanceManager) getInstanceManager()).setOWBContext(owbContext);
}