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 2007/01/11 02:16:35 UTC
svn commit: r495075 - in /incubator/openejb/trunk/openejb3/container:
openejb-core/src/main/java/org/apache/openejb/alt/config/
openejb-core/src/main/java/org/apache/openejb/assembler/classic/
openejb-core/src/main/java/org/apache/openejb/core/ openejb...
Author: dblevins
Date: Wed Jan 10 17:16:34 2007
New Revision: 495075
URL: http://svn.apache.org/viewvc?view=rev&rev=495075
Log:
build containers before deployments
Modified:
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/ConfigurationPrinter.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/ContainersBuilder.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EjbJarBuilder.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EnterpriseBeanInfo.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/CoreContainerSystem.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/entity/EntityContainer.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/entity/EntityInstanceManager.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/MdbContainer.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulContainer.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/Jdk13InvocationHandler.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateful/StatefulContainerTest.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateless/StatelessContainerTest.java
incubator/openejb/trunk/openejb3/container/openejb-loader/src/main/java/org/apache/openejb/loader/SystemInstance.java
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=495075&r1=495074&r2=495075
==============================================================================
--- 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 Wed Jan 10 17:16:34 2007
@@ -426,7 +426,7 @@
logger.fatal(msg);
throw new OpenEJBException(msg);
}
- cInfo.ejbeans.add(bean);
+ bean.containerId = d.getContainerId();
}
}
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/ConfigurationPrinter.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/ConfigurationPrinter.java?view=diff&rev=495075&r1=495074&r2=495075
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/ConfigurationPrinter.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/ConfigurationPrinter.java Wed Jan 10 17:16:34 2007
@@ -53,62 +53,63 @@
out(1, "displayName ", container.displayName);
out(1, "properties ");
container.properties.list(System.out);
- out(1, "ejbeans ", container.ejbeans.size());
- for (EnterpriseBeanInfo bean : container.ejbeans) {
- out(2, "codebase ", bean.codebase);
- out(2, "description ", bean.description);
- out(2, "displayName ", bean.displayName);
- out(2, "ejbClass ", bean.ejbClass);
- out(2, "ejbDeploymentId", bean.ejbDeploymentId);
- out(2, "ejbName ", bean.ejbName);
- out(2, "home ", bean.home);
- out(2, "largeIcon ", bean.largeIcon);
- out(2, "remote ", bean.remote);
- out(2, "smallIcon ", bean.smallIcon);
- out(2, "transactionType", bean.transactionType);
- out(2, "type ", bean.type);
-
- JndiEncInfo jndiEnc = bean.jndiEnc;
- out(2, "jndiEnc ", jndiEnc);
- out(2, "envEntries ", jndiEnc.envEntries.size());
- for (ListIterator<EnvEntryInfo> iterator = jndiEnc.envEntries.listIterator(); iterator.hasNext();) {
- EnvEntryInfo envEntry = iterator.next();
- out(3, "--[" + iterator.previousIndex() + "]----------------------");
- out(3, "name ", envEntry.name);
- out(3, "type ", envEntry.type);
- out(3, "value ", envEntry.value);
- }
- out(2, "ejbReferences ", jndiEnc.ejbReferences.size());
- for (ListIterator<EjbReferenceInfo> iterator = jndiEnc.ejbReferences.listIterator(); iterator.hasNext();) {
- EjbReferenceInfo ejbReference = iterator.next();
- out(3, "--[" + iterator.previousIndex() + "]----------------------");
- out(3, "homeType ", ejbReference.homeType);
- out(3, "referenceName ", ejbReference.referenceName);
- out(3, "location ", ejbReference.location);
- out(3, "ejbDeploymentId ", ejbReference.location.ejbDeploymentId);
- out(3, "jndiContextId ", ejbReference.location.jndiContextId);
- out(3, "remote ", ejbReference.location.remote);
- out(3, "remoteRefName ", ejbReference.location.remoteRefName);
- }
- out(2, "resourceRefs ", jndiEnc.resourceRefs.size());
- for (ListIterator<ResourceReferenceInfo> iterator = jndiEnc.resourceRefs.listIterator(); iterator.hasNext();) {
- ResourceReferenceInfo resourceRef = iterator.next();
- out(3, "--[" + iterator.previousIndex() + "]----------------------");
- out(3, "referenceAuth ", resourceRef.referenceAuth);
- out(3, "referenceName ", resourceRef.referenceName);
- out(3, "referenceType ", resourceRef.referenceType);
- if (resourceRef.location != null) {
- out(3, "location ", resourceRef.location);
- out(3, "jndiContextId ", resourceRef.location.jndiContextId);
- out(3, "remote ", resourceRef.location.remote);
- out(3, "remoteRefName ", resourceRef.location.remoteRefName);
- }
- }
- }
}
for (AppInfo app : conf.containerSystem.applications) {
for (EjbJarInfo ejbJar : app.ejbJars) {
+ out(1, "ejbeans ", ejbJar.enterpriseBeans.size());
+ for (EnterpriseBeanInfo bean : ejbJar.enterpriseBeans) {
+ out(2, "codebase ", bean.codebase);
+ out(2, "description ", bean.description);
+ out(2, "displayName ", bean.displayName);
+ out(2, "ejbClass ", bean.ejbClass);
+ out(2, "ejbDeploymentId", bean.ejbDeploymentId);
+ out(2, "ejbName ", bean.ejbName);
+ out(2, "home ", bean.home);
+ out(2, "largeIcon ", bean.largeIcon);
+ out(2, "remote ", bean.remote);
+ out(2, "smallIcon ", bean.smallIcon);
+ out(2, "transactionType", bean.transactionType);
+ out(2, "type ", bean.type);
+
+ JndiEncInfo jndiEnc = bean.jndiEnc;
+ out(2, "jndiEnc ", jndiEnc);
+ out(2, "envEntries ", jndiEnc.envEntries.size());
+ for (ListIterator<EnvEntryInfo> iterator = jndiEnc.envEntries.listIterator(); iterator.hasNext();) {
+ EnvEntryInfo envEntry = iterator.next();
+ out(3, "--[" + iterator.previousIndex() + "]----------------------");
+ out(3, "name ", envEntry.name);
+ out(3, "type ", envEntry.type);
+ out(3, "value ", envEntry.value);
+ }
+ out(2, "ejbReferences ", jndiEnc.ejbReferences.size());
+ for (ListIterator<EjbReferenceInfo> iterator = jndiEnc.ejbReferences.listIterator(); iterator.hasNext();) {
+ EjbReferenceInfo ejbReference = iterator.next();
+ out(3, "--[" + iterator.previousIndex() + "]----------------------");
+ out(3, "homeType ", ejbReference.homeType);
+ out(3, "referenceName ", ejbReference.referenceName);
+ out(3, "location ", ejbReference.location);
+ out(3, "ejbDeploymentId ", ejbReference.location.ejbDeploymentId);
+ out(3, "jndiContextId ", ejbReference.location.jndiContextId);
+ out(3, "remote ", ejbReference.location.remote);
+ out(3, "remoteRefName ", ejbReference.location.remoteRefName);
+ }
+ out(2, "resourceRefs ", jndiEnc.resourceRefs.size());
+ for (ListIterator<ResourceReferenceInfo> iterator = jndiEnc.resourceRefs.listIterator(); iterator.hasNext();) {
+ ResourceReferenceInfo resourceRef = iterator.next();
+ out(3, "--[" + iterator.previousIndex() + "]----------------------");
+ out(3, "referenceAuth ", resourceRef.referenceAuth);
+ out(3, "referenceName ", resourceRef.referenceName);
+ out(3, "referenceType ", resourceRef.referenceType);
+ if (resourceRef.location != null) {
+ out(3, "location ", resourceRef.location);
+ out(3, "jndiContextId ", resourceRef.location.jndiContextId);
+ out(3, "remote ", resourceRef.location.remote);
+ out(3, "remoteRefName ", resourceRef.location.remoteRefName);
+ }
+ }
+ }
+
if (!ejbJar.securityRoles.isEmpty()) {
out(0, "--Security Roles------------");
for (ListIterator<SecurityRoleInfo> iterator = ejbJar.securityRoles.listIterator(); iterator.hasNext();) {
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=495075&r1=495074&r2=495075
==============================================================================
--- 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 Wed Jan 10 17:16:34 2007
@@ -432,6 +432,7 @@
+ ". Please redeploy the jar");
}
bean.ejbDeploymentId = d.getDeploymentId();
+ bean.containerId = d.getContainerId();
Icon icon = s.getIcon();
bean.largeIcon = (icon == null) ? null : icon.getLargeIcon();
@@ -472,6 +473,7 @@
+ ". Please redeploy the jar");
}
bean.ejbDeploymentId = d.getDeploymentId();
+ bean.containerId = d.getContainerId();
Icon icon = mdb.getIcon();
bean.largeIcon = (icon == null) ? null : icon.getLargeIcon();
@@ -518,6 +520,7 @@
+ ". Please redeploy the jar");
}
bean.ejbDeploymentId = d.getDeploymentId();
+ bean.containerId = d.getContainerId();
Icon icon = e.getIcon();
bean.largeIcon = (icon == null) ? null : icon.getLargeIcon();
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=495075&r1=495074&r2=495075
==============================================================================
--- 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 Wed Jan 10 17:16:34 2007
@@ -241,7 +241,15 @@
AssemblerTool.RoleMapping roleMapping = new AssemblerTool.RoleMapping(configInfo.facilities.securityService.roleMappings);
- HashMap<String, DeploymentInfo> deployments2 = new HashMap<String, DeploymentInfo>();
+ // Containers
+ ContainersBuilder containersBuilder = new ContainersBuilder(containerSystem, containerSystemInfo, props);
+ List containers = (List) containersBuilder.buildContainers(new HashMap<String, DeploymentInfo>());
+ for (int i1 = 0; i1 < containers.size(); i1++) {
+ Container container = (Container) containers.get(i1);
+ containerSystem.addContainer(container.getContainerID(), container);
+ }
+
+ JndiBuilder jndiBuilder = new JndiBuilder(containerSystem.getJNDIContext());
for (AppInfo appInfo : containerSystemInfo.applications) {
List<URL> jars = new ArrayList<URL>();
@@ -284,14 +292,17 @@
}
// EJB
- EjbJarBuilder ejbJarBuilder = new EjbJarBuilder(classLoader);
+ EjbJarBuilder ejbJarBuilder = new EjbJarBuilder(props, classLoader);
for (EjbJarInfo ejbJar : appInfo.ejbJars) {
HashMap<String, DeploymentInfo> deployments = ejbJarBuilder.build(ejbJar, allFactories);
- deployments2.putAll(deployments);
+
for (DeploymentInfo deploymentInfo : deployments.values()) {
applyMethodPermissions((org.apache.openejb.core.CoreDeploymentInfo) deploymentInfo, ejbJar.methodPermissions, roleMapping);
applyTransactionAttributes((org.apache.openejb.core.CoreDeploymentInfo) deploymentInfo, ejbJar.methodTransactions);
+ containerSystem.addDeployment(deploymentInfo);
+ jndiBuilder.bind(deploymentInfo);
}
+
for (EnterpriseBeanInfo beanInfo : ejbJar.enterpriseBeans) {
CoreDeploymentInfo deployment = (CoreDeploymentInfo) deployments.get(beanInfo.ejbDeploymentId);
applySecurityRoleReference(deployment, beanInfo, roleMapping);
@@ -323,22 +334,6 @@
}
}
containerSystem.getJNDIContext().bind("java:openejb/client/" + clientInfo.moduleId + "/comp/injections", injections);
- }
- }
-
- JndiBuilder jndiBuilder = new JndiBuilder(containerSystem.getJNDIContext());
-
- // Containers
- ContainersBuilder containersBuilder = new ContainersBuilder(containerSystemInfo, ((AssemblerTool) this).props);
- List containers = (List) containersBuilder.buildContainers(deployments2);
- for (int i1 = 0; i1 < containers.size(); i1++) {
- Container container1 = (Container) containers.get(i1);
- containerSystem.addContainer(container1.getContainerID(), container1);
- org.apache.openejb.DeploymentInfo[] deployments1 = container1.deployments();
- for (int j = 0; j < deployments1.length; j++) {
- CoreDeploymentInfo deployment = (CoreDeploymentInfo) deployments1[j];
- containerSystem.addDeployment(deployment);
- jndiBuilder.bind(deployment);
}
}
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ContainersBuilder.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ContainersBuilder.java?view=diff&rev=495075&r1=495074&r2=495075
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ContainersBuilder.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ContainersBuilder.java Wed Jan 10 17:16:34 2007
@@ -21,6 +21,7 @@
import org.apache.openejb.OpenEJBException;
import org.apache.openejb.RpcContainer;
import org.apache.openejb.core.CoreDeploymentInfo;
+import org.apache.openejb.core.CoreContainerSystem;
import org.apache.openejb.loader.SystemInstance;
import org.apache.openejb.spi.SecurityService;
import org.apache.openejb.util.Logger;
@@ -29,6 +30,7 @@
import org.apache.xbean.recipe.StaticRecipe;
import javax.transaction.TransactionManager;
+import javax.naming.NamingException;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
@@ -43,35 +45,50 @@
private final Properties props;
private final List<ContainerInfo> containerInfos;
private final String[] decorators;
+ private CoreContainerSystem containerSystem;
- public ContainersBuilder(ContainerSystemInfo containerSystemInfo, Properties props) {
+ public ContainersBuilder(CoreContainerSystem containerSystem, ContainerSystemInfo containerSystemInfo, Properties props) {
this.props = props;
this.containerInfos = containerSystemInfo.containers;
String decorators = props.getProperty("openejb.container.decorators");
this.decorators = (decorators == null) ? new String[]{} : decorators.split(":");
-
+ this.containerSystem = containerSystem;
}
- public Object buildContainers(HashMap<String, DeploymentInfo> deployments) throws OpenEJBException {
+ public Object buildContainers(HashMap<String, DeploymentInfo> deployments) throws OpenEJBException, NamingException {
List<Container> containers = new ArrayList<Container>();
- for (ContainerInfo containerInfo : containerInfos) {
+ for (ContainerInfo serviceInfo : containerInfos) {
Map<String, CoreDeploymentInfo> deploymentsList = new HashMap<String, CoreDeploymentInfo>();
- for (EnterpriseBeanInfo bean : containerInfo.ejbeans) {
- String ejbDeploymentId = bean.ejbDeploymentId;
- CoreDeploymentInfo deployment = (CoreDeploymentInfo) deployments.get(ejbDeploymentId);
- deploymentsList.put(ejbDeploymentId, deployment);
- }
+// for (EnterpriseBeanInfo bean : containerInfo.ejbeans) {
+// String ejbDeploymentId = bean.ejbDeploymentId;
+// CoreDeploymentInfo deployment = (CoreDeploymentInfo) deployments.get(ejbDeploymentId);
+// deploymentsList.put(ejbDeploymentId, deployment);
+// }
- Container container = buildContainer(containerInfo, deploymentsList);
+ Container container = buildContainer(serviceInfo, deploymentsList);
container = wrapContainer(container);
- DeploymentInfo [] deploys = container.deployments();
- for (int x = 0; x < deploys.length; x++) {
- CoreDeploymentInfo di = (CoreDeploymentInfo) deploys[x];
- di.setContainer(container);
- }
+// DeploymentInfo [] deploys = container.deployments();
+// for (int x = 0; x < deploys.length; x++) {
+// CoreDeploymentInfo di = (CoreDeploymentInfo) deploys[x];
+// di.setContainer(container);
+// }
+
containers.add(container);
+
+ Class interfce = AssemblerTool.serviceInterfaces.get(serviceInfo.serviceType);
+ AssemblerTool.checkImplementation(interfce, container.getClass(), serviceInfo.serviceType, serviceInfo.id);
+
+
+ this.containerSystem.getJNDIContext().bind("java:openejb/" + serviceInfo.serviceType + "/" + serviceInfo.id, container);
+
+ SystemInstance.get().setComponent(interfce, container);
+
+ props.put(interfce.getName(), container);
+ props.put(serviceInfo.serviceType, container);
+ props.put(serviceInfo.id, container);
+
}
return containers;
}
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EjbJarBuilder.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EjbJarBuilder.java?view=diff&rev=495075&r1=495074&r2=495075
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EjbJarBuilder.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EjbJarBuilder.java Wed Jan 10 17:16:34 2007
@@ -19,12 +19,14 @@
import org.apache.openejb.DeploymentInfo;
import org.apache.openejb.OpenEJBException;
+import org.apache.openejb.Container;
import org.apache.openejb.core.CoreDeploymentInfo;
import org.apache.openejb.util.Messages;
import javax.persistence.EntityManagerFactory;
import java.util.HashMap;
import java.util.Map;
+import java.util.Properties;
/**
* @version $Revision$ $Date$
@@ -33,21 +35,28 @@
protected static final Messages messages = new Messages("org.apache.openejb.util.resources");
private final ClassLoader classLoader;
+ private final Properties props;
- public EjbJarBuilder(ClassLoader classLoader) {
+ public EjbJarBuilder(Properties props, ClassLoader classLoader) {
+ this.props = props;
this.classLoader = classLoader;
}
public HashMap<String, DeploymentInfo> build(EjbJarInfo ejbJar, Map<String, Map<String, EntityManagerFactory>> allFactories) throws OpenEJBException {
HashMap<String, DeploymentInfo> deployments = new HashMap<String, DeploymentInfo>();
-
-
+
+
for (EnterpriseBeanInfo ejbInfo: ejbJar.enterpriseBeans) {
- try {
+ try {
EnterpriseBeanBuilder deploymentBuilder = new EnterpriseBeanBuilder(classLoader, ejbInfo, ejbJar.defaultInterceptors,allFactories);
CoreDeploymentInfo deployment = (CoreDeploymentInfo) deploymentBuilder.build();
deployment.setJarPath(ejbJar.jarPath);
deployments.put(ejbInfo.ejbDeploymentId, deployment);
+
+ Container container = (Container) props.get(ejbInfo.containerId);
+ if (container == null) throw new IllegalStateException("Container does not exist: "+ejbInfo.containerId +". Referenced by deployment: "+deployment.getDeploymentID());
+ container.deploy(deployment.getDeploymentID(), deployment);
+ deployment.setContainer(container);
} catch (Throwable e) {
throw new OpenEJBException("Error building bean '"+ejbInfo.ejbName+"'. Exception: "+e.getClass()+": "+e.getMessage(), e);
}
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EnterpriseBeanInfo.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EnterpriseBeanInfo.java?view=diff&rev=495075&r1=495074&r2=495075
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EnterpriseBeanInfo.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EnterpriseBeanInfo.java Wed Jan 10 17:16:34 2007
@@ -58,5 +58,6 @@
public boolean excludeDefaultInterceptors;
public final List<InterceptorInfo> classInterceptors = new ArrayList<InterceptorInfo>();
public final List<MethodInterceptorInfo> methodInterceptors = new ArrayList<MethodInterceptorInfo>();
-
+
+ public String containerId;
}
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/CoreContainerSystem.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/CoreContainerSystem.java?view=diff&rev=495075&r1=495074&r2=495075
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/CoreContainerSystem.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/CoreContainerSystem.java Wed Jan 10 17:16:34 2007
@@ -68,7 +68,7 @@
containers.put(id, c);
}
- public void addDeployment(org.apache.openejb.core.CoreDeploymentInfo deployment) {
+ public void addDeployment(DeploymentInfo deployment) {
this.deployments.put(deployment.getDeploymentID(), deployment);
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/entity/EntityContainer.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/entity/EntityContainer.java?view=diff&rev=495075&r1=495074&r2=495075
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/entity/EntityContainer.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/entity/EntityContainer.java Wed Jan 10 17:16:34 2007
@@ -89,6 +89,7 @@
deploymentRegistry = registry;
org.apache.openejb.core.CoreDeploymentInfo di = (org.apache.openejb.core.CoreDeploymentInfo) info;
di.setContainer(this);
+ instanceManager.deploy(info);
}
public Object invoke(Object deployID, Method callMethod, Object [] args, Object primKey, Object securityIdentity) throws org.apache.openejb.OpenEJBException {
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/entity/EntityInstanceManager.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/entity/EntityInstanceManager.java?view=diff&rev=495075&r1=495074&r2=495075
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/entity/EntityInstanceManager.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/entity/EntityInstanceManager.java Wed Jan 10 17:16:34 2007
@@ -72,8 +72,12 @@
org.apache.openejb.DeploymentInfo[] deploymentInfos = this.container.deployments();
for (int i = 0; i < deploymentInfos.length; i++) {
org.apache.openejb.DeploymentInfo deploymentInfo = deploymentInfos[i];
- poolMap.put(deploymentInfo.getDeploymentID(), new LinkedListStack(poolsize / 2));
+ deploy(deploymentInfo);
}
+ }
+
+ public void deploy(org.apache.openejb.DeploymentInfo deploymentInfo) {
+ poolMap.put(deploymentInfo.getDeploymentID(), new LinkedListStack(poolsize / 2));
}
public EntityBean obtainInstance(ThreadContext callContext)
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/MdbContainer.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/MdbContainer.java?view=diff&rev=495075&r1=495074&r2=495075
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/MdbContainer.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/MdbContainer.java Wed Jan 10 17:16:34 2007
@@ -81,7 +81,11 @@
return containerID;
}
- public void deploy(Object deploymentId, DeploymentInfo deploymentInfo) throws OpenEJBException {
+ public void deploy(Object deploymentID, DeploymentInfo info) throws OpenEJBException {
+ }
+
+ // TODO: DMB: Temporarily commenting out as it locks the VM
+ public void LOCKUP_deploy(Object deploymentId, DeploymentInfo deploymentInfo) throws OpenEJBException {
// create the activation spec
ActivationSpec activationSpec = createActivationSpec(deploymentInfo);
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulContainer.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulContainer.java?view=diff&rev=495075&r1=495074&r2=495075
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulContainer.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulContainer.java Wed Jan 10 17:16:34 2007
@@ -63,7 +63,6 @@
for (CoreDeploymentInfo deploymentInfo : deploymentRegistry.values()) {
Map<Method, MethodType> methods = getLifecycelMethodsOfInterface(deploymentInfo);
-
deploymentInfo.setContainerData(new Data(new Index(methods)));
}
}
@@ -186,11 +185,18 @@
return containerID;
}
- public void deploy(Object deploymentID, DeploymentInfo info) throws OpenEJBException {
+ public void deploy(Object deploymentID, DeploymentInfo deploymentInfo) throws OpenEJBException {
+ deploy(deploymentID, (CoreDeploymentInfo)deploymentInfo);
+ }
+
+ private void deploy(Object deploymentID, CoreDeploymentInfo deploymentInfo) throws OpenEJBException {
+ Map<Method, MethodType> methods = getLifecycelMethodsOfInterface(deploymentInfo);
+ deploymentInfo.setContainerData(new Data(new Index(methods)));
+
HashMap registry = (HashMap) deploymentRegistry.clone();
- registry.put(deploymentID, info);
+ registry.put(deploymentID, deploymentInfo);
deploymentRegistry = registry;
- CoreDeploymentInfo di = (CoreDeploymentInfo) info;
+ CoreDeploymentInfo di = (CoreDeploymentInfo) deploymentInfo;
di.setContainer(this);
}
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/Jdk13InvocationHandler.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/Jdk13InvocationHandler.java?view=diff&rev=495075&r1=495074&r2=495075
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/Jdk13InvocationHandler.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/Jdk13InvocationHandler.java Wed Jan 10 17:16:34 2007
@@ -40,15 +40,13 @@
}
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
- if (delegate != null) {
- if (args == null) {
- args = new Object[0];
-
- }
- return delegate.invoke(proxy, method, args);
- } else {
+ if (delegate == null) {
throw new NullPointerException("No invocation handler for proxy " + proxy);
}
+ if (args == null) {
+ args = new Object[0];
+ }
+ return delegate.invoke(proxy, method, args);
}
}
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateful/StatefulContainerTest.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateful/StatefulContainerTest.java?view=diff&rev=495075&r1=495074&r2=495075
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateful/StatefulContainerTest.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateful/StatefulContainerTest.java Wed Jan 10 17:16:34 2007
@@ -43,6 +43,7 @@
import java.util.Stack;
import java.util.List;
import java.util.Arrays;
+import java.util.Properties;
import java.lang.reflect.Method;
import java.io.Serializable;
@@ -152,11 +153,6 @@
EjbModule jar = new EjbModule(this.getClass().getClassLoader(), "", ejbJar, openejbJar);
- // Build the DeploymentInfos
-
- HashMap<String, DeploymentInfo> ejbs = build(jar);
- deploymentInfo = ejbs.get("widget");
-
// Build and register the TransactionManager and SecurityService
PseudoTransactionService transactionManager = new PseudoTransactionService();
@@ -165,10 +161,16 @@
PseudoSecurityService securityService = new PseudoSecurityService();
SystemInstance.get().setComponent(SecurityService.class, securityService);
+
// Create the Container
+ container = new StatefulContainer("Stateful Container", transactionManager, securityService, new HashMap(),null, 10, 0, 1);
+ Properties props = new Properties();
+ props.put(container.getContainerID(), container);
+
+ // Build the DeploymentInfos
- container = new StatefulContainer("Stateful Container", transactionManager, securityService, ejbs,null, 10, 0, 1);
- ((CoreDeploymentInfo)deploymentInfo).setContainer(container);
+ HashMap<String, DeploymentInfo> ejbs = build(props, jar);
+ deploymentInfo = ejbs.get("widget");
ProxyManager.registerFactory("ivm_server", new Jdk13ProxyFactory());
ProxyManager.setDefaultFactory("ivm_server");
@@ -186,10 +188,10 @@
return sb.toString();
}
- private HashMap<String, DeploymentInfo> build(EjbModule jar) throws OpenEJBException {
+ private HashMap<String, DeploymentInfo> build(Properties props, EjbModule jar) throws OpenEJBException {
EjbJarInfoBuilder.deploymentIds.clear();
EjbJarInfoBuilder infoBuilder = new EjbJarInfoBuilder();
- EjbJarBuilder builder = new EjbJarBuilder(this.getClass().getClassLoader());
+ EjbJarBuilder builder = new EjbJarBuilder(props, this.getClass().getClassLoader());
EjbJarInfo jarInfo = infoBuilder.buildInfo(jar);
HashMap<String, DeploymentInfo> ejbs = builder.build(jarInfo,null);
return ejbs;
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateless/StatelessContainerTest.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateless/StatelessContainerTest.java?view=diff&rev=495075&r1=495074&r2=495075
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateless/StatelessContainerTest.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateless/StatelessContainerTest.java Wed Jan 10 17:16:34 2007
@@ -41,6 +41,7 @@
import java.util.HashMap;
import java.util.List;
import java.util.Stack;
+import java.util.Properties;
/**
* @version $Revision$ $Date$
@@ -123,14 +124,15 @@
EjbModule jar = new EjbModule(this.getClass().getClassLoader(), "", ejbJar, openejbJar);
- HashMap<String, DeploymentInfo> ejbs = build(jar);
- deploymentInfo = ejbs.get("widget");
-
PseudoTransactionService transactionManager = new PseudoTransactionService();
PseudoSecurityService securityService = new PseudoSecurityService();
SystemInstance.get().setComponent(SecurityService.class, securityService);
- container = new StatelessContainer("Stateless Container", transactionManager, securityService, ejbs, 10, 0, false);
- ((CoreDeploymentInfo)deploymentInfo).setContainer(container);
+ container = new StatelessContainer("Stateless Container", transactionManager, securityService, new HashMap(), 10, 0, false);
+ Properties props = new Properties();
+ props.put(container.getContainerID(), container);
+
+ HashMap<String, DeploymentInfo> ejbs = build(props, jar);
+ deploymentInfo = ejbs.get("widget");
ProxyManager.registerFactory("ivm_server", new Jdk13ProxyFactory());
ProxyManager.setDefaultFactory("ivm_server");
@@ -146,10 +148,10 @@
return sb.toString();
}
- private HashMap<String, DeploymentInfo> build(EjbModule jar) throws OpenEJBException {
+ private HashMap<String, DeploymentInfo> build(Properties props, EjbModule jar) throws OpenEJBException {
EjbJarInfoBuilder.deploymentIds.clear();
EjbJarInfoBuilder infoBuilder = new EjbJarInfoBuilder();
- EjbJarBuilder builder = new EjbJarBuilder(this.getClass().getClassLoader());
+ EjbJarBuilder builder = new EjbJarBuilder(props, this.getClass().getClassLoader());
EjbJarInfo jarInfo = infoBuilder.buildInfo(jar);
HashMap<String, DeploymentInfo> ejbs = builder.build(jarInfo,null);
return ejbs;
Modified: incubator/openejb/trunk/openejb3/container/openejb-loader/src/main/java/org/apache/openejb/loader/SystemInstance.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-loader/src/main/java/org/apache/openejb/loader/SystemInstance.java?view=diff&rev=495075&r1=495074&r2=495075
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-loader/src/main/java/org/apache/openejb/loader/SystemInstance.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-loader/src/main/java/org/apache/openejb/loader/SystemInstance.java Wed Jan 10 17:16:34 2007
@@ -141,7 +141,6 @@
* @param type the class type of the component required
*/
public <T> T setComponent(Class<T> type, T value) {
-// public Object setComponent(Class type, Object value) {
return (T)components.put(type, value);
}
@@ -175,4 +174,5 @@
public boolean hasProperty(String propName) {
return this.internalProperties.get(propName) != null;
}
+
}