Application source code comes in many different "shapes and sizes" and can be stored in many different locations - the CAST Delivery Manager Tool is therefore designed with this in mind:
- A Version can consist of one or more source code packages
- In general one source code package will need to be created per storage location and/or source code type (e.g. source code files, database extracts, etc.).
- The CAST Delivery Manager Tool provides a wizard to help you configure each source code package - the wizard provides options for the following categories of source code:
|Source code stored in a database|
For example Oracle, Microsoft SQL Server etc. Options available as follows:
|Source code stored in a text based file|
For example JEE, .NET, Python, C/C++ etc. whether located:
|Source code stored in a specific vendor repository||For example Oracle Forms/Reports, Mainframe, SAP etc. - in other words files that are in a proprietary format. A custom interface is available in the wizard to enable interaction with the target vendor repository.|
|Automated extraction of libraries used to compile your source code|
This category is specific to JEE and .NET and is designed to automatically package required third-party source code based on what the CAST Delivery Manager Tool identifies. Therefore, in the vast majority of circumstances, this section is configured after the initial packaging action has taken place and when missing resources alerts have been raised.
Add a package
In the CAST Delivery Manager Tool, in the Version page, click the Add button as shown below:
Click to enlarge
The Add Package wizard will then be displayed. The first screen in the wizard will ask you where your source code is located. The list of available source code locations may differ depending on the extensions installed with CAST AIP. Click Next to continue when you have selected the appropriate location:
Click to enlarge
The next step of the wizard will provide further options related to the source code location you choose previously (see example below (click to enlarge images)):
|Select a database > Oracle Server|
|Select a SCM > SVN|
|Select a vendor specific repository > Oracle Forms/Reports|
Automated extraction of libraries used to compile your source code > Automated extraction of required jar files
- Although the second screen of the wizard provides different options for extracting the source code, they are in fact equivalent and will give you the same result. Therefore, you can change from one source code location to another within the same category, for example from a live database extraction to using the output of a database extractror or from SVN to Folder on your local file system:
- For all file system options (SVN, TFS, Git, CVS, Files on your file system) there is equivalence since the extraction is based on relative paths - in other words, when switching between these source code locations, the hierarchy of files must be the same under the selected root path.
Click Finish to complete the wizard. The Source Code Package editor will then be displayed, enabling you to configure access to the source code you want to package. Use the information below in Source Code Package editor to help you do this. When your source code package is configured, you then need to run the package action. See How do I package the Version.
Click to enlarge
Source Code Package editor
The Source Code Package page enables you to configure your source code package and then view its contents and any alerts that are generated during the package action.
|Package name||This field is used solely to identify your source code package. Use a name that easily and quickly identifies what your Source Code Package contains. It is possible to change the package name in subsequent versions without impacting the delivery, however, deleting and recreating the package will impact analysis results since the package and its contents will be treated as "deleted" and then "added".|
Indicates the status of the source code package's content. For example:
Indicates the next required action based on the content of the Content state column. For example:
|Last extraction on||Displays the date and time the most recent extraction was run. An extraction is only one part of the packaging action - you can run a package action and the extraction may not be required if no settings have been changed. You can force an extraction during the package action if required. See How do I package the Version.|
This tab allow you to configure how the CAST Delivery Manager Tool will access the source code you want to extract and include in a Source Code Package for analysis and how to deal with specific things it encounters. The content of the tab differs depending on the type of Source Code Package you are configuring.
Where is your source code?
All source code types/locations will feature a "Where is your source code?" section. Use this to configure where there source code is located.
- You can change from one source code location to another within the same category, for example from a live database extraction to using the output of a database extractror or from SVN to Files on your file system:
- Changing any parameters in this section after an initial package action will cause the "extraction" step to be executed during the package action - otherwise, this extraction step is not repeated in subsequent package actions.
Is the source code deployed in a specific folder?
This section will typically appear for source code that is stored in a text based file, whether on the local file system, in a source code management system or in a vendor specific repository. It can be used when the source code you have available for packaging is not in the development environment. For example, you have been told to package the code from D:\App\DevCode but the code is developed in D:\App\ProdCode. In this situation the CAST Delivery Manager Tool may not be able to resolve all the files and folder references in the source code and you may see "Missing File" or "Missing Folder" alerts after running the package action. In this situation you can specify the "real" development root folder of your source code so that file and folder references can be resolved correctly.
Which project should we take into account for the analysis?
This section will typically appear for source code that is stored in a text based file, whether on the local file system, in a source code management system or in a vendor specific repository. The various options (project discovery and exclusion) can be reviewed BEFORE the initial packaging action, however, it is mainly designed to be configured AFTER the initial package action (see How do I fine-tune my Version).
This tab displays information about what the CAST Delivery Manager has identified in the source code package according to the configuration settings set in the Package Configuration tab - as such, it is only populated with data once you have run an initial packaging action. See How do I fine-tune my Version for more information. In brief:
This section displays a list of projects that have been discovered and extracted by the CAST Delivery Manager Tool when a Source Package has been packaged and whether the project will be "selected" or "ignored". When subsequent package actions are run, information is also provided with regard to the projects that can no longer be found (for example when the source code has changed).
This section will typically appear for source code that is stored in a text based file, whether on the local file system, in a source code management system or in a vendor specific repository. It displays a list of files that have been discovered and extracted by the CAST Delivery Manager Tool. These are the files that will be packaged when the Version is delivered. When subsequent package actions are run, information is also provided with regard to files that have been added, deleted or modified (for example when the source code has changed).
This section displays a log of the most recent package action. The table lists each step in the package action, the date and time the step was completed and whether any errors or warnings were encountered.
The Package Alert tab displays a list of any "alerts" that were raised during the package action and allows you to either ignore or remediate the alerts. The tab is only populated with data once you have run an initial packaging action. See How do I fine-tune my Version for more information. In brief:
This section displays a list of any "alerts" that were raised during the Package action. If there are any alerts (these indicate whether projects or files that are referenced in the target source code can be resolved), then you need to check that these will not stop the analysis from proceeding correctly and that all the necessary code is present. If required, you may need to package additional code so that the alerts are resolved.
Any alert to ignore
If you know that an alert is false or will not impact the source code analysis, then it is possible to ignore the alert using this section.
Any manual remediations to apply for alerts?
If you know that an alert can be resolved because a missing item is located in another source code package, you can create a manual remediation item that will "tell" the CAST Delivery Manager where the missing items are located. In the same way, missing variables can be manually remediated by defining the variable that is required.