public class InstrumentationProvider
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
private java.lang.instrument.Instrumentation |
instrumentation |
private Transformer |
transformer |
Constructor and Description |
---|
InstrumentationProvider(java.lang.instrument.Instrumentation inst,
Transformer transformer) |
Modifier and Type | Method and Description |
---|---|
private java.lang.Class |
findClass(java.lang.String className) |
byte[] |
findClassBody(java.lang.String className)
Finds class object corresponding to the class name and returns its
bytecode.
|
private byte[] |
getClassBody(java.lang.Class clazz) |
void |
getClassesNames(java.util.concurrent.LinkedBlockingQueue<java.lang.String> queue,
java.lang.Boolean abort)
Inserts names of classes into queue.
|
void |
setClassBody(java.lang.String cname,
byte[] nwBody) |
private final Transformer transformer
private final java.lang.instrument.Instrumentation instrumentation
InstrumentationProvider(java.lang.instrument.Instrumentation inst, Transformer transformer)
public void setClassBody(java.lang.String cname, byte[] nwBody) throws java.lang.instrument.UnmodifiableClassException
java.lang.instrument.UnmodifiableClassException
private byte[] getClassBody(java.lang.Class clazz) throws java.lang.instrument.UnmodifiableClassException
java.lang.instrument.UnmodifiableClassException
public byte[] findClassBody(java.lang.String className) throws java.lang.instrument.UnmodifiableClassException
className
- name of class we want to getjava.lang.instrument.UnmodifiableClassException
- if the class can not be retransformedprivate java.lang.Class findClass(java.lang.String className)
public void getClassesNames(java.util.concurrent.LinkedBlockingQueue<java.lang.String> queue, java.lang.Boolean abort) throws java.lang.InterruptedException
queue
- output queueabort
- abort signaljava.lang.InterruptedException