Introducing Multi Site Web Application Support - BloomReach Experience - Open Source CMS

Introducing Multi Site Web Application Support

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.

One of the major changes in version 13 is the added support for multiple site web applications. If your project consists of multiple site web applications, separate development teams can develop their site web applications largely independently of the other teams, while there is a central development team owning the development of the (singular) CMS/platform web application. In order to package all resources owned by a single site web application appropriately, the default structure of a Bloomreach Experience Manager project has changed significantly compared to previous versions.

Single vs. Multi Site Mode

To ease the transition to version 13's default project structure, Single Site Mode is available, providing some degree of backwards compatibility with the default project structure of previous versions. Freshly created Bloomreach Experience Manager projects use the new structure, which we also call Multi Site Mode. All Bloomreach Experience Manager documentation which is not related to upgrading from a previous version describes Multi Site Mode, and where appropriate, a disclaimer is present, reminding you that the documented matter is Site Mode-sensitive. If your project is running in Single Site Mode, you will have to translate the matter to match Single Site Mode. There is a dedicated page describing the differences between Single and Multi Site Mode. The upgrade documentation lists instructions to upgrade a previous version to version 13 in Single Site Mode, followed by an optional step to restructure the project to Multi Site Mode. For that reason, most of the upgrade documentation presents the Single Site Mode project structure.

Multi Site Mode doesn't necessarily mean that your project has more than one site web application, it merely refers to the project structure required in order to support additional site web applications in your project.

Working with Multiple Site Web Applications

In order to decouple the development of separate site web applications as much as possible, by default, each web application lives in a separate VCS repository. A single Bloomreach Experience Manager project can therefore consist of multiple VCS repositories, and by default, the first repository contains the central CMS/platform web application and one site web application, while additional repositories may add additional site web applications, one web application per repository. Therefore, as of version 13, there are two different Bloomreach Experience Manager project archetypes:

  • hippo-project-archetype, which generates a parent sub-project containing the CMS/platform web application and one site web application, using the Multi Site Mode structure, and
  • hippo-site-project-archetype, which generates a site sub-project containing only a site web application, for use with the "external" CMS/platform web application supplied by the linked parent sub-project.

Both Maven projects contain an Essentials web application for local development.

Above layout represents the default structure, provided by the archetype. It is possible to maintain multiple site web applications in a single VCS repository, no site web application in the parent sub-project, or all web applications together in a single VCS repository. It is up to you to massage the VCS repository setup into what fits your use case / organization best.
To learn how to work with multiple site web applications, read Multi Site Development Workflow and follow the Add a Second Site Webapp tutorial. Bloomreach Cloud users should also read Configure Multiple Site Webapps.
Did you find this page helpful?
How could this documentation serve you better?
On this page
    Did you find this page helpful?
    How could this documentation serve you better?