Class 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 Detail

      • ClassRedefiner

        public ClassRedefiner()
    • Method Detail

      • 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.