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 2022/07/28 13:55:46 UTC

[jackrabbit-filevault] 01/01: add test to reproduce installation issue with nt:file

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

kwin pushed a commit to branch bugfix/nt-file-import-failure
in repository https://gitbox.apache.org/repos/asf/jackrabbit-filevault.git

commit f6dbd126dca18e01eef628ccbd7daf87fa2e3db3
Author: Konrad Windszus <kw...@apache.org>
AuthorDate: Thu Jul 28 15:55:39 2022 +0200

    add test to reproduce installation issue with nt:file
---
 .../vault/packaging/integration/ImportIT.java      |  15 +
 .../nt_file_package.zip/META-INF/MANIFEST.MF       |  15 +
 .../software-distribution.ui.apps/pom.properties   |   3 +
 .../software-distribution.ui.apps/pom.xml          | 147 +++++++++
 .../nt_file_package.zip/META-INF/vault/config.xml  |  93 ++++++
 .../nt_file_package.zip/META-INF/vault/filter.xml  |  12 +
 .../META-INF/vault/properties.xml                  |  17 +
 .../META-INF/vault/settings.xml                    |  21 ++
 .../damAssetLucene-7-custom-2/.content.xml         | 361 +++++++++++++++++++++
 .../damAssetLucene-7-custom-2/tika/config.xml      |  11 +
 10 files changed, 695 insertions(+)

diff --git a/vault-core/src/test/java/org/apache/jackrabbit/vault/packaging/integration/ImportIT.java b/vault-core/src/test/java/org/apache/jackrabbit/vault/packaging/integration/ImportIT.java
index f439f8c5..3c50a033 100644
--- a/vault-core/src/test/java/org/apache/jackrabbit/vault/packaging/integration/ImportIT.java
+++ b/vault-core/src/test/java/org/apache/jackrabbit/vault/packaging/integration/ImportIT.java
@@ -422,4 +422,19 @@ public class ImportIT extends IntegrationTestBase {
         assertNodeHasPrimaryType("/testroot/myfolder", JcrConstants.NT_UNSTRUCTURED);
         assertNodeHasPrimaryType("/testroot/myfolder/mychild", JcrConstants.NT_UNSTRUCTURED);
     }
+    
+    @Test
+    public void testPackageWithNtFile() throws IOException, ConfigurationException {
+     // first try a regular installation (which should fail)
+        ImportOptions opts = getDefaultOptions();
+        Importer importer = new Importer(opts);
+        try (Archive archive = getFileArchive("/test-packages/nt_file_package.zip")) {
+            archive.open(true);
+            importer.run(archive, admin.getRootNode());
+           admin.save();
+            //Assert.fail("Installing the package should fail as it tries to install an nt:unstructured node below an nt:folder node");
+        } catch (RepositoryException e) {
+            // expected
+        }
+    }
 }
\ No newline at end of file
diff --git a/vault-core/src/test/resources/test-packages/nt_file_package.zip/META-INF/MANIFEST.MF b/vault-core/src/test/resources/test-packages/nt_file_package.zip/META-INF/MANIFEST.MF
new file mode 100644
index 00000000..4893d0fa
--- /dev/null
+++ b/vault-core/src/test/resources/test-packages/nt_file_package.zip/META-INF/MANIFEST.MF
@@ -0,0 +1,15 @@
+Manifest-Version: 1.0
+Implementation-Title: Software Distribution - UI apps
+Content-Package-Roots: /apps/dam/gui/content/assets/v2/foldersharewizard
+ ,/apps/metadata-editor-rte,/apps/sling/servlet/errorhandler,/apps/softw
+ are-distribution,/apps/software-distribution-author,/oak:index/damAsset
+ Lucene-7-custom-2,/oak:index/sd_eula_fragments-custom-1,/oak:index/sd_l
+ ucene-custom-2,/oak:index/sd_metadata-custom-5
+Implementation-Version: 2022.5.1
+Build-Jdk-Spec: 1.8
+Content-Package-Type: application
+Created-By: Maven Archiver 3.4.0
+Content-Package-Id: software-distribution:software-distribution.ui.apps:
+ 2022.5.1
+Content-Package-Description: UI apps package for Software Distribution
+
diff --git a/vault-core/src/test/resources/test-packages/nt_file_package.zip/META-INF/maven/com.adobe.aem.distribution/software-distribution.ui.apps/pom.properties b/vault-core/src/test/resources/test-packages/nt_file_package.zip/META-INF/maven/com.adobe.aem.distribution/software-distribution.ui.apps/pom.properties
new file mode 100644
index 00000000..129186b9
--- /dev/null
+++ b/vault-core/src/test/resources/test-packages/nt_file_package.zip/META-INF/maven/com.adobe.aem.distribution/software-distribution.ui.apps/pom.properties
@@ -0,0 +1,3 @@
+version=2022.5.1
+groupId=com.adobe.aem.distribution
+artifactId=software-distribution.ui.apps
diff --git a/vault-core/src/test/resources/test-packages/nt_file_package.zip/META-INF/maven/com.adobe.aem.distribution/software-distribution.ui.apps/pom.xml b/vault-core/src/test/resources/test-packages/nt_file_package.zip/META-INF/maven/com.adobe.aem.distribution/software-distribution.ui.apps/pom.xml
new file mode 100644
index 00000000..71804028
--- /dev/null
+++ b/vault-core/src/test/resources/test-packages/nt_file_package.zip/META-INF/maven/com.adobe.aem.distribution/software-distribution.ui.apps/pom.xml
@@ -0,0 +1,147 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ |  Copyright 2015 Adobe Systems Incorporated
+ |
+ |  Licensed 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 A R E N T  P R O J E C T  D E S C R I P T I O N                      -->
+    <!-- ====================================================================== -->
+    <parent>
+        <groupId>com.adobe.aem.distribution</groupId>
+        <artifactId>software-distribution</artifactId>
+        <version>2022.5.1</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <!-- ====================================================================== -->
+    <!-- P R O J E C T  D E S C R I P T I O N                                   -->
+    <!-- ====================================================================== -->
+    <artifactId>software-distribution.ui.apps</artifactId>
+    <packaging>content-package</packaging>
+    <name>Software Distribution - UI apps</name>
+    <description>UI apps package for Software Distribution</description>
+    <properties>
+        <sonar.exclusions>src/main/content/jcr_root/apps/software-distribution/clientlibs/spectrum/**/*</sonar.exclusions>
+    </properties>
+    <!-- ====================================================================== -->
+    <!-- B U I L D   D E F I N I T I O N                                        -->
+    <!-- ====================================================================== -->
+    <build>
+        <sourceDirectory>src/main/content/jcr_root</sourceDirectory>
+        <plugins>
+            <!-- ====================================================================== -->
+            <!-- V A U L T   P A C K A G E   P L U G I N S                              -->
+            <!-- ====================================================================== -->
+            <plugin>
+                <groupId>org.apache.jackrabbit</groupId>
+                <artifactId>filevault-package-maven-plugin</artifactId>
+                <extensions>true</extensions>
+                <configuration>
+                    <group>software-distribution</group>
+                    <packageType>application</packageType>
+                    <allowIndexDefinitions>true</allowIndexDefinitions> <!-- for assetshare.ui.apps -->
+                    <properties>
+                        <cloudManagerTarget>none</cloudManagerTarget>
+                    </properties>
+                    <repositoryStructurePackages>
+                        <repositoryStructurePackage>
+                            <groupId>${project.groupId}</groupId>
+                            <artifactId>software-distribution.ui.apps.structure</artifactId>
+                            <version>${project.version}</version>
+                        </repositoryStructurePackage>
+                    </repositoryStructurePackages>
+                    <embeddeds>
+                        <embedded>
+                            <groupId>${project.groupId}</groupId>
+                            <artifactId>software-distribution.core</artifactId>
+                            <target>/apps/software-distribution/install</target>
+                        </embedded>
+                        <embedded>
+                            <groupId>com.adobe.granite</groupId>
+                            <artifactId>com.adobe.granite.maven.repo</artifactId>
+                            <target>/apps/software-distribution/install</target>
+                        </embedded>
+
+                    </embeddeds>
+
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>com.day.jcr.vault</groupId>
+                <artifactId>content-package-maven-plugin</artifactId>
+                <extensions>true</extensions>
+                <configuration>
+                    <verbose>true</verbose>
+                    <failOnError>true</failOnError>
+                </configuration>
+            </plugin>
+
+            <plugin>
+                <groupId>org.apache.sling</groupId>
+                <artifactId>htl-maven-plugin</artifactId>
+            </plugin>
+        </plugins>
+    </build>
+
+    <!-- ====================================================================== -->
+    <!-- D E P E N D E N C I E S                                                -->
+    <!-- ====================================================================== -->
+    <dependencies>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>software-distribution.core</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+
+        <!-- Add the dependency for the repository structure package so it resolves -->
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>software-distribution.ui.apps.structure</artifactId>
+            <version>${project.version}</version>
+            <type>zip</type>
+        </dependency>
+
+        <dependency>
+            <groupId>com.adobe.granite</groupId>
+            <artifactId>com.adobe.granite.maven.repo</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>com.adobe.aem</groupId>
+            <artifactId>uber-jar</artifactId>
+            <classifier>apis</classifier>
+        </dependency>
+
+        <dependency>
+            <groupId>javax.jcr</groupId>
+            <artifactId>jcr</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>javax.servlet</groupId>
+            <artifactId>javax.servlet-api</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>com.day.cq.wcm</groupId>
+            <artifactId>cq-wcm-taglib</artifactId>
+        </dependency>
+
+
+    </dependencies>
+</project>
diff --git a/vault-core/src/test/resources/test-packages/nt_file_package.zip/META-INF/vault/config.xml b/vault-core/src/test/resources/test-packages/nt_file_package.zip/META-INF/vault/config.xml
new file mode 100644
index 00000000..59e3a4a7
--- /dev/null
+++ b/vault-core/src/test/resources/test-packages/nt_file_package.zip/META-INF/vault/config.xml
@@ -0,0 +1,93 @@
+<!--
+  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.
+  -->
+<vaultfs version="1.1">
+    <!--
+        Defines the content aggregation. The order of the defined aggregates
+        is important for finding the correct aggregator.
+    -->
+    <aggregates>
+        <!--
+            Defines an aggregate that handles nt:file and nt:resource nodes.
+        -->
+        <aggregate type="file" title="File Aggregate"/>
+
+        <!--
+            Defines an aggregate that handles file/folder like nodes. It matches
+            all nt:hierarchyNode nodes that have or define a jcr:content
+            child node and excludes child nodes that are nt:hierarchyNodes.
+        -->
+        <aggregate type="filefolder" title="File/Folder Aggregate"/>
+
+        <!--
+            Defines an aggregate that handles nt:nodeType nodes and serializes
+            them into .cnd notation.
+        -->
+        <aggregate type="nodetype" title="Node Type Aggregate" />
+
+        <!--
+            Defines an aggregate that defines full coverage for certain node
+            types that cannot be covered by the default aggregator.
+        -->
+        <aggregate type="full" title="Full Coverage Aggregate">
+            <matches>
+                <include nodeType="rep:AccessControl" respectSupertype="true" />
+                <include nodeType="cq:Widget" respectSupertype="true" />
+                <include nodeType="cq:WidgetCollection" respectSupertype="true" />
+                <include nodeType="cq:EditConfig" respectSupertype="true" />
+                <include nodeType="cq:WorkflowModel" respectSupertype="true" />
+                <include nodeType="vlt:FullCoverage" respectSupertype="true" />
+                <include nodeType="mix:language" respectSupertype="true" />
+                <include nodeType="sling:OsgiConfig" respectSupertype="true" />
+            </matches>
+        </aggregate>
+
+        <!--
+            Defines an aggregate that handles nt:folder like nodes.
+        -->
+        <aggregate type="generic" title="Folder Aggregate">
+            <matches>
+                <include nodeType="nt:folder" respectSupertype="true" />
+            </matches>
+            <contains>
+                <exclude isNode="true" />
+            </contains>
+        </aggregate>
+
+        <!--
+            Defines the default aggregate
+        -->
+        <aggregate type="generic" title="Default Aggregator" isDefault="true">
+            <contains>
+                <exclude nodeType="nt:hierarchyNode" respectSupertype="true" />
+            </contains>
+            <matches>
+                <!-- all -->
+            </matches>
+        </aggregate>
+
+    </aggregates>
+
+    <!--
+      defines the input handlers
+    -->
+    <handlers>
+        <handler type="folder"/>
+        <handler type="file"/>
+        <handler type="nodetype"/>
+        <handler type="generic"/>
+    </handlers>
+</vaultfs>
\ No newline at end of file
diff --git a/vault-core/src/test/resources/test-packages/nt_file_package.zip/META-INF/vault/filter.xml b/vault-core/src/test/resources/test-packages/nt_file_package.zip/META-INF/vault/filter.xml
new file mode 100644
index 00000000..24c4d944
--- /dev/null
+++ b/vault-core/src/test/resources/test-packages/nt_file_package.zip/META-INF/vault/filter.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<workspaceFilter version="1.0">
+    <filter root="/apps/metadata-editor-rte"/>
+    <filter root="/apps/software-distribution"/>
+    <filter root="/apps/software-distribution-author"/>
+    <filter root="/apps/dam/gui/content/assets/v2/foldersharewizard"/>
+    <filter root="/apps/sling/servlet/errorhandler"/>
+    <filter root="/oak:index/sd_eula_fragments-custom-1"/>
+    <filter root="/oak:index/sd_metadata-custom-5"/>
+    <filter root="/oak:index/sd_lucene-custom-2"/>
+    <filter root="/oak:index/damAssetLucene-7-custom-2"/>
+</workspaceFilter>
diff --git a/vault-core/src/test/resources/test-packages/nt_file_package.zip/META-INF/vault/properties.xml b/vault-core/src/test/resources/test-packages/nt_file_package.zip/META-INF/vault/properties.xml
new file mode 100644
index 00000000..b5267851
--- /dev/null
+++ b/vault-core/src/test/resources/test-packages/nt_file_package.zip/META-INF/vault/properties.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
+<properties>
+<comment>Software Distribution - UI apps</comment>
+<entry key="createdBy">root</entry>
+<entry key="allowIndexDefinitions">true</entry>
+<entry key="name">software-distribution.ui.apps</entry>
+<entry key="created">2022-05-26T10:38:55.609Z</entry>
+<entry key="groupId">com.adobe.aem.distribution</entry>
+<entry key="version">2022.5.1</entry>
+<entry key="packageType">application</entry>
+<entry key="requiresRoot">false</entry>
+<entry key="cloudManagerTarget">none</entry>
+<entry key="group">software-distribution</entry>
+<entry key="description">UI apps package for Software Distribution</entry>
+<entry key="artifactId">software-distribution.ui.apps</entry>
+</properties>
diff --git a/vault-core/src/test/resources/test-packages/nt_file_package.zip/META-INF/vault/settings.xml b/vault-core/src/test/resources/test-packages/nt_file_package.zip/META-INF/vault/settings.xml
new file mode 100644
index 00000000..61c1bea2
--- /dev/null
+++ b/vault-core/src/test/resources/test-packages/nt_file_package.zip/META-INF/vault/settings.xml
@@ -0,0 +1,21 @@
+<?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.
+  -->
+<vault version="1.0">
+  <ignore name=".svn"/>
+  <ignore name=".DS_Store"/>
+</vault>
\ No newline at end of file
diff --git a/vault-core/src/test/resources/test-packages/nt_file_package.zip/jcr_root/_oak_index/damAssetLucene-7-custom-2/.content.xml b/vault-core/src/test/resources/test-packages/nt_file_package.zip/jcr_root/_oak_index/damAssetLucene-7-custom-2/.content.xml
new file mode 100644
index 00000000..efae704e
--- /dev/null
+++ b/vault-core/src/test/resources/test-packages/nt_file_package.zip/jcr_root/_oak_index/damAssetLucene-7-custom-2/.content.xml
@@ -0,0 +1,361 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~
+  ~    ADOBE CONFIDENTIAL
+  ~    ___________________
+  ~
+  ~    Copyright 2022 Adobe Systems Incorporated
+  ~    All Rights Reserved.
+  ~
+  ~    NOTICE:  All information contained herein is, and remains
+  ~    the property of Adobe Systems Incorporated and its suppliers,
+  ~    if any.  The intellectual and technical concepts contained
+  ~    herein are proprietary to Adobe Systems Incorporated and its
+  ~    suppliers and are protected by all applicable intellectual property
+  ~    laws, including trade secret and copyright laws.
+  ~    Dissemination of this information or reproduction of this material
+  ~    is strictly forbidden unless prior written permission is obtained
+  ~    from Adobe Systems Incorporated.
+  ~
+  -->
+
+<jcr:root xmlns:oak="http://jackrabbit.apache.org/oak/ns/1.0" xmlns:dam="http://www.day.com/dam/1.0"
+          xmlns:jcr="http://www.jcp.org/jcr/1.0" xmlns:nt="http://www.jcp.org/jcr/nt/1.0"
+          jcr:primaryType="oak:QueryIndexDefinition"
+          async="[async,nrt]"
+          compatVersion="{Long}2"
+          evaluatePathRestrictions="{Boolean}true"
+          includedPaths="[/content/dam]"
+          reindex="{Boolean}false"
+          reindexCount="{Long}1"
+          seed="{Long}-3055307745975318621"
+          tags="[visualSimilaritySearch]"
+          type="lucene">
+        <aggregates jcr:primaryType="nt:unstructured">
+            <dam:Asset jcr:primaryType="nt:unstructured">
+                <include0
+                        jcr:primaryType="nt:unstructured"
+                        path="jcr:content"/>
+                <include1
+                        jcr:primaryType="nt:unstructured"
+                        path="jcr:content/metadata"/>
+                <include2
+                        jcr:primaryType="nt:unstructured"
+                        path="jcr:content/metadata/*"/>
+                <include3
+                        jcr:primaryType="nt:unstructured"
+                        path="jcr:content/renditions"/>
+                <include4
+                        jcr:primaryType="nt:unstructured"
+                        path="jcr:content/renditions/original"/>
+                <include5
+                        jcr:primaryType="nt:unstructured"
+                        path="jcr:content/renditions/original/jcr:content"/>
+                <include6
+                        jcr:primaryType="nt:unstructured"
+                        path="jcr:content/comments"/>
+                <include7
+                        jcr:primaryType="nt:unstructured"
+                        path="jcr:content/comments/*"/>
+                <include8
+                        jcr:primaryType="nt:unstructured"
+                        path="jcr:content/data/master"/>
+                <include9
+                        jcr:primaryType="nt:unstructured"
+                        path="jcr:content/usages"/>
+                <include10
+                        jcr:primaryType="nt:unstructured"
+                        path="jcr:content/renditions/cqdam.text.txt/jcr:content"/>
+            </dam:Asset>
+        </aggregates>
+        <facets
+                jcr:primaryType="nt:unstructured"
+                secure="statistical"
+                topChildren="100"/>
+        <indexRules jcr:primaryType="nt:unstructured">
+            <dam:Asset jcr:primaryType="nt:unstructured">
+                <properties jcr:primaryType="nt:unstructured">
+                    <contentFragment
+                            jcr:primaryType="nt:unstructured"
+                            name="jcr:content/contentFragment"
+                            propertyIndex="{Boolean}true"
+                            type="Boolean"/>
+                    <contentFragmentModel
+                            jcr:primaryType="nt:unstructured"
+                            name="jcr:content/data/cq:model"
+                            propertyIndex="{Boolean}true"/>
+                    <dcTitle
+                            jcr:primaryType="nt:unstructured"
+                            boost="{Double}2.0"
+                            name="jcr:content/metadata/dc:title"
+                            nodeScopeIndex="{Boolean}true"
+                            ordered="{Boolean}true"
+                            propertyIndex="{Boolean}true"
+                            useInSpellcheck="{Boolean}true"
+                            useInSuggest="{Boolean}true"
+                            analyzed="{Boolean}true"/>
+                    <dcDescription
+                            jcr:primaryType="nt:unstructured"
+                            name="jcr:content/metadata/dc:description"
+                            nodeScopeIndex="{Boolean}true"
+                            propertyIndex="{Boolean}true"
+                            useInSpellcheck="{Boolean}true"
+                            useInSuggest="{Boolean}true"
+                            analyzed="{Boolean}true"/>
+                    <dcVersion
+                            jcr:primaryType="nt:unstructured"
+                            name="jcr:content/metadata/dc:version"
+                            nodeScopeIndex="{Boolean}true"
+                            ordered="{Boolean}false"
+                            propertyIndex="{Boolean}true"
+                            analyzed="{Boolean}true"/>
+                    <dcSoftwareType
+                            jcr:primaryType="nt:unstructured"
+                            name="jcr:content/metadata/dc:softwareType"
+                            nodeScopeIndex="{Boolean}true"
+                            ordered="{Boolean}true"
+                            propertyIndex="{Boolean}true"/>
+                    <dcSolution
+                            jcr:primaryType="nt:unstructured"
+                            name="jcr:content/metadata/dc:solution"
+                            nodeScopeIndex="{Boolean}true"
+                            ordered="{Boolean}true"
+                            propertyIndex="{Boolean}true"
+                            analyzed="{Boolean}true"/>
+                    <dcProduct
+                            jcr:primaryType="nt:unstructured"
+                            name="jcr:content/metadata/dc:product"
+                            nodeScopeIndex="{Boolean}true"
+                            ordered="{Boolean}true"
+                            propertyIndex="{Boolean}true"/>
+                    <created
+                            jcr:primaryType="nt:unstructured"
+                            name="jcr:content/metadata/created"
+                            nodeScopeIndex="{Boolean}true"
+                            ordered="{Boolean}true"
+                            propertyIndex="{Boolean}true"/>
+                    <size
+                            jcr:primaryType="nt:unstructured"
+                            ordered="{Boolean}true"
+                            propertyIndex="{Boolean}true"
+                            type="Long"
+                            function="fn:string-length(jcr:content/renditions/original/jcr:content/@jcr:data)"/>
+                    <dcOperatingSystem
+                            jcr:primaryType="nt:unstructured"
+                            name="jcr:content/metadata/dc:operatingSystem"
+                            propertyIndex="{Boolean}true"/>
+                    <createdBy
+                            jcr:primaryType="nt:unstructured"
+                            name="jcr:content/metadata/createdBy"
+                            nodeScopeIndex="{Boolean}true"
+                            analyzed="{Boolean}true"/>
+
+                    <cqTags
+                            jcr:primaryType="nt:unstructured"
+                            name="jcr:content/metadata/cq:tags"
+                            nodeScopeIndex="{Boolean}true"
+                            propertyIndex="{Boolean}true"
+                            useInSpellcheck="{Boolean}true"
+                            useInSuggest="{Boolean}true"/>
+                    <dcFormat
+                            jcr:primaryType="nt:unstructured"
+                            analyzed="{Boolean}true"
+                            facets="{Boolean}true"
+                            name="jcr:content/metadata/dc:format"
+                            propertyIndex="{Boolean}true"/>
+                    <damStatus
+                            jcr:primaryType="nt:unstructured"
+                            facets="{Boolean}true"
+                            name="jcr:content/metadata/dam:status"
+                            propertyIndex="{Boolean}true"/>
+                    <videoCodec
+                            jcr:primaryType="nt:unstructured"
+                            name="jcr:content/metadata/videoCodec"
+                            propertyIndex="{Boolean}true"/>
+                    <audioCodec
+                            jcr:primaryType="nt:unstructured"
+                            name="jcr:content/metadata/audioCodec"
+                            propertyIndex="{Boolean}true"/>
+
+                    <xmpMMInstanceId
+                            jcr:primaryType="nt:unstructured"
+                            name="jcr:content/metadata/xmpMM:InstanceID"
+                            propertyIndex="{Boolean}true"/>
+                    <xmpMMDocumentId
+                            jcr:primaryType="nt:unstructured"
+                            name="jcr:content/metadata/xmpMM:DocumentID"
+                            propertyIndex="{Boolean}true"/>
+                    <damSha1
+                            jcr:primaryType="nt:unstructured"
+                            name="jcr:content/metadata/dam:sha1"
+                            propertyIndex="{Boolean}true"/>
+                    <hasValidMetadata
+                            jcr:primaryType="nt:unstructured"
+                            name="jcr:content/hasValidMetadata"
+                            propertyIndex="{Boolean}true"
+                            type="Boolean"/>
+                    <refExpired
+                            jcr:primaryType="nt:unstructured"
+                            name="jcr:content/metadata/refExpired"
+                            propertyIndex="{Boolean}true"
+                            type="Boolean"/>
+                    <videoBitrate
+                            jcr:primaryType="nt:unstructured"
+                            name="jcr:content/metadata/videoBitrate"
+                            propertyIndex="{Boolean}true"/>
+                    <audioBitrate
+                            jcr:primaryType="nt:unstructured"
+                            name="jcr:content/metadata/audioBitrate"
+                            propertyIndex="{Boolean}true"/>
+                    <usedBy
+                            jcr:primaryType="nt:unstructured"
+                            name="jcr:content/usages/usedBy"
+                            propertyIndex="{Boolean}true"/>
+                    <jcrLastModified
+                            jcr:primaryType="nt:unstructured"
+                            name="jcr:content/jcr:lastModified"
+                            ordered="{Boolean}true"
+                            propertyIndex="{Boolean}true"
+                            type="Date"/>
+                    <expirationDate
+                            jcr:primaryType="nt:unstructured"
+                            name="jcr:content/metadata/prism:expirationDate"
+                            ordered="{Boolean}true"
+                            propertyIndex="{Boolean}true"
+                            type="Date"/>
+                    <onTime
+                            jcr:primaryType="nt:unstructured"
+                            name="jcr:content/onTime"
+                            ordered="{Boolean}true"
+                            propertyIndex="{Boolean}true"
+                            type="Date"/>
+                    <offTime
+                            jcr:primaryType="nt:unstructured"
+                            name="jcr:content/offTime"
+                            ordered="{Boolean}true"
+                            propertyIndex="{Boolean}true"
+                            type="Date"/>
+                    <damSize
+                            jcr:primaryType="nt:unstructured"
+                            name="jcr:content/metadata/dam:size"
+                            ordered="{Boolean}true"
+                            propertyIndex="{Boolean}true"
+                            type="Long"/>
+                    <averageRating
+                            jcr:primaryType="nt:unstructured"
+                            name="jcr:content/averageRating"
+                            ordered="{Boolean}true"
+                            propertyIndex="{Boolean}true"
+                            type="Double"/>
+                    <tiffImageWidth
+                            jcr:primaryType="nt:unstructured"
+                            name="jcr:content/metadata/tiff:ImageWidth"
+                            ordered="{Boolean}true"
+                            propertyIndex="{Boolean}true"
+                            type="Long"/>
+                    <tiffImageLength
+                            jcr:primaryType="nt:unstructured"
+                            name="jcr:content/metadata/tiff:ImageLength"
+                            ordered="{Boolean}true"
+                            propertyIndex="{Boolean}true"
+                            type="Long"/>
+                    <score
+                            jcr:primaryType="nt:unstructured"
+                            name="jcr:content/usages/dam:score"
+                            ordered="{Boolean}true"
+                            propertyIndex="{Boolean}true"
+                            type="Long"/>
+                    <predictedTags
+                            jcr:primaryType="nt:unstructured"
+                            isRegexp="{Boolean}true"
+                            name="jcr:content/metadata/predictedTags/*/name"
+                            similarityTags="{Boolean}true"/>
+                    <predictedTagsConfidence
+                            jcr:primaryType="nt:unstructured"
+                            isRegexp="{Boolean}true"
+                            name="jcr:content/metadata/predictedTags/*/confidence"/>
+                    <predictedTagsDynamicBoost
+                            jcr:primaryType="nt:unstructured"
+                            dynamicBoost="{Boolean}true"
+                            isRegexp="{Boolean}true"
+                            name="jcr:content/metadata/predictedTags/.*"
+                            propertyIndex="{Boolean}true"/>
+                    <imageFeatures
+                            jcr:primaryType="nt:unstructured"
+                            name="jcr:content/metadata/imageFeatures/haystack0"
+                            nodeScopeIndex="{Boolean}true"
+                            propertyIndex="{Boolean}true"
+                            useInSimilarity="{Boolean}true"/>
+                    <damSearchElevate
+                            jcr:primaryType="nt:unstructured"
+                            analyzed="{Boolean}true"
+                            boost="{Double}100.0"
+                            name="jcr:content/metadata/dam:search_promote"
+                            nodeScopeIndex="{Boolean}true"
+                            propertyIndex="{Boolean}true"/>
+                    <jcrTitle
+                            jcr:primaryType="nt:unstructured"
+                            boost="{Double}2.0"
+                            name="jcr:content/jcr:title"
+                            nodeScopeIndex="{Boolean}true"
+                            propertyIndex="{Boolean}true"
+                            useInSpellcheck="{Boolean}true"
+                            useInSuggest="{Boolean}true"/>
+                    <jcrDescription
+                            jcr:primaryType="nt:unstructured"
+                            name="jcr:content/jcr:description"
+                            nodeScopeIndex="{Boolean}true"
+                            propertyIndex="{Boolean}true"
+                            useInSpellcheck="{Boolean}true"
+                            useInSuggest="{Boolean}true"/>
+                    <jcrCreated
+                            jcr:primaryType="nt:unstructured"
+                            name="jcr:created"
+                            ordered="{Boolean}true"
+                            propertyIndex="{Boolean}true"
+                            type="Date"/>
+                    <cqLastReplicated
+                            jcr:primaryType="nt:unstructured"
+                            name="jcr:content/cq:lastReplicated"
+                            ordered="{Boolean}true"
+                            propertyIndex="{Boolean}true"
+                            type="Date"/>
+                    <brandPortalReplicated
+                            jcr:primaryType="nt:unstructured"
+                            name="jcr:content/dam:portalReplicationDate"
+                            ordered="{Boolean}true"
+                            propertyIndex="{Boolean}true"
+                            type="Date"/>
+                    <lastReplicationAction
+                            jcr:primaryType="nt:unstructured"
+                            name="jcr:content/cq:lastReplicationAction"
+                            propertyIndex="{Boolean}true"/>
+                    <brandPortalReplicationAction
+                            jcr:primaryType="nt:unstructured"
+                            name="jcr:content/dam:portalReplicationAction"
+                            propertyIndex="{Boolean}true"/>
+                    <scene7Path
+                            jcr:primaryType="nt:unstructured"
+                            name="jcr:content/dam:scene7SanitizedPath"
+                            propertyIndex="{Boolean}true"/>
+                    <cqDrivelock
+                            jcr:primaryType="nt:unstructured"
+                            name="jcr:content/cq:drivelock"
+                            propertyIndex="{Boolean}true"
+                            sync="{Boolean}true"/>
+                    <nodeName
+                            jcr:primaryType="nt:unstructured"
+                            name=":nodeName"
+                            nodeScopeIndex="{Boolean}true"
+                            useInSuggest="{Boolean}true"/>
+
+
+                </properties>
+            </dam:Asset>
+        </indexRules>
+        <tika jcr:primaryType="nt:unstructured">
+                <config.xml jcr:primaryType="nt:file">
+                        <jcr:content jcr:primaryType="nt:resource" jcr:mimeType="text/xml"/>
+                </config.xml>
+        </tika>
+</jcr:root>
diff --git a/vault-core/src/test/resources/test-packages/nt_file_package.zip/jcr_root/_oak_index/damAssetLucene-7-custom-2/tika/config.xml b/vault-core/src/test/resources/test-packages/nt_file_package.zip/jcr_root/_oak_index/damAssetLucene-7-custom-2/tika/config.xml
new file mode 100644
index 00000000..b6900ba3
--- /dev/null
+++ b/vault-core/src/test/resources/test-packages/nt_file_package.zip/jcr_root/_oak_index/damAssetLucene-7-custom-2/tika/config.xml
@@ -0,0 +1,11 @@
+<properties>
+    <detectors>
+        <detector class="org.apache.tika.detect.TypeDetector"/>
+    </detectors>
+    <parsers>
+        <parser class="org.apache.tika.parser.DefaultParser">
+            <mime>text/plain</mime>
+        </parser>
+    </parsers>
+    <service-loader initializableProblemHandler="ignore" dynamic="true"/>
+</properties>
\ No newline at end of file