Single Site Web Application Mode
Single Site Mode refers to a supported structure of a Bloomreach Experience Manager project which stays close to the default structure of Bloomreach Experience Manager projects prior to version 13, and which only supports a single site web application. Single Site Mode is primarily intended for projects upgrading from prior versions, limiting the amount of necessary upgrade steps. After the upgrade, restructuring such a project to Multi Site Mode is optional, and has the effect that the project is in line again with the default project structure used throughout the documentation.
Features of Single Site Mode
You can recognize a Single Site Mode project by the following features:
- The site module is not split up into sub-modules
- There is no separate cms-dependencies module
- There is no separate module containing repository data definitions for the site's HST configuration.
- The hst.configuration.rootPath property in the site's hst-config.properties file is set to /hst:hst
- There is a cms/src/main/resources/hcm.properties file setting use.hcm.sites to false
There is no hcm-site.yaml file in the site web application's META-INF folder.
Repository Data handling in Single Site Mode
A Bloomreach Experience Manager project in Single Site Mode works much like projects prior to version 13 used to work:
All repository data definitions are packaged with a bootstrapped from the CMS/platform web application. This includes site-specific HST configuration and web files. As such, that part of the site web application is really packaged within the CMS/platform web application, which binds the site web application to a particular version of the CMS/platform web application.
While the CMS/platform web application uses HST configuration stored in the repository below /hst:platform, the site web application uses HST configuration stored below the "usual" /hst:hst node, as indicated in the hst-config.properties file of the site web application.
The lowered use.hcm.sites flag specified in hcm.properties packaged at the class-loader root level of the site web application instructs the Configuration Management mechanism not to go looking for site-specific definitions provided separately by each site web application, but to bootstrap site-specific definitions packaged with the CMS/platform web application.
Essentials and Single Site Mode
By default, Essentials expects to interact with a Bloomreach Experience Manager project using Multi Site Mode structure. In order to let Essentials interact correctly with a Single Site Mode structured project, essentials/src/main/resources/project-settings.xml must be tweaked:
- <hstHcmDependenciesAlias> should have value 'CMS' (uppercase!).
- <cmsDependenciesModule> should point to a cms war module directory, typically 'cms'
- <siteComponentsSubModule> should point to a site war module directory, typically 'site'
- <siteWebappSubModule> should point to a site war module directory, typically 'site'
With these tweaks in place, Essentials should be able to interact correctly with a Single Site Mode project.