You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by db...@apache.org on 2006/11/10 00:12:44 UTC
svn commit: r473133 - in /incubator/openejb/trunk/openejb3: ./
assembly/openejb-standalone/
container/openejb-core/src/main/java/org/apache/openejb/alt/config/
container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/
container/openejb...
Author: dblevins
Date: Thu Nov 9 15:12:42 2006
New Revision: 473133
URL: http://svn.apache.org/viewvc?view=rev&rev=473133
Log:
More refactorings on deployment for pulling out jndi building. Fixed last remaining jta 1.0.1b references (i hope)
Added:
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/JndiEncInfoBuilder.java
Modified:
incubator/openejb/trunk/openejb3/assembly/openejb-standalone/pom.xml
incubator/openejb/trunk/openejb3/assembly/openejb-standalone/try.sh
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/ConfigurationFactory.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/DeploymentLoader.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/EjbJarInfoBuilder.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EjbReferenceInfo.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncBuilder.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/Logger.java
incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/ApplicationClient.java
incubator/openejb/trunk/openejb3/pom.xml
Modified: incubator/openejb/trunk/openejb3/assembly/openejb-standalone/pom.xml
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/assembly/openejb-standalone/pom.xml?view=diff&rev=473133&r1=473132&r2=473133
==============================================================================
--- incubator/openejb/trunk/openejb3/assembly/openejb-standalone/pom.xml (original)
+++ incubator/openejb/trunk/openejb3/assembly/openejb-standalone/pom.xml Thu Nov 9 15:12:42 2006
@@ -92,6 +92,42 @@
<groupId>org.apache.openejb</groupId>
<artifactId>openejb-core</artifactId>
<version>${pom.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>geronimo</groupId>
+ <artifactId>geronimo-kernel</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>geronimo</groupId>
+ <artifactId>geronimo-transaction</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>geronimo</groupId>
+ <artifactId>geronimo-webservices</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>geronimo</groupId>
+ <artifactId>geronimo-naming</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>geronimo</groupId>
+ <artifactId>geronimo-timer</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>geronimo</groupId>
+ <artifactId>geronimo-security</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.geronimo.specs</groupId>
+ <artifactId>geronimo-j2ee-connector_1.5_spec</artifactId>
+ <exclusions>
+ <exclusion>
+ <groupId>org.apache.geronimo.specs</groupId>
+ <artifactId>geronimo-jta_1.0.1B_spec</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
<groupId>org.apache.openejb</groupId>
Modified: incubator/openejb/trunk/openejb3/assembly/openejb-standalone/try.sh
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/assembly/openejb-standalone/try.sh?view=diff&rev=473133&r1=473132&r2=473133
==============================================================================
--- incubator/openejb/trunk/openejb3/assembly/openejb-standalone/try.sh (original)
+++ incubator/openejb/trunk/openejb3/assembly/openejb-standalone/try.sh Thu Nov 9 15:12:42 2006
@@ -1,7 +1,11 @@
#!/bin/bash
+
+JAR=$PWD/../../itests/openejb-itests-app/target/openejb-itests-app-3.0-incubating-SNAPSHOT.ear
+
cd target/
-tar xzvf openejb-3.0-SNAPSHOT-bin.tar.gz
-cd openejb-3.0-SNAPSHOT
+tar xzvf openejb-3.0-incubating-SNAPSHOT-bin.tar.gz
+cd openejb-3.0-incubating-SNAPSHOT
+cp $JAR beans/
./bin/openejb start
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/ConfigurationFactory.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/ConfigurationFactory.java?view=diff&rev=473133&r1=473132&r2=473133
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/ConfigurationFactory.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/ConfigurationFactory.java Thu Nov 9 15:12:42 2006
@@ -17,6 +17,7 @@
package org.apache.openejb.alt.config;
import org.apache.openejb.OpenEJBException;
+import org.apache.openejb.jee.ApplicationClient;
import org.apache.openejb.loader.SystemInstance;
import org.apache.openejb.alt.config.ejb.EjbDeployment;
import org.apache.openejb.alt.config.sys.ConnectionManager;
@@ -51,6 +52,8 @@
import org.apache.openejb.assembler.classic.StatefulSessionContainerInfo;
import org.apache.openejb.assembler.classic.StatelessSessionContainerInfo;
import org.apache.openejb.assembler.classic.TransactionServiceInfo;
+import org.apache.openejb.assembler.classic.JndiEncInfo;
+import org.apache.openejb.assembler.classic.ClientInfo;
import org.apache.openejb.util.Logger;
import org.apache.openejb.util.Messages;
@@ -61,6 +64,7 @@
import java.util.Map;
import java.util.Properties;
import java.util.Vector;
+import java.io.File;
public class ConfigurationFactory implements OpenEjbConfigurationFactory, ProviderDefaults {
@@ -162,8 +166,9 @@
sys.containerSystem.statefulContainers = sfsbContainers;
sys.containerSystem.statelessContainers = slsbContainers;
- ArrayList ejbs = new ArrayList();
- ArrayList ejbJars = new ArrayList();
+ ArrayList<EnterpriseBeanInfo> ejbs = new ArrayList();
+ ArrayList<EjbJarInfo> ejbJars = new ArrayList();
+
for (DeploymentModule jar : jars) {
if (!(jar instanceof EjbModule)) {
continue;
@@ -182,8 +187,39 @@
ConfigUtils.logger.i18n.warning("conf.0004", ejbModule.getJarURI(), e.getMessage());
}
}
- sys.containerSystem.enterpriseBeans = (EnterpriseBeanInfo[]) ejbs.toArray(new EnterpriseBeanInfo[]{});
- sys.containerSystem.ejbJars = (EjbJarInfo[]) ejbJars.toArray(new EjbJarInfo[]{});
+
+ sys.containerSystem.enterpriseBeans = ejbs.toArray(new EnterpriseBeanInfo[]{});
+ sys.containerSystem.ejbJars = ejbJars.toArray(new EjbJarInfo[]{});
+
+ List<ClientInfo> clientInfos = new ArrayList();
+ for (DeploymentModule module : jars) {
+ if (!(module instanceof ClientModule)) {
+ continue;
+ }
+ ClientModule clientModule = (ClientModule) module;
+
+ Map<String, EnterpriseBeanInfo> infos = new HashMap();
+ for (EjbJarInfo ejbJarInfo : ejbJars) {
+ for (EnterpriseBeanInfo beanInfo : ejbJarInfo.enterpriseBeans) {
+ infos.put(beanInfo.ejbName, beanInfo);
+ }
+ }
+
+ ApplicationClient applicationClient = clientModule.getApplicationClient();
+ ClientInfo clientInfo = new ClientInfo();
+ clientInfo.description = applicationClient.getDescription();
+ clientInfo.displayName = applicationClient.getDisplayName();
+ clientInfo.codebase = clientModule.getJarLocation();
+ clientInfo.mainClass = applicationClient.getMainClass();
+ clientInfo.moduleId = getClientModuleId(clientModule);
+
+ JndiEncInfoBuilder jndiEncInfoBuilder = new JndiEncInfoBuilder(infos);
+ JndiEncInfo jndiEncInfo = jndiEncInfoBuilder.build(applicationClient, clientModule.getJarLocation());
+ clientInfo.jndiEnc = jndiEncInfo;
+ clientInfos.add(clientInfo);
+ }
+
+ sys.containerSystem.clients = clientInfos.toArray(new ClientInfo[]{});
SecurityRoleInfo defaultRole = new SecurityRoleInfo();
defaultRole.description = "The role applied to recurity references that are not linked.";
@@ -202,6 +238,16 @@
SystemInstance.get().setComponent(OpenEjbConfiguration.class, sys);
return sys;
+ }
+
+ private static String getClientModuleId(ClientModule clientModule) {
+ String jarLocation = clientModule.getJarLocation();
+ File file = new File(jarLocation);
+ String name = file.getName();
+ if (name.endsWith(".jar") || name.endsWith(".zip")){
+ name = name.replaceFirst("....$","");
+ }
+ return name;
}
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/DeploymentLoader.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/DeploymentLoader.java?view=diff&rev=473133&r1=473132&r2=473133
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/DeploymentLoader.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/DeploymentLoader.java Thu Nov 9 15:12:42 2006
@@ -204,7 +204,6 @@
}
String[] jarsToLoad = (String[]) jarList.toArray(new String[]{});
- // resolve jar locations ////////////////////////////////////// END ///////
/*[1] Put all EjbJar & OpenejbJar objects in a vector ***************/
for (int i = 0; i < jarsToLoad.length; i++) {
@@ -223,6 +222,10 @@
URL appXml = getResource(baseUrl, classLoader, "META-INF/application.xml");
+ if (appXml == null){
+ logger.debug("No \"META-INF/application.xml\" found.");
+ }
+
if (appXml != null) {
jarFile = unpack(appXml, jarFile);
@@ -433,20 +436,20 @@
private ClassLoader getClassLoader(File jarFile) throws OpenEJBException {
ClassLoader classLoader;
- if (jarFile.isDirectory()) {
+// if (jarFile.isDirectory()) {
try {
URL[] urls = new URL[]{jarFile.toURL()};
classLoader = new URLClassLoader(urls, OpenEJB.class.getClassLoader());
// classLoader = new URLClassLoader(urls, this.getClass().getClassLoader());
-
+ return classLoader;
} catch (MalformedURLException e) {
throw new OpenEJBException(ConfigurationFactory.messages.format("cl0001", jarFile.getAbsolutePath(), e.getMessage()));
}
- } else {
- TempCodebase tempCodebase = new TempCodebase(jarFile.getAbsolutePath());
- classLoader = tempCodebase.getClassLoader();
- }
- return classLoader;
+// } else {
+// TempCodebase tempCodebase = new TempCodebase(jarFile.getAbsolutePath());
+// classLoader = tempCodebase.getClassLoader();
+// }
+// return classLoader;
}
private URL getResource(URL baseUrl, ClassLoader classLoader, String name) {
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/EjbJarInfoBuilder.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/EjbJarInfoBuilder.java?view=diff&rev=473133&r1=473132&r2=473133
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/EjbJarInfoBuilder.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/EjbJarInfoBuilder.java Thu Nov 9 15:12:42 2006
@@ -20,18 +20,13 @@
import org.apache.openejb.OpenEJBException;
import org.apache.openejb.alt.config.ejb.EjbDeployment;
import org.apache.openejb.assembler.classic.EjbJarInfo;
-import org.apache.openejb.assembler.classic.EjbLocalReferenceInfo;
-import org.apache.openejb.assembler.classic.EjbReferenceInfo;
-import org.apache.openejb.assembler.classic.EjbReferenceLocationInfo;
import org.apache.openejb.assembler.classic.EnterpriseBeanInfo;
import org.apache.openejb.assembler.classic.EntityBeanInfo;
-import org.apache.openejb.assembler.classic.EnvEntryInfo;
import org.apache.openejb.assembler.classic.JndiEncInfo;
import org.apache.openejb.assembler.classic.MethodInfo;
import org.apache.openejb.assembler.classic.MethodPermissionInfo;
import org.apache.openejb.assembler.classic.MethodTransactionInfo;
import org.apache.openejb.assembler.classic.QueryInfo;
-import org.apache.openejb.assembler.classic.ResourceReferenceInfo;
import org.apache.openejb.assembler.classic.SecurityRoleInfo;
import org.apache.openejb.assembler.classic.SecurityRoleReferenceInfo;
import org.apache.openejb.assembler.classic.StatefulBeanInfo;
@@ -39,11 +34,8 @@
import org.apache.openejb.assembler.classic.LifecycleCallbackInfo;
import org.apache.openejb.jee.CmpField;
import org.apache.openejb.jee.ContainerTransaction;
-import org.apache.openejb.jee.EjbLocalRef;
-import org.apache.openejb.jee.EjbRef;
import org.apache.openejb.jee.EnterpriseBean;
import org.apache.openejb.jee.EntityBean;
-import org.apache.openejb.jee.EnvEntry;
import org.apache.openejb.jee.Icon;
import org.apache.openejb.jee.Method;
import org.apache.openejb.jee.MethodParams;
@@ -151,11 +143,14 @@
private void initJndiReferences(Map<String, EjbDeployment> ejbds, Map<String, EnterpriseBeanInfo> beanInfos, Map<String, EnterpriseBean> beanData) throws OpenEJBException {
+ JndiEncInfoBuilder jndiEncInfoBuilder = new JndiEncInfoBuilder(beanInfos);
+
for (EnterpriseBeanInfo beanInfo : beanInfos.values()) {
- JndiConsumer jndiConsumer = beanData.get(beanInfo.ejbName);
+ String ejbName = beanInfo.ejbName;
+ JndiConsumer jndiConsumer = beanData.get(ejbName);
- EjbDeployment ejbDeployment = (EjbDeployment) ejbds.get(beanInfo.ejbName);
+ EjbDeployment ejbDeployment = (EjbDeployment) ejbds.get(ejbName);
// Link all the resource refs
List<ResourceRef> resourceRefs = jndiConsumer.getResourceRef();
@@ -166,102 +161,10 @@
}
}
- /* Build Environment entries *****************/
- JndiEncInfo jndi = new JndiEncInfo();
-
- jndi.envEntries = buildEnvEntryInfos(jndiConsumer);
-
- /* Build Resource References *****************/
- jndi.resourceRefs = buildResourceRefInfos(jndiConsumer);
-
- jndi.ejbReferences = buildEjbRefInfos(jndiConsumer, beanInfos, beanInfo.ejbName);
-
- jndi.ejbLocalReferences = buildEjbLocalRefInfos(jndiConsumer, beanInfos, beanInfo.ejbName);
+ JndiEncInfo jndi = jndiEncInfoBuilder.build(jndiConsumer, ejbName);
beanInfo.jndiEnc = jndi;
}
-
- }
-
- private EjbLocalReferenceInfo[] buildEjbLocalRefInfos(JndiConsumer item, Map<String, EnterpriseBeanInfo> beanInfos, String referringComponent) throws OpenEJBException {
- List<EjbLocalReferenceInfo> infos = new ArrayList();
- for (EjbLocalRef ejb : item.getEjbLocalRef()) {
- EjbLocalReferenceInfo info = new EjbLocalReferenceInfo();
-
- info.homeType = ejb.getLocalHome();
- info.referenceName = ejb.getEjbRefName();
- info.location = new EjbReferenceLocationInfo();
-
- String ejbLink;
- if (ejb.getEjbLink() == null) {
- ejbLink = null;
- } else {
- ejbLink = ejb.getEjbLink();
- }
-
- EnterpriseBeanInfo otherBean = (EnterpriseBeanInfo) beanInfos.get(ejbLink);
- if (otherBean == null) {
- String msg = ConfigurationFactory.messages.format("config.noBeanFound", ejb.getEjbRefName(), referringComponent);
-
- ConfigurationFactory.logger.fatal(msg);
- throw new OpenEJBException(msg);
- }
- info.location.ejbDeploymentId = otherBean.ejbDeploymentId;
- infos.add(info);
- }
- return infos.toArray(new EjbLocalReferenceInfo[]{});
- }
-
- private EjbReferenceInfo[] buildEjbRefInfos(JndiConsumer item, Map<String, EnterpriseBeanInfo> beanInfos, String referringComponent) throws OpenEJBException {
- List<EjbReferenceInfo> infos = new ArrayList();
- for (EjbRef ejb : item.getEjbRef()) {
- EjbReferenceInfo info = new EjbReferenceInfo();
-
- info.homeType = ejb.getHome();
- info.referenceName = ejb.getEjbRefName();
- info.location = new EjbReferenceLocationInfo();
-
- String ejbLink = ejb.getEjbLink();
-
- EnterpriseBeanInfo otherBean = (EnterpriseBeanInfo) beanInfos.get(ejbLink);
- if (otherBean == null) {
- String msg = ConfigurationFactory.messages.format("config.noBeanFound", ejb.getEjbRefName(), referringComponent);
-
- ConfigurationFactory.logger.fatal(msg);
- throw new OpenEJBException(msg);
- }
- info.location.ejbDeploymentId = otherBean.ejbDeploymentId;
- infos.add(info);
- }
- return infos.toArray(new EjbReferenceInfo[]{});
- }
-
- private ResourceReferenceInfo[] buildResourceRefInfos(JndiConsumer item) {
- List<ResourceReferenceInfo> infos = new ArrayList();
- for (ResourceRef res : item.getResourceRef()) {
- ResourceReferenceInfo info = new ResourceReferenceInfo();
-
- info.referenceAuth = res.getResAuth().toString();
- info.referenceName = res.getResRefName();
- info.referenceType = res.getResType();
- info.resourceID = res.getResLink();
- infos.add(info);
- }
- return infos.toArray(new ResourceReferenceInfo[]{});
- }
-
- private EnvEntryInfo[] buildEnvEntryInfos(JndiConsumer item) {
- List<EnvEntryInfo> infos = new ArrayList();
- for (EnvEntry env : item.getEnvEntry()) {
- EnvEntryInfo info = new EnvEntryInfo();
-
- info.name = env.getEnvEntryName();
- info.type = env.getEnvEntryType();
- info.value = env.getEnvEntryValue();
-
- infos.add(info);
- }
- return infos.toArray(new EnvEntryInfo[]{});
}
private void initMethodTransactions(EjbModule jar, Map ejbds) {
Added: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/JndiEncInfoBuilder.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/JndiEncInfoBuilder.java?view=auto&rev=473133
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/JndiEncInfoBuilder.java (added)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/JndiEncInfoBuilder.java Thu Nov 9 15:12:42 2006
@@ -0,0 +1,141 @@
+/**
+ * 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.openejb.alt.config;
+
+import org.apache.openejb.assembler.classic.JndiEncInfo;
+import org.apache.openejb.assembler.classic.EnterpriseBeanInfo;
+import org.apache.openejb.assembler.classic.EjbLocalReferenceInfo;
+import org.apache.openejb.assembler.classic.EjbReferenceLocationInfo;
+import org.apache.openejb.assembler.classic.EjbReferenceInfo;
+import org.apache.openejb.assembler.classic.ResourceReferenceInfo;
+import org.apache.openejb.assembler.classic.EnvEntryInfo;
+import org.apache.openejb.jee.JndiConsumer;
+import org.apache.openejb.jee.EjbLocalRef;
+import org.apache.openejb.jee.EjbRef;
+import org.apache.openejb.jee.ResourceRef;
+import org.apache.openejb.jee.EnvEntry;
+import org.apache.openejb.OpenEJBException;
+
+import java.util.Map;
+import java.util.List;
+import java.util.ArrayList;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class JndiEncInfoBuilder {
+
+ private final Map<String, EnterpriseBeanInfo> beanInfos;
+
+ public JndiEncInfoBuilder(Map<String, EnterpriseBeanInfo> beanInfos) {
+ this.beanInfos = beanInfos;
+ }
+
+ public JndiEncInfo build(JndiConsumer jndiConsumer, String ejbName) throws OpenEJBException {
+
+ JndiEncInfo jndi = new JndiEncInfo();
+
+ /* Build Environment entries *****************/
+ jndi.envEntries = buildEnvEntryInfos(jndiConsumer);
+
+ /* Build Resource References *****************/
+ jndi.resourceRefs = buildResourceRefInfos(jndiConsumer);
+
+ jndi.ejbReferences = buildEjbRefInfos(jndiConsumer, ejbName);
+
+ jndi.ejbLocalReferences = buildEjbLocalRefInfos(jndiConsumer, ejbName);
+
+ return jndi;
+ }
+
+ private EjbLocalReferenceInfo[] buildEjbLocalRefInfos(JndiConsumer item, String referringComponent) throws OpenEJBException {
+ List<EjbLocalReferenceInfo> infos = new ArrayList();
+ for (EjbLocalRef ejb : item.getEjbLocalRef()) {
+ EjbLocalReferenceInfo info = new EjbLocalReferenceInfo();
+
+ info.homeType = ejb.getLocalHome();
+ info.referenceName = ejb.getEjbRefName();
+ info.location = new EjbReferenceLocationInfo();
+
+ String ejbLink = ejb.getEjbLink();
+
+ EnterpriseBeanInfo otherBean = (EnterpriseBeanInfo) beanInfos.get(ejbLink);
+ if (otherBean == null) {
+ String msg = ConfigurationFactory.messages.format("config.noBeanFound", ejb.getEjbRefName(), referringComponent);
+
+ ConfigurationFactory.logger.fatal(msg);
+ throw new OpenEJBException(msg);
+ }
+ info.location.ejbDeploymentId = otherBean.ejbDeploymentId;
+ infos.add(info);
+ }
+ return infos.toArray(new EjbLocalReferenceInfo[]{});
+ }
+
+ private EjbReferenceInfo[] buildEjbRefInfos(JndiConsumer item, String referringComponent) throws OpenEJBException {
+ List<EjbReferenceInfo> infos = new ArrayList();
+ for (EjbRef ejb : item.getEjbRef()) {
+ EjbReferenceInfo info = new EjbReferenceInfo();
+
+ info.homeType = ejb.getHome();
+ info.remoteType = ejb.getRemote();
+ info.referenceName = ejb.getEjbRefName();
+ info.location = new EjbReferenceLocationInfo();
+
+ String ejbLink = ejb.getEjbLink();
+
+ EnterpriseBeanInfo otherBean = (EnterpriseBeanInfo) beanInfos.get(ejbLink);
+ if (otherBean == null) {
+ String msg = ConfigurationFactory.messages.format("config.noBeanFound", ejb.getEjbRefName(), referringComponent);
+
+ ConfigurationFactory.logger.fatal(msg);
+ throw new OpenEJBException(msg);
+ }
+ info.location.ejbDeploymentId = otherBean.ejbDeploymentId;
+ infos.add(info);
+ }
+ return infos.toArray(new EjbReferenceInfo[]{});
+ }
+
+ private ResourceReferenceInfo[] buildResourceRefInfos(JndiConsumer item) {
+ List<ResourceReferenceInfo> infos = new ArrayList();
+ for (ResourceRef res : item.getResourceRef()) {
+ ResourceReferenceInfo info = new ResourceReferenceInfo();
+
+ info.referenceAuth = res.getResAuth().toString();
+ info.referenceName = res.getResRefName();
+ info.referenceType = res.getResType();
+ info.resourceID = res.getResLink();
+ infos.add(info);
+ }
+ return infos.toArray(new ResourceReferenceInfo[]{});
+ }
+
+ private EnvEntryInfo[] buildEnvEntryInfos(JndiConsumer item) {
+ List<EnvEntryInfo> infos = new ArrayList();
+ for (EnvEntry env : item.getEnvEntry()) {
+ EnvEntryInfo info = new EnvEntryInfo();
+
+ info.name = env.getEnvEntryName();
+ info.type = env.getEnvEntryType();
+ info.value = env.getEnvEntryValue();
+
+ infos.add(info);
+ }
+ return infos.toArray(new EnvEntryInfo[]{});
+ }
+}
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java?view=diff&rev=473133&r1=473132&r2=473133
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java Thu Nov 9 15:12:42 2006
@@ -32,6 +32,7 @@
import javax.resource.spi.ConnectionManager;
import javax.resource.spi.ManagedConnectionFactory;
import javax.transaction.TransactionManager;
+import javax.naming.Context;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
@@ -235,6 +236,15 @@
containerSystem.addDeployment(deployment);
jndiBuilder.bind(deployment);
}
+ }
+
+ ClientInfo[] clients = containerSystemInfo.clients;
+ for (ClientInfo clientInfo : clients) {
+ JndiEncBuilder jndiEncBuilder = new JndiEncBuilder(clientInfo.jndiEnc);
+ Context context = jndiEncBuilder.build();
+ containerSystem.getJNDIContext().bind("java:openejb/client/"+clientInfo.moduleId+"/path", clientInfo.codebase);
+ containerSystem.getJNDIContext().bind("java:openejb/client/"+clientInfo.moduleId+"/mainClass", clientInfo.mainClass);
+ containerSystem.getJNDIContext().bind("java:openejb/client/"+clientInfo.moduleId+"/enc", context);
}
// roleMapping used later in buildMethodPermissions
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EjbReferenceInfo.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EjbReferenceInfo.java?view=diff&rev=473133&r1=473132&r2=473133
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EjbReferenceInfo.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EjbReferenceInfo.java Thu Nov 9 15:12:42 2006
@@ -20,5 +20,6 @@
public String referenceName;
public String homeType;
+ public String remoteType;
public EjbReferenceLocationInfo location;
}
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncBuilder.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncBuilder.java?view=diff&rev=473133&r1=473132&r2=473133
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncBuilder.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncBuilder.java Thu Nov 9 15:12:42 2006
@@ -34,6 +34,13 @@
import java.util.Iterator;
import java.util.Map;
+/**
+ * TODO: This class is essentially an over glorified sym-linker. The names
+ * we were linking to are no longer guaranteed to be what we assume them to
+ * be. We need to come up with a different internal naming structure for
+ * the global JNDI and finally create the default which will be the default
+ * symlinked version of all the components.
+ */
public class JndiEncBuilder {
private final ReferenceWrapper referenceWrapper;
@@ -43,8 +50,14 @@
private final EnvEntryInfo[] envEntries;
private final ResourceReferenceInfo[] resourceRefs;
+ public JndiEncBuilder(JndiEncInfo jndiEnc) throws OpenEJBException {
+ this(jndiEnc, null, null);
+ }
+
public JndiEncBuilder(JndiEncInfo jndiEnc, String transactionType, BeanType ejbType) throws OpenEJBException {
- if (ejbType.isEntity()) {
+ if (ejbType == null){
+ referenceWrapper = new DefaultReferenceWrapper();
+ } else if (ejbType.isEntity()) {
referenceWrapper = new EntityRefereceWrapper();
} else if (ejbType == BeanType.STATEFUL) {
referenceWrapper = new StatefulRefereceWrapper();
@@ -80,8 +93,15 @@
Reference reference = null;
if (!location.remote) {
- String jndiName = "java:openejb/ejb/" + location.ejbDeploymentId;
- reference = new IntraVmJndiReference(jndiName);
+ // TODO: Before JndiNameStrategy can be used, this assumption has to be updated
+ if (referenceInfo.homeType == null){
+ String jndiName = "java:openejb/ejb/" + location.ejbDeploymentId + "BusinessRemote";
+ reference = new IntraVmJndiReference(jndiName);
+ }else {
+ // TODO: Before JndiNameStrategy can be used, this assumption has to be updated
+ String jndiName = "java:openejb/ejb/" + location.ejbDeploymentId;
+ reference = new IntraVmJndiReference(jndiName);
+ }
} else {
String openEjbSubContextName = "java:openejb/remote_jndi_contexts/" + location.jndiContextId;
reference = new JndiReference(openEjbSubContextName, location.remoteRefName);
@@ -94,6 +114,7 @@
EjbReferenceLocationInfo location = referenceInfo.location;
if (location != null && !location.remote) {
+ // TODO: Before JndiNameStrategy can be used, this assumption has to be updated
String jndiName = "java:openejb/ejb/" + location.ejbDeploymentId + "Local";
Reference reference = new IntraVmJndiReference(jndiName);
bindings.put(normalize(referenceInfo.referenceName), wrapReference(reference));
@@ -212,6 +233,16 @@
public Object wrap(UserTransaction userTransaction) {
return new org.apache.openejb.core.stateful.EncUserTransaction((CoreUserTransaction) userTransaction);
+ }
+ }
+
+ private static class DefaultReferenceWrapper extends ReferenceWrapper {
+ Object wrap(Reference reference) {
+ return reference;
+ }
+
+ Object wrap(UserTransaction reference) {
+ return reference;
}
}
}
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/Logger.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/Logger.java?view=diff&rev=473133&r1=473132&r2=473133
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/Logger.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/Logger.java Thu Nov 9 15:12:42 2006
@@ -782,11 +782,11 @@
private void set(String category, Level level) {
org.apache.log4j.Logger.getLogger(category).setLevel(level);
- Enumeration allAppenders = org.apache.log4j.Logger.getLogger(category).getAllAppenders();
- while (allAppenders.hasMoreElements()) {
- Object object = allAppenders.nextElement();
- System.out.println(category +" = " + object);
- }
+// Enumeration allAppenders = org.apache.log4j.Logger.getLogger(category).getAllAppenders();
+// while (allAppenders.hasMoreElements()) {
+// Object object = allAppenders.nextElement();
+// System.out.println(category +" = " + object);
+// }
}
Modified: incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/ApplicationClient.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/ApplicationClient.java?view=diff&rev=473133&r1=473132&r2=473133
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/ApplicationClient.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/ApplicationClient.java Thu Nov 9 15:12:42 2006
@@ -28,6 +28,7 @@
import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
import java.util.List;
import java.util.ArrayList;
+import java.util.Collections;
@XmlRootElement(name = "application-client")
@XmlAccessorType(XmlAccessType.FIELD)
@@ -47,7 +48,7 @@
"callbackHandler",
"messageDestination"
})
-public class ApplicationClient {
+public class ApplicationClient implements JndiConsumer {
@XmlTransient
protected TextMap description = new TextMap();
@@ -90,6 +91,9 @@
@XmlJavaTypeAdapter(CollapsedStringAdapter.class)
protected String version;
+ @XmlTransient
+ protected String mainClass;
+
public ApplicationClient() {
}
@@ -147,6 +151,10 @@
return this.ejbRef;
}
+ public List<EjbLocalRef> getEjbLocalRef() {
+ return Collections.EMPTY_LIST;
+ }
+
public List<ServiceRef> getServiceRef() {
if (serviceRef == null) {
serviceRef = new ArrayList<ServiceRef>();
@@ -175,6 +183,10 @@
return this.messageDestinationRef;
}
+ public List<PersistenceContextRef> getPersistenceContextRef() {
+ return Collections.EMPTY_LIST;
+ }
+
public List<PersistenceUnitRef> getPersistenceUnitRef() {
if (persistenceUnitRef == null) {
persistenceUnitRef = new ArrayList<PersistenceUnitRef>();
@@ -196,6 +208,16 @@
return this.preDestroy;
}
+ public void addPostConstruct(String method) {
+ assert mainClass != null: "Set the mainClass before calling this method";
+ getPostConstruct().add(new LifecycleCallback(mainClass, method));
+ }
+
+ public void addPreDestroy(String method) {
+ assert mainClass != null: "Set the mainClass before calling this method";
+ getPreDestroy().add(new LifecycleCallback(mainClass, method));
+ }
+
public String getCallbackHandler() {
return callbackHandler;
}
@@ -237,6 +259,14 @@
public void setVersion(String value) {
this.version = value;
+ }
+
+ public String getMainClass() {
+ return mainClass;
+ }
+
+ public void setMainClass(String mainClass) {
+ this.mainClass = mainClass;
}
}
Modified: incubator/openejb/trunk/openejb3/pom.xml
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/pom.xml?view=diff&rev=473133&r1=473132&r2=473133
==============================================================================
--- incubator/openejb/trunk/openejb3/pom.xml (original)
+++ incubator/openejb/trunk/openejb3/pom.xml Thu Nov 9 15:12:42 2006
@@ -289,6 +289,12 @@
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-j2ee-connector_1.5_spec</artifactId>
<version>1.0.1</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.apache.geronimo.specs</groupId>
+ <artifactId>geronimo-jta_1.0.1B_spec</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
<groupId>org.apache.geronimo.specs</groupId>