OSGi 컴포지트 번들

컴포지트 번들은 일관된 동작을 보장하도록 번들을 집합체로 그룹화합니다. 컴포지트 번들은 작업공간 또는 대상 플랫폼 밖에 있는 번들에 대한 참조 또는 번들을 포함합니다. 컴포지트 번들은 특정 버전에서 공유되는 번들 세트의 일관된 동작을 보장합니다.

컴포지트 번들 아카이브(CBA)는 공유 번들을 함께 집합체로 그룹화합니다. CBA는 내부 번들 저장소에 호스팅된 OSGi 번들 또는 참조 번들을 포함할 수 있습니다. 공유 번들 세트에서 일관된 동작을 보장하려는 경우 CBA를 작성하십시오. 특정 버전의 해당 번들 세트를 애플리케이션에 연결하도록 CBA를 사용할 수 있습니다.

CBA는 파일 확장자가 .cba인 아카이브 파일입니다. 여기에는 CBA 및 선택적으로 저장소를 배정하는 일부 OSGi 번들을 정의하는 컴포지트 Manifest META-INF/COMPOSITEBUNDLE.MF가 포함됩니다. CBA에서 포함하거나 참조하는 번들은 EBA와 반대로 정확한 버전으로 정의됩니다. EBA의 경우 번들은 버전 범위로 전의됩니다.

컴포지트 번들은 런타임의 내부 번들 저장소에 설치됩니다. CBA가 직접 OSGi 번들을 포함하는 경우 이 번들은 개별적으로 업로드된 경우와 같이 저장소에 설치됩니다. 또한 CBA는 번들 저장소에 추가됩니다. CBA가 OSGi 번들을 참조하는 경우, 이 번들은 내부 번들 저장소에 있어야 합니다.

내부 번들 저장소에 CBA를 설치한 후에 애플리케이션이 해석되면 번들을 사용하려는 모든 애플리케이션에서 해당 번들을 사용할 수 있습니다. 필수 패키지 또는 서비스가 번들 및 CBA의 동일한 버전에서 사용 가능한 경우 프로비저닝 프로세스는 CBA에서 패키지 또는 서비스를 선택합니다.

CBA가 엔터프라이즈 번들 아카이브(EBA) 파일과 다른 점은 다음과 같습니다.

OSGi 컴포지트 번들 Manifest 파일

이 파일에서 메타데이터는 다음과 같은 핵심 특성을 포함합니다.
Manifest-Version
Manifest 파일의 버전을 설명합니다.
CompositeBundle-ManifestVersion
컴포지트 번들의 버전을 설명합니다.
Bundle-Name
컴포지트 번들의 판독 가능한 이름을 제공합니다.
값을 지정하지 않으면 기본값은 컴포지트 번들 기호 이름입니다.
Bundle-SymbolicName
프레임워크에서 컴포지트 번들을 고유하게 식별합니다. Bundle-Name 헤더가 필요한 상황을 대체하지는 않습니다.
Bundle-Version
컴포지트 번들의 버전을 설명하고 컴포지트 번들의 여러 버전을 동일한 프레임워크 인스턴스에서 동시에 활성화할 수 있게 합니다.
CompositeBundle-Content
번들 및 컴포지트 번들의 번들 단편으로 구성된 목록입니다. 번들 및 단편은 모두 배치에 대해 사용 가능해야 하며 cba 파일에 포함되거나 로컬 번들 저장소에 있어야 합니다. 번들 및 단편에는 정확한 버전 번호가 있어야 합니다. 해당 컨텐츠의 버전이 서로 다른 동일한 컴포지트 번들이 필요한 경우 각 사용에 대해 버전 하나씩, 컴포지트 번들의 서로 다른 버전을 작성해야 합니다.
형식은 쉼표로 구분된 모듈 선언 목록입니다. 여기서, 각 모듈 선언에서 사용하는 형식은 다음과 같습니다.
<module identifier>;<directives>;<attributes>
CompositeBundle-Content 헤더에는 다음 속성이 포함됩니다.
version
모듈 버전은 버전 범위에 대한 OSGi 구문을 사용하여 지정됩니다. 버전은 정확한 범위로 지정되어야 합니다(예: "[1.0.0,1.0.0]").
Import-Package
번들 분석을 위해 OSGi 프레임워크에서 사용하는 번들의 외부 종속성을 선언합니다. 각 패키지의 특정 버전 또는 버전 범위를 선언할 수 있습니다.
이 특성을 사용하여 런타임에서 번들을 가져오려는 패키지 이름을 지정하십시오. 이 특성에서 번들에 필요한 패키지를 지정하지 않으면 번들을 로드할 때 NoClassDefFound 예외가 발생할 수 있습니다.
NoteColonSymbol 또한 패키지를 포함하는 번들의 Export-Package 특성에서 Import-Package를 사용하여 가져오려는 패키지를 지정해야 합니다.
Export-Package
번들 외부에서 볼 수 있는 패키지를 선언합니다. 여기에 선언되지 않은 패키지는 번들에서만 볼 수 있습니다.
이 특성을 사용하여 런타임에 번들을 내보내려는 패키지 이름을 지정하십시오. 이 특성의 다른 번들에 필요한 패키지를 지정하지 않는 경우 종속 번들이 해결되지 않을 수도 있습니다.
CompositeBundle-ExportService

컴포지트 번들에 있으며 컴포지트 번들의 외부에서 사용하기 위해 내보낼 수 있는 서비스를 식별하는 선택적 필터 및 서비스 인터페이스 이름 목록입니다. 서비스 구현을 내보낸 인터페이스가 컴포지트 번들의 외부에서 표시되는 경우 컴포지트 번들 외부에서 이 인터페이스를 사용할 수 있습니다.

형식은 쉼표로 구분된 서비스 목록으로, 서비스 인터페이스 이름 및 그 뒤에 속성 또는 지시문이 옵니다. CompositeBundle-ExportService 헤더에는 다음 속성이 포함됩니다.
filter
OSGi 서비스 필터입니다.
CompositeBundle-ImportService

컴포지트 번들의 컨텐츠가 컴포지트 번들의 외부에서 사용할 서비스를 식별하는 선택적 필터 및 서비스 인터페이스 이름 목록입니다. 런타임 시 이러한 서비스가 하나 이상 있어야 합니다.

형식은 쉼표로 구분된 서비스 목록으로, 서비스 인터페이스 이름 및 그 뒤에 속성 또는 지시문이 옵니다. CompositeBundle-ImportService 헤더에는 다음 속성이 포함됩니다.
filter
OSGi 서비스 필터입니다.
주제 유형을 표시하는 아이콘 개념 주제
Information Center의 이용 약관 | 피드백

시간소인 아이콘 마지막 업데이트 날짜: 2014-05-22

파일 이름: ccba.html