Ant スクリプトを使用して J2C コンポーネントを起動することができます。
また、そのような Ant スクリプトはワークベンチまたはコマンド行から呼び出すことができます。
アプリケーション開発を実行するとき、アプリケーション成果物のソースはメタデータ・リポジトリーから
取得されるのが非常に一般的です。
通常、このようなリポジトリーがブラウズされて成果物を探し、成果物のサブセットが選択され、
そのサブセットからアプリケーション・コンポーネントが生成されます。
このプロセスは通常、実際のインポートを行うために基盤となる API を起動するワークベンチを介して行われます。
同じインポートを、ワークベンチと基盤 API の間の相互作用を模倣する Ant 定義を使用して実行することもできます。
Apache Ant は Java ベースのビルド・ツールです。
Ant 構成ファイルには、コマンド行からもワークベンチ内からも起動できるという利点があります。
Ant 構成ファイルは最も重要な XML ファイルの 1 つなので、完全な手作業で変更またはビルドでき、
ワークベンチをロードしなくても再実行できます。
Ant 構成ファイルは、さまざまなタスクを実行するターゲット・ツリーで構成されます。
ターゲット内のタスクは、パイプライン様式で処理されます。
各タスクは、特定のタスク・インターフェースを実装しているオブジェクトによって実行されます。
Ant 構成ファイルが起動されると、各タスクに対応するプロパティーが実装タスク・オブジェクトにロードされます。
情報がロードされると、タスク・オブジェクトが起動されます。
データ・インポート・サイクル
一般的に、インポート・サイクルには 2 つのステップが関連していて、
そのそれぞれが別々のコンポーネントで実行されます。
- ディスカバリー・エージェントは、実際のデータ・インポートを実行し、インポート結果 と呼ばれる
所有メタデータを作成します。
- リソース・ライターは、インポート結果を利用し、適切なアプリケーション成果物を作成します。
インポートおよび生成のステップのときに、ディスカバリー・エージェントおよびリソース・ライター
で、一連のユーザー入力を提供する必要があります。
たとえばクエリー・フェーズでは、各ディスカバリー・エージェントが異なるパラメーター・セットを持ち、
それを使用して対応するメタデータ・リポジトリーでクエリーを定義します。
Ant 定義ファイルには 2 つの別個のセクションがあり、それらのセクションで、
ディスカバリー・エージェント・コンポーネントに対して 1 つ、またリソース・ライター・コンポーネントに対して 1 つ、
情報を保管します。
- Ant スクリプトの Import セクションは、以下のようなものです。
<discoveryAgent type="DiscoveryAgentName">
<importResource name="PropertyName" value="PropertyValue"/>
<importProperties>
<propertyElement name="PropetyName" value="PropertyValue"/>
</importProperties>
<searchParameters>
<propertyElement name="ParameterName"/>
</searchParameters>
</discoveryAgent>
ここで、
- discoveryAgent は、インポートに使用するディスカバリー・エージェントの名前です。
- importResource は、インポートするリソースです。
- importProperties は、メタデータ・リポジトリーに対するクエリーを形成するために必要な
情報を表すパラメーターのリストです。
- searchParameters は、アプリケーション成果物としてインポートしたい、結果ツリー上の選択ノードです。
- propertyElement は、リスト (プロパティー名とプロパティー値のペア) です。
- アプリケーション成果物を生成するために、インポート結果の利用法を知っているリソース・ライターが起動されます。
たとえば、COBOL タイプのインポート後には、COBOL タイプのインポート結果の利用法を知っているライターのみが使用されます。
Ant スクリプトの Write セクションは、以下のようなものです。
<workspaceResourceWriter type="ResourceWriterName">
<propertyElement name="PropertyName" value="PropertyValue"/>
</workspaceResourceWriter>
ここで、
- workspaceResourceWriter は、アプリケーション成果物を生成するために使用されるライターの名前です。
- propertyElement は、生成のためにライターが使用するリスト (プロパティー名とプロパティー値のペア) です。
- 言語インポートの特殊なケース (COBOL および C) では、追加のステップが 1 つあります。
それは、バインディング生成です。Ant スクリプトの Binding セクションは、以下のようなものです。
<createBinding package="PackageName" class="ClassName">
<methodElement>
<name value="MethodName"/>
<input value="Input"/>
<output value="Output"/>
<interactioSpec>
<propertyElement name="PropertyName" value="PropetyValue"/>
</interactioSpec>
</methodElement>
<connectionSpec>
<propertyElement name="PropertyName" value="PropertyValue"/>
</connectionSpec>
<resourceAdapter project="ResourceAdapterProjectName"/>
</createBinding>
- resourceAdapter は、以下のようにしても定義できます。
<resourceAdapter>
<propertyElement name="displayName" value="PropertyValue"/>
<propertyElement name="version" value="PropertyValue"/>
<propertyElement name="vendorName" value="PropertyValue"/>
</resourceAdapter>
ここで、
- createBinding は、パッケージおよびインターフェース・バインディング・クラス名を定義します。
- methodElement は、EIS にアクセスするための Java™ メソッドです。
- name は、メソッドの名前です。
- input は、入力タイプです。
- output は、出力タイプです。
- interactioSpec は、相互作用プロパティーのリストです。
- connectionSpec は、接続プロパティーのリストです。
- resourceAdapter は、プロジェクト名またはプロパティー・リストの指定によって
使用されるリソース・アダプターです。
- プロパティーが設定されると、インポートまたは成果物生成のいずれかを駆動するために、
基盤の API を起動するコマンドを実行できるようになります。
Ant スクリプトの Command セクションは、以下のようなものです。
<command commandID="CommandID">
<fileset dir="." includes="AntFile"/>
</command>
ここで、
- command は、実行を駆動するコマンドです。
- fileset は、アクション・トリガーとして使用される必須パラメーターで、常に Ant ファイル自身を
ポイントしています。
注: Ant スクリプトを使用する際は、以下のガイドラインを念頭に置いてください。
- Ant スクリプト内でリソース・アダプターを呼び出す場合は、その Ant スクリプトを起動する前に、
そのリソース・アダプターをワークスペースにインポートしておかなければなりません。
- 使用されるすべてのリソースが、ワークスペースおよびプロジェクトをポイントするファイル・パス、
あるいはフル・ファイル・システム・パスのいずれかを持っていなければなりません。
- ディスカバリー・エージェントおよびワークスペース・ライターは、一意的に識別される名前 (QName) で参照されます。
登録済みのすべてのディスカバリー・エージェント、ワークスペース・リソース・ライター、およびインポート構成を検出するには、スクリプト・ディレクトリーに入っている displayAll.xml スクリプトを使用します。
- エレメントの中には、名前と値属性のペアを持つものもあります。
実際には、名前はディスカバリー・エージェントまたはリソース・ライターによって内部的に定義されているプロパティーで、
値を一緒に渡すために使用されます。
これは、名前を正しく取得するために重要なものです。
コンポーネントが名前を認識しないと、値は設定されません。
すべてのケースにおいて、これらの属性は、1 対多の多重度を持つ propertyElement タグの一部です。
同じ多重度が、methodElement タグにも適用されます。
以下のスクリプト・サンプルは、指定された (taderc99.ccp) COBOL ファイルに基づいてデータ・バインディングを
生成するものです。
このスクリプトは、スクリプト・ディレクトリーの com.ibm.adapter.command プラグインにあります。
<?xml version="1.0"?>
<project name="com.ibm.adapter.command" default="DataType">
<target name="DataType">
!-- perform import -->
<discoveryAgent type="com/ibm/adapter:CobolDiscoveryAgent">
<importResource name="CobolFile" value="¥Test¥taderc99.ccp"/>
<importProperties>
<propertyElement name="Platform name" value="Win32"/>
</importProperties>
<searchParameters>
<propertyElement name="DFHCOMMAREA"/>
</searchParameters>
!-- execute import command -->
<command commandID="com.ibm.adapter.command.PerformImportCommand">
<fileset dir="." includes="**/dataType.xml"/>
/command>
!-- write to workspace -->
<workspaceResourceWriter type="com/ibm/adapter/cobol/writer:JAVA_WRITER">
<propertyElement name="JavaTypeName/JavaProjectName" value="Test"/>
<propertyElement name="JavaTypeName/JavaPackageName" value="com.ibm.test"/>
<propertyElement name="JavaTypeName/JavaClassName" value="Taderc99"/>
</workspaceResourceWriter>
!-- execute write command -->
<command commandID="com.ibm.adapter.command.WriteToWorkspaceCommand">
<fileset dir="." includes="**/dataType.xml"/>
</command>
</target>
</project>
CobolFile プロパティーのための値は、
フル・ファイル・システム・パスまたはワークスペース相対パスのいずれかです。
上記のスクリプトを実行するステップは、以下のとおりです。
- スクリプトがポイントする Java プロジェクトを作成します。
- 新しく作成した Java プロジェクト内で、XML ファイル dataType.xml を作成し、
その中に上記のスクリプトをコピーします。
- スクリプト・ファイル内のプロパティーを、状況に応じて変更します。
- Ant スクリプトを実行します。ワークスペースと同じ JRE で実行していることを確認してください。