Ok, I finally had some time to look at this.  Here is my feedback:

on NetWare the existing code only needed two small changes to work, in
both toURI and fromURI.  The change in toURI is one that I think is
necessary for all platforms anyway.

In toURI. there is the following code:

try {
   path = normalize(path).getAbsolutePath();
   sb.append("//");
   // add an extra slash for filesystems with drive-specifiers
   if (!path.startsWith("/")) {
      sb.append("/");
   }
} catch (BuildException e) {
     // relative path
}

Shouldn't the last if statement instead be the following?:

   if (!path.startsWith(File.separator)) {
      sb.append("/");
   }

With this one change, toURI seems to work well on NetWare.  I would
also add some tests to FileUtilsTest.java (diff file attached,
FileUtilsTestFromURIPatch.txt)

in fromURI, I think it is sufficient to look for a ":" anywhere in the
filename, instead of just at the second position.  An change from
uri.charAt(2) == ':' to uri.lastIndexOf(':') > -1  seems to work for on
Windows and NetWare.  I've attached diff files for Locator and
FileUtils

Hopefully my attachments are in a format that won't be stripped by the
mailing list, I can never remember what extension they need.

I'll look into the other test failures on NetWare as well, that didn't
seem to be related to this new Launcher and / or FileUtils changes.
(Available and SignJar both fail on NW currently).

Jeff Tulley  ([EMAIL PROTECTED])
(801)861-5322
Novell, Inc., The Leading Provider of Net Business Solutions
http://www.novell.com

>>> [EMAIL PROTECTED] 7/11/03 2:23:33 AM >>>
On Thu, 10 Jul 2003, Jeff Tulley <[EMAIL PROTECTED]> wrote:

> Looking at it, the fromURI is a method I should have considered and
> added some NetWare test cases for.

fromURI is rather new - compared to the other Netware related stuff
you've submitted.

> I'll work out some test cases, see if the previous code handled them
> and suggest changes if necessary.

Great.

Stefan

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED] 
For additional commands, e-mail: [EMAIL PROTECTED] 

Index: Locator.java
===================================================================
RCS file: 
/home/cvspublic/ant/src/main/org/apache/tools/ant/launch/Locator.java,v
retrieving revision 1.3
diff -u -r1.3 Locator.java
--- Locator.java        9 Jul 2003 13:11:15 -0000       1.3
+++ Locator.java        15 Jul 2003 19:17:31 -0000
@@ -134,7 +134,7 @@
 
         uri = uri.replace('/', File.separatorChar);
         if (File.pathSeparatorChar == ';' && uri.startsWith("\\") && 
uri.length() > 2
-            && Character.isLetter(uri.charAt(1)) && uri.charAt(2) == ':') {
+            && Character.isLetter(uri.charAt(1)) && uri.lastIndexOf(':') > -1) 
{
             uri = uri.substring(1);
         }
RCS file: 
/home/cvspublic/ant/src/main/org/apache/tools/ant/util/FileUtils.java,v
retrieving revision 1.48
diff -u -r1.48 FileUtils.java
--- FileUtils.java      9 Jul 2003 13:11:16 -0000       1.48
+++ FileUtils.java      15 Jul 2003 19:19:28 -0000
@@ -1219,7 +1219,7 @@
             path = normalize(path).getAbsolutePath();
             sb.append("//");
             // add an extra slash for filesystems with drive-specifiers
-            if (!path.startsWith("/")) {
+            if (!path.startsWith(File.separator)) {
                 sb.append("/");
             }

diff -u -r1.19 FileUtilsTest.java
--- FileUtilsTest.java  28 Jun 2003 14:18:40 -0000      1.19
+++ FileUtilsTest.java  15 Jul 2003 19:21:27 -0000
@@ -444,6 +444,9 @@
                 dosRoot = "c:/";
             }
         }
+        if (Os.isFamily("netware")) {
+            assertEquals("file:///SYS:/foo", fu.toURI("sys:\\foo"));
+        }
         assertEquals("file:///" + dosRoot + "foo", fu.toURI("/foo"));
         assertEquals("file:./foo",  fu.toURI("./foo"));
         assertEquals("file:///" + dosRoot + "foo", fu.toURI("\\foo"));
@@ -458,6 +461,9 @@
      * test fromUri
      */
     public void testFromURI() {
+        if (Os.isFamily("netware")) {
+            assertEqualsIgnoreDriveCase("SYS:\\foo", 
fu.fromURI("file:///sys:/foo"));
+        }
         if (Os.isFamily("dos")) {
             assertEqualsIgnoreDriveCase("C:\\foo", 
fu.fromURI("file:///c:/foo"));
         }



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to