为 WebSphere Application Server 开发企业 OSGi 应用程序(7)
 
- UID
- 1066743
|

为 WebSphere Application Server 开发企业 OSGi 应用程序(7)
应用程序组装这个样例博客应用程序的最后一个部分是 EBA。如 所述,EBA 是可部署的单元,包含一个描述应用程序内容的应用程序清单文件。对于这个博客样例,应用程序清单文件看起来如清单 10 所示。
清单 10. 博客样例 APPLICATION MANIFEST 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| Application-Name: Blog
Application-SymbolicName: com.ibm.ws.eba.example.blog.app
Application-Version: 1.0
Application-Content:
com.ibm.ws.eba.example.blog.api;version=1.0.0,
com.ibm.ws.eba.example.blog.persistence;version="[1.0.0, 2.0.0)",
com.ibm.ws.eba.example.blog.web;version=1.0.0,
com.ibm.ws.eba.example.blog;version=1.0.0
Use-Bundle: com.ibm.json.java;version=1.0.0
|
这个应用程序级元数据已在 中介绍过。这个博客样例清单文件中有两点需要注意:
- 为应用程序部署的 API、博客和 Web bundle 的版本必须是 1.0.0 版或更高版本,但持久性bundle的版本范围必须为 1.0.0 到 2.0.0(不包括)。这意味着,尽管所有 bundle 在应用程序初始部署时都可以处于 1.0.0 版,但应用程序已被组装为支持这些 bundle 的未来更新。如果在应用程序部署之后的某个时间,持久性 bundle 的一个 1.1.0 版变得可用,那么 WebSphere Application Server 管理员可以(通过 wsadmin 或管理控制台)更新应用程序中的那个 bundle。这个博客样例提供博客持久性 bundle 的一个附加 1.1.0 版来演示这个管理更新功能。
- Use-Bundle 头部独立于 Application-Content 列示 com.ibm.json.java bundle。这表明这个 bundle 是可以与其他应用程序共享的。Application-Content 中列出的所有 bundle 将在一个 OSGi 框架实例中运行,这个框架将这些 bundle 与同一个应用程序服务器中的其他 OSGi 应用程序隔离。这样,一个 OSGi 应用程序就不会对另一个 OSGi 应用程序产生不必要的副作用,这只是因为该 OSGi 应用程序被部署到同一个目标服务器。由于 OSGi 应用程序支持的目标之一是以一种与部署过程集成的方式简化应用程序之间的模块共享,Use-Bundle 头部提供了一种机制来识别应该被共享的模块。除了显示 Use-Bundle 内容外,其包或服务在应用程序部署时被隐式解算的任何 bundle 也视为正在提供共享内容。当应用程序在目标服务器上启动时,被识别为正在被共享的任何 bundle 都将被加载到一个服务器范围的父 OSGi 框架中,该框架的内容对每个隔离的应用程序框架都可见。
这个博客样例被打包为演示 WebSphere Application Server bundle 知识库的使用:一个必要的 bundle com.ibm.json.java 独立于 blog.eba 存档提供。这个共享 bundle 必须在 blog.eba 部署之前安装到 WebSphere Application Server bundle 知识库中。部署过程根据已部署的 EBA 存档、已配置的 bundle 知识库和 WebSphere Application Server 提供的 API/SPI 包(比如 Java EE 包和 com.ibm.websphere 包)的内容计算这个包以及所有应用程序 bundle 的依赖项。如果所有依赖项都被解算,则应用程序将被成功部署到已配置的目标服务器。在 WebSphere Application Server 管理控制台中,已安装的 OSGi 应用程序作为 Java EE 和 SCA 应用程序出现在相同的 Business-level applications (BLA) 集合视图中。(请参见 了解更多细节。) |
|
|
|
|
|