org.jboss.classloader.spi
Class ClassLoaderSystem

java.lang.Object
  extended by org.jboss.classloader.spi.base.BaseClassLoaderSystem
      extended by org.jboss.classloader.spi.ClassLoaderSystem
Direct Known Subclasses:
DefaultClassLoaderSystem

public abstract class ClassLoaderSystem
extends BaseClassLoaderSystem

ClassLoaderSystem.

Version:
$Revision: 1.1 $
Author:
Adrian Brock

Field Summary
static String DEFAULT_DOMAIN_NAME
          The name of the default domain
 
Constructor Summary
ClassLoaderSystem()
           
 
Method Summary
protected  void afterUnregisterClassLoader(ClassLoader classLoader)
          After unregister classloader
 ClassLoaderDomain createAndRegisterDomain(String name)
          Create and register a domain
 ClassLoaderDomain createAndRegisterDomain(String name, ParentPolicy parentPolicy)
          Create and register a domain with the given parent classloading policy
 ClassLoaderDomain createAndRegisterDomain(String name, ParentPolicy parentPolicy, Loader parent)
          Create and register a domain with the given parent classloading policy
protected  ClassLoaderDomain createDefaultDomain()
          Create the default domain
protected abstract  ClassLoaderDomain createDomain(String name)
          Create a domain
 ClassLoaderDomain getDefaultDomain()
          Get the default classloading domain
 ClassLoaderDomain getDomain(String name)
          Get a domain
static ClassLoaderSystem getInstance()
          Get the classloading system instance
 org.jboss.util.loading.Translator getTranslator()
          Get the translator.
 boolean isDomainRegistered(ClassLoaderDomain domain)
          Is a domain registered
 boolean isRegistered(String name)
          Is a domain name registered
 ClassLoader registerClassLoaderPolicy(ClassLoaderDomain domain, ClassLoaderPolicy policy)
          Register a policy with a domain
 ClassLoader registerClassLoaderPolicy(ClassLoaderPolicy policy)
          Register a policy with the default domain
 void registerDomain(ClassLoaderDomain domain)
          Register a domain
 void setTranslator(org.jboss.util.loading.Translator translator)
          Set the translator.
 void shutdown()
          Shutdown the classloader system
protected  void toLongString(StringBuilder builder)
          For subclasses to add information for toLongString()
protected  byte[] transform(ClassLoader classLoader, String className, byte[] byteCode, ProtectionDomain protectionDomain)
          Transform the byte code
 void unregisterClassLoader(ClassLoader classLoader)
          Unregister a classloader from its domain
 void unregisterClassLoaderPolicy(ClassLoaderPolicy policy)
          Unregister a policy from its domain
 void unregisterDomain(ClassLoaderDomain domain)
          Unregister a domain
 
Methods inherited from class org.jboss.classloader.spi.base.BaseClassLoaderSystem
afterRegisterClassLoader, beforeRegisterClassLoader, beforeUnregisterClassLoader, createClassLoader, registerClassLoaderPolicy, registerDomain, toLongString, toString, unregisterDomain
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

DEFAULT_DOMAIN_NAME

public static final String DEFAULT_DOMAIN_NAME
The name of the default domain

See Also:
Constant Field Values
Constructor Detail

ClassLoaderSystem

public ClassLoaderSystem()
Method Detail

getInstance

public static final ClassLoaderSystem getInstance()
Get the classloading system instance

Returns:
the instance
Throws:
SecurityException - if the caller does not have authority to create a classloader

getDefaultDomain

public ClassLoaderDomain getDefaultDomain()
Get the default classloading domain

Returns:
the default domain

createDefaultDomain

protected ClassLoaderDomain createDefaultDomain()
Create the default domain

By default this just invokes createDomain(String) with DEFAULT_DOMAIN_NAME

Returns:
the default domain

createDomain

protected abstract ClassLoaderDomain createDomain(String name)
Create a domain

Parameters:
name - the name of the domain
Returns:
the domain
Throws:
IllegalArgumentException - for a null name

createAndRegisterDomain

public ClassLoaderDomain createAndRegisterDomain(String name)
Create and register a domain

Parameters:
name - the name of the domain
Returns:
the domain
Throws:
IllegalArgumentException - for a null name
IllegalStateException - if there already is a domain with that name

createAndRegisterDomain

public ClassLoaderDomain createAndRegisterDomain(String name,
                                                 ParentPolicy parentPolicy)
Create and register a domain with the given parent classloading policy

Parameters:
name - the name of the domain
parentPolicy - the parent classloading policy
Returns:
the domain
Throws:
IllegalArgumentException - for a null name or policy
IllegalStateException - if there already is a domain with that name

createAndRegisterDomain

public ClassLoaderDomain createAndRegisterDomain(String name,
                                                 ParentPolicy parentPolicy,
                                                 Loader parent)
Create and register a domain with the given parent classloading policy

Parameters:
name - the name of the domain
parentPolicy - the parent classloading policy
parent - the parent
Returns:
the domain
Throws:
IllegalArgumentException - for a null argument
IllegalStateException - if there already is a domain with that name

getDomain

public ClassLoaderDomain getDomain(String name)
Get a domain

Parameters:
name - the domain name
Returns:
the domain
Throws:
IllegalArgumentException - for a null name

isRegistered

public boolean isRegistered(String name)
Is a domain name registered

Parameters:
name - the domain name
Returns:
true when the domain is registered
Throws:
IllegalArgumentException - for a null name

isDomainRegistered

public boolean isDomainRegistered(ClassLoaderDomain domain)
Is a domain registered

Parameters:
domain - the domain
Returns:
true when the domain is registered
Throws:
IllegalArgumentException - for a null domain

registerDomain

public void registerDomain(ClassLoaderDomain domain)
Register a domain

Parameters:
domain - the domain
Throws:
IllegalArgumentException - for a null domain
IllegalStateException - if a domain is already registered with this name

unregisterDomain

public void unregisterDomain(ClassLoaderDomain domain)
Unregister a domain

Parameters:
domain - the domain
Throws:
IllegalArgumentException - for a null domain or if you attempt to unregister the default domain
IllegalStateException - if a domain is not registered

registerClassLoaderPolicy

public ClassLoader registerClassLoaderPolicy(ClassLoaderPolicy policy)
Register a policy with the default domain

Equivalent to registerClassLoaderPolicy(ClassLoaderDomain, ClassLoaderPolicy) using getDefaultDomain() as the ClassLoaderDomain

Parameters:
policy - the policy
Returns:
the classloader
Throws:
IllegalArgumentException - if a parameter is null
IllegalStateException - if the policy is already registered with a domain

registerClassLoaderPolicy

public ClassLoader registerClassLoaderPolicy(ClassLoaderDomain domain,
                                             ClassLoaderPolicy policy)
Register a policy with a domain

Parameters:
domain - the domain
policy - the policy
Returns:
the classloader
Throws:
IllegalArgumentException - if a parameter is null
IllegalStateException - if the domain is not registered or if the policy is already registered with a domain

unregisterClassLoaderPolicy

public void unregisterClassLoaderPolicy(ClassLoaderPolicy policy)
Unregister a policy from its domain

Overrides:
unregisterClassLoaderPolicy in class BaseClassLoaderSystem
Parameters:
policy - the policy
Throws:
IllegalArgumentException - if a parameter is null
IllegalStateException - if the policy is not registered with the default domain

unregisterClassLoader

public void unregisterClassLoader(ClassLoader classLoader)
Unregister a classloader from its domain

Overrides:
unregisterClassLoader in class BaseClassLoaderSystem
Parameters:
classLoader - classLoader
Throws:
IllegalArgumentException - if a parameter is null
IllegalStateException - if the policy is not registered with the default domain

shutdown

public void shutdown()
Shutdown the classloader system

Unregisters all domains by default


getTranslator

public org.jboss.util.loading.Translator getTranslator()
Get the translator.

Returns:
the translator.

setTranslator

public void setTranslator(org.jboss.util.loading.Translator translator)
Set the translator.

Parameters:
translator - the translator.

transform

protected byte[] transform(ClassLoader classLoader,
                           String className,
                           byte[] byteCode,
                           ProtectionDomain protectionDomain)
                    throws Exception
Description copied from class: BaseClassLoaderSystem
Transform the byte code

By default this does nothing

Overrides:
transform in class BaseClassLoaderSystem
Parameters:
classLoader - the classLoader
className - the class name
byteCode - the byte code
protectionDomain - the protection domain
Returns:
the transformed byte code
Throws:
Exception - for any error

afterUnregisterClassLoader

protected void afterUnregisterClassLoader(ClassLoader classLoader)
Description copied from class: BaseClassLoaderSystem
After unregister classloader

Overrides:
afterUnregisterClassLoader in class BaseClassLoaderSystem
Parameters:
classLoader - the classloader

toLongString

protected void toLongString(StringBuilder builder)
Description copied from class: BaseClassLoaderSystem
For subclasses to add information for toLongString()

Overrides:
toLongString in class BaseClassLoaderSystem
Parameters:
builder - the builder


Copyright ? 2007 JBoss Inc.. All Rights Reserved.