更新服务器站点映射
缺省 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
>
<!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
>
<!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 位置。
-
<description> — 简单文本格式的简短描述。意指是可翻译的。
-
url — 表示 HTML 格式的完整描述的可选 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”
-
<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 argives
(eg. org.eclipse.ui_1.0.3.jar)
控制访问
缺省 Eclipse 站点实现提供了对具有基本用户认证(用户标识和密码)的 http 访问的支持。
可用下列两种方法之一将定制访问控制机制添加至基本 Eclipse:
-
通过在更新服务器上提供服务器端逻辑(例如,实现计算
site.xml 映射并根据某些用户条件控制对个别归档的访问的 servlet)
-
通过提供站点对象(安装在客户机上,更新服务器指定 <site type="">)的定制具体实现。定制具体站点实现与任何服务器端逻辑一起支持必需的控制机制。
Eclipse 提供了一个示例,演示基于功能部件密钥文件的访问机制的实现。