Eclipse 更新策略控制

Eclipse 更新使用户可以搜索对当前安装的功能部件的更新。对于每个安装的功能部件,更新使用嵌入式 URL 来连接至远程服务器并搜索新版本。如果有更新,则 Eclipse 允许用户启动安装过程。下载后,安装并重新启动平台,就可以使用新的功能部件版本了。

在具有相同的基于 Eclipse 的产品(特别是商业产品)的许多用户的公司中,此模型可能会产生几个问题:

  1. 每个大产品(例如,500+ 插件)的更新也很大。I/T 支持小组可能不希望数以百计的开发者分别将 500MEG 更新下载到他们各自的机器上。除带宽问题外,如此大的下载请求可能会失败,导致重复尝试和开发者停机时间增加。
  2. 有些公司明显不想让开发者直接从因特网下载更新。例如,他们可能会成立一个本地支持小组,该小组可能不准备处理与提供者的更新网站上已提供的产品版本相关的请求。他们可能想将更新和修正限制在内部核准的名单中。理想的情况是,他们通过在 LAN(防火墙后面)上设置代理更新站点来实现。
  3. 一旦按以上所述在代理站点中设置了更新,管理员需要一种让用户知道有更新可用的方法。

2. 补救更新策略

2.1 对创建本地(代理)更新站点的支持

产品管理员要执行的第一个步骤将会是在与公司的 LAN(防火墙后面)相连接的服务器上建立本地 Eclipse 更新站点。更新站点将是该产品在因特网上的更新站点的一部分,因为它只包含与该公司当时想要应用的更新相关的功能部件和插件。从技术上来说,此站点将会是具有 site.xml、功能部件和插件归档的常规 Eclipse 更新站点。

管理员按以下两种方式构造此站点:

  1. 产品支持小组将对更新站点制作一个 Zip 文件以即时用于此特殊用途。管理员只需使用他们选择的工具从产品支持 Web 页面下载 Zip 文件并在本地服务器中将它解压缩。此方法对于需要现代可重新启动下载管理器(在出现连接问题时可从停止位置继续的管理器)的大型 Zip 文件很有用。
  2. Eclipse 更新提供了一种工具以整体镜像远程更新站点或允许管理员选择要下载的更新和修正。此镜像功能是完全自动的,并将大大简化管理员的任务,但是它依赖于更新网络连接支持。

2.2 常用更新策略控制

因为功能部件在清单中嵌入了更新站点 URL,所以它们不知道管理员设置的本地更新站点。因此需要提供重定向功能。可通过创建更新策略文件并将更新配置为在搜索时使用该文件来对 Eclipse 产品设置此更新策略及其它更新策略。

所述文件使用 XML 格式并可具有任何名称。可以在更新策略字段中的首选项 > 安装/更新中设置该文件。缺省情况下,文本字段是空的:用户可设置更新策略文件的 URL。该文件由本地管理员管理并对所有产品安装共享。可通过两种方式实现共享:

策略文件必须符合以下 DTD:

<?xml encoding="ISO-8859-1"?>

<!ELEMENT update-policy (url-map)*>
<!ATTLIST update-policy
>

<!ELEMENT url-map EMPTY>
	pattern	CDATA #REQUIRED
	url	CDATA #REQUIRED
>

url-map

此元素用于覆盖嵌入在功能部件清单中的更新 URL。当查找新的更新时,Eclipse 搜索将检查更新策略(如果有)并检查是否对匹配功能部件前缀指定了 url-map。如果找到匹配,将使用映射的 URL 取代嵌入的 URL。这样,管理员就可以将 Eclipse 产品配置为在本地服务器(在防火墙后)中搜索更新。同时,因为 Eclipse 更新安装的第三方功能部件因为在策略中找不到匹配项而使用缺省机制继续更新。

文件中可能存在若干 url-map 元素。可选择使用更大众化或更具体的功能部件前缀。例如,要重定向所有 Eclipse 更新,模式属性将为“org.eclipse”。同样,如果需要根据功能部件进行重定向,可以使用完整的功能部件标识作为模式。

可以选择文件中的模式以进一步缩窄潜在匹配的范围。这样可能导致给定功能部件有多个匹配。在此情况下,将使用与最长的模式匹配。例如:

<?xml version="1.0" encoding="UTF-8" ?>
<update-policy>
	<url-map pattern="org.eclipse" url="URL1"/>
	<url-map pattern="org.eclipse.jdt" url="URL2"/>
</update-policy>

在以上情况下,将从 URL1 更新所有 Eclipse 功能部件,但将使用 URL2 的 org.eclipse.jdt 除外。

更新策略文件不包含可翻译字符串,因此不需要特殊 NL 处理。通常情况下,这些文件应使用 UTF-8 编码。

2.3 自动发现更新

自动更新将允许 Eclipse 按指定时间表(每次启动时(缺首值)、每天一次或每周一次等等)运行更新搜索。

3. 总结

以下是组成解决方案的完整的步骤序列:

  1. 管理员在公司 LAN 上分配一个服务器用来主管本地产品更新。最初它不包含任何更新站点。机器必须运行 HTTP Server。
  2. 管理员在该服务器上设置更新策略文件并指示所有用户将更新策首选项设置为提供的 URL。
  3. 当产品提供者在他们的更新站点上交付更新和修正时,管理员将支持的更新下载到本地服务器上。
  4. 在客户机的产品运行时按指定频率执行的自动更新将采用本地更新并通知用户。
  5. 用户选择安装发现的更新。