Details
-
Improvement
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
5.4.2
-
Patch Available
Description
Currently many of the AMQ configuration files use the property activemq.base to load in other configuration files, e.g.
activemq.xml:
<property name="locations">
<value>file:${activemq.base}/conf/credentials.properties</value>
</property>
jetty.xml:
<bean id="securityLoginService" class="org.eclipse.jetty.security.HashLoginService"> <property name="name" value="ActiveMQRealm" /> <property name="config" value="${activemq.base}/conf/jetty-realm.properties" /> </bean>
webconsole-embedded.xml:
<property name="locations">
<value>file:${activemq.base}/conf/credentials.properties</value>
</property>
and others.
In case where you want to externalize the entire ActiveMQ configuration into a folder that is not a sub folder of AMQ, there is the need to change multiple configuration files. This is error prone.
In order to make the use of external AMQ configuration more easy to use, I suggest to
1. Make use of the already existing environment variable ACTIVEMQ_CONFIG_DIR which points to ${ACTIVEMQ_BASE}/conf by default in bin/activemq script.
2. Map the environment variable to the Java variable activemq.conf in bin/activemq script
2. Replace all occurences of ${activemq.base}/conf with {$activemq.conf} in all XML configuration files (including those in webapps/ folder)
That way one can simply point to an external ActiveMQ conf folder by setting the shell environment variable ACTIVE_CONFIG_DIR to that folder. It does not have to be set in the bin/activemq script, it can be set directly on the shell.