- 追加された行はこの色です。
- 削除された行はこの色です。
// 下階層用テンプレート
#topicpath
----
//ここにコンテンツを記述します。
書きかけです!!!!!
APT(Annotation Processing Tool)という,Annotationをスキャンしていろいろな操作を行うツールがありますが、これをEclipseプラグインで制御する方法を調べました。色々とめんどくさいです。。
稼動確認はEclipse3.3で行いました。((Eclipse 3.2系ではFactoryを設定する画面が出てこず、うまくいきませんでした。))
**やってみる [#wd8dca8a]
やってみます。Annotationは
package nu.mine.kino.annotations;
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.SOURCE)
public @interface SpringBean {
boolean singleton() default false;
}
みたいなモノを作ってみました。このAnnotationがされたクラスは、そのクラス名のBeanIDにしてSpringのBean定義ファイルに出力されるようにしてみます。((本質じゃないんで、プロパティなどのInjectionとかはムシしてみる))このAnnotationはjar化して後に出てくるプラグインにも、実際にこのAnnotationを使用するプロジェクトにも配布します。
みたいなモノを作ってみました。このAnnotationがされたクラスは、そのクラス名のBeanIDにしてSpringのBean定義ファイルに出力されるようにしてみます((本質じゃないんで、プロパティなどのInjectionとかはムシしてみる))。このAnnotationはjar化しておいて、後に出てくるプラグインにも、このAnnotationを使用するプロジェクトにも配置します。
これを読みこんでパースする処理は、APTのフレームワークを使用します。具体的には
-com.sun.mirror.apt.AnnotationProcessorFactory
-com.sun.mirror.apt.AnnotationProcessor
などの実装クラスを作成すればOKです。詳細は後述したいと思います。
さて、上のインタフェースの実装がもうあるとして、Eclipseのプラグインを作ってみます。プラグインは
nu.mine.kino.plugin.aptsamples
というプロジェクトにします。
-MANIFEST.MF
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Aptsamples Plug-in
Bundle-SymbolicName: nu.mine.kino.plugin.aptsamples;singleton:=true
Bundle-Version: 1.0.0
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
Eclipse-LazyStart: true
Bundle-ClassPath: services.jar,
.
beansanno.jar
-plugin.xml
***関連リンク [#dca7e7c1]
-[[Introduction to Annotation Processing in Eclipse>http://www.eclipse.org/jdt/apt/introToAPT.html]]
-[[Help - Eclipse SDK>http://help.eclipse.org/stable/index.jsp?topic=/org.eclipse.jdt.doc.isv/reference/apt/overview-summary.html]]
-[[Luca Zoni - ConditionAnnotatoin>http://www.ce.unipr.it/~lzoni/conditionAnnotation.html]]
----
この記事は
#vote(おもしろかった,そうでもない)
#comment
#topicpath
SIZE(10){現在のアクセス:&counter;}