无 SpringSource dm Server 的数据访问与捆绑管理
1. BND 助力 JDBC 驱动迁移至 OSGi 合规
在某些情况下,捆绑包的最终 MANIFEST.MF
文件会包含如 Bundle-Version: 8.3
和 Bundle-SymbolicName: com.postgres
这样的头部信息。BND 可以帮助将 JDBC 驱动或其他 JAR 迁移至 OSGi 合规。不过要注意,BND 还有许多其他选项,包括更多正则表达式、宏、过滤器,以及对嵌入图像或整个 JAR 等资源的支持。
并非所有 JAR 都能轻松成为 OSGi 合规的捆绑包。如果 Java 类中存在某些特定条件,即便能确定捆绑包需要导入和导出的包,一些在非 OSGi 环境中无害的 Java 指令,可能不适合 OSGi 的类加载机制,比如 System.exit()
调用、静态 main()
方法,以及基于单类加载器假设设计的代码。因此,最好进行必要测试,确保迁移后的代码不包含这些指令,避免在 OSGi 环境中出现意外行为。Knopflerfish OSGi 实现提供了一种非标准方式来处理这类 Java 指令,更多信息可查看 相关演示 。