问题 OSGi Configuration Admin Service的现有实现?


我们正在考虑使用Configuration Admin Service作为主要API来配置基于OSGi的应用程序中的组件。如果我们可以重用一些现有的实现,那将是很好的,所以我试图调查和评估最流行的实现。我知道有:

是否还有其他实现需要考虑?

此外,我无法找到这些实现的任何好文档。我将主要关注特定于实现的细节。例如,我想知道不同的实现如何持久保存配置数据(例如,多个属性文件?XML文件?多个XML文件?数据库?,...)。


4457
2018-05-27 12:33


起源



答案:


我所知道的三个公开实现是

Equinox的实施 ConfigurationAdmin 服务似乎不支持对持久性策略的精细控制,就像Felix那样,并且Knopflerfish实现看起来(我只是简单地阅读了源代码)类似于Equinox的。

Felix one似乎是最近更新和最可靠的。

目前这些是我能找到的唯一的;在dm Server,我们决定使用Felix的捆绑包,现在可以从中获取 SpringSource Enterprise Bundle Repository,您可以快速搜索 Apache Felix 要么 ConfigAdmin


6
2018-06-01 15:37



感谢您的确认,我们决定使用Felix Config Admin实现(以及我们自己的持久性策略)。 - Pavol Juhos


答案:


我所知道的三个公开实现是

Equinox的实施 ConfigurationAdmin 服务似乎不支持对持久性策略的精细控制,就像Felix那样,并且Knopflerfish实现看起来(我只是简单地阅读了源代码)类似于Equinox的。

Felix one似乎是最近更新和最可靠的。

目前这些是我能找到的唯一的;在dm Server,我们决定使用Felix的捆绑包,现在可以从中获取 SpringSource Enterprise Bundle Repository,您可以快速搜索 Apache Felix 要么 ConfigAdmin


6
2018-06-01 15:37



感谢您的确认,我们决定使用Felix Config Admin实现(以及我们自己的持久性策略)。 - Pavol Juhos


Felix的配置管理员有一个 默认实现 持久存储到文件系统,但它们定义了一个服务接口(org.apache.felix.cm.PersistenceManager)替代你可以插入的替代后端。

默认实现执行以下操作:

FilePersistenceManager类存储配置数据   给定目录中的属性类文件。所有配置文件都是   位于同一目录中。

配置文件通过附加在配置目录中创建   扩展名“.config”到配置的PID。 PID   通过将包围的点替换为斜杠,将其转换为相对路径名。   PID中的非符号名称字符用它们编码   十六进制的Unicode字符代码。


7
2018-05-27 14:03





只是为了进一步完成答案:我个人也更喜欢Felix的实现。有关如何使用PersistenceManager更改后端存储方式的示例,另请参阅 这个 使用标准Java属性文件作为后备存储的实现。有一些限制,但至少允许您将您的配置与您的应用程序一起存储,而不是OSGi框架实现。


1
2017-12-01 12:14