米Sun Microsystemsの川口耕介氏は9日、「Annotation mock builder」というツールを発表した。同ツールは、Javaアノテーションに対するモッククラス(以下、アノテーションモック)を自動的に作成するためのもの。これまであまり注目されてこなかった技術であるが、Google発のDIフレームワークであるGuiceが採用したことから注目が集まっている。

アノテーションモックを作成すると何が嬉しいのか。それは、「アノテーションのインスタンスを自由に作成できる」ということになる。通常、アノテーションのインスタンスを作成するのはJVMの役目であり、プログラムは実行時にリフレクションを用いてインスタンスを取得し、情報を読み取る。アノテーションモックを利用すれば、プログラムを「アノテーションのインスタンスを取得する部分」と「アノテーションのインスタンスから得た情報に応じて動作する部分」に分け、お互いに干渉しあうことなくコードを修正できる可能性がある。

さっそく動かしてみる

ではさっそく動かしてみたいと思うが、現在はプロジェクトがまだできたばかりということもあり、ドキュメントらしきものはほとんど用意されていないし、ここで紹介する動作方法も将来大幅に変更されるかもしれない。この点はあらかじめお断りしておく。筆者はJava SE 6.0、Maven2.0.6がインストールされた環境で動作確認を行った。

Annotation mock builderはMaven2のプラグインとして動作する。現在、同プラグインはJava.netが管理するリポジトリの中に用意されているので、Maven2がそのリポジトリからプラグインをダウンロードするよう設定してほしい。なお、Annotation mock builderは、Maven2のダウンロード機能を用いて取得できるJarファイルに対して機能する。同Jarファイル内に含まれるクラスファイルの情報をもとにモックが作成される仕組みだ。したがって、どのJarファイルを対象とするのかについての指定も必要だ。

Maven2プロジェクトを作成

まず、テスト用のプロジェクトを作成する。ここでは、グループ名、アーティファクト名、ともに「annotationMockBuilderExample」とした。

mvn -DgroupId=annotationMockBuilderExample -DartifactId=annotationMockBuilderExample archetype:create