From d51fbdd73d8511b36c26fbf14bbf01a35a5c4616 Mon Sep 17 00:00:00 2001 From: Stefan Bodewig Date: Fri, 19 Sep 2008 15:28:34 +0000 Subject: [PATCH] allow executable of signjar and verifyjat to be configured. PR 39189. git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@697133 13f79535-47bb-0310-9956-ffa450edef68 --- WHATSNEW | 4 ++++ docs/manual/CoreTasks/signjar.html | 12 +++++++++- .../ant/taskdefs/AbstractJarSignerTask.java | 23 ++++++++++++++++++- 3 files changed, 37 insertions(+), 2 deletions(-) diff --git a/WHATSNEW b/WHATSNEW index 75eb16054..e861d425f 100644 --- a/WHATSNEW +++ b/WHATSNEW @@ -371,6 +371,10 @@ Other changes: ProjectHelper2 will be used just like in ant 1.7.1. Bugzilla Report 42208. + * It is now possible to explicitly set the executable used by + . + Bugzilla Report 39189. + Changes from Ant 1.7.0 TO Ant 1.7.1 ============================================= diff --git a/docs/manual/CoreTasks/signjar.html b/docs/manual/CoreTasks/signjar.html index 4a09d6d8c..8bf0147f3 100644 --- a/docs/manual/CoreTasks/signjar.html +++ b/docs/manual/CoreTasks/signjar.html @@ -141,7 +141,17 @@ block timestamped JAR files in Java1.5+ No - + + executable + Specify a particular jarsigner executable + to use in place of the default binary (found in the same JDK as + Ant is running in).
+ Must support the same command line options as the Sun JDK + jarsigner command. + since Ant 1.8.0. + all + No +

Parameters as nested elements

diff --git a/src/main/org/apache/tools/ant/taskdefs/AbstractJarSignerTask.java b/src/main/org/apache/tools/ant/taskdefs/AbstractJarSignerTask.java index 09e03d45a..97f3c8833 100644 --- a/src/main/org/apache/tools/ant/taskdefs/AbstractJarSignerTask.java +++ b/src/main/org/apache/tools/ant/taskdefs/AbstractJarSignerTask.java @@ -103,6 +103,13 @@ public abstract class AbstractJarSignerTask extends Task { */ private Path path = null; + /** + * The executable to use instead of jarsigner. + * + * @since Ant 1.8.0 + */ + private String executable; + /** * Set the maximum memory to be used by the jarsigner process * @@ -250,6 +257,16 @@ public abstract class AbstractJarSignerTask extends Task { return redirector; } + /** + * Sets the actual executable command to invoke, instead of the binary + * jarsigner found in Ant's JDK. + * @param executable the command to invoke. + * @since Ant 1.8.0 + */ + public void setExecutable(String executable) { + this.executable = executable; + } + /** * these are options common to signing and verifying * @param cmd command to configure @@ -315,7 +332,11 @@ public abstract class AbstractJarSignerTask extends Task { */ protected ExecTask createJarSigner() { final ExecTask cmd = new ExecTask(this); - cmd.setExecutable(JavaEnvUtils.getJdkExecutable(JARSIGNER_COMMAND)); + if (executable == null) { + cmd.setExecutable(JavaEnvUtils.getJdkExecutable(JARSIGNER_COMMAND)); + } else { + cmd.setExecutable(executable); + } cmd.setTaskType(JARSIGNER_COMMAND); cmd.setFailonerror(true); cmd.addConfiguredRedirector(redirector);