You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2013/05/13 22:59:08 UTC

svn commit: r1482103 - in /tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb: assembler/classic/ config/

Author: rmannibucau
Date: Mon May 13 20:59:08 2013
New Revision: 1482103

URL: http://svn.apache.org/r1482103
Log:
TOMEE-932 classloader first even for ear lib part - could be reverted soon if doesn't fit well the need/TCKs

Modified:
    tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
    tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/DeployTimeEnhancer.java
    tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AppModule.java
    tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
    tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java

Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java?rev=1482103&r1=1482102&r2=1482103&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java Mon May 13 20:59:08 2013
@@ -1817,7 +1817,7 @@ public class Assembler extends Assembler
 
         final URL[] filtered = jars.toArray(new URL[jars.size()]);
 
-        if (appInfo.delegateFirst) {
+        if (!appInfo.delegateFirst) {
             return ClassLoaderUtil.createClassLoader(appInfo.path, filtered, parent);
         }
         return ClassLoaderUtil.createClassLoaderFirst(appInfo.path, filtered, parent);

Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/DeployTimeEnhancer.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/DeployTimeEnhancer.java?rev=1482103&r1=1482102&r2=1482103&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/DeployTimeEnhancer.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/DeployTimeEnhancer.java Mon May 13 20:59:08 2013
@@ -26,6 +26,7 @@ import org.apache.openejb.util.LogCatego
 import org.apache.openejb.util.Logger;
 import org.apache.openejb.util.Saxs;
 import org.apache.openejb.util.URLs;
+import org.apache.openejb.util.classloader.URLClassLoaderFirst;
 import org.apache.xbean.finder.filter.Filter;
 import org.xml.sax.Attributes;
 import org.xml.sax.SAXException;
@@ -128,7 +129,7 @@ public class DeployTimeEnhancer {
         // enhancement
 
         final ClassLoader tccl = Thread.currentThread().getContextClassLoader();
-        final ClassLoader fakeClassLoader = new URLClassLoader(usedUrls.toArray(new URL[usedUrls.size()]), event.getParentClassLoader());
+        final ClassLoader fakeClassLoader = new URLClassLoaderFirst(usedUrls.toArray(new URL[usedUrls.size()]), event.getParentClassLoader());
 
         Thread.currentThread().setContextClassLoader(fakeClassLoader);
         try {

Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AppModule.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AppModule.java?rev=1482103&r1=1482102&r2=1482103&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AppModule.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AppModule.java Mon May 13 20:59:08 2013
@@ -22,6 +22,7 @@ import org.apache.openejb.jee.jpa.Entity
 import org.apache.openejb.jee.jpa.unit.Persistence;
 import org.apache.openejb.jee.jpa.unit.PersistenceUnit;
 import org.apache.openejb.jee.jpa.unit.TransactionType;
+import org.apache.openejb.loader.SystemInstance;
 import org.apache.openejb.util.SuperProperties;
 import org.apache.xbean.finder.IAnnotationFinder;
 
@@ -42,6 +43,7 @@ import java.util.TreeSet;
  * @version $Rev$ $Date$
  */
 public class AppModule implements DeploymentModule {
+    private static final boolean DELEGATE_FIRST_DEFAULT = SystemInstance.get().getOptions().get("openejb.classloader.delegate-first", true);
 
     private final Properties properties = new SuperProperties().caseInsensitive(true);
     private final Application application;
@@ -61,7 +63,7 @@ public class AppModule implements Deploy
     private final Map<String, Object> altDDs = new HashMap<String, Object>();
     private final Set<String> watchedResources = new TreeSet<String>();
     private final boolean standaloneModule;
-    private boolean delegateFirst = true;
+    private boolean delegateFirst = DELEGATE_FIRST_DEFAULT;
     private final Set<String> additionalLibMbeans = new TreeSet<String>();
     private final Collection<String> jaxRsProviders = new TreeSet<String>();
     private final Map<String, PojoConfiguration> pojoConfigurations = new HashMap<String, PojoConfiguration>();

Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java?rev=1482103&r1=1482102&r2=1482103&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java Mon May 13 20:59:08 2013
@@ -62,6 +62,7 @@ import org.apache.openejb.config.sys.Sec
 import org.apache.openejb.config.sys.Service;
 import org.apache.openejb.config.sys.ServiceProvider;
 import org.apache.openejb.config.sys.TransactionManager;
+import org.apache.openejb.core.ParentClassLoaderFinder;
 import org.apache.openejb.jee.Application;
 import org.apache.openejb.jee.EjbJar;
 import org.apache.openejb.jee.EnterpriseBean;
@@ -87,6 +88,7 @@ import org.apache.openejb.util.Messages;
 import org.apache.openejb.util.SuperProperties;
 import org.apache.openejb.util.URISupport;
 import org.apache.openejb.util.URLs;
+import org.apache.openejb.util.classloader.URLClassLoaderFirst;
 import org.apache.openejb.util.proxy.QueryProxy;
 import org.apache.xbean.finder.MetaAnnotatedClass;
 import org.apache.xbean.finder.ResourceFinder;
@@ -738,7 +740,7 @@ public class ConfigurationFactory implem
                     for (final String path : paths) {
                         urls.add(new File(path).toURI().normalize().toURL());
                     }
-                    deployments.setClasspath(new URLClassLoader(urls.toArray(new URL[urls.size()])));
+                    deployments.setClasspath(new URLClassLoaderFirst(urls.toArray(new URL[urls.size()]), ParentClassLoaderFinder.Helper.get()));
                 }
             }
 

Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java?rev=1482103&r1=1482102&r2=1482103&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java Mon May 13 20:59:08 2013
@@ -220,7 +220,7 @@ public class DeploymentLoader implements
                 addWebPersistenceDD("persistence-fragment.xml", otherDD, appModule);
                 addPersistenceUnits(appModule, baseUrl);
                 appModule.setStandloneWebModule();
-                appModule.setDelegateFirst(false);
+                appModule.setDelegateFirst(true); // force it for webapps
                 return appModule;
             }