|
||||||||||
| 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 TomcatInstrumentableClassLoader using the
current context class loader. |
|
TomcatInstrumentableClassLoader(ClassLoader parent)
Create a new TomcatInstrumentableClassLoader with the
supplied class loader as parent. |
|
| Method Summary | |
|---|---|
void |
addTransformer(ClassFileTransformer transformer)
Delegate for LoadTimeWeaver's addTransformer method. |
protected org.apache.catalina.loader.ResourceEntry |
findResourceInternal(String name,
String path)
|
ClassLoader |
getThrowawayClassLoader()
Delegate for LoadTimeWeaver's getThrowawayClassLoader method. |
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 | |||||||||