9.3. 사용자 정의 기능 리포지토리에 기능 추가

사용자 지정 기능 리포지토리에 기능을 추가하려면 새 기능 요소를 루트 기능 요소의 자식으로 삽입합니다. 번들 하위 요소를 삽입하여 기능에 속하는 여러 번들을 나열할 수 있습니다. 예를 들어 단일 번들이 포함된 example-camel-bundle 이라는 기능을 추가하려면 C:\Projects\camel-bundle\target\camel-bundle-1.0-SNAPSHOT.jar 에서는 다음과 같이 feature 요소를 추가합니다.

<?xml version="1.0" encoding="UTF-8"?>
<features name="MyFeaturesRepo">
  <feature name="example-camel-bundle">
    <bundle>file:C:/Projects/camel-bundle/target/camel-bundle-1.0-SNAPSHOT.jar</bundle>
  </feature>
</features>

번들 요소의 내용은 유효한 URL일 수 있으며 번들 위치를 지정합니다( 15장. URL 처리기참조). 선택적으로 feature 요소에서 version 속성을 지정하여 0이 아닌 버전을 기능에 할당할 수 있습니다(예: features:install 명령의 선택적 인수로 버전을 지정할 수 있습니다).

기능 서비스가 새 기능 항목을 성공적으로 구문 분석하는지 확인하려면 다음 콘솔 명령 쌍을 입력합니다.

JBossFuse:karaf@root> features:refreshurl
JBossFuse:karaf@root> features:list
...
[uninstalled] [0.0.0                 ] example-camel-bundle                 MyFeaturesRepo
...

features:list 명령은 일반적으로 다소 긴 기능 목록을 생성하지만, 목록을 다시 스크롤하여 새 기능(이 경우 example-camel-bundle)에 대한 항목을 찾을 수 있어야 합니다. features:refreshurl 명령은 커널이 모든 기능 리포지토리를 다시 읽도록 합니다. 이 명령을 실행하지 않은 경우 커널은 리포지토리에 대한 최근 변경 사항을 인식하지 못합니다(특히 새 기능이 목록에 표시되지 않음).

긴 기능 목록을 스크롤하지 않으려면 다음과 같이 example-camel-bundle 기능에 대해 grep 을 실행할 수 있습니다.

JBossFuse:karaf@root> features:list | grep example-camel-bundle
[uninstalled] [0.0.0                 ] example-camel-bundle                 MyFeaturesRepo

grep 명령(표준 UNIX 패턴 일치 유틸리티)이 쉘에 빌드되므로 이 명령은 Windows 플랫폼에서도 작동합니다.