| 
 | ||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectjava.lang.ClassLoader
java.security.SecureClassLoader
java.net.URLClassLoader
org.apache.catalina.loader.WebappClassLoader
org.springframework.instrument.classloading.tomcat.TomcatInstrumentableClassLoader
public class TomcatInstrumentableClassLoader
Extension of Tomcat's default class loader which adds instrumentation to loaded classes without the need to use a VM-wide agent.
To be registered using a Loader tag in Tomcat's Context
 definition in the server.xml file, with the Spring-provided
 "spring-tomcat-weaver.jar" file deployed into Tomcat's "server/lib" directory.
 The required configuration tag looks as follows:
 
<Loader loaderClass="org.springframework.instrument.classloading.tomcat.TomcatInstrumentableClassLoader"/>
Typically used in combination with a
 ReflectiveLoadTimeWeaver
 defined in the Spring application context. The addTransformer and
 getThrowawayClassLoader methods mirror the corresponding methods
 in the LoadTimeWeaver interface, as expected by ReflectiveLoadTimeWeaver.
 
See the PetClinic sample application for a full example of this ClassLoader in action.
NOTE: Requires Apache Tomcat version 5.0 or higher.
addTransformer(java.lang.instrument.ClassFileTransformer), 
getThrowawayClassLoader(), 
ReflectiveLoadTimeWeaver| Nested Class Summary | 
|---|
| Nested classes/interfaces inherited from class org.apache.catalina.loader.WebappClassLoader | 
|---|
| org.apache.catalina.loader.WebappClassLoader.PrivilegedFindResource | 
| Field Summary | 
|---|
| Fields inherited from class org.apache.catalina.loader.WebappClassLoader | 
|---|
| allPermission, delegate, files, hasExternalRepositories, jarFiles, jarNames, jarPath, jarRealFiles, lastJarAccessed, lastModifiedDates, loaderDir, loaderPC, log, needConvert, notFoundResources, packageTriggers, parent, paths, permissionList, repositories, repositoryURLs, resourceEntries, resources, securityManager, sm, started, system, triggers | 
| Fields inherited from interface org.apache.catalina.Lifecycle | 
|---|
| AFTER_START_EVENT, AFTER_STOP_EVENT, BEFORE_START_EVENT, BEFORE_STOP_EVENT, DESTROY_EVENT, INIT_EVENT, PERIODIC_EVENT, START_EVENT, STOP_EVENT | 
| Constructor Summary | |
|---|---|
| TomcatInstrumentableClassLoader()Create a new TomcatInstrumentableClassLoaderusing the
 current context class loader. | |
| TomcatInstrumentableClassLoader(ClassLoader parent)Create a new TomcatInstrumentableClassLoaderwith the
 supplied class loader as parent. | |
| Method Summary | |
|---|---|
|  void | addTransformer(ClassFileTransformer transformer)Delegate for LoadTimeWeaver's addTransformermethod. | 
| protected  org.apache.catalina.loader.ResourceEntry | findResourceInternal(String name,
                     String path) | 
|  ClassLoader | getThrowawayClassLoader()Delegate for LoadTimeWeaver's getThrowawayClassLoadermethod. | 
|  String | toString() | 
| Methods inherited from class org.apache.catalina.loader.WebappClassLoader | 
|---|
| addLifecycleListener, addPermission, addPermission, addPermission, addRepository, addURL, cleanElCache, clearReferences, closeJARs, deleteDir, filter, findClass, findClassInternal, findLifecycleListeners, findLoadedClass0, findLoadedResource, findRepositories, findResource, findResourceInternal, findResources, getAntiJARLocking, getDelegate, getJarPath, getPermissions, getResource, getResourceAsStream, getResources, getURI, getURL, getURLs, isPackageSealed, loadClass, loadClass, loadedByThisOrChild, modified, nullInstance, openJARs, refreshPolicy, removeLifecycleListener, setAntiJARLocking, setDelegate, setJarPath, setParentClassLoader, setResources, setWorkDir, start, stop, validate, validateJarFile | 
| Methods inherited from class java.net.URLClassLoader | 
|---|
| definePackage, newInstance, newInstance | 
| Methods inherited from class java.security.SecureClassLoader | 
|---|
| defineClass, defineClass | 
| Methods inherited from class java.lang.Object | 
|---|
| clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait | 
| Constructor Detail | 
|---|
public TomcatInstrumentableClassLoader()
TomcatInstrumentableClassLoader using the
 current context class loader.
TomcatInstrumentableClassLoader(ClassLoader)public TomcatInstrumentableClassLoader(ClassLoader parent)
TomcatInstrumentableClassLoader with the
 supplied class loader as parent.
parent - the parent ClassLoader to be used| Method Detail | 
|---|
public void addTransformer(ClassFileTransformer transformer)
addTransformer method.
 Typically called through ReflectiveLoadTimeWeaver.
LoadTimeWeaver.addTransformer(java.lang.instrument.ClassFileTransformer), 
ReflectiveLoadTimeWeaverpublic ClassLoader getThrowawayClassLoader()
getThrowawayClassLoader method.
 Typically called through ReflectiveLoadTimeWeaver.
LoadTimeWeaver.getThrowawayClassLoader(), 
ReflectiveLoadTimeWeaver
protected org.apache.catalina.loader.ResourceEntry findResourceInternal(String name,
                                                                        String path)
findResourceInternal in class org.apache.catalina.loader.WebappClassLoaderpublic String toString()
toString in class org.apache.catalina.loader.WebappClassLoader| 
 | ||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||