级别: 中级 Shruti Gandhi, 开发人员, IBM
2007 年 10 月 12 日 本文展示了如何创建 IBM Lotus Sametime Connect 插件,用于检索澳网公开赛的最新新闻,以及怎样在有限的时间内从 IBM DEMOnet Web 站点安装该插件。您还可以从本文下载该插件。
澳大利亚的墨尔本市正在举办 2007 年澳大利亚网球公开赛,赛期为 2007 年 1 月 15 日到 1 月 28 日。即使没有出席这场比赛,您也可以使用 IBM Lotus Sametime Connect V7.5 的新 RSS 提要插件来随时获得最新的比赛新闻。RSS 提要插件将使用 RSS 提要技术来查找有关澳大利亚公开赛的最新赛况,并在 Lotus Sametime Connect 客户机的 mini-app 区域中显示最新的新闻标题。
本文阐述了如何订阅 RSS 提要并向插件提供 RSS 数据来查找实时更新(在这里是关于澳大利亚公开赛的实时更新)。插件将定期查找新闻更新并在 Contacts 列表的 mini-app 区域中显示更改内容(参见图 1)。
图 1. mini-app 区域中的澳大利亚网球公开赛新闻
入门
要构建 RSS 提要插件,需要为 Lotus Sametime 做好环境插件准备。以下是开发任何 Lotus Sametime 插件时所执行的基本步骤:
- 下载 Eclipse SDK 3.2.1 并为 Eclipse 安装 J9 Java Development Tools (JDT) 启动插件。
- 配置运行时以便使用 J9。
- 为 Java Developer Kit (JDK) 1.4 配置 Eclipse 编译器设置。
- 指定 Lotus Sametime 作为 Eclipse 中的目标平台。
可以从 Eclipse Web 站点 下载 Eclipse SDK 3.2.1。在 Lotus Sametime SDK 文档(可用于 Lotus Sametime SDK )中对前三个步骤进行了更加详细的阐述,因此本文不再赘述。
注意:可以从 developerWorks Lotus Toolkits 页面 下载 Lotus Sametime SDK。
指定 Lotus Sametime 作为 Eclipse 中的目标平台
要使用 Eclipse 来创建 Lotus Sametime 的插件,则必须指定 Lotus Sametime 作为目标平台。在 Eclipse 中选择 Window - Preferences 来打开 Preferences 对话框。在左侧窗格中,选择 Plug-in Development - Target Platform。
在 Location 字段中,浏览到 Lotus Sametime Connect 客户机的安装位置,例如 C:\Program Files\IBM\Sametime,然后单击 Reload(参见图 2)。
图 2. Preferences 对话框
现在,将编写插件用于演示如何使用 RSS 信息来提供最适合用户的更新。
创建新插件
在 Eclipse 中,若要创建插件,需要先从一个项目开始。为此,执行以下步骤:
- 选择 File - New Project。
- 在 New Project 对话框中,打开 Plug-in Development 文件夹,选择 Plug-in Project,然后单击 Next。
- 在 New Plug-in Project 向导中,将项目命名为:com.ibm.collaboration.realtime.ausopen,然后单击 Next。
- 在下一个向导面板中,完成以下字段的设置:
- Plug-in ID:设置为 com.ibm.collaboration.realtime.ausopen(或类似的内容)
- Plug-in Version:设置为 1.0.0
- Plug-in Name:设置为 com.ibm.collaboration.realtime.ausopen(与 Plug-in ID 的内容一致)
- Plug-in Provider:输入公司名称。
- Classpath:设置为 ausopen.jar
- 选择 “Generate an activator, a Java class that controls the plug-in's life cycle” 和 “This plug-in will make contributions to the UI” 选项。选中第二个选项后,Activator 类将扩展 AbstractUIPlugin,后者扩展了 Plugin 类。
- 完成上述操作后单击 Finish。
Plug-in 的从属性
RSS 提要插件依赖于其它插件来实现对 Lotus Sametime Connect 用户接口的扩展。按照以下步骤来添加所需的插件:
- 在 Eclipse 的 Manifest Editor 中打开 META-INF MANIFEST.MF。
- 选择 Dependencies 附签。
- 在 Required Plug-ins 部分添加以下插件(参见图 3):
- org.eclipse.ui
- org.eclipse.core.runtime
- com.ibm.collaboration.realtime.application
- com.ibm.collaboration.realtime.core
- com.ibm.collaboration.realtime.ui
- com.ibm.collaboration.realtime.imhub
- com.ibm.collaboration.realtime.browser
图 3. Dependencies 附签
将插件添加到 mini-app 区域
要在图 1 所示的 mini-app 区域中查看 RSS 提要内容,则在 Eclipse 中编辑 plugin.xml 文件来添加以下扩展名,如清单 1 所示。
清单 1. Plugin.xml 文件扩展
<plugin>
<extension
point="com.ibm.collaboration.realtime.imhub.miniApps">
<miniApp
category="shelf.applications"
class="com.ibm.collaboration.realtime.ausopen.views.NewsView"
displayName="Australian Open News"
icon="icons/tennis_ball.JPG"
id="com.ibm.webahead.ausopen.views.NewsView"
maxHeight="80"/>
</extension>
</plugin>
|
在 mini-app 区域中浏览提要内容需要实现 NewsView 类。该类将创建组合体来显示提要数据。
或者,可以按照以下步骤,通过 MANIFEST.MF 中的 Extensions 附签来添加 NewsView 类:
- 在 Eclipse 的 Manifest Editor 中打开 MANIFEST.MF。
- 选择 Extensions 附签。
- 单击 Add 按钮。
- 在 New Extension 对话框中,选择 com.ibm.collaboration.realtime.imhub.miniApps,然后单击 Finish。
该扩展应与图 4 所示类似。
图 4. 添加到扩展的 NewsView Class
创建扩展 AbstractMiniApp 的类
使用 com.ibm.collaboration.realtime.imhub.miniApps 扩展点,插件可以用于 mini-app 区域。该类允许在 Contacts 列表的下半部分创建控件,它扩展了 AbstractMiniApp 类。该类定义了所需的方法,包括 createControl 方法,载入 mini-app 区域时将调用此方法。
如图 2 所示,实现了 createControl 方法,调用该方法为 mini-app 创建并呈现 org.eclipse.swt.widgets.Control。
清单 2. createControl 方法
public class NewsView extends AbstractMiniApp {
public NewsView() {
}
public Control createControl(Composite arg0) {
// TODO Auto-generated method stub
}
public void init() throws Exception {
// TODO Auto-generated method stub
}
}
|
对于澳大利亚公开赛,使用 Browser widget 来显示 RSS 提要 数据的定制视图。在该插件中,将检索 http://www.australianopen.com/en_AU/news/rss/ausopen.rss 上的提要 数据。
注意:本文假定想要订阅的 RSS 提要 已经存在。可以通过多种方式创建 RSS 提要。尽管可以手动创建 提要,不过可以使用工具来生成 XML 提要页面,例如 FeedCreator 或 RSS Creator。提要页面是已填充了标准 RSS 字段(pubdate、title、description、link 等)的 XML 页面。(有关更多信息,请参阅 XML.com 上的文章 “什么是 RSS”。)
现在看一下如何检索提要的更改。若要跟踪提要,RSS 提要插件将定期轮询提要页面以获取更新。在插件中创建 org.eclipse.core.runtime.jobs.Job,它每 60 分钟运行一次并从提要获取所有项来查找更新。通过解析提要 数据从页面获得项。因为 RSS 提要 格式的广泛性,有很多解析器可用于检索单个项。甚至可以手动编写解析器,但在本例中将使用 Sun Microsystems 的解析器 (com.sun.cnpi.rss.parser.RssParser)。对于该插件来说,将从每项中提取字段,如 title、link 和 pubDate。
将在 Browser 小部件中显示这些字段用于定制的视图,如清单 3 所示。
清单 3. Browser 小部件
<a href=link>
<font size=2 color='blue'>
<b>title</b>
</font>
</a>
<font size=0.5 color='black'>
pubdate
</font>
|
向浏览器添加位置侦听器,每次单击 mini-app 区域的新闻条目时都将启动新浏览器。然后该 Browser 小部件返回到 createControl 方法以便在 mini-app 区域中显示,如图 1 所示。
安装 RSS 提要插件
可以从本文的 下载 部分下载该插件并将其安装在本地更新站点上(如果有可用的更新站点的话)。可以在 developerWorks Lotus 文章 “为 IBM Lotus Sametime Connect 插件创建更新站点” 中找到有关如何创建自己的更新站点的内容。
注意:本部分假定使用更新站点来安装并更新 Sametime 插件。在本例中,将展示如何连接到由 IBM DEMOnet Web 站点托管的 IBM 更新站点。该站点只能临时用于 2007 年澳大利亚网球公开赛期间,比赛结束后可以从本文下载该插件并将它安装自己的更新站点上。
请确保 Lotus Sametime Connect V7.5 处于打开状态。在系统托盘中,右键单击 Lotus Sametime 图标,然后选择 Manage Updates - Download 插件。或者,如果打开了客户机,则可以从 Lotus Sametime Connect 选择 File - Manage Updates - Download 插件。
在 Install/Update 对话框中,选择 “Search for new features to install” 选项,然后单击 Next。
图 5. Install/Update 对话框
在 “Update sites to visit” 对话框中,单击 New Remote Site 按钮来创建从其中下载插件的新远程站点。如果时间有限,可以从 IBM DEMOnet Web 站点下载 RSS 提要插件。在 New Update Site 对话框中(参见图 6),输入站点名称和 URL。要连接到 IBM DEMOnet 站点,可以输入以下名称和 URL:
- Name:http://stdemo3.dfw.ibm.com/plugins/ausopen/site.xml
- URL:http://stdemo3.dfw.ibm.com/plugins/ausopen/site.xml
图 6. New Update Site 对话框
在 “Update sites to visit” 对话框中,查看刚刚创建的远程站点(参见图 7)。选择该站点并单击 Next。
图 7. 带有新远程站点的 Update sites to visit 对话框
如果正在使用 IBM DEMOnet Web 站点,那么在 Installation 对话框中选择 FeatureAusOpen 1.0.0,接受许可协议的条款,然后单击 Finish。
打开 Verification 窗口后,单击 Install 来安装插件。安装插件后,需要重新启动 Lotus Sametime Connect。因此提示重新启动客户机时,单击 Yes。
下一次打开 Lotus Sametime 时,RSS 提要插件将出现在 Contacts 列表的 mini-apps 区域中,而且将显示最新的澳大利亚公开赛的新闻事件,如图 1 所示。
结束语
开发了专用于本年度澳大利亚网球公开赛的 RSS 提要插件,但是可以获取该插件并用于任何现有 RSS 提要。在 Sametime 环境中实现该插件,而且将 Lotus Sametime Connect 客户机变为不仅仅是传递即时消息的客户机!
致谢
用于澳大利亚网球公开赛的 RSS 提要插件是在 IBM 的 Konrad Lagarde 所编写的 Sametime News 插件的基础上开发的,并且在 IBM 内部进行了部署。
下载 | 描述 | 名字 | 大小 | 下载方法 |
|---|
| 示例 RSS 提要插件 | com.ibm.collaboration.realtime.ausopen_1.0.0.jar | 77 KB | HTTP |
|---|
参考资料 学习
获得产品和技术
讨论
关于作者  | |  | Shruti Gandhi 是实时协作领域基于位置的服务方面的一流架构师。她也是一位使用 IBM Lotus Sametime Connect V7.5 客户机的开发人员。她目前正在哥伦比亚大学攻读计算机科学硕士学位,即将毕业。 |
对本文的评价
|