soaDeploy
Performs environment-specific property replacement, determines next composite revision and deploys the SCA artifact or the patch artifact (12.2.1+ only) to the server or cluster. You must have built SCA artifact or the patch artifact (12.2.1+ only) as part of soaBuild operation prior to running deploy, i.e. soaBuild execution generates artifact file and is recorded in FlexDeploy as project version and then deployment is done using that project version to specific environments. Composite specific configuration plans (if present) are also stored in artifact repository along with SCA artifact jar file.
This operation should be run on any SOA managed server endpoint.
Configure SOA Server Host and Port for any SOA managed server and after deployment composite will be available on all managed servers in the SOA cluster.
Environment/Instance Properties
Property Name | Property Code | Required | Description |
---|---|---|---|
SOA Server Host |
| Yes | Host name of the SOA managed server. |
SOA Server Port |
| Yes | Port number of the SOA managed server. |
Weblogic Admin User |
| Yes | Admin user name for WebLogic server. |
Weblogic Admin Password |
| Yes | Weblogic Admin User password for WebLogic server. |
MDS UserID |
| Yes | User name for MDS access. |
MDS Password |
| Yes | Password for MDS UserID. |
MDS JDBC URL |
| Yes | Database URL for MDS access. |
Oracle SOA Home |
| Yes | Oracle SOA Home, indicates where SOA Suite is installed. |
SOA Extend Classpath |
| No | Ability to extend the plugin classpath for external java classes or custom xpath functions |
Project Properties
Property Name | Property Code | Required | Description |
---|---|---|---|
SOA Composite Name |
| Yes | Name of composite that is being deployed. |
SOA Deploy Config Plan |
| No | Ability to define config plan specific to a composite. (see Configuration Plans section below). When using composite specific configuration plans, they are stored in configPlans folder in artifacts, but you do not need to specify configPlans folder in this property value, just provide name of the configuration plan file as appropriate. You can also override this property for various environments to use different value for each environment. For example, mycomposite-cfgplan.xml |
SOA Partition |
| Yes | Name of the partition to hold the composite on the server. |
SOA Overwrite Revision |
| Yes | Flag to indicate if the composite revision on the server should be overwritten or a new revision created (see Composite Revisions). |
SOA Make Default Revision |
| Yes | Flag to indicate if the deployed composite should be marked as the default revision. |
Inputs
Input Name | Input Code | Required | Description |
---|---|---|---|
Deploy Config Plan |
| No | Deployment config plan that is to be used for the composite deployment. Takes a Wildcard expression or filename. Can be a relative or absolute path (see Configuration Plans section below). |
Composite Revision |
| No | Provide the composite revision, this input will override the SOA Overwrite Revision project property (see Composite Revisions). |
Outputs
Output Name | Required | Description |
---|---|---|
| Yes | Revision of the composite for this deployment. |
| Yes | Revision of the composite for the previous default revision. |
Artifacts
This operation consumes an SCA composite jar from the artifacts repository.
Endpoint Selection
This operation will select all available endpoints associated to the environment/instance.
Endpoint Execution
This operation will execute on any one of the selected endpoints and will be random in the determination of which one.
Special Considerations
Utilize the SOA Extend Classpath environment variable to extend the plugin classpath to allow the compile to succeed with custom java classes or xpath functions.
NOTE: when patching a long running process revision that isn't the default revision, the patching process will make the patched revision the default revision.
Composite Revisions
The revision for a composite is calculated unless either Composite Revision (plugin input) is used or SOA Overwrite Revision (project property) is checked. The input will override all revision logic and use the value that is passed in. If the input is empty and the project property is unchecked, then the plugin will determine the largest revision on the server and increment the revision before deploying. The revision format is N.nn[.nn][.nn] with an initial value of 1.0, with
- N – initial segment that will increment with no limitation
- nn – 0 through 99, when segment hits 100 it rolls to the next higher segment
Current revision | Next revision |
---|---|
1.0 | 1.01 |
1.99 | 2.00 |
1.0.0 | 1.0.01 |
1.0.99 | 1.01.00 |
Configuration Plans
Configuration plans are used to automatically cleanup environment specific information in a composite.xml file during deployment. Information that can be changed includes URL hosts and retry values, to name a few items. Configuration plans can utilize property replacement to utilize FlexDeploy properties. Utilizing FlexDeploy properties allows configuration plans to become re-usable.
Composite specific configuration plans that were captured during build in configPlans
sub-folder, are available during deploy step along with SCA Jar file.
Configuration plan can be specified using SOA Deploy Config Plan project property and/or Deploy Config Plan plugin input. The plugin input will take precedence over the project property. Deploy Config Plan input can be either an absolute path to a global configuration plan or composite configuration plans file name. Composite configuration plans are placed in FD_TEMP_DIR by FlexDeploy SOA Plugin, but you do not need to qualify it, just provide name when using composite specific configuration plans.
There are two approaches to Configuration Plans:
Composite specific
A composite specific configuration plan is created directly in the composite project using the JDeveloper wizard. Right click on the composite.xml file and select "Generate Config Plan". Provide the plan a name and it is recommended that you add the FlexDeploy environment code in the name.
When a configuration plan is generated the file will contain most of the composite.xml content, there will be many lines that contain static content and will change infrequently. Removing all static content from the file will keep the configuration plan easier to update. Also, if static content is changed in the composite.xml file but the configuration plan is unchanged, the configuration plan will overwrite the composite.xml changes on deployment.
Composite specific approach will require a configuration plan for each environment for each composite since the goal is to cleanup host names as we progress through environments. The two blocks below show examples of what a configuration plan would look like for a DEV (hard code the host name) and QA (utilizing FlexDeploy property replacement) environment. You can decide to either hard code such values in each environment specific Configuration Plan or you can use FlexDeploy property replacement support.
On the soaDeploy operation used in the deployment workflow, change the FDSOA_INP_DEPLOY_CFG_PLAN input to a groovy expression similar to:
"./" + FD_ENVIRONMENT_CODE + "*_cfgplan.xml".
This will allow the workflow to remain re-usable across all composite deployments even though the configuration plans are specific to a composite.
Shared (recommended method)
A shared configuration plan provides the same functionality as a composite specific configuration plan but with the added benefit of not needing to remember to generate a configuration plan for new composites or new environments. The shared configuration plan will be managed seperately from the composites and deployed independently to a common location on the servers. With a shared configuration plan, utilizing FlexDeploy property replacement is a must. Shared configuration files can be either environment specific or global across all environments due to the use of property replacement.
You will notice that in the import section of the conguration plan, any host name is being replaced with a string "change to mds ref". The reason is that when leveraging MDS or relative paths for XSDs or abstract WSDLs, there should be no references to the server. When a developer forgets to clean up the composite correctly, this helps to remind them because the deploy will fail with a message that includes the string above.
There may be other properties that need to be replaced based on your organization, which include endpointURI, oracle.webservices.auth.userid and oracle.webservices.auth.password, as examples. These can be replaced utilizing the same pattern as above.
On the soaDeploy operation used in the deployment workflow, change the FDSOA_INP_DEPLOY_CFG_PLAN input to a groovy expression similar to following if the shared plan is environment specific:
"/shared/location/" + FD_ENVIRONMENT_CODE + "*_cfgplan.xml"
If the shared plan is global, use an expression like:
"/shared/location/acme_cfgplan.xml"
This will allow the workflow to remain re-usable across all composite deployments even though the configuration plans are specific to a composite.
Replacement Properties
All files with the following suffix ("xml", "txt", "wsdl", "bpel", "jca", "xsd", "componentType") within the composite file structure are pre-processed by the plugin to transform any defined replacement properties.
A deployment config plan file or composite.xml will have server host names within it and will vary from environment to environment.
- style