zVMImport

zVMImport is a utility that imports files from VM minidisks onto a Windows file system and into Engineering Workflow Management. The utility runs as an Ant build and uses the contents of a number of files to determine how to migrate the VM source code into EWM. The files it uses are shown in the table below and are documented in more details in zVMIMport Reference Guide.
File Description
zVMImport.xml Initial build xml that defines various properties, such as the location and login credentials of both the VM system where the code is currently stored and the EWM server where the new projects containing the source code will be created.
Components.xml Describes the project names that will be created an in which components they reside.
Languages.xml Defines characteristics of each unique language type.
<ver> OBJECTS This file resides on the VM system where the parts are sotred and describes characteristics of each part that will be transferred.
symbols The system file describes symbolic replacements that are to be performed on strings in the source code files when they are processed by zVMImport.
magic.properties Describe file properties to EWM during intial check-in of parts.

Setup and usage

The following section describes the steps required to run a zVMImport build and start migrating your source code from your VM system. To run zVMImport, a Jazz Build Engine running on Windows must be used. This section also includes instructions for downloading and installing a Windows based Jazz Build System Toolkit on Windows.

  1. Download and install a Windonws build toolkit.
    1. Download a Windows based toolkit from https://jazz.net/downloads/. Choose what you need to install after downloading the Web Installer.
    2. Unzip the downloaded zip file to a temporary location.
    3. Open a command prompt and change to the directory where you extracted the .zip file to, and enter launchpad.

      Installation Manager starts.

    4. Select Install the Client Tools and select Build System Toolkit.
      Note: You need a jazz.net userid and password to log in.
    5. Follow the instructions to complete the installation. Make sure you install the optional JRE when selecting what to install.
  2. Set up a Jazz build engine on Windows to run Ant XML.

    zVMImport runs as an Ant XML build. You need a build engine defined in your repository and a build definition.

    1. In your Team Artifacts view under Builds>Build Enginestree nodes, select New Build Engine.
    2. Select Create a new build engine and click Next.
    3. Select Jazz Build Engine as the build engine type and click Finish. Name your build engine. This build engine name will be used when you run the build engine on Windows so that it can connect to the repository.Create Build Engine
  3. Create a .bat file to run the build engine.
    1. In a directory on your Windows system, create a bat file that will be used to run the build engine. You can create it in the same directory where you created the build toolkit. For example, name this JBE-win.bat. This fat file should have the following contents:
      cd"<Build Toolkit Install Directory>\buildsystem\buildengine\eclipse"
      jbe -vm ""<Build Tookit Install Directory>\jre\bin\java" -repositry <your EWM repository address> -userId <your jazz repository userid> -pass <your jazz
      repository password> -engineId <Build Engine Name>
      For example:
      cd "C:\Jazz Build Toolkits\buildToolkit-605\buildsystem\buildengine\eclipse"
      jbe -vm "C:\Jazz Build Toolkits\buildToolkit-605\jre\bin\java" -repository https://someserver.ibm.com:9443/ccm/ -userId USER01 -pass passxxxx -engineId
      Liams-PA-JBE-Windows
    2. Save the bat file. If you double click the saved bat file, it will execute and wait for a job from EWM.
  4. Creat an Eclipse project to hold the zVMImport XML files.

    You can import the same project from this topic and customize it for your needs. Download the sample project from https://jazz.net/downloads/ to a temporary directory on your machine. Right click on the space of your Navigator or Project Explorer view. Select Import. Then select Existing Projects into Workspace.Import Window

    Select the archive file you downloaded and click Finish to import.

    Import Project
  5. Modify the XML files.

    Use zVMImport Reference Guide for reference to customize the XML files for your needs.

    • System definition XML

      As your definitions will use the existing system definitions as reference, such as language definitions, you need to make sure they exist. You can either create the required langauge definitions on UI or use System Definition XML to define them. Sample system definition XML is provided in the sample.

    • ZVMImport.xml

      This file contains information relating to the location of the VM system, the location of the EWM repository as well as various options to be used in the import. You also need to use the password encryption discussed in the reference section to encrypt both your VM password and your Jazz repository password. Use the sample and reference guide to set the information in this XML.

      Depending on the physical location of your machine, your VM system and your Jazz repository, you might want to change requestTimeoutInt to 600.

      Make sure your Repository Workspace used is unique to avoid confusions. If you are testing the import and want to return, set checkinOnly to True for initial executions until everything is set up. Then you can delete the created repository workspace and return any number of times.

    • OBJECTS File

      The OBJECTS file contains all the parts you plan to import from your VM system into EWM. It will be prefixed with a version that relates to the version of the product you are importing, and this name is referenced by the zvmRelease property in the zVMImport.xml. Transfer the OBJECTS filein the sample project to your VM system as a model and refer to zVMImport Reference Guide below to customize it.

    • Components.xml

      The Components.xml file contains the mapping from your VM file system to the Eclipse project structure you will use in EWM. Use the Components.xml file in the sample project as a model and refer to the zVMImport reference for specific information.

    • Languages.xml

      The Languages file contains mapping information to assign file extensions and other information to the files once imported into Jazz. Use the Languages.xml file in the sample project as a model and refer to zVMImport Reference Guide for specific information.

    • Magic.properties

      The Magic.properties file contains encoding information based on the file extension. Use this file to automatically set encoding when you run zVMImport. Refer to zVMImport Reference Guide for more information.

    • symbols

      Refer to zVMImport Reference Guide for information on the symbols file.

    Once the customization of all the XML files and OBJECTS file are finished, you are ready to test an import. Share the files with the Jazz repository if it is the first time you are registering them with Jazz or check in changes. You might need to deliver your changes depending on how you perform the builds.

  6. Create a build definition.

    Create a new build definition in your Jazz repository that will be used for the import. Make sure it is an Ant-Jazz Build Engine build definition.

    1. Set the build engine to use as the one you created in an earlier step.
    2. Create a build workspace to be used by the build definition.
    3. Set Delete directory before loading in the Jazz Source Control tab to ensure the .jazz5 directory is deleted between executions and no complication during testing. Once you move into update mode rather than full replacement mode, you need ensure that this property is unchecked.
  7. Run the build.

    Debug any issues with the various XML files.

  8. Assign data set definitions to zFolders either manually or by modifying the generated metadata.xml.
  9. Run the generated metadata.xml.

    The metadata.xml is designed to be imported into a generated controlling ant xml that has an initial task. Each metadata.xml for each project can be imported into a single file and run at one time.

  10. Deliever the changes once the import is completed.

zVMImport Reference Guide

The following table describes the attributes for the zVMImport task:

Attribute Description Required
failOnError If the value is true (the default), the task fails if it encounters an error. If the value is false, some errors are ignored and the task is completed. No
failproperty Name of the ant property in which to store the result of the task. If the task is successful, the specified property will be set to true. If the task fails, the specified property will be set to false. If failOnError is set to true, this option has no effect. No
reportError If the value is true (the default) and failOnError is set to false, an informational message is written to the log when an error is encountered which includes the error message text. If the value is false, no message is written to the log when an error is encountered. If failOnError is set to true, this option has no effect. No
reportTrace If the value is true and reportError is true and failOnError is false, the stack trace for the error is written to the log. If the value is false (the default), the stack trace for the error is not written to the log. If failOnError is set to true, or if reportError is set to false, this option has no effect. No

The following table describes task specific attributes of zVMImport.

Attribute Description Required
function The function that zVMImport is to perform. Specify one of the four valid zVMImport functions. There are two pairs of functions that zVMImport can perform: (EXTRACT and DELIVER) and (EXTRACT_UPDATE and DELIVER_UPDATE). An EXTRACT function extracts source code from z/VM and formats it for EWM. A DELIVER function delivers the extracted code to the specified EWM stream.
Function: Description:
EXTRACT The EXTRACT function is used to initially import z/VM based source control into EWM Enterprise Extensions source control. It assumes that the z/VM based source control content is not presently in EWM or that the current copy can be overlaid. It is meant to be used for a complete migration of the z/VM based source control content into EWM. EXTRACT can be run repeatedly, but each time it is run, it will completely replace the previous copy of the imported source. EXTRACT performs the following tasks:
  • Create a directory structure for the components and projects defined in the Components XML File
  • Create and populate required EWM/EE metadata for each component, project, and zFolder
  • Download the z/VM source code files described in the specified OBJECTS file
  • Convert the z/VM source code files from EBCDIC to ASCII to UTF-8
  • Optionally format each file for EWM/EE source control
  • Create System Definition ant scripts to define EWM/EE translator variables and packaging properties
  • Organize the files into the proper EWM component, project, and zFolder
DELIVER The DELIVER function is used to deliver the source code data created by the EXTRACT function to the EWM server. DELIVER performs the following tasks:
  • Share projects created by EXTRACT
  • Check-in all of the shared projects
  • Provide a comment for each change set
  • Deliver all change sets to the EWM server
EXTRACT_UPDATE The EXTRACT_UPDATE function is used to incrementally import z/VM based source control changes into the EWM Enterprise Extensions source control system. It assumes that the z/VM based source has been loaded into EWM and that only incremental updates to the source need to be processed. The EXTRACT_UPDATE function updates the current copy of the source with the specified changes; it does not replace the current copy. EXTRACT_UPDATE performs the following tasks:
  • Load the workspace containing the source onto the build machine
  • Accept all incoming changes to the workspace containing the source
  • Update all required EWM/EE metadata for each component, project, and zFolder
  • Download the z/VM source code files described in the specified OBJECTS file
  • Convert the z/VM source code files from EBCDIC to ASCII to UTF-8
  • Optionally format each file for EWM/EE source control
  • Update System Definition ant scripts that define variables and properties
  • Update the source files in the proper EWM component, project, and zFolder

There are two methods for processing updates: complete and incremental. The complete method imports all of the code using the full OBJECTS file used for the original EXTRACT. This method lets EWM determine what parts have changed and what changes to deliver. The incremental method uses two OBJECTS files, the full OBJECTS file used for the original EXTRACT to determine project layout and contents and an updates OBJECTS file which lists the parts that have changed. This method lets the user determine what parts have changed and what changes to deliver. Specify the zvmRelease attribute when using the complete method and both the zvmRelease and zvmUpdates attributes when using the incremental method.

DELIVER_UPDATE The DELIVER_UPDATE function is used to deliver the source code data created by the EXTRACT_UPDATE function to the EWM server. DELIVER performs the following tasks:
  • Check-in all of the changes
  • Provide a comment each change set
  • Deliver all change sets to the EWM server
Yes
root The root directory for the zVMImport build. The root directory is where components, projects, and zFolders needed for the migration are created. The value of this attribute is typically ${team.scm.fetchDestination} because that property is built-in when using the Jazz Build Engine. If this attribute is not specified, it will default to the "root" sub-directory of the ant base directory for the project. For example: if the path to the project is C:\MyFolder\MyProject.xml, the root directory will be C:\MyFolder\root\. No
work The work directory for the zVMImport build. The work directory is used for temporary files created by zVMImport. If this attribute is not specified, it will default to the ".work" sub-directory of the root directory. For example: if the root directory is C:\MyFolder\root\ the work directory will be C:\MyFolder\root\.work\. No
doCharsNS This option controls whether or not "carets" (^) and "not-signs" are converted from IBM-037 encoding to IBM-1047 encoding in source code files. Valid values are true and false. If true, all IBM-037 "caret" and "not-sign" characters are converted to IBM-1047 encoding during the extract process. The default is false.
Encoding EBCDIC Character Hex UTF-8 Character Hex EBCDIC Character Hex UTF-8 Character Hex
IBM-037   0x5F ^ 0x5E ^ 0xB0   0xAC
IBM-1047   0xB0   0xAC ^ 0x5F ^ 0x5E
Encoding EBCDIC Character Hex UTF-8 Character Hex EBCDIC Character Hex UTF-8 Character Hex
IBM-037   0x5F ^ 0x5E ^ 0xB0   0xAC
IBM-1047   0xB0   0xAC ^ 0x5F ^ 0x5E
No
doCharsSB This option controls whether or not square brackets ([]) are converted from IBM-037 encoding to IBM-1047 encoding in source code files. Valid values are true and false. If true, all IBM-037 square brackets characters are converted to IBM-1047 square brackets characters during the extract process. The default is false.
Encoding EBCDIC Character Hex UTF-8 Character Hex EBCDIC Character Hex UTF-8 Character Hex
IBM-037 [ 0xBA [ 0x5B ] 0xBB ] 0x5D
IBM-1047   0xAD   0xDD   0xBD   0xA8
Encoding EBCDIC Character Hex UTF-8 Character Hex EBCDIC Character Hex UTF-8 Character Hex
IBM-037 [ 0xBA   0xDD ] 0xBB   0xA8
IBM-1047   0xAD [ 0x5B   0xBD ] 0x5D
No
doCreates This option controls whether or not a directory structure for the components and projects defined in the rtcComponents XML is created when processing an EXTRACT_UPDATE function. Valid values are true and false. Code true when the EXTRACT_UPDATE function is used to deliver new projects to a component. The default is false. When doDeletes is set to true, doCreates should also be set to true. No
doDeletes This option controls whether or not the directory structure for the components and projects defined in the rtcComponents XML is deleted when processing an EXTRACT_UPDATE function. Valid values are true and false. Code true when the EXTRACT_UPDATE function is used to deliver new projects to a component. The default is false. No
doNumbers This option controls whether or not sequence numbers are removed from source code files. Valid values are true and false. If true, sequence numbers are removed during the extract process. The default is false. No
doReplace This option controls whether or not DTL compiler attributes are replaced in ISPF panel files. Valid values are true and false. If true, DTL compiler attributes are replaced with printable characters during the extract process. The default is false. No
dvmymbols This option controls whether or not test symbols are included in the symbolic replacement process. Valid values are true and false. If true, symbolic replacements, which include test symbols, are performed during the extract process. The default is false. No
doWorkspaceDeliver This option controls whether or not a workspace deliver is issued for the DELIVER_UPDATE function. Valid values are true and false. Code true to deliver the entire workspace when the DELIVER_UPDATE function is processed. The default is false, only changed components will be delivered when processing a DELIVER_UPDATE function. No
failOnCnfError This option controls whether or not the build fails when an error is encountered in the configuration data. Valid values are true and false. Specify true to fail the build when an error in the configuration data is encountered. Specify false (the default) to ignore the error and continue the build. No
fileOnScmError This option controls whether or not the build fails when an SCM error is encountered. Valid values are true and false. Specify true to fail the build when an SCM error is encountered. Specify false (the default) to ignore the error and continue the build. No
requestThreadMax This option controls the number of concurrent threads used by the EXTRACT process. Specify an integer between 1 and 32. The default is 6. Values larger than 32 are limited to 32. Use the requestThreadCnt and requestThreadMax to tune the import process. No
requestTimeoutInt This option controls the time out interval on a EXTRACT process thread. Specify an integer between 1 and 600. The default is 120. Values larger than 600 are limited to 600. This setting controls how long the EXTRACT process will wait for a thread to complete processing before giving up and ending the process. A thread completes when it has processed all assigned files. The number of files assigned to a thread is controlled by the requestThreadCnt attribute No
rtcCheckinOnly This option controls whether or not the DELIVER and DELIVER_UPDATE processes actually deliver the changes to the EWM server. Valid values are true and false. Code true to stop the delivery process after the changes are checked in. The default is false. This option should be used only when debugging the deliver process. No
rtcComponents Specifies the fully qualified path on the build engine to the components XML file. Yes
rtcPassword Specifies the encrypted password to use when logging into the EWM server. Yes
rtcProcessArea Specifies the name of the EWM process area where the components and stream are defined. Yes
rtcScmTool Specifies the fully qualified path on the build engine to the SCM module. Yes
rtcServer Specifies the address of the team repvmitory to use. The value of this attribute is typically ${repvmitoryAddress} because that property is built-in when using the Jazz Build Engine. Yes
rtcStream Specifies the name of the EWM stream where components and changes are delivered. YesD
rtcUser Specifies the user ID for authentication to the repository. Yes
rtcWorkspace Specifies the name of the workspace to use. The specified workspace name must identify a workspace that exists and is unique. Yes
zvmCodePage Specifies the name of the z/VM FTP code page to use when retrieving a file. The default is TCPXLBIN, the IBM-1047 code page No
zvmHvmt Specifies the URL of the z/VM host. YesE
zvmLanguageXml Specifies the fully qualified path on the build engine to the languages XML file. YesE
zvmObjectsFile Specifies the fully qualified z/VM data set name that contains OBJECTS file. YesE
zvmPassword Specifies the encrypted password to use when logging onto the z/VM system. YesE
zvmSymbols Specifies the fully qualified path on the build engine to the symbols file. No
zvmUpdatesFile Specifies the fully qualified z/VM data set name the updates OBJECTS file for an EXTRACT_UPDATE function. No
zvmUser Specifies the user ID for authentication to the z/VM system. YesE

E Required for EXTRACT only. DRequired for DELIVER only.

Languages XML File

The Languages XML File describes the languages that will be extracted and delivered by zVMImport. The Languages XML File has two elements: languages and language. The languages element is a container for any number of language elements. A language element describes how zVMIport will process a language file. Each language included in the import needs to be described in the Languages XML File. The following table describes the valid values for the language element attributes:

Attribute Description Required
type Language type. User defined. Yes
subtype Language subtype. User defined. Yes
fileExtension Language file extension. User defined. Yes
fileDirectory Language file directory (folder). User defined. This is the name of the zFolder where the file should be placed. This folder will have a parent folder of zVMsrc. Yes
fileFolderMcs Default MCS part type for folder. Valid MCS part type. For example: ++MOD. See SMP/E documentation for more information on valid MCS (Modification Control Statement) part types. Yes
fileFolderUpd Default source update setting for folder. Valid values are true and false. Yes
fileLineFilter This option controls whether or not FTP filtering takes place for DTL compiler attributes which are to be replaced in ISPF panel files. Valid values are true and false. If true, DTL compiler attributes are replaced with printable characters during the extract process. The default is false. Set doReplace to true when using this option. Yes
fileLongRecord Specifies that files associated with the language will have records longer than 80 characters. Valid values are true and false. Yes
compilerParms Specifies that files associated with the language will have a compiler parameter. Valid values are true and false. When this attribute is set to true and the file has a reusType value of E or N, an entry will be created in the System Definitions script created by zVMImport to define a CMPRENT translator variable, team.enterprise.build.var.CMPRENT, for the file with a value of RENT. This variable can be used with compiler translators to set RENT/NORENT parameter for the compiler. Set the default value of CMPRENT to NORENT and use the overrides created by zVMImport to set the value to RENT when needed. Yes
formattingOpt Language formatting option. Valid values are:
Type: Description:
ASSEMBLE Assembler language source file
C C language source file
CLIST CLIST source file
COBOL COBOL language source file
COPY Assembler language COPY file
DTL DTL ISPF panel source
JCL Job control language source
MACRO Assembler language MACRO file
MESSAGE ISPF message file
NONE No associated language
PANEL ISPF panel file
PLI PLI language source file
PLX PLX language source file
REXX REXX source file
SCRIPT SCRIPT source file
SKELETON ISPF skeleton file
XML XML source file
XSD XSD source file
Yes
linkEditAmode Specifies that files associated with the language will have a link edit AMODE=31 parameter added to their packaging link edit parameter. Valid values are true and false. When this attribute is set to true and the packageLEParm attribute is set to true, the value of the file packaging property, team.enterprise.packaging.file.linkparm, will include "AMODE=31". For example:
AMODE=31,NCAL,LIST,REUS=SERIAL,XREF
Yes
packageLEParm Specifies that files associated with the language will have a packaging link edit parameter. Valid values are true and false. When this attribute is set to true and the file has a reusType value of E, an entry will be created in the System Definitions script created by zVMImport to define a file packaging property, team.enterprise.packaging.file.linkparm, with a value of NCAL,LIST,REUS=REFR,XREF. If the file has a reusType value of N, the value will be set to NCAL,LIST,REUS=RENT,XREF. If the file has a reusType value of U, the value will be set to NCAL,LIST,REUS=SERIAL,XREF. Yes

Example

<?xml version="1.0" encoding="UTF-8"?> 
<languages xmlns="com.ibm.team.enterprise.smpe.toolkit.zimport.languages"     
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"     
	xsi:schemaLocation="com.ibm.team.enterprise.smpe.toolkit.zimport.languages zimport.languages.xsd">   
	<language type="ASSEMBLE" subtype="-"    fileExtension="asm"      fileDirectory="asm"    fileFolderMcs="++MOD"  fileFolderUpd="false" fileLineFilter="false" fileLongRecord="false" compilerParms="true"  formattingOpt="ASSEMBLE" linkEditAmode="false" packageLEParm="true"/>   
    <language type="ASSEMBLE" subtype="EXIT" fileExtension="asmsmpl"  fileDirectory="smpl"   fileFolderMcs="++SRC"  fileFolderUpd="true"  fileLineFilter="false" fileLongRecord="false" compilerParms="true"  formattingOpt="ASSEMBLE" linkEditAmode="false" packageLEParm="true"/>   
    <language type="ASSEMBLE" subtype="ISRC" fileExtension="asmisrc"  fileDirectory="isrc"   fileFolderMcs="++SAMP" fileFolderUpd="true"  fileLineFilter="false" fileLongRecord="false" compilerParms="true"  formattingOpt="ASSEMBLE" linkEditAmode="false" packageLEParm="false"/>   
    <language type="ASSEMBLE" subtype="OPSC" fileExtension="junk"     fileDirectory="junk"   fileFolderMcs="NONE"   fileFolderUpd="false" fileLineFilter="false" fileLongRecord="false" compilerParms="true"  formattingOpt="ASSEMBLE" linkEditAmode="false" packageLEParm="false"/>   
    <language type="ASSEMBLE" subtype="SMPL" fileExtension="asmsmpl"  fileDirectory="smpl"   fileFolderMcs="++SRC"  fileFolderUpd="true"  fileLineFilter="false" fileLongRecord="false" compilerParms="true"  formattingOpt="ASSEMBLE" linkEditAmode="false" packageLEParm="false"/>   
    <language type="ASSEMBLE" subtype="SRC"  fileExtension="asmsrc"   fileDirectory="asmsrc" fileFolderMcs="++MOD"  fileFolderUpd="true"  fileLineFilter="false" fileLongRecord="false" compilerParms="true"  formattingOpt="ASSEMBLE" linkEditAmode="false" packageLEParm="true"/>   
    <language type="C"        subtype="-"    fileExtension="c"        fileDirectory="c"      fileFolderMcs="++MOD"  fileFolderUpd="false" fileLineFilter="false" fileLongRecord="false" compilerParms="true"  formattingOpt="C"        linkEditAmode="true"  packageLEParm="true"/>   
    <language type="C"        subtype="ISRC" fileExtension="cisrc"    fileDirectory="isrc"   fileFolderMcs="++SAMP" fileFolderUpd="false" fileLineFilter="false" fileLongRecord="false" compilerParms="true"  formattingOpt="C"        linkEditAmode="true"  packageLEParm="false"/>   
    <language type="C"        subtype="SMPL" fileExtension="csmpl"    fileDirectory="smpl"   fileFolderMcs="++SRC"  fileFolderUpd="false" fileLineFilter="false" fileLongRecord="false" compilerParms="true"  formattingOpt="C"        linkEditAmode="true"  packageLEParm="false"/>   
    <language type="CPL"      subtype="-"    fileExtension="cpl"      fileDirectory="c"      fileFolderMcs="++MOD"  fileFolderUpd="false" fileLineFilter="false" fileLongRecord="false" compilerParms="true"  formattingOpt="C"        linkEditAmode="true"  packageLEParm="true"/>   
    <language type="CPL"      subtype="ISRC" fileExtension="cplisrc"  fileDirectory="isrc"   fileFolderMcs="++SAMP" fileFolderUpd="false" fileLineFilter="false" fileLongRecord="false" compilerParms="true"  formattingOpt="C"        linkEditAmode="true"  packageLEParm="false"/>   
    <language type="CPL"      subtype="SMPL" fileExtension="cplsmpl"  fileDirectory="smpl"   fileFolderMcs="++SRC"  fileFolderUpd="false" fileLineFilter="false" fileLongRecord="false" compilerParms="true"  formattingOpt="C"        linkEditAmode="true"  packageLEParm="false"/>   
    <language type="C370"     subtype="-"    fileExtension="c370"     fileDirectory="c"      fileFolderMcs="++MOD"  fileFolderUpd="false" fileLineFilter="false" fileLongRecord="false" compilerParms="true"  formattingOpt="C"        linkEditAmode="true"  packageLEParm="true"/>   
    <language type="C370"     subtype="ISRC" fileExtension="c370isrc" fileDirectory="isrc"   fileFolderMcs="++SAMP" fileFolderUpd="false" fileLineFilter="false" fileLongRecord="false" compilerParms="true"  formattingOpt="C"        linkEditAmode="true"  packageLEParm="false"/>   
    <language type="C370"     subtype="SMPL" fileExtension="c370smpl" fileDirectory="smpl"   fileFolderMcs="++SRC"  fileFolderUpd="false" fileLineFilter="false" fileLongRecord="false" compilerParms="true"  formattingOpt="C"        linkEditAmode="true"  packageLEParm="false"/>   
    <language type="C390"     subtype="-"    fileExtension="c390"     fileDirectory="c"      fileFolderMcs="++MOD"  fileFolderUpd="false" fileLineFilter="false" fileLongRecord="false" compilerParms="true"  formattingOpt="C"        linkEditAmode="true"  packageLEParm="true"/>   
    <language type="C390"     subtype="ISRC" fileExtension="c390isrc" fileDirectory="isrc"   fileFolderMcs="++SAMP" fileFolderUpd="false" fileLineFilter="false" fileLongRecord="false" compilerParms="true"  formattingOpt="C"        linkEditAmode="true"  packageLEParm="false"/>   
    <language type="C390"     subtype="SMPL" fileExtension="c390smpl" fileDirectory="smpl"   fileFolderMcs="++SRC"  fileFolderUpd="false" fileLineFilter="false" fileLongRecord="false" compilerParms="true"  formattingOpt="C"        linkEditAmode="true"  packageLEParm="false"/>   
    <language type="CLIST"    subtype="-"    fileExtension="clist"    fileDirectory="clist"  fileFolderMcs="++MAC"  fileFolderUpd="false" fileLineFilter="false" fileLongRecord="false" compilerParms="false" formattingOpt="CLIST"    linkEditAmode="false" packageLEParm="false"/>   
    <language type="CLIST"    subtype="CLST" fileExtension="clist"    fileDirectory="clist"  fileFolderMcs="++MAC"  fileFolderUpd="false" fileLineFilter="false" fileLongRecord="false" compilerParms="false" formattingOpt="CLIST"    linkEditAmode="false" packageLEParm="false"/>   
    <language type="COBOL"    subtype="-"    fileExtension="cbl"      fileDirectory="cbl"    fileFolderMcs="++MOD"  fileFolderUpd="false" fileLineFilter="false" fileLongRecord="false" compilerParms="true"  formattingOpt="COBOL"    linkEditAmode="false" packageLEParm="true"/>   
    <language type="COBOL"    subtype="ISRC" fileExtension="cblisrc"  fileDirectory="isrc"   fileFolderMcs="++SAMP" fileFolderUpd="true"  fileLineFilter="false" fileLongRecord="false" compilerParms="true"  formattingOpt="COBOL"    linkEditAmode="false" packageLEParm="false"/>   
    <language type="COBOL"    subtype="SMPL" fileExtension="cblsmpl"  fileDirectory="smpl"   fileFolderMcs="++SRC"  fileFolderUpd="true"  fileLineFilter="false" fileLongRecord="false" compilerParms="true"  formattingOpt="COBOL"    linkEditAmode="false" packageLEParm="false"/>   
    <language type="COPY"     subtype="-"    fileExtension="cpy"      fileDirectory="cpy"    fileFolderMcs="NONE"   fileFolderUpd="false" fileLineFilter="false" fileLongRecord="false" compilerParms="true"  formattingOpt="COPY"     linkEditAmode="false" packageLEParm="false"/>   
    <language type="COPY"     subtype="BASE" fileExtension="cpy"      fileDirectory="base"   fileFolderMcs="++SAMP" fileFolderUpd="true"  fileLineFilter="false" fileLongRecord="false" compilerParms="true"  formattingOpt="COPY"     linkEditAmode="false" packageLEParm="false"/>   
    <language type="COPY"     subtype="ISRC" fileExtension="cpyisrc"  fileDirectory="isrc"   fileFolderMcs="++SAMP" fileFolderUpd="true"  fileLineFilter="false" fileLongRecord="false" compilerParms="true"  formattingOpt="COPY"     linkEditAmode="false" packageLEParm="false"/>   
    <language type="COPY"     subtype="SMPL" fileExtension="cpysmpl"  fileDirectory="smpl"   fileFolderMcs="++SAMP" fileFolderUpd="true"  fileLineFilter="false" fileLongRecord="false" compilerParms="true"  formattingOpt="COPY"     linkEditAmode="false" packageLEParm="false"/>   
    <language type="COPY"     subtype="MAC"  fileExtension="cpysrc"   fileDirectory="cpysrc" fileFolderMcs="++MAC"  fileFolderUpd="true"  fileLineFilter="false" fileLongRecord="false" compilerParms="true"  formattingOpt="COPY"     linkEditAmode="false" packageLEParm="false"/>   
    <language type="DATA"     subtype="-"    fileExtension="data"     fileDirectory="data"   fileFolderMcs="++DATA" fileFolderUpd="false" fileLineFilter="false" fileLongRecord="false" compilerParms="false" formattingOpt="NONE"     linkEditAmode="false" packageLEParm="false"/>   
    <language type="DATA"     subtype="DATA" fileExtension="data"     fileDirectory="data"   fileFolderMcs="++DATA" fileFolderUpd="false" fileLineFilter="false" fileLongRecord="false" compilerParms="false" formattingOpt="NONE"     linkEditAmode="false" packageLEParm="false"/>   
    <language type="DATA"     subtype="BASE" fileExtension="data"     fileDirectory="base"   fileFolderMcs="++DATA" fileFolderUpd="false" fileLineFilter="false" fileLongRecord="false" compilerParms="false" formattingOpt="NONE"     linkEditAmode="false" packageLEParm="false"/>   
    <language type="DATA"     subtype="ISRC" fileExtension="dataisrc" fileDirectory="isrc"   fileFolderMcs="++SAMP" fileFolderUpd="false" fileLineFilter="false" fileLongRecord="false" compilerParms="false" formattingOpt="NONE"     linkEditAmode="false" packageLEParm="false"/>   
    <language type="DATABIN"  subtype="-"    fileExtension="databin"  fileDirectory="data"   fileFolderMcs="++DATA" fileFolderUpd="false" fileLineFilter="false" fileLongRecord="false" compilerParms="false" formattingOpt="NONE"     linkEditAmode="false" packageLEParm="false"/>   
    <language type="DATABIN"  subtype="DATA" fileExtension="databin"  fileDirectory="data"   fileFolderMcs="++DATA" fileFolderUpd="false" fileLineFilter="false" fileLongRecord="false" compilerParms="false" formattingOpt="NONE"     linkEditAmode="false" packageLEParm="false"/>   
    <language type="DTLGML"   subtype="-"    fileExtension="dtl"      fileDirectory="dtl"    fileFolderMcs="++MAC"  fileFolderUpd="false" fileLineFilter="false" fileLongRecord="false" compilerParms="true"  formattingOpt="DTL"      linkEditAmode="false" packageLEParm="false"/>   
    <language type="DTLGML"   subtype="PLIB" fileExtension="dtl"      fileDirectory="dtl"    fileFolderMcs="++MAC"  fileFolderUpd="false" fileLineFilter="false" fileLongRecord="false" compilerParms="true"  formattingOpt="DTL"      linkEditAmode="false" packageLEParm="false"/>   
    <language type="DTLMAC"   subtype="-"    fileExtension="dtm"      fileDirectory="dtm"    fileFolderMcs="NONE"   fileFolderUpd="false" fileLineFilter="false" fileLongRecord="false" compilerParms="true"  formattingOpt="DTL"      linkEditAmode="false" packageLEParm="false"/>   
    <language type="DTLMAC"   subtype="PLIB" fileExtension="dtm"      fileDirectory="dtm"    fileFolderMcs="NONE"   fileFolderUpd="false" fileLineFilter="false" fileLongRecord="false" compilerParms="true"  formattingOpt="DTL"      linkEditAmode="false" packageLEParm="false"/>   
    <language type="H"        subtype="-"    fileExtension="h"        fileDirectory="h"      fileFolderMcs="NONE"   fileFolderUpd="false" fileLineFilter="false" fileLongRecord="false" compilerParms="true"  formattingOpt="C"        linkEditAmode="false" packageLEParm="false"/>   
    <language type="H"        subtype="MAC"  fileExtension="hsrc"     fileDirectory="hsrc"   fileFolderMcs="++MAC"  fileFolderUpd="false" fileLineFilter="false" fileLongRecord="false" compilerParms="true"  formattingOpt="C"        linkEditAmode="false" packageLEParm="false"/>   
    <language type="JCL"      subtype="-"    fileExtension="jcl"      fileDirectory="base"   fileFolderMcs="++SAMP" fileFolderUpd="true"  fileLineFilter="false" fileLongRecord="false" compilerParms="false" formattingOpt="JCL"      linkEditAmode="false" packageLEParm="false"/>   
    <language type="JCL"      subtype="BASE" fileExtension="jcl"      fileDirectory="base"   fileFolderMcs="++SAMP" fileFolderUpd="true"  fileLineFilter="false" fileLongRecord="false" compilerParms="false" formattingOpt="JCL"      linkEditAmode="false" packageLEParm="false"/>   
    <language type="JCLIN"    subtype="-"    fileExtension="jclin"    fileDirectory="jin"    fileFolderMcs="NONE"   fileFolderUpd="false" fileLineFilter="false" fileLongRecord="false" compilerParms="false" formattingOpt="JCL"      linkEditAmode="false" packageLEParm="false"/>   
    <language type="JCLIN"    subtype="BASE" fileExtension="jclin"    fileDirectory="jin"    fileFolderMcs="NONE"   fileFolderUpd="false" fileLineFilter="false" fileLongRecord="false" compilerParms="false" formattingOpt="JCL"      linkEditAmode="false" packageLEParm="false"/>   
    <language type="LNKDEK"   subtype="-"    fileExtension="bnd"      fileDirectory="bnd"    fileFolderMcs="NONE"   fileFolderUpd="false" fileLineFilter="false" fileLongRecord="false" compilerParms="false" formattingOpt="NONE"     linkEditAmode="false" packageLEParm="false"/>   
    <language type="LNKDEK"   subtype="C"    fileExtension="bndc"     fileDirectory="bnd"    fileFolderMcs="NONE"   fileFolderUpd="false" fileLineFilter="false" fileLongRecord="false" compilerParms="false" formattingOpt="NONE"     linkEditAmode="false" packageLEParm="false"/>   
    <language type="LNKDEK"   subtype="CSS"  fileExtension="bndcss"   fileDirectory="bnd"    fileFolderMcs="NONE"   fileFolderUpd="false" fileLineFilter="false" fileLongRecord="false" compilerParms="false" formattingOpt="NONE"     linkEditAmode="false" packageLEParm="false"/>   
    <language type="LNKDEK"   subtype="C370" fileExtension="bndc370"  fileDirectory="bnd"    fileFolderMcs="NONE"   fileFolderUpd="false" fileLineFilter="false" fileLongRecord="false" compilerParms="false" formattingOpt="NONE"     linkEditAmode="false" packageLEParm="false"/>   
    <language type="LNKDEK"   subtype="C390" fileExtension="bndc390"  fileDirectory="bnd"    fileFolderMcs="NONE"   fileFolderUpd="false" fileLineFilter="false" fileLongRecord="false" compilerParms="false" formattingOpt="NONE"     linkEditAmode="false" packageLEParm="false"/>   
    <language type="LNKDEK"   subtype="OPSC" fileExtension="junk"     fileDirectory="junk"   fileFolderMcs="NONE"   fileFolderUpd="false" fileLineFilter="false" fileLongRecord="false" compilerParms="false" formattingOpt="NONE"     linkEditAmode="false" packageLEParm="false"/>   
    <language type="MACRO"    subtype="-"    fileExtension="mac"      fileDirectory="mac"    fileFolderMcs="NONE"   fileFolderUpd="false" fileLineFilter="false" fileLongRecord="false" compilerParms="true"  formattingOpt="MACRO"    linkEditAmode="false" packageLEParm="false"/>   
    <language type="MACRO"    subtype="MAC"  fileExtension="macsrc"   fileDirectory="macsrc" fileFolderMcs="++MAC"  fileFolderUpd="true"  fileLineFilter="false" fileLongRecord="false" compilerParms="true"  formattingOpt="MACRO"    linkEditAmode="false" packageLEParm="false"/>   
    <language type="MACRO"    subtype="ISRC" fileExtension="macisrc"  fileDirectory="isrc"   fileFolderMcs="++SAMP" fileFolderUpd="true"  fileLineFilter="false" fileLongRecord="false" compilerParms="true"  formattingOpt="MACRO"    linkEditAmode="false" packageLEParm="false"/>   
    <language type="MACRO"    subtype="SMPL" fileExtension="macsmpl"  fileDirectory="smpl"   fileFolderMcs="++SRC"  fileFolderUpd="true"  fileLineFilter="false" fileLongRecord="false" compilerParms="true"  formattingOpt="MACRO"    linkEditAmode="false" packageLEParm="false"/>   
    <language type="MCSCPYRT" subtype="-"    fileExtension="mcscpyrt" fileDirectory="jin"    fileFolderMcs="NONE"   fileFolderUpd="false" fileLineFilter="false" fileLongRecord="false" compilerParms="false" formattingOpt="NONE"     linkEditAmode="false" packageLEParm="false"/>   
    <language type="MCSCPYRT" subtype="BASE" fileExtension="mcscpyrt" fileDirectory="jin"    fileFolderMcs="NONE"   fileFolderUpd="false" fileLineFilter="false" fileLongRecord="false" compilerParms="false" formattingOpt="NONE"     linkEditAmode="false" packageLEParm="false"/>   
    <language type="MESSAGE"  subtype="-"    fileExtension="msg"      fileDirectory="msg"    fileFolderMcs="++MAC"  fileFolderUpd="false" fileLineFilter="false" fileLongRecord="false" compilerParms="false" formattingOpt="MESSAGE"  linkEditAmode="false" packageLEParm="false"/>   
    <language type="MESSAGE"  subtype="MLIB" fileExtension="msg"      fileDirectory="msg"    fileFolderMcs="++MAC"  fileFolderUpd="false" fileLineFilter="false" fileLongRecord="false" compilerParms="false" formattingOpt="MESSAGE"  linkEditAmode="false" packageLEParm="false"/>   
    <language type="PANEL"    subtype="-"    fileExtension="pnl"      fileDirectory="pnl"    fileFolderMcs="++MAC"  fileFolderUpd="false" fileLineFilter="true"  fileLongRecord="false" compilerParms="false" formattingOpt="PANEL"    linkEditAmode="false" packageLEParm="false"/>   
    <language type="PANEL"    subtype="PLIB" fileExtension="pnl"      fileDirectory="pnl"    fileFolderMcs="++MAC"  fileFolderUpd="false" fileLineFilter="true"  fileLongRecord="false" compilerParms="false" formattingOpt="PANEL"    linkEditAmode="false" packageLEParm="false"/>   
    <language type="PLI"      subtype="-"    fileExtension="pli"      fileDirectory="pli"    fileFolderMcs="++MOD"  fileFolderUpd="false" fileLineFilter="false" fileLongRecord="false" compilerParms="true"  formattingOpt="PLI"      linkEditAmode="false" packageLEParm="true"/>   
    <language type="PLI"      subtype="ISRC" fileExtension="pliisrc"  fileDirectory="isrc"   fileFolderMcs="++SAMP" fileFolderUpd="true"  fileLineFilter="false" fileLongRecord="false" compilerParms="true"  formattingOpt="PLI"      linkEditAmode="false" packageLEParm="false"/>   
    <language type="PLI"      subtype="SMPL" fileExtension="plismpl"  fileDirectory="smpl"   fileFolderMcs="++SRC"  fileFolderUpd="true"  fileLineFilter="false" fileLongRecord="false" compilerParms="true"  formattingOpt="PLI"      linkEditAmode="false" packageLEParm="false"/>   
    <language type="PLX370"   subtype="-"    fileExtension="plx"      fileDirectory="plx"    fileFolderMcs="++MOD"  fileFolderUpd="false" fileLineFilter="false" fileLongRecord="false" compilerParms="true"  formattingOpt="PLX"      linkEditAmode="false" packageLEParm="true"/>   
    <language type="REXX"     subtype="-"    fileExtension="rexx"     fileDirectory="rexx"   fileFolderMcs="++MAC"  fileFolderUpd="false" fileLineFilter="false" fileLongRecord="false" compilerParms="false" formattingOpt="REXX"     linkEditAmode="false" packageLEParm="false"/>   
    <language type="REXX"     subtype="BASE" fileExtension="rexx"     fileDirectory="base"   fileFolderMcs="++MAC"  fileFolderUpd="false" fileLineFilter="false" fileLongRecord="false" compilerParms="false" formattingOpt="REXX"     linkEditAmode="false" packageLEParm="false"/>   
    <language type="REXX"     subtype="EXEC" fileExtension="rexx"     fileDirectory="rexx"   fileFolderMcs="++MAC"  fileFolderUpd="false" fileLineFilter="false" fileLongRecord="false" compilerParms="false" formattingOpt="REXX"     linkEditAmode="false" packageLEParm="false"/>   
    <language type="SCRIPT"   subtype="-"    fileExtension="scr"      fileDirectory="scr"    fileFolderMcs="++MAC"  fileFolderUpd="false" fileLineFilter="false" fileLongRecord="false" compilerParms="true"  formattingOpt="SCRIPT"   linkEditAmode="false" packageLEParm="false"/>   
    <language type="SCRIPT"   subtype="RTRM" fileExtension="scr"      fileDirectory="scr"    fileFolderMcs="++MAC"  fileFolderUpd="false" fileLineFilter="false" fileLongRecord="false" compilerParms="true"  formattingOpt="SCRIPT"   linkEditAmode="false" packageLEParm="false"/>   
    <language type="SKELETON" subtype="-"    fileExtension="skl"      fileDirectory="skl"    fileFolderMcs="++MAC"  fileFolderUpd="false" fileLineFilter="false" fileLongRecord="false" compilerParms="false" formattingOpt="SKELETON" linkEditAmode="false" packageLEParm="false"/>   
    <language type="SKELETON" subtype="SLIB" fileExtension="skl"      fileDirectory="skl"    fileFolderMcs="++MAC"  fileFolderUpd="false" fileLineFilter="false" fileLongRecord="false" compilerParms="false" formattingOpt="SKELETON" linkEditAmode="false" packageLEParm="false"/>   
    <language type="TABLE"    subtype="-"    fileExtension="tbl"      fileDirectory="tbl"    fileFolderMcs="++MAC"  fileFolderUpd="false" fileLineFilter="false" fileLongRecord="true"  compilerParms="false" formattingOpt="NONE"     linkEditAmode="false" packageLEParm="false"/>   
    <language type="TABLE"    subtype="TLIB" fileExtension="tbl"      fileDirectory="tbl"    fileFolderMcs="++MAC"  fileFolderUpd="false" fileLineFilter="false" fileLongRecord="true"  compilerParms="false" formattingOpt="NONE"     linkEditAmode="false" packageLEParm="false"/>   
    <language type="XML"      subtype="-"    fileExtension="xml"      fileDirectory="smpl"   fileFolderMcs="++SAMP" fileFolderUpd="false" fileLineFilter="false" fileLongRecord="false" compilerParms="false" formattingOpt="XML"      linkEditAmode="false" packageLEParm="false"/>   
    <language type="XML"      subtype="SMPL" fileExtension="xml"      fileDirectory="smpl"   fileFolderMcs="++SAMP" fileFolderUpd="false" fileLineFilter="false" fileLongRecord="false" compilerParms="false" formattingOpt="XML"      linkEditAmode="false" packageLEParm="false"/>   
    <language type="XSD"      subtype="-"    fileExtension="xsd"      fileDirectory="smpl"   fileFolderMcs="++SAMP" fileFolderUpd="false" fileLineFilter="false" fileLongRecord="false" compilerParms="false" formattingOpt="XSD"      linkEditAmode="false" packageLEParm="false"/>   
    <language type="XSD"      subtype="SMPL" fileExtension="xsd"      fileDirectory="smpl"   fileFolderMcs="++SAMP" fileFolderUpd="false" fileLineFilter="false" fileLongRecord="false" compilerParms="false" formattingOpt="XSD"      linkEditAmode="false" packageLEParm="false"/> 
</languages>

Components XML File

The Components XML File describes the EWM components and projects that will be populated by zVMImport. The Components XML File has five elements: components, component, group, projects, and project.

The components element is a container for any number of component elements. A component element describes an EWM component to zVMImport. The component element has one required attribute, name, which defines the name of the component and one optional attribute, prefix, which defines the prefix for project names. If the prefix attribute is omitted, the value of the name attribute will be used as the prefix for project names. Please note that when the value of the name attribute is used as the prefix for project names, all blanks are removed from the name and the name is translated to lower case.

For example, the following will result in a component named "Some component name" with a "base" project named "com.ibm.bpe.base:

<component name="Some component name" prefix="com.ibm.ims.bpe">
		<project id="BP" name="base"/>
</component>

project element

The project element describes an eclipse project to zVMImport. Every project referenced by an import needs to be described by a project element. The project element has three attributes, id, name, and ignore, which define: the two-character ID of the project as coded in the OBJECTS file, the final token in the name of the project, and whether or not to ignore OBJECTS file entries assigned to the project.

The following definition creates a component named "com.ibm.ims.bpe" with one project named "com.ibm.ims.bpe.base":

<component name="com.ibm.ims.bpe">
	<project id="BP" name="base"/>
</component>

group element

The optional group element describes a group of eclipse projects to zVMImport. The group element has one required attribute, name, which defines the name of the group and one optional attribute, prefix, which defines a prefix for project names. If the prefix attribute is omitted, the value of the name attribute will be used as a prefix for project names. Please note that when the value of the name attribute is used as the prefix for project names, all blanks are removed from the name and the name is translated to lower case.

The following definition creates a component named "com.ibm.ims.sci.base" with two projects named "com.ibm.ims.sci.base.system" and "com.ibm.ims.sci.base.services":

<component name="com.ibm.ims.sci">
	<group name="base">
		<project id="SI" name="system"/>
		<project id="CZ" name="services"/>
	</group>
</component>

The following definition illustrates the use of the prefix attribute with the same definition. It creates a component named "SCI Base" with two projects named "com.ibm.ims.sci.base.system" and "com.ibm.ims.sci.base.services":

<component name="com.ibm.ims.bpe">
	<group name="SCI Base" prefix="base">
		<project id="SI" name="system"/>
		<project id="CZ" name="services"/>
	</group>
</component>

projects element

The projects element describes a set of eclipse projects to zVMImport. The projects element has one attribute, name, which defines the intermediate name token of the projects.

The following definition creates a component named "com.ibm.ims.sci" with two projects named "com.ibm.ims.sci.base.system" and "com.ibm.ims.sci.base.services":

<component name="com.ibm.ims.sci">
	<project name="base"/>
		<project id="SI" name="system"/>
		<project id="CZ" name="services"/>
	</project>
</component>

Example

<?xml version="1.0" encoding="UTF-8"?> 
<components xmlns="com.ibm.team.enterprise.smpe.toolkit.zimport.components"     
		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"     
		xsi:schemaLocation="com.ibm.team.enterprise.smpe.toolkit.zimport.components zimport.components.xsd">   
	<component name="com.ibm.ims.core">     
		<group name="db">       
				<project id="CA" name="catalog"/>       
				<project id="CB" name="controlblock"/>       
				<project id="CS" name="commonservices"/>       
				<project id="DL" name="locking"/>       
				<project id="DM" name="commonmacrvm"/>       
				<project id="DS" name="sharing"/>       
				<project id="DT" name="ddlt0"/>       
				<project id="UT" name="utilities"/>       
				<project id="GS" name="gsam"/>       
				<project id="HD" name="haldb"/>       
				<project id="IS" name="ivmervices"/>       
				<project id="RR" name="rsr"/>       
				<project id="XR" name="xrf"/>     
		</group>     
		<group name="dbrc">       
				<project id="RB" name="base"/>       
				<project id="RC" name="commands"/>       
				<project id="RE" name="services"/>       
				<project id="RG" name="groupservices"/>       
				<project id="RH" name="haldbdefinition"/>       
				<project id="RI" name="api"/>       
				<project id="RO" name="recon"/>       
				<project id="RS" name="system"/>       
				<project id="RX" name="rsr"/>     
		</group>     
		<group name="fp">       
				<project id="Z1" name="controlblockslogrecs"/>       
				<project id="Z2" name="dedb"/>       
				<project id="Z3" name="msdb"/>       
				<project id="Z4" name="commands"/>       
				<project id="Z5" name="inittermschedule"/>       
				<project id="Z6" name="misc"/>       
				<project id="Z7" name="traceformatterdiagnvmtics"/>       
				<project id="Z8" name="utilitiesother"/>       
				<project id="Z9" name="buffermanagement"/>       
				<project id="ZA" name="dedbalter"/>       
				<project id="ZB" name="checkpointrestart"/>       
				<project id="ZC" name="fpsi"/>       
				<project id="ZD" name="openclvmecommit"/>       
				<project id="ZE" name="rsr"/>       
				<project id="ZF" name="vsvmvso"/>       
				<project id="ZG" name="emhsemhmessage"/>     
		</group>     
		<group name="oa">       
				<project id="DB" name="base"/>       
				<project id="FD" name="fdr"/>       
				<project id="OD" name="odba"/>       
				<project id="RT" name="restart"/>       
				<project id="SQ" name="sql"/>     
		</group>     
		<group name="ras">       
				<project id="DI" name="diagnvme"/>       
				<project id="VC" name="dump"/>       
				<project id="TR" name="trace"/>       
				<project id="OP" name="ignore.1" ignore="true"/>       
				<project id="TT" name="ignore.2" ignore="true"/>       
				<project id="XX" name="ignore.3" ignore="true"/>     
		</group>     
		<group name="sys">       
				<project id="AX" name="aoi"/>       
				<project id="CD" name="commands"/>       
				<project id="CM" name="macrvm"/>       
				<project id="DD" name="drd"/>       
				<project id="DP" name="dispatcher"/>       
				<project id="IN" name="install"/>       
				<project id="IQ" name="sharedqueues"/>       
				<project id="LG" name="logger"/>       
				<project id="LU" name="latchusemanager"/>       
				<project id="OL" name="olc"/>       
				<project id="QM" name="queuemanager"/>       
				<project id="RL" name="RSR"/>       
				<project id="SB" name="batch"/>       
				<project id="SM" name="storagemanager"/>       
				<project id="SR" name="restart"/>       
				<project id="SS" name="services"/>       
				<project id="ST" name="statistics"/>       
				<project id="SU" name="utilities"/>       
				<project id="TI" name="timeservices"/>       
				<project id="UX" name="userexits"/>     
		</group>     
		<group name="tm">       
				<project id="AP" name="appc"/>       
				<project id="MS" name="msc"/>       
				<project id="VM" name="isc"/>       
				<project id="OT" name="otma"/>       
				<project id="OI" name="otmaci"/>       
				<project id="TC" name="commonservices"/>       
				<project id="TM" name="base"/>       
				<project id="TS" name="sysgen"/>       
				<project id="TU" name="utilities"/>       
				<project id="VT" name="vtam"/>     
				</group>     
		<group name="ui">       
				<project id="AS" name="asn"/>       
				<project id="DF" name="dumpformatter"/>       
				<project id="DR" name="rdds"/>       
				<project id="IV" name="ivp"/>       
				<project id="SC" name="syntaxchecker"/>       
				<project id="SP" name="spoc"/>       
				<project id="UB" name="base"/>     
		</group>   
	</component>   
	<component name="com.ibm.ims.bpe">     
				<project id="BP" name="base"/>   
	</component>   
	<component name="com.ibm.ims.cqs">     
				<project id="CQ" name="base"/>   
	</component>   
	<component name="com.ibm.ims.om">     
				<project id="OM" name="base"/>   
	</component>   
	<component name="com.ibm.ims.rm">     
				<project id="RM" name="base"/>   
	</component>   
	<component name="com.ibm.ims.rp">     
				<project id="RP" name="base"/>   
	</component>   
		<component name="com.ibm.ims.sci">     
						<projects name="base">       
									<project id="SI" name="system"/>       
									<project id="CZ" name="services"/>     
						</projects>   
	</component>   
	<component name="com.ibm.ims.icon">     
						<project id="IC" name="base"/>   
	</component> 
</components>

Symbols File

The Symbols file describes symbolic replacements that are to be performed on strings in the source code files as they are processed by zVMImport. Each line in the Symbols file describes one replacement value. The first token in the line is a user-defined control character, which is entered in column one and followed by a blank. User-defined control characters are not referenced by zVMImport, and therefore, may be any non-blank value other than an an asterisk. The second token in the line is the search string and the third token in the line is the symbolic replacement value. Comment lines can be included in the Symbols file by coding an asterisk in the first column.

Symbolic replacements can be used to dynamically update the code as it is being built. Refer to Ant filter or replacefilter documentation for more information.

In the following example
  • "A" is the control character
  • "5635-A04" is the search string
  • "@prodid@" is the symbolic replacement value

Standard Symbols File

A 5635-104 @prodid@

The Symbols file can be set up for testing symbolic replacements. To accomplish this, add a fourth token to each line with one of two values: BASE or TEST. Symbolic replacements designated as BASE will always be performed. Symbolic replacements designated as TEST will only be performed when the dvmymobolsTesting attribute is set to true.

Testing Symbols File

A 5635-A04 @prodid@ BASE
A 9999-999 @prodid@ TEST

OBJECTS File

The OBJECTS file provides an inventory of z/VM source files to be processed by zVMImport. The OBJECTS file is maintained on the z/VM host and downloaded by zVMImport to determine what z/VM files to process and their location on the z/VM host. The OBJECTS file should contain one line for each file that is to be processed. Comment lines can be included in the OBJECTS file by coding an asterisk in the first column. The following table describes the layout of the OBJECTS file. All columns must have a non-blank value. The columns contain the following information:

# Column Description Required
1 fileName The name of the EWM file, and for partitioned data sets, the member name. Yes
2 dataSetName The fully qualified z/VM data set name. Do not specify the data set name in quotes. Yes
3 dataSetType The z/VM dataset type. Valid values are:
Value: Description
P Partitioned data set.
S Sequential data set.
Yes
4 transferType Specifies the transfer type for the file. Valid values are:
Value: Description
T Text
B Binary
Yes
5 projectId The 2-character project ID for the file. Refer to your Components XML File for valid values. Yes
6 languageType The language type for the file. Refer to your Languages XML File for valid values. Yes
7 languageSubType The language subtype for the file. Refer to your Languages XML File for valid values. Yes
8 fmidId The FMID ID for the file. If specified, an entry will be created in the System Definitions script created by zVMImport to create a file-level override for the FMID ID setting. Specify a dash (-) to use the default FMID ID for the file. Yes
9 mcsPartType The MCS part type for the file. If the file MCS part type does not match the folder MCS part type, an entry will be created in the System Definitions script created by zVMImport to create a file-level override for the MCS part type setting. Refer to your Languages XML File for the folder MCS part type setting. Specify a dash (-) to use the default MCS part type for the file. Yes
10 reusType The link-edit re-usability option for the module. Valid values for reusType are:
Value: Description:
- Not applicable
E REFRESHABLE
N REENTRANT
U REUSABLE

This attribute controls the value of the LNKREUS translator variable. When this attribute is set to E, N, or U, an entry will be created in the System Definitions script created by zVMImport to define a LNKREUS translator variable, team.enterprise.build.var.LNKREUS, for the file with a value of REFR for E, RENT for icod, and SERIAL for U. This variable can be used with compiler translators to set REUS parameter for the linkage editor. Set the default value of LNKREUS to NONE and use the overrides created by zVMImport to set the other values when needed.

Yes
11 sourceUpdate The source update setting for the file. If the file source update setting does not match the folder source update setting, an entry will be created in the System Definitions script created by zVMImport to create a file-level override for the source update setting. Refer to your Languages XML File for the folder source update setting. Valid values are:
Values: Description:
T File is maintained via source updates (true).
F File is not maintained via source updates (false).

This attribute controls the value of the team.enterprise.packaging.file.sourceupdate file property. This property is used to override language settings for source updatable parts.

Yes
12 languageDefinition The name of the EWM Enterprise Extensions language to associate with the file. An entry will be created in the System Definitions script created by zVMImport to explicitly associate the file with an EWM Enterprise Extensions language. Specify a dash (-) to use the default language for the file. Do not specify language names with embedded blanks. Yes
13 lineDelimiter The type of line delimiter to use for the file. The default setting for line delimiter is Platform. If the file uses a line delimiter other than Platform, specify the value here and an entry will be created in the System Definitions script created by zVMImport to set the line delimiter value for the file. Valid values for lineDelimiter are:
Values: Description:
- Use default.
None Binary file
CR Text file with carriage returns
LF Text file with line feeds
CRLF Text file with carriage returns and line feeds
Platform Text file that adjusts line delimiter based on the current platform
Yes
14 codePage The name of the code page to use for the file. If a code page is specified, an entry will be created in the System Definitions script created by zVMImport to set an mvsCodePage property for the file. Valid values for codePage are:
Value: Description:
- Use default.
gb2312  
Big5  
eucJP  
euc-kr  
IBM-037 Name of the code page. The listed code pages are examples.
IBM-1047 Any valid code page can be specified.
ISO-8859-1  
ISO-8859-2  
windows-1251  
Yes

Examples

BPEAQHE  IMSBLD.HMK1400S.MAC                          P T BP MACRO    -    -  -      - F -            -        -
BPEAQHTU IMSBLD.HMK1400S.MAC                          P T BP COPY     -    -  -      - F -            -        -
BPEAQHT0 IMSBLD.HMK1400S.ASM                          P T BP ASSEMBLE -    -  ++MOD  - F -            -        -
BPEATTCH IMSBLD.HMK1400S.MAC                          P T BP MACRO    -    -  -      - F -            -        -
BPEAWCR0 IMSBLD.HMK1400S.PLX                          P T BP PLX370   -    -  ++MOD  E F -            -        -
BPEAWDEF IMSBLD.HMK1400S.MAC                          P T BP MACRO    -    -  -      - F -            -        -
BPEAWE   IMSBLD.HMK1400S.MAC                          P T BP MACRO    -    -  -      - F -            -        -
BPEAWEAT IMSBLD.HMK1400S.MAC                          P T BP MACRO    -    -  -      - F -            -        -
BPEAWELD IMSBLD.HMK1400S.MAC                          P T BP MACRO    -    -  -      - F -            -        -
BPEAWETM IMSBLD.HMK1400S.MAC                          P T BP MACRO    -    -  -      - F -            -        -
BPEAWEXT IMSBLD.HMK1400S.MAC                          P T BP MACRO    -    -  -      - F -            -        -
BPEAWIX  IMSBLD.HMK1400S.MAC                          P T BP MACRO    -    -  -      - F -            -        -
BPEAWIXU IMSBLD.HMK1400S.MAC                          P T BP MACRO    -    -  -      - F -            -        -
BPEAWI00 IMSBLD.HMK1400S.PLX                          P T BP PLX370   -    -  ++MOD  E F -            -        -
BPEAWSRV IMSBLD.HMK1400S.MAC                          P T BP MACRO    -    -  -      - F -            -        -
BPEAWSV0 IMSBLD.HMK1400S.PLX                          P T BP PLX370   -    -  ++MOD  E F -            -        -
BPEAWS10 IMSBLD.HMK1400S.PLX                          P T BP PLX370   -    -  ++MOD  E F -            -        -
BPEBPCA  IMSBLD.HMK1400S.MAC                          P T BP MACRO    -    -  -      - F -            -        -
BPEBPCRE IMSBLD.HMK1400S.MAC                          P T BP MACRO    -    -  -      - F -            -        -
BPEBPCR0 IMSBLD.HMK1400S.PLX                          P T BP PLX370   -    -  ++MOD  E F -            -        -

Magic Properties File

Certain file extensions do not automatically pick up the desired line delimiter and encoding by default. The Magic Properties File addresses this issue by describing file properties to EWM during initial check-in. The Magic Properties File contains rules that specify:
  • MIME type
  • line delimiter
  • encoding
for all files matching a given pattern. The general syntax is that of a property file, with the pattern acting as the key, followed by zero or more keywords indicating the values for matching patterns. For example, to define the "asm" extension to use a MIME of "text/plain", a "Platform" line delimiter, and encoding of UTF-8, the magic.properties file entry would be:
*.asm: encoding: UTF-8; mime: text/plain; delim; platform

The placement of the magic.properties file is discussed in the article, SCM Magic File, on jazz.net. In brief, the magic.properties should be placed according to the following table:

System: Location
UNIX and Linux ~/.jazz-scm/
Windows LOCALAPPDATA\jazz-scm\
Windows 7 C:\Users\userid\AppData\Local\jazz-scm\

Examples

*.asm: encoding: UTF-8; mime: text/plain; delim: platform
            *.asmisrc
                encoding: UTF-8; mime: text/plain; delim: platform
            *.asmsmpl
                encoding: UTF-8; mime: text/plain; delim: platform
            *.asmsrc
                encoding: UTF-8; mime: text/plain; delim: platform
            *.bnd
                encoding: UTF-8; mime: text/plain; delim: platform
            *.bnd370
                encoding: UTF-8; mime: text/plain; delim: platform
            *.bnd390
                encoding: UTF-8; mime: text/plain; delim: platform
            *.c
                encoding: UTF-8; mime: text/plain; delim: platform
            *.cpl
                encoding: UTF-8; mime: text/plain; delim: platform
            *.cisrc
                encoding: UTF-8; mime: text/plain; delim: platform
            *.csmpl
                encoding: UTF-8; mime: text/plain; delim: platform
            *.c370
                encoding: UTF-8; mime: text/plain; delim: platform
            *.c390
                encoding: UTF-8; mime: text/plain; delim: platform
            *.c390pl
                encoding: UTF-8; mime: text/plain; delim: platform
            *.c390isrc
                encoding: UTF-8; mime: text/plain; delim: platform
            *.c390smpl
                encoding: UTF-8; mime: text/plain; delim: platform
            *.clst
                encoding: UTF-8; mime: text/plain; delim: platform
            *.cbl
                encoding: UTF-8; mime: text/plain; delim: platform
            *.cblisrc
                encoding: UTF-8; mime: text/plain; delim: platform
            *.cblsmpl
                encoding: UTF-8; mime: text/plain; delim: platform
            *.cpy
                encoding: UTF-8; mime: text/plain; delim: platform
            *.cpyisrc
                encoding: UTF-8; mime: text/plain; delim: platform
            *.cpysmpl
                encoding: UTF-8; mime: text/plain; delim: platform
            *.cpysrc
                encoding: UTF-8; mime: text/plain; delim: platform
            *.data
                encoding: UTF-8; mime: text/plain; delim: platform
            *.dataisrc
                encoding: UTF-8; mime: text/plain; delim: platform
            *.datasmpl
                encoding: UTF-8; mime: text/plain; delim: platform
            *CSLOTCHS.databin
                encoding: gb2312; mime: application/octet-stream; delim: none
            *CSLOTCHT.databin
                encoding: Big5; mime: application/octet-stream; delim: none
            *CSLOTJPN.databin
                encoding: eucJP; mime: application/octet-stream; delim: none
            *CSLOTKOR.databin
                encoding: euc-kr; mime: application/octet-stream; delim: none
            *CSLOTPOL.databin
                encoding: ISO-8859-2; mime: application/octet-stream; delim: none
            *CSLOTRUS.databin
                encoding: windows-1251; mime: application/octet-stream; delim: none
            *.databin
                encoding: ISO-8859-1; mime: application/octet-stream; delim: none
            *.dtl
                encoding: UTF-8; mime: text/plain; delim: platform
            *.dtm
                encoding: UTF-8; mime: text/plain; delim: platform
            *.h
                encoding: UTF-8; mime: text/plain; delim: platform
            *.hsrc
                encoding: UTF-8; mime: text/plain; delim: platform
            *.jcl
                encoding: UTF-8; mime: text/plain; delim: platform
            *.jclin
                encoding: UTF-8; mime: text/plain; delim: platform
            *.lnk
                encoding: UTF-8; mime: text/plain; delim: platform
            *.mac
                encoding: UTF-8; mime: text/plain; delim: platform
            *.macisrc
                encoding: UTF-8; mime: text/plain; delim: platform
            *.macsmpl
                encoding: UTF-8; mime: text/plain; delim: platform
            *.macsrc
                encoding: UTF-8; mime: text/plain; delim: platform
            *.mcscpyrt
                encoding: UTF-8; mime: text/plain; delim: platform
            *.msg
                encoding: UTF-8; mime: text/plain; delim: platform
            *.pnl
                encoding: UTF-8; mime: text/plain; delim: platform
            *.pli
                encoding: UTF-8; mime: text/plain; delim: platform
            *.pliisrc
                encoding: UTF-8; mime: text/plain; delim: platform
            *.plismpl
                encoding: UTF-8; mime: text/plain; delim: platform
            *.plx
                encoding: UTF-8; mime: text/plain; delim: platform
            *.rexx
                encoding: UTF-8; mime: text/plain; delim: platform
            *.scr
                encoding: UTF-8; mime: text/plain; delim: platform
            *.skl
                encoding: UTF-8; mime: text/plain; delim: platform
            *.tbl
                encoding: UTF-8; mime: text/plain; delim: platform
            *.xml
                encoding: UTF-8; mime: text/plain; delim: platform
            *.xsd
                encoding: UTF-8; mime: text/plain; delim: platform 
Note:
  • Encrypted passwords can be generated by the zVMPassword ant task or by the zImportGetPassword Java application. To generate an encrypted password with the zVMPassword task refer to the task's documentation. To generate an encrypted password with the zImportGetPassword Java application, issue the following command from a Windows command prompt window:
    java -classpath path_to_jar\com.ibm.team.enterprise.smpe.toolkitcom.ibm.team.enterprise.smpe.toolkit.internal.zimport.util.zImportGetPassword pw
    substituting "path_to_jar" with the actual path to the jar file and "pw" with the actual password.

    The password that is generated is a signed 32-character alphanumeric string. All 32-characters, or 33-characters if a leading minus sign is present, make up the password which must be specified as input to zVMImport.

  • If zVMImport is executed using an Ant build and the Jazz Source Control tab is included in the build definition, exclude all components that are to be imported by zVMImport from the load process for better performance. zVMImport loads all components as part of its process. Loading the components with the build results in the components being loaded twice.

Examples

zVMImport ant script

<?xml version="1.0" encoding="UTF-8"?> 
<project name="zVMImport" default="all" xmlns:es="antlib:com.ibm.team.enterprise.smpe.toolkit">     
		<description>zVMImport</description>     
    
		<!-- Set global properties -->     
		<condition property="deliver">         
						<equals arg1="${rtc.deliver}" arg2="true"/>     
		</condition>         

		<property name="debugOn"            		value="true"/>     
		<property name="timerOn"            		value="true"/>     
		<property name="timer"              		value="true"/>     
		<property name="trace"              		value="true"/>     
		<property name="debug"              		value="false"/>     
		<property name="items"              		value="false"/>     
    
		<property name="root"               		value="${team.scm.fetchDestination}"/>     
		<property name="work"               		value="${team.scm.fetchDestination}/.work"/>        
 
		<property name="doCharsNS"          		value="false"/>     
		<property name="doCharsSB"          		value="false"/>     
		<property name="doCreates"          		value="true"/>     
		<property name="doDeletes"          		value="true"/>     
		<property name="doNumbers"          		value="true"/>     
		<property name="doReplace"         		 value="true"/>     
		<property name="dvmymbols"          		value="false"/>     
		<property name="dvmymbolsTesting"   		value="false"/>     
		<property name="doWorkspaceDeliver" 		value="true"/>   
      
		<property name="requestThreadCnt"   		value="100"/>     
		<property name="requestThreadMax"   		value="6"/>     
		<property name="requestTimeoutInt"  		value="120"/>    
     
		<property name="rtcCheckinOnly"     		value="false"/>     
		<property name="rtcComponents"      		value="C:/etc/jazz/linux235/Build/General/cnf/zVMImport.components.xml"/> 
    <property name="rtcPassword"        			value="-166560c9814832497271a936782212b1"/>     
		<property name="rtcProcessArea"     		value="Dan's PA"/>     
		<property name="rtcScmTool"         		value="C:/Program Files/IBM/TeamConcertBuild_601/scmtools/eclipse/scm.exe"/>  
		<property name="rtcServer"          		value="https://linux235.rtp.raleigh.ibm.com:10443/ccm/"/>     
		<property name="rtcStream"          		value="Test.zVMImport"/>     
		<property name="rtcUser"            		value="DREILLY"/>     
		<property name="rtcWorkspace"       		value="Test.zVMImport.Workspace"/>      
   
		<property name="zvmCodePage"        		value="TCPXLBIN"/>     
		<property name="zvmHvmt"            		value="nasw.pok.ibm.com"/>     
		<property name="zvmLanguageXml"     		value="C:/etc/jazz/linux235/Build/General/cnf/zVMImport.languages.xml"/> 
    <property name="zvmObjectsFile"     			value="DREILLY.OBJECTS"/>     
		<property name="zvmPassword"        		value="-166560c9814832497271a936782212b1"/>     
		<property name="zvmSymbols"         		value="C:/etc/jazz/linux235/Build/General/cnf/zVMImport.symbols"/>     
		<property name="zvmUpdatesFile"     		value=""/>     
		<property name="zvmUser"            		value="DREILLY"/>         

		<!-- - - - - - - - - - - - - - - - - - - *     
		*  zVMImport init                        *     
		*- - - - - - - - - - - - - - - - - - - -->     
		<target name="init" description="init"/>         

		<!-- - - - - - - - - - - - - - - - - - - *     
		*  zVMImport main                        *     
		*- - - - - - - - - - - - - - - - - - - -->     
		<target name="main" description="main">                 
				<es:zVMImport             
							function="extract"             
							root="${root}"             
							work="${work}"                         

							doCharsNS="${doCharsNS}"             
							doCharsSB="${doCharsSB}"             
							doCreates="${doCreates}"             
							doDeletes="${doDeletes}"             
							doNumbers="${doNumbers}"             
							doReplace="${doReplace}"             
							dvmymbols="${dvmymbols}"             
							dvmymbolsTesting="${dvmymbolsTesting}"                         

							requestThreadCnt="${requestThreadCnt}"             
							requestThreadMax="${requestThreadMax}"             
							requestTimeoutInt="${requestTimeoutInt}"                         

							rtcComponents="${rtcComponents}"             
							rtcPassword="${rtcPassword}"             
							rtcProcessArea="${rtcProcessArea}"             
							rtcScmTool="${rtcScmTool}"             
							rtcServer="${rtcServer}"             
							rtcStream="${rtcStream}"             
							rtcUser="${rtcUser}"             
							rtcWorkspace="${rtcWorkspace}"                         

							zvmCodePage="${zvmCodePage}"             
							zvmHvmt="${zvmHvmt}"             
							zvmLanguageXml="${zvmLanguageXml}"             
							zvmObjectsFile="${zvmObjectsFile}"             
							zvmPassword="${zvmPassword}"             
							zvmSymbols="${zvmSymbols}"             
							zvmUpdatesFile="${zvmUpdatesFile}"             
							zvmUser="${zvmUser}"         
				/>    
             
				<antcall target="deliver"/>     
		</target>     
    
		<target name="deliver" description="deliver" if="deliver">   
              
				<es:zVMImport             
							function="deliver"             
							root="${root}"             
							work="${work}"                         

							doWorkspaceDeliver="${doWorkspaceDeliver}"                         

							rtcCheckinOnly="${rtcCheckinOnly}"             
							rtcComponents="${rtcComponents}"             
							rtcPassword="${rtcPassword}"             
							rtcProcessArea="${rtcProcessArea}"             
							rtcScmTool="${rtcScmTool}"             
							rtcServer="${rtcServer}"             
							rtcStream="${rtcStream}"             
							rtcUser="${rtcUser}"             
							rtcWorkspace="${rtcWorkspace}"         
				/>             
		</target>         
		<!-- - - - - - - - - - - - - - - - - - - *     
		*  zVMImport term                        *     
		*- - - - - - - - - - - - - - - - - - - -->     
		<target name="term" description="term"/>     
    
		<target depends="init,main,term" description="manualBuilds" name="all"/> 
</project> 

video icon Video

Jazz.net channel
Software Education channel

learn icon Courses

IoT Academy
Skills Gateway

ask icon Community

Jazz.net
Jazz.net forums
Jazz.net library

support icon Support

IBM Support Community
Deployment wiki