You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by ke...@apache.org on 2007/04/20 16:19:50 UTC
svn commit: r530823 - in
/incubator/openejb/trunk/openejb3/container/openejb-core/src:
main/java/org/apache/openejb/assembler/classic/
main/java/org/apache/openejb/core/mdb/
test/java/org/apache/openejb/core/stateless/
Author: kevan
Date: Fri Apr 20 07:19:49 2007
New Revision: 530823
URL: http://svn.apache.org/viewvc?view=rev&rev=530823
Log:
OPENEJB-567 Fix potential problems in bean deployment. Delay container.deploy() until all deploymentInfo properties have been set. Also, fixed a problem with exception processing in MdbContainer
Modified:
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/EjbJarBuilder.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/test/java/org/apache/openejb/core/stateless/CrossClassLoaderProxyTest.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateless/ExtendedInjectionTest.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateless/StatelessContainerTest.java
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=530823&r1=530822&r2=530823
==============================================================================
--- 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 Fri Apr 20 07:19:49 2007
@@ -423,6 +423,9 @@
}
}
+ // now that everything is configured, deploy to the container
+ ejbJarBuilder.deploy(deployments);
+
for (EnterpriseBeanInfo beanInfo : ejbJar.enterpriseBeans) {
logger.info("Created Ejb(deployment-id="+beanInfo.ejbDeploymentId+", ejb-name="+beanInfo.ejbName+", container="+beanInfo.containerId+")");
}
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=530823&r1=530822&r2=530823
==============================================================================
--- 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 Fri Apr 20 07:19:49 2007
@@ -59,12 +59,22 @@
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);
+ // Don't deploy to the container, yet. That will be done by deploy() once Assembler as finished configuring the DeploymentInfo
deployment.setContainer(container);
} catch (Throwable e) {
throw new OpenEJBException("Error building bean '" + ejbInfo.ejbName + "'. Exception: " + e.getClass() + ": " + e.getMessage(), e);
}
}
return deployments;
+ }
+
+ public void deploy(HashMap<String, DeploymentInfo> deployments) throws OpenEJBException {
+ for (DeploymentInfo deployment : deployments.values()) {
+ try {
+ deployment.getContainer().deploy(deployment);
+ } catch (Throwable t) {
+ throw new OpenEJBException("Error deploying '"+deployment.getEjbName()+"'. Exception: "+t.getClass()+": "+t.getMessage(), t);
+ }
+ }
}
}
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=530823&r1=530822&r2=530823
==============================================================================
--- 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 Fri Apr 20 07:19:49 2007
@@ -348,7 +348,15 @@
// IllegalArgumentException - if the number of actual and formal parameters differ, or if an unwrapping conversion fails.
// NullPointerException - if the specified object is null and the method is an instance method.
// ExceptionInInitializerError - if the initialization provoked by this method fails.
- mdbCallContext.txPolicy.handleSystemException(re, instance, mdbCallContext.txContext);
+ if (!isApplicationException(deploymentInfo, re)) {
+ //
+ /// System Exception ****************************
+ mdbCallContext.txPolicy.handleSystemException(re, instance, mdbCallContext.txContext);
+ } else {
+ //
+ // Application Exception ***********************
+ mdbCallContext.txPolicy.handleApplicationException(re, false, mdbCallContext.txContext);
+ }
}
throw new AssertionError("Should not get here");
}
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateless/CrossClassLoaderProxyTest.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateless/CrossClassLoaderProxyTest.java?view=diff&rev=530823&r1=530822&r2=530823
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateless/CrossClassLoaderProxyTest.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateless/CrossClassLoaderProxyTest.java Fri Apr 20 07:19:49 2007
@@ -293,6 +293,7 @@
EjbJarBuilder builder = new EjbJarBuilder(props, this.getClass().getClassLoader());
HashMap<String, DeploymentInfo> ejbs = builder.build(jarInfo,null);
+ builder.deploy(ejbs);
return ejbs;
}
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateless/ExtendedInjectionTest.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateless/ExtendedInjectionTest.java?view=diff&rev=530823&r1=530822&r2=530823
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateless/ExtendedInjectionTest.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateless/ExtendedInjectionTest.java Fri Apr 20 07:19:49 2007
@@ -130,6 +130,7 @@
EjbJarBuilder builder = new EjbJarBuilder(props, this.getClass().getClassLoader());
HashMap<String, DeploymentInfo> ejbs = builder.build(jarInfo,null);
+ builder.deploy(ejbs);
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=530823&r1=530822&r2=530823
==============================================================================
--- 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 Fri Apr 20 07:19:49 2007
@@ -159,6 +159,7 @@
EjbJarBuilder builder = new EjbJarBuilder(props, this.getClass().getClassLoader());
HashMap<String, DeploymentInfo> ejbs = builder.build(jarInfo,null);
+ builder.deploy(ejbs);
return ejbs;
}