You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by kw...@apache.org on 2023/08/02 11:59:26 UTC

[jackrabbit-filevault-package-maven-plugin] 01/01: JCRVLT-715 always attach supplemental content packages with correct extension

This is an automated email from the ASF dual-hosted git repository.

kwin pushed a commit to branch bugfix/JCRVLT-715-potentially-wrong-extension-used-for-supplemental-artifacts
in repository https://gitbox.apache.org/repos/asf/jackrabbit-filevault-package-maven-plugin.git

commit a3ac9d498c66fbcd1580907ceaf3c42726b5fa3a
Author: Konrad Windszus <kw...@apache.org>
AuthorDate: Wed Aug 2 13:59:19 2023 +0200

    JCRVLT-715 always attach supplemental content packages with correct
    extension
---
 .../filevault/maven/packaging/mojo/VaultMojo.java  |   2 +-
 .../packaging/it/SupplementalArtifactsIT.java      |  10 +
 .../assembly.xml                                   |  18 +
 .../expected-files-additional-cp.txt               |  23 +
 .../jcr_root/apps/wcm/.content.xml                 |  20 +
 .../jcr_root/apps/wcm/core/.content.xml            |  20 +
 .../jcr_root/apps/wcm/core/.gitignore              |   1 +
 .../jcr_root/apps/wcm/core/content/.content.xml    |  20 +
 .../jcr_root/apps/wcm/core/content/siteadmin.xml   | 764 +++++++++++++++++++++
 .../pom.xml                                        |  85 +++
 .../src/dummy.text                                 |   1 +
 11 files changed, 963 insertions(+), 1 deletion(-)

diff --git a/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/mojo/VaultMojo.java b/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/mojo/VaultMojo.java
index 0ef636a..2fa7a8d 100644
--- a/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/mojo/VaultMojo.java
+++ b/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/mojo/VaultMojo.java
@@ -565,7 +565,7 @@ public class VaultMojo extends AbstractSourceAndMetadataPackageMojo {
             mavenArchiver.createArchive(null, project, getMavenArchiveConfiguration(getGeneratedManifestFile(false)));
 
             if (StringUtils.isNotEmpty(classifier)) {
-                projectHelper.attachArtifact(project, finalFile, classifier);
+                projectHelper.attachArtifact(project, PACKAGE_TYPE, classifier, finalFile );
             } else {
                 // set the file for the project's artifact and ensure the
                 // artifact is correctly handled with the "zip" handler
diff --git a/src/test/java/org/apache/jackrabbit/filevault/maven/packaging/it/SupplementalArtifactsIT.java b/src/test/java/org/apache/jackrabbit/filevault/maven/packaging/it/SupplementalArtifactsIT.java
index 09ac7d0..f6564e9 100644
--- a/src/test/java/org/apache/jackrabbit/filevault/maven/packaging/it/SupplementalArtifactsIT.java
+++ b/src/test/java/org/apache/jackrabbit/filevault/maven/packaging/it/SupplementalArtifactsIT.java
@@ -38,4 +38,14 @@ class SupplementalArtifactsIT {
         projectBuilder.verifyExpectedFiles(new File(projectBuilder.getTestProjectDir(), "expected-files-libs.txt"), 
                 ProjectBuilder.verifyPackageZipEntries(new File(projectBuilder.getTestProjectDir(), "target/package-plugin-test-pkg-1.0.0-SNAPSHOT-libs.zip")));
     }
+
+    @Test
+    void testTarPrimaryTypeAndContentPackage(ProjectBuilder projectBuilder) throws VerificationException, IOException {
+        projectBuilder.setTestProjectDir("/supplemental-artifacts/archive-and-content-package-in-one-module");
+        projectBuilder.setVerifyPackageContents(false); // main artifact is no content package
+        projectBuilder.build();
+        // verify contents of supplemental artifact (with classifier "additional-cp")
+        projectBuilder.verifyExpectedFiles(new File(projectBuilder.getTestProjectDir(), "expected-files-additional-cp.txt"), 
+                ProjectBuilder.verifyPackageZipEntries(new File(projectBuilder.getTestProjectDir(), "target/package-plugin-test-pkg-1.0.0-SNAPSHOT-additional-cp.zip")));
+    }
 }
diff --git a/src/test/resources/test-projects/supplemental-artifacts/archive-and-content-package-in-one-module/assembly.xml b/src/test/resources/test-projects/supplemental-artifacts/archive-and-content-package-in-one-module/assembly.xml
new file mode 100644
index 0000000..002705f
--- /dev/null
+++ b/src/test/resources/test-projects/supplemental-artifacts/archive-and-content-package-in-one-module/assembly.xml
@@ -0,0 +1,18 @@
+<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.0.0"
+          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+          xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.0.0 http://maven.apache.org/xsd/assembly-2.0.0.xsd">
+    <id>distribution</id>
+    <formats>
+        <format>tar</format>
+    </formats>
+    <includeBaseDirectory>false</includeBaseDirectory>
+    <fileSets>
+        <fileSet>
+            <directory>${basedir}/src</directory>
+            <includes>
+                <include>**/*</include>
+            </includes>
+            <outputDirectory></outputDirectory>
+        </fileSet>
+    </fileSets>
+</assembly>
\ No newline at end of file
diff --git a/src/test/resources/test-projects/supplemental-artifacts/archive-and-content-package-in-one-module/expected-files-additional-cp.txt b/src/test/resources/test-projects/supplemental-artifacts/archive-and-content-package-in-one-module/expected-files-additional-cp.txt
new file mode 100644
index 0000000..bc1a85a
--- /dev/null
+++ b/src/test/resources/test-projects/supplemental-artifacts/archive-and-content-package-in-one-module/expected-files-additional-cp.txt
@@ -0,0 +1,23 @@
+META-INF/
+META-INF/MANIFEST.MF
+META-INF/maven/
+META-INF/maven/org.apache.jackrabbit.filevault/
+META-INF/maven/org.apache.jackrabbit.filevault/package-plugin-test-pkg/
+META-INF/maven/org.apache.jackrabbit.filevault/package-plugin-test-pkg/pom.properties
+META-INF/maven/org.apache.jackrabbit.filevault/package-plugin-test-pkg/pom.xml
+META-INF/vault/
+META-INF/vault/config.xml
+META-INF/vault/definition/
+META-INF/vault/definition/.content.xml
+META-INF/vault/filter.xml
+META-INF/vault/properties.xml
+META-INF/vault/settings.xml
+jcr_root/
+jcr_root/apps/
+jcr_root/apps/wcm/
+jcr_root/apps/wcm/.content.xml
+jcr_root/apps/wcm/core/
+jcr_root/apps/wcm/core/.content.xml
+jcr_root/apps/wcm/core/content/
+jcr_root/apps/wcm/core/content/.content.xml
+jcr_root/apps/wcm/core/content/siteadmin.xml
diff --git a/src/test/resources/test-projects/supplemental-artifacts/archive-and-content-package-in-one-module/jcr_root/apps/wcm/.content.xml b/src/test/resources/test-projects/supplemental-artifacts/archive-and-content-package-in-one-module/jcr_root/apps/wcm/.content.xml
new file mode 100755
index 0000000..dcf03f8
--- /dev/null
+++ b/src/test/resources/test-projects/supplemental-artifacts/archive-and-content-package-in-one-module/jcr_root/apps/wcm/.content.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+  -->
+
+<jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0"
+    jcr:primaryType="sling:Folder"/>
diff --git a/src/test/resources/test-projects/supplemental-artifacts/archive-and-content-package-in-one-module/jcr_root/apps/wcm/core/.content.xml b/src/test/resources/test-projects/supplemental-artifacts/archive-and-content-package-in-one-module/jcr_root/apps/wcm/core/.content.xml
new file mode 100755
index 0000000..dcf03f8
--- /dev/null
+++ b/src/test/resources/test-projects/supplemental-artifacts/archive-and-content-package-in-one-module/jcr_root/apps/wcm/core/.content.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+  -->
+
+<jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0"
+    jcr:primaryType="sling:Folder"/>
diff --git a/src/test/resources/test-projects/supplemental-artifacts/archive-and-content-package-in-one-module/jcr_root/apps/wcm/core/.gitignore b/src/test/resources/test-projects/supplemental-artifacts/archive-and-content-package-in-one-module/jcr_root/apps/wcm/core/.gitignore
new file mode 100644
index 0000000..c57d302
--- /dev/null
+++ b/src/test/resources/test-projects/supplemental-artifacts/archive-and-content-package-in-one-module/jcr_root/apps/wcm/core/.gitignore
@@ -0,0 +1 @@
+# deliberately empty as this is only to check that this will not end up in the generated package
\ No newline at end of file
diff --git a/src/test/resources/test-projects/supplemental-artifacts/archive-and-content-package-in-one-module/jcr_root/apps/wcm/core/content/.content.xml b/src/test/resources/test-projects/supplemental-artifacts/archive-and-content-package-in-one-module/jcr_root/apps/wcm/core/content/.content.xml
new file mode 100755
index 0000000..dcf03f8
--- /dev/null
+++ b/src/test/resources/test-projects/supplemental-artifacts/archive-and-content-package-in-one-module/jcr_root/apps/wcm/core/content/.content.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+  -->
+
+<jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0"
+    jcr:primaryType="sling:Folder"/>
diff --git a/src/test/resources/test-projects/supplemental-artifacts/archive-and-content-package-in-one-module/jcr_root/apps/wcm/core/content/siteadmin.xml b/src/test/resources/test-projects/supplemental-artifacts/archive-and-content-package-in-one-module/jcr_root/apps/wcm/core/content/siteadmin.xml
new file mode 100755
index 0000000..5984d80
--- /dev/null
+++ b/src/test/resources/test-projects/supplemental-artifacts/archive-and-content-package-in-one-module/jcr_root/apps/wcm/core/content/siteadmin.xml
@@ -0,0 +1,764 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+  -->
+
+<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:mixinTypes="[cq:Console]"
+    jcr:primaryType="cq:Widget"
+    jcr:title="AEM WCM"
+    sling:redirect="{Boolean}false"
+    sling:resourceType="cq/ui/components/widget"
+    sling:vanityOrder="{Long}500"
+    sling:vanityPath="/siteadmin"
+    consoleDescription="Create and manage multiple websites."
+    consoleTitle="Websites"
+    historyLink="/bin/wcmcommand?cmd=open&amp;path=${resource.path}"
+    historyResourceTypes="[cq:Page]"
+    historyShow="{Boolean}true"
+    historyTitle="Recently used pages"
+    iconClass="siteadmin"
+    id="cq-siteadmin"
+    jsLibs="[cq.wcm.admin]"
+    noSearch="{Boolean}true"
+    tabTitle="Websites"
+    treeAutoExpandMax="100"
+    xtype="siteadmin">
+    <grid jcr:primaryType="nt:unstructured">
+        <assets
+            jcr:primaryType="nt:unstructured"
+            pageSize="15"
+            pageText="Assets {0} - {1} of {2}"
+            pathRegex="\\/content\\/dam(/.*)?"
+            storeProxySuffix=".assets.json"
+            storeReaderFields="[index,title,label,lockedBy,type,width,height,size,inWorkflow,replication,scheduledTasks,numberer,workflows,lastModified,lastModifiedBy,inProgress,ck]">
+            <columns jcr:primaryType="cq:WidgetCollection">
+                <numberer
+                    jcr:primaryType="nt:unstructured"
+                    usePredefined="numberer"
+                    xtype="gridcolumn"/>
+                <thumbnail
+                    jcr:primaryType="nt:unstructured"
+                    hidden="{Boolean}false"
+                    usePredefined="thumbnail"
+                    xtype="gridcolumn"/>
+                <title
+                    jcr:primaryType="nt:unstructured"
+                    hidden="{Boolean}true"
+                    usePredefined="title"
+                    xssProtect="true"
+                    xtype="gridcolumn"/>
+                <name
+                    jcr:primaryType="nt:unstructured"
+                    usePredefined="name"
+                    xtype="gridcolumn"/>
+                <published
+                    jcr:primaryType="nt:unstructured"
+                    usePredefined="published"
+                    xtype="gridcolumn"/>
+                <modified
+                    jcr:primaryType="nt:unstructured"
+                    usePredefined="modified"
+                    xtype="gridcolumn"/>
+                <status
+                    jcr:primaryType="nt:unstructured"
+                    usePredefined="status"
+                    xtype="gridcolumn"/>
+                <workflow
+                    jcr:primaryType="nt:unstructured"
+                    usePredefined="workflow"
+                    xtype="gridcolumn"/>
+                <width
+                    jcr:primaryType="nt:unstructured"
+                    usePredefined="width"
+                    xtype="gridcolumn"/>
+                <height
+                    jcr:primaryType="nt:unstructured"
+                    usePredefined="height"
+                    xtype="gridcolumn"/>
+                <size
+                    jcr:primaryType="nt:unstructured"
+                    usePredefined="size"
+                    xtype="gridcolumn"/>
+            </columns>
+        </assets>
+    </grid>
+    <actions jcr:primaryType="nt:unstructured">
+        <create
+            jcr:primaryType="nt:unstructured"
+            cls="cq-siteadmin-create"
+            context="[toolbar]"
+            iconCls="cq-siteadmin-create-icon"
+            split="{Boolean}true"
+            text="New...">
+            <menu jcr:primaryType="nt:unstructured">
+                <createPage
+                    jcr:primaryType="nt:unstructured"
+                    cls="cq-siteadmin-create-page"
+                    conditions="[CQ.wcm.SiteAdmin.hasTreeSelection]"
+                    disabled="{Boolean}true"
+                    handler="CQ.wcm.SiteAdmin.createPage"
+                    iconCls="cq-siteadmin-create-page-icon"
+                    isDefaultAction="{Boolean}true"
+                    privileges="[create]"
+                    target="CQ.wcm.SiteAdmin.getTargetFromTree"
+                    text="New Page..."/>
+                <createSite
+                    jcr:primaryType="nt:unstructured"
+                    cls="cq-siteadmin-create-site"
+                    conditions="[CQ.wcm.SiteAdmin.hasTreeSelection]"
+                    disabled="{Boolean}true"
+                    handler="CQ.wcm.SiteAdmin.createSite"
+                    iconCls="cq-siteadmin-create-site-icon"
+                    privileges="[create]"
+                    target="CQ.wcm.SiteAdmin.getTargetFromTree"
+                    text="New Site..."/>
+                <createLiveCopy
+                    jcr:primaryType="nt:unstructured"
+                    cls="cq-siteadmin-create-livecopy"
+                    conditions="[CQ.wcm.SiteAdmin.hasTreeSelection]"
+                    disabled="{Boolean}true"
+                    handler="CQ.wcm.SiteAdmin.createLiveCopy"
+                    iconCls="cq-siteadmin-create-livecopy-icon"
+                    privileges="[create]"
+                    target="CQ.wcm.SiteAdmin.getTargetFromTree"
+                    text="New Live Copy..."/>
+                <createLaunch
+                    jcr:primaryType="nt:unstructured"
+                    cls="cq-siteadmin-create-launch"
+                    conditions="[CQ.wcm.SiteAdmin.hasAnySelection]"
+                    disabled="{Boolean}true"
+                    handler="CQ.wcm.SiteAdmin.createLaunch"
+                    iconCls="cq-siteadmin-create-launch-icon"
+                    privileges="[create]"
+                    target="CQ.wcm.SiteAdmin.getTargetFromTree"
+                    text="New Launch..."/>
+                <separator0
+                    jcr:primaryType="nt:unstructured"
+                    value="-"
+                    xtype="separator"/>
+                <createFile
+                    jcr:primaryType="nt:unstructured"
+                    cls="cq-siteadmin-create-file"
+                    conditions="[CQ.wcm.SiteAdmin.hasTreeSelection,CQ.wcm.SiteAdmin.canDoFolderOp]"
+                    disabled="{Boolean}true"
+                    handler="CQ.wcm.SiteAdmin.uploadFiles"
+                    iconCls="cq-siteadmin-create-file-icon"
+                    privileges="[create]"
+                    target="CQ.wcm.SiteAdmin.getTargetFromTree"
+                    text="New File..."/>
+                <createFolder
+                    jcr:primaryType="nt:unstructured"
+                    cls="cq-siteadmin-create-folder"
+                    conditions="[CQ.wcm.SiteAdmin.hasTreeSelection,CQ.wcm.SiteAdmin.canDoFolderOp]"
+                    disabled="{Boolean}true"
+                    handler="CQ.wcm.SiteAdmin.createFolder"
+                    iconCls="cq-siteadmin-create-folder-icon"
+                    privileges="[create]"
+                    target="CQ.wcm.SiteAdmin.getTargetFromTree"
+                    text="New Folder..."/>
+            </menu>
+        </create>
+        <open
+            jcr:primaryType="nt:unstructured"
+            cls="cq-siteadmin-open"
+            conditions="[CQ.wcm.SiteAdmin.hasListSelection]"
+            context="[contextmenu]"
+            handler="CQ.wcm.SiteAdmin.openPages"
+            iconCls="cq-siteadmin-open-icon"
+            isDefaultAction="{Boolean}true"
+            privileges="[read]"
+            target="CQ.wcm.SiteAdmin.getTargetFromList"
+            text="Open"/>
+        <separator0
+            jcr:primaryType="nt:unstructured"
+            value="-"
+            xtype="separator"/>
+        <copy
+            jcr:primaryType="nt:unstructured"
+            cls="cq-siteadmin-copy"
+            conditions="[CQ.wcm.SiteAdmin.hasAnySelection,CQ.wcm.SiteAdmin.pgatour.canCopyPasteMoveDeleteDeactivatePage]"
+            context="[toolbar,contextmenu]"
+            disabled="{Boolean}true"
+            handler="CQ.wcm.SiteAdmin.copyPages"
+            target="CQ.wcm.SiteAdmin.getAnyTarget"
+            text="Copy"/>
+        <paste
+            jcr:primaryType="nt:unstructured"
+            cls="cq-siteadmin-paste"
+            conditions="[CQ.wcm.SiteAdmin.hasTreeSelection,CQ.wcm.SiteAdmin.canPaste,CQ.wcm.SiteAdmin.pgatour.canCopyPasteMoveDeleteDeactivatePage]"
+            context="[toolbar,contextmenu]"
+            disabled="{Boolean}true"
+            forceCheck="{Boolean}true"
+            handler="CQ.wcm.SiteAdmin.pastePages"
+            privileges="[create]"
+            target="CQ.wcm.SiteAdmin.getTargetFromTree"
+            text="Paste"/>
+        <delete
+            jcr:primaryType="nt:unstructured"
+            cls="cq-siteadmin-delete"
+            conditions="[CQ.wcm.SiteAdmin.hasAnySelection,CQ.wcm.SiteAdmin.notLocked,CQ.wcm.SiteAdmin.canDeleteReplicatedPage,CQ.wcm.SiteAdmin.pgatour.canCopyPasteMoveDeleteDeactivatePage]"
+            context="[toolbar,contextmenu]"
+            disabled="{Boolean}true"
+            handler="CQ.wcm.SiteAdmin.deletePage"
+            privileges="[delete]"
+            target="CQ.wcm.SiteAdmin.getAllTargets"
+            text="Delete"/>
+        <separator1
+            jcr:primaryType="nt:unstructured"
+            context="[toolbar,contextmenu]"
+            value="-"
+            xtype="separator"/>
+        <move
+            jcr:primaryType="nt:unstructured"
+            cls="cq-siteadmin-move"
+            conditions="[CQ.wcm.SiteAdmin.hasSingleSelection,CQ.wcm.SiteAdmin.notLocked,CQ.wcm.SiteAdmin.pgatour.canCopyPasteMoveDeleteDeactivatePage]"
+            context="[toolbar,contextmenu]"
+            disabled="{Boolean}true"
+            handler="CQ.wcm.SiteAdmin.movePage"
+            privileges="[delete]"
+            target="CQ.wcm.SiteAdmin.getSingleTarget"
+            text="Move..."/>
+        <separator2
+            jcr:primaryType="nt:unstructured"
+            context="[toolbar,contextmenu]"
+            value="-"
+            xtype="separator"/>
+        <activate
+            jcr:primaryType="nt:unstructured"
+            cls="cq-siteadmin-activate"
+            context="[toolbar]"
+            iconCls="cq-siteadmin-activate-icon"
+            split="{Boolean}true"
+            text="Activate">
+            <menu jcr:primaryType="nt:unstructured">
+                <activateNow
+                    jcr:primaryType="nt:unstructured"
+                    cls="cq-siteadmin-activate-now"
+                    conditions="[CQ.wcm.SiteAdmin.hasAnySelection,CQ.wcm.SiteAdmin.notLocked]"
+                    context="[toolbar,contextmenu]"
+                    handler="CQ.wcm.SiteAdmin.activatePage"
+                    isDefaultAction="{Boolean}true"
+                    privileges="[replicate]"
+                    target="CQ.wcm.SiteAdmin.getAllTargets"
+                    text="Activate"/>
+                <activateLater
+                    jcr:primaryType="nt:unstructured"
+                    cls="cq-siteadmin-activate-later"
+                    conditions="[CQ.wcm.SiteAdmin.hasAnySelection,CQ.wcm.SiteAdmin.notLocked]"
+                    context="[toolbar]"
+                    handler="CQ.wcm.SiteAdmin.scheduleForActivation"
+                    privileges="[replicate]"
+                    target="CQ.wcm.SiteAdmin.getMultipleTargetsFromList"
+                    text="Activate Later..."/>
+            </menu>
+        </activate>
+        <deactivate
+            jcr:primaryType="nt:unstructured"
+            cls="cq-siteadmin-deactivate"
+            context="[toolbar]"
+            iconCls="cq-siteadmin-deactivate-icon"
+            split="{Boolean}true"
+            text="Deactivate">
+            <menu jcr:primaryType="nt:unstructured">
+                <deactivateNow
+                    jcr:primaryType="nt:unstructured"
+                    cls="cq-siteadmin-deactivate-now"
+                    conditions="[CQ.wcm.SiteAdmin.hasAnySelection,CQ.wcm.SiteAdmin.notLocked,CQ.wcm.SiteAdmin.pgatour.canCopyPasteMoveDeleteDeactivatePage]"
+                    context="[toolbar,contextmenu]"
+                    handler="CQ.wcm.SiteAdmin.deactivatePage"
+                    isDefaultAction="{Boolean}true"
+                    privileges="[replicate]"
+                    target="CQ.wcm.SiteAdmin.getAllTargets"
+                    text="Deactivate"/>
+                <deactivateLater
+                    jcr:primaryType="nt:unstructured"
+                    cls="cq-siteadmin-deactivate-later"
+                    conditions="[CQ.wcm.SiteAdmin.hasAnySelection,CQ.wcm.SiteAdmin.notLocked,CQ.wcm.SiteAdmin.pgatour.canCopyPasteMoveDeleteDeactivatePage]"
+                    context="[toolbar]"
+                    handler="CQ.wcm.SiteAdmin.scheduleForDeactivation"
+                    privileges="[replicate]"
+                    target="CQ.wcm.SiteAdmin.getMultipleTargetsFromList"
+                    text="Deactivate Later..."/>
+            </menu>
+        </deactivate>
+        <separator3
+            jcr:primaryType="nt:unstructured"
+            context="[toolbar,contextmenu]"
+            listInGridContextMenu="{Boolean}true"
+            value="-"
+            xtype="separator"/>
+        <lock
+            jcr:primaryType="nt:unstructured"
+            cls="cq-siteadmin-lock"
+            conditions="[CQ.wcm.SiteAdmin.hasListSelection]"
+            context="[_contextmenu]"
+            disabled="{Boolean}true"
+            handler="CQ.wcm.SiteAdmin.lockPage"
+            iconCls="cq-siteadmin-lock-icon"
+            privileges="[update]"
+            target="CQ.wcm.SiteAdmin.getTargetFromList"
+            text="Lock"/>
+        <unlock
+            jcr:primaryType="nt:unstructured"
+            cls="cq-siteadmin-unlock"
+            conditions="[CQ.wcm.SiteAdmin.hasListSelection]"
+            context="[_contextmenu]"
+            disabled="{Boolean}true"
+            handler="CQ.wcm.SiteAdmin.unlockPage"
+            iconCls="cq-siteadmin-unlock-icon"
+            privileges="[update]"
+            target="CQ.wcm.SiteAdmin.getTargetFromList"
+            text="Unlock"/>
+        <workflow
+            jcr:primaryType="nt:unstructured"
+            cls="cq-siteadmin-workflow"
+            conditions="[CQ.wcm.SiteAdmin.hasListSelection,CQ.wcm.SiteAdmin.noFolder,CQ.wcm.SiteAdmin.notLocked]"
+            context="[toolbar,contextmenu]"
+            disabled="{Boolean}true"
+            handler="CQ.wcm.SiteAdmin.startWorkflow"
+            target="CQ.wcm.SiteAdmin.getTargetFromList"
+            text="Workflow..."/>
+        <separator5
+            jcr:primaryType="nt:unstructured"
+            context="[contextmenu]"
+            listInGridContextMenu="{Boolean}true"
+            value="-"
+            xtype="separator"/>
+        <rollout
+            jcr:primaryType="nt:unstructured"
+            cls="cq-siteadmin-rollout"
+            conditions="[CQ.wcm.SiteAdmin.isLiveCopySource]"
+            context="[contextmenu]"
+            handler="CQ.wcm.SiteAdmin.rolloutPage"
+            iconCls="cq-siteadmin-properties-icon"
+            target="CQ.wcm.SiteAdmin.getTargetFromList"
+            text="Roll-out..."/>
+        <separator6
+            jcr:primaryType="nt:unstructured"
+            context="[contextmenu]"
+            listInGridContextMenu="{Boolean}true"
+            value="-"
+            xtype="separator"/>
+        <properties
+            jcr:primaryType="nt:unstructured"
+            cls="cq-siteadmin-properties"
+            conditions="[CQ.wcm.SiteAdmin.hasSingleListSelection,CQ.wcm.SiteAdmin.noFolder,CQ.wcm.SiteAdmin.noAsset]"
+            context="[contextmenu]"
+            handler="CQ.wcm.SiteAdmin.openProperties"
+            iconCls="cq-siteadmin-properties-icon"
+            privileges="[update]"
+            target="CQ.wcm.SiteAdmin.getTargetFromList"
+            text="Properties..."/>
+        <tools
+            jcr:primaryType="nt:unstructured"
+            cls="cq-siteadmin-tools"
+            context="[toolbar]"
+            iconCls="cq-siteadmin-tools-icon"
+            text="Tools">
+            <menu jcr:primaryType="nt:unstructured">
+                <langcopy
+                    jcr:primaryType="nt:unstructured"
+                    cls="cq-siteadmin-languagecopy"
+                    conditions="[CQ.wcm.SiteAdmin.hasTreeSelection]"
+                    handler="CQ.wcm.SiteAdmin.openLanguageCopy"
+                    iconCls="cq-siteadmin-languagecopy-icon"
+                    target="CQ.wcm.SiteAdmin.getTargetFromTree"
+                    text="Language Copy..."/>
+                <findReplace
+                    jcr:primaryType="nt:unstructured"
+                    cls="cq-siteadmin-findreplace"
+                    conditions="[CQ.wcm.SiteAdmin.hasSingleSelection,CQ.wcm.SiteAdmin.notLocked]"
+                    disabled="{Boolean}true"
+                    handler="CQ.wcm.SiteAdmin.openFindReplaceDialog"
+                    iconCls="cq-siteadmin-findreplace-icon"
+                    privileges="[update]"
+                    target="CQ.wcm.SiteAdmin.getSingleTarget"
+                    text="Find &amp; Replace..."/>
+                <restore
+                    jcr:primaryType="nt:unstructured"
+                    cls="cq-siteadmin-restore"
+                    iconCls="cq-siteadmin-restore-icon"
+                    text="Restore">
+                    <menu jcr:primaryType="nt:unstructured">
+                        <version
+                            jcr:primaryType="nt:unstructured"
+                            cls="cq-siteadmin-restore-version"
+                            conditions="[CQ.wcm.SiteAdmin.hasTreeSelection,CQ.wcm.SiteAdmin.notLocked,CQ.wcm.SiteAdmin.noFolder,CQ.wcm.SiteAdmin.noAsset]"
+                            handler="CQ.wcm.SiteAdmin.restoreVersion"
+                            iconCls="cq-siteadmin-restore-version-icon"
+                            target="CQ.wcm.SiteAdmin.getTargetFromTree"
+                            text="Restore Version...">
+                            <tooltip
+                                jcr:primaryType="nt:unstructured"
+                                autoHide="{Boolean}true"
+                                text="Restore an older version of a page"
+                                title="Restore Version"/>
+                        </version>
+                        <tree
+                            jcr:primaryType="nt:unstructured"
+                            cls="cq-siteadmin-restore-tree"
+                            conditions="[CQ.wcm.SiteAdmin.hasTreeSelection,CQ.wcm.SiteAdmin.notLocked,CQ.wcm.SiteAdmin.noFolder,CQ.wcm.SiteAdmin.noAsset]"
+                            handler="CQ.wcm.SiteAdmin.restoreTree"
+                            iconCls="cq-siteadmin-restore-tree-icon"
+                            target="CQ.wcm.SiteAdmin.getTargetFromTree"
+                            text="Restore Tree...">
+                            <tooltip
+                                jcr:primaryType="nt:unstructured"
+                                autoHide="{Boolean}true"
+                                text="Restore an older version of a tree"
+                                title="Restore Tree"/>
+                        </tree>
+                    </menu>
+                </restore>
+                <references
+                    jcr:primaryType="nt:unstructured"
+                    cls="cq-damadmin-references"
+                    conditions="[CQ.wcm.SiteAdmin.noFolder]"
+                    disabled="{Boolean}true"
+                    handler="CQ.wcm.SiteAdmin.showReferences"
+                    iconCls="cq-siteadmin-references-icon"
+                    target="CQ.wcm.SiteAdmin.getTargetFromList"
+                    text="References..."/>
+                <download
+                    jcr:primaryType="nt:unstructured"
+                    cls="cq-siteadmin-findreplace"
+                    conditions="[CQ.wcm.SiteAdmin.isAsset]"
+                    disabled="{Boolean}true"
+                    handler="CQ.wcm.SiteAdmin.download"
+                    iconCls="cq-siteadmin-download-icon"
+                    target="CQ.wcm.SiteAdmin.getTargetFromList"
+                    text="Download"/>
+                <rollout
+                    jcr:primaryType="nt:unstructured"
+                    cls="cq-siteadmin-rollout"
+                    conditions="[CQ.wcm.SiteAdmin.isLiveCopySource]"
+                    handler="CQ.wcm.SiteAdmin.rolloutPage"
+                    iconCls="cq-siteadmin-properties-icon"
+                    target="CQ.wcm.SiteAdmin.getAnyTarget"
+                    text="Roll-out..."/>
+            </menu>
+        </tools>
+    </actions>
+    <tags jcr:primaryType="nt:unstructured">
+        <emulateIE8
+            jcr:primaryType="nt:unstructured"
+            content="IE=8"
+            http-equiv="X-UA-Compatible"
+            tagName="meta"/>
+        <icon1
+            jcr:primaryType="nt:unstructured"
+            href="/libs/wcm/core/content/siteadmin.ico"
+            rel="shortcut icon"
+            tagName="link"
+            type="image/vnd.microsoft.icon"/>
+        <icon2
+            jcr:primaryType="nt:unstructured"
+            href="/libs/wcm/core/content/siteadmin.ico"
+            rel="icon"
+            tagName="link"
+            type="image/vnd.microsoft.icon"/>
+    </tags>
+    <tabs jcr:primaryType="cq:WidgetCollection">
+        <searchpanel
+            jcr:primaryType="cq:Widget"
+            facetURL="/libs/wcm/core/content/search/searchpanel/facets.overlay.infinity.json"
+            xtype="siteadminsearchpanel">
+            <columns jcr:primaryType="cq:WidgetCollection">
+                <numberer
+                    jcr:primaryType="nt:unstructured"
+                    usePredefined="numberer"
+                    xtype="gridcolumn"/>
+                <title
+                    jcr:primaryType="nt:unstructured"
+                    usePredefined="title"
+                    xtype="gridcolumn"/>
+                <name
+                    jcr:primaryType="nt:unstructured"
+                    usePredefined="name"
+                    xtype="gridcolumn"/>
+                <published
+                    jcr:primaryType="nt:unstructured"
+                    usePredefined="published"
+                    xtype="gridcolumn"/>
+                <modified
+                    jcr:primaryType="nt:unstructured"
+                    usePredefined="modified"
+                    xtype="gridcolumn"/>
+                <template
+                    jcr:primaryType="nt:unstructured"
+                    usePredefined="template"
+                    xtype="gridcolumn"/>
+            </columns>
+            <actions jcr:primaryType="nt:unstructured">
+                <open
+                    jcr:primaryType="nt:unstructured"
+                    cls="cq-siteadmin-open"
+                    conditions="[CQ.wcm.SiteAdmin.hasListSelection]"
+                    context="[contextmenu]"
+                    handler="CQ.wcm.SiteAdmin.openPages"
+                    iconCls="cq-siteadmin-open-icon"
+                    isDefaultAction="{Boolean}true"
+                    privileges="[update]"
+                    target="CQ.wcm.SiteAdmin.getTargetFromList"
+                    text="Open"/>
+                <delete
+                    jcr:primaryType="nt:unstructured"
+                    cls="cq-siteadmin-delete"
+                    conditions="[CQ.wcm.SiteAdmin.hasAnySelection,CQ.wcm.SiteAdmin.notLocked,CQ.wcm.SiteAdmin.canDeleteReplicatedPage]"
+                    context="[toolbar,contextmenu]"
+                    disabled="{Boolean}true"
+                    handler="CQ.wcm.SiteAdmin.deletePage"
+                    privileges="[delete]"
+                    target="CQ.wcm.SiteAdmin.getAllTargets"
+                    text="Delete"/>
+                <separator1
+                    jcr:primaryType="nt:unstructured"
+                    context="[toolbar,contextmenu]"
+                    value="-"
+                    xtype="separator"/>
+                <move
+                    jcr:primaryType="nt:unstructured"
+                    cls="cq-siteadmin-move"
+                    conditions="[CQ.wcm.SiteAdmin.hasSingleSelection,CQ.wcm.SiteAdmin.notLocked]"
+                    context="[toolbar,contextmenu]"
+                    disabled="{Boolean}true"
+                    handler="CQ.wcm.SiteAdmin.movePage"
+                    privileges="[delete]"
+                    target="CQ.wcm.SiteAdmin.getSingleTarget"
+                    text="Move..."/>
+                <separator2
+                    jcr:primaryType="nt:unstructured"
+                    context="[toolbar,contextmenu]"
+                    value="-"
+                    xtype="separator"/>
+                <activate
+                    jcr:primaryType="nt:unstructured"
+                    cls="cq-siteadmin-activate"
+                    context="[toolbar]"
+                    iconCls="cq-siteadmin-activate-icon"
+                    split="{Boolean}true"
+                    text="Activate">
+                    <menu jcr:primaryType="nt:unstructured">
+                        <activateNow
+                            jcr:primaryType="nt:unstructured"
+                            cls="cq-siteadmin-activate-now"
+                            conditions="[CQ.wcm.SiteAdmin.hasAnySelection,CQ.wcm.SiteAdmin.notLocked]"
+                            context="[toolbar,contextmenu]"
+                            handler="CQ.wcm.SiteAdmin.activatePage"
+                            isDefaultAction="{Boolean}true"
+                            privileges="[replicate]"
+                            target="CQ.wcm.SiteAdmin.getAllTargets"
+                            text="Activate"/>
+                        <activateLater
+                            jcr:primaryType="nt:unstructured"
+                            cls="cq-siteadmin-activate-later"
+                            conditions="[CQ.wcm.SiteAdmin.hasAnySelection,CQ.wcm.SiteAdmin.notLocked]"
+                            context="[toolbar]"
+                            handler="CQ.wcm.SiteAdmin.scheduleForActivation"
+                            privileges="[replicate]"
+                            target="CQ.wcm.SiteAdmin.getMultipleTargetsFromList"
+                            text="Activate Later..."/>
+                    </menu>
+                </activate>
+                <deactivate
+                    jcr:primaryType="nt:unstructured"
+                    cls="cq-siteadmin-deactivate"
+                    context="[toolbar]"
+                    iconCls="cq-siteadmin-deactivate-icon"
+                    split="{Boolean}true"
+                    text="Deactivate">
+                    <menu jcr:primaryType="nt:unstructured">
+                        <deactivateNow
+                            jcr:primaryType="nt:unstructured"
+                            cls="cq-siteadmin-deactivate-now"
+                            conditions="[CQ.wcm.SiteAdmin.hasAnySelection,CQ.wcm.SiteAdmin.notLocked]"
+                            context="[toolbar,contextmenu]"
+                            handler="CQ.wcm.SiteAdmin.deactivatePage"
+                            isDefaultAction="{Boolean}true"
+                            privileges="[replicate]"
+                            target="CQ.wcm.SiteAdmin.getAllTargets"
+                            text="Deactivate"/>
+                        <deactivateLater
+                            jcr:primaryType="nt:unstructured"
+                            cls="cq-siteadmin-deactivate-later"
+                            conditions="[CQ.wcm.SiteAdmin.hasAnySelection,CQ.wcm.SiteAdmin.notLocked]"
+                            context="[toolbar]"
+                            handler="CQ.wcm.SiteAdmin.scheduleForDeactivation"
+                            privileges="[replicate]"
+                            target="CQ.wcm.SiteAdmin.getMultipleTargetsFromList"
+                            text="Deactivate Later..."/>
+                    </menu>
+                </deactivate>
+                <lock
+                    jcr:primaryType="nt:unstructured"
+                    cls="cq-siteadmin-lock"
+                    conditions="[CQ.wcm.SiteAdmin.hasListSelection]"
+                    context="[_contextmenu]"
+                    disabled="{Boolean}true"
+                    handler="CQ.wcm.SiteAdmin.lockPage"
+                    iconCls="cq-siteadmin-lock-icon"
+                    privileges="[update]"
+                    target="CQ.wcm.SiteAdmin.getTargetFromList"
+                    text="Lock"/>
+                <unlock
+                    jcr:primaryType="nt:unstructured"
+                    cls="cq-siteadmin-unlock"
+                    conditions="[CQ.wcm.SiteAdmin.hasListSelection]"
+                    context="[_contextmenu]"
+                    disabled="{Boolean}true"
+                    handler="CQ.wcm.SiteAdmin.unlockPage"
+                    iconCls="cq-siteadmin-unlock-icon"
+                    privileges="[update]"
+                    target="CQ.wcm.SiteAdmin.getTargetFromList"
+                    text="Unlock"/>
+                <workflow
+                    jcr:primaryType="nt:unstructured"
+                    cls="cq-siteadmin-workflow"
+                    conditions="[CQ.wcm.SiteAdmin.hasListSelection,CQ.wcm.SiteAdmin.notLocked]"
+                    context="[toolbar,contextmenu]"
+                    disabled="{Boolean}true"
+                    handler="CQ.wcm.SiteAdmin.startWorkflow"
+                    target="CQ.wcm.SiteAdmin.getTargetFromList"
+                    text="Workflow..."/>
+                <rollout
+                    jcr:primaryType="nt:unstructured"
+                    cls="cq-siteadmin-rollout"
+                    conditions="[CQ.wcm.SiteAdmin.isLiveCopySource]"
+                    context="[contextmenu]"
+                    handler="CQ.wcm.SiteAdmin.rolloutPage"
+                    iconCls="cq-siteadmin-properties-icon"
+                    target="CQ.wcm.SiteAdmin.getTargetFromList"
+                    text="Roll-out..."/>
+                <separator5
+                    jcr:primaryType="nt:unstructured"
+                    context="[contextmenu]"
+                    listInGridContextMenu="{Boolean}true"
+                    value="-"
+                    xtype="separator"/>
+                <properties
+                    jcr:primaryType="nt:unstructured"
+                    cls="cq-siteadmin-properties"
+                    conditions="[CQ.wcm.SiteAdmin.hasSingleListSelection,CQ.wcm.SiteAdmin.noAsset]"
+                    context="[contextmenu]"
+                    handler="CQ.wcm.SiteAdmin.openProperties"
+                    iconCls="cq-siteadmin-properties-icon"
+                    privileges="[update]"
+                    target="CQ.wcm.SiteAdmin.getTargetFromList"
+                    text="Properties..."/>
+                <tools
+                    jcr:primaryType="nt:unstructured"
+                    cls="cq-siteadmin-tools"
+                    context="[toolbar]"
+                    iconCls="cq-siteadmin-tools-icon"
+                    text="Tools">
+                    <menu jcr:primaryType="nt:unstructured">
+                        <langcopy
+                            jcr:primaryType="nt:unstructured"
+                            cls="cq-siteadmin-languagecopy"
+                            conditions="[CQ.wcm.SiteAdmin.hasTreeSelection]"
+                            handler="CQ.wcm.SiteAdmin.openLanguageCopy"
+                            iconCls="cq-siteadmin-languagecopy-icon"
+                            target="CQ.wcm.SiteAdmin.getTargetFromTree"
+                            text="Language Copy..."/>
+                        <findReplace
+                            jcr:primaryType="nt:unstructured"
+                            cls="cq-siteadmin-findreplace"
+                            conditions="[CQ.wcm.SiteAdmin.hasSingleSelection,CQ.wcm.SiteAdmin.notLocked]"
+                            disabled="{Boolean}true"
+                            handler="CQ.wcm.SiteAdmin.openFindReplaceDialog"
+                            iconCls="cq-siteadmin-findreplace-icon"
+                            privileges="[update]"
+                            target="CQ.wcm.SiteAdmin.getSingleTarget"
+                            text="Find &amp; Replace..."/>
+                        <restore
+                            jcr:primaryType="nt:unstructured"
+                            cls="cq-siteadmin-restore"
+                            iconCls="cq-siteadmin-restore-icon"
+                            text="Restore">
+                            <menu jcr:primaryType="nt:unstructured">
+                                <version
+                                    jcr:primaryType="nt:unstructured"
+                                    cls="cq-siteadmin-restore-version"
+                                    conditions="[CQ.wcm.SiteAdmin.hasTreeSelection,CQ.wcm.SiteAdmin.notLocked,CQ.wcm.SiteAdmin.noAsset]"
+                                    handler="CQ.wcm.SiteAdmin.restoreVersion"
+                                    iconCls="cq-siteadmin-restore-version-icon"
+                                    target="CQ.wcm.SiteAdmin.getTargetFromTree"
+                                    text="Restore Version...">
+                                    <tooltip
+                                        jcr:primaryType="nt:unstructured"
+                                        autoHide="{Boolean}true"
+                                        text="Restore an older version of a page"
+                                        title="Restore Version"/>
+                                </version>
+                                <tree
+                                    jcr:primaryType="nt:unstructured"
+                                    cls="cq-siteadmin-restore-tree"
+                                    conditions="[CQ.wcm.SiteAdmin.hasTreeSelection,CQ.wcm.SiteAdmin.notLocked,CQ.wcm.SiteAdmin.noAsset]"
+                                    handler="CQ.wcm.SiteAdmin.restoreTree"
+                                    iconCls="cq-siteadmin-restore-tree-icon"
+                                    target="CQ.wcm.SiteAdmin.getTargetFromTree"
+                                    text="Restore Tree...">
+                                    <tooltip
+                                        jcr:primaryType="nt:unstructured"
+                                        autoHide="{Boolean}true"
+                                        text="Restore an older version of a tree"
+                                        title="Restore Tree"/>
+                                </tree>
+                            </menu>
+                        </restore>
+                        <references
+                            jcr:primaryType="nt:unstructured"
+                            cls="cq-damadmin-references"
+                            disabled="{Boolean}true"
+                            handler="CQ.wcm.SiteAdmin.showReferences"
+                            iconCls="cq-siteadmin-references-icon"
+                            target="CQ.wcm.SiteAdmin.getTargetFromList"
+                            text="References..."/>
+                        <download
+                            jcr:primaryType="nt:unstructured"
+                            cls="cq-siteadmin-findreplace"
+                            conditions="[CQ.wcm.SiteAdmin.isAsset]"
+                            disabled="{Boolean}true"
+                            handler="CQ.wcm.SiteAdmin.download"
+                            iconCls="cq-siteadmin-download-icon"
+                            target="CQ.wcm.SiteAdmin.getTargetFromList"
+                            text="Download"/>
+                        <rollout
+                            jcr:primaryType="nt:unstructured"
+                            cls="cq-siteadmin-rollout"
+                            conditions="[CQ.wcm.SiteAdmin.isLiveCopySource]"
+                            handler="CQ.wcm.SiteAdmin.rolloutPage"
+                            iconCls="cq-siteadmin-properties-icon"
+                            target="CQ.wcm.SiteAdmin.getAnyTarget"
+                            text="Roll-out..."/>
+                    </menu>
+                </tools>
+                <separator3
+                    jcr:primaryType="nt:unstructured"
+                    context="[toolbar,contextmenu]"
+                    value="-"
+                    xtype="separator"/>
+                <separator4
+                    jcr:primaryType="nt:unstructured"
+                    context="[contextmenu]"
+                    listInGridContextMenu="{Boolean}true"
+                    value="-"
+                    xtype="separator"/>
+            </actions>
+        </searchpanel>
+    </tabs>
+</jcr:root>
diff --git a/src/test/resources/test-projects/supplemental-artifacts/archive-and-content-package-in-one-module/pom.xml b/src/test/resources/test-projects/supplemental-artifacts/archive-and-content-package-in-one-module/pom.xml
new file mode 100755
index 0000000..f39a87c
--- /dev/null
+++ b/src/test/resources/test-projects/supplemental-artifacts/archive-and-content-package-in-one-module/pom.xml
@@ -0,0 +1,85 @@
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements. See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License. You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <!-- ====================================================================== -->
+    <!-- P R O J E C T D E S C R I P T I O N -->
+    <!-- ====================================================================== -->
+    <groupId>org.apache.jackrabbit.filevault</groupId>
+    <artifactId>package-plugin-test-pkg</artifactId>
+    <version>1.0.0-SNAPSHOT</version>
+    <packaging>pom</packaging>
+    <name>Packaging test</name>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-assembly-plugin</artifactId>
+                <version>3.6.0</version>
+                <executions>
+                    <execution>
+                        <id>create-distribution</id>
+                        <phase>package</phase>
+                        <goals>
+                            <goal>single</goal>
+                        </goals>
+                        <configuration>
+                            <descriptors>
+                                <descriptor>assembly.xml</descriptor>
+                            </descriptors>
+                            <appendAssemblyId>false</appendAssemblyId><!-- don't use any classifier -->
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.jackrabbit</groupId>
+                <artifactId>filevault-package-maven-plugin</artifactId>
+                <version>${plugin.version}</version>
+                <extensions>true</extensions>
+                <configuration>
+                    <classifier>additional-cp</classifier>
+                </configuration>
+                <executions>
+                    <execution>
+                        <id>generate-metadata</id>
+                        <goals>
+                            <goal>generate-metadata</goal>
+                        </goals>
+                        <configuration>
+                            <filters>
+                                <filter>
+                                    <root>/apps/wcm/core</root>
+                                </filter>
+                            </filters>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>package</id>
+                        <goals>
+                            <goal>package</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+    
+</project>
diff --git a/src/test/resources/test-projects/supplemental-artifacts/archive-and-content-package-in-one-module/src/dummy.text b/src/test/resources/test-projects/supplemental-artifacts/archive-and-content-package-in-one-module/src/dummy.text
new file mode 100644
index 0000000..9ea3216
--- /dev/null
+++ b/src/test/resources/test-projects/supplemental-artifacts/archive-and-content-package-in-one-module/src/dummy.text
@@ -0,0 +1 @@
+This file ends up in the tar
\ No newline at end of file