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:23 UTC

[3/4] ant git commit: add nested to signjar and verifyjar

add nested <args> to signjar and verifyjar


Project: http://git-wip-us.apache.org/repos/asf/ant/repo
Commit: http://git-wip-us.apache.org/repos/asf/ant/commit/d100b900
Tree: http://git-wip-us.apache.org/repos/asf/ant/tree/d100b900
Diff: http://git-wip-us.apache.org/repos/asf/ant/diff/d100b900

Branch: refs/heads/master
Commit: d100b900324ad91f3de6e8c323720e1676bbb28d
Parents: a5796b5
Author: Stefan Bodewig <bo...@apache.org>
Authored: Fri Sep 28 18:23:25 2018 +0200
Committer: Stefan Bodewig <bo...@apache.org>
Committed: Fri Sep 28 18:23:25 2018 +0200

----------------------------------------------------------------------
 WHATSNEW                                        |  4 +++
 manual/Tasks/signjar.html                       | 10 ++++++-
 manual/Tasks/verifyjar.html                     | 10 ++++++-
 .../ant/taskdefs/AbstractJarSignerTask.java     | 28 ++++++++++++++++++++
 .../org/apache/tools/ant/types/Commandline.java | 11 ++++++++
 5 files changed, 61 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ant/blob/d100b900/WHATSNEW
----------------------------------------------------------------------
diff --git a/WHATSNEW b/WHATSNEW
index 6085274..6cd11da 100644
--- a/WHATSNEW
+++ b/WHATSNEW
@@ -28,6 +28,10 @@ Other changes:
    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
 =====================================
 

http://git-wip-us.apache.org/repos/asf/ant/blob/d100b900/manual/Tasks/signjar.html
----------------------------------------------------------------------
diff --git a/manual/Tasks/signjar.html b/manual/Tasks/signjar.html
index f6a7a37..88bdb43 100644
--- a/manual/Tasks/signjar.html
+++ b/manual/Tasks/signjar.html
@@ -238,7 +238,15 @@ block</td>
     <a href="exec.html#env">environment variables</a> </td>
     <td valign="top" align="center">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>
+    <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>
+  </tr>
+</table>
 
 
 <h3>Examples</h3>

http://git-wip-us.apache.org/repos/asf/ant/blob/d100b900/manual/Tasks/verifyjar.html
----------------------------------------------------------------------
diff --git a/manual/Tasks/verifyjar.html b/manual/Tasks/verifyjar.html
index bf442b7..b2df426 100644
--- a/manual/Tasks/verifyjar.html
+++ b/manual/Tasks/verifyjar.html
@@ -152,7 +152,15 @@ supported
     <a href="exec.html#env">environment variables</a> </td>
     <td valign="top" align="center">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>
+    <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>
+  </tr>
+</table>
 
 
 <h3>Examples</h3>

http://git-wip-us.apache.org/repos/asf/ant/blob/d100b900/src/main/org/apache/tools/ant/taskdefs/AbstractJarSignerTask.java
----------------------------------------------------------------------
diff --git a/src/main/org/apache/tools/ant/taskdefs/AbstractJarSignerTask.java b/src/main/org/apache/tools/ant/taskdefs/AbstractJarSignerTask.java
index b15d2bc..b811797 100644
--- a/src/main/org/apache/tools/ant/taskdefs/AbstractJarSignerTask.java
+++ b/src/main/org/apache/tools/ant/taskdefs/AbstractJarSignerTask.java
@@ -19,11 +19,14 @@
 package org.apache.tools.ant.taskdefs;
 
 import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
 import java.util.Vector;
 
 import org.apache.tools.ant.BuildException;
 import org.apache.tools.ant.Task;
 import org.apache.tools.ant.filters.LineContainsRegExp;
+import org.apache.tools.ant.types.Commandline;
 import org.apache.tools.ant.types.Environment;
 import org.apache.tools.ant.types.FileSet;
 import org.apache.tools.ant.types.Path;
@@ -123,6 +126,8 @@ public abstract class AbstractJarSignerTask extends Task {
      */
     private String providerName, providerClass, providerArg;
 
+    private List<Commandline.Argument> additionalArgs = new ArrayList();
+
     /**
      * Set the maximum memory to be used by the jarsigner process
      *
@@ -271,6 +276,16 @@ public abstract class AbstractJarSignerTask extends Task {
     }
 
     /**
+     * Adds a nested &lt;arg&gt; element that can be used to specify
+     * command line arguments not supported via specific attributes.
+     *
+     * @since Ant 1.9.14
+     */
+    public void addArg(Commandline.Argument arg) {
+        additionalArgs.add(arg);
+    }
+
+    /**
      * init processing logic; this is retained through our execution(s)
      */
     protected void beginExecution() {
@@ -351,6 +366,10 @@ public abstract class AbstractJarSignerTask extends Task {
         for (Environment.Variable variable : sysProperties.getVariablesVector()) {
             declareSysProperty(cmd, variable);
         }
+
+        for (Commandline.Argument arg : additionalArgs) {
+            addArgument(cmd, arg);
+        }
     }
 
     /**
@@ -473,4 +492,13 @@ public abstract class AbstractJarSignerTask extends Task {
     protected void addValue(final ExecTask cmd, String value) {
         cmd.createArg().setValue(value);
     }
+
+    /**
+     * add an argument to a command
+     * @param cmd command to manipulate
+     * @param arg argument to add
+     */
+    protected void addArgument(final ExecTask cmd, Commandline.Argument arg) {
+        cmd.createArg().copyFrom(arg);
+    }
 }

http://git-wip-us.apache.org/repos/asf/ant/blob/d100b900/src/main/org/apache/tools/ant/types/Commandline.java
----------------------------------------------------------------------
diff --git a/src/main/org/apache/tools/ant/types/Commandline.java b/src/main/org/apache/tools/ant/types/Commandline.java
index a1859ba..77d953b 100644
--- a/src/main/org/apache/tools/ant/types/Commandline.java
+++ b/src/main/org/apache/tools/ant/types/Commandline.java
@@ -183,6 +183,17 @@ public class Commandline implements Cloneable {
         }
 
         /**
+         * Copies settings from a different argument.
+         *
+         * @since Ant 1.9.14
+         */
+        public void copyFrom(Argument other) {
+            this.parts = other.parts;
+            this.prefix = other.prefix;
+            this.suffix = other.suffix;
+        }
+
+        /**
          * Return the constituent parts of this Argument.
          * @return an array of strings.
          */