Hi, BJ Hargrave schrieb: >> Hmm. Interesting. Now, this has confusing consequences. >> >> Consider the following case. >> >> (1) Two Services serviceA registered (call it s1 and s2) >> (2) Component C with statically bound serviceA reference with >> 0..n is activated: >> -> Services s1 and s2 are bound >> (3) serviceA type service s3 is registered but *not* bound to >> Component C >> (4) serviceA type service s1 is unregistered >> -> Component C has to be deactivated to unbind s1 >> >> Is step (4) correct ? I assume, yes. > > Yes. > >> >> But, what now ? >> >> (a) C remains deactivated >> (b) C is activated again with just s2 bound >> (c) s2 remains bound, s3 is newly bound and C is activated >> >> Which of these options is the intended behaviour ? >> >> BTW: Felix DS currently deactivates C to bind s3 upon registration and >> then reactivates C again. Likewise Felix DS implements option (c). >> > > None of these are correct. The correct answer is that the C instance > deactivated in (4) is discarded and that object is *never* used again by > DS. Since s2 and s3 are present, the reference is still satisfied and a > *new* C instance is created, bound to s2 and s3 and then activated.
Thanks for the clarification. This is what I intended to say with the possibly oversimplificated option (c). Sorry for the confusion. Regards Felix > > From the DS spec: "Once the component configuration is deactivated, SCR > must discard all ref- > erences to the component instance and component context associated with > the activation." > > > ------------------------------------------------------------------------ > > _______________________________________________ > 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
