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 );
}
}