In order to scan source code into repository, the source code must be collected into a subdirectory under the scanning directory on the scanning server. In addition, a manifest file must be created in order to describe the source code.
The subdirectory under which the source code is placed may have any name, but it must appear immediately under scanning directory that is specified in the configuration. All source code which should be scanned in a single batch should be placed under this subdirectory.
The manifest file may be a standard properties file, called app.properties, that is recognized by the source code scanner itself and is described below. Alternatively, it may be a custom manifest file that is loaded and parsed by a plugin (see CM Meta Analytics Plugins for more information.)
Creating app.properties
After all source files have been loaded into the subdirectory, the next step is to create a properties file called app.properties in the subdirectory. The format of app.properties is as follows:
#- # SSI.application
- #
- # Descriptive name of application that will be displayed in the GUI.
- #
- SSI.application = My Application
- #
- # SSI.system
- #
- # System name of programs scanned.
- #
- SSI.system = SYS
- #
- # SSI.subsys
- #
- # Subsystem name of programs scanned.
- #
- SSI.subsys = SUBSYS
- #
- # SSI.serverName
- #
- # Server name for tables scanned.
- #
- SSI.serverName = GAP1
- #
- # SSI.creator
- #
- # Creator name for tables scanned.
- #
- SSI.creator = PT18
- #
- # SSI.ALL.encoding
- #
- # Character set encoding of all input files, unless otherwise specified.
- #
- SSI.ALL.encoding=CP-037+R80
- #
- # SSI.ALL.panvaletIncludePath
- #
- # Path to search for files included using the Panvalet inclusion directive (++INCLUDE).
- # Multiple paths may specified delimited by a semicolon. Paths are relative to the application root.
- #
- SSI.ALL.panvaletIncludePath=
- #
- # SSI.COBOL.sourcePath
- #
- # Path of a directory (relative to the application root) that contains all COBOL source
- # to be processed. Any files found under this path using a recursive directory walk are
- # passed to the COBOL scanner.
- #
- SSI.COBOL.sourcePath=
- #
- # SSI.COBOL.copyLibPath
- #
- # Paths to search for files included with the COBOL COPY statement.
- # Multiple paths may specified delimited by a semicolon. Paths are relative to the application root.
- #
- SSI.COBOL.copyLibPath=
- #
- # SSI.COBOL.copySystemLibPath
- #
- # Paths to search for files included with the COBOL COPY ... FROM statement. The paths will be
- # searched for a directory matching the name of the system library in the FROM clause of the
- # statement.
- #
- # Multiple paths may specified delimited by a semicolon. Paths are relative to the application root.
- #
- SSI.COBOL.copySystemLibPath=
- #
- # SSI.JCL.sourcePath
- #
- # Path of a directory (relative to the application root) that contains all JCL source
- # to be processed. Any files found under this path using a recursive directory walk are # passed to the JCL scanner.
- #
- SSI.JCL.sourcePath=
- #
- # SSI.JCL.procPath
- #
- # Path of a directory (relative to the application root) that contains a
- # a directory containing include files and procedures.
- #
- SSI.JCL.procPath=VALPROC
- #
- # SSI.ALC.sourcePath
- #
- # Path of a directory (relative to the application root) that contains all ALC non-
- # copybook, non-macro source files to be processed. Any files found under this path
- # using a recursive directory walk are passed to the ALC scanner.
- #
- SSI.ALC.sourcePath=
- #
- # SSI.ALC.copyPath
- #
- # Path of a directory (relative to the application root) that contains all ALC
- # copybook or macro source files to be processed. Any files found under this path
- # using a recursive directory walk are passed to the ALC scanner.
- #
- SSI.ALC.copyPath=
- #
- # SSI.JAVA.sourcePath
- #
- # List of absolute paths of source directories for the Java projects. Each
- # source directory should be separated by a semicolon. The absolute path of
- # each directory must be used.
- #
- SSI.JAVA.sourcePath=d:/path/to/java/src
- #
- # SSI.JAVA.classPath
- #
- # List of absolute paths of source directories for libraries that should be
- # on the Java classpath. Each source directory should be separated by a
- # semicolon. The absolute path of each directory must be used.
- #
- SSI.JAVA.classPath=d:/path/to/classpath/src
If the files are encoding in mainframe EBCDIC with fixed 80-column lines, then the property SSI.ALL.encoding should be set to CP-037+R80. Otherwise, it should be set to the Java name of the character set that is in use.
Note: When generating app.properties from an external process, ensure that it is created after all source code files have been transferred to the scanning server.
Preparing the Work Tables
The work tables on the server should be cleared before starting the scanner. The scanner will use work units that begin with the prefix CS. These can be cleared using the following DB2 statements:
DELETE FROM DBXRELXX.PRMXML_OI WHERE WORK_UNIT LIKE 'CS%';
DELETE FROM DBXRELXX.PRMXML_AI WHERE WORK_UNIT LIKE 'CS%';
DELETE FROM DBXRELXX.PRMXM