Git to ISPW Integration - The ISPW YAML Configuration File

An ISPW YAML configuration file is required for the Git to ISPW integration. A YAML configuration file can be created from a Git project within Topaz based on the content of the project. To create a YAML file, refer to the Git to ISPW Integration – A Tutorial’s Set up a Git project with the source, YAML file, and Jenkinsfile, and set up a Jenkins multibranch pipeline section’s Step 5.

The YAML configuration file contains ISPW property settings and path mappings.

ISPW Property Settings

The YAML configuration file must contain the following ISPW property settings:

  • host - The host name or IP address of the ISPW communications interface (CI) task. Compuware recommends using the fully qualified domain name when specifying the host.
  • port - The port number for the communications interface (CI) task.
  • stream - A 2- to 8-character code that defines the application structure with which the application is associated.
  • application - A 4-character application ID.

The YAML configuration file may optionally contain the following ISPW property setting:

  • runtime configuration - The name of the runtime configuration. A runtime configuration represents a group of settings (dataset allocations, site customizations, skeleton JCLs, Clists) that can be applied to an ISPW server. No runtime configuration is required if a default runtime configuration was specified as part of the ISPW install and you want to use that instance.

Path Mappings

The YAML configuration file must contain the following path mappings:

  • path - The file path of the project, such as \MYFILE\COB). This path applies to any nested paths unless it’s defined separately, such as \MYFILE\COB\SOURCE.

    Note: ISPW/Eclipse also supports using Java pattern matching. Pattern matching uses special characters to create a glob pattern and then relative path names can be compared against that pattern. Refer to Java Pattern Matching below.

  • types - The YAML configuration file must contain the following two types:

  • fileExtension - The file extension type for each path mapping (such as cob or clst)

  • ispwType - The ISPW type for each path mapping (such as COB or CLST)

The YAML configuration file may optionally contain the following types:

  • cics - A ‘Yes’ or ‘No’ value indicating whether the source contains CICS
  • flag1 - A user-defined flag with a one-character value
  • flag2 - A user-defined flag with a one-character value
  • flag3 - A user-defined flag with a one-character value
  • flag4 - A user-defined flag with a one-character value
  • genParms - A user-defined string with an 8-character value
  • ims - A ‘Yes’ or ‘No’ value indicating whether the source contains IMS
  • progType - A ‘Yes’ or ‘No’ value indicating whether the source is an executable component
  • sql - A ‘Yes’ or ‘No’ value indicating whether the source contains SQL

The following is a sample of a YAML configuration file.

!!com.compuware.ispw.cli.model.IspwRoot
ispwApplication:
 application: PLAY
 host: cw09.compuware.com
 pathMappings:
 - path: \ASM
   types:
   - fileExtension: asm
     ispwType: ASM
 - path: \C
   types:
   - fileExtension: c
     ispwType: C
 - path: \CLST
   types:
   - fileExtension: clst
     ispwType: CLST
 - path: \COB
   types:
   - cics: 'No'
     fileExtension: cob
     flag1: A
     flag2: B
     flag3: C
     flag4: D
     genParms: GENPARMS
     ims: 'No'
     ispwType: COB
     progType: 'Yes'
     sql: 'No'
 - path: \COPY
   types:
   - fileExtension: COPY
     ispwType: COPY
 - path: \JOB
   types:
   - fileExtension: job
     ispwType: JOB
 - path: \PLI
   types:
   - fileExtension: pli
     ispwType: PLI
 port: 47623
 runtimeConfig: TPZP
 stream: PLAY

Multiple types can exist under the same path within the YAML file. In the following example path entry, the fileExtension and ispwType types are shown twice in the same path.

 \- path: \FILES
  types:
  \- fileExtension: cob
   ispwType: COB
  \- fileExtension: pli
   ispwType: PLI

Java Pattern Matching

ISPW/Eclipse supports using Java pattern matching. Pattern matching uses special characters to create a glob pattern and then relative path names can be compared against that pattern.

The following rules are used to interpret glob patterns:

  • The * character matches zero or more characters of a name component without crossing directory boundaries.

  • The ** characters matches zero or more characters crossing directory boundaries.

  • The ? character matches exactly one character of a name component.

When the syntax is "glob", then the string representation of the path is matched using a limited pattern language that resembles regular expressions but with a simpler syntax. For example:

/home/*/* Matches /home/gus/data on UNIX platforms
/home/** Matches /home/gus and /home/gus/data on UNIX platforms

The expression string in YAML must be surrounded by double quotes.