Skip to content

Instantly share code, notes, and snippets.

@krisskross
Created October 7, 2015 14:35
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save krisskross/85ec9905976a8bb09819 to your computer and use it in GitHub Desktop.
Save krisskross/85ec9905976a8bb09819 to your computer and use it in GitHub Desktop.
bytebuddy1
public class Agent3 {
public static void main(String[] args) {
premain("", ByteBuddyAgent.installOnOpenJDK());
Service service = new Service();
System.out.println(service);
}
public static void premain(String arguments, Instrumentation instrumentation) {
// System.out.println(Service.class.getCanonicalName());
new AgentBuilder.Default()
.rebase(isAnnotatedWith(ToString.class))
.transform(new AgentBuilder.Transformer() {
@Override
public DynamicType.Builder transform(DynamicType.Builder builder,
TypeDescription typeDescription) {
return builder.method(named("toString"))
.intercept(FixedValue.value("transformed"));
}
}).installOn(instrumentation);
}
public @interface ToString { }
@ToString
public static class Service {
public void execute() {
System.out.println("execute");
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment