Hi Pierre, A big thanks for your response. You have been a great help.
Best regards, Joao On Thu, Sep 25, 2008 at 8:03 AM, Pierre De Rop < [EMAIL PROTECTED]> wrote: > H João; > > I have asked the same question, and you can refer to the following post: > http://www.mail-archive.com/[email protected]/msg01120.html > > FYI, at Alcatel-Lucent, we don't use conf admin, especially because it > sounds like it is not possible to > easily reconfigure SCR componenst without restarting them (and we think, > like you, that it is an issue). > > We tried the same thing than you, by using a service.pid different from > the component name, but our "updated" > method was called twice, like in your case. > > So, we work around like this: we have our own configuration manager > (which could use configadmin, but does not for now). > And our config manager injects standard java.util.Properties objects > into the OSGi service registry. > So, our configurable SCR components just define references over > Properties object, using a "config.id" keyword: > > For example, in the OSGi service registry, our conf manager registers a > Properties object with "config.id=MyEnglishDictionary", > and here is the SCR.xml for our EnlishDictionary component: > > <component name="EnglishDictionary"> > <implementation class="sample.impl.dictionary.english.EnglishDictionary"/> > > <reference name="Config" interface="java.util.Properties" > bind="bindConfig" > target="(config.id=MyEnglishDictionary)" > policy="dynamic" > cardinality="1..n"/> > > <service> > <provide interface="sample.service.dictionary.Dictionary"/> > </service> > <property name="language" value="en"/> > </component> > > And when the conf manager updates the Properties in the OSGi service > registry, then the EnglishDictionary component is just invoked > in the bindConfi() method, without being reactivated (notice the > policy="dynamic" attribute). > > If someone has a better approach ... I am very interested ... > > Hope this helps you. > /pierre > > > João Assunção wrote: > >> Hello, >> >> Is it possible to update the configuration of a declarative service >> without >> the reactivation? >> I make this question because it seems the reactivation implies deleting >> the >> service and creating a new one, something that is very inconvenient to me. >> As a workaround, I declared in the component configuration a property >> named >> service.pid with a value different from the component name and added the >> entry <provide interface="org.osgi.service.cm.ManagedService" />. This >> seems to work, (apart the duplicate invocation of the update method when >> the >> bundle starts), but I'm worried this might cause problems. >> >> Thank you. >> >> Joao >> >> >> > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > >

