You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by da...@apache.org on 2007/01/18 03:11:02 UTC

svn commit: r497287 - /geronimo/server/trunk/modules/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/OpenEjbSystemGBean.java

Author: dain
Date: Wed Jan 17 18:11:02 2007
New Revision: 497287

URL: http://svn.apache.org/viewvc?view=rev&rev=497287
Log:
set thread context class loader

Modified:
    geronimo/server/trunk/modules/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/OpenEjbSystemGBean.java

Modified: geronimo/server/trunk/modules/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/OpenEjbSystemGBean.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/modules/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/OpenEjbSystemGBean.java?view=diff&rev=497287&r1=497286&r2=497287
==============================================================================
--- geronimo/server/trunk/modules/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/OpenEjbSystemGBean.java (original)
+++ geronimo/server/trunk/modules/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/OpenEjbSystemGBean.java Wed Jan 17 18:11:02 2007
@@ -47,7 +47,7 @@
 
     public OpenEjbSystemGBean(TransactionManager transactionManager) throws OpenEJBException {
         if (transactionManager == null) throw new NullPointerException("transactionManager is null");
-        
+
         configurationFactory = new ConfigurationFactory();
         assembler = new Assembler();
 
@@ -75,19 +75,43 @@
     }
 
     public ClientInfo configureApplication(ClientModule clientModule) throws OpenEJBException {
-        return configurationFactory.configureApplication(clientModule);
+        ClassLoader oldClassLoader = Thread.currentThread().getContextClassLoader();
+        Thread.currentThread().setContextClassLoader(clientModule.getClassLoader());
+        try {
+            return configurationFactory.configureApplication(clientModule);
+        } finally {
+            Thread.currentThread().setContextClassLoader(oldClassLoader);
+        }
     }
 
     public EjbJarInfo configureApplication(EjbModule ejbModule) throws OpenEJBException {
-        return configurationFactory.configureApplication(ejbModule);
+        ClassLoader oldClassLoader = Thread.currentThread().getContextClassLoader();
+        Thread.currentThread().setContextClassLoader(ejbModule.getClassLoader());
+        try {
+            return configurationFactory.configureApplication(ejbModule);
+        } finally {
+            Thread.currentThread().setContextClassLoader(oldClassLoader);
+        }
     }
 
     public void createClient(ClientInfo clientInfo, ClassLoader classLoader) throws NamingException, IOException, OpenEJBException {
-        assembler.createClient(clientInfo, classLoader);
+        ClassLoader oldClassLoader = Thread.currentThread().getContextClassLoader();
+        Thread.currentThread().setContextClassLoader(classLoader);
+        try {
+            assembler.createClient(clientInfo, classLoader);
+        } finally {
+            Thread.currentThread().setContextClassLoader(oldClassLoader);
+        }
     }
 
     public void createEjbJar(EjbJarInfo ejbJarInfo, ClassLoader classLoader) throws NamingException, IOException, OpenEJBException {
-        assembler.createEjbJar(ejbJarInfo, classLoader);
+        ClassLoader oldClassLoader = Thread.currentThread().getContextClassLoader();
+        Thread.currentThread().setContextClassLoader(classLoader);
+        try {
+            assembler.createEjbJar(ejbJarInfo, classLoader);
+        } finally {
+            Thread.currentThread().setContextClassLoader(oldClassLoader);
+        }
     }
 
     public DeploymentInfo getDeploymentInfo(String deploymentId) {