Author: stephenc
Date: Mon May 23 08:02:50 2011
New Revision: 1126367
URL: http://svn.apache.org/viewvc?rev=1126367&view=rev
Log:
[MDEPLOY-133]
Modified:
maven/plugins/trunk/maven-deploy-plugin/src/main/java/org/apache/maven/plugin/deploy/AbstractDeployMojo.java
maven/plugins/trunk/maven-deploy-plugin/src/main/java/org/apache/maven/plugin/deploy/DeployFileMojo.java
maven/plugins/trunk/maven-deploy-plugin/src/main/java/org/apache/maven/plugin/deploy/DeployMojo.java
Modified:
maven/plugins/trunk/maven-deploy-plugin/src/main/java/org/apache/maven/plugin/deploy/AbstractDeployMojo.java
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-deploy-plugin/src/main/java/org/apache/maven/plugin/deploy/AbstractDeployMojo.java?rev=1126367&r1=1126366&r2=1126367&view=diff
==============================================================================
---
maven/plugins/trunk/maven-deploy-plugin/src/main/java/org/apache/maven/plugin/deploy/AbstractDeployMojo.java
(original)
+++
maven/plugins/trunk/maven-deploy-plugin/src/main/java/org/apache/maven/plugin/deploy/AbstractDeployMojo.java
Mon May 23 08:02:50 2011
@@ -19,9 +19,12 @@ package org.apache.maven.plugin.deploy;
* under the License.
*/
+import java.io.File;
import java.util.Map;
+import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.deployer.ArtifactDeployer;
+import org.apache.maven.artifact.deployer.ArtifactDeploymentException;
import org.apache.maven.artifact.factory.ArtifactFactory;
import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.artifact.repository.ArtifactRepositoryFactory;
@@ -84,6 +87,14 @@ public abstract class AbstractDeployMojo
*/
protected boolean updateReleaseInfo;
+ /**
+ * Parameter used to control how many times a failed deployment will be
retried before giving up and failing.
+ * If a value outside the range 1-10 is specified it will be pulled to the
nearest value within the range 1-10.
+ *
+ * @parameter expression="${retryFailedDeploymentCount}" default-value="1"
+ */
+ private int retryFailedDeploymentCount;
+
/* Setters and Getters */
public ArtifactDeployer getDeployer()
@@ -128,4 +139,37 @@ public abstract class AbstractDeployMojo
return layout;
}
+ protected void deploy( File file1, Artifact attached, ArtifactRepository
deploymentRepository,
+ ArtifactRepository localRepository )
+ throws ArtifactDeploymentException
+ {
+ int retryFailedDeploymentCount = Math.max( 1, Math.min( 10,
this.retryFailedDeploymentCount ) );
+ ArtifactDeploymentException exception = null;
+ for ( int count = 0; count < retryFailedDeploymentCount; count++ )
+ {
+ try
+ {
+ if (count > 0)
+ {
+ getLog().info( "Retrying deployment attempt " + (count +
1) + " of " + retryFailedDeploymentCount );
+ }
+ getDeployer().deploy( file1, attached, deploymentRepository,
localRepository );
+ exception = null;
+ }
+ catch ( ArtifactDeploymentException e )
+ {
+ if (count + 1 < retryFailedDeploymentCount) {
+ getLog().warn( "Something went wrong with the deployment,
will try again", e );
+ }
+ if ( exception == null )
+ {
+ exception = e;
+ }
+ }
+ }
+ if ( exception != null )
+ {
+ throw exception;
+ }
+ }
}
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=1126367&r1=1126366&r2=1126367&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
Mon May 23 08:02:50 2011
@@ -277,7 +277,7 @@ public class DeployFileMojo
try
{
- getDeployer().deploy( file, artifact, deploymentRepository,
getLocalRepository() );
+ deploy( file, artifact, deploymentRepository, getLocalRepository()
);
}
catch ( ArtifactDeploymentException e )
{
@@ -302,7 +302,7 @@ public class DeployFileMojo
try
{
- getDeployer().deploy( attached.getFile(), attached,
deploymentRepository, getLocalRepository() );
+ deploy( attached.getFile(), attached, deploymentRepository,
getLocalRepository() );
}
catch ( ArtifactDeploymentException e )
{
Modified:
maven/plugins/trunk/maven-deploy-plugin/src/main/java/org/apache/maven/plugin/deploy/DeployMojo.java
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-deploy-plugin/src/main/java/org/apache/maven/plugin/deploy/DeployMojo.java?rev=1126367&r1=1126366&r2=1126367&view=diff
==============================================================================
---
maven/plugins/trunk/maven-deploy-plugin/src/main/java/org/apache/maven/plugin/deploy/DeployMojo.java
(original)
+++
maven/plugins/trunk/maven-deploy-plugin/src/main/java/org/apache/maven/plugin/deploy/DeployMojo.java
Mon May 23 08:02:50 2011
@@ -145,7 +145,7 @@ public class DeployMojo
{
if ( isPomArtifact )
{
- getDeployer().deploy( pomFile, artifact, repo,
getLocalRepository() );
+ deploy( pomFile, artifact, repo, getLocalRepository() );
}
else
{
@@ -153,7 +153,7 @@ public class DeployMojo
if ( file != null && file.isFile() )
{
- getDeployer().deploy( file, artifact, repo,
getLocalRepository() );
+ deploy( file, artifact, repo, getLocalRepository() );
}
else if ( !attachedArtifacts.isEmpty() )
{
@@ -168,7 +168,7 @@ public class DeployMojo
pomArtifact.setRelease( true );
}
- getDeployer().deploy( pomFile, pomArtifact, repo,
getLocalRepository() );
+ deploy( pomFile, pomArtifact, repo, getLocalRepository() );
// propagate the timestamped version to the main artifact
for the attached artifacts to pick it up
artifact.setResolvedVersion( pomArtifact.getVersion() );
@@ -184,7 +184,7 @@ public class DeployMojo
{
Artifact attached = ( Artifact ) i.next();
- getDeployer().deploy( attached.getFile(), attached, repo,
getLocalRepository() );
+ deploy( attached.getFile(), attached, repo,
getLocalRepository() );
}
}
catch ( ArtifactDeploymentException e )