by
Version 1.1 - 2000/07/18
AntはEnterprise Java Beans (EJB)を開発するためのたくさんのオプショナルタスクを用意しています。 一般的に、これらのタスクはベンダーのEJBサーバに固有なものです。 今のところ、Weblogic 4.5.1と5.1 EJBサー バをサポートしています 。将来的には、他のEJBサーバ製品についてもサポー トしたいと考えています。
タスク | アプリケーションサーバ |
ddcreator | Weblogic 4.5.1 |
ejbc | Weblogic 4.5.1 |
wlrun | Weblogic 4.5.1 and 5.1 |
wlstop | Weblogic 4.5.1 and 5.1 |
ejbjar | Weblogic 5.1 |
ddcreatorはWeblogicのテキストベースの展開記述子のセットを、シリアライズされたEJB展開記述子にコンパイルします。 どのテキストベースの配備記述子が選択され、コンパイルされるかは、Antの標準的な包含・除外選択メカニズムを基にしています。
属性 | 説明 | 必須 |
descriptors | 記述子が選択される際に、基準となるディレクトリ | はい |
dest | シリアライズされた展開記述子が書き込まれるディレクトリ | Yes |
classpath | ベースとなるWeblogicのddcreatorツールを起動するためのクラスパス。
これは weblogic.ejb.utils.DDCreator クラスを含んでいる必要があります。 |
No |
<ddcreator descriptors="${dd.dir}" dest="${gen.classes}" classpath="${descriptorbuild.classpath}"> <include name="*.txt" /> </ddcreator>
ejbcタスクは、Weblogicのejbcツールを起動します。このツールはシリアライズされた展開記述子を受取り、様々なEJBインターフェースとBeanクラスをテストし、WeblogicのEJBコンテナにBean(EJB)を展開するために必要なサポートクラスを生成します。 生成されるサポートクラスには、RMIスタブとスケルトン、EJBのホームインターフェース、リモートインターフェースが含まれます。
Antタスクがこのツールを起動することにより、いくつかのBean(EJB)を一つの操作だけでコンパイルすることができます。
コンパイルされるBean(EJB)は、シリアライズされた展開記述子をインクルードすることにより選択されます。
標準のantのinclude
とexclude
構成により、インクルードされる展開記述子を選択することができます。
それぞれの記述子は、生成されたクラスが古くて再コンパイルする必要がないかを決めるためにチェックされます。 展開記述子はリモートインターフェースやホームインターフェース、実装クラスを発見するためにデシリアライズされます。 対応するソースファイルが決定され、ファイルの更新日時がチェックされます。 ファイルの更新日時とシリアライズされた展開記述子の更新日時が、クラスファイルの更新日時と比較され、クラスファイルが無いか、 クラスファイルが古い場合にはejbcツールが起動され、新しいクラスファイルが作成されます。
属性 | 説明 | 必須 |
descriptors | シリアライズされた配備記述子が選択されるときに基準となるディレクトリ | Yes |
dest | 生成されたクラス、RMIスタブ、RMIスケルトンが書き込まれるディレクトリ | Yes |
manifest | 書き込まれるマニフェスト・ファイルの名前。このファイルは処理されたEJBのエントリを含む | Yes |
src | ホーム・インターフェース、リモート・インターフェース、Bean実装クラスのソース・ファイルを含む ディレクトリ・ツリーの基準となるディレクトリ | Yes |
classpath | このクラスパスには、weblogic.ejbc クラスと、処理の対象となるBean、ホーム・インターフェース、
リモート・インターフェース等のクラスファイルの両方を含んでいる必要がある。 |
No |
<ejbc descriptors="${gen.classes}" src="${src.dir}" dest="${gen.classes}" manifest="${build.manifest}" classpath="${descriptorbuild.classpath}"> <include name="*.ser" /> </ejbc>
wlrun
タスクはweblogicサーバを起動するために使われる。
このタスクは、weblogicのインスタンスを別のJava仮想マシンの中で動かします。
Weblogicのインスタンスの動作を制御するために、いくつものパラメータが使われます。
タスク、つまりAntはweblogicのインスタンスが止まるまでは完了しないことに注意しなければな
りません。
属性 | 説明 | Required必須 |
home | Weblogicのホームとして使われる場所。weblogicがインストールされているディレクトリ。 | Yes |
classpath | Weblogic サーバを走らせるJava仮想マシンに使われるクラスパス。 これには通常Weblogicのブート・クラスパスがセットされます。 | Yes |
wlclasspath | Weblogicサーバが使うweblogicのクラスパス | No |
properties | weblogicホーム・ディレクトリにある、サーバのプロパティ・ファイルのファイル名です。 このファイルはweblogicのインスタンスを制御するために使われます。 | Yes |
name | weblogicホームにある、起動されるweblogicサーバの名前。 デフォルトは"myserver"です。 | No |
policy | Weblogicホーム・ディレクトリにあるセキュリティ・ポリシー・ファイルの名前。
もし指定されていなければ、デフォルトのポリシー・ファイルweblogic.policy が使われます。 |
No |
jvmargs | Weblogicインスタンスを動かすために使われるJava仮想マシンに渡す追加の引数文字列です。 | No |
args | Weblogicインスタンスに渡される追加の引数文字列 | No |
wlstop
タスクは、現在動いているweblogicインスタンスを停止するために使われます。
インスタンスを停止するためには、ユーザネームとパスワードの両方を与える必要があります。
これらはインスタンスを停止するためのビルド・スクリプトの中に平文で(暗号化されずに)格納されます。
セキュリティ上の理由で、このタスクは開発環境だけに適しています。
属性 | 説明 | 必須 |
classpath | Weblogicのシャットダウン・コメント[訳注:シャットダウン・コマンドの間違い?]を動かすJVMにより使われるクラスパス | Yes |
user | サーバをシャットダウンするときに使われるアカウントのユーザ名 | Yes |
password | userパラメータで指定されたアカウントに対するパスワード | Yes |
url | T3コネクタに対してリッスンするポートを記述したURL。例えば、t3://localhost:7001 | Yes |
delay | サーバが停止してからの遅延時間を、秒単位で指定。デフォルトは、ただちにシャットダウン。 | No |
このタスクは、任意のEJB1.1 jar ファイルのビルドをサポートするために設計されました。 現在サポートしているのは、'vanilla' EJB1.1 jarファイルです - 例えば、ユーザが生成したクラスファイルと、 配備記述子だけを含むような。ネストした要素がベンダ固有の配備ツールをサポートするためにサポートされています。 [訳注:"ネストした要素"とは、具体的にどういうことなのか不明] 今のところ、ネストした要素は、Weblogic 5.1のweblogic.ejbcツールを用いてセッション/エンティティBeanをビルドするためと、 TOPLink for Weblogic 2.5.1-enabledなエンティティBeanをビルドするために用意されています。
このタスクは、ejb jar ファイルを作るための2つのアプローチをサポートしています。
一つめのアプローチは、配備記述子ファイルの特別な命名規約を仮定します。
例えば、Account Beanに対しては、配備記述子はAccount-ejb-jar.xml
のようになります。
この命名規約により、タスクは、ソース・ツリーの中での位置によらずに配備記述子ファイルを識別できます。
また、生成する.jarファイルのファイル名を決める際にも利用できます。
先ほどの例では、.jarファイルはAccount.jar
となります。
ベンダー特有のファイルについては同様にファイル名がつけられていると仮定しています。
上のBeanのための、Weblogic固有の追加情報を定義した配備記述子ファイルは、Acount-weblogic-ejb-jar.xml
となります。
2つめのアプローチは、命名規約を必要としません。
このアプローチでは、得られたejb jarに対して指定されたjar名を付与します。
もし、Jar名がある場合には、ネーミング・ルールは必要ありません。
もしjar名が指定されていない場合には、配備記述子ファイルは命名規約に従っていると期待されます。
タスクはディレクトリを操作するためのタスクとして作用し、見つかった配備記述子ファイルに対してアクションを実行します。 求めるEJB1.1が見つかり、また、アプリケーション・サーバの記述子が見つからないことが保証されるように、包含と除外が設定されているべきです。 それぞれの記述子が見つかるたびに、ejbjarは配備記述子を走査し、beanを実装したクラス・ファイルを決定します。 これらのファイルは配備記述子に従って、所定の形式のEJB Jarファイルに組み立てられます。 注意しなければならないのは、サポートクラスと呼ばれる、Beanによって使われるが、Beanのインターフェースの一部ではないクラスはjarには含まれないことです。 これらのクラスは、サポートjarファイルに集められる必要があります。
もしベンダー固有の配備要素がなければ、このタスクは単に一般的なEJB Jarを作るだけです。 このようなjarは、一般的にはベンダー固有の配備ツールへの入力として使われます。 ネストした配備対象の要素に対し、ベンダー固有の配備ツールは、ベンダーのEJBコンテナに配備するためのjarファイルを作るために使われます。 今の時点では、サポートされているのはWeblogicのejbcというツールだけです。
jarファイルは、(ソース等と比較して日付が)古い場合だけビルドされます。 それぞれの配備ツール要素は、ターゲットのjarファイルが、beanを構成するクラス・ファイルや配備記述子よりも古いかどうかを調べます。 これらがjarファイルより新しい場合にはjarファイルはリビルドされますが、そうでない場合には、jarファイルは最新であるとだけ記録されます。
属性 | 説明 | 必須 |
descriptordir | EJB配備記述子を探すときに、基準となるディレクトリ。 もしこの属性が指定されていない場合には、配備記述子は'srcdir'属性で定義したディレクトリに置かれている必要があります。 | No |
srcdir | beanを構成するクラスファイルが格納されているディレクトリ。 注意すべき点として、全てのファイルが同じディレクトリ・ツリーにある場合には、このディレクトリはdescriptordirと同じでも構いません。 | はい |
destdir | 生成されたjarファイルが格納される、基準となるディレクトリ。 jarファイルはdescriptordir名前空間の場所に対応したディレクトリに格納されます。 この属性は、タスクがジェネリックなjarを生成する場合のみ利用されます。 (例えば、ベンダー固有ではない配備要素が指定された場合) | はい |
basejarname | 生成されたjarファイルの基となる名前。この要素が指定されていた場合には、 ジェネリックなjarファイル名は、basejarnameをプレフィックスとして使い('genericjarsuffix'属性に指定された値をサフィックスとして使います)、 また、最終的なejb jarファイル名としても使います。(ネストした要素で指定されたサフィックスが付加されます) | No |
basenameterminator | 見つかった配備記述子の名前より部分文字列を取り出すときに使われる文字列であり、これは、関連する配備記述子(例えば、weblogic記述子)を見つけるために使われます。 例えば、ベース・ネームが'.'であり、配備記述子が'FooBean.ejb-jar.xml'の場合には、'FooBean'がベース・ネームとなります。 さらに、FooBean.weblogic-ejb-jar.xmlとFooBean.weblogic-cmp-rdbms-jar.xmlが同じように使われ、生成されるjarファイル名はFooBean-generic.jar及びFooBean-wl.jarとなります。この属性は、'basejarname'属性が使われている場合には使われません。 | いいえ、デフォルトは、'-' |
genericjarsuffix | 配備記述子のベースとなる名前に付加される文字列であり、ジェネリックなEJB jar ファイルのファイル名を決めるときに使われます | いいえ、デフォルトは、'-generic.jar' |
属性 | 説明 | 必須 |
destdir | 生成されたWeblogic用のjarファイルが格納される際の基準となるディレクトリ。 Jarファイルは、 descriptordir名前空間に対応したディレクトリに格納されます。 | Yes |
genericjarsuffix | ジェネリックなjarは、Weblogic用のjarを生成する中間段階のステップとして作成されます。 ジェネリックなjarファイルを作成する際のサフィックスは、ジェネリックなjarファイルを残しておくのでない限りは、特に重要ではありません。 しかし、サフィックスの設定と同じにしてはいけません。 | いいえ、デフォルトは、'-generic.jar' |
suffix | WebLogic EJB jar ファイルのファイル名を決める際に配備記述子に追加される文字列の値。 | いいえ、デフォルトは、'.jar' |
classpath | weblogicのejbcツールを実行する際に用いるクラス・パス。 注意すべき点として、通常、Beanをコンパイルするために必要なクラスがクラス・パスに存在する必要があります。 しかし、今は、ejbc ツールを(Antとは別の)JVMで動かさないとならない原因となっています。 | いいえ |
keepgeneric | ejbcに対するインプットとして指定されたジェネリックなファイルを保持すべきかどうかを指定する | いいえ、デフォルトは、false |
属性 | 説明 | 必須 |
destdir | 生成されたWeblogic用のjar ファイルが格納される際の基準となるディレクトリ。 Jarファイルは、 descriptordir名前空間に対応したディレクトリに格納されます。 | はい |
genericjarsuffix | ジェネリックなjarは、Weblogic用のjarを生成する中間段階のステップとして作成されます。 ジェネリックなjarファイルを作成する際のサフィックスは、ジェネリックなjarファイルを残しておくのでない限りは、特に重要ではありません。 しかし、サフィックスの設定と同じにしてはいけません。 | いいえ、デフォルトは、'-generic.jar' |
suffix | WebLogic EJB jar ファイルのファイル名を決める際に配備記述子に追加される文字列の値。 | いいえ、デフォルトは'.jar' |
classpath | weblogicのejbcツールを実行する際に用いるクラスパス。 注意すべき点として、通常、beanを構築するためのクラスファイルは、クラスパスで指定したディレクトリに格納されていなければならない。 しかし、今は、ejbc ツールを(Antとは別の)JVMで動かさないとならない原因となっている。 | いいえ |
keepgeneric | ejbcに対するインプットとして指定されたジェネリックなファイルを保持すべきかどうかを指定する | いいえ、デフォルトは、false |
toplinkdescriptor | 'descriptordir' ディレクトリに含まれる、TOPLink配備記述子ファイルの名前を指定する | はい |
toplinkdtd | TOPLink DTDファイルの位置を指定する。ファイルパス、あるいはファイルのURLのどちらでも良い。 この属性は必須ではないが、ローカルなDTDが推奨されている。 | いいえ、デフォルトは、www.objectpeople.comにあるDTDファイル |
<ejbjar srcdir="${build.classes}" descriptordir="${descriptor.dir}"> <weblogic destdir="${deploymentjars.dir}" classpath="${descriptorbuild.classpath}"/> <include name="**/*-ejb-jar.xml"/> <exclude name="**/*weblogic*.xml"/> </ejbjar>この例では、ejbjarを、Weblogic EJB コンテナ用の、単一の配備用のjarを生成するために用いています。 この例では、配備記述子のファイル名の命名規約を必要としません。 これは、一つのejb jarファイル - 'TheEJBJar.jar'を生成します。
<ejbjar srcdir="${build.classes}" descriptordir="${descriptor.dir}" basejarname="TheEJBJar"> <weblogic destdir="${deploymentjars.dir}" classpath="${descriptorbuild.classpath}"/> <include name="**/ejb-jar.xml"/> <exclude name="**/weblogic*.xml"/> </ejbjar>この例では、ejbjarを、TOPLink-enabledなWeblogic EJB コンテナ用の、エンティティ Beanのjarを生成するために用いています。 この例では、配備記述子のファイル名の命名規約を必要としません。 これは、一つのTOPLink-enabled ejb jarファイル - 'Address.jar'を生成します。
<ejbjar srcdir="${build.dir}" destdir="${solant.ejb.dir}" descriptordir="${descriptor.dir}" basejarname="Address"> <weblogictoplink destdir="${solant.ejb.dir}" classpath="${java.class.path}" keepgeneric="false" toplinkdescriptor="Address.xml" toplinkdtd="file:///dtdfiles/toplink-cmp_2_5_1.dtd" suffix=".jar"/> <include name="**/ejb-jar.xml"/> <exclude name="**/weblogic-ejb-jar.xml"/> </ejbjar>[訳注: これは西野 亨が翻訳しました.日本語訳に対するコメントがあれば、 jajakarta-report@nekoyanagi.comに送って下さい。]