package railo.runtime.instrumentation; import java.lang.instrument.ClassDefinition; import java.lang.instrument.Instrumentation; import java.lang.instrument.UnmodifiableClassException; public class InstrumentationUtil { /** * redefine the class with the given byte array * @param clazz * @param barr * @return */ public static boolean redefineClassEL(Class clazz, byte[] barr){ Instrumentation inst = InstrumentationFactory.getInstance(); if(inst!=null && inst.isRedefineClassesSupported()) { try { inst.redefineClasses(new ClassDefinition(clazz,barr)); return true; } catch (Throwable t) {t.printStackTrace();} } return false; } public static void redefineClass(Class clazz, byte[] barr) throws ClassNotFoundException, UnmodifiableClassException{ Instrumentation inst = InstrumentationFactory.getInstance(); inst.redefineClasses(new ClassDefinition(clazz,barr)); } public static boolean isSupported() { Instrumentation inst = InstrumentationFactory.getInstance(); return (inst!=null && inst.isRedefineClassesSupported()); } }