项目作者: ShehanPerera

项目描述 :
This include several agents created using Byte-Buddy. Using this project we can get an idea how to create effective agents with byte-buddy.
高级语言: Shell
项目地址: git://github.com/ShehanPerera/javaagent-bytebuddy.git
创建时间: 2018-03-21T08:20:59Z
项目社区:https://github.com/ShehanPerera/javaagent-bytebuddy

开源协议:Apache License 2.0

下载


javaagent-bytebuddy

This include several agents created using Byte-Buddy. Using this project we can get an idea how to create effective agents with byte-buddy.

How to use

1. Download iavaagent-bytebuddy project

git clone https://github.com/ShehanPerera/javaagent-bytebuddy.git

2. Install the project

mvn clean package

3.Run example java progaram

  • Go to the directory

javaagent-bytebuddy/samples/example-run/target

  • Run project

java -jar example-run-1.0-SNAPSHOT.jar

Please read My blog ‘@shehanperera.office/java-agents-with-byte-buddy-93185305c9e9">Java Agents with Byte-Buddy‘ to get an idea how the codes working.

Use agents with Byte-Buddy

1. Get all methods running in program

  • Copy get-methods-1.0-SNAPSHOT.jar form javaagent-bytebuddy/samples/get-methods/target to
    javaagent-bytebuddy/samples/example-run/target

  • Run example with agent

    java -javaagent:get-methods-1.0-SNAPSHOT.jar -jar example-run-1.0-SNAPSHOT.jar

    • Results

``` Agent for get all methods
This is Sample main
This is constructor
This is Method 1
public void com.github.shehanperera.example.Method.method1()
This is Method 2
public void com.github.shehanperera.example.Method.method2()
String :parameters and number :4 and boolean :true
public void com.github.shehanperera.example.Method.method4(int,java.lang.String,boolean)
public static void com.github.shehanperera.example.Sample.main(java.lang.String[])

  1. <b>2. Get execution time of all methods </b>
  2. * Copy `execution-time-1.0-SNAPSHOT.jar` form `javaagent-bytebuddy/samples/execution-time/target` to
  3. `javaagent-bytebuddy/samples/example-run/target`
  4. * Run example with agent
  5. `java -javaagent:execution-time-1.0-SNAPSHOT.jar -jar example-run-1.0-SNAPSHOT.jar`
  6. * Results
  7. ``` Agent for time measure
  8. This is Sample main
  9. This is constructor
  10. This is Method 1
  11. public void com.github.shehanperera.example.Method.method1() took 500 milliseconds
  12. This is Method 2
  13. public void com.github.shehanperera.example.Method.method2() took 1000 milliseconds
  14. String :parameters and number :4 and boolean :true
  15. public void com.github.shehanperera.example.Method.method4(int,java.lang.String,boolean) took 1 milliseconds
  16. public static void com.github.shehanperera.example.Sample.main(java.lang.String[]) took 1522 milliseconds

Simillary we can use all other agents (get-parameters ,constructor-instrument ,add-field,add-method,ignore-class) as above way.
Just copy agnet to javaagent-bytebuddy/samples/example-run/target and run it with agent

java -javaagent:***-1.0-SNAPSHOT.jar -jar example-run-1.0-SNAPSHOT.jar