You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ant.apache.org by bo...@apache.org on 2018/09/28 16:30:24 UTC
[4/4] ant git commit: Merge branch '1.9.x'
Merge branch '1.9.x'
Project: http://git-wip-us.apache.org/repos/asf/ant/repo
Commit: http://git-wip-us.apache.org/repos/asf/ant/commit/b99b6fa5
Tree: http://git-wip-us.apache.org/repos/asf/ant/tree/b99b6fa5
Diff: http://git-wip-us.apache.org/repos/asf/ant/diff/b99b6fa5
Branch: refs/heads/master
Commit: b99b6fa538e857f7f064b943729babe25e2a60f0
Parents: ec5b55d d100b90
Author: Stefan Bodewig <bo...@apache.org>
Authored: Fri Sep 28 18:30:04 2018 +0200
Committer: Stefan Bodewig <bo...@apache.org>
Committed: Fri Sep 28 18:30:04 2018 +0200
----------------------------------------------------------------------
WHATSNEW | 8 ++
manual/Tasks/signjar.html | 33 +++++++-
manual/Tasks/verifyjar.html | 31 ++++++++
.../ant/taskdefs/AbstractJarSignerTask.java | 84 +++++++++++++++++++-
.../org/apache/tools/ant/types/Commandline.java | 11 +++
5 files changed, 165 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ant/blob/b99b6fa5/WHATSNEW
----------------------------------------------------------------------
diff --cc WHATSNEW
index ff59e63,6cd11da..19b2c0f
--- a/WHATSNEW
+++ b/WHATSNEW
@@@ -35,10 -24,15 +35,18 @@@ Other changes
* the <modified> selector has a new built-in algorithm 'lastmodified'
which computes a value based upon the lastmodified time of the file.
+ * junitlauncher task now supports forking and can be used with JaCoCo
+ (see https://github.com/jacoco/jacoco/issues/673).
+
+ * signjar and verifyjar now support the -providerName, -providerClass
+ and -providerArg command line options of keytool via new attributes.
+ Bugzilla Report 65234
+
+ * signjar and verifyjar now supported nested <arg> elements for
+ command line arguments that are not supported explicitly by the
+ tasks via attributes.
+
-Changes from Ant 1.9.12 TO Ant 1.9.13
+Changes from Ant 1.10.4 TO Ant 1.10.5
=====================================
Fixed bugs:
http://git-wip-us.apache.org/repos/asf/ant/blob/b99b6fa5/manual/Tasks/signjar.html
----------------------------------------------------------------------
diff --cc manual/Tasks/signjar.html
index 03f9156,88bdb43..bc098e7
--- a/manual/Tasks/signjar.html
+++ b/manual/Tasks/signjar.html
@@@ -45,237 -47,285 +45,268 @@@ place.</p
</ul>
<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
+<table class="attr">
<tr>
- <td valign="top"><b>Attribute</b></td>
- <td valign="top"><b>Description</b></td>
- <td align="center" valign="top"><b>Required</b></td>
+ <th scope="col">Attribute</th>
+ <th scope="col">Description</th>
+ <th scope="col">Required</th>
</tr>
<tr>
- <td valign="top">jar</td>
- <td valign="top">the jar file to sign</td>
- <td valign="top" align="center">Yes, unless nested paths have
- been used.</td>
+ <td>jar</td>
+ <td>the jar file to sign</td>
+ <td>Yes, unless nested paths have been used</td>
</tr>
<tr>
- <td valign="top">alias</td>
- <td valign="top">the alias to sign under</td>
- <td valign="top" align="center">Yes.</td>
+ <td>alias</td>
+ <td>the alias to sign under</td>
+ <td>Yes</td>
</tr>
<tr>
- <td valign="top">storepass</td>
- <td valign="top">password for keystore integrity. Ant will not use
+ <td>storepass</td>
+ <td>password for keystore integrity. Ant will not use
the <code>-storepass</code> command line argument but send the
password to jarsigner when it prompts for it.</td>
- <td valign="top" align="center">Yes.</td>
+ <td>Yes</td>
</tr>
<tr>
- <td valign="top">keystore</td>
- <td valign="top">keystore location</td>
- <td valign="top" align="center">No</td>
+ <td>keystore</td>
+ <td>keystore location</td>
+ <td>No</td>
</tr>
<tr>
- <td valign="top">storetype</td>
- <td valign="top">keystore type</td>
- <td valign="top" align="center">No</td>
+ <td>storetype</td>
+ <td>keystore type</td>
+ <td>No</td>
</tr>
<tr>
- <td valign="top">keypass</td>
- <td valign="top">password for private key (if different)</td>
- <td valign="top" align="center">No</td>
+ <td>keypass</td>
+ <td>password for private key (if different)</td>
+ <td>No</td>
</tr>
<tr>
- <td valign="top">sigfile</td>
- <td valign="top">name of .SF/.DSA file</td>
- <td valign="top" align="center">No</td>
+ <td>sigfile</td>
+ <td>name of <samp>.SF</samp>/<samp>.DSA</samp> file</td>
+ <td>No</td>
</tr>
<tr>
- <td valign="top">signedjar</td>
- <td valign="top">name of signed JAR file. This can only be set when
- the <tt>jar</tt> attribute is set.</td>
- <td valign="top" align="center">No.</td>
+ <td>signedjar</td>
+ <td>name of signed JAR file. This can only be set when the <var>jar</var> attribute is set.</td>
+ <td>No</td>
</tr>
<tr>
- <td valign="top">verbose</td>
- <td valign="top">(true | false) verbose output when signing</td>
- <td valign="top" align="center">No; default false</td>
+ <td>verbose</td>
+ <td>(<q>true|false</q>) verbose output when signing</td>
+ <td>No; default <q>false</q></td>
</tr>
<tr>
- <td valign="top">strict</td>
- <td valign="top">(true | false) strict checking when signing.<br/><em>since Ant 1.9.1</em>.</td>
- <td valign="top" align="center">No; default false</td>
+ <td>strict</td>
+ <td>(<q>true|false</q>) strict checking when signing.<br/><em>since Ant 1.9.1</em>.</td>
+ <td>No; default <q>false</q></td>
</tr>
<tr>
- <td valign="top">internalsf</td>
- <td valign="top">(true | false) include the .SF file inside the signature
-block</td>
- <td valign="top" align="center">No; default false</td>
+ <td>internalsf</td>
+ <td>(<q>true|false</q>) include the <samp>.SF</samp> file inside the signature block</td>
+ <td>No; default <q>false</q></td>
</tr>
<tr>
- <td valign="top">sectionsonly</td>
- <td valign="top">(true | false) don't compute hash of entire manifest</td>
- <td valign="top" align="center">No; default false</td>
+ <td>sectionsonly</td>
+ <td>(<q>true|false</q>) don't compute hash of entire manifest</td>
+ <td>No; default <q>false</q></td>
</tr>
<tr>
- <td valign="top">lazy</td>
- <td valign="top">flag to control whether the presence of a signature
- file means a JAR is signed. This is only used when the target JAR matches
- the source JAR</td>
- <td valign="top" align="center">No; default false</td>
+ <td>lazy</td>
+ <td>flag to control whether the presence of a signature file means a JAR is signed. This is only
+ used when the target JAR matches the source JAR</td>
+ <td>No; default <q>false</q></td>
</tr>
<tr>
- <td valign="top">maxmemory</td>
- <td valign="top">Specifies the maximum memory the jarsigner VM will use. Specified in the
- style of standard java memory specs (e.g. 128m = 128 MBytes)</td>
- <td valign="top" align="center">No</td>
+ <td>maxmemory</td>
+ <td>Specifies the maximum memory the <kbd>jarsigner</kbd> JVM will use. Specified in the style
+ of standard Java memory specs (e.g. <q>128m</q> = 128 MBytes)</td>
+ <td>No</td>
</tr>
<tr>
- <td valign="top">preservelastmodified</td>
- <td valign="top">Give the signed files the same last modified
- time as the original jar files.</td>
- <td valign="top" align="center">No; default false.</td>
+ <td>preservelastmodified</td>
+ <td>Give the signed files the same last modified time as the original jar files.</td>
+ <td>No; default <q>false</q>.</td>
</tr>
<tr>
- <td valign="top">tsaurl</td>
- <td valign="top">URL for a timestamp authority for timestamped
- JAR files in Java1.5+</td>
- <td valign="top" align="center">No</td>
+ <td>tsaurl</td>
+ <td>URL for a timestamp authority for timestamped JAR files in Java 5+</td>
+ <td>No</td>
</tr>
<tr>
- <td valign="top">tsacert</td>
- <td valign="top">alias in the keystore for a timestamp authority for
- timestamped JAR files in Java1.5+</td>
- <td valign="top" align="center">No</td>
+ <td>tsacert</td>
+ <td>alias in the keystore for a timestamp authority for timestamped JAR files in Java 5+</td>
+ <td>No</td>
</tr>
<tr>
- <td valign="top">tsaproxyhost</td>
- <td valign="top">proxy host to be used when connecting to TSA server</td>
- <td valign="top" align="center">No</td>
+ <td>tsaproxyhost</td>
+ <td>proxy host to be used when connecting to TSA server</td>
+ <td>No</td>
</tr>
<tr>
- <td valign="top">tsaproxyport</td>
- <td valign="top">proxy port to be used when connecting to TSA server</td>
- <td valign="top" align="center">No</td>
+ <td>tsaproxyport</td>
+ <td>proxy port to be used when connecting to TSA server</td>
+ <td>No</td>
</tr>
<tr>
- <td valign="top">executable</td>
- <td valign="top">Specify a particular <code>jarsigner</code> executable
- to use in place of the default binary (found in the same JDK as
- Apache Ant is running in).<br/>
- Must support the same command line options as the Sun JDK
- jarsigner command.
- <em>since Ant 1.8.0</em>.</td>
- <td align="center" valign="top">No</td>
+ <td>executable</td>
+ <td>Specify a particular <kbd>jarsigner</kbd> executable to use in place of the default binary
+ (found in the same JDK as Apache Ant is running in).<br/>Must support the same command line
+ options as the Sun JDK <kbd>jarsigner</kbd> command. <em>since Ant 1.8.0</em>.</td>
+ <td>No</td>
</tr>
<tr>
- <td valign="top">force</td>
- <td valign="top">Whether to force signing of the jar file even if
- it doesn't seem to be out of date or already signed.
- <em>since Ant 1.8.0</em>.</td>
- <td align="center" valign="top">No; default false</td>
+ <td>force</td>
+ <td>Whether to force signing of the jar file even if it doesn't seem to be out of date or
+ already signed. <em>since Ant 1.8.0</em>.</td>
+ <td>No; default <q>false</q></td>
</tr>
<tr>
- <td valign="top">sigalg</td>
- <td valign="top">name of signature algorithm</td>
- <td valign="top" align="center">No</td>
+ <td>sigalg</td>
+ <td>name of signature algorithm</td>
+ <td>No</td>
</tr>
<tr>
- <td valign="top">digestalg</td>
- <td valign="top">name of digest algorithm</td>
- <td valign="top" align="center">No</td>
+ <td>digestalg</td>
+ <td>name of digest algorithm</td>
+ <td>No</td>
</tr>
<tr>
- <td valign="top">providername</td>
- <td valign="top">name of a cryptographic service provider's name
+ <td>tsadigestalg</td>
+ <td>name of TSA digest algorithm. <em>since Ant 1.10.2</em></td>
+ <td>No</td>
+ </tr>
++ <tr>
++ <td>providername</td>
++ <td>name of a cryptographic service provider's name
+ when listed in the security properties file.
- <em>since Ant 1.9.14</em>.</td>
- <td valign="top" align="center">No</td>
++ <em>since Ant 1.10.6</em>.</td>
++ <td>No</td>
+ </tr>
+ <tr>
- <td valign="top">providerclass</td>
- <td valign="top">name of a cryptographic service provider's master
++ <td>providerclass</td>
++ <td>name of a cryptographic service provider's master
+ class file when the service provider is not listed in the security
+ properties file.
- <em>since Ant 1.9.14</em>.</td>
- <td valign="top" align="center">No</td>
++ <em>since Ant 1.10.6</em>.</td>
++ <td>No</td>
+ </tr>
+ <tr>
- <td valign="top">providerarg</td>
- <td valign="top">Represents an optional string input argument for
++ <td>providerarg</td>
++ <td>Represents an optional string input argument for
+ the constructor of provider_class_name. Ignored
+ if <code>providerclass</code> is not set.
- <em>since Ant 1.9.14</em>.</td>
- <td valign="top" align="center">No</td>
++ <em>since Ant 1.10.6</em>.</td>
++ <td>No</td>
+ </tr>
</table>
<h3>Parameters as nested elements</h3>
-<table border="1" cellpadding="2" cellspacing="0">
+<table class="attr">
<tr>
- <td valign="top"><b>Attribute</b></td>
- <td valign="top"><b>Description</b></td>
- <td align="center" valign="top"><b>Required</b></td>
+ <th scope="col">Attribute</th>
+ <th scope="col">Description</th>
+ <th scope="col">Required</th>
</tr>
<tr>
- <td valign="top">path</td>
- <td valign="top">path of JAR files to sign. <em>since Ant 1.7</em></td>
- <td valign="top" align="center">No</td>
+ <td>path</td>
+ <td>path of JAR files to sign. <em>since Ant 1.7</em></td>
+ <td>No</td>
</tr>
<tr>
- <td valign="top">fileset</td>
- <td valign="top">fileset of JAR files to sign. </td>
- <td valign="top" align="center">No</td>
+ <td>fileset</td>
+ <td>fileset of JAR files to sign.</td>
+ <td>No</td>
</tr>
<tr>
- <td valign="top">mapper</td>
- <td valign="top">A mapper to rename jar files during signing</td>
- <td valign="top" align="center">No, and only one can be supplied</td>
+ <td>mapper</td>
+ <td>A mapper to rename jar files during signing</td>
+ <td>No, and only one can be supplied</td>
</tr>
<tr>
- <td valign="top">sysproperty</td>
- <td valign="top">JVM system properties, with the syntax of Ant
- <a href="exec.html#env">environment variables</a> </td>
- <td valign="top" align="center">No, and only one can be supplied</td>
+ <td>sysproperty</td>
+ <td>JVM system properties, with the syntax of Ant <a href="exec.html#env">environment
+ variables</a></td>
+ <td>No, and only one can be supplied</td>
</tr>
- </table>
+ <tr>
- <td valign="top">arg</td>
- <td valign="top">Use this to specify a <code>keytool</code>
++ <td>arg</td>
++ <td>Use this to specify a <kbd>keytool</kbd>
+ <a href="../using.html#arg">command line argument</a> not
+ explicitly supported via an attribute.
- <em>since Ant 1.9.14</em>.</td>
- <td valign="top" align="center">No</td>
++ <em>since Ant 1.10.6</em>.</td>
++ <td>No</td>
+ </tr>
+ </table>
-
<h3>Examples</h3>
-<p>For instructions on generating a code signing certificate, see the <a target="_blank" href="http://docs.oracle.com/javase/7/docs/technotes/tools/windows/keytool.html">keytool documentation</a> and/or instructions from your certificate authority.</p>
- <blockquote><pre>
+<p>For instructions on generating a code signing certificate, see
+the <a href="https://docs.oracle.com/javase/8/docs/technotes/tools/windows/keytool.html"
+target="_top">keytool documentation</a> and/or instructions from your certificate authority.</p>
+
+<p>Sign the <samp>ant.jar</samp> with alias <q>apache-group</q> accessing the keystore and private
+key via <q>secret</q> password.</p>
+<pre>
<signjar jar="${dist}/lib/ant.jar"
-alias="apache-group" storepass="secret"/>
-</pre></blockquote>
-<p>
- signs the ant.jar with alias "apache-group" accessing the
- keystore and private key via "secret" password.
-</p>
- <blockquote><pre>
+ alias="apache-group" storepass="secret"/></pre>
+
+<p>Sign all JAR files matching the <samp>dist/**/*.jar</samp> pattern, copying them to the
+directory <samp>signed</samp> afterwards. The flatten mapper means that they will all be copied to
+this directory, not to subdirectories.</p>
+<pre>
<signjar destDir="signed"
- alias="testonly" keystore="testkeystore"
- storepass="apacheant"
- preservelastmodified="true">
+ alias="testonly" keystore="testkeystore"
+ storepass="apacheant"
+ preservelastmodified="true">
<path>
- <fileset dir="dist" includes="**/*.jar" />
+ <fileset dir="dist" includes="**/*.jar"/>
</path>
- <flattenmapper />
-</signjar>
-</pre></blockquote>
-<p>
-Sign all JAR files matching the dist/**/*.jar pattern, copying them to the
-directory "signed" afterwards. The flatten mapper means that they will
-all be copied to this directory, not to subdirectories.
+ <flattenmapper/>
+</signjar></pre>
-</p>
- <blockquote><pre>
-<signjar
- alias="testonly" keystore="testkeystore"
- storepass="apacheant"
- lazy="true"
- >
+<p>Sign all the JAR files in <samp>dist/**/*.jar</samp> <em>in-situ</em>. Lazy signing is used, so
+the files will only be signed if they are not already signed.</p>
+<pre>
+<signjar alias="testonly" keystore="testkeystore"
+ storepass="apacheant"
+ lazy="true">
<path>
- <fileset dir="dist" includes="**/*.jar" />
+ <fileset dir="dist" includes="**/*.jar"/>
</path>
-</signjar>
-</pre></blockquote>
-<p>
-Sign all the JAR files in dist/**/*.jar <i>in-situ</i>. Lazy signing is used,
-so the files will only be signed if they are not already signed.
-</p>
- <blockquote><pre>
-<signjar
- alias="testonly" keystore="testkeystore"
- storepass="apacheant"
- sigalg="MD5withRSA"
- digestalg="SHA1">
+</signjar></pre>
+
+<p>Sign all the JAR files in <samp>dist/**/*.jar</samp> using the digest algorithm SHA1 and the
+signature algorithm MD5withRSA. This is especially useful when you want to use the JDK
+7 <kbd>jarsigner</kbd> (which uses SHA256 and SHA256withRSA as default) to create signed jars that
+will be deployed on platforms not supporting SHA256 and SHA256withRSA.</p>
+<pre>
+<signjar alias="testonly" keystore="testkeystore"
+ storepass="apacheant"
+ sigalg="MD5withRSA"
+ digestalg="SHA1">
<path>
- <fileset dir="dist" includes="**/*.jar" />
+ <fileset dir="dist" includes="**/*.jar"/>
</path>
-</signjar>
-</pre></blockquote>
-<p>
-Sign all the JAR files in dist/**/*.jar using the digest algorithm SHA1 and the
-signature algorithm MD5withRSA. This is especially useful when you want to use
-the JDK 7 jarsigner (which uses SHA256 and SHA256withRSA as default) to create
-signed jars that will be deployed on platforms not supporting SHA256 and
-SHA256withRSA.
-</p>
+</signjar></pre>
+
<h3>About timestamp signing</h3>
-<p>Timestamps record the date and time that a signature took place, allowing the signature to be verified as of that point in time.
-With trusted timestamping, users can verify that signing occurred before a certificate's expiration or revocation. Without this timestamp, users can only verify the signature as of their current date.</p>
+<p>Timestamps record the date and time that a signature took place, allowing the signature to be
+verified as of that point in time. With trusted timestamping, users can verify that signing
+occurred before a certificate's expiration or revocation. Without this timestamp, users can only
+verify the signature as of their current date.</p>
-<p>
-Timestamped JAR files were introduced in Java1.5 and supported in Ant since
-Ant 1.7. Since Ant 1.9.5, Ant can use unauthenticated proxies for this signing process.
-</p>
+<p>Timestamped JAR files were introduced in Java 5; they are supported <em>since Ant
+1.7</em>. Unauthenticated proxies can be used to access TSAs <em>since Ant 1.9.5</em>.</p>
-<p>Common public timestamp authorities include
- <ul>
- <li>http://timestamp.verisign.com</li>
- <li>http://tsa.starfieldtech.com</li>
- <li>https://timestamp.geotrust.com/tsa</li>
- <li>Others (see your certificate authority)</li>
- </ul></p>
+<p>Common public timestamp authorities include</p>
+<ul>
+ <li>http://timestamp.verisign.com</li>
+ <li>http://tsa.starfieldtech.com</li>
+ <li>https://timestamp.geotrust.com/tsa</li>
+ <li>Others (see your certificate authority)</li>
+</ul>
</body>
</html>
http://git-wip-us.apache.org/repos/asf/ant/blob/b99b6fa5/manual/Tasks/verifyjar.html
----------------------------------------------------------------------
diff --cc manual/Tasks/verifyjar.html
index db140f0,b2df426..e519d23
--- a/manual/Tasks/verifyjar.html
+++ b/manual/Tasks/verifyjar.html
@@@ -55,84 -57,123 +55,115 @@@ the <var>jar</var> attribute. Nested pa
jarsigner does not read the password from stdin during
verification, so the password must be send via a command line
interface and may be visible to other users of the system.</td>
- <td valign="top" align="center">No.</td>
+ <td>No</td>
</tr>
<tr>
- <td valign="top">keystore</td>
- <td valign="top">keystore location</td>
- <td valign="top" align="center">No</td>
+ <td>keystore</td>
+ <td>keystore location</td>
+ <td>No</td>
</tr>
<tr>
- <td valign="top">storetype</td>
- <td valign="top">keystore type</td>
- <td valign="top" align="center">No</td>
+ <td>storetype</td>
+ <td>keystore type</td>
+ <td>No</td>
</tr>
<tr>
- <td valign="top">keypass</td>
- <td valign="top">password for private key (if different)</td>
- <td valign="top" align="center">No</td>
+ <td>keypass</td>
+ <td>password for private key (if different)</td>
+ <td>No</td>
</tr>
<tr>
- <td valign="top">certificates</td>
- <td valign="top">(true | false) display information about certificates</td>
- <td valign="top" align="center">No; default false</td>
+ <td>certificates</td>
+ <td>(<q>true|false</q>) display information about certificates</td>
+ <td>No; default <q>false</q></td>
</tr>
<tr>
- <td valign="top">verbose</td>
- <td valign="top">(true | false) verbose output when verifying</td>
- <td valign="top" align="center">No; default false</td>
+ <td>verbose</td>
+ <td>(<q>true|false</q>) verbose output when verifying</td>
+ <td>No; default <q>false</q></td>
</tr>
<tr>
- <td valign="top">strict</td>
- <td valign="top">(true | false) strict checking when verifying.<br/><em>since Ant 1.9.1</em>.</td>
- <td valign="top" align="center">No; default false</td>
+ <td>strict</td>
+ <td>(<q>true|false</q>) strict checking when verifying.<br/><em>since Ant 1.9.1</em>.</td>
+ <td>No; default <q>false</q></td>
</tr>
<tr>
- <td valign="top">maxmemory</td>
- <td valign="top">Specifies the maximum memory the jarsigner VM will use. Specified in the
- style of standard java memory specs (e.g. 128m = 128 MBytes)</td>
- <td valign="top" align="center">No</td>
+ <td>maxmemory</td>
+ <td>Specifies the maximum memory the <kbd>jarsigner</kbd> JVM will use. Specified in the style
+ of standard Java memory specs (e.g. <q>128m</q> = 128 MBytes)</td>
+ <td>No</td>
</tr>
<tr>
- <td valign="top">executable</td>
- <td valign="top">Specify a particular <code>jarsigner</code> executable
- to use in place of the default binary (found in the same JDK as
- Apache Ant is running in).<br/>
- Must support the same command line options as the Sun JDK
- jarsigner command.
- <em>since Ant 1.8.0</em>.</td>
- <td align="center" valign="top">No</td>
- </tr>
+ <td>executable</td>
+ <td>Specify a particular <kbd>jarsigner</kbd> executable to use in place of the default binary
+ (found in the same JDK as Apache Ant is running in).<br/> Must support the same command line
+ options as the Sun JDK <kbd>jarsigner</kbd> command. <em>since Ant 1.8.0</em>.</td>
+ <td>No</td>
+ </tr>
+ <tr>
- <td valign="top">providername</td>
- <td valign="top">name of a cryptographic service provider's name
++ <td>providername</td>
++ <td>name of a cryptographic service provider's name
+ when listed in the security properties file.
- <em>since Ant 1.9.14</em>.</td>
- <td valign="top" align="center">No</td>
++ <em>since Ant 1.10.6</em>.</td>
++ <td>No</td>
+ </tr>
+ <tr>
- <td valign="top">providerclass</td>
- <td valign="top">name of a cryptographic service provider's master
++ <td>providerclass</td>
++ <td>name of a cryptographic service provider's master
+ class file when the service provider is not listed in the security
+ properties file.
- <em>since Ant 1.9.14</em>.</td>
- <td valign="top" align="center">No</td>
++ <em>since Ant 1.10.6</em>.</td>
++ <td>No</td>
+ </tr>
+ <tr>
- <td valign="top">providerarg</td>
- <td valign="top">Represents an optional string input argument for
++ <td>providerarg</td>
++ <td>Represents an optional string input argument for
+ the constructor of provider_class_name. Ignored
+ if <code>providerclass</code> is not set.
- <em>since Ant 1.9.14</em>.</td>
- <td valign="top" align="center">No</td>
++ <em>since Ant 1.10.6</em>.</td>
++ <td>No</td>
+ </tr>
</table>
<h3>Parameters as nested elements</h3>
-<table border="1" cellpadding="2" cellspacing="0">
+<table class="attr">
<tr>
- <td valign="top"><b>Attribute</b></td>
- <td valign="top"><b>Description</b></td>
- <td align="center" valign="top"><b>Required</b></td>
+ <th scope="col">Attribute</th>
+ <th scope="col">Description</th>
+ <th scope="col">Required</th>
</tr>
<tr>
- <td valign="top">path</td>
- <td valign="top">path of JAR files to verify. <em>since Ant 1.7</em></td>
- <td valign="top" align="center">No</td>
+ <td>path</td>
+ <td>path of JAR files to verify. <em>since Ant 1.7</em></td>
+ <td>No</td>
</tr>
<tr>
- <td valign="top">fileset</td>
- <td valign="top">fileset of JAR files to verify. </td>
- <td valign="top" align="center">No</td>
+ <td>fileset</td>
+ <td>fileset of JAR files to verify.</td>
+ <td>No</td>
</tr>
<tr>
- <td valign="top">sysproperty</td>
- <td valign="top">JVM system properties, with the syntax of Ant
- <a href="exec.html#env">environment variables</a> </td>
- <td valign="top" align="center">No, and only one can be supplied</td>
+ <td>sysproperty</td>
+ <td>JVM system properties, with the syntax of Ant <a href="exec.html#env">environment
+ variables</a></td>
+ <td>No, and only one can be supplied</td>
</tr>
+ <tr>
- <td valign="top">arg</td>
- <td valign="top">Use this to specify a <code>keytool</code>
++ <td>arg</td>
++ <td>Use this to specify a <kbd>keytool</kbd>
+ <a href="../using.html#arg">command line argument</a> not
+ explicitly supported via an attribute.
- <em>since Ant 1.9.14</em>.</td>
- <td valign="top" align="center">No</td>
++ <em>since Ant 1.10.6</em>.</td>
++ <td>No</td>
+ </tr>
</table>
-
<h3>Examples</h3>
- <blockquote><pre>
-<verifyjar jar="${dist}/lib/ant.jar"
-alias="apache-group" storepass="secret"/>
-</pre></blockquote>
-<p>
- verifies the ant.jar with alias "apache-group" accessing the
- keystore and private key via "secret" password.
-</p>
-
+<p>Verify the <samp>ant.jar</samp> with alias <q>apache-group</q> accessing the keystore and private
+key via <q>secret</q> password.</p>
+<pre>
+<verifyjar jar="${dist}/lib/ant.jar"
+ alias="apache-group" storepass="secret"/></pre>
</body>
</html>
http://git-wip-us.apache.org/repos/asf/ant/blob/b99b6fa5/src/main/org/apache/tools/ant/taskdefs/AbstractJarSignerTask.java
----------------------------------------------------------------------
diff --cc src/main/org/apache/tools/ant/taskdefs/AbstractJarSignerTask.java
index 2fadd12,b811797..fa2741f
--- a/src/main/org/apache/tools/ant/taskdefs/AbstractJarSignerTask.java
+++ b/src/main/org/apache/tools/ant/taskdefs/AbstractJarSignerTask.java
@@@ -1,4 -1,4 +1,4 @@@
--/*
++g/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
@@@ -117,6 -120,15 +120,15 @@@ public abstract class AbstractJarSigner
private String executable;
/**
+ * Values for the providerName, providerClass, and providerArg options.
+ *
- * @since Ant 1.9.14
++ * @since Ant 1.10.6
+ */
+ private String providerName, providerClass, providerArg;
+
+ private List<Commandline.Argument> additionalArgs = new ArrayList();
+
+ /**
* Set the maximum memory to be used by the jarsigner process
*
* @param max a string indicating the maximum memory according to the JVM
@@@ -231,6 -243,49 +243,49 @@@
}
/**
+ * Sets the value for the -providerName command line argument.
+ *
+ * @param providerName the value for the -providerName command line argument
+ *
- * @since Ant 1.9.14
++ * @since Ant 1.10.6
+ */
+ public void setProviderName(String providerName) {
+ this.providerName = providerName;
+ }
+
+ /**
+ * Sets the value for the -providerClass command line argument.
+ *
+ * @param providerClass the value for the -providerClass command line argument
+ *
- * @since Ant 1.9.14
++ * @since Ant 1.10.6
+ */
+ public void setProviderClass(String providerClass) {
+ this.providerClass = providerClass;
+ }
+
+ /**
+ * Sets the value for the -providerArg command line argument.
+ *
+ * @param providerArg the value for the -providerArg command line argument
+ *
- * @since Ant 1.9.14
++ * @since Ant 1.10.6
+ */
+ public void setProviderArg(String providerArg) {
+ this.providerArg = providerArg;
+ }
+
+ /**
+ * Adds a nested <arg> element that can be used to specify
+ * command line arguments not supported via specific attributes.
+ *
- * @since Ant 1.9.14
++ * @since Ant 1.10.6
+ */
+ public void addArg(Commandline.Argument arg) {
+ additionalArgs.add(arg);
+ }
+
+ /**
* init processing logic; this is retained through our execution(s)
*/
protected void beginExecution() {
http://git-wip-us.apache.org/repos/asf/ant/blob/b99b6fa5/src/main/org/apache/tools/ant/types/Commandline.java
----------------------------------------------------------------------
diff --cc src/main/org/apache/tools/ant/types/Commandline.java
index 4653c77,77d953b..a390990
--- a/src/main/org/apache/tools/ant/types/Commandline.java
+++ b/src/main/org/apache/tools/ant/types/Commandline.java
@@@ -177,6 -181,17 +177,17 @@@ public class Commandline implements Clo
public void setSuffix(String suffix) {
this.suffix = suffix != null ? suffix : "";
}
+
+ /**
+ * Copies settings from a different argument.
+ *
- * @since Ant 1.9.14
++ * @since Ant 1.10.6
+ */
+ public void copyFrom(Argument other) {
+ this.parts = other.parts;
+ this.prefix = other.prefix;
+ this.suffix = other.suffix;
+ }
/**
* Return the constituent parts of this Argument.