Re: declarative services and concurrency

2009-03-07 Thread Felix Meschberger
This is exactly the case. Our Declarative Services implementation maintains a single background thread which is responsible for binding references and activating components. So, yes, here you generally will not get a bind or unbind call while in the activate method. I chose this implementation to

Re: declarative services and concurrency

2009-03-07 Thread Reto Bachmann-Gmür
Yes, sorry with "felix " I was actually meaning "Felix Declarative Services". Regards, Reto Richard S. Hall said the following on 03/07/2009 05:52 PM: > I am not sure if this has anything to do with Felix per se, it sounds > like more of a feature of the SCR implementation. Perhaps SCR queues > i

Re: declarative services and concurrency

2009-03-07 Thread Richard S. Hall
I am not sure if this has anything to do with Felix per se, it sounds like more of a feature of the SCR implementation. Perhaps SCR queues its work, in which case, the activate would be processed before the bind. -> richard On 3/7/09 9:35 AM, Reto Bachmann-Gmür wrote: experimenting with felix

Re: declarative services and concurrency

2009-03-07 Thread Reto Bachmann-Gmür
But as in the scenario of the experiment felix is actually waiting with enabling (and injecting) the second component till the first one (the one with the Thread.sleep) finished activating. Why does felix wait half a minute if not forced by specification? Regards, reto Neil Bartlett said the fol

Re: declarative services and concurrency

2009-03-07 Thread Neil Bartlett
Indeed, this is NOT guaranteed. What you will find in small-scale testing is that it's actually quite hard to force the concurrency to happen, because you can't get the thread scheduler to switch contexts when you want it to. But the bugs are only hiding, and are likely to appear when the componen

Re: declarative services and concurrency

2009-03-07 Thread Reto Bachmann-Gmür
experimenting with felix I found that dynamic dependencies are not injected while the acivate method is being executed. The experiment code /** * @scr.component * @scr.reference name="component" cardinality="0..n" policy="dynamic" *interface="java.lang.Object" target="(testing=

Re: declarative services and concurrency

2009-03-05 Thread Neil Bartlett
It depends. If your component uses the "static policy" then the binds/unbinds will not happen concurrently with the activate/deactivate methods. However, if you use "dynamic" policy then they certainly can happen concurrently and you need to write your component to be thread-safe. Regards Neil O

declarative services and concurrency

2009-03-05 Thread Reto Bachmann-Gmür
I guess a simple question: is it guaranteed that the activate,deactivate, the bind- and unbind methods of a component are not called synchronously? Cheers, Reto - To unsubscribe, e-mail: users-unsubscr...@felix.apache.org For add