Author: pgier
Date: Thu Feb 24 16:43:47 2011
New Revision: 1074207

URL: http://svn.apache.org/viewvc?rev=1074207&view=rev
Log:
[MDEPLOY-48] Refactor handling of sources and javadocs to work with Maven 2.x

Modified:
    
maven/plugins/trunk/maven-deploy-plugin/src/main/java/org/apache/maven/plugin/deploy/DeployFileMojo.java
    
maven/plugins/trunk/maven-deploy-plugin/src/test/java/org/apache/maven/plugin/deploy/DeployFileMojoTest.java

Modified: 
maven/plugins/trunk/maven-deploy-plugin/src/main/java/org/apache/maven/plugin/deploy/DeployFileMojo.java
URL: 
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-deploy-plugin/src/main/java/org/apache/maven/plugin/deploy/DeployFileMojo.java?rev=1074207&r1=1074206&r2=1074207&view=diff
==============================================================================
--- 
maven/plugins/trunk/maven-deploy-plugin/src/main/java/org/apache/maven/plugin/deploy/DeployFileMojo.java
 (original)
+++ 
maven/plugins/trunk/maven-deploy-plugin/src/main/java/org/apache/maven/plugin/deploy/DeployFileMojo.java
 Thu Feb 24 16:43:47 2011
@@ -30,6 +30,8 @@ import org.apache.maven.model.io.xpp3.Ma
 import org.apache.maven.model.io.xpp3.MavenXpp3Writer;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.project.MavenProject;
+import org.apache.maven.project.MavenProjectHelper;
 import org.apache.maven.project.artifact.ProjectArtifactMetadata;
 import org.apache.maven.project.validation.ModelValidationResult;
 import org.apache.maven.project.validation.ModelValidator;
@@ -44,6 +46,8 @@ import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.Reader;
 import java.io.Writer;
+import java.util.Iterator;
+import java.util.List;
 
 /**
  * Installs the artifact in the remote repository.
@@ -56,6 +60,22 @@ public class DeployFileMojo
     extends AbstractDeployMojo
 {
     /**
+     * The default Maven project created when building the plugin
+     * 
+     * @parameter default-value="${project}"
+     * @required
+     * @readonly
+     */
+    private MavenProject project;
+
+    /**
+     * Used for attaching the source and javadoc jars to the project.
+     *
+     * @component
+     */
+    private MavenProjectHelper projectHelper;
+
+    /**
      * GroupId of the artifact to be deployed.  Retrieved from POM file if 
specified.
      *
      * @parameter expression="${groupId}"
@@ -245,6 +265,8 @@ public class DeployFileMojo
         {
             artifact.setRelease( true );
         }
+        
+        project.setArtifact( artifact );
 
         try
         {
@@ -257,27 +279,27 @@ public class DeployFileMojo
 
         if ( sources != null )
         {
-            artifact = artifactFactory.createArtifactWithClassifier( groupId, 
artifactId, version, "jar", "sources" );
-            try
-            {
-                getDeployer().deploy( sources, artifact, deploymentRepository, 
getLocalRepository() );
-            }
-            catch ( ArtifactDeploymentException e )
-            {
-                throw new MojoExecutionException( "Error deploying sources " + 
sources + ": " + e.getMessage(), e );
-            }
+            projectHelper.attachArtifact( project, "jar", "sources", sources );
         }
 
         if ( javadoc != null )
         {
-            artifact = artifactFactory.createArtifactWithClassifier( groupId, 
artifactId, version, "jar", "javadoc" );
+            projectHelper.attachArtifact( project, "jar", "javadoc", javadoc );
+        }
+
+        List attachedArtifacts = project.getAttachedArtifacts();
+
+        for ( Iterator i = attachedArtifacts.iterator(); i.hasNext(); )
+        {
+            Artifact attached = ( Artifact ) i.next();
+
             try
             {
-                getDeployer().deploy( javadoc, artifact, deploymentRepository, 
getLocalRepository() );
+                getDeployer().deploy( attached.getFile(), attached, 
deploymentRepository, getLocalRepository() );
             }
             catch ( ArtifactDeploymentException e )
             {
-                throw new MojoExecutionException( "Error deploying API docs " 
+ javadoc + ": " + e.getMessage(), e );
+                throw new MojoExecutionException( "Error deploying attached 
artifact " + attached.getFile() + ": " + e.getMessage(), e );
             }
         }
 

Modified: 
maven/plugins/trunk/maven-deploy-plugin/src/test/java/org/apache/maven/plugin/deploy/DeployFileMojoTest.java
URL: 
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-deploy-plugin/src/test/java/org/apache/maven/plugin/deploy/DeployFileMojoTest.java?rev=1074207&r1=1074206&r2=1074207&view=diff
==============================================================================
--- 
maven/plugins/trunk/maven-deploy-plugin/src/test/java/org/apache/maven/plugin/deploy/DeployFileMojoTest.java
 (original)
+++ 
maven/plugins/trunk/maven-deploy-plugin/src/test/java/org/apache/maven/plugin/deploy/DeployFileMojoTest.java
 Thu Feb 24 16:43:47 2011
@@ -25,6 +25,7 @@ import java.util.ArrayList;
 import java.util.Iterator;
 
 import org.apache.maven.plugin.testing.AbstractMojoTestCase;
+import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
 import org.apache.maven.model.Model;
 
 /**
@@ -39,6 +40,8 @@ public class DeployFileMojoTest
 
     private File remoteRepo;
 
+    MavenProjectStub projectStub = new MavenProjectStub();
+    
     public void setUp()
         throws Exception
     {
@@ -50,6 +53,8 @@ public class DeployFileMojoTest
         {
             remoteRepo.mkdirs();
         }
+        
+        projectStub.setAttachedArtifacts( new ArrayList() );
     }
 
     public void testDeployTestEnvironment()
@@ -70,6 +75,8 @@ public class DeployFileMojoTest
         DeployFileMojo mojo = (DeployFileMojo) lookupMojo( "deploy-file", 
testPom );
 
         assertNotNull( mojo );
+        
+        setVariableValueToObject( mojo, "project", projectStub );
 
         String groupId = (String) getVariableValueFromObject( mojo, "groupId" 
);
 
@@ -165,6 +172,8 @@ public class DeployFileMojoTest
 
         assertNotNull( mojo );
 
+        setVariableValueToObject( mojo, "project", projectStub );
+
         File pomFile = ( File ) getVariableValueFromObject( mojo, "pomFile" );
 
         assertNotNull( pomFile );
@@ -183,6 +192,8 @@ public class DeployFileMojoTest
 
         assertNotNull( mojo );
 
+        setVariableValueToObject( mojo, "project", projectStub );
+
         String classifier = ( String ) getVariableValueFromObject( mojo, 
"classifier" );
 
         String groupId = ( String ) getVariableValueFromObject( mojo, 
"groupId" );
@@ -223,6 +234,8 @@ public class DeployFileMojoTest
 
         assertNotNull( mojo );
 
+        setVariableValueToObject( mojo, "project", projectStub );
+
         String groupId = (String) getVariableValueFromObject( mojo, "groupId" 
);
 
         String artifactId = (String) getVariableValueFromObject( mojo, 
"artifactId" );
@@ -257,6 +270,8 @@ public class DeployFileMojoTest
 
         assertNotNull( mojo );
 
+        setVariableValueToObject( mojo, "project", projectStub );
+
         String repositoryLayout = (String) getVariableValueFromObject(  mojo, 
"repositoryLayout" );
 
         String groupId = (String) getVariableValueFromObject( mojo, "groupId" 
);


Reply via email to