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