为IBM Lotus Sametime Connect插件创建更新站点

当 Eclipse 更新站点中有某个新插件或已更新插件可用时,应该让您的 IBM Lotus Sametime 用户获知该情况。本文将向您展示创建包含可添加到 Sametime 操作栏的功能部件的更新站点有多么轻松。

软件应用程序总是要不断更新,从而修复 bug,添加新特性。如何为用户群交付更新是非常重要的企业基础设施考虑事项,在用户群庞大而且分散时更是如此。在全球化机构中,派遣一名技术人员去安装软件更新是不切实际的。幸运的是,构建于 Eclipse 平台之上的 IBM Lotus Sametime V7.5 允许您利用更新站点,使 Lotus Sametime Connect V7.5 能够从一个中央位置检索更新。

在本文中,我们将引导您完成为 Sametime 插件创建一个更新站点的完整过程。您将学习更新站点如何提供一种方法,向 Sametime 客户交付新功能功能部件和功能功能部件更新。文中将展示如何创建简单插件,以在 Lotus Sametime Connect 的操作栏上放置按钮。我们使用 Sametime 客户机的 Update Manager 从所创建的更新站点提取该插件。本文还展示了如何检索现有插件的更新。图 1 是 Sametime 客户机的 Update Manager,通过它可以定义站点,使这些站点为 Sametime 客户提供新功能功能部件和现有功能功能部件的更新。


图 1. Update Manager
Update Manager

HTTP 服务器在更新插件中的角色

使 Sametime 插件对 Sametime 社区可用的方式之一是:将它放置在 Eclipse 更新站点上。Eclipse 更新站点是一个 URL 位置,客户可在这里将增强或更新下载到其 Sametime 客户机。site.xml 文件定义了 Eclipse 更新站点,本文稍后将讨论该文件。为托管更新站点,需要一个 HTTP 服务器。至于 HTTP 服务器,我们使用可免费获取的 IBM HTTP Server 来托管更新站点。可以从 IBM HTTP Server 页面下载一份免费的 IBM HTTP Server V6.1 拷贝。

创建插件

在深入研究安装和更新之前,需要创建一个简单插件,此插件可通过功能部件(feature)交付给 Sametime 客户。功能部件是插件的集合,其中又可以容纳其他功能部件。如前所述,从创建简单的插件开始讨论,该插件在操作栏上放置一个按钮,如图 2 所示。


图 2. 带有功能部件插件的操作栏
带有功能部件插件的操作栏

本文假定您熟悉使用 Eclipse 3.2 开发 Lotus Sametime 插件的方法。如果不熟悉的话,请参考本文的参考资料部分,获取 Sametime 插件开发的文章列表,从而进行插件开发的入门学习。

按照以下步骤将目标平台更改为 Lotus Sametime V7.5,并在 Eclipse 3.2 中创建插件项目 com.ibm.example.iu:

  1. 打开 Eclipse 3.2,然后切换到 Plug-in Development Perspective。
  2. 选择 Window - Preferences。
  3. 在 Preferences 对话框中,选择 Plug-in Development - Target Platform。
  4. 将目标平台更改为您的系统上表示 Lotus Sametime V7.5 插件的目录位置。例如,如果在默认位置上安装 Lotus Sametime V7.5,则目标平台位置是 C:\Program Files\IBM\Sametime Connect 7.5。
  5. 通过选择 File - New Project 来新建插件项目。
  6. 选择 Plug-in Project。
  7. 在 New Plug-in Project 向导中,指定 com.ibm.example.iu 作为项目名称,然后单击 Next。
  8. 指定 com.ibm.example.iu 作为插件名称。指定 IBM DeveloperWorks 作为插件提供者。

plug-in.xml 文件

创建了 com.ibm.example.iu 插件项目后,创建一个 plug-in.xml 文件,使它扩展 org.eclipse.ui.viewaction 扩展点。plug-in.xml 文件的内容如清单 1 所示。


清单 1. Plug-in.xml 文件
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.0"?>

请注意,扩展点以 org.eclipse 开头。这表示扩展点是基本 Eclipse API 的一部分,而不是 Lotus Sametime API。通常 Lotus Sametime 使用 Eclipse API,使有经验的 Eclipse 开发人员可以立即动手开发 Sametime 插件。可以在 Eclipse Web 站点 中找到有关 org.eclipse.ui.viewActions 扩展点的更多信息。也可以在 Eclipse SDK 中选择 Help - Help Contents 来打开 Help Window,从中搜索 org.eclipse.ui.viewAction,以便找到关于 viewActions 扩展点的信息。

下面进一步研究 org.eclipse.ui.viewActions 扩展点。targetID 是要添加按钮的视图的 ID。操作栏的视图 ID 是 com.ibm.collaboration.realtime.imhub。图 3 中突出显示的部分是 Sametime 客户机操作栏及其相应的视图 ID。


图 3. 操作栏及其视图 ID
操作栏及其视图 ID

通过将操作栏的视图 ID 定义为 targetID,即可扩展操作栏。这里还将 com.ibm.example.iu.ClickHandler 定义为处理视图操作的类。将 icon/kulvir.gif 定义为表示视图操作的图标。kulvir.gif 文件是 Kulvir Bhogal(本文作者之一)的头像。还要注意工具提示为 “Kulvir hates gyros”。稍后,在演示现有功能部件的更新时,将工具提示更改为“Kulvir loves gyros”。(顺便说一句,Kulvir 是 gyro 的狂热爱好者。)

BuddyListDelegate 接口

单击操作栏上新添加的按钮时,将为用户演示一个 Hello! 消息框,如图 4 所示。


图 4. 插件消息框
插件消息框

因此,除了在 plug-in.xml 中定义按钮,还必须创建实现类,来处理按钮的单击事件。在 com.ibm.example.iu 插件内创建类 com.ibm.example.iu.ClickHandler。BuddyListDelegate 接口将处理先前定义的 viewAction 按钮的单击事件。BuddyListDelegate 接口包含在 com.ibm.collaboration.realtime.imhub 插件中。若要解析 BuddyListDelegate 接口,必须将 com.ibm.collaboration.realtime.imhub 插件添加到 META-INF/MANIFEST.MF 文件的所需包列表中,如清单 2 所示。


清单 2. META-INF/MANIFEST.MF
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Iu Plug-in
Bundle-SymbolicName: com.ibm.example.iu;singleton:=true
Bundle-Version: 1.0.0
Bundle-Activator: com.ibm.example.iu.Activator
Bundle-Vendor: IBM
Bundle-Localization: plugin
Require-Bundle: org.eclipse.ui,
 org.eclipse.core.runtime,
 com.ibm.collaboration.realtime.imhub
Eclipse-LazyStart: true

若要在单击按钮时打开为用户演示 Hello! 消息的 MessageBox,需要实现 run 方法,如清单 3 所示。


清单 3. MessageBox 的 Run 方法
public class ClickHandler implements BuddyListDelegate {
	
	public void run(ISelection selection) {
		MessageBox mBox = new MessageBox(new Shell());
		mBox.setMessage("Hello!");
		mBox.open();
	}
}

创建并构建图标

现在,我们将创建包含按钮图像的文件夹(已在操作栏中添加该按钮)。右击 com.ibm.example.iu 并选择 New - Folder。将文件夹命名为 icon,单击 Finish。若要导入图标,将图标从包含图像文件的文件夹拖放到插件项目的 icon 文件夹中即可。

接下来,更改 build.properties 文件,以使 icon 文件夹及其内容都包含在 build 文件中。使用 Build Properties 编辑器打开 build.properties 文件。为此,右击 com.ibm.example.iu plug-in 项目中的 build.properties,然后从上下文菜单中选择 Open With - Build Properties Editor。

在 Build Properties Editor 中,选中 icon 文件夹和 plugin.xml旁边的选框,如图 5 所示,然后将所作的修改保存到 build.properties 文件中。


图 5. Build Properties Editor
Build Properties Editor 

Eclipse 功能部件

Eclipse 功能部件代表呈现给用户的抽象的功能单元。功能部件可以是日历、邮件工具或(在本例中)操作按钮。Eclipse 功能部件可以由多个插件组成,或者引用多个功能部件。这些关系在 feature.xml 文件中已被确定。

现在将展示如何创建功能部件。为简单起见,仅在功能部件中安置了一个必需的插件,即先前所创建的 com.ibm.example.iu 插件。若要创建新的功能部件,选择 File - New - Other。在 New Feature 向导中,选择 Plug-in Development - Feature Project,然后单击 Next。

使用 com.ibm.example.feature.iu 作为功能部件项目名称。接受默认的功能部件 ID,并将功能部件命名为 “Action Bar Button Feature”。单击 Next。选择 com.ibm.example.iu 插件作为 Reference Plug-ins and Fragments,如图 6 所示,然后单击 Finish。


图 6. New Feature 向导
New Feature 向导

接着打开 feature.xml 文件并选择 Overview 附签。按以下 URL 格式输入更新站点的 URL:

http://YOUR_HTTPSERVER_URL/myupdatesite

其中,YOUR_HTTPSERVER_URL 是所使用的 HTTP 服务器的 URL。在这里输入 HTTP 服务器将使 Sametime 客户机能够自动检查并下载功能部件更新(当这些更新在 HTTP 服务器上可用时)。

Feature.xml:Eclipse PDE 幕后

Eclipse 插件开发环境(Eclipse plug-in development environment,PDE)为查看并编辑 feature.xml 文件提供了便利的方法。针对那些希望了解 PDE 正在做什么的读者,我们将 feature.xml 文件的一部分列在了清单 4 中。首先,请注意它对功能部件的基本细节进行了描述,例如惟一 ID、标签(用户所看到的功能部件名称)、版本号和提供者名称。还应注意 description、copyright 和 license 字段。

最后,描述了所需的插件和功能部件,及其惟一 ID 和版本号。版本号是很重要的,因为它向 Update Manager 描述了客户机上应有的最低可接受版本号。版本号 0.0.0 说明可以接受任何版本。


清单 4. Feature.xml 文件
<?xml version="1.0" encoding="UTF-8"?>

      [Enter Feature Description here.]
   
      [Enter Copyright Description here.]
   
      [Enter License Description here.]
   

更新站点

接下来,我们将演示如何使用 Eclipse 工具集来创建更新站点。前面已经将更新站点描述为一个位置,客户在该位置处获得现有 Sametime 组件的更新或新 Sametime 组件。既然已经回顾了功能部件的概念,那么我们稍微修改一下更新站点的定义:更新站点是这样一个位置,客户可以通过该位置安装新功能部件或获得现有功能部件的更新。

现在将深入研究更新站点的创建过程。Eclipse 提供了向导,可以自动执行创建更新站点的流程。若要启动该向导,请选择 File - New Project。在 New Project 向导中,选择 Plug-in Development - Update Site Project。将出现 New Update Site 向导(参见图 7)。


图 7. New Update Site 向导
New Update Site 向导

如图 7 所示,指定更新站点的位置为 HTTP 服务器的位置。对于您的 HTTP 服务器位置,请使用格式 HTTP_DOC_ROOT\myupdatesite,其中 HTTP_DOC_ROOT 是 HTTP 服务器的文档根。另外,清除 Use default location 选项,不使用默认位置。这里还指定了要生成一份 Web 页面清单,用于显示有关所提供功能部件的信息。

Site.xml

site.xml 文件提供了可用于更新站点的功能部件清单。打开 site.xml 文件。单击 New Category 按钮来添加类别。

添加了新类别后,Update Site Map 页面看起来与图 8 类似。请注意 Update Site Map 页面的右侧窗格中所显示的新建类别的 Category Properties。


图 8. 添加到站点地图的新类别
添加到站点地图的新类别

将类别的名称和标签定义为 DeveloperWorks Sample。该名称是类别的惟一名称。标签是用户所看到的类别名称。输入以下语句 “This feature is a sample feature to demonstrate the functionality of an update site.” 作为描述;

下面将先前所创建的功能部件添加到 DeveloperWorks Sample Category。为此,请选择 DeveloperWorks Sample 类别,然后单击 Add Feature 按钮。在 Feature Selection 对话框中(参见图 9),选择本文前面所创建的 com.ibm.example.feature.iu 功能部件,并单击 OK。


图 9. Feature Selection 对话框
Feature Selection 对话框

这样就正确地配置好了站点地图,下面就可以构建插件和功能部件了。为此,单击 Build All 按钮。这将构建 com.ibm.example.feature.iu 功能部件和功能部件所需的插件。

更新 Lotus Sametime Connect V7.5

我们已经构建了更新站点,用户可以从其 Sametime 客户机下载功能部件。打开 Lotus Sametime V7.5 Connect。在 Sametime 客户机上,选择 File - Manage Updates - Download plugins。这将打开 Install/Update 向导(参见图 10)。


图 10. Install/Update 向导
Install/Update 向导

选中 “Search for new features to install” 选项,然后单击 Next。在下一个向导面板中,单击 New Remote Site 按钮。在 Edit Remote Site 对话框中(参见图 11),输入所创建的更新站点的正确 URL。


图 11. Edit Remote Site 对话框
Edit Remote Site 对话框

接下来单击 OK,将新创建的更新站点添加到更新站点列表(Sametime 客户机检查该列表以获取更新)。单击 Finish。将出现 Updates 窗口。选中 Developer Works Example Site 选项,安装所有可用于 Developer Works Example Site 的功能部件,然后单击 Next。(另一种做法是只选择可用功能部件子集。)接受功能部件的 License 并单击 Next。

在接下来的窗口中单击 Finish 安装功能部件。此时将要求您确认是否安装功能部件。单击 Install 按钮。将出现一个对话框,询问您是否希望重新启动工作台(参见图 12)。单击 Yes 重新启动工作台。


图 12. 重新启动提示框
重新启动提示框

重新启动后,新的操作栏按钮将显示出来,如图 13 所示。


图 13. 带有新功能部件的已更新的操作栏
带有新功能部件的已更新的操作栏 

更新现有功能部件

很多时候,现有功能部件的提供者都希望为其客户群交付 bug 修订或增强。回顾一下,在 feature.xml 文件中,我们指定了更新站点的位置:



Sametime 客户机将在上述指定的 URL 处查找现有功能部件的更新。可以将客户机设置为自动检查现有功能部件的更新。为此,选择 File - Preferences。在 Preferences 对话框的左侧窗格中选择 Install/Update - Automatic Updates。将 Automatic Updates 参数配置为每次启动平台时检查更新,如图 14 所示。


图 14. Preferences 对话框 —— Automatic Updates
Preferences 对话框 —— Automatic Updates

现在,您的 Sametime 客户机已为检查更新进行了配置,那么当现有功能部件有更新可用时,您将接收到一个类似于图 15 所示的对话框。


图 15. 新更新可用
新更新可用 

更新插件

为了演示更新功能部件的流程,下面将对插件的工具提示进行更新,由 “Kulvir hates gyros” 更改为 “Kulvir loves gyros”。首先,更新 com.ibm.example.iu 的 plugin.xml 中的工具提示,如清单 5 所示。


清单 5. 工具提示更改
tooltip="Kulvir hates gyros."/>

接下来,修改 Bundle version 的值,将 MANIFEST.MF 文件的版本从 1.0.0 改为 1.1.0:

Bundle-Version: 1.1.0

版本的提高是比较重要的,因为客户将查看这样的版本号更改,从而获知有更新可用。然后,保存并关闭所有 com.ibm.example.iu 插件文件。

打开 feature.xml 文件并选择 Overview 附签。单击 Versions 按钮。在 Feature Versions 对话框中,选中 “Copy versions from plug-in and fragment manifests” 选项。参见图 16。


图 16. Feature Versions 对话框
Feature Versions 对话框

功能部件所引用的 com.ibm.examle.iu 的插件版本是 1.1.0。接下来,编辑 feature.xml 文件。将 feature.xml 文件的版本号更新为版本 1.1.0,如清单 6 所示。


清单 6. 版本更改
version="1.1.0"
      provider-name="IBM">

保存并关闭所有功能部件文件。

下面,在 Update Site Map 页面中打开 site.xml 文件。单击 Build All 按钮来构建已更新插件和相应的已更新功能部件,并将其放置在更新站点上。

注意:在本文中,开发环境和更新站点位于同一台机器上。但是,在生产环境中服务器和开发机器是独立的。在这种情况下,必须将新构建的更新站点从开发机器转移到生产服务器上。

假定将 Sametime 客户机修改为自动检查现有功能部件的更新,重新启动 Sametime 客户机后,将检测并安装新功能部件。检查工具提示是否由 “Kulvir hates gyros” 更改为“Kulvir loves gyros”(参见图 17),即可证实是否完成了更新。


图 17. 已更新的功能部件
已更新的功能部件 

结束语

在用户技术水平存在差异的企业环境中,您不能始终假定用户了解如何手动安装并管理自己的更新。这对于 Sametime 开发人员来说是个很麻烦的事情。Lotus Sametime Connect 的 Update Manager 使获取新功能部件和功能部件更新的过程对于用户更加友好。在本文中,您学习了如何使用更新站点来分发新的 Sametime 插件。出于本文的意图,更新站点、插件开发环境(PDE)和 Sametime 客户机都位于同一台机器上。在现实中,这些实体很可能位于独立的机器上。本文中所创建的更新站点可以复制到运行 HTTP 服务器的另一台机器上。多个客户机可以访问该 HTTP 服务器以获取其更新。

作为更新站点的替代性选择,可以使用可选的供应增件(provisioning add-on),来部署 Sametime 功能部件。供应增件的优势在于安装更新时不需要以用户名义进行任何操作。在本文的例子中,用户仍需输入更新站点的位置并安排自动更新。供应增件允许推式更新(与之相反,在本文的例子中是拉式更新)以及排定更新。推式更新允许管理员下推更新,无需与用户方进行任何交互。当更新干扰业务的可能性不大时,排定更新允许在空闲期间发布更新。在后续文章中,我们将讨论使用供应增件作为一种增强的方法,向 IBM Lotus Sametime 分发软件更新。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14751907/viewspace-406696/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/14751907/viewspace-406696/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值