mirror of
https://github.com/hibernate/hibernate-orm
synced 2025-03-01 07:19:15 +00:00
git-svn-id: https://svn.jboss.org/repos/hibernate/core/branches/Branch_3_2@11766 1b8cb986-b30d-0410-93ca-fae66ebed9b2
35 lines
1.0 KiB
Java
35 lines
1.0 KiB
Java
package org.hibernate.junit;
|
|
|
|
/**
|
|
* A specialized TestCase for running tests in an isolated class-loader
|
|
*
|
|
* @author Steve Ebersole
|
|
*/
|
|
public abstract class AbstractClassLoaderIsolatedTestCase extends UnitTestCase {
|
|
private ClassLoader parentLoader;
|
|
private ClassLoader isolatedLoader;
|
|
|
|
public AbstractClassLoaderIsolatedTestCase(String string) {
|
|
super( string );
|
|
}
|
|
|
|
protected void setUp() throws Exception {
|
|
parentLoader = Thread.currentThread().getContextClassLoader();
|
|
isolatedLoader = buildIsolatedClassLoader( parentLoader );
|
|
Thread.currentThread().setContextClassLoader( isolatedLoader );
|
|
super.setUp();
|
|
}
|
|
|
|
protected void tearDown() throws Exception {
|
|
super.tearDown();
|
|
Thread.currentThread().setContextClassLoader( parentLoader );
|
|
releaseIsolatedClassLoader( isolatedLoader );
|
|
parentLoader = null;
|
|
isolatedLoader = null;
|
|
}
|
|
|
|
protected abstract ClassLoader buildIsolatedClassLoader(ClassLoader parent);
|
|
|
|
protected abstract void releaseIsolatedClassLoader(ClassLoader isolatedLoader);
|
|
}
|