From a8d83a45281081252613a1d0028f05ac5d546474 Mon Sep 17 00:00:00 2001 From: Stefan Bodewig Date: Mon, 7 Jan 2002 15:41:10 +0000 Subject: [PATCH] Don't lie about the CLASSPATH being used - build.sysclasspath changes everything. git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@270617 13f79535-47bb-0310-9956-ffa450edef68 --- .../org/apache/tools/ant/AntClassLoader.java | 18 ++++++++++++++++++ .../ant/taskdefs/optional/junit/JUnitTask.java | 5 +++-- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/src/main/org/apache/tools/ant/AntClassLoader.java b/src/main/org/apache/tools/ant/AntClassLoader.java index bd4da260b..3379f98e7 100644 --- a/src/main/org/apache/tools/ant/AntClassLoader.java +++ b/src/main/org/apache/tools/ant/AntClassLoader.java @@ -398,6 +398,24 @@ public class AntClassLoader extends ClassLoader implements BuildListener { pathComponents.addElement(pathComponent); } + /** + * The CLASSPATH this classloader will consult. + */ + public String getClasspath() { + StringBuffer sb = new StringBuffer(); + boolean firstPass = true; + Enumeration enum = pathComponents.elements(); + while (enum.hasMoreElements()) { + if (!firstPass) { + sb.append(System.getProperty("path.separator")); + } else { + firstPass = false; + } + sb.append(((File) enum.nextElement()).getAbsolutePath()); + } + return sb.toString(); + } + /** * Set this classloader to run in isolated mode. In isolated mode, classes not * found on the given classpath will not be referred to the base class loader diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java b/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java index 5277ca98b..b99b8da31 100644 --- a/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java +++ b/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java @@ -564,9 +564,10 @@ public class JUnitTask extends Task { AntClassLoader cl = null; Path classpath = commandline.getClasspath(); if (classpath != null) { - log("Using CLASSPATH " + classpath, Project.MSG_VERBOSE); - cl = new AntClassLoader(null, project, classpath, false); + log("Using CLASSPATH " + cl.getClasspath(), + Project.MSG_VERBOSE); + // make sure the test will be accepted as a TestCase cl.addSystemPackageRoot("junit"); // will cause trouble in JDK 1.1 if omitted