Author: bentmann
Date: Thu May 27 19:01:26 2010
New Revision: 948951

URL: http://svn.apache.org/viewvc?rev=948951&view=rev
Log:
[MGPG-23] Allow gpg executable name and path to be specified

Modified:
    
maven/plugins/trunk/maven-gpg-plugin/src/main/java/org/apache/maven/plugin/gpg/AbstractGpgMojo.java
    
maven/plugins/trunk/maven-gpg-plugin/src/main/java/org/apache/maven/plugin/gpg/GpgSigner.java

Modified: 
maven/plugins/trunk/maven-gpg-plugin/src/main/java/org/apache/maven/plugin/gpg/AbstractGpgMojo.java
URL: 
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-gpg-plugin/src/main/java/org/apache/maven/plugin/gpg/AbstractGpgMojo.java?rev=948951&r1=948950&r2=948951&view=diff
==============================================================================
--- 
maven/plugins/trunk/maven-gpg-plugin/src/main/java/org/apache/maven/plugin/gpg/AbstractGpgMojo.java
 (original)
+++ 
maven/plugins/trunk/maven-gpg-plugin/src/main/java/org/apache/maven/plugin/gpg/AbstractGpgMojo.java
 Thu May 27 19:01:26 2010
@@ -72,11 +72,21 @@ public abstract class AbstractGpgMojo
      */
     private boolean interactive;
 
+    /**
+     * The path to the GnuPG executable to use for artifact signing. Defaults 
to either "gpg" or "gpg.exe" depending on
+     * the operating system.
+     * 
+     * @parameter expression="${gpg.executable}"
+     * @since 1.1
+     */
+    private String executable;
+    
     GpgSigner newSigner( MavenProject project )
         throws MojoExecutionException, MojoFailureException
     {
         GpgSigner signer = new GpgSigner();
 
+        signer.setExecutable( executable );
         signer.setInteractive( interactive );
         signer.setKeyName( keyname );
         signer.setUseAgent( useAgent );

Modified: 
maven/plugins/trunk/maven-gpg-plugin/src/main/java/org/apache/maven/plugin/gpg/GpgSigner.java
URL: 
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-gpg-plugin/src/main/java/org/apache/maven/plugin/gpg/GpgSigner.java?rev=948951&r1=948950&r2=948951&view=diff
==============================================================================
--- 
maven/plugins/trunk/maven-gpg-plugin/src/main/java/org/apache/maven/plugin/gpg/GpgSigner.java
 (original)
+++ 
maven/plugins/trunk/maven-gpg-plugin/src/main/java/org/apache/maven/plugin/gpg/GpgSigner.java
 Thu May 27 19:01:26 2010
@@ -29,6 +29,7 @@ import java.io.InputStreamReader;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.project.MavenProject;
 import org.codehaus.plexus.util.Os;
+import org.codehaus.plexus.util.StringUtils;
 import org.codehaus.plexus.util.cli.CommandLineException;
 import org.codehaus.plexus.util.cli.CommandLineUtils;
 import org.codehaus.plexus.util.cli.Commandline;
@@ -39,6 +40,8 @@ public class GpgSigner
 
     public static final String SIGNATURE_EXTENSION = ".asc";
 
+    private String executable;
+ 
     private boolean useAgent;
 
     private boolean isInteractive = true;
@@ -55,6 +58,11 @@ public class GpgSigner
 
     private File homeDir;
 
+    public void setExecutable( String executable )
+    {
+        this.executable = executable;
+    }
+
     public void setInteractive( boolean b )
     {
         isInteractive = b;
@@ -140,7 +148,14 @@ public class GpgSigner
 
         Commandline cmd = new Commandline();
 
-        cmd.setExecutable( "gpg" + ( Os.isFamily( Os.FAMILY_WINDOWS ) ? ".exe" 
: "" ) );
+        if ( StringUtils.isNotEmpty( executable ) )
+        {
+            cmd.setExecutable( executable );
+        }
+        else
+        {
+            cmd.setExecutable( "gpg" + ( Os.isFamily( Os.FAMILY_WINDOWS ) ? 
".exe" : "" ) );
+        }
 
         if ( homeDir != null )
         {


Reply via email to