Hi,

Yes. Makes sense. Thanks for fixing.

Regards
Felix

Am 05.06.2012 um 03:36 schrieb David Jencks:

> 
> On Jun 4, 2012, at 11:13 AM, Felix Meschberger wrote:
> 
>> Hi,
>> 
>> Am 04.06.2012 um 19:16 schrieb David Jencks:
>> 
>>> cf FELIX-3506, 3377.
>>> 
>>> Right now we have it set up so that a lifecycle method can return the exact 
>>> set of service properties it wants the service registration to have.  I'm 
>>> not at all sure this is a plausible way to operate since usually you'd use 
>>> this feature to set or unset a flag in the service properties based on some 
>>> aspect of the component state.  I could be missing something, but I don't 
>>> see an easy way to get the existing set of service properties so you can 
>>> modify them with your flag.  I did something like this:
>>> 
>>>      serviceProperties.clear();
>>>      for (String key : cc.getServiceReference().getPropertyKeys()) {
>>>          serviceProperties.put(key, 
>>> cc.getServiceReference().getProperty(key));
>>>      }
>>> //now actually add/remove my flag
>>> 
>>> 
>>> I think it would be a lot more usable to have the lifecycle methods return 
>>> a map of changes, where a null value for a key means "remove the key".
>>> 
>>> Have I missed an easy way to use the current implementation?
>> 
>> Basically the service registration by default are all 
>> ComponentContext.getProperties() with the exception of the properties with a 
>> leading dot (considering them private properties).
>> 
>> So the idea of returning the complete map is to give the component full and 
>> simple control. And because the properties are fully available in all 
>> activator methods (activate, modify, deactivate) through either the 
>> ComponentContext or the configuration Map this is really straight-forward 
>> IMHO.
>> 
>> So I would prefer to keep those as is.
> 
> I'm OK with this as long as we strip out the private . properties... see 
> FELIX-3533.
> 
> david jencks
> 
>> 
>> Regards
>> Felix
> 

Reply via email to