J2C ウィザードを使用すれば、選択内容および入力値を取得して、Ant 構成ファイルを作成できます。Ant 構成ファイルは本質的に XML ファイルであるため、手作業で全体を変更またはビルドすることができます。
Ant 構成ファイルは、さまざまなタスクが実行されるターゲット・ツリーから構成されています。 ターゲット内のタスクは、パイプライン方法で処理されます。 各タスクは、特定のタスク・インターフェースを実装するオブジェクトによって実行されます。 Ant 構成ファイルが呼び出されると、各タスクに対応したプロパティーが実装しているタスク・オブジェクトにロードされます。 情報がロードされると、タスク・オブジェクトが呼び出されます。
データ・ディスカバリー・タスク
<adapter:discover>
<adapter:performImport agent="{com/ibm/adapter}CobolDiscoveryAgent">
<adapter:importResource>
<adapter:propertyGroup name="CobolFileGroup">
<adapter:propertyElement name="CobolFile" value="/${project}/taderc99.ccp"/>
</adapter:propertyGroup>
</adapter:importResource>
<adapter:queryProperties>
<adapter:propertyGroup name="ImportProperties">
<adapter:propertyElement name="Platform" value="Win32"/>
</adapter:propertyGroup>
</adapter:queryProperties>
<adapter:queryResult>
<adapter:selectElement name="DFHCOMMAREA"/>
</adapter:queryResult>
</adapter:performImport>
<adapter:writeToWorkspace writer="{com/ibm/adapter/cobol/writer}JAVA_WRITER">
<adapter:propertyGroup name="COBOLToJavaResourceWriter">
<adapter:propertyElement name="GenerationStyle" value="0"/>
<adapter:propertyGroup name="Java Type Name">
<adapter:propertyElement name="Overwrite existing class" value="true"/>
<adapter:propertyElement name="Project Name" value="${project}"/>
<adapter:propertyElement name="Package Name" value="com.ibm.test"/>
<adapter:propertyElement name="Class Name" value="Taderc99"/>
</adapter:propertyGroup>
</adapter:propertyGroup>
</adapter:writeToWorkspace>
</adapter:discover>
<?xml version="1.0" encoding="UTF-8" ?>
<project xmlns:adapter="http://com.ibm.adapter" default="DataBinding1" name="/Taderc99/CustomerInfo.xml">
<property name="debug" value="true" />
<property name="project1" value="Taderc99" />
<target name="DataBinding1">
<adapter:createProject projectName="${project1}" projectType="Java" />
<adapter:discover>
<adapter:performImport agent="{com/ibm/adapter}CobolDiscoveryAgent">
<adapter:importResource>
<adapter:propertyGroup name="CobolFileGroup">
<adapter:propertyElement name="CobolFile" value="C:¥Samples¥CICS¥taderc99¥taderc99.cbl" />
</adapter:propertyGroup>
</adapter:importResource>
<adapter:queryProperties>
<adapter:propertyGroup name="ImportProperties">
<adapter:propertyElement name="Platform" value="Win32" />
<adapter:propertyElement name="Codepage" value="ISO-8859-1" />
<adapter:propertyElement name="Numproc" value="PFD" />
<adapter:propertyElement name="FloatingPointFormat" value="IEEE 754" />
<adapter:propertyGroup name="ExternalDecimalSignGroup">
<adapter:propertyElement name="ExternalDecimalSign" value="ASCII" />
</adapter:propertyGroup>
<adapter:propertyGroup name="EndianGroup">
<adapter:propertyElement name="Endian" value="Little" />
<adapter:propertyElement name="RemoteEndian" value="Little" />
</adapter:propertyGroup>
<adapter:propertyGroup name="CompileOptions">
<adapter:propertyElement name="Quote" value="DOUBLE" />
<adapter:propertyElement name="Trunc" value="STD" />
<adapter:propertyElement name="Nsymbol" value="DBCS" />
</adapter:propertyGroup>
</adapter:propertyGroup>
</adapter:queryProperties>
<adapter:queryResult>
<adapter:selectElement name="DFHCOMMAREA" />
</adapter:queryResult>
</adapter:performImport>
<adapter:writeToWorkspace writer="{com/ibm/adapter/cobol/writer}JAVA_WRITER">
<adapter:propertyGroup name="COBOLToJavaResourceWriter">
<adapter:propertyElement name="GenerationStyle" value="Default" />
<adapter:propertyGroup name="Java Type Name">
<adapter:propertyElement name="Project Name" value="${project1}" />
<adapter:propertyElement name="Package Name" value="sample.cics" />
<adapter:propertyElement name="Class Name" value="CustomerInfo" />
<adapter:propertyElement name="Overwrite existing class" value="true" />
</adapter:propertyGroup>
</adapter:propertyGroup>
</adapter:writeToWorkspace>
</adapter:discover>
<eclipse.refreshLocal depth="infinite" resource="${project1}" />
<eclipse.incrementalBuild project="${project1}" />
</target>
</project>
サービス生成タスク
言語インポート (COBOL、C、および PL/I) の特殊な場合 には、インターフェース・バインディング生成に関連する追加ステップがあります。 以下の例は、 J2C bean 生成に使用される Ant スクリプトのデータ・ディスカバリー・セクションを示します。
<j2c:generateService>
<j2c:buildService class="Customer" package="sample.cics">
<j2c:method>
<j2c:methodName value="getCustomer"/>
<j2c:methodInput value="/Test/src/sample/cics/data/CustomerInfo.java"/>
<j2c:methodOutput value="/Test/src/sample/cics/data/CustomerInfo.java"/>
<j2c:interactionSpec class="com.ibm.connector2.cics.ECIInteractionSpec">
<adapter:propertyGroup name="INTERACTION_SPEC_PROPERTY_PG">
<adapter:propertyElement name="functionName" value="taderc99"/>
<adapter:propertyElement name="commareaLength" value="-1"/>
<adapter:propertyElement name="replyLength" value="-1"/>
<adapter:propertyElement name="executeTimeout" value="0"/>
<adapter:propertyElement name="interactionVerb" value="1"/>
</adapter:propertyGroup>
</j2c:interactionSpec>
</j2c:method>
<j2c:managedConnectionFactory class="com.ibm.connector2.cics.ECIManagedConnectionFactory" target="MyDefaultJNDIName">
<adapter:propertyGroup name="MANAGED_CONNECTION_FACTORY_CLASS_PROPERTIES">
<adapter:propertyGroup name="Server">
<adapter:propertyElement name="ConnectionURL" value="j2c"/>
<adapter:propertyElement name="ServerName" value="cics"/>
</adapter:propertyGroup>
<adapter:propertyGroup name="UserVerification">
<adapter:propertyElement name="UserName" value="sysad"/>
<adapter:propertyElement name="Password" value="susad"/>
</adapter:propertyGroup>
<adapter:propertyGroup name="Security"/>
</adapter:propertyGroup>
</j2c:managedConnectionFactory>
<j2c:connectionSpec class="com.ibm.connector2.cics.ECIConnectionSpec"/>
<j2c:resourceAdapter project="${ra.project}"/>
</j2c:buildService>
<adapter:writeToWorkspace writer="{com/ibm/adapter/j2c/codegen/writer}J2CAnnotationWorkspaceResourceWriter">
<adapter:propertyGroup name="J2C Java Bean Writer Properties">
<adapter:propertyElement name="Project" value="Test"/>
<adapter:propertyElement name="PackageName" value="sample.cics"/>
<adapter:propertyElement name="InterfaceName" value="Customer"/>
</adapter:propertyGroup>
</adapter:writeToWorkspace>
</j2c:generateService>
追加タスク
その他のユーティリティー・タスクは便利ですが、成果物の生成にとって必須ではありません。
<adapter:createProject
projectName="taderc99Project"
projectType="Web"
runtimeName="J2EE Runtime Library"
addToEAR="yes"
EARProjectName="TestEAR"/>
ここで、<j2c:importResourceAdapter
connectorModule="cicseci602"
connectorFile="D:¥IBM¥SDP70¥ResourceAdapters¥cics15¥cicseci602.rar"
targetRuntime="J2EE Runtime Library"
addToEAR="yes"
EARProjectName="TestEAR"/>
プロパティーの定義
ディスカバリー・エージェントおよびワークスペース書き込み機能は、固有名 (QName) で参照されます。 すべての登録済みディスカバリー・エージェント、ワークスペース・リソース書き込み機能、およびインポート構成を検索するには、サンプル・ディレクトリーにある displayAll.xml スクリプトを使用してください。
スクリプトの例で見たように、ディスカバリー・エージェントま たはリソース書き込み機能に渡される値は、propertyGroup および propertyElement タグで定義されます。 プロパティー・グループは、ネスト構造 を介して、プロパティーの論理的なグループ化を定義します。 構造レイアウト、グループ名、およびプロパティー名については、ディスカバリー・エージェントまたはリソース書き込み機能の資料を参照してください。
プロパティーは、name 属性と value 属性のペアによって定義されます。 名前は、ディスカバリー・エージェントまたはリソース書き込み機能によって内部的に定義されたプロパティーであり、値を渡すために使用されます。 正しい名前を使用することが重要です。 名前がコンポーネントによって認識されないと、値は設定されません。