アノテーションによるアサーション(その3 java agent 編)
必要なファイルの用意
bytecode instrumentation に必要なファイル
- assertion-agent-all-0.0.8.jar
- @NotNull アノテーションや weaving を行うクラスが含まれる jar ファイル
- javassist-3.10.0.GA.jar
- agent から使用される jar ファイル
- commons-io-1.4.jar
- agent から使用される jar ファイル
実行時に必要なファイル
- assertion-constraints-0.0.8.jar
- @NotNull アノテーションが格納されているjarファイル
java agent 用ファイルの配置
bytecode instrumentation に必要なファイルすべてを同一フォルダ内に配置します。
java コマンドライン用の設定方法
java -javaagent:<assertion-agent-all-0.0.8.jarのパス> -cp <assertion-constraints-0.0.8.jarのパス>;<アプリケーションのクラスパス...> <メインクラス>
例
java -javaagent:agent_lib/assertion-agent-all-0.0.8.jar -cp lib\assertion-constraints-0.0.8.jar;classes NullParamCase
サンプル(batchはwindows用)
- src
- テスト用ソースフォルダ
- classes
- テスト用クラスフォルダ
- agent_lib
- agent が使用するライブラリ用フォルダ
- lib
- 実行時に使用するライブラリフォルダ
- compile.bat
- テスト用ソースのコンパイル用バッチ
- run_without_loadtime_weaving.bat
- load-time weaving を行わないでテスト用ソースを実行。(AssertionErrorが発生しません)
- run_with_loadtime_weaving.bat
- load-time weaving 環境下でテスト用ソースを実行。(AssertionErrorが発生します)