felix-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Richard S. Hall" <he...@ungoverned.org>
Subject Re: Should a refresh wire newly added optional dependencies?
Date Thu, 14 Apr 2011 19:15:04 GMT
On 4/14/11 15:12, Richard S. Hall wrote:
> On 4/14/11 14:25, Steele, Richard wrote:
>> On Thu, Apr 14, 2011 at 2:06 PM, Richard S. 
>> Hall<heavy@ungoverned.org>wrote:
>>
>>> On 4/14/11 13:55, Steele, Richard wrote:
>>>
>>>> If a bundle A declares an optional dependency on package com.example.b
>>>> that
>>>> isn't found, I expect that import to be unresolved.  However, if I 
>>>> then
>>>> add
>>>> a bundle (call it B) that exports the package com.example.b, A does 
>>>> not
>>>> get
>>>> wired to B even if I issue a refresh command (though gogo).
>>>>
>>> First of all, I don't think the resolver is required to satisfy 
>>> optional
>>> dependencies, but most intuitive implementations probably will.
>>>
>> Are you saying that a package marked as optional might *never* be 
>> resolved
>> even if the package is available?  I never considered that 
>> interpretation of
>> the standard, but when rereading it with that in mind in makes sense.  I
>> guess.
>
> For example, the resolver might use it as an optimization to avoid 
> having to resolve even more dependencies.
>
>> I think most people would be surprised by that behavior.
>
> Agreed, which is why I said most intuitive implementations probably will.
>
>>
>>> Are you specifically refreshing bundle A? If not, then most likely 
>>> nothing
>>> is being refreshed, since a refresh with no parameters only refreshes
>>> updated or uninstalled bundles.
>>
>> Um, no--and that was my problem.
>>
>> I assumed a refresh without any parameters would refresh everything.  In
>> fact, I get no errors from gogo when I do that, so it never dawned on 
>> me to
>> refresh a specific bundle.
>
> It isn't an error, which is why you don't get any. You are just 
> telling it to try to refresh any updated or uninstalled bundles if 
> there are any, but there any 

That should say, "there aren't any"...


> so it succeeds by virtue of the fact that there is nothing to do. This 
> is how the PackageAdmin.refreshPackages() method works, which is what 
> the Gogo command uses.
>
>> This begs the question,
>
> Begging the question means something else altogether, but ignoring 
> that... :-)
>
>> however: assume I install a bundle that many would
>> consider options.  Do I then need to know which bundles to refresh or is
>> there some way the runtime can do this for me?
>>
>> Thanks for the very fast response!
>
> I'm not sure I totally understand. I assume you are saying, you have a 
> bundle on which a lot of other resolved bundles have optional 
> dependencies, but they weren't wired to it because it didn't exist at 
> the time they were resolved, right?
>
> Yeah, there isn't anything you can do here, other than re-resolve them 
> all. Technically, it would be possible to write a command that looks 
> at the exported packages of an installed bundle and checks to see if 
> any other bundles optionally import those packages and if so refresh 
> them. So, if this is a common use case for you, I'd recommend writing 
> such a command...it wouldn't be too difficult.
>
> -> richard
>
>> Rich
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
> For additional commands, e-mail: users-help@felix.apache.org
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
For additional commands, e-mail: users-help@felix.apache.org


Mime
View raw message