Summary: how to configure the source code viewer so that you can view source code of objects in CAST Imaging.

In CAST Imaging versions ≥ 2.15, the datasource icon  available in Applications tile, lets you update the datasource (Datasource is the CAST Storage Service where the source code data is stored) from the admin page. See: Admin Center - Configuring data source.

Introduction

It is possible to view object source code direct in CAST Imaging. Source code is available by right clicking objects in the Investigation view (available after a double clicking an item at Level 5) and selecting Show source code. Below is an explanation of how to configure the source code viewer.

Click to expand

Step 1 - Identify instance names

First identify the instance names for the CAST Storage Service / PostgreSQL hosts from which the Application data has been exported:

  • Locate the Application ZIPs generated during the export process and unzip them
  • Open each .csv file named xxx_is_app.csv with a text editor (where xxx is the Application name)
  • Find the instance name on the line starting with InstanceName - in the example below the instance is an IP address 192.168.200.104:
property,label,value
InstanceName,Instance Name,192.168.200.104
SchemaName,Schema Name,v8315_local
Extension,com.castsoftware.JEE-MavenHttp,2.0.6
  • Make a note of all the instance names that you want to configure for source code viewing and match these to the CAST Storage Service/PostgreSQL instances.
Note that the instance name will be the same as the "host" name used in the export batch scripts.

Step 2 - Edit the configuration

All deployments - edit the application.properties file

Locate and edit the following file:

Traditional Windows installer: %APPDATA%\CAST\ImagingSystem\sourcecode\application.properties
 
Docker Installer (located in the unzipped extension folder):
server\sourcecode\application.properties or sourcecode\application.properties

Microsoft Windows traditional installer

The file is located in the protected %APPDATA% location, therefore you must open the .properties file with elevated permission (this is usually achieved by right clicking your text editor in the Windows start menu and selecting Run as administrator):

Now locate the following lines in the application.properties file and ensure they match the CAST Storage Service / PostgreSQL instances that host the Applications you have generated and imported. The application.properties file will be predefined with two "dummy" CAST Storage Service/PostgreSQL instances as shown below, these can be removed:

datasource.url=jdbc:postgresql://127.0.0.1:2284/postgres,jdbc:postgresql://127.0.0.1:2284/postgres
datasource.username=operator,operator
datasource.password=CastAIP,CastAIP
datasource.alias=localhost,local

Where:

datasource.url

This is the JDBC url for the CAST Storage Service/PostgreSQL instance where the application source code is stored. The syntax is as follows: jdbc:postgresql://<host or IP address>:<port>/postgres. Multiple instances should be separated by a comma.

datasource.username

For the vast majority of CAST Storage Service / PostgreSQL instances, this will be operator. Multiple usernames should be separated by a comma.

datasource.password

For the vast majority of CAST Storage Service / PostgreSQL instances, this will be CastAIP.  Multiple password should be separated by a comma.

datasource.alias

This entry is used to identify the host name - you can use any name, however CAST suggests using the host name or IP address as entered in datasource.url entry. Separate with a comma for multiples instances.

Save the file and ensure that you restart the CAST Imaging System - sourcecode service Windows service or the sourcecode Docker container in order for the new configuration to be taken into account.

Examples

Single CAST Storage Service/PostgreSQL instance

Single CAST Storage Service/PostgreSQL instance called my_postgresql with default username and password:

datasource.url=jdbc:postgresql://my_postgresql:2282/postgres
datasource.username=operator
datasource.password=CastAIP
datasource.alias=my_postgresql

Multiple CAST Storage Service/PostgreSQL instances

In this example we have one instance called my_postgresql1 and another called my_postgresql2 both with default username and password. Ensure that the hosts are added in the same order on each line

datasource.url=jdbc:postgresql://my_postgresql1:2282/postgres,jdbc:postgresql://my_postgresql2:2282/postgres
datasource.username=operator,operator
datasource.password=CastAIP,CASTAIP
datasource.alias=my_postgresql1,my_postgresql2

See also Admin Center - Managing application aliases for more information about alias management.

Docker deployments only - option to use run commands

  • This method is only available in ≥ 2.11. If you are using an older release deployed on Docker, you will need to use the method described above for Microsoft Windows - modify the the application.properties file.
  • Run the commands listed below from the directory where the docker-compose.yml file is located.
  • Where:

    • datasource.url >>> The syntax is as follows: jdbc:postgresql://<host or IP address>:<port>/postgres. Multiple instances should be separated by a comma.
    • datasource.username >>> For the vast majority of CAST Storage Service / PostgreSQL instances, this will be operator. Multiple usernames should be separated by a comma.
    • datasource.password >>> For the vast majority of CAST Storage Service / PostgreSQL instances, this will be CastAIP.  Multiple password should be separated by a comma.
    • datasource.alias >>> This entry is used to identify the host name - you can use any name, however CAST suggests using the host name or IP address as entered in datasource.url entry. Separate with a comma for multiples instances.
  • See also Admin Center - Managing application aliases for more information about alias management.

Run the following command (adapt to your own environment):

imaging --updatesourcecodeconfig datasource.url=jdbc:postgresql://my_host:my_port/postgres datasource.username=operator datasource.password=CastAIP datasource.alias=my_host

Or if you need to define multiple CAST Storage Service/PostgreSQL instances, run the following command (adapt to your own environment). The example below shows two CAST Storage Service/PostgreSQL instances, but more than two can be added if required:

imaging --updatesourcecodeconfig datasource.url=jdbc:postgresql://my_host:my_port/postgres,jdbc:postgresql://my_host2:my_port/postgres datasource.username=operator,operator datasource.password=CastAIP,CastAIP datasource.alias=my_host,my_host2

If your CAST Storage Service/PostgreSQL instances are hosted on another host machine (i.e. not hosted on the same host machine as Docker) then you will also need to run the following additional command to ensure that CAST Imaging is aware of the external host via its IP address:

imaging --addextrahost my_host=192.168.0.4

Or for multiple hosts:

imaging --addextrahost my_host=192.168.0.4 my_host2=192.168.0.5

Why can't I see source code for some items?

Some objects/nodes in CAST Imaging do not contain any source code and a message is displayed to explain this.:

This can occur for a variety of reasons, for example:

  • Nodes in levels 1 - 5 do not have associated source code since these nodes are "groups" of nodes/objects:

  • At object level, when the object is not a specific object but rather an object grouping. In this situation, the grouped items must be expanded in order to see the constituent objects and their source code:

Click to enlarge

 

  • When the object is an "Unknown Program" - this is seen with Mainframe applications when the analyzer creates has a placeholder for programs found that are not present in the delivered source code.