Author: stephenc
Date: Tue Jul  5 13:57:32 2011
New Revision: 1143066

URL: http://svn.apache.org/viewvc?rev=1143066&view=rev
Log:
[MDEP-265] Add classifier option for dependency:get

Submitted by Salmaan Zaidi and Andreas Kohn

o Original Diff did not apply correctly

o Fixed formatting.

o Fixed behaviour when conflicting versions of specifying the classifier are 
used.

Modified:
    
maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/GetMojo.java

Modified: 
maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/GetMojo.java
URL: 
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/GetMojo.java?rev=1143066&r1=1143065&r2=1143066&view=diff
==============================================================================
--- 
maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/GetMojo.java
 (original)
+++ 
maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/GetMojo.java
 Tue Jul  5 13:57:32 2011
@@ -104,6 +104,13 @@ public class GetMojo
     private String version;
 
     /**
+     * The classifier of the artifact to download. Ignored if {@link 
#artifact} is used.
+     * @parameter expression="${classifier}"
+     * @since 2.3
+     */
+    private String classifier;
+
+    /**
      * The packaging of the artifact to download
      * @parameter expression="${packaging}" default-value="jar"
      */
@@ -129,7 +136,7 @@ public class GetMojo
     private String remoteRepositories;
 
     /**
-     * A string of the form groupId:artifactId:version[:packaging].
+     * A string of the form 
groupId:artifactId:version[:packaging][:classifier].
      * @parameter expression="${artifact}"
      */
     private String artifact;
@@ -160,20 +167,32 @@ public class GetMojo
         if ( artifactId == null )
         {
             String[] tokens = StringUtils.split( artifact, ":" );
-            if ( tokens.length != 3 && tokens.length != 4 )
+            if ( tokens.length < 3 && tokens.length > 5 )
             {
-                throw new MojoFailureException( "Invalid artifact, you must 
specify "
-                    + "groupId:artifactId:version[:packaging] " + artifact );
+                throw new MojoFailureException(
+                    "Invalid artifact, you must specify 
groupId:artifactId:version[:packaging][:classifier] "
+                        + artifact );
             }
             groupId = tokens[0];
             artifactId = tokens[1];
             version = tokens[2];
-            if ( tokens.length == 4 )
+            if ( tokens.length >= 4 )
             {
                 packaging = tokens[3];
             }
+            if ( tokens.length == 5 )
+            {
+                classifier = tokens[4];
+            }
+            else
+            {
+                classifier = null;
+            }
         }
-        Artifact toDownload = artifactFactory.createBuildArtifact( groupId, 
artifactId, version, packaging );
+
+        Artifact toDownload = classifier == null
+            ? artifactFactory.createBuildArtifact( groupId, artifactId, 
version, packaging )
+            : artifactFactory.createArtifactWithClassifier( groupId, 
artifactId, version, packaging, classifier );
         Artifact dummyOriginatingArtifact =
             artifactFactory.createBuildArtifact( "org.apache.maven.plugins", 
"maven-downloader-plugin", "1.0", "jar" );
 


Reply via email to