更新服务器站点图
缺省 Eclipse 更新服务器是可通过 URL 访问的任何服务器。缺省实现采用固定布局的服务器。服务器的内容(关于可用的功能部件和插件)在站点图文件 site.xml
中描述。可手工维护此文件,或者由服务器动态计算。
站点图
更新服务器 URL 可指定为站点图文件的完整 URL,或是包含站点图文件(类似于
index.html 处理)的目录路径的 URL。此站点图 site.xml 格式是由下列 dtd 定义的:<?xml encoding="ISO-8859-1"?>
<!ELEMENT site (description?, feature*, archive*, category-def*)>
<!ATTLIST site
type
CDATA #IMPLIED
url
CDATA #IMPLIED
mirrorsURL CDATA #IMPLIED
>
<!ELEMENT description (#PCDATA)>
<!ATTLIST description
url
CDATA #IMPLIED
>
<!ELEMENT feature (category*)>
<!ATTLIST feature
type
CDATA #IMPLIED
id CDATA #IMPLIED
version
CDATA #IMPLIED
url
CDATA #REQUIRED
patch
(false | true) false
os
CDATA #IMPLIED
nl
CDATA #IMPLIED
arch
CDATA #IMPLIED
ws
CDATA #REQUIRED
>
<!ELEMENT archive EMPTY>
<!ATTLIST archive
path
CDATA #REQUIRED
url
CDATA #REQUIRED
>
<!ELEMENT category EMPTY>
<!ATTLIST category
name CDATA #REQUIRED
>
<!ELEMENT category-def (description?)>
<!ATTLIST category-def
name CDATA #REQUIRED
label
CDATA #REQUIRED
>
元素和属性定义如下所示:
- <site> - 定义站点图
- type - 可选站点类型指定。该值指的是通过安装框架扩展点注册的类型字符串。如果不指定此项,则假定为缺省 Eclipse 站点类型(如在此文档中所指定的那样)。
- url - 定义更新站点基线 URL(用来确定单个 <feature> 和 <archive> 位置)的可选 URL。可以是相对的,也可以是绝对的。如果是相对的,则与 site.xml 相对应。如果不指定此项,则缺省值为 site.xml 文件的 URL 位置。
- mirrorsURL - 指向包含更新站点镜像定义的文件的可选 URL。此 URL 可以是此站点的绝对或相对 URL。本文档的后面部分对镜像文件进行描述。
- <description> - 简单文本格式的简短描述。意指是可翻译的。
- url - 表示 HTML 格式的完整描述的可选 URL。URL 可被指定为绝对或相对。如果是相对的,则 URL 与 site.xml 相对应。
注意,对于 NL 处理,URL 值应是独立的,以便允许为每种本地语言指定备用 URL。
- <feature> - 标识所引用功能部件归档
- type - 可选功能部件类型指定。该值指的是通过安装框架扩展点注册的类型字符串。如果不指定此项,则假定为站点的缺省功能部件类型。如果站点类型是缺省
Eclipse 站点类型,则缺省功能部件类型是打包功能部件类型(如在此文档中所指定的那样)。
- id - 可选功能部件标识。该信息用作加快搜索功能部件的性能优化。必须与所引用归档的 feature.xml 中指定的标识相匹配(url 属性)。如果指定此项,则还必须指定版本属性。
- version - 可选功能部件版本。该信息用作加快搜索功能部件的性能优化。必须与所引用归档的 feature.xml 中指定的版本相匹配(url 属性)。如果指定此项,则还必须指定标识属性。
- url - 功能部件归档的必需 URL 引用。可以是相对的,也可以是绝对的。如果是相对的,则它与 site.xml 文件的位置相对应。注意:缺省站点实现允许访问功能部件,而不必使用 <feature> 条目显式声明这些功能部件。缺省情况下,将未声明的功能部件引用解释为“features/<id>_<version>.jar”。注意:为取得更好的查找性能,总是定义 id 和 version 属性。
- patch - 用来表示这是补丁(特殊类型的功能部件)的可选属性。
注意:为取得更好的查找性能,总是定义此属性。
- os - 可选操作系统规范。用逗号分隔的 Eclipse 定义的操作系统系统标志列表(请参阅
org.eclipse.core.runtime.Platform 的 Javadoc)。指示此功能部件只应安装在其中一个指定的操作系统上。如果未指定此属性,则该功能部件可安装在所有系统上(可移植实现)。此信息被安装和更新支持用作提示(用户可强制安装功能部件而不必考虑此设置)。
- arch - 可选机器体系结构规范。Eclipse 定义的以逗号分隔的体系结构指示符列表(请参阅
org.eclipse.core.runtime.Platform 的 Javadoc)。指示此功能部件只应安装在其中一个指定的系统上。如果未指定此属性,则该功能部件可安装在所有系统上(可移植实现)。此信息被安装和更新支持用作提示(用户可强制安装功能部件而不必考虑此设置)。
- ws - 可选窗口系统规范。用逗号分隔的 Eclipse 定义的窗口系统系统标志列表(请参阅
org.eclipse.core.runtime.Platform 的 Javadoc)。指示此功能部件只应安装在其中一个指定的 WS 上。如果未指定此属性,则该功能部件可安装在所有系统上(可移植实现)。此信息被安装和更新支持用作提示(用户可强制安装功能部件而不必考虑此设置)。
- nl - 可选语言环境规范。Java 定义的语言环境指示符的逗号分隔列表。指示此功能部件仅应安装在使用兼容语言环境运行(使用与 Java 语言环境相匹配的规则 )的系统上。如果未指定此属性,则该功能部件可安装在所有系统上(与语言无关的实现)。此信息被安装和更新支持用作提示(用户可强制安装功能部件而不必考虑此设置)。
- <archive> - 标识所引用的“storage”归档(在功能部件清单中通过 <plugin> 或 <data> 元素引用的实际文件)。站点简单地将归档作为路径至 URL 映射进行管理。缺省
Eclipse 站点实现不需要将 <archive> 部分包括在站点图(site.xml)中。将未显式定义为 <archive> 部分的一部分的任何归档引用假定为映射至“<archivePath>”形式的 url,该 URL 与 site.xml 文件的位置相对应。
- path - 必需的归档路径标识。这是由引用此归档的功能部件确定的字符串,且站点不会另作解释(不同于查找标记)。
- url - 归档的必需 URL 引用。可以是相对的,也可以是绝对的。如果是相对的,则它与 site.xml 文件的位置相对应。
- <category-def> - 安装和更新支持可用来以分层方式组织功能部件的类别的可选定义
- name - 类别名。指定为用 / 分隔的名称标记的路径
- label - 可显示标注。意指是可翻译的。
- <category> - 功能部件条目的实际类别规范
注意,通常情况下,feature.xml 清单文档应指定 UTF-8 编码。例如:
<?xml version="1.0" encoding="UTF-8"?>
可使用 Java 属性捆绑约定将包含在 site.xml 中的可翻译文本分成若干个
site<_locale>.properties 文件。注意,在安装时使用转换的字符串(即,不要使用插件段运行时机制)。属性捆绑的位置与
site.xml 位置相对应。
缺省站点布局
<site root>/
site.xml
features/
feature archives
(eg. org.eclipse.javatools_1.0.1.jar)
<featureId>_<featureVersion>/
(optional)
non-plug-in files for feature
plugins/
plug-in archives
(eg. org.eclipse.ui_1.0.3.jar)
镜像文件
更新镜像文件(在 <site> 的 mirrorsURL 属性中指出的文件)包含用于更新站点镜像的定义。其格式由以下 dtd 定义:
<?xml encoding="ISO-8859-1"?>
<!ELEMENT mirrors (mirror*))>
<!ELEMENT mirror EMPTY>
<!ATTLIST mirror
url
CDATA #REQUIRED
label
CDATA #REQUIRED
>
- <mirrors> - 定义可用的更新站点镜像
- <mirror> - 定义镜像站点
- url - 镜像站点的 URL
- label - 可显示标注。意指是可翻译的。
控制访问
缺省 Eclipse 站点实现提供了对具有基本用户认证(用户标识和密码)的 http 访问的支持。
可用下列两种方法之一将定制访问控制机制添加至基本 Eclipse:
-
通过在更新服务器上提供服务器端逻辑(例如,实现计算
site.xml 映射并根据某些用户条件控制对各个归档的访问权的 servlet)
-
通过提供站点对象(安装在客户机上,更新服务器指定 <site type="">)的定制具体实现。定制具体站点实现与任何服务器端逻辑一起支持必需的控制机制。
Eclipse 提供了一个示例,演示基于功能部件密钥文件的访问机制的实现。