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 2009/06/26 14:41:51 UTC

svn commit: r788677 - in /ant/core/trunk: ./ docs/manual/ docs/manual/CoreTasks/ docs/manual/OptionalTasks/ src/main/org/apache/tools/ant/types/ src/tests/junit/org/apache/tools/ant/types/

Author: bodewig
Date: Fri Jun 26 12:41:50 2009
New Revision: 788677

URL: http://svn.apache.org/viewvc?rev=788677&view=rev
Log:
prefix and suffix attributes for command line arguments, PR 47365, submitted by Martin von Gagern

Modified:
    ant/core/trunk/WHATSNEW
    ant/core/trunk/docs/manual/CoreTasks/javac.html
    ant/core/trunk/docs/manual/CoreTasks/rmic.html
    ant/core/trunk/docs/manual/OptionalTasks/javah.html
    ant/core/trunk/docs/manual/using.html
    ant/core/trunk/src/main/org/apache/tools/ant/types/Commandline.java
    ant/core/trunk/src/tests/junit/org/apache/tools/ant/types/CommandlineTest.java

Modified: ant/core/trunk/WHATSNEW
URL: http://svn.apache.org/viewvc/ant/core/trunk/WHATSNEW?rev=788677&r1=788676&r2=788677&view=diff
==============================================================================
--- ant/core/trunk/WHATSNEW (original)
+++ ant/core/trunk/WHATSNEW Fri Jun 26 12:41:50 2009
@@ -737,6 +737,10 @@
  * <input ...><handler type="secure" /></input> now uses previously undocumented
    SecureInputHandler shipped with Ant 1.7.1.
 
+ * Command line arguments for <exec> and similar tasks can now have
+   optional prefix and suffix attributes.
+   Bugzilla Report 47365
+
 Changes from Ant 1.7.0 TO Ant 1.7.1
 =============================================
 

Modified: ant/core/trunk/docs/manual/CoreTasks/javac.html
URL: http://svn.apache.org/viewvc/ant/core/trunk/docs/manual/CoreTasks/javac.html?rev=788677&r1=788676&r2=788677&view=diff
==============================================================================
--- ant/core/trunk/docs/manual/CoreTasks/javac.html (original)
+++ ant/core/trunk/docs/manual/CoreTasks/javac.html Fri Jun 26 12:41:50 2009
@@ -485,6 +485,17 @@
     <td valign="top">path</td>
   </tr>
   <tr>
+    <td valign="top">prefix</td>
+    <td align="center" rowspan="2">See
+    <a href="../using.html#arg">Command-line Arguments</a>.
+    <em>Since Ant 1.8.</em></td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">suffix</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
     <td valign="top">compiler</td>
     <td>Only pass the specified argument if the chosen
       compiler implementation matches the value of this attribute.

Modified: ant/core/trunk/docs/manual/CoreTasks/rmic.html
URL: http://svn.apache.org/viewvc/ant/core/trunk/docs/manual/CoreTasks/rmic.html?rev=788677&r1=788676&r2=788677&view=diff
==============================================================================
--- ant/core/trunk/docs/manual/CoreTasks/rmic.html (original)
+++ ant/core/trunk/docs/manual/CoreTasks/rmic.html Fri Jun 26 12:41:50 2009
@@ -245,6 +245,17 @@
     <td valign="top">path</td>
   </tr>
   <tr>
+    <td valign="top">prefix</td>
+    <td align="center" rowspan="2">See
+    <a href="../using.html#arg">Command-line Arguments</a>.
+    <em>Since Ant 1.8.</em></td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">suffix</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
     <td valign="top">compiler</td>
     <td>Only pass the specified argument if the chosen
       compiler implementation matches the value of this attribute.

Modified: ant/core/trunk/docs/manual/OptionalTasks/javah.html
URL: http://svn.apache.org/viewvc/ant/core/trunk/docs/manual/OptionalTasks/javah.html?rev=788677&r1=788676&r2=788677&view=diff
==============================================================================
--- ant/core/trunk/docs/manual/OptionalTasks/javah.html (original)
+++ ant/core/trunk/docs/manual/OptionalTasks/javah.html Fri Jun 26 12:41:50 2009
@@ -144,6 +144,17 @@
     <td valign="top">path</td>
   </tr>
   <tr>
+    <td valign="top">prefix</td>
+    <td align="center" rowspan="2">See
+    <a href="../using.html#arg">Command-line Arguments</a>.
+    <em>Since Ant 1.8.</em></td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">suffix</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
     <td valign="top">implementation</td>
     <td>Only pass the specified argument if the chosen compiler
     implementation matches the value of this attribute.  Legal values

Modified: ant/core/trunk/docs/manual/using.html
URL: http://svn.apache.org/viewvc/ant/core/trunk/docs/manual/using.html?rev=788677&r1=788676&r2=788677&view=diff
==============================================================================
--- ant/core/trunk/docs/manual/using.html (original)
+++ ant/core/trunk/docs/manual/using.html Fri Jun 26 12:41:50 2009
@@ -580,6 +580,20 @@
     <td valign="top">line</td>
     <td valign="top">a space-delimited list of command-line arguments.</td>
   </tr>
+  <tr>
+    <td valign="top">prefix</td>
+    <td valign="top">A fixed string to be placed in front of the
+      argument. In the case of a line broken into parts, it will be
+      placed in front of every part. <em>Since Ant 1.8.</em></td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">suffix</td>
+    <td valign="top">A fixed string to be placed immediately after the
+      argument. In the case of a line broken into parts, it will be
+      placed after every part. <em>Since Ant 1.8.</em></td>
+    <td valign="top" align="center">No</td>
+  </tr>
 </table>
 
 <p>It is highly recommended to avoid the <code>line</code> version

Modified: ant/core/trunk/src/main/org/apache/tools/ant/types/Commandline.java
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/types/Commandline.java?rev=788677&r1=788676&r2=788677&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/types/Commandline.java (original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/types/Commandline.java Fri Jun 26 12:41:50 2009
@@ -103,6 +103,9 @@
 
         private String[] parts;
 
+        private String prefix = "";
+        private String suffix = "";
+
         /**
          * Set a single commandline argument.
          *
@@ -159,11 +162,41 @@
         }
 
         /**
+         * Set the prefix to be placed in front of every part of the
+         * argument.
+         *
+         * @param prefix fixed prefix string.
+         * @since Ant 1.8.0
+         */
+        public void setPrefix(String prefix) {
+            this.prefix = prefix != null ? prefix : "";
+        }
+
+        /**
+         * Set the suffix to be placed at the end of every part of the
+         * argument.
+         *
+         * @param suffix fixed suffix string.
+         * @since Ant 1.8.0
+         */
+        public void setSuffix(String suffix) {
+            this.suffix = suffix != null ? suffix : "";
+        }
+
+        /**
          * Return the constituent parts of this Argument.
          * @return an array of strings.
          */
         public String[] getParts() {
-            return parts;
+            if (parts == null || parts.length == 0
+                || (prefix.length() == 0 && suffix.length() == 0)) {
+                return parts;
+            }
+            String[] fullParts = new String[parts.length];
+            for (int i = 0; i < fullParts.length; ++i) {
+                fullParts[i] = prefix + parts[i] + suffix;
+            }
+            return fullParts;
         }
     }
 

Modified: ant/core/trunk/src/tests/junit/org/apache/tools/ant/types/CommandlineTest.java
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/tests/junit/org/apache/tools/ant/types/CommandlineTest.java?rev=788677&r1=788676&r2=788677&view=diff
==============================================================================
--- ant/core/trunk/src/tests/junit/org/apache/tools/ant/types/CommandlineTest.java (original)
+++ ant/core/trunk/src/tests/junit/org/apache/tools/ant/types/CommandlineTest.java Fri Jun 26 12:41:50 2009
@@ -130,7 +130,7 @@
         assertEquals("1 \'2\"3\'", Commandline.toString(new String[] {"1", "2\"3"}));
     }
 
-    public void testAwkCommand(){
+    public void testAwkCommand() {
         Commandline c = new Commandline();
         c.setExecutable("awk");
         c.createArgument().setValue("'NR == 2 { print $NF }'");
@@ -140,4 +140,24 @@
         assertEquals("awk", s[0]);
         assertEquals("'NR == 2 { print $NF }'", s[1]);
     }
+
+    public void testPrefix() {
+        Commandline c = new Commandline();
+        Commandline.Argument a = c.createArgument();
+        a.setValue("foo");
+        a.setPrefix("-f=");
+        String[] s = c.getCommandline();
+        assertEquals(1, s.length);
+        assertEquals("-f=foo", s[0]);
+    }
+
+    public void testSuffix() {
+        Commandline c = new Commandline();
+        Commandline.Argument a = c.createArgument();
+        a.setValue("foo");
+        a.setSuffix(",1");
+        String[] s = c.getCommandline();
+        assertEquals(1, s.length);
+        assertEquals("foo,1", s[0]);
+    }
 }