Actually, the error is coming from a different Blueprint context/bundle, not the one I pasted below. This other context does not reference this property, so this is very strange.
How is this possible: Blueprint context A depends on a service exposed by Blueprint B. Blueprint B uses a property XXX. Blueprint B deploys without errors. Property XX has default value. Blueprint A does not reference/use property XXX. Blueprint A produces the error below. Persistent ID in A and B are different, It looks like the dependency on property XXX from B is leaking to A. Again, this same code deploys fine with Camel 2.17.4, not so with 2.18.x Any ideas? Best regards, Alex soto > On Jan 10, 2017, at 6:05 PM, Alex Soto <alex.s...@envieta.com> wrote: > > Hello, > > Starting with Camel 2.18.0, and including 2.18.1, I am getting this error > during deployment of my Blueprint routes. The exact same blueprint deploys > fine with version 2.17.4, so it looks like something was changed in 2.18.x > that is causing this. Here is a fragment of my blueprint xml: > > <?xml version="1.0" encoding="UTF-8"?> > <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0 > <http://www.osgi.org/xmlns/blueprint/v1.0.0>" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance > <http://www.w3.org/2001/XMLSchema-instance>" > xmlns:camel="http://camel.apache.org/schema/blueprint > <http://camel.apache.org/schema/blueprint>" > xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0 > <http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0>" > xmlns:ext="http://aries.apache.org/blueprint/xmlns/blueprint-ext/v1.0.0 > <http://aries.apache.org/blueprint/xmlns/blueprint-ext/v1.0.0>" > xsi:schemaLocation=" > http://www.osgi.org/xmlns/blueprint/v1.0.0 > <http://www.osgi.org/xmlns/blueprint/v1.0.0> > https://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd > <https://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd>"> > > <ext:property-placeholder /> > > <cm:property-placeholder persistent-id="http.server" > update-strategy="reload" placeholder-prefix="#{" placeholder-suffix="}" > > <cm:default-properties> > <cm:property name="la.keystore.password" > value="keystore"/> > <cm:property name="la.keymanager.password" > value="keystore"/> > <cm:property name="la.keystore.file" > value="${user.home}/.la/${la.id}/keystore.jks"/> > <cm:property name="la.keystore.type" value="JKS"/> > <cm:property name="la.keystore.provider" value="SUN"/> > > <cm:property name="la.trustore.file" > value="${user.home}/.la/${la.id}/truststore.jks"/> > <cm:property name="la.truststore.password" > value="truststore"/> > <cm:property name="la.truststore.type" value="JKS"/> > <cm:property name="la.truststore.provider" value="SUN"/> > </cm:default-properties> > </cm:property-placeholder> > > <camel:sslContextParameters id="sslParams"> > <camel:keyManagers keyPassword="{{la.keystore.password}}"> > <camel:keyStore resource="{{la.keystore.file}}" > password="{{la.keystore.password}}" > type="{{la.keystore.type}}" > provider="{{la.keystore.provider}}" /> > </camel:keyManagers> > <camel:trustManagers> > <camel:keyStore > resource="{{la.trustore.file}}" > password="{{la.truststore.password}}" > type="{{la.truststore.type}}" > provider="{{la.truststore.provider}}" /> > </camel:trustManagers> > </camel:sslContextParameters> > > And here is the stack trace: > > > 2017-01-10 17:39:57,974 | ERROR | rint Extender: 2 | BlueprintCamelContext > | 48 - org.apache.camel.camel-blueprint - 2.18.0 | Error occurred > during starting Camel: CamelContext(revocation-scheduler) due Error parsing > property value: {{la.keystore.password}} > org.apache.camel.RuntimeCamelException: Error parsing property value: > {{la.keystore.password}} > at > org.apache.camel.util.jsse.JsseParameters.parsePropertyValue(JsseParameters.java:76) > at > org.apache.camel.util.jsse.KeyManagersParameters.createKeyManagers(KeyManagersParameters.java:105) > at > org.apache.camel.util.jsse.SSLContextParameters.createSSLContext(SSLContextParameters.java:296) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native > Method)[:1.8.0_45] > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)[:1.8.0_45] > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.8.0_45] > at java.lang.reflect.Method.invoke(Method.java:497)[:1.8.0_45] > at > org.apache.aries.proxy.impl.ProxyHandler$1.invoke(ProxyHandler.java:54) > at > org.apache.aries.proxy.impl.ProxyHandler.invoke(ProxyHandler.java:119) > at > org.apache.camel.util.jsse.$SSLContextParameters1910699777.createSSLContext(Unknown > Source) > at > org.apache.camel.component.netty4.http.HttpClientInitializerFactory.createSSLContext(HttpClientInitializerFactory.java:134) > at > org.apache.camel.component.netty4.http.HttpClientInitializerFactory.<init>(HttpClientInitializerFactory.java:59) > at > org.apache.camel.component.netty4.http.HttpClientInitializerFactory.createPipelineFactory(HttpClientInitializerFactory.java:72) > at > org.apache.camel.component.netty4.NettyProducer.doStart(NettyProducer.java:134) > at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61) > at > org.apache.camel.impl.SynchronousDelegateProducer.start(SynchronousDelegateProducer.java:66) > at > org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:75) > at > org.apache.camel.impl.DeferServiceStartupListener.onCamelContextStarted(DeferServiceStartupListener.java:49) > at > org.apache.camel.impl.DefaultCamelContext.safelyStartRouteServices(DefaultCamelContext.java:3529)[51:org.apache.camel.camel-core:2.18.0] > at > org.apache.camel.impl.DefaultCamelContext.doStartOrResumeRoutes(DefaultCamelContext.java:3308)[51:org.apache.camel.camel-core:2.18.0] > at > org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:3162)[51:org.apache.camel.camel-core:2.18.0] > at > org.apache.camel.impl.DefaultCamelContext.access$000(DefaultCamelContext.java:182)[51:org.apache.camel.camel-core:2.18.0] > at > org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:2957) > at > org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:2953) > at > org.apache.camel.impl.DefaultCamelContext.doWithDefinedClassLoader(DefaultCamelContext.java:2976)[51:org.apache.camel.camel-core:2.18.0] > at > org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:2953)[51:org.apache.camel.camel-core:2.18.0] > at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61) > at > org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:2920)[51:org.apache.camel.camel-core:2.18.0] > at > org.apache.camel.blueprint.BlueprintCamelContext.start(BlueprintCamelContext.java:185) > at > org.apache.camel.blueprint.BlueprintCamelContext.maybeStart(BlueprintCamelContext.java:217) > at > org.apache.camel.blueprint.BlueprintCamelContext.serviceChanged(BlueprintCamelContext.java:155) > at > org.apache.felix.framework.EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:990) > at > org.apache.felix.framework.EventDispatcher.fireEventImmediately(EventDispatcher.java:838) > at > org.apache.felix.framework.EventDispatcher.fireServiceEvent(EventDispatcher.java:545) > at org.apache.felix.framework.Felix.fireServiceEvent(Felix.java:4557) > at org.apache.felix.framework.Felix.registerService(Felix.java:3549) > at > org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:348) > at > org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:355) > at > org.apache.camel.blueprint.BlueprintCamelContext.init(BlueprintCamelContext.java:105) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native > Method)[:1.8.0_45] > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)[:1.8.0_45] > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.8.0_45] > at java.lang.reflect.Method.invoke(Method.java:497)[:1.8.0_45] > at > org.apache.aries.blueprint.utils.ReflectionUtils.invoke(ReflectionUtils.java:299)[38:org.apache.aries.blueprint.core:1.7.1] > at > org.apache.aries.blueprint.container.BeanRecipe.invoke(BeanRecipe.java:980)[38:org.apache.aries.blueprint.core:1.7.1] > at > org.apache.aries.blueprint.container.BeanRecipe.runBeanProcInit(BeanRecipe.java:736)[38:org.apache.aries.blueprint.core:1.7.1] > at > org.apache.aries.blueprint.container.BeanRecipe.internalCreate2(BeanRecipe.java:848)[38:org.apache.aries.blueprint.core:1.7.1] > at > org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.java:811)[38:org.apache.aries.blueprint.core:1.7.1] > at > org.apache.aries.blueprint.di.AbstractRecipe$1.call(AbstractRecipe.java:79)[38:org.apache.aries.blueprint.core:1.7.1] > at java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0_45] > at > org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:88)[38:org.apache.aries.blueprint.core:1.7.1] > at > org.apache.aries.blueprint.container.BlueprintRepository.createInstances(BlueprintRepository.java:255)[38:org.apache.aries.blueprint.core:1.7.1] > at > org.apache.aries.blueprint.container.BlueprintRepository.createAll(BlueprintRepository.java:186)[38:org.apache.aries.blueprint.core:1.7.1] > at > org.apache.aries.blueprint.container.BlueprintContainerImpl.instantiateEagerComponents(BlueprintContainerImpl.java:724)[38:org.apache.aries.blueprint.core:1.7.1] > at > org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:411)[38:org.apache.aries.blueprint.core:1.7.1] > at > org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:276)[38:org.apache.aries.blueprint.core:1.7.1] > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)[:1.8.0_45] > at java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0_45] > at > org.apache.aries.blueprint.container.ExecutorServiceWrapper.run(ExecutorServiceWrapper.java:106)[38:org.apache.aries.blueprint.core:1.7.1] > at > org.apache.aries.blueprint.utils.threading.impl.DiscardableRunnable.run(DiscardableRunnable.java:48)[38:org.apache.aries.blueprint.core:1.7.1] > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)[:1.8.0_45] > at java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0_45] > at > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)[:1.8.0_45] > at > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)[:1.8.0_45] > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[:1.8.0_45] > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[:1.8.0_45] > at java.lang.Thread.run(Thread.java:745)[:1.8.0_45] > Caused by: java.lang.IllegalArgumentException: Property with key > [la.keystore.password] not found in properties from text: > {{la.keystore.password}} > at > org.apache.camel.component.properties.DefaultPropertiesParser$ParsingContext.getPropertyValue(DefaultPropertiesParser.java:268) > at > org.apache.camel.component.properties.DefaultPropertiesParser$ParsingContext.readProperty(DefaultPropertiesParser.java:154) > at > org.apache.camel.component.properties.DefaultPropertiesParser$ParsingContext.doParse(DefaultPropertiesParser.java:113) > at > org.apache.camel.component.properties.DefaultPropertiesParser$ParsingContext.parse(DefaultPropertiesParser.java:97) > at > org.apache.camel.component.properties.DefaultPropertiesParser.parseUri(DefaultPropertiesParser.java:62) > at > org.apache.camel.component.properties.PropertiesComponent.parseUri(PropertiesComponent.java:209) > at > org.apache.camel.component.properties.PropertiesComponent.parseUri(PropertiesComponent.java:160) > at > org.apache.camel.impl.DefaultCamelContext.resolvePropertyPlaceholders(DefaultCamelContext.java:2348)[51:org.apache.camel.camel-core:2.18.0] > at > org.apache.camel.util.jsse.JsseParameters.parsePropertyValue(JsseParameters.java:74) > > > > Thanks for any help or pointers. > Best regards, > Alex soto > >