I don't think you're missing something. The spec states CA should be doing that 
already, so if our implementation is not, we should raise a bug.

Greetings, Marcel

On Aug 12, 2013, at 9:40 , David Jencks <david_jen...@yahoo.com> wrote:

> Hi,
> 
> I was under the impression that setting the location of the configuration to 
> null when the bundle that owns the configuration is uninstalled was the 
> responsibility of config admin.  Config admin sets the location when you call 
> getConfiguration using the bundle's CA, surely it is also CA's responsibility 
> to track the bundle and undo the locations when the bundle is uninstalled.
> 
> Am I missing something?
> 
> I don't see how it could affect this but I have a few tests and bug fixes for 
> location binding and targeted pids that I hope to finish up and commit in the 
> next couple of days.
> 
> thanks
> david jencks
> 
> On Aug 12, 2013, at 12:34 AM, Felix Meschberger <fmesc...@adobe.com> wrote:
> 
>> Hi
>> 
>> Am 12.08.2013 um 08:16 schrieb Marcel Offermans:
>> 
>>> Hello Felix,
>>> 
>>> On Aug 12, 2013, at 7:52 AM, Felix Meschberger <fmesc...@adobe.com> wrote:
>>> 
>>>> Currently our Declarative Services implementation statically binds 
>>>> configuration to the using bundle when such configuration is used to 
>>>> configure a component. The intent was to follow the Configuration Admin 
>>>> specification which also statically binds configuration to 
>>>> ManagedService[Factory] when first supplying configuration which is not 
>>>> previously bound.
>>> 
>>> In fact, the spec calls this "dynamic binding" when you supply a 
>>> configuration that will be bound to the first bundle that registers a MS[F] 
>>> with that PID. If this is indeed what you're talking about then I don't 
>>> really get the problem you're describing as the spec already states (4.3 
>>> compendium 104.4.2):
>>> 
>>> "When this dynamically bound Bundle is subsequently uninstalled, 
>>> configurations that are bound to this bundle must be released. That means 
>>> that for such Configuration object’s the bundle location must be set to 
>>> null again so it can be bound again to another bundle."
>> 
>> Yes, that would be my solution (2) ;-)
>>> 
>>>> This mechanism works really nicely but has a problematic drawback: When 
>>>> the "owning" bundle is uninstalled, configurations remain bound. If a new 
>>>> version of the same bundle is installed later, configuration will thus not 
>>>> be supplied because, presumably, the bundle will have a new bundle 
>>>> location and thus does not own the configuration.
>>>> 
>>>> I could imagine two solutions to this problem:
>>>> 
>>>> (1) DS does not statically bind configuration any longer. So, if unbound 
>>>> configuration is supplied to a component, it just remains unbound. In my 
>>>> understanding, this bends on the semantics defined by the Configuration 
>>>> Admin specification.
>>>> 
>>>> (2) DS maintains a list of configurations which it has statically bound. 
>>>> On Bundle UNINSTALLED events the location of the uninstalled bundle is 
>>>> matched against the bindings of the configurations in the list and if such 
>>>> bindings exists, it is removed again. In my understanding, this would be 
>>>> the correct solution but is somewhat more complicated to implement.
>>>> 
>>>> WDYT ?
>>> 
>>> Just exploring the possible solutions:
>>> 
>>> (3) make sure you always set the location for the bundle with the same 
>>> value, even after a re-install (for example, deployment admin uses the BSN 
>>> as the location, which nicely solves this problem)
>> 
>> You can only set the location from Bundle.getLocation() and DS has no 
>> influence on that. Other installers may use the actual source URL from which 
>> the bundle was installed.
>> 
>>> 
>>> (4) if you target 4.3 you could look into "using" the multi-location 
>>> feature (although that might be bending the spec a bit as well)
>> 
>> Right. That's a thread for the Web Console for example: If configuration is 
>> created with the Web Console it should use the generic "?*" location by 
>> default if the appropriate Configuration Admin API is wired.
>> 
>> Regards
>> Felix
>> 
>>> 
>>> Greetings, Marcel
>>> 
>> 
> 

Reply via email to