설치된 선택적 패키지
설치된 선택적 패키지를 사용하면 애플리케이션이 클래스 경로에 명시적으로 포함시키지 않고도 Java™ 아카이브(.jar) 파일에 있는 클래스를 사용할 수 있습니다. 설치된 선택적 패키지는 manifest 파일에 특수 태그가 있는 .jar 파일로, 애플리케이션 서버가 이를 식별할 수 있도록 합니다. 설치된 선택적 패키지는 애플리케이션의 manifest 파일에 하나 이상의 공유 라이브러리 .jar 파일을 선언합니다. 애플리케이션이 서버 또는 클러스터에 설치된 경우, 공유 라이브러리로 표현되는 클래스가 애플리케이션의 클래스 로더에 로드되므로 애플리케이션에서 클래스를 사용할 수 있습니다.
Java EE(Java Platform, Enterprise Edition) 애플리케이션이 서버 또는 클러스터에 설치된 경우, Manifest 파일에 종속성 정보가 지정됩니다. 제품은 애플리케이션의 종속성 정보(.ear 파일)를 읽어 애플리케이션을 설치된 선택적 패키지 .jar 파일과 자동으로 연관시킵니다. 제품은 연관된 선택적 패키지의 .jar 파일을 애플리케이션 클래스 경로에 추가합니다. 그러면 애플리케이션 클래스에서 설치된 선택적 패키지의 클래스를 사용할 수 있습니다.
제품에서 사용되는 설치된 선택적 패키지는 http://docs.oracle.com/javaee/에 있는 J2EE(Java 2 Platform, Enterprise Edition) 스펙, 버전 1.4의 섹션 8.2에서 설명됩니다.
제품은 공유 라이브러리 .jar 파일 및 애플리케이션 .ear 파일에서 Manifest 파일(manifest.mf)의 사용을 지원합니다. 제품은 주로 애플릿 환경을 다루는 J2SE(Java 2 Platform Standard Edition) 스펙(http://docs.oracle.com/javase/1.3/docs/)에서 사용되는 J2SE가 설치된 선택적 패키지의 시맨틱을 지원하지 않습니다. 제품은 Manifest 파일에 있는 애플릿 특정 태그를 무시합니다.
샘플 manifest.mf 파일
다음은 단일 공유 라이브러리 파일 util.jar를 참조하는 애플리케이션 app1.ear에 대한 샘플 manifest 파일입니다.
app1.ear:
META-INF/application.xml
ejb1.jar:
META-INF/MANIFEST.MF:
Extension-List: util
util-Extension-Name: com/example/util
util-Specification-Version: 1.4
META-INF/ejb-jar.xml
util.jar:
META-INF/MANIFEST.MF:
Extension-Name: com/example/util
Specification-Title: example.com's util package
Specification-Version: 1.4
Specification-Vendor: example.com
Implementation-Version: build96
Manifest 항목의 구문은 항목이 정의 역할(공유 라이브러리)을 갖는 멤버 또는 항목이 참조 역할(Java EE 애플리케이션 또는 Java EE 애플리케이션 내의 모듈)을 갖는 멤버에 적용되는지에 따라 다릅니다.
Manifest 항목 태그
Manifest 항목은 다음 기본 태그를 사용합니다.
- Extension-List
- 변수 구문의 필수 태그. 이 태그는 참조 역할의 컨텍스트(애플리케이션의 manifest)에서 각 목록 요소에 대한 고유 Extension-Name, Extension-Specification 태그를 식별하고 구성하는 공간 구분 목록입니다. 정의 역할 컨텍스트(공유 라이브러리) 내에서는 이 태그가 유효하지 않습니다.
- Extension-Name
- 정의 및 참조 멤버에 이름을 지정하고 링크하는 필수 태그. 참조 역할 내에서 요소 구문은 요소에 <ListElement> 문자열을 접두부로 첨부합니다. Extension-List의 각 요소의 경우, 해당하는 <ListElement>-Extension-Name 태그가 있습니다. 이 태그의 정의 문자열 리터럴 값(이전 샘플에서 com/example/util1)은 (동등성 테스트에서) 정의 역할과 참조 역할 간에 해당 태그를 찾는 데 사용됩니다.
- Specification-Version
- 스펙 버전을 식별하고 정의 및 참조 멤버를 링크하는 필수 태그.
- Implementation-Version
- 구현 버전을 식별하고 정의 및 참조 멤버를 링크하는 선택적 태그.
이들 태그에 대한 추가 정보는 http://docs.oracle.com/javase/1.4.2/docs/의 .jar 파일 스펙에 있습니다.