[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[equinox-dev] DS optional cardinality question

I have a simple collaborator pattern where a Manager component has a optional multiple reference to several Listener services as shown below:

<component
name="Manager" immediate="true">
<implementation class="com.ibm.listener.Manager"/>
<reference
name="Listener"
interface="com.ibm.listener.Listener"
cardinality="0..n"
policy="dynamic"
bind="addListener"
unbind="removeListener"
/>
</component>

<component
name="Listener1">
<implementation class="com.ibm.listener.Listener1"/>
<service>
<provide interface="com.ibm.listener.Listener"/>
</service>
</component>

<component
name="Listener2">
<implementation class="com.ibm.listener.Listener2"/>
<service>
<provide interface="com.ibm.listener.Listener"/>
</service>
</component>

Components Listener1 and Listener2 are not immediate components, where as the Manager component is. I would think that DS will activate Manager component without having to activate Listener1 or Listener 2 as they are not immediate components, and they are not mandatory for Manager (0..n cardinality). However, when I ran this example (with M5 bundles), both Listener 1 and Listener 2 were activated and injected into Manager component. Could this be a bug ?

Regards,
Subbarao