9.6. 기능에 OSGi 구성 추가

애플리케이션에서 OSGi 구성 관리 서비스를 사용하는 경우 기능 정의의 config 하위 요소를 사용하여 이 서비스에 대한 구성 설정을 지정할 수 있습니다. 예를 들어 prefix 속성 값이 MyTransform 임을 지정하려면 기능 구성에 다음 config 하위 요소를 추가합니다.

<?xml version="1.0" encoding="UTF-8"?>
<features name="MyFeaturesRepo">
  <feature name="example-camel-bundle">
    <config name="org.fusesource.fuseesb.example">
      prefix=MyTransform
    </config>
  </feature>
</features>

여기서 config 요소의 name 속성이 속성 설정의 영구 ID 를 지정합니다. 여기서 영구 ID는 속성 이름의 이름 범위 역할을 합니다. config 요소의 내용은 Java 속성 파일과 동일한 방식으로 구문 분석됩니다.

구성 요소의 설정은 다음과 같이 InstallDir/etc 디렉터리에 있는 Java 속성 파일의 설정으로 재정의할 수 있습니다.

InstallDir/etc/org.fusesource.fuseesb.example.cfg

실제로 이전 구성 속성을 사용하는 방법의 예로 OSGi 구성 속성에 액세스하는 다음 블루프린트 XML 파일을 고려하십시오.

<?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:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0">

    <!-- osgi blueprint property placeholder -->
    <cm:property-placeholder id="placeholder"
                             persistent-id="org.fusesource.fuseesb.example">
        <cm:default-properties>
            <cm:property name="prefix" value="DefaultValue"/>
        </cm:default-properties>
    </cm:property-placeholder>

    <bean id="myTransform" class="org.fusesource.fuseesb.example.MyTransform">
      <property name="prefix" value="${prefix}"/>
    </bean>

</blueprint>

이 블루프린트 XML 파일이 example-camel-bundle 번들에 배포되면 속성 참조 ${prefix} 가 feature 리포지토리의 config 요소에 의해 지정되는 MyTransform 값으로 교체됩니다.