Hi Tommaso, In general you should always use the ConfigurationFactory approach as it is lot more simpler and easy to use.
ManagedServiceFactory is useful in few cases when you do not want your bundle to depend on any other service runtime apart from core OSGi framework. So suitable for infrastructure bundles like Logging , WebConsole or other OSGi spec implementations etc Chetan Mehrotra On Wed, Sep 11, 2013 at 7:06 PM, Tommaso Teofili <[email protected]> wrote: > Thanks a lot Chetan, that helps a lot! > > In the mentioned link it seems both ConfigurationFactory and > ManagedServiceFactory could be used for that purpose, do you know if there is > any difference / advantage / disadvantage of using one instead of the other? > > Regards, > Tommaso > > On 11/set/2013, at 11:53, Chetan Mehrotra wrote: > >> You can use Component based on ConfigurationFactory. Have a look at >> [1] for one such example >> >> [1] http://stackoverflow.com/a/15872131/1035417 >> Chetan Mehrotra >> >> >> On Wed, Sep 11, 2013 at 3:05 PM, Tommaso Teofili <[email protected]> wrote: >>> Hi all, >>> >>> that's probably a trivial question but I'm looking for the best practice to >>> create and register OSGi Services from configurations. >>> Here's an example scenario: >>> - I have an interface FooBar >>> - I have an implementation DefaultFooBarImpl >>> - I want to be able to specify a node like: >>> { >>> "jcr:primaryType" : "sling:OsgiConfig", >>> "name" : "foo" >>> "property-one" : "some-value", >>> "property-two" : "another-value", >>> } >>> - and consequently I'd like a new instance of DefaultFooBarImpl to be >>> created and registered as a Service (of course implementing FooBar) >>> - then if a new configuration node is added: >>> { >>> "jcr:primaryType" : "sling:OsgiConfig", >>> "name" : "bar" >>> "property-one" : "some-other-value", >>> "property-two" : "yet-another-value", >>> } >>> - another instance of DefaultFooBarImpl is created and registered as a >>> Service. >>> >>> From my basic understanding (which may be obviously completely wrong) it >>> seems to me that the best fit for my use case would be using >>> ManagedServices [1] but I'm not too sure I should do that to handle >>> multiple instances. >>> >>> Thanks in advance and have a nice day, >>> Tommaso >>> >>> [1] : >>> http://www.osgi.org/javadoc/r4v42/org/osgi/service/cm/ManagedService.html >>> >>> >
