264.17. Camel 경로에 블루프린트 속성 자리 표시자 사용
Camel 2.7부터 사용 가능
Camel은 속성 자리 표시자 서비스도 제공하는 블루프린트를 지원합니다. Camel은 구성에 대한 규칙을 지원하므로 다음과 같이 XML 파일에서 OSGi 블루프린트 속성 자리 표시자를 정의하는 것입니다.
<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="result" value="mock:result"/>
</cm:default-properties>
</cm:property-placeholder>
<camelContext xmlns="http://camel.apache.org/schema/blueprint">
<!-- in the route we can use {{ }} placeholders which will lookup in blueprint
as Camel will auto detect the OSGi blueprint property placeholder and use it -->
<route>
<from uri="direct:start"/>
<to uri="mock:foo"/>
<to uri="{{result}}"/>
</route>
</camelContext>
</blueprint>
264.17.1. Camel 경로에서 OSGi 블루프린트 속성 자리 표시자 사용 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 Camel은 OSGi 블루프린트 속성 자리 표시자 서비스를 감지하고 사용합니다. < camelContext > 정의에서 특성을 useBlueprintPropertyResolver 를 false로 설정하여 비활성화할 수 있습니다.
264.17.2. 자리 표시자 구문 정보 링크 복사링크가 클립보드에 복사되었습니다!
Camel 경로에서 자리 표시자 {{ 및 }} 에 Camel 구문을 사용하여 OSGi 블루프린트에서 값을 조회하는 방법을 확인하십시오.
자리 표시자의 블루프린트 구문은 ${ } 입니다. 따라서 < ;camelContext> 외부에 ${ } 구문을 사용해야 합니다. 여기서 < camelContext> 내부에 {{ 및 }} 구문을 사용해야 합니다.
OSGi 블루프린트를 사용하면 구문을 구성할 수 있으므로 원하는 경우 실제로 정렬할 수 있습니다.
ID로 특정 OSGi 블루프린트 속성 자리 표시자를 명시적으로 참조할 수도 있습니다. 이를 위해 아래 예제와 같이 Camel의 & lt;propertyPlaceholder >를 사용해야 합니다.
<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>