Magnolia 5.7 reached extended end of life on May 31, 2022. Support for this branch is limited, see End-of-life policy. Please note that to cover the extra maintenance effort, this EEoL period is a paid extension in the life of the branch. Customers who opt for the extended maintenance will need a new license key to run future versions of Magnolia 5.7. If you have any questions or to subscribe to the extended maintenance, please get in touch with your local contact at Magnolia.
This page explains how bootstrapping works in Maven modules.
Bootstrap files are used to load content into the JCR. Bootstrap files can be shared across Magnolia instances and typically contain configuration necessary to run modules or content (such as pages, assets and others).
How bootstrapping in Maven modules works - overview
Here's an overview of how bootstrapping in Maven modules works:
- Export JCR data files from Magnolia's AdminCentral.
- The exported files are placed in the bootstrap folder of the module or webapp.
- On installation, the bootstrapped data is automatically* imported by Magnolia and added to its corresponding JCR workspace.
*) Bootstrap files can also be imported or bootstrapped manually using the import actions in the JCR Browser and many other apps. However, the content of this page is limited to automatically importing bootstrap files and the term "bootstrapping" is used in this context only.
Using bootstrapping folders
Magnolia by default scans some dedicated folders during start up. Add your bootstrap files to this folders to automate the import of the JCR data of these files. Bootstrap files can reside at a webapp or module level.
All bootstrap files are only imported once!
- Webapp-based bootstrap files are imported during the first run of the webapp when the Magnolia instance gets installed.
- Module-based bootstrap files are imported during the installation of the module.
If you want to import bootstrap files on every start up of the Magnolia instance or of a module, you must use custom installation tasks which are executed by the Module version handler or Module start up classes.
Bootsrapping on the webapp level
The bootstrap directories for webapp bootstrap files are set by the magnolia.bootstrap.dir
property in the magnolia.properties
file. See Configuration management for more.
By default the bootstrapping directories on the webapp level are:
Location | |
---|---|
| Files will only be imported if the current context is an author context. |
WEB-INF/bootstrap/common
| Files will be imported on any context. |
Bootstraps are loaded from this directory only the first time the WAR is installed in the container that is running for the first time.
The directory should contain XML files for initialization of a blank Magnolia instance. If no content is found in any of the repositories, they are initialized by importing the XML files found in this directory.
Bootsrapping on a module level
Bootstrapping on a module level only works i f your Module has a module version handler class.
There are two directories that you can add bootstrap files to in a Magnolia Maven module:
src/main/resources/mgnl-bootstrap/<magnolia-module-name>/
src/main/resources/mgnl-bootstrap-samples/<magnolia-module-name>/
Bootstrap files within mgnl-bootstrap-samples are only imported, if the magnolia.bootstrap.samples property (which is set in the
magnolia.properties
file, see Configuration management) is true:magnolia.bootstrap.samples=true
Example - Bootstrap files in the travel-demo module
Here are the configuration files bootstrapped on installation of the travel-demo
module.
The files are in the directory /src/main/resources/mgnl-bootstrap/travel-demo
.
File | Configuration node | Description |
config.modules.site.config.themes.travel-demo-theme.xml | /modules/site/config/themes/travel-demo-theme | Theme configuration. |
config.modules.travel-demo.config.travel.xml | /modules/travel-demo/config/travel | Templates, theme and i18n nodes of Site definition. |
config.server.filters.i18n.bypasses.xml | /server/filters/i18n/bypasses | i18n content support filter bypass. |
config.modules.public-user-registration.config.configurations.travel.xml | /modules/public-user-registration/config/configurations/travel | PUR module configuration. |
config.server.filters.securityCallback.clientCallbacks.travel-demo-pur.xml | /server/filters/securityCallback/clientCallbacks/travel-demo-pur | Security callback for public user registration. |
Bootstrapping content into cluster nodes
The magnolia.repositories.jackrabbit.cluster.master
property can be used to identity an instance as a cluster master node. By default this property is set to false
in magnolia.properties
. When enabled Magnolia bootstraps content only into master nodes. This ensures that other (replica) nodes installed later don't override already bootstrapped content. See Configuration management for more.
Bootstrap configuration properties
The table below contains a list of configuration properties set in magnolia.properties
that are relevant to bootstrapping.
magnolia.bootstrap.samples | optional, default is Installs sample bootstrap files located in |
magnolia.bootstrap.dir | required, default is Sets the directory for webapp bootstrap files. |
magnolia.repositories.jackrabbit.cluster.master
| required, d efault is Identifies an instance as cluster master node. |