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:
   pathConvert.java, os.java  - 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  ([EMAIL PROTECTED])
(801)861-5322
Novell, Inc., the leading provider of Net services software.

>>> [EMAIL PROTECTED] 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?

-steve


Reply via email to