From: <hib...@li...> - 2006-03-04 00:18:30
|
Author: ste...@jb... Date: 2006-03-03 19:18:28 -0500 (Fri, 03 Mar 2006) New Revision: 9539 Added: trunk/Hibernate3/test/org/hibernate/test/AbstractClassLoaderIsolatedTestCase.java Log: HHH-1435 : lazy="no-proxy" on many/one-to-one associations; use of ~transforming class loaders~ for runtime instrumentation of domain objects for testing purposes Added: trunk/Hibernate3/test/org/hibernate/test/AbstractClassLoaderIsolatedTestCase.java =================================================================== --- trunk/Hibernate3/test/org/hibernate/test/AbstractClassLoaderIsolatedTestCase.java 2006-03-04 00:17:57 UTC (rev 9538) +++ trunk/Hibernate3/test/org/hibernate/test/AbstractClassLoaderIsolatedTestCase.java 2006-03-04 00:18:28 UTC (rev 9539) @@ -0,0 +1,32 @@ +package org.hibernate.test; + +import junit.framework.TestCase; + +/** + * A specialized TestCase for running tests in an isolated class-loader + * + * @author Steve Ebersole + */ +public abstract class AbstractClassLoaderIsolatedTestCase extends TestCase { + private ClassLoader parentLoader; + private ClassLoader isolatedLoader; + + 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); +} |