Class 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 in classes, this method will redefine all the element's methods such that field accesses are intercepted in-line.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • ClassRedefiner

        public ClassRedefiner()
    • Method Detail

      • redefineClasses

        public static void redefineClasses​(OpenJPAConfiguration conf,
                                           java.util.Map<java.lang.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.