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++) {
  
  
  

Reply via email to