Class ClassRedefiner

java.lang.Object
org.apache.openjpa.enhance.ClassRedefiner

public class ClassRedefiner extends 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 Details

    • ClassRedefiner

      public ClassRedefiner()
  • Method Details

    • redefineClasses

      public static void redefineClasses(OpenJPAConfiguration conf, Map<Class<?>,byte[]> classes)
      For each element in classes, this method will redefine all the element's methods such that field accesses are intercepted in-line. If canRedefineClasses(Log) returns false, 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.