《使用BND工具将JDBC驱动OSGi化》
在Java开发中,无论是使用DAO - JDBC包还是DAO - JPA包,JDBC驱动对于实现与关系型数据库管理系统(RDBMS)的连接都至关重要。RDBMS供应商提供的JDBC驱动,为从Java环境连接到特定的RDBMS品牌提供了必要的“钩子”。
在OSGi应用程序设计里,这个驱动(包)被一个包用于将Java数据源注册为OSGi服务,供其他需要RDBMS连接的包使用。不过,当所需的RDBMS驱动在SpringSource Enterprise Bundle Repository中不可用时,该怎么办呢?由于RDBMS供应商和版本众多,JDBC驱动的种类也很丰富,即便该仓库在将常用JAR文件OSGi化方面取得了显著进展,也不可能涵盖所有的OSGi化JAR包。
向RDBMS供应商索要OSGi化版本的JDBC驱动可能不太现实,因为OSGi在Java领域的广泛应用是近期才开始的,主流供应商可能还需要几年时间才会开始分发带有OSGi头文件的JAR文件。所以,自己将JDBC驱动JAR文件OSGi化是一种可行的选择。而BND工具可以帮助我们完成这个过程。
1. BND工具介绍
BND工具是一个Java实用程序,它可以检查已编译JAR文件的内容,并尝试构建在OSGi环境中部署JAR文件所需的MANIFEST.MF文件,本质上是将JAR文件转换为OSGi包。
BND工具的优势在于,它可以在没有源代码的情况下将JAR文件迁移为OSGi包。在将现有项目迁移到基于OSGi的架构时,如果没有源代码,确定类的导入/导出关系可能很困难,此时BND工具就显得尤为重要。
BND工具可以通过多种方式运行,如An