Configuration Layers

The Content Store's configuration system is not only hierarchical, it is also layered. What this means is that a Content Store installation can contain several configuration trees in different locations. These trees can be considered as layers because they are read in sequence, each layer adding new property settings or overwriting settings already made in lower layers. Right at the start of the configuration process, the Content Store loads a special configuration layer called the bootstrap layer, which configures the configuration process itself. It does this by defining:

  • How many configuration layers there are

  • The relative priority of the layers

  • Where the layers are located

Once this has been done, the various layers are loaded in turn and merged into the final server configuration.

The purpose of this layering is to simplify both the upgrade process and the management of large multi-server installations as follows:

  • The Content Store is delivered with a default configuration layer, which has lowest priority, and an add-on configuration layer that can be used by add-ons to make any changes that they require. You should never modify these layers, since they are overwritten when the Content Store and/or add-ons are upgraded, and your changes will be lost.

  • Also delivered with the system is a skeleton configuration layer that you can use as a basis for creating configuration layers of your own. You will need to create at least one site-wide configuration layer called the common configuration layer. In this layer you can override default settings that do not meet your site's requirements.

  • If you are running a multi-host site, you will also probably need to create additional configuration layers for each host that override any properties for which host-specific settings are required. These are referred to as host configuration layers.

  • You can create even more layers: on large multi-host sites you may have "families" of hosts that perform the same function, and therefore have many configuration settings in common. It may then make sense to create family configuration layers between the common configuration layer and the host configuration layers.

Note that the individual layers do not need to be complete: a layer can consist of just one .properties file, and a .properties file does not need to contain settings for all of a component's properties.

Configuration layers can be loaded from three different types of location or depot:

  • JAR files in the classpath

  • Explicitly specified JAR files

  • Specified file system locations

The default configuration layer and the plug-in configuration layer are loaded from JAR files in the classpath.

You are recommended to create your common configuration layer (and any other layers you need) in the file system, ideally in the /etc/escenic/engine folder. The delivered bootstrap layer is configured to look for your configuration layers in this location. For detailed information on how to create configuration layers, and how to modify the bootstrap layer so that they are read in the correct order, see Managing The Configuration Layers.