1
package org.hibernate.junit;
4
* A specialized TestCase for running tests in an isolated class-loader
6
* @author Steve Ebersole
8
public abstract class AbstractClassLoaderIsolatedTestCase extends UnitTestCase {
9
private ClassLoader parentLoader;
10
private ClassLoader isolatedLoader;
12
public AbstractClassLoaderIsolatedTestCase(String string) {
16
protected void setUp() throws Exception {
17
parentLoader = Thread.currentThread().getContextClassLoader();
18
isolatedLoader = buildIsolatedClassLoader( parentLoader );
19
Thread.currentThread().setContextClassLoader( isolatedLoader );
23
protected void tearDown() throws Exception {
25
Thread.currentThread().setContextClassLoader( parentLoader );
26
releaseIsolatedClassLoader( isolatedLoader );
28
isolatedLoader = null;
31
protected abstract ClassLoader buildIsolatedClassLoader(ClassLoader parent);
33
protected abstract void releaseIsolatedClassLoader(ClassLoader isolatedLoader);