站内搜索: 请输入搜索关键词
当前页面: 在线文档首页 > JBoss 4.0.1 sp1 common API Documentation 英文版文档

ContextClassLoaderSwitcher (JBoss/Common API) - JBoss 4.0.1 sp1 common API Documentation 英文版文档


org.jboss.util.loading
Class ContextClassLoaderSwitcher

java.lang.Object
  extended byorg.jboss.util.loading.ContextClassLoader
      extended byorg.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


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