|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.tc.object.bytecode.hook.impl.ClassProcessorHelper
public class ClassProcessorHelper
Helper class called by the modified version of java.lang.ClassLoader
Nested Class Summary | |
---|---|
static class |
ClassProcessorHelper.State
ClassProcessorHelper initialization state |
static class |
ClassProcessorHelper.TcCommonLibQualifier
File filter for lib/*.jar files and lib/resources directory |
Field Summary | |
---|---|
static boolean |
USE_GLOBAL_CONTEXT
|
Constructor Summary | |
---|---|
ClassProcessorHelper()
|
Method Summary | |
---|---|
static java.lang.String |
computeAppName(java.lang.String context)
Given a context path, trim and condition it to be usable by methods such as #isDSOSessions(String) |
static void |
defineClass0Post(java.lang.Class clazz,
java.lang.ClassLoader caller)
Post process class during definition |
static byte[] |
defineClass0Pre(java.lang.ClassLoader caller,
java.lang.String name,
byte[] b,
int off,
int len,
java.security.ProtectionDomain pd)
byte code instrumentation of class loaded XXX::NOTE:: Do NOT optimize to return same input byte array if the class was instrumented (I can't imagine why we would). |
static DSOContext |
getContext(java.lang.ClassLoader cl)
Get the DSOContext for this classloader |
static Manager |
getGlobalManager()
|
static Manager |
getManager(java.lang.ClassLoader caller)
WARNING: used by test framework only |
static java.net.URL |
getTCResource(java.lang.String name,
java.lang.ClassLoader cl)
Get resource URL |
static void |
initialize()
|
static boolean |
isAWDependency(java.lang.String className)
Check whether this is an AspectWerkz dependency |
static byte[] |
loadClassInternalHook(java.lang.String name,
java.lang.ClassLoader cl)
Get the exported class if defined. |
static void |
registerGlobalLoader(NamedClassLoader loader)
Deprecated. here so that old code is not broken. New classloader adapters should be registered with registerGlobalLoader(NamedClassLoader, String) to support classloader app-group substitution. |
static void |
registerGlobalLoader(NamedClassLoader loader,
java.lang.String webAppName)
Register a named classloader. |
static void |
setContext(java.lang.ClassLoader loader,
DSOContext context)
WARNING: Used by test framework only |
static void |
shutdown()
Shut down the ClassProcessorHelper |
static byte[] |
systemLoaderFindClassHook(java.lang.String name,
java.lang.ClassLoader loader)
|
static void |
systemLoaderInitialized()
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final boolean USE_GLOBAL_CONTEXT
Constructor Detail |
---|
public ClassProcessorHelper()
Method Detail |
---|
public static java.net.URL getTCResource(java.lang.String name, java.lang.ClassLoader cl)
name
- Resource namecl
- Loading classloader
public static byte[] loadClassInternalHook(java.lang.String name, java.lang.ClassLoader cl) throws java.lang.ClassNotFoundException
name
- Class namecl
- Classloader
java.lang.ClassNotFoundException
- If class not foundpublic static byte[] systemLoaderFindClassHook(java.lang.String name, java.lang.ClassLoader loader) throws java.lang.ClassNotFoundException
java.lang.ClassNotFoundException
public static void initialize()
@Deprecated public static void registerGlobalLoader(NamedClassLoader loader)
registerGlobalLoader(NamedClassLoader, String)
to support classloader app-group substitution.
public static void registerGlobalLoader(NamedClassLoader loader, java.lang.String webAppName)
webAppName
- the name of a web application that this is the loader for; or null if this is not a web
application classloader.public static void shutdown()
public static java.lang.String computeAppName(java.lang.String context)
#isDSOSessions(String)
context
- a servlet context path, as from HttpServletContext#getPath(); null, "", "/", or "//" will be
interpreted as ROOT context.
public static void setContext(java.lang.ClassLoader loader, DSOContext context)
loader
- Loadercontext
- DSOContextpublic static Manager getManager(java.lang.ClassLoader caller)
public static DSOContext getContext(java.lang.ClassLoader cl)
cl
- Loader
public static byte[] defineClass0Pre(java.lang.ClassLoader caller, java.lang.String name, byte[] b, int off, int len, java.security.ProtectionDomain pd)
caller
- Loader defining classname
- Class nameb
- Dataoff
- Offset into blen
- Length of class datapd
- Protection domain for class
ClassLoaderPreProcessorImpl
public static void defineClass0Post(java.lang.Class clazz, java.lang.ClassLoader caller)
clazz
- Class being definedcaller
- Classloader doing definitionpublic static Manager getGlobalManager()
public static boolean isAWDependency(java.lang.String className)
className
- Class name
public static void systemLoaderInitialized()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |