Working with Application Components
As an Application Developer, you manage Application Components and their dynamic properties. You can also assign Artifacts to Package Components to allow traceability.
Important! The actions that you can perform depend on your folder permissions, see: Folder Permissions.
This page includes the following:
Components can be accessed:
- From an Application:
- Open the Release Automation perspective and click the Applications tab.
- Double-click an Application to open it.
- Click the Components tab in the navigator pane.
- From a Package:
- Open the Release Automation perspective and click the Packages tab.
- Click the Packages tab in the navigator pane.
- Click the Components button at the top.
The list displays all the Components of the selected application, ordered by name.
Tip: For more information about how to search for entities and narrow down the results, see: Global Search
- Click the Create button in the toolbar. The Create Component dialog is displayed.
Consider the following:
- The Component Name must be unique within the Application and can only contain alphanumeric characters, blanks, ., -, _, @, $, #
- The Type list displays all types for which you have permissions
- The type cannot be changed after creating the Component
- You can select the current user or one of the user groups the user belongs to as owner (or one of all active user groups for administrators). To assign a different user, edit the entity after creating it.
- Click Create.
Changing the Properties of a Component
To change the properties of a Component, you can use:
- The Component Sidebar next to the Component list
- The Properties section of a Component
You can change the following Component properties:
-
Basic attributes of the Component. You can edit the Name, Folder, and Owner.
You can also assign a parent to the component.
Note: The Parent option is only displayed for Components with nested baseType
-
The description is limited to 4000 characters.
-
The Deployment Targets on which the Component should be installed.
You do not specify a Deployment Target directly, but select a type that the target must play (for example, Web Server). You can limit the targets by specifying more filters. During deployment preparation, only Targets matching the criteria of the component are suggested as Deployment Targets.
If you select a Target and then change it, all filters are deleted and have to be recreated. If you do not select a Target, the Deployment Targets must be picked manually during deployment preparation.
Adding/changing/removing filters works like defining for a custom view (see Filters). You can only add filters if you have selected a target type.
- Nested Components
List of Components that are nested to the current Component. See: Working with Nested Components.
-
Actions are located in the toolbar. They can be also triggered from the context menu that is displayed after right-clicking the entity. You can trigger the following actions (depending on your permissions):
- Delete: see Deleting Components
- Archive: archives the selected entity. If an entity is archived, Restore is available (see Archiving Entities)
-
This panel shows errors and warnings in the context of the current Application. If there are no errors or warnings, the panel is not displayed.
- Custom Properties
The selected object may have more properties and property groups, that are defined by the administrator. If defined, these properties are shown in the sidebar as separate panels and you can edit them.
Components allow you to define dynamic properties that can be used in deployments. See About Properties for details.
The following system defined dynamic properties are available in addition to the custom dynamic properties and the custom properties (in the /custom namespace):
-
/system/name
Component name
-
/system/type
Component type
-
/system/application
Name of the Application to which the component belongs
-
/system/application-type
Type of the Application to which the component belongs
-
/system/owner
Display name of the owner to which the Component belongs
Note: You can also search for dynamic properties using the Global Search.
You can duplicate Components within the same Application or between two different Applications.
To Duplicate a Component
- Select the Component that you want to duplicate and click the Duplicate button in the toolbar.
- Optionally, enter a new name for the Component. It can only contain alphanumeric characters, blanks, ., -, _, @, $, #.
- Select the Application where the new Component will be saved. You can leave the default value as is (to duplicate the Component within the same Application) or select a different one.
- Select a destination folder.
- Assign an owner for the new Component. By default, the owner of the original one is selected.
The following information is copied to the new Component:
- Properties
- Dynamic Properties (and overriding values that are defined by the Application)
- Deployment Target filters
- Component Links (only when the Component is duplicated within the same Application)
The following information is NOT copied to the new Component:
- Workflows
Note: To copy related component workflows, follow the steps described in the Adding Component Workflows section (Working with Workflows)
- Related Deployment Profiles
- Related Deployment Packages
- History Records
- Property values of type Identity
Notes:
- After creation, you are redirected to the properties page of the new Component.
- The sort order of prompts is copied to the new Component. For more information, see: Creating Dynamic Properties
-
Right-click the entity and select Delete.
Note: You may only delete the entity when you have the appropriate permission on the containing folder (see Security Concept) and all of the listed conditions are met.
Conditions to delete entities of type Component
- Not referenced by any packages
- Has no executions
- Has no installation records
- Not referenced by any component links
- Not used by any deployment profiles
- Not installed on any deployment targets
- Not referenced by any deployment target snapshots
Important! The DB-Cleanup tool deletes Executions and Installation records, regardless of the installation status. To verify that all Executions have been deleted, select the following parameters when running the tool:
- --olderThan 0
- --keepAtLeast 0
- --force True
Installation Records can be also deleted by executing a Workflow of type Uninstall
. You cannot delete single Installation records.
Tip: Execute the DB-Cleanup tool and delete the component-related Packages before deleting a Component. Alternatively, you can remove the Component from the Package.
Assigning Components to Deployment Packages
- Open a Package and click the Components tab.
- Click the Assign button in the toolbar.
- Select the Application Components you want to assign to the Package.
- Click OK.
Note: To unassign Components, click Assign, clear the Components that you want to remove from the Package and save your changes.
Assigning Artifacts to Components
- Open the Release Automation perspective.
- Click the Applications tab.
- Double-click an Application to open it and select a Component.
- Click the Artifacts tab at the top of the view.
- Click the Assign button in the toolbar. The Assign Artifact dialog is displayed.
- Select an Artifact.
- Click Select.
Note: An Artifact that is assigned to a Package cannot be removed from the Component.
- Design the dynamic properties at Component-level so that they reflect both the locations of all its artifacts and settings.
- Once all definitions are ready, attach them to the relevant custom component types to make them available for each new Component.
The naming conventions applied for components are as follows:
- [COMPONENT]
If further granularity is necessary, describe the specific functionality with a suffix:
- [COMPONENT]_[Specific Process]
Examples:
-
[COMPONENT]_[WEB_FRONTEND]
Component entity example for a web frontend deployment, for example, a war file deployment
-
[COMPONENT]_[BACKEND]
Component entity example for a back-end deployment, for example, a database deployment
-
[COMPONENT]_[INTEGRATION]
Component entity example for an integration, for example, into JIRA.
Single Components per Tier – Database and so on
Some instances do not require multiple CDA components. Generally speaking, if all the Deployment Targets per Environment are equal for all artifacts of a tier and the deployment logic is the same for all artifacts of that tier, it is sufficient to create one CDA component for the tier and include all artifacts. For example, all database scripts that are required for a DB migration can be linked under one component if they are executed against the same DB instance within a specific Environment.
Sometimes the Targets (nodes) and deployment logic differ for different artifacts of the same tier of an application. For example: WebSphere and WebLogic deployments may require multiple components per tier, because of the following specifics:
- Stop Server (on domain admin node)
- Deploy Ear File (on domain admin node)
- Distribute Config File Changes (on all individual clusters or nodes in the domain the application is deployed to)
- Deploy Database
- Start Server (on domain admin node only)
Two components are required in this example: WEBLOGIC_DEPLOY and WEBLOGIC_CONFIG, because the config file is distributed to different Deployment Targets and requires a different deployment procedure than the rest of the activities.
A third Component - WEBLOGIC_START_STOP - could be created in addition to the two previous components. This component would start and stop servers. This is required if, for example, you want to have the flexibility to deploy the following scenarios:
- Database + Weblogic Server start-stop
- Weblogic file config + Weblogic Server start-stop
- Weblogic Ear file + Weblogic file config + database + Weblogic Server start-stop
In the last scenario, you can control the components that have to be deployed through the package by assigning only the components that are required for a Minor or Hotfix deployment.
Note: If the database requires Weblogic Server Stop and Start, the database can be deployed individually without deploying the Ear file or Weblogic config files.
Multiple Components per Tier – Different Properties
You may want to split, for example, the Java (Middleware) Component into two different CDA Components when the Java component is deployed to two different types of endpoints and therefore different properties are required. This makes it easier to set up the deployment model, as different properties have to be referenced from the Deployment Targets. It also makes the separation of Targets easier.
Sometimes, it is recommended to create Pre and Post Components. These tasks could include, but are not limited to:
- Pre-Component:
- Change ticket: retrieve tickets, update them, or both.
- Clear cache, clear space or both on the CA Automic or staging servers.
- Check space: check the space before a deployment can be done.
- Verify package parameters: validate the package size for various reasons.
- Post-Component:
- Change Ticket: close tickets, update tickets or both.
- Validation Test: trigger validation tests
- Kick-off Test Suites
- Clean up staging directories
See also: