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