Hi Achim, Thanks for the extended offer. I am marching my way to OSGI ConfigAdmin, Next I will walk to JMX way, i am very sure will need more advice
-Dan On Sun, Mar 13, 2011 at 1:11 PM, Achim Nierbeck <[email protected]> wrote: > Hi Dan, > > no problem, if there is anything else we can help on come back :) > > Regards, Achim > >> Hi Achim, >> >> I think it is reasonable to refactor my spring configuration to >> separate standalone spring app and osgi app, rather then mixing them >> and hope for the best >> >> Thank you for all the great advice. >> >> -Dan >> >> >> >> On Sun, Mar 13, 2011 at 12:35 PM, Achim Nierbeck >> <[email protected]> wrote: >>> Hi Dan, >>> >>> depends on how you setup your Spring and your application. >>> I usually use maven as build system and therefore do differentiate >>> between spring in test and on server. >>> In you "test" environment you can keep your configuration. >>> >>> One other possibility is how you tell spring / spring-dm which config >>> files to use. >>> >>> Per default spring-dm searches for a spring xml file in META-INF/spring >>> but you can also >>> tell spring to search in other directories or just to use certain xml >>> files. >>> For example you might set the following in the MANIFEST >>> >>> Spring-Context: config/account-data-context.xml, >>> config/account-security-context.xml >>> >>> >>> More details on how to configure spring and so forth can be found at [1] >>> >>> Another thing I usually do is to separate Spring bean wiring from it's >>> configuration, this way you can >>> use different configurations for different locations. >>> >>> >>> >>> [1] - >>> http://static.springsource.org/osgi/docs/1.2.1/reference/html/app-deploy.html#app-deploy:headers >>> >>> >>>> Hi Achim >>>> >>>> what do you mean by "Now you just need to replace your property code >>>> by the following."? >>>> >>>> does this mean i need to remove my spring >>>> >>>> <bean id="propertyConfigurer" >>>> class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> >>>> <property name="systemPropertiesModeName" >>>> value="SYSTEM_PROPERTIES_MODE_OVERRIDE" /> >>>> <property name="location" >>>> value="classpath:com/.../resources.properties" /> >>>> </bean> >>>> >>>> as well? >>>> >>>> I am hoping to leave my spring config untouched until we fully >>>> OSGIzing it, so that my current test still functional as standlone >>>> spring test >>>> >>>> Thank you >>>> >>>> -Dan >>>> >>>> >>>> On Sun, Mar 13, 2011 at 12:09 PM, Achim Nierbeck >>>> <[email protected]> wrote: >>>>> Hi Dan, >>>>> >>>>> yes it is. >>>>> >>>>> first of all you need to make sure you got a cfg file in your etc folder >>>>> with a name that matches a "PID" - PersistentID >>>>> e.g. my.very.special.resources.cfg >>>>> where my.very.special.resources is the pid. >>>>> This way the FileInstaller takes this cfg file and tells the config >>>>> admin service to provide a configuration for that pid. >>>>> >>>>> Now you just need to replace your property code by the following. >>>>> >>>>> <osgix:cm-properties id="cfg.with.defaults" >>>>> persistent-id="my.very.special.resources"> >>>>> <beans:prop key="host">localhost</beans:prop> >>>>> <beans:prop key="port">3306</beans:prop> >>>>> </osgix:cm-properties> >>>>> >>>>> >>>>> >>>>> It can also be found at [1] >>>>> >>>>> >>>>> Regards, Achim >>>>> >>>>> >>>>> [1] - >>>>> http://static.springsource.org/osgi/docs/1.2.1/reference/html/compendium.html#compendium:cm >>>>> >>>>> >>>>>> Hello, >>>>>> >>>>>> My jar ( spring bundle ) has a default set of configurations via >>>>>> >>>>>> <bean id="propertyConfigurer" >>>>>> class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> >>>>>> <property name="systemPropertiesModeName" >>>>>> value="SYSTEM_PROPERTIES_MODE_OVERRIDE" /> >>>>>> <property name="location" >>>>>> value="classpath:com/.../resources.properties" /> >>>>>> </bean> >>>>>> >>>>>> This way I can override the default properties using system >>>>>> properties ( ie pass in -Dxuy=value to JVM ) >>>>>> >>>>>> Now I'd like to deploy my bundle to Karaf, is there a way for me to >>>>>> setup Karaf/osgi's configAdmin to to use a config file under karaf's >>>>>> etc directory to override my default properties? >>>>>> >>>>>> Big thanks ahead. >>>>>> >>>>>> -Dan >>> > >
