作成 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を作るのに何が一番簡単だ?ってのは、 一概に言えませんが、これは確かに簡単です。