首次部署后,不会删除对话框中已删除的节点

时间:2016-02-09 16:09:12

标签: aem jcr jackrabbit-oak

AEM 6.1:我有一个cq:Dialog节点,结构如下:

+- myDialog
 |- cq:Dialog
  |- content
    |- layout
    |- items
     |- myTab
      |- somethingInside 

我做了一些改动,添加了两件事并删除了myTab。我在代码中有当前的结构:

+- myDialog
 |- cq:Dialog
  |- content
    |- layout
    |- items
     |- myNewTab
     |- myNewestTab

我使用AEM标准包装创建了一个zip包并将其安装在作者身上,然后我得到:

 +- myDialog
 |- cq:Dialog
  |- content
    |- layout
    |- items
     |- myTab
      |- somethingInside
     |- myNewTab
     |- myNewestTab

但是,在第二次部署甚至重新安装包之后,它会删除myTab节点并且正常工作。这是一个已知的AEM问题还是我在这里做错了什么?

我的_cq_dialog.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0"
          xmlns:cq="http://www.day.com/jcr/cq/1.0"
          xmlns:jcr="http://www.jcp.org/jcr/1.0"
          xmlns:nt="http://www.jcp.org/jcr/nt/1.0"
          jcr:primaryType="nt:unstructured"
          sling:resourceType="cq/gui/components/authoring/dialog"
          jcr:title="Text &amp; Title">
    <content jcr:primaryType="nt:unstructured"
             sling:resourceType="granite/ui/components/foundation/container">
        <layout jcr:primaryType="nt:unstructured"
                sling:resourceType="granite/ui/components/foundation/layouts/tabs"
                type="nav" />
        <items jcr:primaryType="nt:unstructured">
            <myNewTab jcr:primaryType="nt:unstructured"
                  sling:resourceType="granite/ui/components/foundation/section"
                  jcr:title="New Tab">
                <layout jcr:primaryType="nt:unstructured"
                        sling:resourceType="granite/ui/components/foundation/layouts/fixedcolumns" />
                <items jcr:primaryType="nt:unstructured">
                    <column jcr:primaryType="nt:unstructured"
                            sling:resourceType="granite/ui/components/foundation/container">
                        <items jcr:primaryType="nt:unstructured">
                        </items>
                    </column>
                </items>
            </myNewTab>
            <myNewestTab jcr:primaryType="nt:unstructured"
                  sling:resourceType="granite/ui/components/foundation/section"
                  jcr:title="Newest Tab">
                <layout jcr:primaryType="nt:unstructured"
                        sling:resourceType="granite/ui/components/foundation/layouts/fixedcolumns" />
                <items jcr:primaryType="nt:unstructured">
                    <column jcr:primaryType="nt:unstructured"
                            sling:resourceType="granite/ui/components/foundation/container">
                        <items jcr:primaryType="nt:unstructured">
                        </items>
                    </column>
                </items>
            </myNewestTab>
        </items>
    </content>
</jcr:root>

1 个答案:

答案 0 :(得分:0)

删除myTab节点后,您可能还没有保存它。因此,当您创建一个包时,它包含所有三个节点,即myTab,myNewTab,myNewestTab。

请注意,您的dialog.xml不包含任何<myTab>元素。因此,如果重新安装它,则不会创建myTab节点。

再次尝试使用更多实验,如果再次发生则分享。

希望它能解释你的观点。 :)