You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ant.apache.org by mb...@apache.org on 2005/03/10 22:16:08 UTC
cvs commit: ant/src/main/org/apache/tools/ant/util CollectionUtils.java
mbenson 2005/03/10 13:16:08
Modified: . WHATSNEW
src/main/org/apache/tools/ant/taskdefs/optional
EchoProperties.java
src/main/org/apache/tools/ant/util CollectionUtils.java
Log:
Sort echoproperties output in text mode as well as XML.
PR: 18976
Revision Changes Path
1.770 +1 -1 ant/WHATSNEW
Index: WHATSNEW
===================================================================
RCS file: /home/cvs/ant/WHATSNEW,v
retrieving revision 1.769
retrieving revision 1.770
diff -u -r1.769 -r1.770
--- WHATSNEW 10 Mar 2005 16:13:54 -0000 1.769
+++ WHATSNEW 10 Mar 2005 21:16:07 -0000 1.770
@@ -67,7 +67,7 @@
--------------
* <echoproperties> now (alphanumerically) sorts the property list
- before echoing, when you request XML output (format="xml").
+ before echoing. Bugzilla report 18976.
* A new base class DispatchTask has been added to facilitate elegant
creation of tasks with multiple actions.
1.30 +11 -7 ant/src/main/org/apache/tools/ant/taskdefs/optional/EchoProperties.java
Index: EchoProperties.java
===================================================================
RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/optional/EchoProperties.java,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -r1.29 -r1.30
--- EchoProperties.java 9 Mar 2005 23:38:22 -0000 1.29
+++ EchoProperties.java 10 Mar 2005 21:16:08 -0000 1.30
@@ -325,15 +325,19 @@
*@exception IOException trouble
*/
protected void saveProperties(Hashtable allProps, OutputStream os)
- throws IOException, BuildException {
- Properties props = new Properties();
- Enumeration e = allProps.keys();
- while (e.hasMoreElements()) {
- String name = e.nextElement().toString();
+ throws IOException, BuildException {
+ final List keyList = new ArrayList(allProps.keySet());
+ Collections.sort(keyList);
+ Properties props = new Properties() {
+ public Enumeration keys() {
+ return CollectionUtils.asEnumeration(keyList.iterator());
+ }
+ };
+ for (int i = 0; i < keyList.size(); i++) {
+ String name = keyList.get(i).toString();
String value = allProps.get(name).toString();
- props.put(name, value);
+ props.setProperty(name, value);
}
-
if ("text".equals(format)) {
jdkSaveProperties(props, os, "Ant properties");
} else if ("xml".equals(format)) {
1.17 +37 -1 ant/src/main/org/apache/tools/ant/util/CollectionUtils.java
Index: CollectionUtils.java
===================================================================
RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/util/CollectionUtils.java,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- CollectionUtils.java 24 Jan 2005 18:13:20 -0000 1.16
+++ CollectionUtils.java 10 Mar 2005 21:16:08 -0000 1.17
@@ -16,10 +16,11 @@
*/
package org.apache.tools.ant.util;
+import java.util.Vector;
+import java.util.Iterator;
import java.util.Dictionary;
import java.util.Enumeration;
import java.util.NoSuchElementException;
-import java.util.Vector;
/**
* A set of helper methods related to collection manipulation.
@@ -139,6 +140,41 @@
return new CompoundEnumeration(e1, e2);
}
+ /**
+ * Adapt the specified Iterator to the Enumeration interface.
+ * @param iter the Iterator to adapt.
+ * @return an Enumeration.
+ */
+ public static Enumeration asEnumeration(final Iterator iter) {
+ return new Enumeration() {
+ public boolean hasMoreElements() {
+ return iter.hasNext();
+ }
+ public Object nextElement() {
+ return iter.next();
+ }
+ };
+ }
+
+ /**
+ * Adapt the specified Enumeration to the Iterator interface.
+ * @param enum the Enumeration to adapt.
+ * @return an Iterator.
+ */
+ public static Iterator asIterator(final Enumeration enum) {
+ return new Iterator() {
+ public boolean hasNext() {
+ return enum.hasMoreElements();
+ }
+ public Object next() {
+ return enum.nextElement();
+ }
+ public void remove() {
+ throw new UnsupportedOperationException();
+ }
+ };
+ }
+
private static final class CompoundEnumeration implements Enumeration {
private final Enumeration e1, e2;
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org