Author: olamy Date: Tue Feb 12 21:55:34 2013 New Revision: 1445407 URL: http://svn.apache.org/r1445407 Log: [MDEP-396] Add support to use the baseVersion of an artifact instead of version for the destFileName Submitted by Andreas Kuhtz.
Modified: maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/fromConfiguration/AbstractFromConfigurationMojo.java maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/fromConfiguration/ArtifactItem.java maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/fromConfiguration/CopyMojo.java maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/fromConfiguration/UnpackMojo.java maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/fromConfiguration/TestCopyMojo.java Modified: maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/fromConfiguration/AbstractFromConfigurationMojo.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/fromConfiguration/AbstractFromConfigurationMojo.java?rev=1445407&r1=1445406&r2=1445407&view=diff ============================================================================== --- maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/fromConfiguration/AbstractFromConfigurationMojo.java (original) +++ maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/fromConfiguration/AbstractFromConfigurationMojo.java Tue Feb 12 21:55:34 2013 @@ -149,11 +149,13 @@ public abstract class AbstractFromConfig * output Directory if it doesn't exist. * * @param removeVersion remove the version from the filename. + * @param prependGroupId prepend the groupId to the filename. + * @param useBaseVersion use the baseVersion of the artifact instead of version for the filename. * @return An ArrayList of preprocessed ArtifactItems * @throws MojoExecutionException with a message if an error occurs. * @see ArtifactItem */ - protected List<ArtifactItem> getProcessedArtifactItems( boolean removeVersion ) + protected List<ArtifactItem> getProcessedArtifactItems( boolean removeVersion, boolean prependGroupId , boolean useBaseVersion ) throws MojoExecutionException { if ( artifactItems == null || artifactItems.size() < 1 ) @@ -182,7 +184,7 @@ public abstract class AbstractFromConfig if ( StringUtils.isEmpty( artifactItem.getDestFileName() ) ) { artifactItem.setDestFileName( - DependencyUtil.getFormattedFileName( artifactItem.getArtifact(), removeVersion ) ); + DependencyUtil.getFormattedFileName( artifactItem.getArtifact(), removeVersion, prependGroupId, useBaseVersion ) ); } try Modified: maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/fromConfiguration/ArtifactItem.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/fromConfiguration/ArtifactItem.java?rev=1445407&r1=1445406&r2=1445407&view=diff ============================================================================== --- maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/fromConfiguration/ArtifactItem.java (original) +++ maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/fromConfiguration/ArtifactItem.java Tue Feb 12 21:55:34 2013 @@ -59,6 +59,13 @@ public class ArtifactItem private String version = null; /** + * BaseVersion of Artifact + * + * @parameter + */ + private String baseVersion = null; + + /** * Type of Artifact (War,Jar,etc) * * @parameter @@ -127,6 +134,7 @@ public class ArtifactItem this.setGroupId( artifact.getGroupId() ); this.setType( artifact.getType() ); this.setVersion( artifact.getVersion() ); + this.setBaseVersion( artifact.getBaseVersion() ); } private String filterEmptyString( String in ) @@ -207,6 +215,23 @@ public class ArtifactItem } /** + * @return Returns the base version. + */ + public String getBaseVersion() + { + return baseVersion; + } + + /** + * @param baseVersion + * The base version to set. + */ + public void setBaseVersion( String baseVersion ) + { + this.baseVersion = filterEmptyString( baseVersion ); + } + + /** * @return Classifier. */ public String getClassifier() Modified: maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/fromConfiguration/CopyMojo.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/fromConfiguration/CopyMojo.java?rev=1445407&r1=1445406&r2=1445407&view=diff ============================================================================== --- maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/fromConfiguration/CopyMojo.java (original) +++ maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/fromConfiguration/CopyMojo.java Tue Feb 12 21:55:34 2013 @@ -49,6 +49,18 @@ public class CopyMojo private boolean stripVersion = false; /** + * Prepend artifact groupId during copy + */ + @Parameter( property = "mdep.prependGroupId", defaultValue = "false" ) + private boolean prependGroupId = false; + + /** + * Use artifact baseVersion during copy + */ + @Parameter( property = "mdep.useBaseVersion", defaultValue = "false" ) + private boolean useBaseVersion = false; + + /** * The artifact to copy from commandLine. * Use {@link #artifactItems} within the pom-configuration. */ @@ -75,7 +87,7 @@ public class CopyMojo verifyRequirements(); - List<ArtifactItem> theArtifactItems = getProcessedArtifactItems( this.stripVersion ); + List<ArtifactItem> theArtifactItems = getProcessedArtifactItems( this.stripVersion, this.prependGroupId, this.useBaseVersion ); for ( ArtifactItem artifactItem : theArtifactItems ) { if ( artifactItem.isNeedsProcessing() ) @@ -129,4 +141,11 @@ public class CopyMojo this.stripVersion = stripVersion; } + /** + * @param useBaseVersion The useBaseVersion to set. + */ + public void setUseBaseVersion( boolean useBaseVersion ) + { + this.useBaseVersion = useBaseVersion; + } } Modified: maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/fromConfiguration/UnpackMojo.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/fromConfiguration/UnpackMojo.java?rev=1445407&r1=1445406&r2=1445407&view=diff ============================================================================== --- maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/fromConfiguration/UnpackMojo.java (original) +++ maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/fromConfiguration/UnpackMojo.java Tue Feb 12 21:55:34 2013 @@ -141,7 +141,7 @@ public final class UnpackMojo protected List<ArtifactItem> getProcessedArtifactItems( boolean removeVersion ) throws MojoExecutionException { - List<ArtifactItem> items = super.getProcessedArtifactItems( removeVersion ); + List<ArtifactItem> items = super.getProcessedArtifactItems( removeVersion, false, false ); for ( ArtifactItem artifactItem : items ) { if ( StringUtils.isEmpty( artifactItem.getIncludes() ) ) Modified: maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/fromConfiguration/TestCopyMojo.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/fromConfiguration/TestCopyMojo.java?rev=1445407&r1=1445406&r2=1445407&view=diff ============================================================================== --- maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/fromConfiguration/TestCopyMojo.java (original) +++ maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/fromConfiguration/TestCopyMojo.java Tue Feb 12 21:55:34 2013 @@ -67,10 +67,10 @@ public class TestCopyMojo } - public ArtifactItem getSingleArtifactItem( boolean removeVersion ) + public ArtifactItem getSingleArtifactItem( boolean removeVersion, boolean useBaseVersion ) throws MojoExecutionException { - List<ArtifactItem> list = mojo.getProcessedArtifactItems( removeVersion ); + List<ArtifactItem> list = mojo.getProcessedArtifactItems( removeVersion, false, useBaseVersion ); return list.get( 0 ); } @@ -89,12 +89,12 @@ public class TestCopyMojo mojo.setArtifactItems( list ); - ArtifactItem result = getSingleArtifactItem( false ); + ArtifactItem result = getSingleArtifactItem( false, false ); assertEquals( mojo.getOutputDirectory(), result.getOutputDirectory() ); File output = new File( mojo.getOutputDirectory(), "override" ); item.setOutputDirectory( output ); - result = getSingleArtifactItem( false ); + result = getSingleArtifactItem( false, false ); assertEquals( output, result.getOutputDirectory() ); } @@ -132,6 +132,26 @@ public class TestCopyMojo assertFilesExist( list, true ); } + public void testCopyFileWithBaseVersion() + throws Exception + { + List<ArtifactItem> list = stubFactory.getArtifactItems( stubFactory.getClassifiedArtifacts() ); + ArtifactItem item = new ArtifactItem(); + + item.setArtifactId( "artifact" ); + item.setGroupId( "groupId" ); + item.setVersion( "1.0-20130210.213424-191" ); + item.setBaseVersion( "1.0-SNAPSHOT" ); + list.add(item); + + mojo.setArtifactItems( list ); + mojo.setUseBaseVersion(true); + + mojo.execute(); + + assertFilesExist( list, true ); + } + public void testSkip() throws Exception { @@ -515,7 +535,7 @@ public class TestCopyMojo { try { - mojo.getProcessedArtifactItems( false ); + mojo.getProcessedArtifactItems( false, false, false ); fail( "Expected Exception" ); } catch ( MojoExecutionException e )