Hi BJ,

Thank you for answering my questions.

On Tue, 21 Jul 2009 10:05:18 -0400
BJ Hargrave <[email protected]> wrote:

BJ> > Hi all,
BJ> > 
BJ> > I have several questions on DS Spec.
BJ> > 
BJ> > ==============================================
BJ> > [Background]
BJ> > 
BJ> > In 112.3.3 Reference Policy of R4.2 cmpn spec, "Static policy is usually
BJ> > also not applicable if the cardinality specifies multiple bound
BJ> > services.". 
BJ> > 
BJ> > However, spec doesn't specifies what will happen if static policy with
BJ> > the cardinality which specifies multiple bound.
BJ> 
BJ> That sentence is just commentary. If a component depends upon multiple 
BJ> services, then is probably wants that to be a dynamic dependency.
BJ> 
BJ> I think the spec quite well addresses the use of static policy with 
BJ> multiple cardinality.
BJ> 
BJ> > 
BJ> > This caused several questions on DS:
BJ> > 
BJ> > ==============================================
BJ> > 
BJ> > Precondition1: component1 has a static reference with cardinaliry of
BJ> > "0..n" for serviceA. There is no serviceA registered. 
BJ> > ==> component1 has been already activated.
BJ> > 
BJ> > Q1. What will happen if serviceA is registered at Precondition1 ?
BJ> 
BJ> 
BJ> If component1 is activated with 0 bound serviceA and a serviceA is then 
BJ> registered, component1 should be deactivated. Then a new component1 is 
BJ> created, bound to 1 serviceA and activated.

BJ> > ---------------------------
BJ> > 
BJ> > Precondition2: component1 has a STATIC reference with cardinaliry of
BJ> > "1..n" for serviceA. There is one serviceA registered. 
BJ> > ==> component1 has been already activated.
BJ> > 
BJ> > Q2. What will happen if serviceA is registered at Precondition2 ?
BJ> 
BJ> If component1 is activated with 1 bound serviceA and a serviceA is then 
BJ> registered, component1 should be deactivated. Then a new component1 is 
BJ> created, bound to 2 serviceA and activated.

Could you tell me which descriptions in the spec address the use of static 
policy with 
multiple cardinality in order to answer Q1 and Q2 ?

As far as I see, the second paragraphin of section 112.3.3 "Reference
Policy" says:

        "Component configurations are deactivated before any bound
service for a reference having a static policy
becomes unavailable. If a target service is available to replace the bound
service which became unavailable, the component configuration must be
reactivated and bound to the replacement service."

But it doesn't says in the case that the service already bound keeps
available and new service to be bound becomes available.

On the other hand, I found another sentence which might imply the answers.

The 5th paragraph of section 112.3.3 "Reference Policy" says:

        "The previous example with the registering of a resource
directory used a static policy. This implied that the component
configurations are deactivated when there is a change in the bound set
of Http Services."

(The example has the STATIC reference with multiple cardinality)

BJ> > ---------------------------
BJ> > 
BJ> > Precondition3: component1 has a STATIC reference with cardinaliry of
BJ> > "1..1" for serviceA. There is one serviceA registered. 
BJ> > ==> component1 has been already activated.
BJ> > 
BJ> > Q3. What will happen if another serviceA with higher SERVICE_RANKING 
BJ> than
BJ> > the bound service is registered at Precondition3 ?
BJ> > 
BJ> > Should it be bound service replaced (and re-activate after
BJ> > deactivattion) ? or not.
BJ> 
BJ> There is no need to replace the service since 1..1 static dependencies do 
BJ> not require replacement as long as  the current bound service is still 
BJ> available.

I got it. That is what I had understand from the spec.

BJ> > ---------------------------
BJ> > 
BJ> > Precondition4: component1 has a DYNAMIC reference with cardinaliry of
BJ> > "1..1" for serviceA. There is one serviceA registered. 
BJ> > ==> component1 has been already activated.
BJ> > 
BJ> > Q4. What will happen if another serviceA with higher SERVICE_RANKING 
BJ> than
BJ> > the bound service is registered at Precondition4 ?
BJ> > 
BJ> > Should it be bound service replaced (and re-bind the new and unbind the
BJ> > old) ? or not.
BJ> 
BJ> There is no need to replace the service since the currently bound service 
BJ> is still available. But since the policy is dynamic, a DS impl could 
BJ> replace the service if it wanted to.

Does it mean that some DS impls might replace and the others might not
replace (It is up to a DS impl) ?

It seems to me that a DS impl must NOT replace it, taking the
consistency of Q3 (STATIC policy case) it into account.

What do you think ?

=======
Ikuo YAMASAKI

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

Reply via email to