You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by ga...@apache.org on 2010/08/13 19:40:56 UTC
svn commit: r985297 - in /geronimo/server/trunk/plugins/openejb:
geronimo-openejb-builder/src/main/java/org/apache/geronimo/openejb/deployment/
geronimo-openejb/src/main/java/org/apache/geronimo/openejb/
Author: gawor
Date: Fri Aug 13 17:40:55 2010
New Revision: 985297
URL: http://svn.apache.org/viewvc?rev=985297&view=rev
Log:
Make sure the app and global jndi information generated at deploy time is used at runtime. Otherwise, some ejbs might be be fully injected
Added:
geronimo/server/trunk/plugins/openejb/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/GeronimoEjbInfo.java (with props)
Modified:
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/MEJBGBean.java
geronimo/server/trunk/plugins/openejb/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/OpenEjbSystem.java
geronimo/server/trunk/plugins/openejb/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/OpenEjbSystemGBean.java
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=985297&r1=985296&r2=985297&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 Aug 13 17:40:55 2010
@@ -390,7 +390,7 @@ public class EjbDeploymentBuilder {
}
//TODO well, what is the appName?
String appName = null;
- EjbJarInfo ejbJarInfo = ejbModule.getEjbJarInfo();
+ EjbJarInfo ejbJarInfo = ejbModule.getEjbInfo().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=985297&r1=985296&r2=985297&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 Aug 13 17:40:55 2010
@@ -26,8 +26,8 @@ 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.assembler.classic.EjbJarInfo;
import org.apache.openejb.config.ConfigurationFactory;
import org.apache.openejb.jee.EjbJar;
import org.apache.openejb.jee.EnterpriseBean;
@@ -39,7 +39,7 @@ import org.apache.xmlbeans.XmlObject;
* @version $Rev$ $Date$
*/
public class EjbModule extends EJBModule<OpenejbGeronimoEjbJarType> {
- private EjbJarInfo ejbJarInfo;
+ private GeronimoEjbInfo ejbInfo;
private EjbDeploymentBuilder ejbDeploymentBuilder;
private final org.apache.openejb.config.EjbModule ejbModule;
private final ConfigurationFactory.Chain preAutoConfigDeployer;
@@ -75,12 +75,12 @@ public class EjbModule extends EJBModule
return ejbModule;
}
- public EjbJarInfo getEjbJarInfo() {
- return ejbJarInfo;
+ public GeronimoEjbInfo getEjbInfo() {
+ return ejbInfo;
}
- public void setEjbJarInfo(EjbJarInfo ejbJarInfo) {
- this.ejbJarInfo = ejbJarInfo;
+ public void setEjbInfo(GeronimoEjbInfo ejbInfo) {
+ this.ejbInfo = 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=985297&r1=985296&r2=985297&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 Aug 13 17:40:55 2010
@@ -75,6 +75,7 @@ import org.apache.geronimo.naming.deploy
import org.apache.geronimo.openejb.EjbContainer;
import org.apache.geronimo.openejb.EjbDeployment;
import org.apache.geronimo.openejb.EjbModuleImpl;
+import org.apache.geronimo.openejb.GeronimoEjbInfo;
import org.apache.geronimo.openejb.OpenEjbSystem;
import org.apache.geronimo.openejb.xbeans.ejbjar.OpenejbGeronimoEjbJarType;
import org.apache.geronimo.persistence.PersistenceUnitGBean;
@@ -610,9 +611,9 @@ public class EjbModuleBuilder implements
private void doInitContext(EARContext earContext, Module module, Bundle bundle) throws DeploymentException {
EjbModule ejbModule = (EjbModule) module;
- EjbJarInfo ejbJarInfo = getEjbJarInfo(earContext, ejbModule, bundle);
+ GeronimoEjbInfo ejbInfo = getEjbInfo(earContext, ejbModule, bundle);
- ejbModule.setEjbJarInfo(ejbJarInfo);
+ ejbModule.setEjbInfo(ejbInfo);
// update the original spec dd with the metadata complete dd
EjbJar ejbJar = ejbModule.getEjbJar();
@@ -669,9 +670,9 @@ public class EjbModuleBuilder implements
}
}
- private EjbJarInfo getEjbJarInfo(EARContext earContext, EjbModule ejbModule, Bundle bundle) throws DeploymentException {
+ private GeronimoEjbInfo getEjbInfo(EARContext earContext, EjbModule ejbModule, Bundle bundle) throws DeploymentException {
EarData earData = EarData.KEY.get(earContext.getGeneralData());
- if (earData.getEjbJars().isEmpty()) {
+ if (earData.getEjbInfos().isEmpty()) {
ClassLoader bundleLoader = new BundleClassLoader(bundle);
@@ -710,7 +711,8 @@ public class EjbModuleBuilder implements
// add all of the modules to the ear data
for (EjbJarInfo ejbJar : appInfo.ejbJars) {
- earData.addEjbJar(ejbJar);
+ GeronimoEjbInfo ejbInfo = new GeronimoEjbInfo(ejbJar, appInfo.globalJndiEnc, appInfo.appJndiEnc);
+ earData.addEjbInfo(ejbInfo);
}
// add the cmp jar
@@ -736,8 +738,8 @@ public class EjbModuleBuilder implements
}
// find our module
- EjbJarInfo ejbJarInfo = earData.getEjbJar(ejbModule.getEjbModule().getModuleId());
- return ejbJarInfo;
+ GeronimoEjbInfo ejbInfo = earData.getEjbInfo(ejbModule.getEjbModule().getModuleId());
+ return ejbInfo;
}
private AppInfo configureApplication(AppModule appModule, EjbModule ejbModule, Configuration configuration)
@@ -750,10 +752,11 @@ public class EjbModuleBuilder implements
ConfigurationFactory.Chain chain = new ConfigurationFactory.Chain();
ConfigurationFactory configurationFactory = new ConfigurationFactory(offline, chain, openEjbConfiguration);
buildChain(offline,
- ejbModule.getPreAutoConfigDeployer(),
- SystemInstance.get().getOptions(),
- configurationFactory,
- chain);
+ ejbModule.getPreAutoConfigDeployer(),
+ SystemInstance.get().getOptions(),
+ configurationFactory,
+ chain);
+
ClassLoader oldClassLoader = Thread.currentThread().getContextClassLoader();
Thread.currentThread().setContextClassLoader(appModule.getClassLoader());
try {
@@ -770,6 +773,7 @@ public class EjbModuleBuilder implements
private static final String DEBUGGABLE_VM_HACKERY_PROPERTY = "openejb.debuggable-vm-hackery";
private static final String VALIDATION_SKIP_PROPERTY = "openejb.validation.skip";
private static final String WEBSERVICES_ENABLED = "openejb.webservices.enabled";
+
private static ConfigurationFactory.Chain buildChain(boolean offline, DynamicDeployer preAutoConfigDeployer, Options options, ConfigurationFactory configurationFactory, ConfigurationFactory.Chain chain) {
chain.add(new GeneratedClientModules.Add());
@@ -842,7 +846,6 @@ public class EjbModuleBuilder implements
return chain;
}
-
private void addContainerInfos(Configuration configuration, ContainerSystemInfo containerSystem, ConfigurationFactory configurationFactory) throws OpenEJBException {
LinkedHashSet<GBeanData> containerDatas = configuration.findGBeanDatas(Collections.singleton(new AbstractNameQuery(EjbContainer.class.getName())));
for (GBeanData containerData : containerDatas) {
@@ -988,7 +991,7 @@ public class EjbModuleBuilder implements
linkResolver.add(rootUrl, name, id);
}
- EjbJarInfo ejbJarInfo = ejbModule.getEjbJarInfo();
+ EjbJarInfo ejbJarInfo = ejbModule.getEjbInfo().getEjbJarInfo();
for (EnterpriseBeanInfo beanInfo : ejbJarInfo.enterpriseBeans) {
if (beanInfo instanceof StatefulBeanInfo) {
StatefulBeanInfo statefulBeanInfo = (StatefulBeanInfo) beanInfo;
@@ -1017,7 +1020,7 @@ public class EjbModuleBuilder implements
EjbDeployment.class.getName())));
ejbModuleGBeanData.setReferencePattern("OpenEjbSystem", new AbstractNameQuery(null, Collections.EMPTY_MAP, OpenEjbSystem.class.getName()));
- ejbModuleGBeanData.setAttribute("ejbJarInfo", ejbModule.getEjbJarInfo());
+ ejbModuleGBeanData.setAttribute("ejbInfo", ejbModule.getEjbInfo());
ejbModuleGBeanData.setAttribute("modulePath", ejbModule.getTargetPath());
ejbModuleGBeanData.setAttribute("moduleContext", module.getJndiScope(JndiScope.module));
} catch (Exception e) {
@@ -1029,7 +1032,7 @@ public class EjbModuleBuilder implements
// add the Jacc permissions to the ear
ComponentPermissions componentPermissions = ejbDeploymentBuilder.buildComponentPermissions();
- earContext.addSecurityContext(ejbModule.getEjbJarInfo().moduleId, componentPermissions);
+ earContext.addSecurityContext(ejbModule.getEjbInfo().getEjbJarInfo().moduleId, componentPermissions);
setMdbContainerIds(earContext, ejbModule, ejbModuleGBeanData);
@@ -1049,7 +1052,7 @@ public class EjbModuleBuilder implements
return;
}
OpenejbJarType openejbJarType = (OpenejbJarType) altDD;
- EjbJarInfo ejbJarInfo = ejbModule.getEjbJarInfo();
+ EjbJarInfo ejbJarInfo = ejbModule.getEjbInfo().getEjbJarInfo();
Map<String, MessageDrivenBeanInfo> mdbs = new TreeMap<String, MessageDrivenBeanInfo>();
for (EnterpriseBeanInfo enterpriseBean : ejbJarInfo.enterpriseBeans) {
@@ -1145,7 +1148,7 @@ public class EjbModuleBuilder implements
};
private final Map<String, EjbModule> ejbModules = new TreeMap<String, EjbModule>();
- private final Map<String, EjbJarInfo> ejbJars = new TreeMap<String, EjbJarInfo>();
+ private final Map<String, GeronimoEjbInfo> ejbJars = new TreeMap<String, GeronimoEjbInfo>();
public void addEjbModule(EjbModule ejbModule) {
ejbModules.put(ejbModule.getEjbModule().getModuleId(), ejbModule);
@@ -1163,23 +1166,22 @@ public class EjbModuleBuilder implements
return ejbModules.values();
}
- public void addEjbJar(EjbJarInfo ejbJarInfo) {
- ejbJars.put(ejbJarInfo.moduleId, ejbJarInfo);
+ public void addEjbInfo(GeronimoEjbInfo ejbInfo) {
+ ejbJars.put(ejbInfo.getEjbJarInfo().moduleId, ejbInfo);
}
- public EjbJarInfo getEjbJar(String moduleId) throws DeploymentException {
- EjbJarInfo ejbJarInfo = ejbJars.get(moduleId);
- if (ejbJarInfo == null) {
+ public GeronimoEjbInfo getEjbInfo(String moduleId) throws DeploymentException {
+ GeronimoEjbInfo ejbInfo = ejbJars.get(moduleId);
+ if (ejbInfo == null) {
throw new DeploymentException("Ejb jar configuration passed but expected module " +
moduleId + " was not found in configured module list " + ejbJars.keySet());
}
- return ejbJarInfo;
+ return ejbInfo;
}
- public Collection<EjbJarInfo> getEjbJars() {
+ public Collection<GeronimoEjbInfo> getEjbInfos() {
return ejbJars.values();
}
}
-
}
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=985297&r1=985296&r2=985297&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 Aug 13 17:40:55 2010
@@ -38,6 +38,7 @@ import org.apache.geronimo.j2ee.j2eeobje
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;
@@ -111,25 +112,24 @@ public class EjbRefBuilder extends Abstr
Map<String, List<InjectionTarget>> injectionsMap = new HashMap<String, List<InjectionTarget>>();
for (Map.Entry<String, EjbRef> entry: specDD.getEjbRefMap().entrySet()) {
- if (!entry.getValue().getInjectionTarget().isEmpty()) {
- injectionsMap.put(entry.getKey(), entry.getValue().getInjectionTarget());
- }
+ injectionsMap.put(entry.getKey(), entry.getValue().getInjectionTarget());
}
for (Map.Entry<String, EjbLocalRef> entry: specDD.getEjbLocalRefMap().entrySet()) {
- if (!entry.getValue().getInjectionTarget().isEmpty()) {
- injectionsMap.put(entry.getKey(), entry.getValue().getInjectionTarget());
- }
+ injectionsMap.put(entry.getKey(), entry.getValue().getInjectionTarget());
}
+
Map<String, Object> map = null;
try {
EjbModuleBuilder.EarData earData = EjbModuleBuilder.EarData.KEY.get(module.getRootEarContext().getGeneralData());
- Collection<EjbJarInfo> ejbJars = Collections.emptySet();
+ Collection<GeronimoEjbInfo> ejbInfos = Collections.emptySet();
if (earData != null) {
- ejbJars = earData.getEjbJars();
+ ejbInfos = earData.getEjbInfos();
}
AppInfo appInfo = new AppInfo();
- appInfo.ejbJars.addAll(ejbJars);
+ for (GeronimoEjbInfo ejbInfo : ejbInfos) {
+ appInfo.ejbJars.add(ejbInfo.getEjbJarInfo());
+ }
JndiEncInfoBuilder jndiEncInfoBuilder = new JndiEncInfoBuilder(appInfo);
JndiEncInfo moduleJndi = new JndiEncInfo();
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=985297&r1=985296&r2=985297&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 Aug 13 17:40:55 2010
@@ -45,7 +45,7 @@ import org.apache.geronimo.management.J2
import org.apache.openejb.DeploymentInfo;
import org.apache.openejb.NoSuchApplicationException;
import org.apache.openejb.UndeployException;
-import org.apache.openejb.assembler.classic.EjbJarInfo;
+import org.apache.openejb.assembler.classic.AppInfo;
import org.apache.openejb.core.CoreDeploymentInfo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -65,7 +65,7 @@ public class EjbModuleImpl implements EJ
private final ClassLoader classLoader;
private final OpenEjbSystem openEjbSystem;
- private final EjbJarInfo ejbJarInfo;
+ private final AppInfo appInfo;
public EjbModuleImpl(@ParamSpecial(type = SpecialAttributeType.objectName) String objectName,
@ParamReference(name = "J2EEServer", namingType = NameFactory.J2EE_SERVER) J2EEServer server,
@@ -75,7 +75,7 @@ public class EjbModuleImpl implements EJ
@ParamSpecial(type = SpecialAttributeType.classLoader) ClassLoader classLoader,
@ParamSpecial(type = SpecialAttributeType.kernel) Kernel kernel,
@ParamReference(name = "OpenEjbSystem") OpenEjbSystem openEjbSystem,
- @ParamAttribute(name = "ejbJarInfo") EjbJarInfo ejbJarInfo) throws NamingException {
+ @ParamAttribute(name = "ejbInfo") GeronimoEjbInfo ejbInfo) throws NamingException {
this.objectName = objectName;
ObjectName myObjectName = ObjectNameUtil.getObjectName(objectName);
verifyObjectName(myObjectName);
@@ -102,9 +102,10 @@ public class EjbModuleImpl implements EJ
this.classLoader = classLoader;
this.openEjbSystem = openEjbSystem;
- this.ejbJarInfo = ejbJarInfo;
+
+ this.appInfo = ejbInfo.createAppInfo();
}
-
+
private void removeEjb(EjbDeployment ejb) {
GeronimoThreadContextListener.get().removeEjb(ejb.getDeploymentId());
ejbs.remove(ejb.getDeploymentId());
@@ -168,7 +169,7 @@ public class EjbModuleImpl implements EJ
}
public void doStart() throws Exception {
- openEjbSystem.createEjbJar(ejbJarInfo, classLoader);
+ openEjbSystem.createApplication(appInfo, classLoader);
for (String deploymentId: ejbs.keySet()) {
DeploymentInfo deploymentInfo = openEjbSystem.getDeploymentInfo(deploymentId);
GeronimoThreadContextListener.get().getEjbDeployment((CoreDeploymentInfo) deploymentInfo);
@@ -177,7 +178,7 @@ public class EjbModuleImpl implements EJ
public void doStop() {
try {
- openEjbSystem.removeEjbJar(ejbJarInfo, classLoader);
+ openEjbSystem.removeApplication(appInfo, classLoader);
} catch (NoSuchApplicationException e) {
log.error("Module does not exist.", e);
} catch (UndeployException e) {
Added: geronimo/server/trunk/plugins/openejb/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/GeronimoEjbInfo.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/openejb/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/GeronimoEjbInfo.java?rev=985297&view=auto
==============================================================================
--- geronimo/server/trunk/plugins/openejb/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/GeronimoEjbInfo.java (added)
+++ geronimo/server/trunk/plugins/openejb/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/GeronimoEjbInfo.java Fri Aug 13 17:40:55 2010
@@ -0,0 +1,64 @@
+/**
+ * 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.Serializable;
+
+import org.apache.openejb.assembler.classic.AppInfo;
+import org.apache.openejb.assembler.classic.EjbJarInfo;
+import org.apache.openejb.assembler.classic.JndiEncInfo;
+
+public class GeronimoEjbInfo implements Serializable {
+
+ private final EjbJarInfo ejbJarInfo;
+ private final JndiEncInfo globalJndiEnc;
+ private final JndiEncInfo appJndiEnc;
+
+ public GeronimoEjbInfo(EjbJarInfo ejbJarInfo) {
+ this(ejbJarInfo, new JndiEncInfo(), new JndiEncInfo());
+ }
+
+ public GeronimoEjbInfo(EjbJarInfo ejbJarInfo, JndiEncInfo globalJndiEnc, JndiEncInfo appJndiEnc) {
+ this.ejbJarInfo = ejbJarInfo;
+ this.globalJndiEnc = globalJndiEnc;
+ this.appJndiEnc = appJndiEnc;
+ }
+
+ public EjbJarInfo getEjbJarInfo() {
+ return ejbJarInfo;
+ }
+
+ public AppInfo createAppInfo() {
+ AppInfo appInfo = new AppInfo();
+ appInfo.jarPath = ejbJarInfo.jarPath;
+ appInfo.ejbJars.add(ejbJarInfo);
+ merge(appInfo.appJndiEnc, appJndiEnc);
+ merge(appInfo.globalJndiEnc, globalJndiEnc);
+ return appInfo;
+ }
+
+ private static void merge(JndiEncInfo dest, JndiEncInfo source) {
+ dest.envEntries.addAll(source.envEntries);
+ dest.resourceRefs.addAll(source.resourceRefs);
+ dest.resourceEnvRefs.addAll(source.resourceEnvRefs);
+ dest.persistenceContextRefs.addAll(source.persistenceContextRefs);
+ dest.persistenceUnitRefs.addAll(source.persistenceUnitRefs);
+ dest.serviceRefs.addAll(source.serviceRefs);
+ dest.ejbLocalReferences.addAll(source.ejbLocalReferences);
+ dest.ejbReferences.addAll(source.ejbReferences);
+ }
+}
Propchange: geronimo/server/trunk/plugins/openejb/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/GeronimoEjbInfo.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/server/trunk/plugins/openejb/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/GeronimoEjbInfo.java
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: geronimo/server/trunk/plugins/openejb/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/GeronimoEjbInfo.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: geronimo/server/trunk/plugins/openejb/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/MEJBGBean.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/openejb/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/MEJBGBean.java?rev=985297&r1=985296&r2=985297&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/openejb/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/MEJBGBean.java (original)
+++ geronimo/server/trunk/plugins/openejb/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/MEJBGBean.java Fri Aug 13 17:40:55 2010
@@ -47,7 +47,8 @@ public class MEJBGBean implements GBeanL
OpenEjbSystem openEjbSystem = ejbContainer.getOpenEjbSystem();
//A dummy URL MEJBGBean.class.getResource( "" ).toString() to avoid the "java.net.MalformedURLException: no protocol: MEJBGBean" when startup
EjbJarInfo ejbJarInfo = openEjbSystem.configureApplication(new EjbModule(cl, getClass().getSimpleName(), MEJBGBean.class.getResource( "" ).toString(), ejbJar, null));
- openEjbSystem.createEjbJar(ejbJarInfo, cl);
+ GeronimoEjbInfo ejbInfo = new GeronimoEjbInfo(ejbJarInfo);
+ openEjbSystem.createApplication(ejbInfo.createAppInfo(), cl);
}
static {
Modified: geronimo/server/trunk/plugins/openejb/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/OpenEjbSystem.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/openejb/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/OpenEjbSystem.java?rev=985297&r1=985296&r2=985297&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/openejb/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/OpenEjbSystem.java (original)
+++ geronimo/server/trunk/plugins/openejb/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/OpenEjbSystem.java Fri Aug 13 17:40:55 2010
@@ -53,12 +53,12 @@ public interface OpenEjbSystem {
void createClient(ClientInfo clientInfo, ClassLoader classLoader) throws NamingException, IOException, OpenEJBException;
- void createEjbJar(EjbJarInfo ejbJarInfo, ClassLoader classLoader) throws NamingException, IOException, OpenEJBException;
-
DeploymentInfo getDeploymentInfo(String deploymentId);
- void removeEjbJar(EjbJarInfo ejbJarInfo, ClassLoader classLoader) throws UndeployException, NoSuchApplicationException;
-
+ void createApplication(AppInfo appInfo, ClassLoader classLoader) throws NamingException, IOException, OpenEJBException;
+
+ void removeApplication(AppInfo appInfo, ClassLoader classLoader) throws UndeployException, NoSuchApplicationException;
+
AppInfo configureApplication(AppModule appModule) throws OpenEJBException;
void setORBContext(ORB orb, HandleDelegate handleDelegate);
Modified: geronimo/server/trunk/plugins/openejb/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/OpenEjbSystemGBean.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/openejb/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/OpenEjbSystemGBean.java?rev=985297&r1=985296&r2=985297&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/openejb/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/OpenEjbSystemGBean.java (original)
+++ geronimo/server/trunk/plugins/openejb/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/OpenEjbSystemGBean.java Fri Aug 13 17:40:55 2010
@@ -415,7 +415,7 @@ public class OpenEjbSystemGBean implemen
}
}
- public void createEjbJar(EjbJarInfo ejbJarInfo, ClassLoader classLoader) throws NamingException, IOException, OpenEJBException {
+ public void createApplication(AppInfo appInfo, ClassLoader classLoader) throws NamingException, IOException, OpenEJBException {
Set<AbstractName> names = kernel.listGBeans(new AbstractNameQuery(ResourceAdapterWrapper.class.getName()));
for (AbstractName name : names) {
try {
@@ -428,16 +428,16 @@ public class OpenEjbSystemGBean implemen
ClassLoader oldClassLoader = Thread.currentThread().getContextClassLoader();
Thread.currentThread().setContextClassLoader(classLoader);
try {
- assembler.createEjbJar(ejbJarInfo, classLoader);
+ assembler.createApplication(appInfo, classLoader);
} finally {
Thread.currentThread().setContextClassLoader(oldClassLoader);
}
}
- public void removeEjbJar(EjbJarInfo ejbJarInfo, ClassLoader classLoader) throws UndeployException, NoSuchApplicationException {
- assembler.destroyApplication(ejbJarInfo.jarPath);
+ public void removeApplication(AppInfo appInfo, ClassLoader classLoader) throws UndeployException, NoSuchApplicationException {
+ assembler.destroyApplication(appInfo.jarPath);
}
-
+
public DeploymentInfo getDeploymentInfo(String deploymentId) {
return getContainerSystem().getDeploymentInfo(deploymentId);
}