org.jboss.web
Class WebClassLoader

java.lang.Object
  extended by java.lang.ClassLoader
      extended by org.jboss.classloading.spi.DelegatingClassLoader
          extended by org.jboss.web.WebClassLoader

public class WebClassLoader
extends org.jboss.classloading.spi.DelegatingClassLoader

A simple subclass of URLClassLoader that is used in conjunction with the the WebService mbean to allow dynamic loading of resources and classes from deployed ears, ejb jars and wars. A WebClassLoader is associated with a Container and must have an UnifiedClassLoader as its parent. It overrides the getURLs() method to return a different set of URLs for remote loading than what is used for local loading.

WebClassLoader has two methods meant to be overriden by subclasses: getKey() and getBytes(). The latter is a no-op in this implementation and should be overriden by subclasses with bytecode generation ability, such as the classloader used by the iiop module.

WebClassLoader subclasses must have a constructor with the same signature as the WebClassLoader constructor.

Version:
$Revision: 81030 $
Author:
Scott Stark., Sacha Labourey , Vladimir Blagojevic , Francisco Reverbel, adrian@jboss.org
See Also:
#getUrls(), setWebURLs(URL[])

Field Summary
 
Fields inherited from class org.jboss.classloading.spi.DelegatingClassLoader
standard
 
Constructor Summary
WebClassLoader(ObjectName containerName, org.jboss.classloading.spi.RealClassLoader parent)
          Creates new WebClassLoader.
 
Method Summary
 byte[] getBytes(Class clz)
          Gets the bytecodes for a given class.
 String getCodebaseString()
           
 ObjectName getContainer()
          Gets the JMX ObjectName of the WebClassLoader's container.
 String getKey()
          Gets a string key used as the key into the WebServer's loaderMap.
 URL[] getURLs()
          Get the list of URLs that should be used as the RMI annotated codebase.
 void setWebURLs(URL[] webURLs)
          Set the URLs that should be returned from this classes getURLs() override.
 
Methods inherited from class org.jboss.classloading.spi.DelegatingClassLoader
getResource, loadClass
 
Methods inherited from class java.lang.ClassLoader
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findClass, findLibrary, findLoadedClass, findResource, findResources, findSystemClass, getPackage, getPackages, getParent, getResourceAsStream, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, resolveClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

WebClassLoader

public WebClassLoader(ObjectName containerName,
                      org.jboss.classloading.spi.RealClassLoader parent)
Creates new WebClassLoader. Subclasses must have a constructor with the same signature.

Parameters:
containerName - the container name
parent - the parent real classloader
Method Detail

getKey

public String getKey()
Gets a string key used as the key into the WebServer's loaderMap.


getContainer

public ObjectName getContainer()
Gets the JMX ObjectName of the WebClassLoader's container.


getURLs

public URL[] getURLs()
Get the list of URLs that should be used as the RMI annotated codebase. This is the URLs previously set via setWebURLs.

Returns:
the local web URLs if not null

setWebURLs

public void setWebURLs(URL[] webURLs)
Set the URLs that should be returned from this classes getURLs() override.

Parameters:
webURLs, - the set of URL codebases to be used for remote class loading.

getCodebaseString

public String getCodebaseString()

getBytes

public byte[] getBytes(Class clz)
Gets the bytecodes for a given class. This implementation always returns null, indicating that it is unable to get bytecodes for any class. Should be overridden by subclasses with bytecode generation capability (such as the classloader used by the iiop module, which generates IIOP stubs on the fly).

Parameters:
cls - a Class
Returns:
a byte array with the bytecodes for class cls, or null if this classloader is unable to return such byte array.


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