Reputation: 87
When i am trying to resolve few properties as xs:int values using prop namespace(http://camel.apache.org/schema/placeholder) as explained in camel documentation (http://camel.apache.org/using-propertyplaceholder.html) i am facing below issue where bundle goes to "GRACEPERIOD" when trying to resolve the namespace.
09:08:35,325 | DEBUG | e-1.1.0-thread-1 | BlueprintContainerImpl | 15 - org.apache.aries.blueprint.core - 1.0.1.redhat-60024 | Running blueprint container for bundle MyBundle
in state WaitForNamespaceHandlers
09:08:35,325 | INFO | e-1.1.0-thread-1 | BlueprintContainerImpl | 15 - org.apache.aries.blueprint.core - 1.0.1.redhat-60024 | Bundle MyBundle is waiting for namespace hand
lers [http://camel.apache.org/schema/placeholder]
09:08:35,325 | DEBUG | e-1.1.0-thread-1 | BlueprintEventDispatcher | 15 - org.apache.aries.blueprint.core - 1.0.1.redhat-60024 | Sending blueprint container event BlueprintEvent[type=GRACE_
PERIOD, dependencies=[(&(objectClass=org.apache.aries.blueprint.NamespaceHandler)(osgi.service.blueprint.namespace=http://camel.apache.org/schema/placeholder))]] for bundle MyBundle
09:08:35,325 | DEBUG | nt Dispatcher: 1 | BlueprintListener | 48 - org.apache.karaf.shell.osgi - 2.3.0.redhat-60024 | Blueprint app state changed to GracePeriod for bundle 284
Below is the blueprint xml i am using
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:camel="http://camel.apache.org/schema/blueprint"
xmlns:fn="http://www.w3.org/2005/xpath-functions" xmlns:prop="http://camel.apache.org/schema/placeholder"
xsi:schemaLocation="
http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd
http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.0.0 http://aries.apache.org/schemas/blueprint-cm/blueprint-cm-1.0.0.xsd
http://camel.apache.org/schema/blueprint http://camel.apache.org/schema/blueprint/camel-blueprint.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
<cm:property-placeholder id="id2" persistent-id="protectedproperties"
placeholder-prefix="$(" placeholder-suffix=")"/>
<cm:property-placeholder id="id1" persistent-id="instance" placeholder-prefix="${" placeholder-suffix="}"/>
<camel:camelContext id="blueprintContext" trace="false"
xmlns="http://camel.apache.org/schema/blueprint" streamCache="true"
handleFault="false" useBreadcrumb="false" useBlueprintPropertyResolver="false">
<!-- Disable jmxAgent to improve performance. This needs to be enabled
only when the flow needs to be seen via hawtio -->
<camel:jmxAgent disabled="true" />
<camel:threadPoolProfile
id="changedProfile"
defaultProfile="true"
prop:poolSize="camel.thread.poolSize"
prop:maxPoolSize="camel.thread.maxPoolSize"
prop:maxQueueSize="camel.thread.maxQueueSize"/>
</camel:camelContext>
Please help me find how to resolve the namespace in blueprint.
Versions used:
Camel Core : 2.10.0.redhat-60024
Camel Blueprint : 2.10.0.redhat-60024
Jboss Fuse : 6.0.0.redhat-024
Upvotes: 2
Views: 500
Reputation: 4695
I think it's never going to work in your setup.
The page you linked using propertyplaceholder clearly states:
Using Property Placeholders for Any Kind of Attribute in the XML DSL
Available as of Camel 2.7
If you use OSGi Blueprint then this only works from 2.11.1 or 2.10.5 on.
Your old version of JBoss Fuse provides 2.10.0
You should upgrade to the latest JBoss Fuse.
At this time the latest version is 6.3.0 with Camel 2.17.0
Upvotes: 1