Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.jboss.util.loading
Class ContextClassLoaderSwitcher

    java.lang.Object
      org.jboss.util.loading.ContextClassLoader
          org.jboss.util.loading.ContextClassLoaderSwitcher

public class ContextClassLoaderSwitcher
extends ContextClassLoader

A helper for context classloading switching.

When a security manager is installed, the constructor checks for the runtime permissions "getClassLoader" and "setContextClassLoader". This allows the methods of this class to be used later without having to run in privileged blocks. There are optimized methods to perform the operations within a switch context. This avoids retrieving the current thread on every operation.

Version:
  `$Revision: 1.4 $`
Author:
  Adrian Brock

Nested Class Summary
`class` | `ContextClassLoaderSwitcher.SwitchContext` A helper class to remember the original classloader and avoid continually retrieveing the current thread.

Field Summary
`static org.jboss.util.loading.ContextClassLoaderSwitcher.NewInstance` | `INSTANTIATOR` Instantiate a new context class loader switcher
`static RuntimePermission` | `SETCONTEXTCLASSLOADER` Set the context classloader permission

Fields inherited from class org.jboss.util.loading.ContextClassLoader
`GETCLASSLOADER`

Method Summary
`ContextClassLoaderSwitcher.SwitchContext` | `getSwitchContext()` Retrieve a switch context
`ContextClassLoaderSwitcher.SwitchContext` | `getSwitchContext(Class clazz)` Deprecated. using a class to determine the classloader is a bad idea, it has the same problems as Class.forName()
`ContextClassLoaderSwitcher.SwitchContext` | `getSwitchContext(ClassLoader cl)` Retrieve a switch context and set the new context classloader
`void` | `setContextClassLoader(ClassLoader cl)` Set the context classloader
`void` | `setContextClassLoader(Thread thread, ClassLoader cl)` Set the context classloader for the given thread

Methods inherited from class org.jboss.util.loading.ContextClassLoader
`getContextClassLoader, getContextClassLoader`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### SETCONTEXTCLASSLOADER

    public static final RuntimePermission SETCONTEXTCLASSLOADER

  Set the context classloader permission

### INSTANTIATOR

    public static final org.jboss.util.loading.ContextClassLoaderSwitcher.NewInstance INSTANTIATOR

  Instantiate a new context class loader switcher

Method Detail

### setContextClassLoader

    public void setContextClassLoader(ClassLoader cl)

  Set the context classloader

### setContextClassLoader

    public void setContextClassLoader(Thread thread,
                                      ClassLoader cl)

  Set the context classloader for the given thread

  Parameters:
    `thread` - the thread

### getSwitchContext

    public ContextClassLoaderSwitcher.SwitchContext getSwitchContext()

  Retrieve a switch context

  Returns:
    the switch context

### getSwitchContext

    public ContextClassLoaderSwitcher.SwitchContext getSwitchContext(ClassLoader cl)

  Retrieve a switch context and set the new context classloader

  Parameters:
    `cl` - the new classloader
  Returns:
    the switch context

### getSwitchContext

    public ContextClassLoaderSwitcher.SwitchContext getSwitchContext(Class clazz)

  Deprecated. using a class to determine the classloader is a bad idea, it has the same problems as Class.forName()

  Retrieve a switch context for the classloader of a given class

  Parameters:
    `clazz` - the class whose classloader should be set as the context classloader
  Returns:
    the switch context

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2002 JBoss Group, LLC. All Rights Reserved.