Multi-CM Application Functionality
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, for example, a target environment will contain cm01, cm02, cm3, and so on.
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. For example:
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:
templates/cm01_web.xml.exit_end.include
structures/cm01_template_structure.xml