Author: skitching
Date: Tue Aug 1 17:18:56 2006
New Revision: 427814
URL: http://svn.apache.org/viewvc?rev=427814&view=rev
Log:
Make test compatible with maven2 surefire.
Modified:
jakarta/commons/proper/logging/trunk/src/test/org/apache/commons/logging/pathable/ParentFirstTestCase.java
Modified:
jakarta/commons/proper/logging/trunk/src/test/org/apache/commons/logging/pathable/ParentFirstTestCase.java
URL:
http://svn.apache.org/viewvc/jakarta/commons/proper/logging/trunk/src/test/org/apache/commons/logging/pathable/ParentFirstTestCase.java?rev=427814&r1=427813&r2=427814&view=diff
==============================================================================
---
jakarta/commons/proper/logging/trunk/src/test/org/apache/commons/logging/pathable/ParentFirstTestCase.java
(original)
+++
jakarta/commons/proper/logging/trunk/src/test/org/apache/commons/logging/pathable/ParentFirstTestCase.java
Tue Aug 1 17:18:56 2006
@@ -20,6 +20,8 @@
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Enumeration;
+import java.util.HashSet;
+import java.util.Set;
import junit.framework.Test;
import junit.framework.TestCase;
@@ -86,6 +88,21 @@
}
/**
+ * Utility method to return the set of all classloaders in the
+ * parent chain starting from the one that loaded the class for
+ * this object instance.
+ */
+ private Set getAncestorCLs() {
+ Set s = new HashSet();
+ ClassLoader cl = this.getClass().getClassLoader();
+ while (cl != null) {
+ s.add(cl);
+ cl = cl.getParent();
+ }
+ return s;
+ }
+
+ /**
* Test that the classloader hierarchy is as expected, and that
* calling loadClass() on various classloaders works as expected.
* Note that for this test case, parent-first classloading is
@@ -130,11 +147,13 @@
PathableClassLoader.class.getName().equals(
systemLoader.getClass().getName()));
- // junit classes should be visible; their classloader is system.
- // this will of course throw an exception if not found.
+ // junit classes should be visible; their classloader is not
+ // in the hierarchy of parent classloaders for this class,
+ // though it is accessable due to trickery in the PathableClassLoader.
Class junitTest = contextLoader.loadClass("junit.framework.Test");
- assertSame("Junit not loaded via systemloader",
- systemLoader, junitTest.getClassLoader());
+ Set ancestorCLs = getAncestorCLs();
+ assertFalse("Junit not loaded by ancestor classloader",
+ ancestorCLs.contains(junitTest.getClassLoader()));
// jcl api classes should be visible only via the parent
Class logClass =
contextLoader.loadClass("org.apache.commons.logging.Log");
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]