public class PointCutClassTransformer extends java.lang.Object implements ContextClassTransformer
PointCut
s.
Certain classes are always skipped based on their full class name.ClassNameFilter
Modifier and Type | Field and Description |
---|---|
protected java.util.Collection<PointCut> |
pointcuts |
Modifier | Constructor and Description |
---|---|
protected |
PointCutClassTransformer(InstrumentationProxy pInstrumentation,
boolean pRetransformSupported) |
Modifier and Type | Method and Description |
---|---|
static boolean |
canModifyClassStructure(java.lang.ClassLoader classLoader,
java.lang.Class<?> classBeingRedefined) |
java.lang.reflect.InvocationHandler |
evaluate(java.lang.Class clazz,
TracerService tracerService,
java.lang.Object className,
java.lang.Object methodName,
java.lang.Object methodDesc,
boolean ignoreApdex,
java.lang.Object[] args) |
ClassNameFilter |
getClassNameFilter() |
protected int |
getClassReaderFlags() |
ClassMatchVisitorFactory |
getMatcher() |
java.util.Collection<PointCut> |
getPointcuts() |
protected com.newrelic.agent.instrumentation.PointCutClassTransformer.WeavingLoaderImpl |
getWeavingLoader(java.lang.ClassLoader loader) |
protected com.newrelic.agent.instrumentation.PointCutClassTransformer.WeavingLoaderImpl |
getWeavingLoader(java.lang.ClassLoader loader,
boolean pIsRetrans) |
static boolean |
hasBeenLoaded(java.lang.Class<?> clazz) |
protected boolean |
isExcluded(java.lang.String className) |
protected boolean |
isIncluded(java.lang.String className) |
static boolean |
isInstrumented(java.lang.Class<?> clazz) |
static boolean |
isInstrumentedAndModified(java.lang.Class<?> clazz) |
protected boolean |
isRetransformSupported()
Gets the field retransformSupported.
|
static boolean |
isValidClassName(java.lang.String className) |
protected boolean |
shouldTransform(java.lang.ClassLoader loader,
java.lang.String className,
byte[] classfileBuffer) |
byte[] |
transform(java.lang.ClassLoader loader,
java.lang.String className,
java.lang.Class<?> classBeingRedefined,
java.security.ProtectionDomain protectionDomain,
byte[] classfileBuffer,
InstrumentationContext context,
OptimizedClassMatcher.Match match) |
protected final java.util.Collection<PointCut> pointcuts
protected PointCutClassTransformer(InstrumentationProxy pInstrumentation, boolean pRetransformSupported)
public ClassMatchVisitorFactory getMatcher()
public java.util.Collection<PointCut> getPointcuts()
public byte[] transform(java.lang.ClassLoader loader, java.lang.String className, java.lang.Class<?> classBeingRedefined, java.security.ProtectionDomain protectionDomain, byte[] classfileBuffer, InstrumentationContext context, OptimizedClassMatcher.Match match) throws java.lang.instrument.IllegalClassFormatException
transform
in interface ContextClassTransformer
java.lang.instrument.IllegalClassFormatException
protected boolean shouldTransform(java.lang.ClassLoader loader, java.lang.String className, byte[] classfileBuffer)
protected boolean isIncluded(java.lang.String className)
protected boolean isExcluded(java.lang.String className)
protected boolean isRetransformSupported()
protected int getClassReaderFlags()
protected com.newrelic.agent.instrumentation.PointCutClassTransformer.WeavingLoaderImpl getWeavingLoader(java.lang.ClassLoader loader)
protected com.newrelic.agent.instrumentation.PointCutClassTransformer.WeavingLoaderImpl getWeavingLoader(java.lang.ClassLoader loader, boolean pIsRetrans)
public final ClassNameFilter getClassNameFilter()
public java.lang.reflect.InvocationHandler evaluate(java.lang.Class clazz, TracerService tracerService, java.lang.Object className, java.lang.Object methodName, java.lang.Object methodDesc, boolean ignoreApdex, java.lang.Object[] args)
public static boolean isInstrumented(java.lang.Class<?> clazz)
public static boolean isInstrumentedAndModified(java.lang.Class<?> clazz)
public static boolean canModifyClassStructure(java.lang.ClassLoader classLoader, java.lang.Class<?> classBeingRedefined)
public static boolean hasBeenLoaded(java.lang.Class<?> clazz)
public static boolean isValidClassName(java.lang.String className)