Fix bug in test; custom MyFactory class wasn't specified in commons-logging.properties!
Also, use constants instead of repeating custom class name as literal. git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/logging/trunk@369755 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
@@ -33,6 +33,12 @@ import org.apache.commons.logging.PathableTestSuite;
|
|||||||
|
|
||||||
public class TcclDisabledTestCase extends TestCase {
|
public class TcclDisabledTestCase extends TestCase {
|
||||||
|
|
||||||
|
public static final String MY_LOG_FACTORY_PKG =
|
||||||
|
"org.apache.commons.logging.tccl.custom";
|
||||||
|
|
||||||
|
public static final String MY_LOG_FACTORY_IMPL =
|
||||||
|
MY_LOG_FACTORY_PKG + ".MyLogFactoryImpl";
|
||||||
|
|
||||||
// ------------------------------------------- JUnit Infrastructure Methods
|
// ------------------------------------------- JUnit Infrastructure Methods
|
||||||
|
|
||||||
|
|
||||||
@@ -70,7 +76,7 @@ public class TcclDisabledTestCase extends TestCase {
|
|||||||
// hack to ensure that the testcase classloader can't see
|
// hack to ensure that the testcase classloader can't see
|
||||||
// the cust MyLogFactoryImpl
|
// the cust MyLogFactoryImpl
|
||||||
parentLoader.useExplicitLoader(
|
parentLoader.useExplicitLoader(
|
||||||
"org.apache.commons.logging.tccl.custom.", emptyLoader);
|
MY_LOG_FACTORY_PKG + ".", emptyLoader);
|
||||||
|
|
||||||
URL propsEnableUrl = new URL(baseUrl, "props_disable_tccl/");
|
URL propsEnableUrl = new URL(baseUrl, "props_disable_tccl/");
|
||||||
parentLoader.addURL(propsEnableUrl);
|
parentLoader.addURL(propsEnableUrl);
|
||||||
@@ -111,8 +117,7 @@ public class TcclDisabledTestCase extends TestCase {
|
|||||||
|
|
||||||
// MyLogFactoryImpl should not be loadable via parent loader
|
// MyLogFactoryImpl should not be loadable via parent loader
|
||||||
try {
|
try {
|
||||||
Class clazz = thisClassLoader.loadClass(
|
Class clazz = thisClassLoader.loadClass(MY_LOG_FACTORY_IMPL);
|
||||||
"org.apache.commons.logging.tccl.custom.MyLogFactoryImpl");
|
|
||||||
fail("Unexpectedly able to load MyLogFactoryImpl via test class classloader");
|
fail("Unexpectedly able to load MyLogFactoryImpl via test class classloader");
|
||||||
} catch(ClassNotFoundException ex) {
|
} catch(ClassNotFoundException ex) {
|
||||||
// ok, expected
|
// ok, expected
|
||||||
@@ -120,8 +125,7 @@ public class TcclDisabledTestCase extends TestCase {
|
|||||||
|
|
||||||
// MyLogFactoryImpl should be loadable via tccl loader
|
// MyLogFactoryImpl should be loadable via tccl loader
|
||||||
try {
|
try {
|
||||||
Class clazz = tcclLoader.loadClass(
|
Class clazz = tcclLoader.loadClass(MY_LOG_FACTORY_IMPL);
|
||||||
"org.apache.commons.logging.tccl.custom.MyLogFactoryImpl");
|
|
||||||
} catch(ClassNotFoundException ex) {
|
} catch(ClassNotFoundException ex) {
|
||||||
fail("Unexpectedly unable to load MyLogFactoryImpl via tccl classloader");
|
fail("Unexpectedly unable to load MyLogFactoryImpl via tccl classloader");
|
||||||
}
|
}
|
||||||
@@ -134,11 +138,14 @@ public class TcclDisabledTestCase extends TestCase {
|
|||||||
* we should see the default LogFactoryImpl rather than the custom one.
|
* we should see the default LogFactoryImpl rather than the custom one.
|
||||||
*/
|
*/
|
||||||
public void testTcclLoading() throws Exception {
|
public void testTcclLoading() throws Exception {
|
||||||
LogFactory instance = LogFactory.getFactory();
|
try {
|
||||||
|
LogFactory instance = LogFactory.getFactory();
|
||||||
assertEquals(
|
fail("Unexpectedly succeeded in loading custom factory, though TCCL disabled.");
|
||||||
"Correct LogFactory loaded",
|
} catch(org.apache.commons.logging.LogConfigurationException ex) {
|
||||||
"org.apache.commons.logging.impl.LogFactoryImpl",
|
// ok, custom MyLogFactoryImpl as specified in props_disable_tccl
|
||||||
instance.getClass().getName());
|
// could not be found.
|
||||||
|
int index = ex.getMessage().indexOf(MY_LOG_FACTORY_IMPL);
|
||||||
|
assertTrue("MylogFactoryImpl not found", index >= 0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1 +1,2 @@
|
|||||||
use_tccl=false
|
use_tccl=false
|
||||||
|
org.apache.commons.logging.LogFactory=org.apache.commons.logging.tccl.custom.MyLogFactoryImpl
|
||||||
|
|||||||
Reference in New Issue
Block a user