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

时间:2015-07-21 09:21:02

标签: java configuration osgi cq5

我想覆盖

的标准osgi cq组件配置
com.adobe.granite.ui.clientlibs.impl.HtmlLibraryManagerImpl.xml

默认配置对我来说很好,但我想只更改一个选项。

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

2 个答案:

答案 0 :(得分:1)

As per the documentation,创建配置节点&只覆盖您想要更改的值:

  

对于要配置的每个参数,请在其上创建属性   这个节点:

     
      
  • 名称:参数名称,如Felix控制台所示;名字是   显示在字段描述末尾的括号中。例如,   用于激活使用的创建版本   versionmanager.createVersionOnActivation
  •   
  • 根据需要输入
  •   
  • 值:   按要求。
  •   
     

您只需要为要配置的参数创建属性,其他人仍将采用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.homeaclsetup.privileges.group值保留为默认值,因为它根本没有包含在配置节点中。

据我所知,它会选择组件的默认值 ,而不是AEM的默认值 - 可能有一个开箱即用的OSGi配置您可以覆盖的libs/文件夹中的节点,因此请小心。

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

答案 1 :(得分:1)

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