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 - 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. 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