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/03 11:32:01 UTC
svn commit: r633030 - in
/maven/sandbox/trunk/shared/maven-runtime/src/main/java/org/apache/maven/shared/runtime:
ClassUtils.java MavenRuntimeVisitorUtils.java
Author: markh
Date: Mon Mar 3 02:32:00 2008
New Revision: 633030
URL: http://svn.apache.org/viewvc?rev=633030&view=rev
Log:
Moved class utility methods to ClassUtils
Added:
maven/sandbox/trunk/shared/maven-runtime/src/main/java/org/apache/maven/shared/runtime/ClassUtils.java (with props)
Modified:
maven/sandbox/trunk/shared/maven-runtime/src/main/java/org/apache/maven/shared/runtime/MavenRuntimeVisitorUtils.java
Added: maven/sandbox/trunk/shared/maven-runtime/src/main/java/org/apache/maven/shared/runtime/ClassUtils.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/shared/maven-runtime/src/main/java/org/apache/maven/shared/runtime/ClassUtils.java?rev=633030&view=auto
==============================================================================
--- maven/sandbox/trunk/shared/maven-runtime/src/main/java/org/apache/maven/shared/runtime/ClassUtils.java (added)
+++ maven/sandbox/trunk/shared/maven-runtime/src/main/java/org/apache/maven/shared/runtime/ClassUtils.java Mon Mar 3 02:32:00 2008
@@ -0,0 +1,82 @@
+/*
+ * $HeadURL$
+ *
+ * (c) 2008 IIZUKA Software Technologies Ltd. All rights reserved.
+ */
+package org.apache.maven.shared.runtime;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+
+import org.codehaus.plexus.util.StringUtils;
+
+/**
+ * Provides various utility methods for working with classes.
+ *
+ * @author Mark Hobson
+ * @version $Id$
+ */
+final class ClassUtils
+{
+ // constructors -----------------------------------------------------------
+
+ private ClassUtils()
+ {
+ // private constructor for utility class
+ }
+
+ // public methods ---------------------------------------------------------
+
+ /**
+ * Gets a URL to the specified class's default package. For example, if the class <code>foo.Bar</code> is
+ * supplied, then a URL to the directory above <code>foo</code> is returned. If the class's default package
+ * resides at the root of a Jar, then a URL to the Jar file itself is returned.
+ *
+ * @param klass
+ * the class to obtain the base URL for
+ * @return a URL to the class's default package, or a URL to the owning Jar file if the default package resides at
+ * the root of a Jar
+ * @throws MalformedURLException
+ * if the base URL cannot be determined
+ */
+ public static URL getBaseURL( Class klass )
+ throws MalformedURLException
+ {
+ URL url = getURL( klass );
+
+ String className = klass.getName();
+
+ int n = StringUtils.countMatches( className, "." );
+ String relativePath = StringUtils.repeat( "../", n );
+
+ URL baseURL = new URL( url, relativePath );
+
+ // unwrap Jar URL if at the root
+ if ( "jar".equals( baseURL.getProtocol() ) && baseURL.getPath().endsWith( "!/" ) )
+ {
+ String basePath = baseURL.getPath();
+
+ basePath = basePath.substring( 0, basePath.length() - "!/".length() );
+
+ baseURL = new URL( basePath );
+ }
+
+ return baseURL;
+ }
+
+ /**
+ * Gets a URL to the specified class.
+ *
+ * @param klass
+ * the class to obtain the URL for
+ * @return a URL to the class, or <code>null</code> if it cannot be found
+ */
+ public static URL getURL( Class klass )
+ {
+ ClassLoader classLoader = klass.getClassLoader();
+
+ String path = klass.getName().replace( '.', '/' ) + ".class";
+
+ return classLoader.getResource( path );
+ }
+}
Propchange: maven/sandbox/trunk/shared/maven-runtime/src/main/java/org/apache/maven/shared/runtime/ClassUtils.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/sandbox/trunk/shared/maven-runtime/src/main/java/org/apache/maven/shared/runtime/ClassUtils.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Modified: maven/sandbox/trunk/shared/maven-runtime/src/main/java/org/apache/maven/shared/runtime/MavenRuntimeVisitorUtils.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/shared/maven-runtime/src/main/java/org/apache/maven/shared/runtime/MavenRuntimeVisitorUtils.java?rev=633030&r1=633029&r2=633030&view=diff
==============================================================================
--- maven/sandbox/trunk/shared/maven-runtime/src/main/java/org/apache/maven/shared/runtime/MavenRuntimeVisitorUtils.java (original)
+++ maven/sandbox/trunk/shared/maven-runtime/src/main/java/org/apache/maven/shared/runtime/MavenRuntimeVisitorUtils.java Mon Mar 3 02:32:00 2008
@@ -28,7 +28,6 @@
import java.util.jar.JarInputStream;
import org.codehaus.plexus.util.IOUtil;
-import org.codehaus.plexus.util.StringUtils;
/**
* Provides various methods of applying Maven runtime visitors.
@@ -102,7 +101,7 @@
{
try
{
- accept( getBaseURL( klass ), visitor );
+ accept( ClassUtils.getBaseURL( klass ), visitor );
}
catch ( MalformedURLException exception )
{
@@ -281,58 +280,5 @@
}
return true;
- }
-
- /**
- * Gets a URL to the specified class's default package. For example, if the class <code>foo.Bar</code> is
- * supplied, then a URL to the directory above <code>foo</code> is returned. If the class's default package
- * resides at the root of a Jar, then a URL to the Jar file itself is returned.
- *
- * @param klass
- * the class to obtain the base URL for
- * @return a URL to the class's default package, or a URL to the owning Jar file if the default package resides at
- * the root of a Jar
- * @throws MalformedURLException
- * if the base URL cannot be determined
- */
- private static URL getBaseURL( Class klass )
- throws MalformedURLException
- {
- URL url = getURL( klass );
-
- String className = klass.getName();
-
- int n = StringUtils.countMatches( className, "." );
- String relativePath = StringUtils.repeat( "../", n );
-
- URL baseURL = new URL( url, relativePath );
-
- // unwrap Jar URL if at the root
- if ( "jar".equals( baseURL.getProtocol() ) && baseURL.getPath().endsWith( "!/" ) )
- {
- String basePath = baseURL.getPath();
-
- basePath = basePath.substring( 0, basePath.length() - "!/".length() );
-
- baseURL = new URL( basePath );
- }
-
- return baseURL;
- }
-
- /**
- * Gets a URL to the specified class.
- *
- * @param klass
- * the class to obtain the URL for
- * @return a URL to the class, or <code>null</code> if it cannot be found
- */
- private static URL getURL( Class klass )
- {
- ClassLoader classLoader = klass.getClassLoader();
-
- String path = klass.getName().replace( '.', '/' ) + ".class";
-
- return classLoader.getResource( path );
}
}