Designer Scripts
Semarchy xDI Designer ships with a command-line utility to process scripts that build packages or deliveries, extract information from packages, etc to automate the build process.
Using Designer Scripts
You can perform package generation and similar operations from the command line by running a script file from a Designer installation folder.
Create a Script File
The script file is a text file containing one Designer Script Commands per line, as in the example below.
buildPackage -mainProcessWorkspacePath "MyProject/Source Models/process_A.proc" -package "WKS:/Built Items/myPackage01.pck"
extractPackageInfo -package "WKS:/Built Items/myPackage01.pck" -extract manifest -outputFile "D:/Extract/packageReport.txt"
buildDelivery -package "WKS:/Built Items/myPackage01.pck" -buildmode substitution -confFile "D:/Configuration Files/confA.conf"
Run the Script File
Once you have created the script file, you can run it to perform your operations in batch.
From a command line, go to the Semarchy xDI Designer installation folder, and run the following command:
java -jar plugins/org.eclipse.equinox.launcher_1.6.200.v20210416-2027.jar
-application com.indy.shell.application
-data "<WORKSPACE_PATH>"
-script "<SCRIPT_PATH>"
[-logFile "<LOG_FILE_PATH>"]
-console -noSplash
-cleanProjects
-rebuildCache
-importFrom
This command uses the following parameters:
-
-data "<WORKSPACE_PATH>"
: Path to the Designer workspace where the processes are stored. -
-script "<SCRIPT_PATH>"
: Path to the script file. -
-logFile "<LOG_FILE_PATH>"`
: Path to a file storing the packages generation logs. This option is optional. -
-cleanProjects
: Rebuild all the processes before executing the script. This corresponds to the Project > Clean menu action in Designer. -
-rebuildCache
: Rebuild the cache before executing the script. This corresponds to the Rebuild Cache action of the Impact view in Designer. -
-importFrom "<FOLDER>"
: Use this option to import projects not in the workspace defined in the-data
option.<FOLDER>
is the path to a folder containing Projects to import into the workspace before running the script.This option automatically creates Project References in the workspace but does not copy the Projects in the workspace. <FOLDER>
must be located outside of the workspace defined with-data
option.
java -jar plugins/org.eclipse.equinox.launcher_1.6.200.v20210416-2027.jar
-application com.indy.shell.application
-data "D:/workspace/development"
-script "D:/resources/scripts/processPackages.txt"
-console -noSplash
When using the command-line tool, make sure that the workspace is functional and that is not opened by another instance of the tool or in Designer. |
Designer Script Commands
The Designer script commands provide the following capabilities:
-
Build Uber Runtime: Creates a standalone JAR containing a configured runtime and all its deliveries.
-
Build Package: Generates a package from a list of mappings and processes.
-
Build Delivery: Generate a delivery from a package.
-
Launch Configuration: Performs a launch configuration. Launch configurations are defined in Semarchy xDI Designer from the Build > Package Configuration menu.
-
Extract Package Info: Extracts information from a package
-
Validate Configuration File: Checks that a configuration file contains all the necessary externalized attributes for a given package
-
Validate Package Source: Checks that the sources of the package match specific user-defined rules.
-
Patch Package: Patches the sources in a given package.
-
Git Logical Merge: Performs a git merge using the EMF compare logical conflict resolution.
-
Git Logical Pull: Performs a git pull using the EMF compare logical conflict resolution.
Build Uber Runtime
This command creates a standalone JAR containing a configured runtime and all its deliveries. It fuses the runtime into a single jar file with the deliveries, modules, and properties.
betaBuildUberRuntime
-outputFilePath "<output_jar_file>"
-runtimeConfiguration "<runtime_configuration_file>"
[-runtimeFolder "<runtime_folder>"]
-deliveryList "<delivPath1;...;delivPathN>"
[-moduleFolder "<modules_folder_path>"]
[-log4jConfiguration "<>"]
[-additionalFolder "<additionnal_folder_path>"]
This command supports the following parameters:
Parameter | Description | ||
---|---|---|---|
|
Full path of the generated jar file. Note that the command fails if this file already exists. |
||
|
Path to the runtime configuration file (
|
||
|
Runtime installation folder, used as a source to generate the jar file. It defaults to the built-in runtime. |
||
|
Semi-colon-separated list deliveries files to include in the Jar. The full path must be specified for each delivery file. For example,
|
||
|
Folder containing the modules to embed in the jar. The built-in runtime module folder is used by default. |
||
|
Path to a |
||
|
A folder from which content is added to the Jar and deployed to the |
betaBuildUberRuntime
-outputFilePath "D:\MyFolder\MyJar.jar"
-deliveryList "D:\build\deliveries\MyDeliv01.deliv;D:\build\deliveries\MyDeliv02.deliv"
-runtimeConfiguration "D:\samples\engineParameters.xml"
betaBuildUberRuntime
-outputFilePath "D:\My_Folder\MyJar.jar"
-deliveryList "D:\build\deliveries\MyDeliv01.deliv"
-runtimeConfiguration "D:\samples\engineParameters.xml"
-runtimeFolder "D:\runtime"
-moduleFolder "D:\runtime\modules"
Use the Generated Jar
The generated JAR can be used to run deliveries, using the following command:
java
<java_options>
-jar <jar_file>
StartDelivery -name <delivery_name>
[-debug]
This command uses the following options:
-
<java_options>
: Java startup options. -
<jar_file>
: Path to the generated jar file. -
<delivery_name>
: Name of the delivery to start. -
-debug
: This option generates extensive logging on the system output and preserves the temporary deployment folder for troubleshooting purposes.
This command reproduces the start delivery script. You can use other options of this command like variables, session name, etc. |
java -jar MyJar.jar StartDelivery -name MyDeliv01
Build Package
This command generates a package file from a list of mappings and processes.
buildPackage
-mainProcessWorkspacePath "<process_list>"
-package "<target_package>"
[-conf <configuration_name>]
[-includeSources (true|false)]
[-includeDocumentation (true|false)]
This command supports the following parameters:
Parameter | Description | ||
---|---|---|---|
|
Pipe-separated list of processes and mappings to include in the package. Processes are found in the workspace by their relative path.
|
||
|
Absolute path of the target package to generate. This path supports Workspace Variable Placeholder. Absolute path example: Relative path with a workspace variable placeholder: |
||
|
Configuration name with which the package is generated. The configuration named |
||
|
Defines if the source metadata, processes, and mappings used to generate the package should be
included in the package. Having the sources in the package allow validations on these sources and to patch an already generated package. This option defaults to |
||
|
Defines if the documentation of the source metadata, processes, and mappings should be included inside the package. The documentation can be visualized for example in Semarchy xDI Production Analytics. This option defaults to |
File locations can use a specific syntax to look from files within the workspace. Using the WKS:<relative_path>
syntax, a file can be located within the workspace folder. For example,
WKS:/Project001/myPackage.pck
refer to the myPackage.pck
file in the /Project001/
folder in the Semarchy xDI Designer workspace folder.
buildPackage
-mainProcessWorkspacePath "MyProject/Source Models/process_A.proc"
-package "D:/Built Items/myPackage01.pck"
buildPackage
-mainProcessWorkspacePath "MyProject/Source Models/process_A.proc|MyProject/Source Models/process_B.proc"
-package "D:/Built Items/myPackage01.pck"
buildPackage
-mainProcessWorkspacePath "MyProject/Source Models/process_A.proc|MyProject/Source Models/indy.build/mapping_A.proc"
-package "D:/Built Items/myPackage01.pck"
buildPackage
-mainProcessWorkspacePath "MyProject/Source Models/process_A.proc"
-package "WKS:/Target Packages Project/myPackage01.pck"
buildPackage
-mainProcessWorkspacePath "MyProject/Source Models/process_A.proc"
-package "D:/Built Items/myPackage01.pck"
-includeSources true
-includeDocumentation true
Build Delivery
This command generates deliveries from a package.
buildDelivery
-package "<package_path>"
[-buildmode (generation|substitution)]
[-confFile <configuration_file_path>]
[-outputFolder <output_folder_path>]
[-processName <process_name>]
[-verbose (true|false)]
[-verifyModules <modules_folder>]
This command supports the following parameters:
Parameter | Description |
---|---|
|
Path of the package from which the deliveries are built. This path supports Workspace Variable Placeholder. |
|
The mode specifies how delivery should be generated. See Understand the Build Mode for more details. This option defaults to |
|
Path to the configuration file which should be used to generate deliveries. This configuration file should contain all the necessary externalized attributes required to build the deliveries. The |
|
Target folder in which the deliveries are generated. This path supports Workspace Variable Placeholder. The path defaults to the built-in runtime generation sub-folder: |
|
Name of the Process in the package from which the delivery should be generated. When not specified, the command generates deliveries for all processes in the package. |
|
When this option is enabled, additional information about the operations performed during deliveries generation is printed on the standard output. This option defaults to |
|
If this folder is defined, the operation checks that all required modules are present in the specified folder and that they match those expected in the package manifest. If a required module missing, then the delivery is not generated and an error message indicates the missing module. The default value for this option is the default |
buildDelivery -package "D:/Built Items/myPackage01.pck" -buildmode substitution -confFile "D:/Configuration Files/confA.conf"
buildDelivery -package "D:/Built Items/myPackage01.pck" -buildmode substitution -confFile "D:/Configuration Files/confA.conf" -processName "process_A"
buildDelivery -package "D:/Built Items/myPackage01.pck" -buildmode substitution -confFile "D:/Configuration Files/confA.conf" -processName "process_A" -outputFolder "D:/Built Items/Generated Deliveries/"
buildDelivery -package "WKS:/Generated Packages Project\myPackage.pck" -buildmode substitution -confFile "D:/Configuration Files/confA.conf" -processName "process_A" -outputFolder "WKS:/Generated Deliveries Project/"
Launch Configuration
This command executes a launch configuration previously prepared in Semarchy xDI Designer.
launch <launch_configuration_name>
launch launch01
Extract Package Info
This command extracts information from a package, such as the list of processes, the creation date, the documentation, etc.
extractPackageInfo
-package "<package_path>"
-extract <information_to_extract>
-outputFile <output_file_path>
This command supports the following parameters:
Parameter | Description |
---|---|
|
Path of the package from which the information is extracted. This path supports Workspace Variable Placeholder. |
|
Information to extract, from the following list:
|
|
Output file where the extracted information is stored. When not specified the command prints the information to the standard output. This option is mandatory when extracting the documentation. This path supports Workspace Variable Placeholder. |
extractPackageInfo -package "D:/Built/Generated Packages/myPackage.pck" -extract date
extractPackageInfo -package "D:/Built/Generated Packages/myPackage.pck" -extract date -outputFile "D:/Extract/packageReport.txt"
extractPackageInfo -package "D:/Built/Generated Packages/myPackage.pck" -extract documentation -outputFile "D:/Extract/documentationFolder/"
extractPackageInfo -package "D:/Built/Generated Packages/myPackage.pck" -extract conf -outputFile "D:/Extract/extractedConfiguration.conf"
Validate Configuration File
This command checks that a configuration file contains all the necessary externalized attributes for a given package.
validateConfFile
-package "<package_path>"
-confFile <configuration_file_path>
[-missingConfFile <missing_attributes_file>]
[-missingConfBehavior (MERGE|OVERWRITE)]
This command supports the following parameters:
Parameter | Description |
---|---|
|
Path of the package to check the configuration with. This path supports Workspace Variable Placeholder. |
|
Path to the configuration file to check. This path supports Workspace Variable Placeholder. |
|
Path to a file where the missing attributes are written. This path supports Workspace Variable Placeholder. |
|
This option defines how the command handles the case where the "missingConfFile" file already exists.
|
validateConfFile
-package "D:/Built/Generated Packages/myPackage.pck"
-confFile "D:/configuration/myConfiguration.conf"
validateConfFile
-package "D:/Built/Generated Packages/myPackage.pck"
-confFile "D:/configuration/myConfiguration.conf"
-missingConfFile "D:/validation/missingAttributes.conf"
validateConfFile
-package "D:/Built/Generated Packages/myPackage.pck"
-confFile "D:/configuration/myConfiguration.conf"
-missingConfFile "D:/validation/missingAttributes.conf"
-missingConfBehaviour MERGE
Validate Package Source
This command checks that the sources of the package match specific user-defined rules. The validatePackageSource command checks the sources in a package file based on checksum values.
The syntax is the following:
validatePackageSource
-package "<package_path>"
-md5Rule "<model_id>:<md5_expected_checksum>[:(true|false))];..."
This command supports the following parameters:
Parameter | Description |
---|---|
|
Path of the package to check. This path supports Workspace Variable Placeholder. |
|
The rule is a semicolon-separated list of source models to compare with given checksums. The syntax for each source model to check is:
|
validatePackageSource
-package "D:/Built/Generated Packages/myPackage.pck"
-md5Rule "_NTUykF0mEemq07bBKXOAgw:71fc05b7087bc5614537509c3c2172d7"
validatePackageSource
-package "D:/Built/Generated Packages/myPackage.pck"
-md5Rule "_NTUykF0mEemq07bBKXOAgw:71fc05b7087bc5614537509c3c2172d7:true"
validatePackageSource
-package "D:/Built/Generated Packages/myPackage.pck"
-md5Rule "_NTUykF0mEemq07bBKXOAgw:71fc05b7087bc5614537509c3c2172d7:true;UUID_MD_SUPER_TYPE:8d8c0adfedb70305122100549e297958:true"
Patch Package
This command patches the sources in a given package.
The command patches an existing package from an archive containing sources (metadata, mappings, and processes) that have been modified.
This command is advanced. It is recommended to regenerate the package entirely instead |
The syntax is the following:
patch -package "<package_path>"
-patch <patch_archive_path>
-outputPackage <output_package_path>
[-verbose (true|false)]
This command supports the following parameters:
Parameter | Description |
---|---|
|
Path of the package to patch. This path supports Workspace Variable Placeholder. |
|
Absolute path to a zip archive containing the sources which have changed. This path supports Workspace Variable Placeholder. |
|
Path of the generated patched package. This path supports Workspace Variable Placeholder. |
|
When this option is enabled, additional information about the operations performed during the patch operation is printed on the standard output. This option defaults to |
patch
-package "D:/Built/Generated Packages/myPackage.pck"
-patch "D:/Patches/patched_sources.zip"
-outputPackage "D:/Built/Generated Packages/myPatchedPackage.pck"
Git Logical Merge
This command performs a git merge through the EMF compare logical merge. The logical merge allows to automatically resolve the conflicts when applicable.
The syntax is the following:
gitLogicalMerge
-repositoryName <repository>
-reference <branchName|tagName>
[-verbose]
The git repositories must be declared and configured inside the designer workspace used, as a prerequisite. The command applies to already configured git repositories only. |
This command supports the following parameters:
Parameter | Description |
---|---|
|
Name of the repository on which the merge will be performed. This corresponds to the repository name as defined in the designer workspace. It is mandatory. |
|
Name of the branch/tag to merge inside the current branch. It is mandatory. |
|
When this optional parameter is defined, the command will trace inside the output (the console or the script logFile) the exact list of conflicting files, when there is a conflict. The list is logged as a line return delimited list of files, with the complete git file path for each file. |
Git Logical Pull
This command performs a git pull through the EMF compare logical merge. The logical merge allows to automatically resolve the conflicts when applicable.
The syntax is the following:
gitLogicalPull
-repositoryName <repository>
-reference <branchName|tagName>
[-verbose]
The git repositories must be declared and configured inside the designer workspace used, as a prerequisite. The command applies to already configured git repositories only. |
This command supports the following parameters:
Parameter | Description |
---|---|
|
Name of the repository on which the pull will be performed. This corresponds to the repository name as defined in the designer workspace. It is mandatory. |
|
When this optional parameter is defined, the command will trace inside the output (the console or the script logFile) the exact list of conflicting files, when there is a conflict. The list is logged as a line return delimited list of files, with the complete git file path for each file. |