Or use a cm:property-placeholder in combination with the reload flag to reload the app if the config change, that's what i used inside karaf, see: http://svn.apache.org/repos/asf/karaf/trunk/shell/ssh/src/main/resources/OSGI-INF/blueprint/shell-ssh.xml
2010/12/20 Łukasz Dywicki <l...@code-house.org>: > If you try to do managed component your configuration property name must > match field name, otherwise container will not update your bean. Both > spring-dm and aries blueprint works same. In your example the property named > integer have to use placeholder ${integer}. If you would like to use > different names you need to manage changes in bean (set strategy to bean > managed and callback method). > > Best regards, > Lukasz > > -----Original Message----- > From: Achim Nierbeck [mailto:bcanh...@googlemail.com] > Sent: Monday, December 20, 2010 6:00 PM > To: user@karaf.apache.org > Subject: Re: Managed Properties question > > OK, another try > > <bean id="containerManaged" class="ContainerManagedBean"> > <osgix:managed-properties persistent-id="labX" > update-strategy="container-managed"/> > <property name="integer" value="23"/> > </bean> > > this is the official example :) > > I think the property (named integer here) is optional. Usually all > properties which can be read through getter and setter can be set by > the configuration. > > So your problem is that you try to inject properties within another property > > <property name="hibernateProperties"> > <props> > <prop key="hibernate.show_sql">${myAppDbShowSql}</prop> > <prop key="hibernate.format_sql">${myAppDbFormatSql}</prop> > </props> > </property> > > All your properties you want to update need to be accessible via > getter and setter. > If you want to do this you need to make an extra bean which is > configurable (with the same pid) > and inject that one after it is initialized. you may want to make your > standard bean dependend on the "new" bean. > > 2010/12/20 karafman <mvangeert...@comcast.net> >> >> It still isn't working. >> >> Here's an excerpt of my .cfg file (none of the names in the file have any >> characters other than [a-z, A-Z]: >> myAppDbShowSql = false >> myAppDbFormatSql = false >> >> In the file where I get my service I have: >> <osgix:cm-properties id="myAppDatabaseProperties" >> persistent-id="myApp.data.access"/> >> ctx:property-placeholder properties-ref="myAppDatabaseProperties"/> >> >> In the file where I am using the managed service I have (unnecessary bits >> removed): >> <bean id="myAppSessionFactory" >> class="org.springframework.orm.hibernate3.LocalSessionFactoryBean" >> p:dataSource-ref="myAppPoolDataSource"> >> <osgix:managedProperties persistent-id="myApp.data.access" >> update-strategy="container-managed"/> >> <property name="mappingResources"> >> <list>hibernate valies</list> >> </property> >> <property name="hibernateProperties"> >> <props> >> <prop key="hibernate.show_sql">${myAppDbShowSql}</prop> >> <prop key="hibernate.format_sql">${myAppDbFormatSql}</prop> >> </props> >> </property> >> </bean> >> >> When I change the values in my .cfg file, I can see those changes being >> populated by doing a config:list. >> >> However, I get the following error in my log: >> Configuration for myApp.data.access has already been used for service >> [org.osgi.service.cm.ManagedService, id=127, bundle=89] and will be also >> given to [org.osgi.service.cm.ManagedService, id=128, bundle=89] >> >> When I restart bundle 89, the properties are properly consumed. >> >> Anyone know what's going wrong? >> >> >> ----- >> Karafman >> Slayer of the JEE >> Pounder of the Perl Programmer >> >> -- >> View this message in context: > http://karaf.922171.n3.nabble.com/Managed-Properties-question-tp2107407p2121 > 172.html >> Sent from the Karaf - User mailing list archive at Nabble.com. > > -- Cheers, Guillaume Nodet ------------------------ Blog: http://gnodet.blogspot.com/ ------------------------ Open Source SOA http://fusesource.com