メニュー

プロダクト



プログラミング


  • Java
    • Web 技術
    • メール技術
      • JavaMail
      • Apache James Mailet
    • Web フレームワーク
      • Jakarta Struts
      • Jakarta Velocity
      • Jakarta Tapestry
      • WebWork2
      • Jakarta Jetspeed
      • Apache Cocoon 2
    • DB 技術
      • JDBC
      • Hibernate
      • Apache Torque
    • DI (IoC) コンテナ
      • Spring Framework
      • Seasar2
      • Apache HiveMind
      • PicoContainer
    • 属性プログラミング
    • テスティング
      • JUnit
      • Jakarta Cactus
      • DBUnit
      • djUnit
      • FitNesse
    • ロギング
      • Apache Log4j
      • Jakarta Commons logging
    • 分散コンポーネント技術
      • EJB
    • リッチ クライアント
      • Java Web Start
    • GUI
    • XML Web サービス
      • Apache Axis
      • Apache SOAP
    • アプリケーション管理
    • トランザクション
    • 開発環境
      • Apache Ant
      • Apache Maven
      • Apache Maven2
    • Eclipse
    • Tips
  • .NET Framework
  • PHP
  • XML
    • SmartDoc
  • 正規表現
  • VB, VBA, VBScript, ASP
  • C/C++

DBMS


  • MySQL
  • PostgreSQL
  • Oracle
  • Microsoft SQL Server
  • HSQLDB
  • SQLite
  • Apache Xindice

アプリケーション サーバ



OS



バージョン管理システム



未整理


最近更新したページ
このウィキの読者になる
更新情報がメールで届きます。
このウィキの読者になる

XDoclet

Javadoc に XDoclet タグを記述することで、 Ant タスクとして XDoclet タグを処理し、さまざまなファイルを生成することができます。 Java で属性指向プログラミングを可能にします。

EJBDoclet


EJB の作成は、インターフェイス、実装、設定ファイルと、様々なファイルを作成し、それらの同期をとる必要があります。この非常に面倒な作業を簡略化することができます。具体的には、 EJB の実装に XDoclet タグを記述することで、インターフェイスのソースコードの生成、 ejb-jar.xml 設定ファイルの生成、及びアプリケーション サーバ固有の設定ファイルの生成を行うことができます。

ここでは、 Maven で EJBDoclet を使用するサンプルを示します。とはいえ、基本的には Ant で EJBDoclet を使用する方法と同じです。

EJB の実装


EJB の実装を xdoclet タグ付きで作成します。 SessionBean だと、例えば以下のようになります。

package jp.gr.java_conf.uguu.helloejb;

import javax.ejb.SessionBean;
import javax.ejb.SessionContext;

/**
 * @ejb.bean
 *     description="EJB の練習です。"
 *     name="HelloService"
 *     type="Stateless"
 *     view-type="both"
 *     jndi-name="ejb/jp/gr/java_conf/uguu/helloejb/HelloService/Remote"
 *     local-jndi-name="ejb/jp/gr/java_conf/uguu/helloejb/HelloService/Local"
 * @ejb.permission
 *     role-name="admin,user"
 * @ejb.transaction
 *     type="Required"
 */
public class HelloServiceBean implements SessionBean {
    /**
     * @ejb.interface-method
     * @ejb.transaction
     *     type="Required"
     * @ejb.permission role-name="admin,user"
     */
    public String sayHello() {
        return "hello";
    }
    public void setSessionContext(SessionContext ctx) {
    }
    public void ejbCreate() {
    }
    public void ejbRemove() {
    }
    public void ejbActivate() {
    }
    public void ejbPassivate() {
    }
}

タグについては XDoclet: @ejb Tag Reference を参照してください。

XDoclet を使用した EJB の実装では、インターフェイスを作成する必要はなく、ただ、 XDoclet タグ付きの実装を作成すれば良いだけです。

ビルド タスクの定義


Ant の場合はビルド プロセスに EJBDoclet タスクを追加することになりますが、 Maven の場合も同様です。ただ、 Maven 的にはゴールにしてしまった方が良いようですが。

<goal name="ejbdoclet">
    <taskdef
        name="ejbdoclet"
        classname="xdoclet.modules.ejb.EjbDocletTask"
        classpathref="maven.dependency.classpath"
    />
    <mkdir dir="${maven.xdoclet.ejbdoclet.destDir}"/>
    <ejbdoclet
        destdir="${maven.xdoclet.ejbdoclet.destDir}"
        ejbspec="2.0"
    >
        <fileset dir="${maven.src.dir}/java">
            <include name="${maven.xdoclet.ejbdoclet.fileset.0.include}"/>
        </fileset>
        <entitybmp/>
        <entitycmp/>
        <entitypk/>
        <session/>
        <utilobject/>
        <homeinterface/>
        <localhomeinterface/>
        <localinterface/>
        <remoteinterface/>
        <deploymentdescriptor
            destdir="${maven.xdoclet.ejbdoclet.deploymentdescriptor.0.destDir}"
        />
        <jboss
            version="${maven.xdoclet.ejbdoclet.jboss.0.Version}"
            destdir="${maven.xdoclet.ejbdoclet.jboss.0.destDir}/META-INF"
        />
    </ejbdoclet>
    <path
        id="ejbdoclet.java.compile.src.set"
        location="${maven.xdoclet.ejbdoclet.destDir}"
    />
    <maven:addPath
        id="maven.compile.src.set"
        refid="ejbdoclet.java.compile.src.set"
    />
</goal>

以上のように、 EJBDoclet タスクを呼び出すゴールを作成します。タグについては XDoclet: Ant Task Reference: ejbdoclet を参照してください。これを java:compile ゴールが走る前に走らせます。

<preGoal name="java:compile">
    <attainGoal name="ejbdoclet"/>
</preGoal>

依存 jar ファイルの定義


<dependency>
    <groupId>commons-collections</groupId>
    <artifactId>commons-collections</artifactId>
    <version>3.1</version>
</dependency>
<dependency>
    <groupId>xdoclet</groupId>
    <artifactId>xdoclet</artifactId>
    <version>1.2</version>
</dependency>
<dependency>
    <groupId>xdoclet</groupId>
    <artifactId>maven-xdoclet-plugin</artifactId>
    <version>1.2</version>
</dependency>
<dependency>
    <groupId>xdoclet</groupId>
    <artifactId>maven-xdoclet-plugin</artifactId>
    <version>1.2</version>
    <type>plugin</type>
</dependency>
<dependency>
    <groupId>xdoclet</groupId>
    <artifactId>xdoclet-xdoclet-module</artifactId>
    <version>1.2</version>
</dependency>
<dependency>
    <groupId>xdoclet</groupId>
    <artifactId>xdoclet-ejb-module</artifactId>
    <version>1.2</version>
</dependency>
<dependency>
    <groupId>xdoclet</groupId>
    <artifactId>xdoclet-web-module</artifactId>
    <version>1.2</version>
</dependency>
<dependency>
    <groupId>xdoclet</groupId>
    <artifactId>xdoclet-jboss-module</artifactId>
    <version>1.2</version>
</dependency>
<dependency>
    <groupId>xdoclet</groupId>
    <artifactId>xdoclet-jmx-module</artifactId>
    <version>1.2</version>
</dependency>
<dependency>
    <groupId>xdoclet</groupId>
    <artifactId>xjavadoc</artifactId>
    <version>1.0.3</version>
</dependency>

これで、 Java ソースコードがコンパイルされる直前で EJBDoclet により各種ソースコード、及び ejb-jar.xml や各アプリケーション サーバ用の設定ファイルなどが生成されるようになります。

参照


2005年12月07日(水) 22:10:32 Modified by uguuxp




スマートフォン版で見る