書きかけです!!!!!
J2SE 5.0からAnnotationが導入されました。これはソースに注釈をつけるための機能ですが、この注釈を解釈していろいろな操作*1を行うAPT(Annotation Processing Tool)というツール(注釈プロセッサっていってますね)もJDK 5.0と一緒に配布されています。*2
さて今回はこれをEclipseプラグインで制御する方法を調べました。色々とめんどくさいです。。
稼動確認はEclipse3.3で行いました。*3
やってみます。Annotationは
package nu.mine.kino.annotations; @Target(ElementType.TYPE) @Retention(RetentionPolicy.SOURCE) public @interface SpringBean { boolean singleton() default false; }
みたいなモノを作ってみました。このAnnotationがされたクラスは、そのクラス名のBeanIDにしてSpringのBean定義ファイルに出力されるようにしてみます*4。このAnnotationはjar化しておいて、後に出てくるプラグインにも、このAnnotationを使用するプロジェクトにも配置します。
これを読みこんでパースする処理は、APTのフレームワークを使用します。具体的には
などの実装クラスを作成すればOKです。詳細は後述したいと思います。
さて、上のインタフェースの実装がもうあるとして、Eclipseのプラグインを作ってみます。プラグインは
nu.mine.kino.plugin.aptsamples
というプロジェクトにします。
Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: APT Samples Plug-in Bundle-SymbolicName: nu.mine.kino.plugin.aptsamples;singleton:=true Bundle-Version: 0.0.1 Bundle-Activator: nu.mine.kino.plugin.aptsamples.Activator Bundle-Localization: plugin Require-Bundle: org.eclipse.ui, org.eclipse.core.runtime, org.eclipse.jdt.apt.core, nu.mine.kino.plugin.log4j, org.apache.ant, org.eclipse.core.resources Eclipse-LazyStart: true Bundle-ClassPath: ., beansanno.jar, lib/commons-collections.jar, lib/oro.jar, lib/xjavadoc-1.1.jar, lib/velocity-1.4.jar
<?xml version="1.0" encoding="UTF-8"?> <?eclipse version="3.2"?> <plugin> <extension point="org.eclipse.jdt.apt.core.annotationProcessorFactory"> <factories enableDefault="true"> <factory class="nu.mine.kino.plugin.aptsamples. SpringAnnotationProcessorFactory"/> </factories> </extension> </plugin>org.eclipse.jdt.apt.core.annotationProcessorFactory?拡張ポイントを使用しています。Javaプロジェクトの設定画面に「どのcom.sun.mirror.apt.AnnotationProcessorFactory?を使用するか」を設定する画面があるのですが、上の指定により、その画面にこのプラグインが表示されるようになります。具体的には各プロジェクトのプロパティの
Java Compiler >> Annotation Processing >> Factory Pathですね。実際の画面はこんな感じ。
この記事は
現在のアクセス:13787