Ant スクリプトを使用した J2C Java Bean のビルド

Ant スクリプトを使用して J2C コンポーネントを起動することができます。 また、そのような Ant スクリプトはワークベンチまたはコマンド行から呼び出すことができます。

アプリケーション開発を実行するとき、アプリケーション成果物のソースはメタデータ・リポジトリーから 取得されるのが非常に一般的です。 通常、このようなリポジトリーがブラウズされて成果物を探し、成果物のサブセットが選択され、 そのサブセットからアプリケーション・コンポーネントが生成されます。 このプロセスは通常、実際のインポートを行うために基盤となる API を起動するワークベンチを介して行われます。 同じインポートを、ワークベンチと基盤 API の間の相互作用を模倣する Ant 定義を使用して実行することもできます。

Apache Ant は Java ベースのビルド・ツールです。 Ant 構成ファイルには、コマンド行からもワークベンチ内からも起動できるという利点があります。 Ant 構成ファイルは最も重要な XML ファイルの 1 つなので、完全な手作業で変更またはビルドでき、 ワークベンチをロードしなくても再実行できます。

Ant 構成ファイルは、さまざまなタスクを実行するターゲット・ツリーで構成されます。 ターゲット内のタスクは、パイプライン様式で処理されます。 各タスクは、特定のタスク・インターフェースを実装しているオブジェクトによって実行されます。 Ant 構成ファイルが起動されると、各タスクに対応するプロパティーが実装タスク・オブジェクトにロードされます。 情報がロードされると、タスク・オブジェクトが起動されます。

データ・インポート・サイクル

一般的に、インポート・サイクルには 2 つのステップが関連していて、 そのそれぞれが別々のコンポーネントで実行されます。
  • ディスカバリー・エージェントは、実際のデータ・インポートを実行し、インポート結果 と呼ばれる 所有メタデータを作成します。
  • リソース・ライターは、インポート結果を利用し、適切なアプリケーション成果物を作成します。
インポートおよび生成のステップのときに、ディスカバリー・エージェントおよびリソース・ライター で、一連のユーザー入力を提供する必要があります。 たとえばクエリー・フェーズでは、各ディスカバリー・エージェントが異なるパラメーター・セットを持ち、 それを使用して対応するメタデータ・リポジトリーでクエリーを定義します。

Ant 定義ファイルには 2 つの別個のセクションがあり、それらのセクションで、 ディスカバリー・エージェント・コンポーネントに対して 1 つ、またリソース・ライター・コンポーネントに対して 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 は、リスト (プロパティー名とプロパティー値のペア) です。
  2. アプリケーション成果物を生成するために、インポート結果の利用法を知っているリソース・ライターが起動されます。 たとえば、COBOL タイプのインポート後には、COBOL タイプのインポート結果の利用法を知っているライターのみが使用されます。 Ant スクリプトの Write セクションは、以下のようなものです。
    <workspaceResourceWriter type="ResourceWriterName">
    		<propertyElement name="PropertyName" value="PropertyValue"/>
    </workspaceResourceWriter>
    ここで、
    • workspaceResourceWriter は、アプリケーション成果物を生成するために使用されるライターの名前です。
    • propertyElement は、生成のためにライターが使用するリスト (プロパティー名とプロパティー値のペア) です。
  3. 言語インポートの特殊なケース (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>
  4. 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 は、プロジェクト名またはプロパティー・リストの指定によって 使用されるリソース・アダプターです。
  5. プロパティーが設定されると、インポートまたは成果物生成のいずれかを駆動するために、 基盤の 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 プロパティーのための値は、 フル・ファイル・システム・パスまたはワークスペース相対パスのいずれかです。

上記のスクリプトを実行するステップは、以下のとおりです。
  1. スクリプトがポイントする Java プロジェクトを作成します。
  2. 新しく作成した Java プロジェクト内で、XML ファイル dataType.xml を作成し、 その中に上記のスクリプトをコピーします。
  3. スクリプト・ファイル内のプロパティーを、状況に応じて変更します。
  4. Ant スクリプトを実行します。ワークスペースと同じ JRE で実行していることを確認してください。
ご利用条件 | フィードバック
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.
(C) Copyright IBM Japan 2005.