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