Author: tchemit
Date: Wed Nov 13 21:09:30 2013
New Revision: 1541717

URL: http://svn.apache.org/r1541717
Log:
MJARSIGNER-9 - Add toolchain in JarSignMojo.java#getJDKCommandExe()
Comment: need then to use the last version of maven-share-utils (with the 
javatool api)

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

Modified: maven/plugins/trunk/maven-jarsigner-plugin/pom.xml
URL: 
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-jarsigner-plugin/pom.xml?rev=1541717&r1=1541716&r2=1541717&view=diff
==============================================================================
--- maven/plugins/trunk/maven-jarsigner-plugin/pom.xml (original)
+++ maven/plugins/trunk/maven-jarsigner-plugin/pom.xml Wed Nov 13 21:09:30 2013
@@ -96,7 +96,7 @@ under the License.
     <dependency>
       <groupId>org.apache.maven.shared</groupId>
       <artifactId>maven-shared-utils</artifactId>
-      <version>0.3</version>
+      <version>0.5-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.sonatype.plexus</groupId>

Modified: 
maven/plugins/trunk/maven-jarsigner-plugin/src/main/java/org/apache/maven/plugins/jarsigner/AbstractJarsignerMojo.java
URL: 
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-jarsigner-plugin/src/main/java/org/apache/maven/plugins/jarsigner/AbstractJarsignerMojo.java?rev=1541717&r1=1541716&r2=1541717&view=diff
==============================================================================
--- 
maven/plugins/trunk/maven-jarsigner-plugin/src/main/java/org/apache/maven/plugins/jarsigner/AbstractJarsignerMojo.java
 (original)
+++ 
maven/plugins/trunk/maven-jarsigner-plugin/src/main/java/org/apache/maven/plugins/jarsigner/AbstractJarsignerMojo.java
 Wed Nov 13 21:09:30 2013
@@ -20,19 +20,22 @@ package org.apache.maven.plugins.jarsign
  */
 
 import org.apache.maven.artifact.Artifact;
+import org.apache.maven.execution.MavenSession;
 import org.apache.maven.plugin.AbstractMojo;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugins.annotations.Component;
 import org.apache.maven.plugins.annotations.Parameter;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.shared.jarsigner.JarSigner;
-import org.apache.maven.shared.jarsigner.JarSignerException;
 import org.apache.maven.shared.jarsigner.JarSignerRequest;
 import org.apache.maven.shared.jarsigner.JarSignerResult;
 import org.apache.maven.shared.jarsigner.JarSignerUtil;
 import org.apache.maven.shared.utils.StringUtils;
 import org.apache.maven.shared.utils.cli.Commandline;
+import org.apache.maven.shared.utils.cli.javatool.JavaToolException;
 import org.apache.maven.shared.utils.io.FileUtils;
+import org.apache.maven.toolchain.Toolchain;
+import org.apache.maven.toolchain.ToolchainManager;
 
 import java.io.File;
 import java.io.IOException;
@@ -182,11 +185,35 @@ public abstract class AbstractJarsignerM
     @Component
     private JarSigner jarSigner;
 
+    /**
+     * The current build session instance. This is used for
+     * toolchain manager API calls.
+     *
+     * @since 1.3
+     */
+    @Component
+    private MavenSession session;
+
+    /**
+     * To obtain a toolchain if possible.
+     *
+     * @since 1.3
+     */
+    @Component
+    private ToolchainManager toolchainManager;
+
     public final void execute()
         throws MojoExecutionException
     {
         if ( !this.skip )
         {
+            Toolchain toolchain = getToolchain();
+
+            if ( toolchain != null )
+            {
+                jarSigner.setToolchain(toolchain);
+            }
+
             int processed = 0;
 
             if ( this.archive != null )
@@ -414,7 +441,7 @@ public abstract class AbstractJarsignerM
             }
 
         }
-        catch ( JarSignerException e )
+        catch ( JavaToolException e )
         {
             throw new MojoExecutionException( getMessage( 
"commandLineException", e.getMessage() ), e );
         }
@@ -456,4 +483,21 @@ public abstract class AbstractJarsignerM
         return getMessage( key, new Object[]{ arg1, arg2 } );
     }
 
+    /**
+     * FIXME tchemit-20123-11-13, need to find out how to do this...
+     * TODO remove the part with ToolchainManager lookup once we depend on
+     * 2.0.9 (have it as prerequisite). Define as regular component field then.
+     *
+     * @return Toolchain instance
+     */
+    private Toolchain getToolchain()
+    {
+        Toolchain tc = null;
+        if ( toolchainManager != null )
+        {
+            tc = toolchainManager.getToolchainFromBuildContext( "jdk", session 
);
+        }
+
+        return tc;
+    }
 }


Reply via email to