|
||||||||||
| 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 found
public static byte[] systemLoaderFindClassHook(java.lang.String name,
java.lang.ClassLoader loader)
throws java.lang.ClassNotFoundException
java.lang.ClassNotFoundExceptionpublic 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 | |||||||||