|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object java.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" (for Tomcat 5.x) or "lib" (for Tomcat 6.x) 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, ENABLE_CLEAR_REFERENCES, 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, 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 usedMethod Detail |
---|
public void addTransformer(ClassFileTransformer transformer)
addTransformer
method.
Typically called through ReflectiveLoadTimeWeaver.
LoadTimeWeaver.addTransformer(java.lang.instrument.ClassFileTransformer)
,
ReflectiveLoadTimeWeaver
public 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.WebappClassLoader
public 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 |