I stumbled upon a Javassist problem, when it fails to add code with insertBefore().
If someone can help, I would really appreciate this.
package test; public class TheAddress extends TheModel { static{ foo("The address!!!"); } }
package test; public class TheModel { public static void foo(String param){ System.out.println("Inside foo, param: " + param); } }
package test; import javassist.*; public class JavassistTest { public static void main(String[] args) throws Exception { ClassPool pool = ClassPool.getDefault(); CtClass clazz = pool.get("test.TheAddress"); CtMethod foo = getMethod("foo", clazz); foo.insertBefore("{ System.out.println(\"inserted before foo!\");}"); clazz.writeFile(); clazz.toClass().newInstance(); } static CtMethod getMethod(String name, CtClass target){ for (CtMethod method : target.getMethods()) { if (name.equals(method.getName())) return method; } return null; } }