OSGi控制台中的配置保存在哪里?

9
当我们在Apache Felix Web OSGi控制台的配置选项卡中更新组件的任何配置时,这些配置设置保存在哪里?这是针对AEM 6.0或更高版本的。
2个回答

14

手动保存的配置设置存储在本地文件系统中的 AEM 安装文件夹中的 crx-quickstart/launchpad/config 目录下,此外还作为.config文件存储在内容存储库中的/apps/system/config

例如,如果您正在寻找com.example.MyComponent的配置,则可以在本地文件系统中的crx-quickstart/launchpad/config/com/example/MyComponent.config中找到它作为文本文件,并且在内容存储库中的/apps/system/config/com.example.MyComponent.config

当您在OSGi控制台手动更改设置时,这两个位置的文件将被更新。

在AEM中,您还可以将配置存储在sling:OsgiConfig类型的JCR节点中。当您手动保存配置时,不会创建或更新这些节点,但它们提供了一种管理配置为内容的简洁方式。

当AEM查找配置时,使用以下解析顺序:

  1. 位于/apps/*/config下的节点,无论是属性文件还是带有jcr:primaryType节点的 JCR 节点sling:OsgiConfig
  2. /libs/*/config下类型为sling:OsgiConfig的节点,这些是随AEM一起提供的组件的OOTB定义。
  3. 来自本地文件系统中<aem-installation-directory>/crx-quickstart/launchpad/config/.config文件

根据 Apache Sling JCR Installer 的 OSGi 配置,sling:OsgiConfig 节点可以在手动更改配置时进行写入。还有许多设置影响查找所述配置,因此熟悉此配置是个好主意。

请看官方文档获取更全面的信息。
如果您正在尝试让存储在节点中的配置按预期工作,但不确定是否已经缓存了同一服务的其他配置,请按照以下步骤依次进行操作,这些步骤在AEM 6.4中持续有效:
  1. 删除刚创建的节点
  2. 转到Felix控制台的configMgr,找到相关服务并删除配置。
  3. 重新创建节点(我通常将这些保存在CRX包中,可以简单地重新安装)

1
配置由felix configadmin bundle存储在felix bundle缓存中。不确定AEM中的此缓存位于何处。在Apache Karaf中,我的情况下配置位于:
data/cache/bundle7/date/config

其中bundle id 7是configadmin bundle的id。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接