Author: rfscholte
Date: Tue Oct  6 18:05:53 2015
New Revision: 1707111

URL: http://svn.apache.org/viewvc?rev=1707111&view=rev
Log:
[MRELEASE-921] perform goal doesn't support providerImplementation
Contributed by Georges-Etienne Legendre, reviewed and accepted by Robert Scholte

Modified:
    
maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PerformReleaseMojo.java
    maven/release/trunk/pom.xml

Modified: 
maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PerformReleaseMojo.java
URL: 
http://svn.apache.org/viewvc/maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PerformReleaseMojo.java?rev=1707111&r1=1707110&r2=1707111&view=diff
==============================================================================
--- 
maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PerformReleaseMojo.java
 (original)
+++ 
maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PerformReleaseMojo.java
 Tue Oct  6 18:05:53 2015
@@ -20,11 +20,14 @@ package org.apache.maven.plugins.release
  */
 
 import java.io.File;
+import java.util.Map;
 
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.plugins.annotations.Component;
 import org.apache.maven.plugins.annotations.Mojo;
 import org.apache.maven.plugins.annotations.Parameter;
+import org.apache.maven.scm.manager.ScmManager;
 import org.apache.maven.shared.release.ReleaseExecutionException;
 import org.apache.maven.shared.release.ReleaseFailureException;
 import org.apache.maven.shared.release.ReleasePerformRequest;
@@ -113,6 +116,23 @@ public class PerformReleaseMojo
     private boolean dryRun;
 
     /**
+     * Add a new or overwrite the default implementation per provider. 
+     * The key is the scm prefix and the value is the role hint of the
+     * {@link org.apache.maven.scm.provider.ScmProvider}.
+     *
+     * @since 2.5.3
+     * @see ScmManager#setScmProviderImplementation(String, String)
+     */
+    @Parameter
+    private Map<String, String> providerImplementations;
+
+    /**
+     * The SCM manager.
+     */
+    @Component
+    private ScmManager scmManager;
+
+    /**
      * {@inheritDoc}
      */
     protected String getAdditionalProfiles()
@@ -126,6 +146,16 @@ public class PerformReleaseMojo
     public void execute()
         throws MojoExecutionException, MojoFailureException
     {
+        if ( providerImplementations != null )
+        {
+            for ( Map.Entry<String, String> providerEntry : 
providerImplementations.entrySet() )
+            {
+                getLog().info( "Change the default '" + providerEntry.getKey() 
+ "' provider implementation to '"
+                    + providerEntry.getValue() + "'." );
+                scmManager.setScmProviderImplementation( 
providerEntry.getKey(), providerEntry.getValue() );
+            }
+        }
+        
         // goals may be splitted into multiple line in configuration.
         // Let's build a single line command
         if ( goals != null )

Modified: maven/release/trunk/pom.xml
URL: 
http://svn.apache.org/viewvc/maven/release/trunk/pom.xml?rev=1707111&r1=1707110&r2=1707111&view=diff
==============================================================================
--- maven/release/trunk/pom.xml (original)
+++ maven/release/trunk/pom.xml Tue Oct  6 18:05:53 2015
@@ -76,6 +76,9 @@
     <contributor>
       <name>Russ Kociuba</name>
     </contributor>
+    <contributor>
+      <name>Georges-Etienne Legendre</name>
+    </contributor>
   </contributors>
 
   <properties>


Reply via email to