Package org.apache.openjpa.enhance
Class ClassRedefiner
- java.lang.Object
-
- org.apache.openjpa.enhance.ClassRedefiner
-
public class ClassRedefiner extends java.lang.Object
Redefines the method bodies of existing classes. Supports Java 5 VMs that have a java agent installed on the command line as well as newer VMs without any-javaagent
flag.- Since:
- 1.0.0
-
-
Constructor Summary
Constructors Constructor Description ClassRedefiner()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static boolean
canRedefineClasses(Log log)
static void
redefineClasses(OpenJPAConfiguration conf, java.util.Map<java.lang.Class<?>,byte[]> classes)
For each element inclasses
, this method will redefine all the element's methods such that field accesses are intercepted in-line.
-
-
-
Method Detail
-
redefineClasses
public static void redefineClasses(OpenJPAConfiguration conf, java.util.Map<java.lang.Class<?>,byte[]> classes)
For each element inclasses
, this method will redefine all the element's methods such that field accesses are intercepted in-line. IfcanRedefineClasses(Log)
returnsfalse
, this method is a no-op.
-
canRedefineClasses
public static boolean canRedefineClasses(Log log)
- Returns:
- whether or not this VM has an instrumentation installed that
permits redefinition of classes. This assumes that all the arguments
will be modifiable classes according to
Instrumentation.isModifiableClass(java.lang.Class<?>)
, and only checks whether or not an instrumentation is available and if retransformation is possible.
-
-