我一直在使用Maven在felix服务器上部署我的捆绑包 有关Felix / OSGi的一件令我着迷的事情是,如果我已经配置了一个带有一些值的组件并且我再次部署我的包,即使为该配置再次调用@Activate方法但是我放在那里的值在部署之前仍然存在。
Felix如何实现这一点,/system/console/configMgr
显示的配置是不是用于创建OSGi组件的Java类实例?
答案 0 :(得分:2)
map
服务(Apache Felix Configuration Admin)处理这些细节的工作。理想情况下,"如何"是无关紧要的,因为这些是实现细节,但如果您在专门环境(例如嵌入式设备)中运行OSGi框架,则必须选择在主机平台限制范围内工作的配置管理提供程序。
在幕后,Felix配置管理服务使用一个或多个PersistenceManager
来保留和检索托管服务的配置数据。如果您对这些实施细节感到好奇,可以provides an implementation或者read about them on the Felix website。
答案 1 :(得分:0)
配置是OSGi由Configuration Admin Service
处理如果你使用像Karaf这样的OSGi容器,你会注意到你的配置独立于你的捆绑包($ KARAF_HOME / etc),并由配置管理服务注入。
答案 2 :(得分:0)
如前所述,Configuration Admin是您的朋友。在OSGi enRoute中,我们有一个关于Configuration Admin的页面和一个包含大量Configuration Admin example code的示例项目。