General / Components

A Component is a single deployable application artifact. As an example, this can be yourfile.war to be deployed into a Tomcat container. Each component has different properties which determine where to get it from, how to configure it, etc. You will need one component per application artifact: e.g., one for the application tier and one for the database backend.

Component artifacts include files and directories stored under version control or in staging areas as well as other objects such as database structure or content stored in a source or staging system. Also all types of configuration files and objects as well as administrative scripts may belong to component artifacts.

In the Components section of an application, you can manage all components of the selected application (see Viewing Components).

Components of an Application

Components should be defined so that they typically reflect the tiers of a distributed application. Create one or more components per tier, e.g. one for the database backend, one for the mid-tier and one for the web application. It may also make sense to define several components per tier, if these are separately deployable units (e.g. EJBs).

Detached Components

Detached components are not connected to deployment targets. You can use detached components as blueprints for hosts that should be provisioned.

Properties of Components

It is recommended to carefully design the dynamic property definitions on a component-level so that they reflect both the location(s) of all the deployable component artifacts and all the component settings, which are required to configure the component as part of the deployment of the component.

Other component settings include everything fed into component workflows or they are used for customization of any type of configuration object (most commonly configuration files or database tables).

The values these settings finally receive are typically one of the following:

Once all definitions are ready, it is recommended to attach them to the relevant custom component types to make them available for each new component created.