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:45 UTC

[jackrabbit-filevault] branch bugfix/nt-file-import-failure created (now f6dbd126)

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

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


      at f6dbd126 add test to reproduce installation issue with nt:file

This branch includes the following new commits:

     new f6dbd126 add test to reproduce installation issue with nt:file

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



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

Posted by kw...@apache.org.
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