Sorry, posted to the wrong forum... /Bengt
2010/3/15 Bengt Rodehav <be...@rodehav.com> > Hello everyone, > > I'm trying to use Spring-DM's support for managed-service-factory. My > artifact (deployed in Karaf 1.4) contains the following XML snippet in > beans.xml: > > <osgix:managed-service-factory id="test-container" > factory-pid="se.digia.connect.routes.test.container" > update-strategy="bean-managed" update-method="configurationUpdate"> > <osgix:interfaces> > <value>se.digia.connect.core.api.IService</value> > </osgix:interfaces> > <bean > class="se.digia.connect.routes.test.container.impl.TestContainer"/> > </osgix:managed-service-factory> > > I then drop a configuration file called > "se.digia.connect.routes.test.container-first.cfg" in the etc folder. This > causes a service containing the correct configuration to be started and > registered. Via Felix WebConsole I can see the configuration and it's the > correct one. When I delete the configuration file from the "etc" folder, the > service is stopped. It all works. > > However, my bean (an instance > of se.digia.connect.routes.test.container.impl.TestContainer) never gets a > callback. I expected the "configurationUpdate()" method of the TestContainer > class to be called whenever the configuration changes. My callback method > has the following signature: > > public void configurationUpdate(Map<String, ?> theProperties) throws > Exception > > When I use a "managed-properties" instead of "managed-service-factory" I do > get the callback. The following works perfectly: > > <bean id="testRoute" class="se.digia.connect.routes.test.impl.TestRoute"> > <osgix:managed-properties persistent-id="se.digia.connect.routes.test" > update-strategy="bean-managed" > update-method="configurationUpdate" /> > </bean> > > <spring-osgi:service ref="testRoute" > interface="se.digia.connect.core.api.IService"/> > > What am I missing? How can I get a notification callback when the > configuration is changed when using a managed-service-factory? > > Happy for any clues you may have. > > By the way is this the recommended way to use managed service factories? > Are there any other (non Spring-DM) ways of doing this? IPojo for example. > > /Bengt >