dblevins 2005/08/30 00:46:33
Modified: modules/core/src/java/org/openejb/alt/assembler/classic
ContainerBuilder.java
Log:
Workaround for a classloader issue in CMP Container
Revision Changes Path
1.4 +13 -8
openejb1/modules/core/src/java/org/openejb/alt/assembler/classic/ContainerBuilder.java
Index: ContainerBuilder.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb1/modules/core/src/java/org/openejb/alt/assembler/classic/ContainerBuilder.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- ContainerBuilder.java 29 Aug 2005 07:24:40 -0000 1.3
+++ ContainerBuilder.java 30 Aug 2005 04:46:33 -0000 1.4
@@ -81,20 +81,25 @@
this.props = props;
this.ejbJars = containerSystemInfo.ejbJars;
this.containerInfos = containerSystemInfo.containers;
- this.decorators = props.getProperty("openejb.container.decorators",
"").split(":");
+ String decorators =
props.getProperty("openejb.container.decorators");
+ this.decorators = (decorators == null)? new String[]{}:
decorators.split(":");
}
public Object build() throws OpenEJBException {
HashMap deployments = new HashMap();
+ URL[] jars = new URL[this.ejbJars.length];
for (int i = 0; i < this.ejbJars.length; i++) {
- EjbJarInfo ejbJar = this.ejbJars[i];
-
- ClassLoader classLoader;
try {
- classLoader = new URLClassLoader(new URL[]{new
File(ejbJar.jarPath).toURL()}, org.openejb.OpenEJB.class.getClassLoader());
+ jars[i] = new File(this.ejbJars[i].jarPath).toURL();
} catch (MalformedURLException e) {
- throw new
OpenEJBException(AssemblerTool.messages.format("cl0001", ejbJar.jarPath,
e.getMessage()));
+ throw new
OpenEJBException(AssemblerTool.messages.format("cl0001", ejbJars[i].jarPath,
e.getMessage()));
}
+ }
+
+ ClassLoader classLoader = new URLClassLoader(jars,
org.openejb.OpenEJB.class.getClassLoader());
+
+ for (int i = 0; i < this.ejbJars.length; i++) {
+ EjbJarInfo ejbJar = this.ejbJars[i];
EnterpriseBeanInfo[] ejbs = ejbJar.enterpriseBeans;
for (int j = 0; j < ejbs.length; j++) {