org.knopflerfish.framework
public class ClassPatcher extends java.lang.Object
It uses the ASM library (http://asm.objectweb.org)
See the resource file /patches.props for a list of patched methods. This file references code in ClassPatcherWrappers.
ClassPatcherWrappers
Modifier and Type | Field and Description |
---|---|
protected boolean |
bDumpClasses |
protected BundleClassLoader |
classLoader |
protected java.util.Hashtable |
matchProps |
protected static java.util.Map |
patchers |
protected LDAPExpr |
patchesFilter |
static java.lang.String |
PROP_BID |
static java.lang.String |
PROP_CLASSNAME |
static java.lang.String |
PROP_LOCATION |
static java.lang.String |
PROP_METHODACCESS |
static java.lang.String |
PROP_METHODDESC |
static java.lang.String |
PROP_METHODNAME |
protected java.util.Map |
wrappers |
Modifier | Constructor and Description |
---|---|
protected |
ClassPatcher(BundleClassLoader classLoader) |
Modifier and Type | Method and Description |
---|---|
protected void |
addPatch(java.lang.String from,
java.lang.String to,
boolean defActive,
boolean bStatic,
java.lang.String filter) |
protected void |
dumpClassBytes(java.lang.String className,
byte[] classBytes)
Dump a byte array to a .class file
|
protected void |
dumpInfo() |
static ClassPatcher |
getInstance(BundleClassLoader classLoader) |
protected void |
init() |
protected void |
loadWrappers(java.lang.String urlS) |
protected void |
loadWrappersFromInputStream(java.io.InputStream is) |
protected void |
makeMatchProps() |
protected static void |
parseSignature(java.lang.String sig,
java.lang.String[] r) |
byte[] |
patch(java.lang.String className,
byte[] classBytes) |
protected static java.util.Map patchers
protected BundleClassLoader classLoader
protected java.util.Hashtable matchProps
public static final java.lang.String PROP_CLASSNAME
public static final java.lang.String PROP_BID
public static final java.lang.String PROP_LOCATION
public static final java.lang.String PROP_METHODNAME
public static final java.lang.String PROP_METHODACCESS
public static final java.lang.String PROP_METHODDESC
protected LDAPExpr patchesFilter
protected boolean bDumpClasses
protected java.util.Map wrappers
protected ClassPatcher(BundleClassLoader classLoader)
public static ClassPatcher getInstance(BundleClassLoader classLoader)
protected void init()
public byte[] patch(java.lang.String className, byte[] classBytes)
protected void loadWrappers(java.lang.String urlS)
protected void loadWrappersFromInputStream(java.io.InputStream is) throws java.io.IOException
java.io.IOException
protected static void parseSignature(java.lang.String sig, java.lang.String[] r)
protected void addPatch(java.lang.String from, java.lang.String to, boolean defActive, boolean bStatic, java.lang.String filter)
protected void dumpInfo()
protected void makeMatchProps()
protected void dumpClassBytes(java.lang.String className, byte[] classBytes)