plugin.xml 파일
플러그인은 plugin.xml이라고 하는 XML Manifest 파일에서 설명되고, 이는 플러그인 배치 파일의 일부입니다. manifest 파일은 플러그인을 등록하고 활성화하기 위해 알아야 하는 것을 포털 애플리케이션의 런타임에 전달합니다. manifest 파일은 본질적으로 플러그로 접속 가능한 컴포넌트와 포털 애플리케이션의 런타임 사이의 계약의 역할을 합니다. WebSphere® Application Server plugin.xml이 Eclipse 워크벤치에 제공된 것을 면밀하게 따른다고 해도 여러 위치에서 Eclipse 워크벤치로부터 벗어납니다.
위치
plugin.xml 파일은 웹 애플리케이션 아카이브 파일에 포함될 때 또는 웹 애플리케이션을 위해 존재하는 디렉토리 계층의 컨텍스트의 WEB-INF 디렉토리에 상주해야 합니다. plugin.xml 파일이 Enterprise JavaBeans JAR(Java™ Archive) 파일 또는 공유 라이브러리 JAR 파일에 있을 때 plugin.xml 파일은 루트 디렉토리에 상주해야 합니다. 확장 레지스트리 서비스에는 참여 컴포넌트가 Application Server에서 로딩되고 시작될 때 plugin.xml 파일이 포함됩니다.
사용법 참고
- 이 파일이 읽기 전용입니까?
아니오
- 이 파일이 제품 컴포넌트에 의해 업데이트됩니까?
???
- 이런 경우, 무엇이 업데이트를 트리거합니까?
Rational Application Developer는 웹 컴포넌트를 웹 모듈에 어셈블하거나 웹 컴포넌트 또는 웹 모듈의 특성을 수정해야 할 때 web.xml 파일을 업데이트합니다.
- 이 파일의 목차는 언제 어떻게 사용됩니까?
WebSphere Application Server 기능은 웹 애플리케이션 배치의 구성 및 배치 단계 동안 이 파일에서 정보를 사용합니다.
- Manifest 마크업 정의는 다양한 이름 지정 토큰 및 ID를 사용합니다. 모호성을 제거하기 위해, 다음은 이러한 이름 지정 규칙에 대한 프로덕션 규칙입니다. 일반적으로 모든 ID는 대소문자 구분입니다.
SimpleToken := sequence of characters from ('a-z','A-Z','0-9') ComposedToken := SimpleToken | (SimpleToken '.' ComposedToken) PlugInId := ComposedToken PlugInPrereq := PlugInId ExtensionId := SimpleToken ExtensionPointId := SimpleToken ExtensionPointReference := ExtensionPointId | (PlugInId '.' ExtensionPointId)
샘플 파일 항목
전체 플러그인 manifest DTD는 다음과 같습니다. XML 스키마는 플러그인에 대한 현재 Eclipse 도구에 DTD가 필요하기 때문에 manifest를 정의하기 위해 사용되지 않습니다. XML DTD 구성 규칙 element*는 0개 이상의 요소가 발생한다는 것을 의미하고 element?는 0 또는 한 개의 요소가 발생한다는 것을 의미하고 element+는 하나 이상의 요소가 발생한다는 것을 의미합니다.
<?xml encoding="US-ASCII"?>
<!ELEMENT plugin (requires?, extension-point*, extension*)>
<!ATTLIST plugin
name CDATA #IMPLIED
id CDATA #REQUIRED
version CDATA #REQUIRED
provider-name CDATA #IMPLIED
>
<!ELEMENT requires (import+)>
<!ELEMENT import EMPTY>
<!ATTLIST import
plugin CDATA #REQUIRED
version CDATA #IMPLIED
match (exact | compatible | greaterOrEqual) #IMPLIED
>
<!ELEMENT extension-point EMPTY>
<!ATTLIST extension-point
name CDATA #IMPLIED
id CDATA #REQUIRED
schema CDATA #IMPLIED
>
<!ELEMENT extension ANY>
<!ATTLIST extension
point CDATA #REQUIRED
id CDATA #IMPLIED
name CDATA #IMPLIED
>
WebSphere Application Server 차이점
- plugin 요소
- 이 manifest에 제공된 플러그인 요소는 클래스 속성을 포함하지 않습니다. 플러그인 메커니즘이 플러그인 개발자가 Eclipse 워크벤치에 의해 요구된 것처럼 특정 클래스도 확장하거나 사용하도록 요구하지 않기 때문에 클래스 속성이 불필요합니다. 또한 플러그인 요소는 이미 애플리케이션에 대한 런타임 라이브러리의 위치를 정의하는 J2EE와 같은 표준 이후로 런타임 요소를 포함하지 않습니다.
- import 요소
- J2EE 모듈이 관리 능력을 향상시키기 위해 자체에 포함되도록 하기 때문에 requires 요소는 내보내기 속성을 포함하지 않습니다. 내보내기 속성을 제거하는 것뿐만 아니라, 일치 속성은 버전을 위한 일치보다 크거나 같은 것(greaterOrEqual)에 대한 옵션을 가지고 있습니다.
- extension-point 요소
- 이 J2EE 구현에서 실제로 사용하지 않기 때문에 확장점 요소에는 선택적으로 이름 속성이 있습니다.
플랫폼 플러그인 개발자 안내서>기타 참조 정보>플러그인 manifest에서 Eclipse 문서에 있는 플러그인 manifest에 관하여 세부사항을 찾을 수 있습니다.
<?xml version="1.0"?>
<!--the plugin id is derived from the vendor domain name -->
<plugin
id=”com.ibm.ws.console.core”
version=”1.0.0”
provider-name=”IBM WebSphere”>
<!--declaration of prerequisite plugins-->
<requires>
<import plugin=”com.ibm.data” version=”2.0.1” match=”compatible”/>
<import plugin=”com.ibm.resources” version=”3.0” match=”exact”/>
</requires>
<!--declaration of link extension point -->
<extension-point
id=”linkExtensionPoint”
schema=”/schemas/linkSchema.xsd”/>
<!--declaration of an extension to the link extension point -->
<extension
point=”com.ibm.ws.console.core.linkExtensionPoint”
id=”linkExtension”>
<link
label=”Example.displayName”
actionView=”com.ibm.ws.console.servermanagement.forwardCmd.do?
forwardName=example.config.view&
lastPage=ApplicationServer.config.view”>
</link>
</extension>
</plugin>