作成 2003/5/23
XDocletにさわってみました。 XDocletのEjbDocletを使って、 EJBコードの自動生成を簡単に行ってみました。
例えば、セッションビーンの以下のソースから
package sb;
/**
* @ejb.bean
* name="Hello"
* type="Stateful"
* view-type="remote"
*/
public abstract class HelloBean implements javax.ejb.SessionBean {
/**
* @ejb.interface-method
*/
public String sayHello() {
System.out.println("hello!");
return "hello!";
}
/**
* @ejb.create-method
*/
public void ejbCreate() {
}
}
以下のモジュールをジェネレートします。
EJB作るとき、毎回同じようなものたくさん作ってるなぁ、 という同じ部分以外をJavadoc部分に記述することで、 すっきり簡単になってますね。
XDolcet Webサイト
http://xdoclet.sourceforge.net/
日本語参考URL
http://www.atmarkit.co.jp/fjava/rensai2/jakarta03/jakarta03.html
http://homepage2.nifty.com/neverbird/obsolete/articles/xdoclet.html
http://on-o.com/~tkyn/wiki/pukiwiki.php?%5B%5Beclipse%A4%C7%B3%AB%C8%AF%2FJ2EE%5D%5D
実験環境
XDolcetを利用するには、AntとXDocletが必要です。 XDocletはXDoclet Webサイトからダウンロードします。 ここでは、1.2.0 Beta2を使用しました。 アーカイブを解凍して、適当なディレクトリに配置します。
実験環境にEclipseとJBoss IDEを使っていますが、 EcilpseはAnt Editor(これ便利ね)に使って、 JBoss IDEはJBossの起動とデバッグのランチャーに使っただけなので、 基本的にはIDEに依存していません。
ディレクトリ構成がうだうだしていますが、 ビルドに必要なソースは、以下の2つです。
+src/ | +-sb/ | +- HelloBean.java +- build.xml
これをEJBDocletすると、targetディレクトリ以下にいろいろ作成されます。
+src/ | +-sb/ | +- HelloBean.java + target/ | +- classes/ | +- meta-inf/ | | +- ejb-jar.xml | | +- jboss.xml | +- src/ | | +- sb/ | | +- Hello.java | | +- HelloHome.java | | +- HelloSession.java | +- hello.jar +- build.xml
HelloBean.javaは最初の説明のところのjavaソースのままです。
build.xmlでは、EjbDoclet拡張タスクを定義します。 必要なクラスパスも指定します。
<taskdef name="ejbdoclet"
classname="xdoclet.modules.ejb.EjbDocletTask"
classpathref="class.path"/>
でもって、ejbdocletタスクを使います。
<ejbdoclet
destdir="target/src"
excludedtags="@version,@author,@todo"
ejbspec="2.0"
>
<fileset dir="src">
<include name="**/*Bean.java"/>
</fileset>
<session/>
<remoteinterface/>
<homeinterface/>
<deploymentdescriptor
destdir="target/meta-inf"
/>
<jboss
version="3.0"
destdir="target/meta-inf"
/>
</ejbdoclet>
詳しいことはよく知りませんが、まあそういう感じです。
実験で使ったソースはjboss2.zipです。 ついでにCMPのサンプルも入ってます。 Eclipseの人は展開してから、インポート→既存プロジェクトをワークスペースへ 、でそのままプロジェクトとして使えます。
コード量85%カットですね。 XDoclet語を新たにおぼえる手間はありますが、いい感じです。 最近のすごいIDE(JBuilderやWASやSunOne Studio)のEJB作成ウィザード に触ってないので、EJBを作るのに何が一番簡単だ?ってのは、 一概に言えませんが、これは確かに簡単です。