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; + } }