Building and Packaging Composite Cartridge Projects

OSM composite cartridge projects are built and packaged in much the same way as other Design Studio cartridge projects. However, there are some differences you should be aware of.

Aggregating Non-Orchestration Entities

In OSM non-orchestration cartridges, entities are bound in scope at runtime to the cartridge in which they are created. It is not possible for non-orchestration entities to reach across cartridge boundaries to resolve references. For example, a process in one cartridge cannot refer to tasks or data defined in another deployed cartridge.

In contrast, OSM orchestration entities in one cartridge can reference entities with the same namespace in other cartridges in the same workspace. For example, an orchestration fulfillment pattern in one cartridge can reference order components that have been defined and deployed in another cartridge.

At build and packaging time, a composite cartridge acts as a aggregator of all non-orchestration entities defined across all of the component cartridges in the solution. These entities are automatically packaged into a new component cartridge with the same name and namespace as the composite cartridge.

Building and Packaging Composite Cartridges

When you build and package a composite cartridge, it is packaged as a single PAR file which contains:

  • All non-orchestration entities aggregated and packaged into the composite cartridge

  • A PAR file for each component cartridge referenced in the composite cartridge

Defer Packaging

Typically, Design Studio automatically packages your projects during incremental builds. You may choose to defer packaging for large projects when packaging slows the incremental build process and becomes cumbersome. If you defer packaging, the composite cartridge will not be packaged until you deploy the cartridge. (See "Defining Packaging Preferences" for more information.)

When you perform a clean build in Design Studio, the composite cartridge and all of the referenced component cartridges are packaged.

Optimize Deploy

Another option you may choose is Optimize Deploy. Using Optimize Deploy on a composite cartridge deploys only the entities in a component cartridge that have changed since the last build. (See "Deploying Cartridge Projects with Optimize Deploy" for more information.)