Hi Clément,

Thanks for your reply.

The problem here is that the Items are dynamic, which means that they can come 
and go at any time, even before the MyExecutor. :-(
This happens regardless of the order, and that is exactly my problem.


Cheers,
=David



> On Jul 18, 2018, at 7:59, Clément Delgrange via osgi-dev 
> <[email protected]> wrote:
> 
> Hi David, 
> 
> From the spec I read:
> 
> > 112.5.10 Binding Services
> >
> > When binding services, the references are processed in the order in which 
> > they are specified in the component description. That is, target services 
> > from the first specified reference are bound before services from the next 
> > specified reference. 
> 
> So, I understand that if your executor comes before yours items reference in 
> the component declaration you have the garantee that the executor will be 
> bounded before your items. 
> 
> Cheers, 
> Clément. 
> 
> 
> 
> 
> -------- Message d'origine --------
> On 18 juil. 2018 à 00:16, David Leangen via osgi-dev < [email protected] 
> > a écrit :
> 
> 
> Hi!
> 
> I have a component that acts a bit like a whiteboard provider. It looks 
> something like this:
> 
> public class MyWhiteboard
> {
> boolean isActive;
> 
> @Reference MyExecutor executor; // Required service to execute on an Item
> 
> @Reference(multiple/dynamic)
> void bindItem( Item item )
> {
> if (isActivated)
> // add the Item
> else
> // Store the item to be added once this component is activated
> }
> 
> void unbindItem( Item item )
> {
> // Remove the item
> }
> 
> @Activate
> void activate()
> {
> // execute non-processed Items
> isActivate = true;
> }
> }
> 
> The MyExecutor must be present before an Item can be processed, but there is 
> no guarantee as to the binding order. All I can think of doing is ensuring 
> that the Component is Activated before processing.
> 
> My question is: is there a more elegant / simpler / less error prone way of 
> accomplishing this?
> 
> 
> Thanks!
> =David
> 
> 
> _______________________________________________
> OSGi Developer Mail List
> [email protected]
> https://mail.osgi.org/mailman/listinfo/osgi-dev 
> <https://mail.osgi.org/mailman/listinfo/osgi-dev>
> _______________________________________________
> OSGi Developer Mail List
> [email protected]
> https://mail.osgi.org/mailman/listinfo/osgi-dev

_______________________________________________
OSGi Developer Mail List
[email protected]
https://mail.osgi.org/mailman/listinfo/osgi-dev

Reply via email to