You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by br...@apache.org on 2008/01/03 03:26:29 UTC
svn commit: r608308 - in /maven/plugins/trunk/maven-dependency-plugin/src:
main/java/org/apache/maven/plugin/dependency/
test/java/org/apache/maven/plugin/dependency/
test/java/org/apache/maven/plugin/dependency/testUtils/
Author: brianf
Date: Wed Jan 2 18:26:28 2008
New Revision: 608308
URL: http://svn.apache.org/viewvc?rev=608308&view=rev
Log:
MDEP-129: allow property substitution of the local repo paths.
Modified:
maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/BuildClasspathMojo.java
maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/TestBuildClasspathMojo.java
maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/testUtils/DependencyArtifactStubFactory.java
Modified: maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/BuildClasspathMojo.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/BuildClasspathMojo.java?rev=608308&r1=608307&r2=608308&view=diff
==============================================================================
--- maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/BuildClasspathMojo.java (original)
+++ maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/BuildClasspathMojo.java Wed Jan 2 18:26:28 2008
@@ -108,6 +108,14 @@
* @parameter default-value="" expression="${mdep.pathSeparator}"
*/
private String pathSeparator;
+
+ /**
+ * Replace the absolute path to the local repo with this property. This field is ignored
+ * it prefix is declared.
+ * @since 2.0-alpha-5
+ * @parameter default-value="" expression="${mdep.localRepoProperty}"
+ */
+ private String localRepoProperty;
boolean isFileSepSet = true;
@@ -212,14 +220,19 @@
{
if ( prefix == null )
{
-
- sb.append( art.getFile() );
+ String file = art.getFile().getPath();
+ //substitute the property for the local repo path to make the classpath file portable.
+ if (StringUtils.isNotEmpty( localRepoProperty))
+ {
+ file = StringUtils.replace( file, local.getBasedir(), localRepoProperty );
+ }
+ sb.append( file );
}
else
{
// TODO: add param for prepending groupId and version.
sb.append( prefix );
- sb.append( ( isFileSepSet ) ? this.fileSeparator : File.separator );
+ sb.append( File.separator );
sb.append( DependencyUtil.getFormattedFileName( art, this.stripVersion ) );
}
}
@@ -475,5 +488,35 @@
public void setStripVersion( boolean theStripVersion )
{
this.stripVersion = theStripVersion;
+ }
+
+ public String getLocalRepoProperty()
+ {
+ return localRepoProperty;
+ }
+
+ public void setLocalRepoProperty( String localRepoProperty )
+ {
+ this.localRepoProperty = localRepoProperty;
+ }
+
+ public boolean isFileSepSet()
+ {
+ return isFileSepSet;
+ }
+
+ public void setFileSepSet( boolean isFileSepSet )
+ {
+ this.isFileSepSet = isFileSepSet;
+ }
+
+ public boolean isPathSepSet()
+ {
+ return isPathSepSet;
+ }
+
+ public void setPathSepSet( boolean isPathSepSet )
+ {
+ this.isPathSepSet = isPathSepSet;
}
}
Modified: maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/TestBuildClasspathMojo.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/TestBuildClasspathMojo.java?rev=608308&r1=608307&r2=608308&view=diff
==============================================================================
--- maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/TestBuildClasspathMojo.java (original)
+++ maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/TestBuildClasspathMojo.java Wed Jan 2 18:26:28 2008
@@ -22,6 +22,10 @@
import java.io.File;
import java.util.Set;
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.plugin.dependency.utils.DependencyUtil;
+import org.apache.maven.plugin.testing.stubs.StubArtifactRepository;
import org.apache.maven.project.MavenProject;
public class TestBuildClasspathMojo
@@ -63,7 +67,7 @@
try
{
file = mojo.readClasspathFile();
-
+
fail( "Expected an illegal Argument Exception" );
}
catch ( IllegalArgumentException e )
@@ -71,31 +75,73 @@
// expected to catch this.
}
- mojo.setCpFile( new File(testDir,"buildClasspath.txt") );
+ mojo.setCpFile( new File( testDir, "buildClasspath.txt" ) );
mojo.execute();
-
+
file = mojo.readClasspathFile();
assertNotNull( file );
assertTrue( file.length() > 0 );
- assertTrue(file.indexOf( File.pathSeparator ) >= 0 );
- assertTrue(file.indexOf( File.separator ) >= 0 );
-
+ assertTrue( file.indexOf( File.pathSeparator ) >= 0 );
+ assertTrue( file.indexOf( File.separator ) >= 0 );
+
String fileSep = "#####";
String pathSep = "%%%%%";
-
+
mojo.setFileSeparator( fileSep );
mojo.setPathSeparator( pathSep );
mojo.execute();
-
+
file = mojo.readClasspathFile();
assertNotNull( file );
assertTrue( file.length() > 0 );
- assertFalse(file.indexOf( File.pathSeparator ) >= 0 );
- assertFalse(file.indexOf( File.separator ) >= 0 );
- assertTrue(file.indexOf( fileSep ) >= 0 );
- assertTrue(file.indexOf( pathSep ) >= 0 );
+ assertFalse( file.indexOf( File.pathSeparator ) >= 0 );
+ assertFalse( file.indexOf( File.separator ) >= 0 );
+ assertTrue( file.indexOf( fileSep ) >= 0 );
+ assertTrue( file.indexOf( pathSep ) >= 0 );
}
+ public void testPath() throws Exception
+ {
+ File testPom = new File( getBasedir(), "target/test-classes/unit/build-classpath-test/plugin-config.xml" );
+ BuildClasspathMojo mojo = (BuildClasspathMojo) lookupMojo( "build-classpath", testPom );
+
+ assertNotNull( mojo );
+ assertNotNull( mojo.getProject() );
+ MavenProject project = mojo.getProject();
+ ArtifactRepository local = new StubArtifactRepository(stubFactory.getWorkingDir().getPath());
+ mojo.setLocal( local );
+
+ Artifact artifact = stubFactory.getReleaseArtifact();
+
+
+ StringBuffer sb = new StringBuffer();
+ mojo.setPrefix( null );
+ mojo.setStripVersion( false );
+ mojo.appendArtifactPath( artifact, sb );
+ assertEquals(artifact.getFile().getPath(),sb.toString());
+
+ mojo.setLocalRepoProperty( "$M2_REPO" );
+ sb.setLength( 0 );
+ mojo.appendArtifactPath( artifact, sb );
+ assertEquals("$M2_REPO"+File.separator+artifact.getFile().getName(),sb.toString());
+
+ mojo.setLocalRepoProperty( "%M2_REPO%" );
+ sb.setLength( 0 );
+ mojo.appendArtifactPath( artifact, sb );
+ assertEquals("%M2_REPO%"+File.separator+artifact.getFile().getName(),sb.toString());
+
+ mojo.setLocalRepoProperty( "" );
+ mojo.setPrefix( "prefix" );
+ sb.setLength( 0 );
+ mojo.appendArtifactPath( artifact, sb );
+ assertEquals("prefix"+File.separator+artifact.getFile().getName(),sb.toString());
+
+ mojo.setPrefix( "prefix" );
+ mojo.setStripVersion( true );
+ sb.setLength( 0 );
+ mojo.appendArtifactPath( artifact, sb );
+ assertEquals("prefix"+File.separator+DependencyUtil.getFormattedFileName( artifact, true ),sb.toString());
+ }
}
Modified: maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/testUtils/DependencyArtifactStubFactory.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/testUtils/DependencyArtifactStubFactory.java?rev=608308&r1=608307&r2=608308&view=diff
==============================================================================
--- maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/testUtils/DependencyArtifactStubFactory.java (original)
+++ maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/testUtils/DependencyArtifactStubFactory.java Wed Jan 2 18:26:28 2008
@@ -57,5 +57,4 @@
}
return list;
}
-
}