Author: markh
Date: Fri Feb 29 02:02:59 2008
New Revision: 632277

URL: http://svn.apache.org/viewvc?rev=632277&view=rev
Log:
Refactored ClassLoaderHelper into MavenRuntimeVisitorUtils in preparation of 
apply visitors to objects other than class loaders

Added:
    
maven/sandbox/trunk/shared/maven-runtime/src/main/java/org/apache/maven/shared/runtime/MavenRuntimeVisitorUtils.java
      - copied, changed from r632036, 
maven/sandbox/trunk/shared/maven-runtime/src/main/java/org/apache/maven/shared/runtime/ClassLoaderHelper.java
    
maven/sandbox/trunk/shared/maven-runtime/src/test/java/org/apache/maven/shared/runtime/MavenRuntimeVisitorUtilsTest.java
      - copied, changed from r631632, 
maven/sandbox/trunk/shared/maven-runtime/src/test/java/org/apache/maven/shared/runtime/ClassLoaderHelperTest.java
Removed:
    
maven/sandbox/trunk/shared/maven-runtime/src/main/java/org/apache/maven/shared/runtime/ClassLoaderHelper.java
    
maven/sandbox/trunk/shared/maven-runtime/src/test/java/org/apache/maven/shared/runtime/ClassLoaderHelperTest.java
Modified:
    
maven/sandbox/trunk/shared/maven-runtime/src/main/java/org/apache/maven/shared/runtime/DefaultMavenRuntime.java

Modified: 
maven/sandbox/trunk/shared/maven-runtime/src/main/java/org/apache/maven/shared/runtime/DefaultMavenRuntime.java
URL: 
http://svn.apache.org/viewvc/maven/sandbox/trunk/shared/maven-runtime/src/main/java/org/apache/maven/shared/runtime/DefaultMavenRuntime.java?rev=632277&r1=632276&r2=632277&view=diff
==============================================================================
--- 
maven/sandbox/trunk/shared/maven-runtime/src/main/java/org/apache/maven/shared/runtime/DefaultMavenRuntime.java
 (original)
+++ 
maven/sandbox/trunk/shared/maven-runtime/src/main/java/org/apache/maven/shared/runtime/DefaultMavenRuntime.java
 Fri Feb 29 02:02:59 2008
@@ -40,7 +40,7 @@
     {
         PropertiesMavenRuntimeVisitor visitor = new 
PropertiesMavenRuntimeVisitor();
 
-        new ClassLoaderHelper( classLoader ).accept( visitor );
+        MavenRuntimeVisitorUtils.accept( classLoader, visitor );
 
         return visitor.getProjects();
     }
@@ -52,7 +52,7 @@
     {
         XMLMavenRuntimeVisitor visitor = new XMLMavenRuntimeVisitor();
 
-        new ClassLoaderHelper( classLoader ).accept( visitor );
+        MavenRuntimeVisitorUtils.accept( classLoader, visitor );
 
         return visitor.getProjects();
     }
@@ -64,7 +64,7 @@
     {
         XMLMavenRuntimeVisitor visitor = new XMLMavenRuntimeVisitor();
 
-        new ClassLoaderHelper( classLoader ).accept( visitor );
+        MavenRuntimeVisitorUtils.accept( classLoader, visitor );
 
         return visitor.getSortedProjects();
     }

Copied: 
maven/sandbox/trunk/shared/maven-runtime/src/main/java/org/apache/maven/shared/runtime/MavenRuntimeVisitorUtils.java
 (from r632036, 
maven/sandbox/trunk/shared/maven-runtime/src/main/java/org/apache/maven/shared/runtime/ClassLoaderHelper.java)
URL: 
http://svn.apache.org/viewvc/maven/sandbox/trunk/shared/maven-runtime/src/main/java/org/apache/maven/shared/runtime/MavenRuntimeVisitorUtils.java?p2=maven/sandbox/trunk/shared/maven-runtime/src/main/java/org/apache/maven/shared/runtime/MavenRuntimeVisitorUtils.java&p1=maven/sandbox/trunk/shared/maven-runtime/src/main/java/org/apache/maven/shared/runtime/ClassLoaderHelper.java&r1=632036&r2=632277&rev=632277&view=diff
==============================================================================
--- 
maven/sandbox/trunk/shared/maven-runtime/src/main/java/org/apache/maven/shared/runtime/ClassLoaderHelper.java
 (original)
+++ 
maven/sandbox/trunk/shared/maven-runtime/src/main/java/org/apache/maven/shared/runtime/MavenRuntimeVisitorUtils.java
 Fri Feb 29 02:02:59 2008
@@ -27,13 +27,13 @@
 import java.util.jar.JarInputStream;
 
 /**
- * Provides a bridge between a class loader and a Maven runtime visitor.
+ * Provides various methods of applying Maven runtime visitors.
  * 
  * @author <a href="mailto:[EMAIL PROTECTED]">Mark Hobson</a>
  * @version $Id$
  * @see MavenRuntimeVisitor
  */
-public class ClassLoaderHelper
+public final class MavenRuntimeVisitorUtils
 {
     // constants --------------------------------------------------------------
 
@@ -48,42 +48,29 @@
      */
     private static final String[] XML_PATH_TOKENS = new String[] { "META-INF", 
"maven", null, null, "pom.xml" };
     
-    // fields -----------------------------------------------------------------
-    
-    /**
-     * The class loader that this helper uses.
-     */
-    private final ClassLoader classLoader;
-
     // constructors -----------------------------------------------------------
 
     /**
-     * Creates a <code>ClassLoaderHelper</code> that uses the specified class 
loader.
-     * 
-     * @param classLoader
-     *            the class loader to use, not null
+     * <code>MavenRuntimeVisitorUtils</code> is not intended to be 
instantiated.
      */
-    public ClassLoaderHelper(ClassLoader classLoader)
+    private MavenRuntimeVisitorUtils()
     {
-        if ( classLoader == null )
-        {
-            throw new IllegalArgumentException( "classLoader cannot be null" );
-        }
-
-        this.classLoader = classLoader;
+        // private constructor for utility class
     }
 
     // public methods ---------------------------------------------------------
 
     /**
-     * Invokes the specified visitor on all Maven projects found within this 
helper's class loader.
+     * Invokes the specified visitor on all Maven projects found within the 
specified class loader.
      * 
+     * @param classLoader
+     *            the class loader to introspect
      * @param visitor
      *            the visitor to invoke
      * @throws MavenRuntimeException
      *             if an error occurs visiting the projects
      */
-    public void accept( MavenRuntimeVisitor visitor )
+    public static void accept( ClassLoader classLoader, MavenRuntimeVisitor 
visitor )
         throws MavenRuntimeException
     {
         ClassLoader currentClassLoader = classLoader;
@@ -95,6 +82,24 @@
             currentClassLoader = currentClassLoader.getParent();
         }
     }
+    
+    /**
+     * Invokes the specified visitor on all Maven projects found within the 
specified URL.
+     * 
+     * @param url
+     *            the URL to introspect
+     * @param visitor
+     *            the visitor to invoke
+     * @throws MavenRuntimeException
+     *             if an error occurs visiting the projects
+     */
+    public static void accept( URL url, MavenRuntimeVisitor visitor ) throws 
MavenRuntimeException
+    {
+        if ( url.getPath().endsWith( ".jar" ) )
+        {
+            acceptJar( url, visitor );
+        }
+    }
 
     // private methods --------------------------------------------------------
     
@@ -108,7 +113,7 @@
      * @throws MavenRuntimeException
      *             if an error occurs visiting the projects
      */
-    private void acceptClassLoader( ClassLoader classLoader, 
MavenRuntimeVisitor visitor )
+    private static void acceptClassLoader( ClassLoader classLoader, 
MavenRuntimeVisitor visitor )
         throws MavenRuntimeException
     {
         if ( classLoader instanceof URLClassLoader )
@@ -119,30 +124,12 @@
 
             for ( int i = 0; i < urls.length; i++ )
             {
-                acceptURL( urls[i], visitor );
+                accept( urls[i], visitor );
             }
         }
     }
 
     /**
-     * Invokes the specified visitor on all Maven projects found within the 
specified URL.
-     * 
-     * @param url
-     *            the URL to introspect
-     * @param visitor
-     *            the visitor to invoke
-     * @throws MavenRuntimeException
-     *             if an error occurs visiting the projects
-     */
-    private void acceptURL( URL url, MavenRuntimeVisitor visitor ) throws 
MavenRuntimeException
-    {
-        if ( url.getPath().endsWith( ".jar" ) )
-        {
-            acceptJar( url, visitor );
-        }
-    }
-
-    /**
      * Invokes the specified visitor on all Maven projects found within the 
specified Jar URL.
      * 
      * @param url
@@ -152,7 +139,7 @@
      * @throws MavenRuntimeException
      *             if an error occurs visiting the projects
      */
-    private void acceptJar( URL url, MavenRuntimeVisitor visitor ) throws 
MavenRuntimeException
+    private static void acceptJar( URL url, MavenRuntimeVisitor visitor ) 
throws MavenRuntimeException
     {
         JarInputStream in = null;
         
@@ -200,7 +187,7 @@
      * @throws MavenRuntimeException
      *             if an error occurs visiting the projects
      */
-    private void acceptJarEntry( URL jarURL, JarEntry entry, 
MavenRuntimeVisitor visitor )
+    private static void acceptJarEntry( URL jarURL, JarEntry entry, 
MavenRuntimeVisitor visitor )
         throws MavenRuntimeException
     {
         String name = entry.getName();
@@ -231,7 +218,7 @@
      *            the path to examine
      * @return <code>true</code> if the specified path represents a Maven 
project properties file
      */
-    private boolean isProjectPropertiesPath( String path )
+    private static boolean isProjectPropertiesPath( String path )
     {
         return matches( PROPERTIES_PATH_TOKENS, path.split( "/" ) );
     }
@@ -243,7 +230,7 @@
      *            the path to examine
      * @return <code>true</code> if the specified path represents a Maven 
project XML file
      */
-    private boolean isProjectXMLPath( String path )
+    private static boolean isProjectXMLPath( String path )
     {
         return matches( XML_PATH_TOKENS, path.split( "/" ) );
     }
@@ -258,7 +245,7 @@
      * @return <code>true</code> if the <code>tokens</code> array equals the 
<code>matchTokens</code>, treating
      *         any <code>null</code> <code>matchTokens</code> values as 
wildcards
      */
-    private boolean matches( String[] matchTokens, String[] tokens )
+    private static boolean matches( String[] matchTokens, String[] tokens )
     {
         if ( tokens.length != matchTokens.length )
         {

Copied: 
maven/sandbox/trunk/shared/maven-runtime/src/test/java/org/apache/maven/shared/runtime/MavenRuntimeVisitorUtilsTest.java
 (from r631632, 
maven/sandbox/trunk/shared/maven-runtime/src/test/java/org/apache/maven/shared/runtime/ClassLoaderHelperTest.java)
URL: 
http://svn.apache.org/viewvc/maven/sandbox/trunk/shared/maven-runtime/src/test/java/org/apache/maven/shared/runtime/MavenRuntimeVisitorUtilsTest.java?p2=maven/sandbox/trunk/shared/maven-runtime/src/test/java/org/apache/maven/shared/runtime/MavenRuntimeVisitorUtilsTest.java&p1=maven/sandbox/trunk/shared/maven-runtime/src/test/java/org/apache/maven/shared/runtime/ClassLoaderHelperTest.java&r1=631632&r2=632277&rev=632277&view=diff
==============================================================================
--- 
maven/sandbox/trunk/shared/maven-runtime/src/test/java/org/apache/maven/shared/runtime/ClassLoaderHelperTest.java
 (original)
+++ 
maven/sandbox/trunk/shared/maven-runtime/src/test/java/org/apache/maven/shared/runtime/MavenRuntimeVisitorUtilsTest.java
 Fri Feb 29 02:02:59 2008
@@ -30,13 +30,13 @@
 import org.easymock.IMocksControl;
 
 /**
- * Tests <code>ClassLoaderHelper</code>.
+ * Tests <code>MavenRuntimeVisitorUtils</code>.
  * 
  * @author <a href="mailto:[EMAIL PROTECTED]">Mark Hobson</a>
  * @version $Id$
- * @see ClassLoaderHelper
+ * @see MavenRuntimeVisitorUtils
  */
-public class ClassLoaderHelperTest extends TestCase
+public class MavenRuntimeVisitorUtilsTest extends TestCase
 {
     // fields -----------------------------------------------------------------
     
@@ -95,8 +95,7 @@
     private void accept( URL[] urls ) throws MavenRuntimeException
     {
         ClassLoader classLoader = new URLClassLoader(urls, null);
-        ClassLoaderHelper helper = new ClassLoaderHelper(classLoader);
  
-        helper.accept( mockVisitor );
+        MavenRuntimeVisitorUtils.accept( classLoader, mockVisitor );
     }
 }


Reply via email to