Thanks for the clarification :)
So there isnât a way to get only the bundle descriptions that has a resolver error. You have to check them all.
From: equinox-dev-bounces@xxxxxxxxxxx [mailto:equinox-dev-bounces@xxxxxxxxxxx] On Behalf Of Thomas Watson
Sent: Wednesday, July 20, 2011 3:51 PM
To: Equinox development mailing list
Subject: Re: [equinox-dev] equinox state and resolver
The isResolved() method does not indicate that every bundle in the state is in the resolved state. As the javadoc states it only indicates that the State has not been modified since the last call to one of the State.resolve methods. This method is intended to indicate that the State needs a resolve operation done on it because it has pending changes that could effect the resolution state when one of the resolve methods is called.
Perhaps I should add that last sentence to the javadoc ;-)
It sounds like Virgo is doing the correct thing by looking for resolver errors for unresolved BundleDescriptions after performing a resolve operation.
"Kapukaranov, Borislav" ---07/20/2011 06:08:39 AM---Hi,
"Kapukaranov, Borislav" <borislav.kapukaranov@xxxxxxx>
Equinox development mailing list <equinox-dev@xxxxxxxxxxx>
07/20/2011 06:08 AM
[equinox-dev] equinox state and resolver
I was playing around with the Equinox resolver and state and observed something that confused me.
I get a state object from PlatformAdmin and add some bundle descriptions that I know wonât be able to resolve â for example they trigger a âusesâ conflict.
I call resolve and after that isResolved(), which returns true.
If I go through the bundle descriptions in the state and check them Iâll be able to retrieve the resolver error for the uses conflict and that particular bundle description will return false for its isResolved() method.
I found that strange so I checked the javadoc for Stateâs isResolved method and found it âReturns true if there have been no modifications to this state since the last time resolve() was called.â.
This puzzled me even more, after all I included some descriptions in that State.
In Virgo for the quasi resolve to catch resolver errors early, we check the bundles descriptions for resolver errors and donât call the isResolved method of the State, which works fine.
But it made me curious about how the State is expected to work and in order to get a resolution result which is the best approach.
Can you share some technical background? :)
equinox-dev mailing list