Has anyone been able to successfully share configuration between two or more bundles in SMX4? What I'm looking for is this:
- Have a single file in
$SMX_HOME/etc/myconfiguration.cfg - Have this configuration be "available" to be injected into my bundles via the OSGi Configuration Admin using Spring dm, i.e.
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:osgi="http://www.springframework.org/schema/osgi"
xmlns:osgix="http://www.springframework.org/schema/osgi-compendium"
xmlns:ctx="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/osgi http://www.springframework.org/schema/osgi/spring-osgi-1.2.xsd
http://www.springframework.org/schema/osgi-compendium http://www.springframework.org/schema/osgi-compendium/spring-osgi-compendium-1.2.xsd">
<osgix:cm-properties id="cfg"
persistent-id="myconfiguration">
<prop key="db.driverClassName">org.postgresql.Driver</prop>
<prop key="db.url">jdbc:postgresql://localhost/db</prop>
<prop key="db.username">someuser</prop>
<prop key="db.password">somepassword</prop>
<prop key="amq.brokerURL">vm://default</prop>
</osgix:cm-properties>
<ctx:property-placeholder properties-ref="cfg" />
Then, I can inject things like this into my bean(s):
.
.
.
<bean id="activeMqConnectionFactory"
class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL" value="${amq.brokerURL}" />
</bean>
.
.
.
All of that is just peachy, for a single bundle. What I am looking for is a way to define this once and then be able to reuse the same configuration file as properties for a set of bundles. Right now, I have multiple bundles, each with their own configuration instance (persistent id) and thus, each bundle that needs a database connection, Java JMS, etc. has to have the configuration repeated in every file.
Currently, I'm using Apache Servicemix 4, which is using Apache Felix as the OSGi container.