On 11/19/2016 11:42 AM, Tim Ward wrote:
The multiton pattern simply creates (and potentially registers a a service) a
separate component for each factory configuration.
If these components are services then they can then be scoped -
Yes, the components are all services.
if you make the component prototype scoped then you can use a ServiceObjects to
create a new instance of the given component for the given configuration on
demand.
If I'm understanding you correctly for the OSGi multiton, with DS 1.3 I
would use something like this
@Designate(factory=true) // ConfigurationFactory
@Component(scope = ServiceScope.PROTOTYPE) // PrototypeScope
class ServiceImpl implements Service {
...
Yes?
Scott
I think this is the behaviour that you want...
Tim
Sent from my iPhone
On 19 Nov 2016, at 19:19, Scott Lewis <sle...@composent.com> wrote:
On 11/19/2016 10:42 AM, Timothy Ward wrote:
Question: If I use a component factory as suggested above to create a
component instance, is there a straightforward way to associate every
newInstance with a separate/new configuration?
The way that this is done is to pass the configuration using the newInstance
method. Effectively your pattern would be to register a ConfigurationListener
or ManagedServiceFactory, passing the configuration Dictionary to the Component
Factory for each Factory Configuration.
The thing is - this is almost exactly the multiton pattern, so I can’t quite
work out why setting the DS service scope to prototype isn’t enough for what
you want to achieve… I guess I’m just not close enough to the detail.
Is there a description and/or example of the multiton pattern usage somewhere?
It was my understanding (from BJ's comment) that prototype scoped instances
shared the same component properties (rather than having separate properties as
per component factory newInstance(props)).
This use case would like to a) have distinct service properties for every
instance created (i.e. newInstance); b) also be able to configure each service
instance dynamically via config admin.
Scott
_______________________________________________
OSGi Developer Mail List
osgi-dev@mail.osgi.org
https://mail.osgi.org/mailman/listinfo/osgi-dev
_______________________________________________
OSGi Developer Mail List
osgi-dev@mail.osgi.org
https://mail.osgi.org/mailman/listinfo/osgi-dev
_______________________________________________
OSGi Developer Mail List
osgi-dev@mail.osgi.org
https://mail.osgi.org/mailman/listinfo/osgi-dev