11

我们正在考虑使用配置管理服务作为主要 API 来配置我们基于 OSGi 的应用程序中的组件。如果我们可以重用一些现有的实现,那就太好了,所以我正在尝试调查和评估最受欢迎的实现。我知道有:

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

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

4

3 回答 3

7

Felix 的 Configuration Admin 有一个保留到文件系统的默认实现,但它们为您可以插入的替代后端定义了一个服务接口 ( org.apache.felix.cm.PersistenceManager )。

默认实现执行以下操作:

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

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

于 2009-05-27T14:03:31.830 回答
6

我知道的三个公共实现是

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

Felix 似乎是最新更新且最可靠的。

目前我能找到的只有这些;在 dm Server,我们决定使用 Felix 的包,现在可以从SpringSource Enterprise Bundle Repository获得,您可以在其中快速搜索Apache FelixConfigAdmin

于 2009-06-01T15:37:58.543 回答
1

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

于 2013-12-01T12:14:14.923 回答