SpringOSGINoDM项目的插件说明
本文是开源项目SpringOSGINoDM的插件说明。
补充《开源项目SpringOSGINoDM—OSGI环境下使用Spring的唯一完美解决方案》一文未尽之处。
SpringOSGINoDM项目的地址是:
http://code.google.com/p/springosginodm/
SpringOSGINoDM项目的例子的地址是
http://code.google.com/p/springosginodmsample
项目中文论坛
http://groups.google.com/group/springosginodm?hl=zh-CN&lnk=gcamv
插件说明
1,我选择使用Slf4JLog4JApacheCommonLog这个插件,封装了ApacheCommon Log和log4j,Slf4j。并且输出包org.apache.commons.logging。
其他所有OSGI插件都依赖这个插件进行日志配置。其他插件只需要提供一个log4j的配置文件。并且在代码中使用标准的ApacheCommon Log API获得Log即可。
你也可以选择直接在自己插件中载入这些log的jar包的方式实现log。但请记住一定要使用Slf4j而不是ApacheCommon Log的jar包。
ApacheCommon Log实现,在OSGI环境下无法工作。
2,com.google.code.p.springosginodm插件中,我使用了Spring2.5.4和Spring-OSGI1.1的jar包。但我只输出了以下几个jar包:
com.google.code.p.springosginodm.osgi.context,
com.google.code.p.springosginodm.osgi.service.importer,
org.springframework.osgi.context,
org.springframework.osgi.service.exporter.support
这些是springosginodm项目和Spring-OSGI项目中的几个Package。
没有输出Spring本身的jar包。
因此,如果你依赖springosginodm插件,那么你自己还需要在自己的插件中提供Spring自身的jar包。但不需要提供Spring-OSGI的jar包。
我这样做的原因是,不想使springosginodm替代Spring。给你完全的选择Spring版本的自由。
你的插件还需要Spring的jar包的原因是,如果你使用Spring的配置文件,那么你必须提供Spring的jar包,否则这些文件就无法被Spring使用。
另外,你使用的springosginodm项目的代码中会间接用到Spring的代码。
当然,你也可以选择在springosginodm插件中把Spring的所有package输出。这样你的OSGI插件只需要依赖springosginodm插件,就可以不再载入Spring的jar包。这有利于节约硬盘空间和运行时的内存占用。