org.knopflerfish.framework
Class ClassPatcher
java.lang.Object
org.knopflerfish.framework.ClassPatcher
public class ClassPatcher
- extends java.lang.Object
This class contains byte code-manipulation functions for
patching loaded bundle classes with custom wrapper methods.
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.
- See Also:
ClassPatcherWrappers
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
patchers
protected static java.util.Map patchers
classLoader
protected BundleClassLoader classLoader
matchProps
protected java.util.Hashtable matchProps
PROP_CLASSNAME
public static final java.lang.String PROP_CLASSNAME
- See Also:
- Constant Field Values
PROP_BID
public static final java.lang.String PROP_BID
- See Also:
- Constant Field Values
PROP_LOCATION
public static final java.lang.String PROP_LOCATION
- See Also:
- Constant Field Values
PROP_METHODNAME
public static final java.lang.String PROP_METHODNAME
- See Also:
- Constant Field Values
PROP_METHODACCESS
public static final java.lang.String PROP_METHODACCESS
- See Also:
- Constant Field Values
PROP_METHODDESC
public static final java.lang.String PROP_METHODDESC
- See Also:
- Constant Field Values
patchesFilter
protected LDAPExpr patchesFilter
bDumpClasses
protected boolean bDumpClasses
wrappers
protected java.util.Map wrappers
ClassPatcher
protected ClassPatcher(BundleClassLoader classLoader)
getInstance
public static ClassPatcher getInstance(BundleClassLoader classLoader)
init
protected void init()
patch
public byte[] patch(java.lang.String className,
byte[] classBytes)
loadWrappers
protected void loadWrappers(java.lang.String urlS)
loadWrappersFromInputStream
protected void loadWrappersFromInputStream(java.io.InputStream is)
throws java.io.IOException
- Throws:
java.io.IOException
parseSignature
protected static void parseSignature(java.lang.String sig,
java.lang.String[] r)
addPatch
protected void addPatch(java.lang.String from,
java.lang.String to,
boolean defActive,
boolean bStatic,
java.lang.String filter)
dumpInfo
protected void dumpInfo()
makeMatchProps
protected void makeMatchProps()
dumpClassBytes
protected void dumpClassBytes(java.lang.String className,
byte[] classBytes)
- Dump a byte array to a .class file