Java 如何部分覆盖OOTB组件的osgi配置?

Java 如何部分覆盖OOTB组件的osgi配置?,java,configuration,osgi,aem,Java,Configuration,Osgi,Aem,我想覆盖的标准osgi cq组件配置 com.adobe.granite.ui.clientlibs.impl.HtmlLibraryManagerImpl.xml 默认配置对我来说很好,但我只想更改一个选项 我不想覆盖完整配置,但只覆盖单个选项(minify应设置为false)。创建配置节点并仅覆盖要更改的值即可: 为要配置的每个参数创建一个属性 此节点: 名称:Felix控制台中显示的参数名称;名字是 显示在字段描述末尾的括号中。例如 对于激活时创建版本,请使用 versionmanag

我想覆盖的标准osgi cq组件配置

com.adobe.granite.ui.clientlibs.impl.HtmlLibraryManagerImpl.xml
默认配置对我来说很好,但我只想更改一个选项

我不想覆盖完整配置,但只覆盖单个选项(minify应设置为false)。

创建配置节点并仅覆盖要更改的值即可:

为要配置的每个参数创建一个属性 此节点:

  • 名称:Felix控制台中显示的参数名称;名字是 显示在字段描述末尾的括号中。例如 对于激活时创建版本,请使用
    versionmanager.createVersionActivation
  • 类型:视情况而定
  • 值: 根据需要
您只需为要配置的参数创建属性,其他人仍将采用CQ设置的默认值。[强调我的]

只需确保不要使用空白默认值覆盖值,例如:

<jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0"     
          xmlns:jcr="http://www.jcp.org/jcr/1.0"
          jcr:primaryType="sling:OsgiConfig"
          cq.homeaclsetup.privileges.user="jcr:all"/>

应该将
cq.homeaccsetup.privileges.group
值保留为默认值,因为它根本没有包含在配置节点中

但据我所知,它将为组件选择默认值,而不是AEM的默认值-在
libs/
文件夹中可能有一个现成的OSGi配置节点,您可以覆盖它,因此要小心

在这种情况下,您需要将配置复制到节点中,以便不会丢失。

在/apps/system/config下创建一个名为“com.adobe.granite.ui.clientlibs.impl.htmlibrarymanagerimpl”的节点,并根据需要进行更改