从 Ant 任务对调用存根生成器进行调用

您可以从 Ant 任务运行 COBOL 调用存根生成器。

开始之前

为 COBOL 调用存根生成器所生成的代码创建 Rational® Application Developer 项目。

创建调用存根生成器配置文件。确保 EclipseHome、WorkSpace 和 EclipseProjectName 必需属性的设置正确。

检查 COBOL 源文件的 PROCEDURE 语句。

关于此任务

要从 Ant 任务运行 COBOL 调用存根生成器,必须创建用于为必需属性指定值的 <csg> 任务,这些属性用于标识调用存根生成器配置文件和用作调用存根生成器源的 COBOL 源文件。您也可以在该任务中为可选属性指定值。表 1 描述可以在 <csg> 任务中使用的受支持 <csg>、<cobolModule> 和 <dataElement> 属性以及嵌套元素。

在某些 <csg> 属性和嵌套元素中,您可以将内部调用存根生成器属性指定为替换变量。例如,对于 <callStubPackage> 元素,您可以指定 COBOL PROGRAM-ID:
<callStubPackage>com.ibm.cobol.$_ProgramId_$</callStubPackage>
在运行时,$_ProgramId_$ 变量将替换为 COBOL PROGRAM-ID。如果输入 <fileset> 或 <filelist> 指定了若干 COBOL 文件,那么在调用存根生成器对输入文件列表进行迭代时,$_ProgramId_$ 将替换为每个 COBOL 文件的 PROGRAM-ID。
表 1. 用于运行 COBOL 调用存根生成器的 <csg> 属性和元素. 必须为 <csg> 任务中的必需属性和元素指定值。许多可选属性和元素都有缺省值。
名称 缺省值 必需还是可选 描述
<csg> 属性和嵌套元素
configFile   必需 指定调用存根生成器配置文件的标准路径。
workSpace   可选 指定要用于创建 Java™ 数据绑定类的 Rational Application Developer 或 Eclipse 工作空间的根目录标准路径。

为 workSpace 指定的任何值将覆盖调用存根生成器配置文件中的 WorkSpace 值,该配置文件由 configFile 值标识。

eclipseProjectName   可选 指定用于为所生成的 Java 类提供主目录的 Rational Application Developer 或 Eclipse 工作空间中项目的名称。

在运行调用存根生成器之前,该项目必须已经存在。

为 eclipseProjectName 指定的任何值将覆盖调用存根生成器配置文件中的 EclipseProjectName 值,该配置文件由 configFile 值标识。

antBuildFile ${workSpace}/${eclipseProjectName}/src/GenAllBindings.xml 可选 指定 <csg> 任务所生成的数据绑定程序 Ant 构建文件的输出位置。
<fileset>、<filelist>   必需 指定用于向调用存根生成器提供输入的一个或多个 COBOL 源文件。可以指定多个 <fileset> 和 <filelist> 类型。在 <cobolModule> 元素外部指定的 <fileset> 和 <filelist> 类型将 COBOL PROGRAM-ID 用作 COBOL 模块名称。
<cobolModule>   可选 指定与 <cobolModule> 元素中嵌套的所有 <fileset> 和 <filelist> 文件相关联的 COBOL 模块或 DLL 文件的名称。可以指定多个 <cobolModule> 元素。
<callStubPackage>   必需 指定程序包名称以及要用于所生成的调用存根的已生成文件的文件路径。

对于此元素,您可以为替换变量 $_ProgramId_$ (COBOL PROGRAM-ID) 或 $_CobolModule_$(COBOL 模块)指定内部调用存根生成器属性。

例如:<callStubPackage>com.ibm.cobol.$_ProgramId_$</callStubPackage>

在运行时,$_ProgramId_$ 变量将替换为 COBOL PROGRAM-ID。

<callStubClass> COBOL 程序 PROGRAM-ID 可选 指定要用于所生成的调用存根的类名。

对于此元素,您可以为替换变量 $_ProgramId_$ (COBOL PROGRAM-ID) 或 $_CobolModule_$(COBOL 模块)指定内部调用存根生成器属性。

<build> Unknown Build 可选 指定由用户分配的构建标识。
<mockPackage>   可选 指定用于 mock 类的程序包的名称。
<mockClass>   可选 指定要用于 mock 测试装置的类的名称。
<dataElementsPackage> {callStubPackage}.parameters 可选 指定要用于一个或多个 COBOL 参数及返回值的数据绑定类的程序包名称。

对于此元素,您可以为替换变量 $_DataElementName_$(COBOL 参数名称)、$_ProgramId_$ (COBOL PROGRAM-ID) 或 $_CobolModule_$(COBOL 模块)指定内部调用存根生成器属性。

<dataElementsClass> 参数名称 可选 指定要用于一个或多个 COBOL 参数及返回值的数据绑定类的类名。

对于此元素,您可以为替换变量 $_DataElementName_$(COBOL 参数名称)、$_ProgramId_$ (COBOL PROGRAM-ID) 或 $_CobolModule_$(COBOL 模块)指定内部调用存根生成器属性。

例如,要将 PROGRAM-ID 添加到 COBOL 参数及返回值的类名之前,请指定 <dataElementsClass>$_ProgramId_$_$_DataElementName_$</dataElementsClass>

在运行时,$_ProgramId_$ 变量将替换为 COBOL PROGRAM-ID,而 $_DataElementName_$ 变量将替换为 COBOL 参数或返回值的名称。如果 COBOL 程序具有多个参数,那么在调用存根生成器对这些参数进行迭代时,$_DataElementName_$ 将替换为每个 COBOL 参数的名称。

<dataElement>   可选 指定 COBOL 参数或返回值的程序包名称和类名。该参数使用 name 和 programId 属性进行标识。程序包名称和类名通过使用 packageName 和 className 属性进行指定。可以指定多个 <dataElement> 元素。
<cobolModule> 属性和嵌套元素
libname COBOL 程序 PROGRAM-ID 可选 指定包含一个或多个 COBOL 程序的 COBOL 模块或 DLL 文件的名称。
<fileset>、<filelist>   必需 指定用于向调用存根生成器提供输入的一个或多个 COBOL 源文件。每个 COBOL 文件都与 libname 所定义的 COBOL 模块相关联。
<dataElement> 属性
名称   必需 指定 COBOL PROCEDURE 参数的名称。
programId   必需 指定包含该参数的 COBOL 程序的 PROGRAM-ID。
packageName ${callStubPackage}.parameters 可选 指定要用于此 COBOL 参数或返回值的数据绑定类的程序包名称。

对于此属性,您可以为替换变量 $_DataElementName_$(COBOL 参数名称)、$_ProgramId_$ (COBOL PROGRAM-ID) 或 $_CobolModule_$(COBOL 模块)指定内部调用存根生成器属性。

className 参数名称 可选 指定要用于此特定 COBOL 参数或返回值的数据绑定类的类名。

对于此属性,您可以为替换变量 $_DataElementName_$(COBOL 参数名称)、$_ProgramId_$ (COBOL PROGRAM-ID) 或 $_CobolModule_$(COBOL 模块)指定内部调用存根生成器属性。

过程

  1. 定义 Ant <csg> 任务以运行调用存根生成器。

    调用存根生成器提供了样本 Ant 构建文件 CSG.xml,供您修改和使用。请参阅有关调用存根生成器 CSG.xml 文件的主题。

  2. 使用 Ant 构建文件来运行调用存根生成器。

    Ant 构建文件会启动数据绑定程序并为一个或多个 COBOL 参数及返回值生成数据绑定类。数据绑定程序 Ant 构建文件使用 <ant> 任务在最后一行上运行。

    以下代码使用 <csg> 任务来运行调用存根生成器:

    <!-- Declare the <csg> task -->
    <taskdef resource="com/ibm/ws/batch/cobol/ant/callstub/antlib.xml"
             classpath="${csgDir}/lib/COBOLCallStubGenerator.jar"/>
    
    <csg configFile="${csgDir}/csg.properties" antBuildFile="${antBuildFile}" >
    
      <!-- Input can be a <fileset> or <filelist>. In this example, it is a single file fileset. -->
    <fileset file="${cobolSource}" />
    
    <!-- Specify the package for the generated Java call stub class. 
         The parameter classes are generated under ${callStubPackage}.parameters. -->
      <callStubPackage>${callStubPackage}</callStubPackage>
      
    </csg>
    
    <!-- Run the data binder Ant build file that is generated by the <csg> task. -->
    <ant antfile="${antBuildFile}" />

    在此示例中,<fileset> 类型用于指定单个输入 COBOL 源文件。用作 <csg> 的输入的 COBOL 源文件是使用一个或多个 <fileset> 或 <filelist> 类型指定的。嵌套的 <callStubPackage> 元素是必需元素。它指定要用于 Java 调用存根的程序包。缺省情况下,数据绑定类将在 ${callStubPackage}.parameters 程序包下面生成。

    以下示例提供 <csg> 任务的完整描述:

    <taskdef resource="com/ibm/ws/batch/cobol/ant/callstub/antlib.xml"
             classpath="${csgDir}/lib/COBOLCallStubGenerator.jar"/> 
    
    <csg configFile="#REQUIRED"
         workSpace="#OPTIONAL:overrides value in configFile"
         eclipseProjectName="#OPTIONAL:overrides value in configFile"
         antBuildFile="#OPTIONAL:default=${workSpace}/${eclipseProjectName}/src/GenAllBindings.xml" >
    
      <fileset />
    <filelist />
    
    <cobolModule #OPTIONAL libname="#OPTIONAL:default=${ProgramId}">
      <fileset />
      <filelist />
    </cobolModule>
    
      <callStubPackage>#REQUIRED</callStubPackage>
    <callStubClass>#OPTIONAL:default=${ProgramId}</callStubClass>
    
    <build>#OPTIONAL:default=”Unknown Build”</build>
    <mockPackage>#OPTIONAL</mockPackage>
    <mockClass>#OPTIONAL</mockClass>
    
      <dataElementsPackage>#OPTIONAL:default=${callStubPackage}.parameters</dataElementsPackage>
      <dataElementsClass>#OPTIONAL:default=${dataElementName}</dataElementsClass>
    
      <dataElement #OPTIONAL
                   name="#REQUIRED" 
                   programId="#REQUIRED" 
                   packageName="#OPTIONAL:default=${callStubPackage}.parameters" 
                   className="#OPTIONAL:default=${dataElementName}" />
    </csg>
    最佳实践 最佳实践: <csg> 任务和数据绑定程序 Ant 构建文件对某些 Eclipse 类(包括 Java EE 连接器 (J2C) 工具)具有运行时依赖关系。请在 Rational Application Developer 中将 <csg> 任务作为 Ant 构建来运行,以获取所有先决条件。您也可以使用 CSG.xmlRational Application Developer 中运行调用存根生成器。请参阅有关使用图形界面对调用存根生成器进行调用的主题。bprac

结果

该命令将运行调用存根生成器。如果该命令成功,那么调用存根生成器会创建 Java 调用存根以运行 COBOL 程序。

下一步做什么

使用所生成的 Java 调用存根来运行 COBOL 程序。


指示主题类型的图标 任务主题



时间戳记图标 最近一次更新时间: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tgrid_cobol_csg_ant
文件名:tgrid_cobol_csg_ant.html