Hi Mark, the xmlns to change is from xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.0.0" to xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0"
To try it please get examples/camel/camel-blueprint add update-strategy as JB says to property-placeholder <cm:property-placeholder persistent-id="org.apache.servicemix.examples" update-strategy="reload"> and you'll see the strategy work Regards --Filippo 2014-10-09 17:17 GMT+02:00 Mark Webb <[email protected]>: > Are there specific configurations or setup that I must do for this? I am > using ServiceMix 5.1.2. > > "update-strategy" does not appear to be supported. I get the following > error in the servicemix log: > > 11:00:00,171 | ERROR | mix-5.1.2/deploy | BlueprintContainerImpl > | 7 - org.apache.aries.blueprint.core - 1.4.0 | Unable to start blueprint > container for bundle ConfigTest > org.osgi.service.blueprint.container.ComponentDefinitionException: Unable > to validate xml > <stack trace taken out for brevity> > Caused by: org.xml.sax.SAXParseException: cvc-complex-type.3.2.2: Attribute > 'update-strategy' is not allowed to appear in element > 'cm:property-placeholder'. > <stack trace taken out for brevity> > > > When I change the xmlns to http://www.osgi.org/xmlns/blueprint/v1.1.0 I get > the following: > > 10:58:21,973 | INFO | mix-5.1.2/deploy | BlueprintContainerImpl > | 7 - org.apache.aries.blueprint.core - 1.4.0 | Bundle ConfigTest is > waiting for namespace handlers [http://www.osgi.org/xmlns/blueprint/v1.1.0] > > > I used the following in my blueprint.xml file and Jetty stays bound to port > 80 no matter what I change in the etc/my.config.cfg file. ServiceMix does > log that a change to the config file has been made as well. > > <?xml version="1.0" encoding="UTF-8"?> > <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:camel=" > http://camel.apache.org/schema/blueprint" > xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.0.0" > xsi:schemaLocation=" > http://www.osgi.org/xmlns/blueprint/v1.0.0 > http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd > http://camel.apache.org/schema/blueprint > http://camel.apache.org/schema/blueprint/camel-blueprint.xsd"> > > <cm:property-placeholder > persistent-id="my.config"> > <cm:default-properties> > <cm:property name="port" value="9999" /> > </cm:default-properties> > </cm:property-placeholder> > > <camelContext id="blueprintContext" trace="false" > xmlns="http://camel.apache.org/schema/blueprint"> > <route id="jettyTesting"> > <from uri="jetty:http://0.0.0.0:${port}/hello" /> > <to uri="log:OUTPUT" /> > <camel:setBody><camel:constant>Hello World</camel:constant></camel:setBody> > </route> > </camelContext> > > </blueprint> > > > On Thu, Oct 9, 2014 at 9:45 AM, Jean-Baptiste Onofré <[email protected]> > wrote: > >> Yes, with the reload strategy, the config changes are taken on the fly. >> >> Regards >> JB >> >> >> On 10/09/2014 03:30 PM, Mark Webb wrote: >> >>> Thanks for the information all. I have been messing with the example >>> Jean-Baptiste mentioned. My one question on this approach is, is it >>> possible to change the config file and have the bundle auto-restart with >>> the new configuration info or do I always have to restart the bundle? If >>> I >>> have to restart the bundle (which isn't a big deal), will all the objects >>> in the blueprint file get recreated since objects defined in the blueprint >>> are singleton in nature. >>> >>> >>> >>> On Thu, Oct 9, 2014 at 8:15 AM, Jean-Baptiste Onofré <[email protected]> >>> wrote: >>> >>> Hi Mark, >>>> >>>> ConfigAdmin is probably the easiest. >>>> >>>> For instance, your blueprint can looks like: >>>> >>>> <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" >>>> >>>> xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.0.0"> >>>> >>>> <cm:property-placeholder persistent-id="my.config" >>>> update-strategy="reload"> >>>> <cm:default-properties> >>>> <cm:property name="port" value="9999"/> >>>> </cm:default-properties> >>>> </cm:property-placeholder> >>>> >>>> <camelContext xmlns="http://camel.apache.org/schemas/blueprint"> >>>> <route> >>>> <from uri="jetty://0.0.0.0:${port}"/> >>>> .... >>>> </route> >>>> </camelContext> >>>> >>>> </blueprint> >>>> >>>> You can provide a file etc/my.config.cfg containing the port value. >>>> >>>> Regards >>>> JB >>>> >>>> >>>> On 10/08/2014 08:16 PM, Mark Webb wrote: >>>> >>>> I am building a camel blueprint-based bundle to deploy in ServiceMix. >>>>> This >>>>> bundle will listen on a port and receive data to be processed by other >>>>> bundles. I would like to make the port and the destination (probably a >>>>> JMS >>>>> queue) configurable. What is the best way to go about doing this? >>>>> >>>>> The site where the bundle(s) get deployed will not have a development >>>>> environment so that's out of the question. >>>>> >>>>> Thanks, >>>>> Mark >>>>> >>>>> >>>>> -- >>>> Jean-Baptiste Onofré >>>> [email protected] >>>> http://blog.nanthrax.net >>>> Talend - http://www.talend.com >>>> >>>> >>> >> -- >> Jean-Baptiste Onofré >> [email protected] >> http://blog.nanthrax.net >> Talend - http://www.talend.com >>
