[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [equinox-dev] When is DS done loading services?

Hi Otto,
I guess your problem is connected to the asynchronous processing of the DS services.
As far as I understand the situation is: your application bundles are started, then your application is started but at this moment not all of the DS services are inited yet because they are being asynchronously processed.

Unfortunately currently there is no way to find out when DS completes the DS services processing.
I think if there was an option that DS bundle process the DS services in the started bundles synchronously, it would solve your problem. So I will open bug(enhancement) about that and hopefully this will be implemented soon.
As a possible workaround you could observe the running threads and when the thread with name "Component Resolve Thread" disappears this would mean that DS bundle has no more work to do and eventually all of your DS services are processed. I realize this is not a clean solution (that's why I call it workaround) but at this moment I cannot find out a more appropriate working solution without modifications in the DS bundle.


Cortez, Otto wrote:
I made a post to the Eclipse newcomers group a few weeks ago, but did not get a response. I don’t know if this is the appropriate place for this question, but hopefully someone can point me in the right direction.

We are building a headless RCP application and we would like to use DS to make functionality available. The problem we are running into is that not all of the services we declared through DS get loaded and are visible before our application executes.

For example, I have a service A which needs 0..n instances of another service B. The issue I'm running into is that if the implementations of service B are spread across several bundles, then the service A will not have seen all instances of service B when it is called since the application starts (and sometimes ends) running before DS is done looking through all the bundles and registering all the services in the active bundles.

Is there a way to know when declarative services is done looking through the active bundles and loading the services found in them? Am I missing something?

It seems that using the plug-in registry may solve this issue. Is that perhaps a better way to go?


This email and any files transmitted with it are confidential, proprietary
and intended solely for the individual or entity to whom they are addressed.
If you have received this email in error please delete it immediately.


equinox-dev mailing list

-- --------------------------------------------------------- dipl. eng. Stoyan Boshev . Department manager ProSyst Labs EOOD 1606 Sofia, Bulgaria . 48 Vladajska Str. Tel. +359 2 953 05 88; Fax +359 2 953 26 17 Mobile: +359 88 898 29 17 http://www.prosyst.com . s.boshev@xxxxxxxxxxx --------------------------------------------------------- stay in touch with your product ---------------------------------------------------------