Define a respository-based configuration for a single instance

There are two ways to configure CQ5.

Configure the Apache Felix Web Management Console

The configuration on the Apache Felix Web Management Console (http://<host>:<port>/system/console/configMgr) is always specific for the current instance.
You can find a description in the documentation: http://dev.day.com/content/docs/v5_2/html-resources/cq5_guide_system_administrator/ch05s03.html

Repository-based configuration

It is also possible to store configuration in the CRX repository as nodes of nodetype sling:OsgiConfig. 

For more information, see http://dev.day.com/content/docs/v5_2/html-resources/cq5_guide_system_administrator/ch05s02.html

With this method, it is possible to share configuration among several instances.
The name of these nodes must be equal to the Persistent Identity (PID) of the configuration (for example, the name of the service). If you look at http://<host>:<port>/system/console/config, you see these names listed as service.pid properties. These configuration nodes have to be child-nodes of nodetype nt:folder with a name starting with config followed with a dot. All the run-modes that the config applies to are also separated with a dot.

Examples: config.author, config.publish, config.author.dev, config.author.foo.dev, and so on.

Run-Mode
It is possible to define which specific run-modes a specific instance runs on. By default, an author instance runs on run-mode author and a publish instance runs on run-mode publish. It is possible to define several run-modes for one instance (for example author, foo, and dev).

Set these run-modes as VM options.

For example, on the console:

java -Dsling.run.modes=author,foo,dev -Xmx256m -jar cq-wcm-quickstart-5.2.0.jar

or in the start script:

# default JVM options
CQ_JVM_OPTS='-Dsling.run.modes=author,foo,dev'

The current run-modes of an instance are visible at http://<host>:<port>/system/console/runmodes

Note: It is not recommended to change or remove the default run-modes author and publish. Simply add your specific run-modes to the default list of existing run-modes.

Note: The same mechanism works for the repository-based bundle installation. Place the bundles below nodes of nodetype nt:folder with a name starting with install followed with a dot. All the run-modes that the bundles apply to are separated with a dot.

Example: To have a specific SMTP mailserver configuration for all your instances running on run-mode foo simply create a node with name config.foo and nodetype nt:folder in /apps/geometrixx and copy the node /libs/cq/config/com.day.cq.mailer.DefaultMailService to /apps/geometrixx/config.foo and adapt the properties smtp.host.

Example: To have a specific Logrotation configuration, use the configuration package in the KB article How to rotate request.log and access.log and rename the node config for example to config.foo if the config should be taken for all your instances running on run-mode foo only.

Usage with Replication Agents

This behavior is used as well with the replication agents. Out-of-the-box agents are stored under /etc/replication/agents.author and /etc/replication/agents.publish

The agents stored under a node /agents.runmode are active only on instances this runmode active. Even if the "enabled" property at agent level is "true".

It is possible to have several runmodes defined in this nomenclature: /etc/replication/agents.runmode1.runmode2/repAgentName .

In this case, the runmodes are evaluated with an "OR" condition. Meaning, the agents stored under such a path are active if the instance has runmode1 OR runmode2 active.

This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License  Twitter™ and Facebook posts are not covered under the terms of Creative Commons.

Legal Notices   |   Online Privacy Policy