org.jboss.classloader.spi
Class ClassLoaderSystem

java.lang.Object
  extended by org.jboss.classloader.spi.base.BaseClassLoaderSystem
      extended by org.jboss.classloader.spi.ClassLoaderSystem
All Implemented Interfaces:
MBeanRegistration, ClassLoaderSystemMBean
Direct Known Subclasses:
DefaultClassLoaderSystem

public abstract class ClassLoaderSystem
extends BaseClassLoaderSystem
implements ClassLoaderSystemMBean, MBeanRegistration

ClassLoaderSystem.

Version:
$Revision: 1.1 $
Author:
Adrian Brock, Ales Justin

Field Summary
static String DEFAULT_DOMAIN_NAME
          The name of the default domain
 
Constructor Summary
ClassLoaderSystem()
           
 
Method Summary
 void addTranslator(org.jboss.util.loading.Translator translator)
          Add the translator.
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
 Set<String> getDomainNames()
          Get the domain names
 Set<ObjectName> getDomains()
          Get the domains
static ClassLoaderSystem getInstance()
          Get the classloading system instance
 ObjectName getObjectName()
          Get the object name
protected  ObjectName getObjectName(ClassLoaderDomain domain)
          Get an object name for the domain
 org.jboss.util.loading.Translator getTranslator()
          Deprecated. use translator list
 List<org.jboss.util.loading.Translator> getTranslators()
          Get the policy's translators.
 boolean isDomainRegistered(ClassLoaderDomain domain)
          Is a domain registered
 boolean isRegistered(String name)
          Is a domain name registered
 void postDeregister()
           
 void postRegister(Boolean registrationDone)
           
 void preDeregister()
           
 ObjectName preRegister(MBeanServer server, ObjectName name)
           
 ClassLoader registerClassLoaderPolicy(ClassLoaderDomain domain, ClassLoaderPolicy policy)
          Register a policy with a domain
 ClassLoader registerClassLoaderPolicy(ClassLoaderPolicy policy)
          Register a policy with the default domain
 ClassLoader registerClassLoaderPolicy(String domainName, ClassLoaderPolicy policy)
          Register a classloader policy, possibly constructing the domain with a BEFORE parent policy
 ClassLoader registerClassLoaderPolicy(String domainName, ParentPolicy parentPolicy, ClassLoaderPolicy policy)
          Register a classloader policy, possibly constructing the domain
 ClassLoader registerClassLoaderPolicy(String domainName, ParentPolicy parentPolicy, Loader parent, ClassLoaderPolicy policy)
          Register a classloader policy, possibly constructing the domain
 ClassLoader registerClassLoaderPolicy(String domainName, ParentPolicy parentPolicy, String parentDomainName, ClassLoaderPolicy policy)
          Register a classloader policy, possibly constructing the domain
 void registerDomain(ClassLoaderDomain domain)
          Register a domain
protected  void registerDomainMBean(ClassLoaderDomain domain)
          Register a domain with the MBeanServer
 void removeTranslator(org.jboss.util.loading.Translator translator)
          Remove the translator.
 void setTranslator(org.jboss.util.loading.Translator translator)
          Deprecated. use translator list
 void setTranslators(List<org.jboss.util.loading.Translator> translators)
          Set the translators.
 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
protected  void unregisterDomainMBean(ClassLoaderDomain domain)
          Unregister a domain from the MBeanServer
 
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(String domainName,
                                             ClassLoaderPolicy policy)
Register a classloader policy, possibly constructing the domain with a BEFORE parent policy

Parameters:
domainName - the domain name
policy - the classloader policy
Returns:
the policy
Throws:
IllegalArgumentException - for a null parameter

registerClassLoaderPolicy

public ClassLoader registerClassLoaderPolicy(String domainName,
                                             ParentPolicy parentPolicy,
                                             ClassLoaderPolicy policy)
Register a classloader policy, possibly constructing the domain

Parameters:
domainName - the domain name
parentPolicy - the parent policy
policy - the classloader policy
Returns:
the policy
Throws:
IllegalArgumentException - for a null parameter

registerClassLoaderPolicy

public ClassLoader registerClassLoaderPolicy(String domainName,
                                             ParentPolicy parentPolicy,
                                             String parentDomainName,
                                             ClassLoaderPolicy policy)
Register a classloader policy, possibly constructing the domain

Parameters:
domainName - the domain name
parentPolicy - the parent policy
parentDomainName - the parent domain (can be null)
policy - the classloader policy
Returns:
the policy
Throws:
IllegalArgumentException - for a null parameter
IllegalStateException - if the parent domain does not exist

registerClassLoaderPolicy

public ClassLoader registerClassLoaderPolicy(String domainName,
                                             ParentPolicy parentPolicy,
                                             Loader parent,
                                             ClassLoaderPolicy policy)
Register a classloader policy, possibly constructing the domain

Parameters:
domainName - the domain name
parentPolicy - the parent policy
parent - the parent
policy - the classloader policy
Returns:
the policy
Throws:
IllegalArgumentException - for a null parameter
IllegalStateException - if the parent domain does not exist

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

@Deprecated
public org.jboss.util.loading.Translator getTranslator()
Deprecated. use translator list

Get the translator.

Returns:
the translator.

setTranslator

@Deprecated
public void setTranslator(org.jboss.util.loading.Translator translator)
Deprecated. use translator list

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

getObjectName

public ObjectName getObjectName()
Get the object name

Returns:
the object name

preRegister

public ObjectName preRegister(MBeanServer server,
                              ObjectName name)
                       throws Exception
Specified by:
preRegister in interface MBeanRegistration
Throws:
Exception

postRegister

public void postRegister(Boolean registrationDone)
Specified by:
postRegister in interface MBeanRegistration

preDeregister

public void preDeregister()
                   throws Exception
Specified by:
preDeregister in interface MBeanRegistration
Throws:
Exception

postDeregister

public void postDeregister()
Specified by:
postDeregister in interface MBeanRegistration

getDomainNames

public Set<String> getDomainNames()
Description copied from interface: ClassLoaderSystemMBean
Get the domain names

Specified by:
getDomainNames in interface ClassLoaderSystemMBean
Returns:
the domain names

getDomains

public Set<ObjectName> getDomains()
Description copied from interface: ClassLoaderSystemMBean
Get the domains

Specified by:
getDomains in interface ClassLoaderSystemMBean
Returns:
the domains

getObjectName

protected ObjectName getObjectName(ClassLoaderDomain domain)
Get an object name for the domain

Parameters:
domain - the domain
Returns:
the object name

registerDomainMBean

protected void registerDomainMBean(ClassLoaderDomain domain)
Register a domain with the MBeanServer

Parameters:
domain - the domain

unregisterDomainMBean

protected void unregisterDomainMBean(ClassLoaderDomain domain)
Unregister a domain from the MBeanServer

Parameters:
domain - the domain

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

getTranslators

public List<org.jboss.util.loading.Translator> getTranslators()
Get the policy's translators.

Returns:
the translators

setTranslators

public void setTranslators(List<org.jboss.util.loading.Translator> translators)
Set the translators.

Parameters:
translators - the translators

addTranslator

public void addTranslator(org.jboss.util.loading.Translator translator)
Add the translator.

Parameters:
translator - the translator to add
Throws:
IllegalArgumentException - for null translator

removeTranslator

public void removeTranslator(org.jboss.util.loading.Translator translator)
Remove the translator.

Parameters:
translator - the translator to remove
Throws:
IllegalArgumentException - for null translator


Copyright © 2011 JBoss, a division of Red Hat, Inc.. All Rights Reserved.