Comparing Single Site Mode and Multi Site Mode
Setting up multiple site web applications within the same project is intended to enable separate development teams working independently on their respective sites. Bloomreach recommends setting up multiple site web applications only in this specific development scenario.
The following table intends to compare Multi Site Mode and Single Site Mode in order to enable users of Single Site Mode to judge how to interpret Multi Site Mode-specific documentation towards their Single Site Mode project structure.
|Single Site Mode||Multi Site 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.|
|Site web application contains no hcm-site.yaml file||site web application contains a hcm-site.yaml file in the src/main/webapp/META-INF folder, specifying the name and hstRoot for that site web application.|
|All repository data definitions are packaged in the CMS/platform web application, including site web application-specific data such as HST configuration and web files or hst-addon-hcm-site.||Site web application-specific repository data definitions such as HST configuration and web files or hst-addon-hcm-site are packaged with the site web application.|
|The project's site-specific repository data definitions live in the same artifact as CMS/platform-specific definitions.||The project's site-specific repository data definitions are split out into a separate artifact / Maven module, repository-data/site by default.|
|The site web application is represented by a single Maven module.||The site'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 site 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 site 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 site 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 Site Mode projects.||Essentials expects this project structure|