You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ma...@apache.org on 2008/03/04 12:27:31 UTC

svn commit: r633431 - in /maven/sandbox/trunk/shared/maven-runtime/src/test/java/org/apache/maven/shared/runtime: ChildDelegatingClassLoader.java DefaultMavenRuntimeTest.java DelegatingClassLoader.java

Author: markh
Date: Tue Mar  4 03:27:26 2008
New Revision: 633431

URL: http://svn.apache.org/viewvc?rev=633431&view=rev
Log:
Simplified test class loaders

Added:
    maven/sandbox/trunk/shared/maven-runtime/src/test/java/org/apache/maven/shared/runtime/DelegatingClassLoader.java
      - copied, changed from r633416, maven/sandbox/trunk/shared/maven-runtime/src/test/java/org/apache/maven/shared/runtime/ChildDelegatingClassLoader.java
Removed:
    maven/sandbox/trunk/shared/maven-runtime/src/test/java/org/apache/maven/shared/runtime/ChildDelegatingClassLoader.java
Modified:
    maven/sandbox/trunk/shared/maven-runtime/src/test/java/org/apache/maven/shared/runtime/DefaultMavenRuntimeTest.java

Modified: maven/sandbox/trunk/shared/maven-runtime/src/test/java/org/apache/maven/shared/runtime/DefaultMavenRuntimeTest.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/shared/maven-runtime/src/test/java/org/apache/maven/shared/runtime/DefaultMavenRuntimeTest.java?rev=633431&r1=633430&r2=633431&view=diff
==============================================================================
--- maven/sandbox/trunk/shared/maven-runtime/src/test/java/org/apache/maven/shared/runtime/DefaultMavenRuntimeTest.java (original)
+++ maven/sandbox/trunk/shared/maven-runtime/src/test/java/org/apache/maven/shared/runtime/DefaultMavenRuntimeTest.java Tue Mar  4 03:27:26 2008
@@ -788,18 +788,7 @@
             urls[i] = files[i].toURI().toURL();
         }
 
-        URLClassLoader classLoader;
-
-        if ( childDelegation )
-        {
-            classLoader = new ChildDelegatingClassLoader( urls, parent );
-        }
-        else
-        {
-            classLoader = new URLClassLoader( urls, parent );
-        }
-
-        return classLoader;
+        return new DelegatingClassLoader( urls, parent, childDelegation );
     }
     
     private void close( URLClassLoader classLoader ) throws IOException

Copied: maven/sandbox/trunk/shared/maven-runtime/src/test/java/org/apache/maven/shared/runtime/DelegatingClassLoader.java (from r633416, maven/sandbox/trunk/shared/maven-runtime/src/test/java/org/apache/maven/shared/runtime/ChildDelegatingClassLoader.java)
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/shared/maven-runtime/src/test/java/org/apache/maven/shared/runtime/DelegatingClassLoader.java?p2=maven/sandbox/trunk/shared/maven-runtime/src/test/java/org/apache/maven/shared/runtime/DelegatingClassLoader.java&p1=maven/sandbox/trunk/shared/maven-runtime/src/test/java/org/apache/maven/shared/runtime/ChildDelegatingClassLoader.java&r1=633416&r2=633431&rev=633431&view=diff
==============================================================================
--- maven/sandbox/trunk/shared/maven-runtime/src/test/java/org/apache/maven/shared/runtime/ChildDelegatingClassLoader.java (original)
+++ maven/sandbox/trunk/shared/maven-runtime/src/test/java/org/apache/maven/shared/runtime/DelegatingClassLoader.java Tue Mar  4 03:27:26 2008
@@ -25,79 +25,119 @@
 import java.util.Enumeration;
 
 /**
- * A child-delegating class loader for use by tests.
+ * A parent- or child-delegating class loader for use by tests.
  * 
  * @author <a href="mailto:markhobson@gmail.com">Mark Hobson</a>
  * @version $Id$
  */
-public class ChildDelegatingClassLoader extends URLClassLoader
+public class DelegatingClassLoader extends URLClassLoader
 {
+    // fields -----------------------------------------------------------------
+
+    private final boolean childDelegating;
+
     // constructors -----------------------------------------------------------
-    
-    public ChildDelegatingClassLoader(URL[] urls)
+
+    public DelegatingClassLoader( URL[] urls )
     {
-        super(urls);
+        super( urls );
+
+        childDelegating = false;
     }
-    
-    public ChildDelegatingClassLoader(URL[] urls, ClassLoader parent)
+
+    public DelegatingClassLoader( URL[] urls, ClassLoader parent )
     {
-        super(urls, parent);
+        this( urls, parent, false );
+    }
+
+    public DelegatingClassLoader( URL[] urls, ClassLoader parent, boolean childDelegating )
+    {
+        super( urls, parent );
+
+        this.childDelegating = childDelegating;
     }
-    
+
     // ClassLoader methods ----------------------------------------------------
-    
+
     /**
      * {@inheritDoc}
      */
     public Class loadClass( String name ) throws ClassNotFoundException
     {
-        Class klass = findLoadedClass( name );
-        
-        if ( klass == null )
+        Class klass;
+
+        if ( childDelegating )
         {
-            try
-            {
-                klass = findClass( name );
-            }
-            catch ( ClassNotFoundException exception )
+            klass = findLoadedClass( name );
+
+            if ( klass == null )
             {
-                if ( getParent() != null)
+                try
+                {
+                    klass = findClass( name );
+                }
+                catch ( ClassNotFoundException exception )
                 {
-                    klass = getParent().loadClass( name );
+                    if ( getParent() != null )
+                    {
+                        klass = getParent().loadClass( name );
+                    }
                 }
             }
         }
-        
+        else
+        {
+            klass = super.loadClass( name );
+        }
+
         return klass;
     }
-    
+
     /**
      * {@inheritDoc}
      */
     public URL getResource( String name )
     {
-        URL url = findResource( name );
-        
-        if ( url == null && getParent() != null )
+        URL url;
+
+        if ( childDelegating )
         {
-            url = getParent().getResource( name );
+            url = findResource( name );
+
+            if ( url == null && getParent() != null )
+            {
+                url = getParent().getResource( name );
+            }
         }
-        
+        else
+        {
+            url = super.getResource( name );
+        }
+
         return url;
     }
-    
+
     /**
      * {@inheritDoc}
      */
     public Enumeration getResources( String name ) throws IOException
     {
-        Enumeration urls = findResources( name );
+        Enumeration urls;
 
-        if ( getParent() != null )
+        if ( childDelegating )
         {
-            Enumeration parentURLs = getParent().getResources( name );
+            urls = findResources( name );
+
+            if ( getParent() != null )
+            {
+                Enumeration parentURLs = getParent().getResources( name );
 
-            urls = new CompoundEnumeration( urls, parentURLs );
+                urls = new CompoundEnumeration( urls, parentURLs );
+            }
+        }
+        else
+        {
+            urls = super.getResources( name );
         }
 
         return urls;