Liberty 기능을
수동으로 작성하고 이를 Liberty에 설치할 수 있습니다.
이 태스크 정보
기능은 단일 OSGi 번들과 기능 Manifest 파일로 구성될 수 있습니다.
이 예제는 기본 애플리케이션 클래스 경로에서 외부 패키지를 볼 수 있도록
라이브러리를 애플리케이션에 사용 가능하도록 만듭니다.
기능 Manifest를 ${wlp.user.dir}/extension/lib/features 디렉토리에 복사하고
OSGi 번들을 ${wlp.user.dir}/extension/lib 디렉토리에 복사하여, 기능을 Liberty에 설치할 수 있습니다. 그러면 server.xml 파일의 기능을 사용할 수 있습니다.
기능 Manifest 파일의
형식에 대한 자세한 정보는 Liberty 기능 Manifest 파일의 내용을 참조하십시오.
이 예제는 Liberty 기능을 수동으로 구성하는 방법을 설명합니다. 또는 WebSphere®
Application Server Developer Tools를 사용할 수 있습니다. 개발자 도구를 사용한 Liberty 기능 작성의 내용을 참조하십시오.
프로시저
Liberty 기능을 수동으로 작성하려면 다음 단계를 완료하십시오.
- 예를 들어, 애플리케이션을 노출하려는 Java™ 패키지를 내보내려면,
Java 클래스를 포함하는 OSGi 번들과 적절한 OSGi 헤더가 있는
번들 Manifest 파일을 작성하십시오. Bundle-SymbolicName은 유일한 필수 헤더입니다. 이 항목은 역방향의 도메인 이름 지정 규칙에 기반하여
번들에 대한 고유 ID를 지정합니다. 번들의 버전을 지정하는 것이 좋으며
이 예제에서는 일부 Java 패키지를 애플리케이션용으로 내보냅니다.
Bundle-SymbolicName: com.usr.samplebundle
Bundle-Version: 1.0.1
Export-Package: com.usr.samplebundle.pkg1; version="1.0.0", com.usr.samplebundle.pkg2; version="1.0.1"
- jar 명령을 사용하여 Java 클래스와 기능 Manifest 파일을
패키징하십시오. 예:
jar cfm samplebundle.jar MANIFEST.Mf *.class
- 런타임 환경에 대해 기능을 설명하는 feature-name.mf 기능 Manifest 파일을
작성하십시오.
- 필수 Manifest 헤더를 제공하십시오.
- Subsystem-SymbolicName - 기능의 ID와
가시성을 지정합니다.
- Subsystem-Content - 기능을 구성하는
파일을 찾습니다.
- IBM-Feature-Version - 런타임 환경에
필요한 기능 지원 버전을 식별합니다.
- 우수 사례: 서브시스템 스펙의 적용 가능한
버전(Subsystem-ManifestVersion), 기능의
버전(Subsystem-Version), 기능의 축약형 이름(IBM-ShortName)을
표시하는 선택적 Manifest 헤더를 추가하십시오.
이러한 값을 지정하면 나중에 기능을 전개하는 데
도움이 됩니다.
- IBM-API-Package 헤더에서, 애플리케이션에 대한
기본 클래스 로더에 노출할 패키지를 나열하십시오.
- 옵션: Liberty 기능을 작성하는 경우,
사용자는 이 기능을 사용자 제품 확장기능에 설치하며 사용자 제품 확장기능에 설치된 다른 기능은
이 기능의 패키지에 액세스할 수 있습니다. 하나 이상의 SPI 패키지를 다른 제품 확장기능의
기능에서 사용할 수 있도록 하려면 IBM-SPI-Package 헤더의
패키지를 나열하십시오.
Subsystem-ManifestVersion: 1.0
Subsystem-SymbolicName: com.example.myfeature.sample-1.0; visibility:=public
Subsystem-Version: 1.0.0.qualifier
Subsystem-Type: osgi.subsystem.feature
Subsystem-Content: samplebundle; version="[1,1.0.100)"
IBM-Feature-Version: 2
IBM-API-Package: com.usr.samplebundle.pkg1; type="api",
com.usr.samplebundle.pkg2; type="api"
IBM-SPI-Package: com.sample.myservice.spi;
IBM-ShortName: sample-1.0
- 번들을 ${wlp.user.dir}/extension/lib 디렉토리로 복사하십시오.
- 기능 Manifest를 ${wlp.user.dir}/extension/lib/features 디렉토리로 복사하십시오.
- 기능 Manifest 파일에 Subsystem-Name 및 Subsystem-Description
헤더를 정의하고 값을 자국어로 지원한 경우 Subsytem-Localization 헤더에
지정된 자국어 지원 파일을 ${wlp.user.dir}/extension/lib/features/l10n
디렉토리에 복사하십시오.
결과
기능이
Liberty에 설치된 후에는 기능 이름을
server.xml 파일의 구성된 기능 목록에 추가할 수 있습니다. 예:
<featureManager>
<feature>usr:sample-1.0</feature>
</featureManager>