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 2008/11/06 11:34:17 UTC
svn commit: r711835 - in /ant/core/trunk/src/main/org/apache/tools/ant:
types/resources/Union.java util/FileUtils.java
Author: bodewig
Date: Thu Nov 6 02:34:11 2008
New Revision: 711835
URL: http://svn.apache.org/viewvc?rev=711835&view=rev
Log:
Take advantage of Java 1.4
Modified:
ant/core/trunk/src/main/org/apache/tools/ant/types/resources/Union.java
ant/core/trunk/src/main/org/apache/tools/ant/util/FileUtils.java
Modified: ant/core/trunk/src/main/org/apache/tools/ant/types/resources/Union.java
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/types/resources/Union.java?rev=711835&r1=711834&r2=711835&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/types/resources/Union.java (original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/types/resources/Union.java Thu Nov 6 02:34:11 2008
@@ -17,13 +17,11 @@
*/
package org.apache.tools.ant.types.resources;
-import java.util.List;
-import java.util.Iterator;
-import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
+import java.util.Iterator;
+import java.util.LinkedHashSet;
+import java.util.List;
import org.apache.tools.ant.types.Resource;
import org.apache.tools.ant.types.ResourceCollection;
@@ -101,23 +99,17 @@
if (rc.isEmpty()) {
return Collections.EMPTY_LIST;
}
- //preserve order-encountered using a list; enforce set logic manually:
- // (LinkedHashSet better, but JDK 1.4+)
- ArrayList union = new ArrayList(rc.size() * 2);
- // Use a set as list.contains() can be expensive for lots of resources
- Set set = new HashSet(rc.size() * 2);
+ LinkedHashSet set = new LinkedHashSet(rc.size() * 2);
for (Iterator rcIter = rc.iterator(); rcIter.hasNext();) {
for (Iterator r = nextRC(rcIter).iterator(); r.hasNext();) {
Object o = r.next();
if (asString) {
o = o.toString();
}
- if (set.add(o)) {
- union.add(o);
- }
+ set.add(o);
}
}
- return union;
+ return set;
}
private static ResourceCollection nextRC(Iterator i) {
Modified: ant/core/trunk/src/main/org/apache/tools/ant/util/FileUtils.java
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/util/FileUtils.java?rev=711835&r1=711834&r2=711835&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/util/FileUtils.java (original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/util/FileUtils.java Thu Nov 6 02:34:11 2008
@@ -28,6 +28,7 @@
import java.io.Writer;
import java.net.MalformedURLException;
import java.net.URL;
+import java.nio.channels.Channel;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Arrays;
@@ -1116,46 +1117,7 @@
* @since Ant 1.6
*/
public String toURI(String path) {
- // #8031: first try Java 1.4.
- Class uriClazz = null;
- try {
- uriClazz = Class.forName("java.net.URI");
- } catch (ClassNotFoundException e) {
- // OK, Java 1.3.
- }
- if (uriClazz != null) {
- try {
- File f = new File(path).getAbsoluteFile();
- java.lang.reflect.Method toURIMethod = File.class.getMethod("toURI", new Class[0]);
- Object uriObj = toURIMethod.invoke(f, new Object[] {});
- java.lang.reflect.Method toASCIIStringMethod
- = uriClazz.getMethod("toASCIIString", new Class[0]);
- return (String) toASCIIStringMethod.invoke(uriObj, new Object[] {});
- } catch (Exception e) {
- // Reflection problems? Should not happen, debug.
- e.printStackTrace();
- }
- }
- boolean isDir = new File(path).isDirectory();
-
- StringBuffer sb = new StringBuffer("file:");
-
- path = resolveFile(null, path).getPath();
- sb.append("//");
- // add an extra slash for filesystems with drive-specifiers
- if (!path.startsWith(File.separator)) {
- sb.append("/");
- }
- path = path.replace('\\', '/');
- try {
- sb.append(Locator.encodeURI(path));
- } catch (UnsupportedEncodingException exc) {
- throw new BuildException(exc);
- }
- if (isDir && !path.endsWith("/")) {
- sb.append('/');
- }
- return sb.toString();
+ return new File(path).getAbsoluteFile().toURI().toASCIIString();
}
/**
@@ -1429,6 +1391,23 @@
}
/**
+ * Close a Channel without throwing any exception if something went wrong.
+ * Do not attempt to close it if the argument is null.
+ *
+ * @param device channel, can be null.
+ * @since Ant 1.8.0
+ */
+ public static void close(Channel device) {
+ if (null != device) {
+ try {
+ device.close();
+ } catch (IOException e) {
+ //ignore
+ }
+ }
+ }
+
+ /**
* Delete the file with {@link File#delete()} if the argument is not null.
* Do nothing on a null argument.
* @param file file to delete.