Author: brianf
Date: Fri Nov  5 18:00:17 2010
New Revision: 1031684

URL: http://svn.apache.org/viewvc?rev=1031684&view=rev
Log:
MDEP-211 patch from Oumar Aziz OUATTARA

Modified:
    
maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/AbstractDependencyFilterMojo.java
    
maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/AbstractFromDependenciesMojo.java
    
maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/BuildClasspathMojo.java
    
maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/CopyDependenciesMojo.java
    
maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/utils/DependencyUtil.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/TestCopyDependenciesMojo.java

Modified: 
maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/AbstractDependencyFilterMojo.java
URL: 
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/AbstractDependencyFilterMojo.java?rev=1031684&r1=1031683&r2=1031684&view=diff
==============================================================================
--- 
maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/AbstractDependencyFilterMojo.java
 (original)
+++ 
maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/AbstractDependencyFilterMojo.java
 Fri Nov  5 18:00:17 2010
@@ -206,6 +206,16 @@ public abstract class AbstractDependency
      * @parameter expression="${overWriteIfNewer}" default-value="true"
      */
     protected boolean overWriteIfNewer;
+    
+    /**
+     * Prepend the groupId during copy.
+     * 
+     * @optional
+     * @since 2.2
+     * @parameter expression="${mdep.prependGroupId}" default-value="false"
+     * @parameter
+     */
+    protected boolean prependGroupId = false;
 
     protected abstract ArtifactsFilter getMarkedArtifactFilter();
 
@@ -383,4 +393,19 @@ public abstract class AbstractDependency
     }
 
     // TODO: Set marker files.
+
+    /**
+     * @return true, if the groupId should be prepended to the filename. 
+     */
+    public boolean isPrependGroupId() {
+        return prependGroupId;
+    }
+
+    /**
+     * @param prependGroupId - 
+     *            true if the groupId must be prepended during the copy.
+     */
+    public void setPrependGroupId(boolean prependGroupId) {
+        this.prependGroupId = prependGroupId;
+    }
 }

Modified: 
maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/AbstractFromDependenciesMojo.java
URL: 
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/AbstractFromDependenciesMojo.java?rev=1031684&r1=1031683&r2=1031684&view=diff
==============================================================================
--- 
maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/AbstractFromDependenciesMojo.java
 (original)
+++ 
maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/AbstractFromDependenciesMojo.java
 Fri Nov  5 18:00:17 2010
@@ -40,7 +40,7 @@ public abstract class AbstractFromDepend
      * @parameter
      */
     protected boolean stripVersion = false;
-
+    
     /**
      * Default location used for mojo unless overridden in ArtifactItem
      *
@@ -233,4 +233,5 @@ public abstract class AbstractFromDepend
     {
         this.copyPom = copyPom;
     }
+
 }

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=1031684&r1=1031683&r2=1031684&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
 Fri Nov  5 18:00:17 2010
@@ -288,7 +288,7 @@ public class BuildClasspathMojo
             // TODO: add param for prepending groupId and version.
             sb.append( prefix );
             sb.append( File.separator );
-            sb.append( DependencyUtil.getFormattedFileName( art, 
this.stripVersion ) );
+            sb.append( DependencyUtil.getFormattedFileName( art, 
this.stripVersion, this.prependGroupId) );
         }
     }
 

Modified: 
maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/CopyDependenciesMojo.java
URL: 
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/CopyDependenciesMojo.java?rev=1031684&r1=1031683&r2=1031684&view=diff
==============================================================================
--- 
maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/CopyDependenciesMojo.java
 (original)
+++ 
maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/CopyDependenciesMojo.java
 Fri Nov  5 18:00:17 2010
@@ -87,7 +87,7 @@ public class CopyDependenciesMojo
         {
             for ( Iterator i = artifacts.iterator(); i.hasNext(); )
             {
-                copyArtifact( (Artifact) i.next(), this.stripVersion );
+                       copyArtifact( (Artifact) i.next(), this.stripVersion, 
this.prependGroupId );
             }
         }
         else
@@ -176,18 +176,19 @@ public class CopyDependenciesMojo
      * @param removeVersion
      *            specifies if the version should be removed from the file name
      *            when copying.
-     *
+     * @param prependGroupId
+     *            specifies if the groupId should be prepend to the file while 
copying.
      * @throws MojoExecutionException
      *             with a message if an error occurs.
      *
      * @see DependencyUtil#copyFile(File, File, Log)
      * @see DependencyUtil#getFormattedFileName(Artifact, boolean)
      */
-    protected void copyArtifact( Artifact artifact, boolean removeVersion )
+    protected void copyArtifact( Artifact artifact, boolean removeVersion, 
boolean prependGroupId )
         throws MojoExecutionException
     {
 
-        String destFileName = DependencyUtil.getFormattedFileName( artifact, 
removeVersion );
+        String destFileName = DependencyUtil.getFormattedFileName( artifact, 
removeVersion, prependGroupId);
 
         File destDir;
         destDir = DependencyUtil.getFormattedOutputDirectory( 
useSubDirectoryPerScope, useSubDirectoryPerType, useSubDirectoryPerArtifact,
@@ -213,7 +214,8 @@ public class CopyDependenciesMojo
             // Copy the pom
             if ( pomArtifact.getFile() != null && 
pomArtifact.getFile().exists() )
             {
-                File pomDestFile = new File( destDir, 
DependencyUtil.getFormattedFileName( pomArtifact, removeVersion ) );
+                File pomDestFile = new File( destDir, 
DependencyUtil.getFormattedFileName( pomArtifact, removeVersion,
+                                                                               
            prependGroupId) );
                 if ( ! pomDestFile.exists() )
                 {
                     copyFile( pomArtifact.getFile(), pomDestFile );

Modified: 
maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/utils/DependencyUtil.java
URL: 
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/utils/DependencyUtil.java?rev=1031684&r1=1031683&r2=1031684&view=diff
==============================================================================
--- 
maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/utils/DependencyUtil.java
 (original)
+++ 
maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/utils/DependencyUtil.java
 Fri Nov  5 18:00:17 2010
@@ -45,11 +45,36 @@ public final class DependencyUtil
      * @param artifact File to be formatted.
      * @param removeVersion Specifies if the version should be removed from 
the file name.
      * @return Formatted file name in the format 
artifactId-[version]-[classifier].[type]
+     * @see {...@link #getFormattedFileName(Artifact, boolean, boolean)}.
      */
-    public static String getFormattedFileName( Artifact artifact, boolean 
removeVersion )
+    public static String getFormattedFileName( Artifact artifact, boolean 
removeVersion ) {
+      return getFormattedFileName( artifact, removeVersion , false);
+    }
+  
+    /**
+     * Builds the file name. If removeVersion is set, then the file name must 
be
+     * reconstructed from the groupId (if <b>prependGroupId</b> is true) 
artifactId,
+     * Classifier (if used) and Type.
+     * Otherwise, this method returns the artifact file name.
+     * 
+     * @param artifact
+     *            File to be formatted.
+     * @param removeVersion
+     *            Specifies if the version should be removed from the file 
name.
+     * @param prependGroupId
+     *            Specifies if the groupId should be prepended to the file 
name.
+     * @return Formatted file name in the format
+     *         [groupId].artifactId-[version]-[classifier].[type]
+     */
+    public static String getFormattedFileName( Artifact artifact, boolean 
removeVersion,
+        boolean prependGroupId)
     {
-        String destFileName = null;
-
+        StringBuffer destFileName = new StringBuffer();
+        
+        if (prependGroupId) {
+            destFileName.append(artifact.getGroupId()).append(".");
+        }
+        
         String versionString = null;
         if ( !removeVersion )
         {
@@ -66,12 +91,11 @@ public final class DependencyUtil
         {
             classifierString = "-" + artifact.getClassifier();
         }
-
-        destFileName =
-            artifact.getArtifactId() + versionString + classifierString + "."
-                + artifact.getArtifactHandler().getExtension();
-
-        return destFileName;
+        destFileName.append(artifact.getArtifactId()).append(versionString);
+        destFileName.append(classifierString).append(".");
+        destFileName.append(artifact.getArtifactHandler().getExtension());
+        
+        return destFileName.toString();
     }
 
     /**

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=1031684&r1=1031683&r2=1031684&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
 Fri Nov  5 18:00:17 2010
@@ -132,16 +132,33 @@ public class TestBuildClasspathMojo
         mojo.appendArtifactPath( artifact, sb );
         assertEquals( "%M2_REPO%" + File.separator + 
artifact.getFile().getName(), sb.toString() );
 
+        mojo.setLocalRepoProperty( "%M2_REPO%" );
+        sb.setLength( 0 );
+        mojo.setPrependGroupId( true );
+        mojo.appendArtifactPath( artifact, sb );
+        assertEquals("If prefix is null, prependGroupId has no impact ", 
"%M2_REPO%"+File.separator 
+                     + DependencyUtil.getFormattedFileName( artifact, false, 
false ), sb.toString());
+        
         mojo.setLocalRepoProperty( "" );
         mojo.setPrefix( "prefix" );
         sb.setLength( 0 );
+        mojo.setPrependGroupId( true );
         mojo.appendArtifactPath( artifact, sb );
-        assertEquals( "prefix" + File.separator + 
artifact.getFile().getName(), sb.toString() );
-
+        
assertEquals("prefix"+File.separator+DependencyUtil.getFormattedFileName( 
artifact, false, true ), 
+                     sb.toString());
+        mojo.setPrependGroupId( false );
+        
+        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/TestCopyDependenciesMojo.java
URL: 
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/TestCopyDependenciesMojo.java?rev=1031684&r1=1031683&r2=1031684&view=diff
==============================================================================
--- 
maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/TestCopyDependenciesMojo.java
 (original)
+++ 
maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugin/dependency/TestCopyDependenciesMojo.java
 Fri Nov  5 18:00:17 2010
@@ -766,4 +766,20 @@ public class TestCopyDependenciesMojo
             assertTrue( file.exists() );
         }
     }
+    
+    public void testPrependGroupId() 
+        throws Exception
+    {
+        mojo.prependGroupId = true;
+        mojo.execute();
+    
+        Iterator iter = mojo.project.getArtifacts().iterator();
+        while ( iter.hasNext() )
+        {
+            Artifact artifact = (Artifact) iter.next();
+            String fileName = DependencyUtil.getFormattedFileName( artifact, 
false, true );
+            File file = new File( mojo.outputDirectory, fileName );
+            assertTrue( file.exists() );
+        }
+    }
 }


Reply via email to