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 文件很有用,下载这种特别大的 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>
<!ATTLIST url-map
    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 服务器。
  2. 管理员在该服务器上创建一个更新策略文件并指导所有用户将更新策略首选项设置为所提供的 URL。
  3. 当产品供应商在他们的更新站点上提供更新和修订时,管理员将受支持的更新下载到本地服务器上。
  4. 在客户机的产品已启动的情况下按预定的频率执行的自动更新会采用本地更新并通知用户
  5. 用户选择安装已发现的更新

相关任务
自动更新调度程序