Multi-CM Application Functionality
The Multi-CM Jar functionality allows multiple teams to develop features of the application separately.
Each team is identified by a CM application owner. For example, a team in one geographic location may be identified by CM application owner cm01, whereas another team will be cm02.
Teams can have independent project repositories, packaging directories, packaging app servers, releases, and patches.
The different CM application releases/patches are then installed into a target QA or production app server so that they contain all cm applications, e.g., a target environment will contain cm01, cm02, cm3, etc.
The Multi-CM application is activated by using the "–m" option when running extractCMSource.plx. With this option, only the source code for the given CM application owner is extracted from the project repository. It creates a file (etc/cm_​owner.txt) in the packaging directory identifying the CM application owner.
If the cm_​owner.txt file exists, all subsequent utilities, namely, applyCM, create_​CM_​release, create_​CM_​patch, and install operate using the designated CM application owner. The installation of the final CM package removes the previously-installed CM application owner's files and modules, replaces them with the ones from the installation package, and, finally, appends the owner to the existing cm_​owner.txt file in the target environment.
If the Multi-CM application is activated, the applyCM script applies to the packaging environment all the jar files extracted from development (excluding <CmOwner>.jar, which is compiled and created by applyCM). Such jar files are added to the Classpath for the Java compilation. The create_​CM_​release, in case the Multi-CM application is activated, copies only the <CmOwner>.jar to the installable package:

perl extractCMSource.plx -s C:\SPL\CM_PROJ1 -d C:\CMExtract -v CM1.0 –m cm01
Each CM owner development requires separate CM jar structures, e.g., structures/cm01_​jars_​structure.xml.
Each CM owner development can also contain customized user exits, and if there are additional templates, each must be defined in the relevant structure, e.g.:

templates/cm01_web.xml.exit_end.include
structures/cm01_template_structure.xml