Mashup Center v2.0 插件 API 简介
简介
IBM Mashup Center 带有一个数据 mashup 编辑器,该编辑器可用于组合和转换来自多个来源的 XML。这个数据 mashup 编辑器易于使用,但是在某些情况下,使用 XSLT 执行 XML 转换更为高效。您可以了解如何从这两种类型的转换中获益,本文展示如何构建一个可以执行 XSLT 转换的 IBM Mashup Center 插件。
之前有两篇文章 “Extend the reach of data for IBM Mashup Center” 和 “ An IBM Mashup Center plug-in to convert HTML to XML” 描述了如何扩展 IBM Mashup Center 的功能。这两篇文章是基于 Mashup Center Version 1 的。本文关注的重点是 Version 2 插件 API 中的新功能,例如 Basic 和基于表单的认证支持。本文只讨论 Version 1 与 Version 2 插件 API 之间有明显差异的地方。
本文假设您已经熟悉编写 IBM Mashup Center 插件的基础知识。特别是,您应该知道如何用 Java、JSP、JavaScript 和 XSLT 编程。
v2.0 插件 API 变化小结
不同的插件可能要求不同版本的 Java 包。为了提供必要的隔离,从 Version 2 开始,每个插件的类由单独的类装载器来装载。类和特定于插件的 jar 存放在特定于插件的文件夹中,不再像 Version 1 中那样复制到同一个位置。与框架的交互现在主要通过接口而不是具体类来完成。例如,在 Version 1 中,renderEditor 方法以两个具体类 RequestData 和 Entry 作为参数。而在 v2.0 中,类实例改为接口,如清单 1 所示。
清单 1. 使用接口作为参数
// v1.1 public ViewBean renderEditor(RequestData rdata, Entry entry)
public Object renderEditor(IEditorContext context)
以上变化对于插件的实现并无明显的影响。v2.0 中最值得注意的变化在插件 JSP 的实现中。由于 JSP 是由 Web 容器的 JSP 类装载器装载的,它们不能访问特定于插件的(ViewBean)类。v2.0 插件 JSP 不是使用特定于属性的 getter 方法,而是使用通用的名/值对来获取属性。后面一个小节将对此进行演示。
设置 Eclipse 项目
如 Application Programming Interface Reference, Version 2.0中的第 6.1 节所述,在启动期间,服务器搜索放在 <WebApplication>/WEB-INF/plugins 文件夹中的包含第三方插件的 ZIP 文件。这种 ZIP 归档文件必须有以下文件夹结构:
/client/plugins/PLUGIN_DIR — 包含用于浏览器的文件,例如图像和 JavaScript 文件。
/server/plugins/PLUGIN_DIR — 包含插件 manifest 和插件用来显示界面的文件(JSP 页面)。
/server/plugins/PLUGIN_DIR/classes — 包含插件 Java 类。这可以是一个文件夹层次结构。
/server/plugins/PLUGIN_DIR/lib — 包含插件(第三方)使用的 JAR 文件。
如果您熟悉 v1.1 插件的开发,您也许会注意到,classes 和 lib 文件夹不再放在 WEB-INF 文件夹下。为了简化最终的构建和插件的打包,可以使用您喜欢的 IDE 创建一个项目,该项目应具有与最终 ZIP 归档文件相符的目录结构。图 1 显示一个示例 Eclipse 项目的布局。
图 1. Eclipse 项目