Comparing Single Delivery Webapp Mode and Multi Delivery Webapp Mode
Setting up multiple delivery web applications within the same project is intended to enable separate development teams working independently on their respective delivery webapps. Bloomreach recommends setting up multiple delivery web applications only in this specific development scenario. In all other cases, it is recommended to set up multiple channels within a single delivery web application.
The following table intends to compare Multi Delivery Webapp Mode and Single Delivery Webapp Mode in order to enable users of Single Delivery Webapp Mode to judge how to interpret Multi Delivery Webapp Mode-specific documentation towards their Single Delivery Webapp Mode project structure.
Single Delivery Webapp Mode | Multi Delivery Webapp Mode |
---|---|
HCM sites support disabled through use.hcm.sites flag in hcm.properties file in src/main/resources folder of the site module | HCM sites support is enabled by default, no hcm.properties file is necessary. |
Delivery web application contains no hcm-site.yaml file | Delivery web application contains a hcm-site.yaml file in the src/main/webapp/META-INF folder, specifying the name and hstRoot for that delivery web application. |
All repository data definitions are packaged in the CMS/platform web application, including delivery web application-specific data such as HST configuration and web files or hst-addon-hcm-site. | Delivery web application-specific repository data definitions such as HST configuration and web files or hst-addon-hcm-site are packaged with the delivery web application. |
The project's delivery webapp-specific repository data definitions live in the same artifact as CMS/platform-specific definitions. | The project's delivery webapp-specific repository data definitions are split out into a separate artifact / Maven module, repository-data/site by default. |
The delivery web application is represented by a single Maven module. | The delivery webapp's component and bean classes live in a separate Maven module, site/components by default, which facilitate a dependency graph that allows IDEs to provide auto-completion when editing rendering templates (Freemarker) in the Maven module containing the web files. |
The CMS/platform web application is represented by a single Maven module. | A dedicated CMS dependencies maven module exists, cms-dependencies by default, which facilitates building the CMS/platform web application in the context of a separate/additional delivery web application project. |
The CMS mount for each HST Virtual Host Group must be defined below /hst:platform. | The CMS mount for each HST Virtual Host Group must be defined below /hst:platform. |
The delivery web application's hst-config.properties must define hst.configuration.rootPath to be /hst:hst, in accordance with the project's YAML definitions. | In each delivery web application's hst-config.properties file, hst.configuration.rootPath must be defined as /hst:<site-name>, where <site-name> is myproject by default, and must match with the hstRoot path defined in hcm-site.yaml (see above). |
Essentials' project-settings.xml file needs to be tweaked in order for Essentials to interact correctly with Single Delivery Webapp Mode projects. | Essentials expects this project structure |