Browse Source

give conext classloaders in <junit> another try, catch Xalan errors in

TraxLiaisonTest.


git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271796 13f79535-47bb-0310-9956-ffa450edef68
master
Stefan Bodewig 23 years ago
parent
commit
50d4e58dfd
5 changed files with 26 additions and 6 deletions
  1. +1
    -1
      build.xml
  2. +6
    -1
      src/main/org/apache/tools/ant/AntClassLoader.java
  3. +4
    -0
      src/main/org/apache/tools/ant/taskdefs/optional/TraXLiaison.java
  4. +2
    -2
      src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java
  5. +13
    -2
      src/testcases/org/apache/tools/ant/taskdefs/optional/TraXLiaisonTest.java

+ 1
- 1
build.xml View File

@@ -131,7 +131,7 @@
unless="jdk1.2+" /> unless="jdk1.2+" />
<!-- uses the context classloader --> <!-- uses the context classloader -->
<exclude name="${optional.package}/junit/JUnitClassLoaderTest.java" <exclude name="${optional.package}/junit/JUnitClassLoaderTest.java"
/>
unless="jdk1.2+" />
</patternset> </patternset>
<patternset id="needs.jdk1.3+"> <patternset id="needs.jdk1.3+">
<exclude name="${ant.package}/taskdefs/TestProcess.java" <exclude name="${ant.package}/taskdefs/TestProcess.java"


+ 6
- 1
src/main/org/apache/tools/ant/AntClassLoader.java View File

@@ -402,7 +402,12 @@ public class AntClassLoader extends ClassLoader implements BuildListener {
try { try {
savedContextLoader savedContextLoader
= (ClassLoader)getContextClassLoader.invoke(Thread.currentThread(), new Object[0]); = (ClassLoader)getContextClassLoader.invoke(Thread.currentThread(), new Object[0]);
Object[] args = new Object[] {this};
Object[] args = null;
if ("only".equals(project.getProperty("build.sysclasspath"))) {
args = new Object[] {this.getClass().getClassLoader()};
} else {
args = new Object[] {this};
}
setContextClassLoader.invoke(Thread.currentThread(), args); setContextClassLoader.invoke(Thread.currentThread(), args);
isContextLoaderSaved = true; isContextLoaderSaved = true;
} }


+ 4
- 0
src/main/org/apache/tools/ant/taskdefs/optional/TraXLiaison.java View File

@@ -226,6 +226,10 @@ public class TraXLiaison implements XSLTLiaison, ErrorListener, XSLTLoggerAware
} }
private void logError(TransformerException e, String type) { private void logError(TransformerException e, String type) {
if (logger == null) {
return;
}
StringBuffer msg = new StringBuffer(); StringBuffer msg = new StringBuffer();
if(e.getLocator() != null) { if(e.getLocator() != null) {
if(e.getLocator().getSystemId() != null) { if(e.getLocator().getSystemId() != null) {


+ 2
- 2
src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java View File

@@ -642,7 +642,7 @@ public class JUnitTask extends Task {
cl.addSystemPackageRoot("junit"); cl.addSystemPackageRoot("junit");
// will cause trouble in JDK 1.1 if omitted // will cause trouble in JDK 1.1 if omitted
cl.addSystemPackageRoot("org.apache.tools.ant"); cl.addSystemPackageRoot("org.apache.tools.ant");
//cl.setThreadContextLoader();
cl.setThreadContextLoader();
} }
runner = new JUnitTestRunner(test, test.getHaltonerror(), test.getFiltertrace(), test.getHaltonfailure(), cl); runner = new JUnitTestRunner(test, test.getHaltonerror(), test.getFiltertrace(), test.getHaltonfailure(), cl);
if (summary) { if (summary) {
@@ -673,7 +673,7 @@ public class JUnitTask extends Task {
if (sysProperties != null) { if (sysProperties != null) {
sysProperties.restoreSystem(); sysProperties.restoreSystem();
} }
//cl.resetThreadContextLoader();
cl.resetThreadContextLoader();
} }
} }




+ 13
- 2
src/testcases/org/apache/tools/ant/taskdefs/optional/TraXLiaisonTest.java View File

@@ -1,11 +1,14 @@
package org.apache.tools.ant.taskdefs.optional; package org.apache.tools.ant.taskdefs.optional;


import org.apache.tools.ant.taskdefs.XSLTLiaison; import org.apache.tools.ant.taskdefs.XSLTLiaison;
import org.apache.tools.ant.taskdefs.XSLTLogger;
import org.apache.tools.ant.taskdefs.condition.Os; import org.apache.tools.ant.taskdefs.condition.Os;
import org.apache.tools.ant.BuildException; import org.apache.tools.ant.BuildException;


import java.io.File; import java.io.File;


import junit.framework.AssertionFailedError;

/* /*
* The Apache Software License, Version 1.1 * The Apache Software License, Version 1.1
* *
@@ -65,7 +68,9 @@ import java.io.File;
* TraX XSLTLiaison testcase * TraX XSLTLiaison testcase
* @author <a href="mailto:sbailliez@apache.org">Stephane Bailliez</a> * @author <a href="mailto:sbailliez@apache.org">Stephane Bailliez</a>
*/ */
public class TraXLiaisonTest extends AbstractXSLTLiaisonTest {
public class TraXLiaisonTest extends AbstractXSLTLiaisonTest
implements XSLTLogger {

public TraXLiaisonTest(String name){ public TraXLiaisonTest(String name){
super(name); super(name);
} }
@@ -78,7 +83,9 @@ public class TraXLiaisonTest extends AbstractXSLTLiaisonTest {
} }


public XSLTLiaison createLiaison() throws Exception { public XSLTLiaison createLiaison() throws Exception {
return new TraXLiaison();
TraXLiaison l = new TraXLiaison();
l.setLogger(this);
return l;
} }


public void testXalan2Redirect() throws Exception { public void testXalan2Redirect() throws Exception {
@@ -124,4 +131,8 @@ public class TraXLiaisonTest extends AbstractXSLTLiaisonTest {
assertTrue("SystemIDs should not start with file:////", !systemid.startsWith("file:////")); assertTrue("SystemIDs should not start with file:////", !systemid.startsWith("file:////"));
} }


public void log(String message) {
throw new AssertionFailedError("Liaison sent message: "+message);
}

} }

Loading…
Cancel
Save