dblevins 2005/07/05 22:04:04
Modified: modules/itests/src/java/org/openejb/test
PostgreSqlTestDatabase.java TestManager.java
Log:
Moved the getContextClassLoader method to the OpenEJB class so ClasspathUtils
only contains the classpath modifying methods used by the Loaders and other
code.
Going to kill the ClasspathUtils and make everyone as the loaders directly to
modify the classpath, rather than sometimes using the loader and then asking
ClasspathUtils to guess what loader to use.
Part of the fix for OPENEJB-40, OPENEJB-41 and OPENEJB-42.
Revision Changes Path
1.2 +2 -1
openejb1/modules/itests/src/java/org/openejb/test/PostgreSqlTestDatabase.java
Index: PostgreSqlTestDatabase.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb1/modules/itests/src/java/org/openejb/test/PostgreSqlTestDatabase.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- PostgreSqlTestDatabase.java 26 Mar 2004 21:43:12 -0000 1.1
+++ PostgreSqlTestDatabase.java 6 Jul 2005 02:04:04 -0000 1.2
@@ -13,6 +13,7 @@
import org.openejb.test.beans.Database;
import org.openejb.test.beans.DatabaseHome;
+import org.openejb.OpenEJB;
/**
*
* @author <a href="mailto:[EMAIL PROTECTED]">David Blevins</a>
@@ -140,7 +141,7 @@
public static void main(String[] args){
System.out.println("Checking if driver is registered with
DriverManager.");
try{
- ClassLoader cl =
org.openejb.util.ClasspathUtils.getContextClassLoader();
+ ClassLoader cl = OpenEJB.getContextClassLoader();
Class.forName("org.postgresql.Driver", true, cl);
} catch (ClassNotFoundException e){
System.out.println("Couldn't find the driver!");
1.2 +11 -3
openejb1/modules/itests/src/java/org/openejb/test/TestManager.java
Index: TestManager.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb1/modules/itests/src/java/org/openejb/test/TestManager.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- TestManager.java 26 Mar 2004 21:43:13 -0000 1.1
+++ TestManager.java 6 Jul 2005 02:04:04 -0000 1.2
@@ -81,13 +81,21 @@
props.load(new FileInputStream(file));
return props;
}
-
+
+ private static ClassLoader getContextClassLoader() {
+ return (ClassLoader) java.security.AccessController.doPrivileged(new
java.security.PrivilegedAction() {
+ public Object run() {
+ return Thread.currentThread().getContextClassLoader();
+ }
+ });
+ }
+
private static void initServer(Properties props){
try{
String className =
(String)props.getProperty("openejb.test.server");
if (className == null) throw new IllegalArgumentException("Must
specify a test server by setting its class name using the system property
\"openejb.test.server\"");
- ClassLoader cl =
org.openejb.util.ClasspathUtils.getContextClassLoader();
+ ClassLoader cl = getContextClassLoader();
Class testServerClass = Class.forName( className, true, cl );
server = (TestServer)testServerClass.newInstance();
server.init( props );
@@ -102,7 +110,7 @@
try{
String className =
(String)props.getProperty("openejb.test.database");
if (className == null) throw new IllegalArgumentException("Must
specify a test database by setting its class name using the system property
\"openejb.test.database\"");
- ClassLoader cl =
org.openejb.util.ClasspathUtils.getContextClassLoader();
+ ClassLoader cl = getContextClassLoader();
Class testDatabaseClass = Class.forName( className , true, cl);
database = (TestDatabase)testDatabaseClass.newInstance();
database.init( props );