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 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
_______________________________________________
OSGi Developer Mail List
[email protected]
https://mail.osgi.org/mailman/listinfo/osgi-dev

Reply via email to