@@ -24,6 +24,10 @@ Other changes: | |||
* the <modified> selector has a new built-in algorithm 'lastmodified' | |||
which computes a value based upon the lastmodified time of the file. | |||
* signjar and verifyjar now support the -providerName, -providerClass | |||
and -providerArg command line options of keytool via new attributes. | |||
Bugzilla Report 65234 | |||
Changes from Ant 1.9.12 TO Ant 1.9.13 | |||
===================================== | |||
@@ -186,6 +186,29 @@ block</td> | |||
<td valign="top">name of digest algorithm</td> | |||
<td valign="top" align="center">No</td> | |||
</tr> | |||
<tr> | |||
<td valign="top">providername</td> | |||
<td valign="top">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> | |||
</tr> | |||
<tr> | |||
<td valign="top">providerclass</td> | |||
<td valign="top">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> | |||
</tr> | |||
<tr> | |||
<td valign="top">providerarg</td> | |||
<td valign="top">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> | |||
</tr> | |||
</table> | |||
<h3>Parameters as nested elements</h3> | |||
<table border="1" cellpadding="2" cellspacing="0"> | |||
@@ -105,6 +105,29 @@ supported | |||
<em>since Ant 1.8.0</em>.</td> | |||
<td align="center" valign="top">No</td> | |||
</tr> | |||
<tr> | |||
<td valign="top">providername</td> | |||
<td valign="top">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> | |||
</tr> | |||
<tr> | |||
<td valign="top">providerclass</td> | |||
<td valign="top">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> | |||
</tr> | |||
<tr> | |||
<td valign="top">providerarg</td> | |||
<td valign="top">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> | |||
</tr> | |||
</table> | |||
<h3>Parameters as nested elements</h3> | |||
<table border="1" cellpadding="2" cellspacing="0"> | |||
@@ -116,6 +116,13 @@ public abstract class AbstractJarSignerTask extends Task { | |||
*/ | |||
private String executable; | |||
/** | |||
* Values for the providerName, providerClass, and providerArg options. | |||
* | |||
* @since Ant 1.9.14 | |||
*/ | |||
private String providerName, providerClass, providerArg; | |||
/** | |||
* Set the maximum memory to be used by the jarsigner process | |||
* | |||
@@ -230,6 +237,39 @@ public abstract class AbstractJarSignerTask extends Task { | |||
return path.createPath(); | |||
} | |||
/** | |||
* Sets the value for the -providerName command line argument. | |||
* | |||
* @param providerName the value for the -providerName command line argument | |||
* | |||
* @since Ant 1.9.14 | |||
*/ | |||
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 | |||
*/ | |||
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 | |||
*/ | |||
public void setProviderArg(String providerArg) { | |||
this.providerArg = providerArg; | |||
} | |||
/** | |||
* init processing logic; this is retained through our execution(s) | |||
*/ | |||
@@ -347,6 +387,20 @@ public abstract class AbstractJarSignerTask extends Task { | |||
addValue(cmd, "-storetype"); | |||
addValue(cmd, storetype); | |||
} | |||
if (null != providerName) { | |||
addValue(cmd, "-providerName"); | |||
addValue(cmd, providerName); | |||
} | |||
if (null != providerClass) { | |||
addValue(cmd, "-providerClass"); | |||
addValue(cmd, providerClass); | |||
if (null != providerArg) { | |||
addValue(cmd, "-providerArg"); | |||
addValue(cmd, providerArg); | |||
} | |||
} else if (null != providerArg) { | |||
log("Ignoring providerArg as providerClass has not been set"); | |||
} | |||
} | |||
/** | |||