php.java.bridge
Class SimpleJavaBridgeClassLoader

java.lang.Object
  extended by php.java.bridge.SimpleJavaBridgeClassLoader
Direct Known Subclasses:
JavaBridgeClassLoader

public class SimpleJavaBridgeClassLoader
extends java.lang.Object

A bridge pattern which allows us to vary the class loader as run-time. The decision is based on whether we are allowed to use a dynamic classloader or not (cl==null) or security exception at run-time.

The SimpleJavaBridgeClassLoader should be used outside of the J2EE environment. If you need to switch from a servlet to a ContextRunner thread, use the JavaBridgeClassLoader instead.

See Also:
JavaBridgeClassLoader

Constructor Summary
SimpleJavaBridgeClassLoader(java.lang.ClassLoader xloader)
          Create a new JavaBridgeClassLoader
 
Method Summary
 void clear()
          clear caches and the input vectors
 java.lang.Class forName(java.lang.String name)
          Load a class.
 java.lang.ClassLoader getClassLoader()
          Only for internal use
static java.lang.ClassLoader getContextClassLoader()
          Return the thread context class loader
 java.lang.ClassLoader getDefaultClassLoader()
          Return the default class loader
 void reset()
          reset loader to the initial state This is only called by the API function "java_reset()", used only for testing.
 void switcheThreadContextClassLoader()
          Switch the current thread context class loader.
 void updateJarLibraryPath(java.lang.String path, java.lang.String extensionDir, java.lang.String cwd, java.lang.String searchpath)
          Append the path to the current library path
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SimpleJavaBridgeClassLoader

public SimpleJavaBridgeClassLoader(java.lang.ClassLoader xloader)
Create a new JavaBridgeClassLoader

Parameters:
xloader - The delegate
Method Detail

getContextClassLoader

public static final java.lang.ClassLoader getContextClassLoader()
Return the thread context class loader

Returns:
The context class loader

updateJarLibraryPath

public void updateJarLibraryPath(java.lang.String path,
                                 java.lang.String extensionDir,
                                 java.lang.String cwd,
                                 java.lang.String searchpath)
                          throws java.io.IOException
Append the path to the current library path

Parameters:
path - A file or url list, separated by ';'
extensionDir - Usually ini_get("extension_dir");
searchpath -
cwd -
Throws:
java.io.IOException

getClassLoader

public java.lang.ClassLoader getClassLoader()
Only for internal use

Returns:
the classloader

getDefaultClassLoader

public java.lang.ClassLoader getDefaultClassLoader()
Return the default class loader

Returns:
The default class loader

reset

public void reset()
reset loader to the initial state This is only called by the API function "java_reset()", used only for testing.


forName

public java.lang.Class forName(java.lang.String name)
                        throws java.lang.ClassNotFoundException
Load a class.

Parameters:
name - The class, for example java.lang.String
Returns:
the class
Throws:
java.lang.ClassNotFoundException

clear

public void clear()
clear caches and the input vectors


switcheThreadContextClassLoader

public void switcheThreadContextClassLoader()
Switch the current thread context class loader.

Throws:
java.lang.IllegalStateException - A SimpleJavaBridgeClassLoader cannot be used in a web environment.