Reputation: 2447
I am registering an OSGi service using OSGi declarative service and setting
servicefactory="true"
as follows.
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="test.Configuration">
<implementation class="test.ConfigurationImpl"/>
<service servicefactory="true">
<provide interface="test.Configuration"/>
</service>
</scr:component>
I am trying to use the service multiple times from another bundle. But, it returns me the same instance of the service.
What could possibly go wrong here ??
Upvotes: 2
Views: 1936
Reputation: 23948
The servicefactory
flag means that each consumer bundle gets a separate instance. So if you consume the service from 2 bundles then you will get 2 instances. You do not get multiple instances per consumer.
If you want programmatic control from the consumer over the number of instances then you need to use the ComponentFactory
approach.
Upvotes: 4