Version: 17.07
Run the maven build for the project using the Ultra Studio and retrieve the resulting archive with the extension .xpr
from the target directory of the project. The name of the archive will be of the format sample-1.0.xpr
where sample
being the name of the project and 1.0
being the version of the project. Copy this archive file from the development
machine to the projects
directory of the UltraESB-X distribution.
Version Compatibility
To avoid compatibility issues between the Projects and UltraESB-X Runtime, only the Projects with the same or a lower framework version than the framework version of the UltraESB-X runtime are allowed to be deployed. |
When a Project is built, all the maven dependencies such as the connectors and processing elements used in that Project
will be automatically bundled inside the lib
directory of the project archive. But if there are any custom jar
files
are been used for the project (such as any javax.
jars), they should be manually copied to the lib/custom
directory
of the UltraESB-X distribution.
When a Project is being initialized, Project-X framework creates a new instance of each Feature used in that Project and any connector or processing element inside the same project shares these instances.
Almost each one of these Features has customizable properties and they can be externalized if required. At the initialization of the feature, the framework looks for a pre-defined set of file locations for these externalized property values. The framework starts from the lowest priority location and gradually proceeds to the highest priority location, merging the properties in all the matching property files it finds on the way. If a value for the same property key is found in multiple property files, the value at the highest priority location will be given precedence.
The locations that can be used to externalize feature properties are listed below from the lowest priority location to the highest priority location.
File path terminology
|
Priority | File path | ||
---|---|---|---|
1 |
|
||
2 |
|
||
3 |
If environment mode is IDE,
|
||
4 |
|
||
5 |
|
||
6 |
|
||
7 |
|
||
8 |
|
||
9 |
|
Similar to the Feature properties, any Spring property of the project (including connector and processing element
parameters) also can be externalized. When a Project archive is built, the build tool automatically externalizes the
parameters of each connector and processing element to a file named default.properties
and includes it in the
resources
directory of the project archive.
When a project is initialized, the framework starts from this file (which has the lowest priority) and gradually proceeds to the highest priority location, merging the properties in all the matching property files it finds on the way. Similar to Feature properties, if a value for the same property key is found in multiple property files, the value at the highest priority location will be given precedence.
The locations that can be used to specify project properties are listed below from the lowest priority location to the highest priority location.
File path terminology
|
Priority | File path | ||
---|---|---|---|
1 |
|
||
2 |
If environment mode is IDE, |
||
3 |
|
||
4 |
|
||
5 |
|
||
6 |
|
||
7 |
|
||
8 |
|
Project-X provides the facility to have encrypted property values in external configuration files. This feature is provided to prevent any security vulnerabilities arising due to sensitive information such as password values being specified in plain text.
To use encrypted properties in UltraESB-X, the following properties should be set either as System Properties or Environment Variables for the user running UltraESB-X.
|
The master password to be used for encryption |
|
The encryption algorithm to be used. Defaults to |
|
The security provider class name. Defaults to |
Property values can be encrypted either using the Ultra Studio or the UXTerm command line utility.
Navigate to Tools → Ultra Studio → Password Encryptor in Ultra Studio.
Then fill the Secret (this is the value to be encrypted), Encryption Algorithm, Encryption Password and Security Provider values and click OK. Then the encrypted value will appear on the bottom text area.
Run UXTerm by navigating into the ULTRA_HOME/bin/
directory and executing the script uxterm.sh
.
$ sh uxterm.sh
Welcome to UXTerm, the UltraESB-X Management CLI (interactive mode)
Type 'help' for the list of commands
uxterm>
Then run the enc
command as follows to encrypt the provided value.
uxterm> enc -a PBEWithMD5AndDES
-d org.bouncycastle.jce.provider.BouncyCastleProvider
-p masterPassword
-s secretProperty
Following are the options that can be used with this command.
|
The encryption algorithm to be used, which will be resolved from the system property or environment variable with name
|
|
The security provider class to be used for the encryption, which will be resolved from the system property or environment
variable named |
|
The encryption password to be used, which will be resolved from the system property or environment variable with name
|
|
The secrete value to be encrypted. |
When the command is executed with the necessary options, it will output the encrypted value to the console.
Project-X framework provides the facility to apply patches not only for the framework level dependencies, but also for
the Project level dependencies as well. If it is required to patch one or more jar
file of a project archive, it can be
done by following the below steps without even altering the existing project archive.
Navigate to lib/patches/projects/
directory of the UltraESB-X installation
Create a directory with the name format projectId-projectVersion
(e.g.: lib/patches/projects/sample-1.0/
)
Copy any patch jar
files to the above created directory
Restart UltraESB-X