bodewig 2005/01/13 01:05:35 Modified: . WHATSNEW src/main/org/apache/tools/ant/types CommandlineJava.java Log: Try to harmonize bootclasspath and build.sysclasspath a bit more, there are still some more tasks to handle Revision Changes Path 1.710 +5 -0 ant/WHATSNEW Index: WHATSNEW =================================================================== RCS file: /home/cvs/ant/WHATSNEW,v retrieving revision 1.709 retrieving revision 1.710 diff -u -r1.709 -r1.710 --- WHATSNEW 11 Jan 2005 18:30:34 -0000 1.709 +++ WHATSNEW 13 Jan 2005 09:05:35 -0000 1.710 @@ -10,6 +10,11 @@ to upgrade to a newer version of log4j. Bugzilla Report 31951. +* build.sysclasspath now also affects the bootclasspath handling of + spawned Java VMs. If you set build.sysclasspath to anything other + than "ignore" (or leave it unset, since "ignore" is the default when + it comes to bootclasspath handling), then the bootclasspath of the + VM running Ant will be added to the bootclasspath you've specified. Fixed bugs: ----------- 1.62 +25 -32 ant/src/main/org/apache/tools/ant/types/CommandlineJava.java Index: CommandlineJava.java =================================================================== RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/types/CommandlineJava.java,v retrieving revision 1.61 retrieving revision 1.62 diff -u -r1.61 -r1.62 --- CommandlineJava.java 11 Jan 2005 14:05:01 -0000 1.61 +++ CommandlineJava.java 13 Jan 2005 09:05:35 -0000 1.62 @@ -386,13 +386,11 @@ } //boot classpath - if (haveBootclasspath(true)) { - listIterator.add("-Xbootclasspath:" + bootclasspath.toString()); - } else if (cloneBootclasspath()) { - listIterator.add("-Xbootclasspath:" - + Path.systemBootClasspath.toString()); + Path bcp = calculateBootclasspath(true); + if (bcp.size() > 0) { + listIterator.add("-Xbootclasspath:" + bcp.toString()); } - + //main classpath if (haveClasspath()) { listIterator.add("-classpath"); @@ -493,7 +491,7 @@ size += 2; } // bootclasspath is "-Xbootclasspath:<classpath>" -> 1 arg - if (haveBootclasspath(true) || cloneBootclasspath()) { + if (calculateBootclasspath(true).size() > 0) { size++; } // jar execution requires an additional -jar option @@ -622,37 +620,32 @@ * @since Ant 1.6 */ protected boolean haveBootclasspath(boolean log) { - if (bootclasspath != null - && bootclasspath.toString().trim().length() > 0) { - - if (!bootclasspath.toString() - .equals(bootclasspath.concatSystemClasspath("ignore") - .toString())) { - if (log) { - bootclasspath.log("Ignoring bootclasspath as " - + "build.sysclasspath has been set."); - } - } else if (vmVersion.startsWith("1.1")) { - if (log) { - bootclasspath.log("Ignoring bootclasspath as " - + "the target VM doesn't support it."); - } - } else { - return true; - } - } - return false; + return calculateBootclasspath(log).size() > 0; } /** - * Should a bootclasspath argument be created to clone the current - * VM settings? + * Calculate the bootclasspath based on the bootclasspath + * specified, the build.sysclasspath and build.clonevm magic + * properties as well as the cloneVm attribute. * * @since Ant 1.7 */ - private boolean cloneBootclasspath() { - return isCloneVm() && !vmVersion.startsWith("1.1") - && Path.systemBootClasspath.size() > 0; + private Path calculateBootclasspath(boolean log) { + if (vmVersion.startsWith("1.1")) { + if (bootclasspath != null && log) { + bootclasspath.log("Ignoring bootclasspath as " + + "the target VM doesn't support it."); + } + } else { + if (bootclasspath != null) { + return bootclasspath.concatSystemBootClasspath(isCloneVm() + ? "last" + : "ignore"); + } else if (isCloneVm()) { + return Path.systemBootClasspath; + } + } + return new Path(null); } /**
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]