ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jeff Tulley" <>
Subject Re: proposed submissions for Ant to function on NetWare
Date Thu, 11 Oct 2001 17:13:23 GMT
I'll answer this in a few emails, so that it does not get too long, since I have quite a few
things to submit and all of your questions to answer.

The situation of Java on NetWare:  We started out with a JVM 1.1.7b, which was backported
to NetWare 4.x, and was what shipped with NetWare 5.0 and 5.1.  Early this year we released
JVM 1.2.2, and are releasing JVM 1.3 with NetWare 6 next week (Monday, I believe).  Now, our
JVM team is hard at work with JVM 1.4, don't know when that will be released though.  Unfortunately
on NetWare we can only run one JVM at a time, due (among other things) to the flat name space
of NetWare, and some other low-level OS issues.  So, what we have works really well, you just
only get one JVM at any given time.

Our JVM IS a Sun-based one, and I think that will be true of 1.4 also.  

All of the Ant code I tested was on NetWare 6, so it was on JVM 1.3.0

My changes weren't really too extremely huge, since Ant is for the most part platform-independent
(except for the parts that just cannot be).

The typical code I had to change usually looked like this: (from ant.util.FileUtils)

        if (filename.length() >= 2 &&
            Character.isLetter(filename.charAt(0)) &&
            filename.charAt(1) == ':') {
            return normalize(filename);

This is looking for a path of the form <drive letter>:    On Netware, we have volume
names that are much like drive letters, but they can be up to 40 or so characters long.  So,
I had to detect if the OS was NetWare, and then look for a ":" to make sure that it was a
valid path and move on with whatever the code was doing.  FileUtils was the main function
I messed with.  Specifically, the normalize function is the main one where I have changed
code that could affect other platforms.

The other types of things I messed with:,  - allowing the targetOS (or OS Family) to be set to NetWare
       - in PathConvert, I piggy-backed off of Windows support, since the same assumptions
could be 
         made, though targetOS will be allowed to be set to "NetWare".

in Exec, which you specifically asked about, I only added in a clause parallel to the statement,

if (myos.toLowerCase().indexOf("windows") >= 0) {

I added:

} else if (myos.toLowerCase().indexOf("netware") >= 0) {
    String ant = project.getProperty("ant.home");
    if (ant == null) throw new BuildException("Property 'ant.home' not found", location);
    String antRun = project.resolveFile(ant + "/bin/antRun.ncf").toString();
    command = antRun + " " + dir + " " + command;
} else ......

Actually, given that there is no antRun.ncf yet, I'd better at least provide that much for
the exec task function on NetWare.

Emails with "diff -u" files will follow...

Jeff Tulley  (
Novell, Inc., the leading provider of Net services software.

>>> 10/10/01 6:51:56 PM >>>
However, you have gone beyond the usual submission of a new task or a few
changes. I hope everyone who uses Java on Netware is suitably grateful (as
an aside, what is the situation of Java on Netware - you have your own port
of the Sun code, right? Which version?)

I think the best thing to do is, after reviewing the guidelines, post the
changes to the list. People are usually more cautious about making changes
into the core functionality, but to support a whole new platform it will
have to be done. The key issue will be verifying that no other
platform/build breaks with the changes made.

What are the big changes you had to make? You mentioned file system
differences What were they? And what about the <exec> task?


View raw message