Camel 경로에서 Camel 구문의 자리 표시자 {{ 및 }} 에 대해 Camel 구문을 사용하는 방법을 확인할 수 있습니다. 이를 통해 OSGi 청사진의 값을 조회할 수 있습니다.
자리 표시자의 청사진 구문은 ${ } 입니다. 따라서 < camelContext> 외부에서는 ${ } 구문을 사용해야 합니다. < camelContext> 내부에서와 같이 {{ 및}} 구문을 사용해야 합니다.
OSGi 청사진을 사용하면 구문을 구성할 수 있으므로 원하는 경우 해당 구문을 실제로 조정할 수 있습니다.
ID로 특정 OSGi 청사진 속성 자리 표시자를 명시적으로 참조할 수도 있습니다. 아래 예와 같이 Camel의 < propertyPlaceholder& gt;를 사용해야 합니다.
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.0.0"
xsi:schemaLocation="
http://www.osgi.org/xmlns/blueprint/v1.0.0 https://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd">
<!-- OSGI blueprint property placeholder -->
<cm:property-placeholder id="myblueprint.placeholder" persistent-id="camel.blueprint">
<!-- list some properties as needed -->
<cm:default-properties>
<cm:property name="prefix.result" value="mock:result"/>
</cm:default-properties>
</cm:property-placeholder>
<camelContext xmlns="http://camel.apache.org/schema/blueprint">
<!-- using Camel properties component and refer to the blueprint property placeholder by its id -->
<propertyPlaceholder id="properties" location="blueprint:myblueprint.placeholder"
prefixToken="[[" suffixToken="]]"
propertyPrefix="prefix."/>
<!-- in the route we can use {{ }} placeholders which will lookup in blueprint -->
<route>
<from uri="direct:start"/>
<to uri="mock:foo"/>
<to uri="[[result]]"/>
</route>
</camelContext>
</blueprint>
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.0.0"
xsi:schemaLocation="
http://www.osgi.org/xmlns/blueprint/v1.0.0 https://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd">
<!-- OSGI blueprint property placeholder -->
<cm:property-placeholder id="myblueprint.placeholder" persistent-id="camel.blueprint">
<!-- list some properties as needed -->
<cm:default-properties>
<cm:property name="prefix.result" value="mock:result"/>
</cm:default-properties>
</cm:property-placeholder>
<camelContext xmlns="http://camel.apache.org/schema/blueprint">
<!-- using Camel properties component and refer to the blueprint property placeholder by its id -->
<propertyPlaceholder id="properties" location="blueprint:myblueprint.placeholder"
prefixToken="[[" suffixToken="]]"
propertyPrefix="prefix."/>
<!-- in the route we can use {{ }} placeholders which will lookup in blueprint -->
<route>
<from uri="direct:start"/>
<to uri="mock:foo"/>
<to uri="[[result]]"/>
</route>
</camelContext>
</blueprint>
Copy to ClipboardCopied!Toggle word wrapToggle overflow