JavaAgents 사용하기.
javaagent 제작에대한 국내 자료가 상당히 없는거같다. 그나마 제니퍼소프트에서 만드는 제니퍼 자료가 구할만한 자료 .. 라고 해야하나... 게다가 자바에이전트에대한 설명은 무지 어렵거나 스쳐지나갈뿐 ....
아무튼
설명이 되어있는 자바독은
http://docs.oracle.com/javase/8/docs/api/java/lang/instrument/package-summary.html
자바 에이전트의 기능은 하나라고 생각한다.
다른 함수(main) 이 실행되기전에 혹은 실행하면서, JVM 뜨면서 등으로 클래스를 로드하고 수행해주는 역할 정도일거다.
본 블로그에서 다루는 bcel/asm 등의 bci 기술과 접목시킨다면 실시간 클래스 분석도 가능해진다. (APM 대부분이 그런 같은 방법사용)
다음 내용은
http://stackoverflow.com/questions/11898566/tutorials-about-javaagents
를 참고했다.
premain 을 이용한 예제.
1. main 과 비슷하게 premain 을 선언한다.
2. manifest.mf 혹은 .txt 파일을 만들어 Premain 에대한 정보를 준다.(Premain 의 위치)
Premain-Class: ex.ex.Example
(주의! ':'뒤에 띄어쓰기,클래스명뒤에 띄어쓰기, 마지막에 줄바꿈 꼭 할것 )
3. jar로 매니페스트와 함께 묶어주기.
4. 실행하기
java -javaagent:exagent.jar targetclass
(주의! 실행할 클래스는 자바에이전트의 선언 이후에 써야한다.)
이 방법들과 bcel, AOP 기법들을 이용해 APM을 제작하는 것이 가능하다.