plugin.xml 文件
XML 清单文件中描述了一个称为 plugin.xml 的插件,它是插件部署文件的一部分。清单文件告诉门户网站应用程序的运行时,要注册并激活该插件,它需要了解哪些内容。清单文件本质上充当可插入组件和门户网站应用程序的运行时之间的合同。尽管 WebSphere® Application Server plugin.xml 严格遵循为 Eclipse 工作台提供的清单文件,但是它确实在若干方面脱离了 Eclipse 工作台。
位置
plugin.xml 文件必须位于 Web 应用程序或包括它的 Web 应用程序归档文件所在的目录层次结构上下文下的 WEB-INF 目录中。当 plugin.xml 文件放置在 Enterprise JavaBeans Java™ 归档 (JAR) 文件或共享库 JAR 文件中时,plugin.xml 文件必须位于根目录中。扩展注册服务包括 plugin.xml 文件,因为在应用程序服务器上会装入并启动参与的组件。
使用说明
- 该文件是只读的吗?
否
- 该文件是由产品组件更新的吗?
???
- 如果是,什么触发其更新?
当您将 Web 组件组装到 Web 模块,或者当您修改 Web 组件或 Web 模块的属性时, Rational Application Developer 将更新 web.xml 文件。
- 如何及何时使用该文件的内容?
WebSphere Application Server 功能在 Web 应用程序开发的配置和部署阶段期间使用此文件中的信息。
- 清单标记定义使用各种命名标记和标识。为消除不明确性,下面提供了这些命名约定的产生规则。通常,所有标识都是区分大小写的。
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)
样本文件条目
完整的插件清单 DTD 如下。XML 模式不用来定义清单,因为插件的当前 Eclipse 工具需要 DTD。XML DTD 构造规则 element* 表示该元素出现或不出现;element? 表示该元素不出现或出现一次;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 元素
- 此清单中提供的 plugin 元素不包含类属性。类属性不是必需的,因为插件机制不要求插件开发者扩展或使用任何特定类,而这对于 Eclipse 工作台是要求的。另外,plugin 元素不包含运行时元素,因为一些标准(例如,J2EE)已定义应用程序的运行时库位置。
- import 元素
- requires 元素不包含 export 属性,因为建议 J2EE 模块为自包含的以提高可管理性。除了不带有 export 属性之外,match 属性有一个选项用于版本的更高或相等匹配 (greaterOrEqual)。
- extension-point 元素
- extension-point 元素将名称属性作为可选部分,因为它在此 J2EE 实现中没有实际的用途。
可在“平台插件开发者指南 > 其他参考信息 > 插件”清单下面的 Eclipse 文档中找到有关插件清单的详细信息。
<?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>