From: Manuel S. P. <san...@di...> - 2004-05-28 09:55:41
|
Hi! I answer you inside the mail. > First and foremost, this sounds like a logic/coding deadlock to me. It > seems you have a mutual dependency in your startup logic: > > - Bundle B needs Bundle A to do something before it can finish starting > - Bundle A needs to load classes from Bundle B before it can finish > starting. Not exactly. Bundle A is already started and works fine. Then I start bundle B, which tells bundle A to instantiate a class. This class is exported by bundle B and imported by bundle A. > > If I've understood this correctly, the only way you can break this > deadlock is: > > - remove one of the dependencies e.g. let Bundle B start without any > dependency on Bundle A. Sort out what Bundle B needs later, such as by > using Services and have Bundle B wait for the required services to > become available. I've already used a similar approach, by extracting all the problematic code from bundle B and putting it in a bundle event listener which executes itself when the bundle B is already started. The thing is that if bundle B is in INSTALLED, RESOLVED OR STARTED state, then there is no problem in bundle A accesing a class from bundle B. However, if bundle A tries to access a class exported when bundle B is STARTING, he won't be able to do it. Is this the correct way of acting? Or should bundle A be able to access bundle B classes at any time? I mean, I 've already found workarounds for this problem. But I do not know if this is a bug (and therefore should need a fix) or is it just the way the spec says it should work. :) Thanks!! Regards, Manuel Santillan |