diff --git a/vault-core-it/vault-core-integration-tests/src/main/java/org/apache/jackrabbit/vault/packaging/integration/ImportIT.java b/vault-core-it/vault-core-integration-tests/src/main/java/org/apache/jackrabbit/vault/packaging/integration/ImportIT.java index 0cfef3f34..981439602 100644 --- a/vault-core-it/vault-core-integration-tests/src/main/java/org/apache/jackrabbit/vault/packaging/integration/ImportIT.java +++ b/vault-core-it/vault-core-integration-tests/src/main/java/org/apache/jackrabbit/vault/packaging/integration/ImportIT.java @@ -445,4 +445,55 @@ public void testEnhancedFileAggregatePackageWithIntermediateSaves() throws IOExc assertPropertyExists("/testroot/tika/config.xml/jcr:content/jcr:data"); assertProperty("/testroot/tika/config.xml/jcr:content/jcr:mimeType", "text/xml"); } + + @Test + public void testSkipFilterChecksOnImport_disabled() throws Exception { + ImportOptions opts = getDefaultOptions(); + Importer importer = new Importer(opts); + try (Archive archive = getFileArchive("/test-packages/outside-filters.zip")) { + archive.open(true); + importer.run(archive, admin.getRootNode()); + admin.save(); + } + assertNodeExists("/tmp/foo"); + assertPropertyMissing("/tmp/foo/bar/tobi/excludeddProp"); + } + + @Test + public void testSkipFilterChecksOnImport_enabled() throws Exception { + ImportOptions opts = getDefaultOptions(); + opts.setSkipFilterChecksOnImport(true); + Importer importer = new Importer(opts); + try (Archive archive = getFileArchive("/test-packages/outside-filters.zip")) { + archive.open(true); + importer.run(archive, admin.getRootNode()); + admin.save(); + } + assertNodeExists("/tmp/foo"); + assertPropertyExists("/tmp/foo/bar/tobi/excludedProp"); + } + + @Test + public void testSkipFilterChecksOnImport_enabled_mergeWithExisting() throws Exception { + ImportOptions opts = getDefaultOptions(); + opts.setSkipFilterChecksOnImport(true); + Node tmp= admin.getRootNode().addNode("tmp"); + Node tobi = tmp.addNode("foo").addNode("bar").addNode("tobi"); + tobi.setProperty("excludedProp", "existingvalue"); + tobi.setProperty("excludedProp-foo", "should-survive"); + admin.save(); + Importer importer = new Importer(opts); + try (Archive archive = getFileArchive("/test-packages/outside-filters.zip")) { + archive.open(true); + importer.run(archive, admin.getRootNode()); + admin.save(); + } + assertNodeExists("/tmp/foo"); + assertPropertyExists("/tmp/foo/bar/tobi/excludedProp"); + // import has overwritten existing property + assertProperty("/tmp/foo/bar/tobi/excludedProp", "excluded property"); + // but an existing property which is not overwritten by content in the package remains available + assertProperty("/tmp/foo/bar/tobi/excludedProp-foo", "should-survive"); + } + } \ No newline at end of file diff --git a/vault-core-it/vault-core-integration-tests/src/main/resources/test-packages/outside-filters.zip/META-INF/MANIFEST.MF b/vault-core-it/vault-core-integration-tests/src/main/resources/test-packages/outside-filters.zip/META-INF/MANIFEST.MF new file mode 100644 index 000000000..3ac18c147 --- /dev/null +++ b/vault-core-it/vault-core-integration-tests/src/main/resources/test-packages/outside-filters.zip/META-INF/MANIFEST.MF @@ -0,0 +1,3 @@ +Manifest-Version: 1.0 +Created-By: 11.0.21 (Eclipse Adoptium) + diff --git a/vault-core-it/vault-core-integration-tests/src/main/resources/test-packages/outside-filters.zip/META-INF/vault/config.xml b/vault-core-it/vault-core-integration-tests/src/main/resources/test-packages/outside-filters.zip/META-INF/vault/config.xml new file mode 100644 index 000000000..941af6c2e --- /dev/null +++ b/vault-core-it/vault-core-integration-tests/src/main/resources/test-packages/outside-filters.zip/META-INF/vault/config.xml @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vault-core-it/vault-core-integration-tests/src/main/resources/test-packages/outside-filters.zip/META-INF/vault/definition/.content.xml b/vault-core-it/vault-core-integration-tests/src/main/resources/test-packages/outside-filters.zip/META-INF/vault/definition/.content.xml new file mode 100644 index 000000000..d27295b90 --- /dev/null +++ b/vault-core-it/vault-core-integration-tests/src/main/resources/test-packages/outside-filters.zip/META-INF/vault/definition/.content.xml @@ -0,0 +1,25 @@ + + + + + + diff --git a/vault-core-it/vault-core-integration-tests/src/main/resources/test-packages/outside-filters.zip/META-INF/vault/filter.xml b/vault-core-it/vault-core-integration-tests/src/main/resources/test-packages/outside-filters.zip/META-INF/vault/filter.xml new file mode 100644 index 000000000..9c34b21a5 --- /dev/null +++ b/vault-core-it/vault-core-integration-tests/src/main/resources/test-packages/outside-filters.zip/META-INF/vault/filter.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/vault-core-it/vault-core-integration-tests/src/main/resources/test-packages/outside-filters.zip/META-INF/vault/nodetypes.cnd b/vault-core-it/vault-core-integration-tests/src/main/resources/test-packages/outside-filters.zip/META-INF/vault/nodetypes.cnd new file mode 100644 index 000000000..56fe4200b --- /dev/null +++ b/vault-core-it/vault-core-integration-tests/src/main/resources/test-packages/outside-filters.zip/META-INF/vault/nodetypes.cnd @@ -0,0 +1,12 @@ +<'sling'='http://sling.apache.org/jcr/sling/1.0'> +<'nt'='http://www.jcp.org/jcr/nt/1.0'> + +[sling:Folder] > nt:folder + - * (undefined) + - * (undefined) multiple + + * (nt:base) = sling:Folder version + +[sling:OrderedFolder] > sling:Folder + orderable + + * (nt:base) = sling:OrderedFolder version + diff --git a/vault-core-it/vault-core-integration-tests/src/main/resources/test-packages/outside-filters.zip/META-INF/vault/properties.xml b/vault-core-it/vault-core-integration-tests/src/main/resources/test-packages/outside-filters.zip/META-INF/vault/properties.xml new file mode 100644 index 000000000..2f63d5c00 --- /dev/null +++ b/vault-core-it/vault-core-integration-tests/src/main/resources/test-packages/outside-filters.zip/META-INF/vault/properties.xml @@ -0,0 +1,19 @@ + + + +FileVault Package Properties +admin +tmp +2011-06-07T14:31:49.179-07:00 +admin +2011-06-07T14:31:49.418-07:00 +1 + + +2 + +my_packages +2011-06-07T14:31:49.179-07:00 +admin +/etc/packages/my_packages/tmp + diff --git a/vault-core-it/vault-core-integration-tests/src/main/resources/test-packages/outside-filters.zip/jcr_root/.content.xml b/vault-core-it/vault-core-integration-tests/src/main/resources/test-packages/outside-filters.zip/jcr_root/.content.xml new file mode 100644 index 000000000..c269eee38 --- /dev/null +++ b/vault-core-it/vault-core-integration-tests/src/main/resources/test-packages/outside-filters.zip/jcr_root/.content.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + diff --git a/vault-core-it/vault-core-integration-tests/src/main/resources/test-packages/outside-filters.zip/jcr_root/tmp/.content.xml b/vault-core-it/vault-core-integration-tests/src/main/resources/test-packages/outside-filters.zip/jcr_root/tmp/.content.xml new file mode 100644 index 000000000..7948b7098 --- /dev/null +++ b/vault-core-it/vault-core-integration-tests/src/main/resources/test-packages/outside-filters.zip/jcr_root/tmp/.content.xml @@ -0,0 +1,5 @@ + + + + diff --git a/vault-core-it/vault-core-integration-tests/src/main/resources/test-packages/outside-filters.zip/jcr_root/tmp/foo/.content.xml b/vault-core-it/vault-core-integration-tests/src/main/resources/test-packages/outside-filters.zip/jcr_root/tmp/foo/.content.xml new file mode 100644 index 000000000..f0bb4c26f --- /dev/null +++ b/vault-core-it/vault-core-integration-tests/src/main/resources/test-packages/outside-filters.zip/jcr_root/tmp/foo/.content.xml @@ -0,0 +1,5 @@ + + + + diff --git a/vault-core-it/vault-core-integration-tests/src/main/resources/test-packages/outside-filters.zip/jcr_root/tmp/foo/bar/.content.xml b/vault-core-it/vault-core-integration-tests/src/main/resources/test-packages/outside-filters.zip/jcr_root/tmp/foo/bar/.content.xml new file mode 100644 index 000000000..4107c35a0 --- /dev/null +++ b/vault-core-it/vault-core-integration-tests/src/main/resources/test-packages/outside-filters.zip/jcr_root/tmp/foo/bar/.content.xml @@ -0,0 +1,5 @@ + + + + diff --git a/vault-core-it/vault-core-integration-tests/src/main/resources/test-packages/outside-filters.zip/jcr_root/tmp/foo/bar/tobi/.content.xml b/vault-core-it/vault-core-integration-tests/src/main/resources/test-packages/outside-filters.zip/jcr_root/tmp/foo/bar/tobi/.content.xml new file mode 100644 index 000000000..cd1ec9f57 --- /dev/null +++ b/vault-core-it/vault-core-integration-tests/src/main/resources/test-packages/outside-filters.zip/jcr_root/tmp/foo/bar/tobi/.content.xml @@ -0,0 +1,5 @@ + + diff --git a/vault-core/.DS_Store b/vault-core/.DS_Store new file mode 100644 index 000000000..1acb219d7 Binary files /dev/null and b/vault-core/.DS_Store differ diff --git a/vault-core/src/main/java/org/apache/jackrabbit/vault/fs/config/package-info.java b/vault-core/src/main/java/org/apache/jackrabbit/vault/fs/config/package-info.java index a29b5cbfa..5794b22a8 100644 --- a/vault-core/src/main/java/org/apache/jackrabbit/vault/fs/config/package-info.java +++ b/vault-core/src/main/java/org/apache/jackrabbit/vault/fs/config/package-info.java @@ -15,7 +15,7 @@ * limitations under the License. */ -@Version("2.9.0") +@Version("2.10.0") package org.apache.jackrabbit.vault.fs.config; import org.osgi.annotation.versioning.Version; diff --git a/vault-core/src/main/java/org/apache/jackrabbit/vault/fs/impl/io/AbstractArtifactHandler.java b/vault-core/src/main/java/org/apache/jackrabbit/vault/fs/impl/io/AbstractArtifactHandler.java index 89d664301..f691e821a 100644 --- a/vault-core/src/main/java/org/apache/jackrabbit/vault/fs/impl/io/AbstractArtifactHandler.java +++ b/vault-core/src/main/java/org/apache/jackrabbit/vault/fs/impl/io/AbstractArtifactHandler.java @@ -162,12 +162,12 @@ public void dump(DumpContext ctx, boolean isLast) { ctx.println(isLast, getClass().getSimpleName()); } - protected ImportInfoImpl importDocView(InputSource source, Node parentNode, String rootNodeName, ArtifactSetImpl artifacts, WorkspaceFilter wspFilter, IdConflictPolicy idConflictPolicy) throws IOException, RepositoryException { - return importDocView(source, parentNode, rootNodeName, artifacts, true, wspFilter, idConflictPolicy); + protected ImportInfoImpl importDocView(InputSource source, Node parentNode, String rootNodeName, ArtifactSetImpl artifacts, WorkspaceFilter wspFilter, IdConflictPolicy idConflictPolicy, boolean skipFilterChecksOnImport) throws IOException, RepositoryException { + return importDocView(source, parentNode, rootNodeName, artifacts, true, wspFilter, idConflictPolicy, skipFilterChecksOnImport); } - protected ImportInfoImpl importDocView(InputSource source, Node parentNode, String rootNodeName, ArtifactSetImpl artifacts, boolean isStrict, WorkspaceFilter wspFilter, IdConflictPolicy idConflictPolicy) throws IOException, RepositoryException { - DocViewImporter handler = new DocViewImporter(parentNode, rootNodeName, artifacts, wspFilter, idConflictPolicy, getAcHandling(), getCugHandling()); + protected ImportInfoImpl importDocView(InputSource source, Node parentNode, String rootNodeName, ArtifactSetImpl artifacts, boolean isStrict, WorkspaceFilter wspFilter, IdConflictPolicy idConflictPolicy, boolean skipFilterChecksOnImport) throws IOException, RepositoryException { + DocViewImporter handler = new DocViewImporter(parentNode, rootNodeName, artifacts, wspFilter, idConflictPolicy, getAcHandling(), getCugHandling(), skipFilterChecksOnImport); String rootNodePath = parentNode.getPath(); if (!rootNodePath.equals("/")) { rootNodePath += "/"; diff --git a/vault-core/src/main/java/org/apache/jackrabbit/vault/fs/impl/io/DocViewImporter.java b/vault-core/src/main/java/org/apache/jackrabbit/vault/fs/impl/io/DocViewImporter.java index 9e63fc29b..b2c78263a 100644 --- a/vault-core/src/main/java/org/apache/jackrabbit/vault/fs/impl/io/DocViewImporter.java +++ b/vault-core/src/main/java/org/apache/jackrabbit/vault/fs/impl/io/DocViewImporter.java @@ -72,6 +72,7 @@ import org.apache.jackrabbit.vault.fs.api.IdConflictPolicy; import org.apache.jackrabbit.vault.fs.api.ImportInfo.Info; import org.apache.jackrabbit.vault.fs.api.ImportInfo.Type; +import org.apache.jackrabbit.vault.fs.config.DefaultWorkspaceFilter; import org.apache.jackrabbit.vault.fs.api.ImportMode; import org.apache.jackrabbit.vault.fs.api.ItemFilterSet; import org.apache.jackrabbit.vault.fs.api.NodeNameList; @@ -225,6 +226,11 @@ public class DocViewImporter implements DocViewParserHandler { */ private final boolean isSnsSupported; + /** + * set true if filter checks can be skipped on import + */ + private boolean skipFilterChecksOnImport = false; + /** * Creates a new importer that will imports the * items below the given root. @@ -236,12 +242,12 @@ public class DocViewImporter implements DocViewParserHandler { * @throws RepositoryException if an error occurs. */ public DocViewImporter(Node parentNode, String rootNodeName, - ArtifactSetImpl artifacts, WorkspaceFilter wspFilter, IdConflictPolicy idConflictPolicy) throws RepositoryException { - this(parentNode, rootNodeName, artifacts, wspFilter, idConflictPolicy, AccessControlHandling.IGNORE, null); + ArtifactSetImpl artifacts, WorkspaceFilter wspFilter, IdConflictPolicy idConflictPolicy, boolean skipFilterChecksOnImport) throws RepositoryException { + this(parentNode, rootNodeName, artifacts, wspFilter, idConflictPolicy, AccessControlHandling.IGNORE, null, skipFilterChecksOnImport); } public DocViewImporter(Node parentNode, String rootNodeName, - ArtifactSetImpl artifacts, WorkspaceFilter wspFilter, IdConflictPolicy idConflictPolicy, AccessControlHandling aclHandling, AccessControlHandling cugHandling) throws RepositoryException { + ArtifactSetImpl artifacts, WorkspaceFilter wspFilter, IdConflictPolicy idConflictPolicy, AccessControlHandling aclHandling, AccessControlHandling cugHandling, boolean skipFilterChecksOnImport) throws RepositoryException { this.filter = artifacts.getCoverage(); this.wspFilter = wspFilter; this.rootDepth = parentNode.getDepth() + 1; @@ -270,9 +276,11 @@ public DocViewImporter(Node parentNode, String rootNodeName, for (Artifact a : artifacts.values(ArtifactType.HINT)) { hints.add(rootPath + a.getRelativePath()); } - + stack = new StackElement(parentNode, parentNode.isNew()); npResolver = new DefaultNamePathResolver(parentNode.getSession()); + + this.skipFilterChecksOnImport = skipFilterChecksOnImport; } /** @@ -1014,7 +1022,8 @@ private void removeReferences(@NotNull Node node) throws ReferentialIntegrityExc // TODO: is this faster than using sysview import? // set new primary type (but never set rep:root) String newPrimaryType = ni.getPrimaryType().orElseThrow(() -> new IllegalStateException("Mandatory property 'jcr:primaryType' missing from " + ni)); - if (importMode == ImportMode.REPLACE && !"rep:root".equals(newPrimaryType) && wspFilter.includesProperty(PathUtil.append(node.getPath(), JcrConstants.JCR_PRIMARYTYPE))) { + final boolean allowedByFilter = (skipFilterChecksOnImport || wspFilter.includesProperty(PathUtil.append(node.getPath(), JcrConstants.JCR_PRIMARYTYPE))); + if (importMode == ImportMode.REPLACE && !"rep:root".equals(newPrimaryType) && allowedByFilter) { String currentPrimaryType = node.getPrimaryNodeType().getName(); if (!currentPrimaryType.equals(newPrimaryType)) { vs.ensureCheckedOut(); @@ -1157,7 +1166,8 @@ private void removeReferences(@NotNull Node node) throws ReferentialIntegrityExc // add the protected properties for (DocViewProperty2 p : ni.getProperties()) { String qualifiedPropertyName = npResolver.getJCRName(p.getName()); - if (p.getStringValue().isPresent() && PROTECTED_PROPERTIES_CONSIDERED_FOR_NEW_NODES.contains(p.getName()) && wspFilter.includesProperty(nodePath + "/" + qualifiedPropertyName)) { + final boolean allowedByFilter = (skipFilterChecksOnImport || wspFilter.includesProperty(nodePath + "/" + qualifiedPropertyName)); + if (p.getStringValue().isPresent() && PROTECTED_PROPERTIES_CONSIDERED_FOR_NEW_NODES.contains(p.getName()) && allowedByFilter) { attrs = new AttributesImpl(); attrs.addAttribute(Name.NS_SV_URI, "name", "sv:name", ATTRIBUTE_TYPE_CDATA, qualifiedPropertyName); attrs.addAttribute(Name.NS_SV_URI, "type", "sv:type", ATTRIBUTE_TYPE_CDATA, PropertyType.nameFromValue(p.getType())); @@ -1277,7 +1287,8 @@ private boolean setUnprotectedProperties(@NotNull EffectiveNodeType effectiveNod // add properties for (DocViewProperty2 prop : ni.getProperties()) { String name = npResolver.getJCRName(prop.getName()); - if (prop != null && !isPropertyProtected(effectiveNodeType, prop) && (overwriteExistingProperties || !node.hasProperty(name)) && wspFilter.includesProperty(node.getPath() + "/" + name)) { + final boolean allowedByFilter = (skipFilterChecksOnImport || wspFilter.includesProperty(node.getPath() + "/" + name)); + if (prop != null && !isPropertyProtected(effectiveNodeType, prop) && (overwriteExistingProperties || !node.hasProperty(name)) && allowedByFilter) { // check if property is allowed try { modified |= prop.apply(node); diff --git a/vault-core/src/main/java/org/apache/jackrabbit/vault/fs/impl/io/FileArtifactHandler.java b/vault-core/src/main/java/org/apache/jackrabbit/vault/fs/impl/io/FileArtifactHandler.java index 6a265cdb8..ab1328171 100644 --- a/vault-core/src/main/java/org/apache/jackrabbit/vault/fs/impl/io/FileArtifactHandler.java +++ b/vault-core/src/main/java/org/apache/jackrabbit/vault/fs/impl/io/FileArtifactHandler.java @@ -228,7 +228,7 @@ public ImportInfoImpl accept(@NotNull ImportOptions options, boolean isStrictByD mode = wspFilter.getImportMode(path); } if (mode != ImportMode.MERGE) { - info.merge(importDocView(file.getInputSource(), newParent, newName, newSet, wspFilter, options.getIdConflictPolicy())); + info.merge(importDocView(file.getInputSource(), newParent, newName, newSet, wspFilter, options.getIdConflictPolicy(), options.getSkipFilterChecksOnImport())); } else { info.onNop(path); } @@ -315,7 +315,7 @@ private ImportInfoImpl importDocView(Node parent, InputSource source, if (idx > 0) { rootName = rootName.substring(0, idx); } - return importDocView(source, parent, rootName, artifacts, wspFilter, options.getIdConflictPolicy()); + return importDocView(source, parent, rootName, artifacts, wspFilter, options.getIdConflictPolicy(),options.getSkipFilterChecksOnImport()); } private boolean importNtResource(ImportInfo info, Node content, Artifact artifact) diff --git a/vault-core/src/main/java/org/apache/jackrabbit/vault/fs/impl/io/GenericArtifactHandler.java b/vault-core/src/main/java/org/apache/jackrabbit/vault/fs/impl/io/GenericArtifactHandler.java index e0da8ea66..3364222e3 100644 --- a/vault-core/src/main/java/org/apache/jackrabbit/vault/fs/impl/io/GenericArtifactHandler.java +++ b/vault-core/src/main/java/org/apache/jackrabbit/vault/fs/impl/io/GenericArtifactHandler.java @@ -85,7 +85,7 @@ public ImportInfoImpl accept(@NotNull ImportOptions options, boolean isStrictByD } } } - info.merge(importDocView(source, parent, name, artifacts, options.isStrict(isStrictByDefault), wspFilter, options.getIdConflictPolicy())); + info.merge(importDocView(source, parent, name, artifacts, options.isStrict(isStrictByDefault), wspFilter, options.getIdConflictPolicy(), options.getSkipFilterChecksOnImport())); } return info; } diff --git a/vault-core/src/main/java/org/apache/jackrabbit/vault/fs/io/ImportOptions.java b/vault-core/src/main/java/org/apache/jackrabbit/vault/fs/io/ImportOptions.java index 36fde847e..adde2114c 100644 --- a/vault-core/src/main/java/org/apache/jackrabbit/vault/fs/io/ImportOptions.java +++ b/vault-core/src/main/java/org/apache/jackrabbit/vault/fs/io/ImportOptions.java @@ -73,6 +73,8 @@ public class ImportOptions { private Boolean overwritePrimaryTypesOfFolders = null; + private Boolean skipFilterChecksOnImport = false; + /** * Default constructor. */ @@ -105,6 +107,7 @@ public ImportOptions(ImportOptions base) { dependencyHandling = base.dependencyHandling; idConflictPolicy = base.idConflictPolicy; overwritePrimaryTypesOfFolders = base.overwritePrimaryTypesOfFolders; + skipFilterChecksOnImport = base.skipFilterChecksOnImport; } } @@ -132,6 +135,7 @@ public ImportOptions copy() { ret.dependencyHandling = dependencyHandling; ret.idConflictPolicy = idConflictPolicy; ret.overwritePrimaryTypesOfFolders = overwritePrimaryTypesOfFolders; + ret.skipFilterChecksOnImport = skipFilterChecksOnImport; return ret; } @@ -480,6 +484,26 @@ public void setIdConflictPolicy(@NotNull IdConflictPolicy idConflictPolicy) { this.idConflictPolicy = idConflictPolicy; } + /** + * Allows to skip filter checks when importing packages; you can set this + * to {{code true}} if you are sure that this package contains no content + * which would be rejected by filters. + * This only affects checks against items in the package, but not existing items in + * the repository. + * @param skipFilterChecksOnImport if true skip the checks + */ + public void setSkipFilterChecksOnImport (boolean skipFilterChecksOnImport) { + this.skipFilterChecksOnImport = skipFilterChecksOnImport; + } + + /** + * get the filter check skip policy + * @return true if the filter check is skipped + */ + public boolean getSkipFilterChecksOnImport() { + return this.skipFilterChecksOnImport; + } + @Override public int hashCode() { final int prime = 31; @@ -502,6 +526,7 @@ public int hashCode() { result = prime * result + ((idConflictPolicy == null) ? 0 : idConflictPolicy.hashCode()); result = prime * result + (strict ? 1231 : 1237); result = prime * result + (overwritePrimaryTypesOfFolders ? 1231 : 1237); + result = prime * result + (skipFilterChecksOnImport ? 1231 : 1237); return result; } @@ -575,6 +600,8 @@ public boolean equals(Object obj) { return false; } else if (!idConflictPolicy.equals(other.idConflictPolicy)) return false; + if (skipFilterChecksOnImport != other.skipFilterChecksOnImport) + return false; return true; } @@ -592,6 +619,7 @@ public String toString() { + (pathMapping != null ? "pathMapping=" + pathMapping + ", " : "") + (dependencyHandling != null ? "dependencyHandling=" + dependencyHandling + ", " : "") + "overwritePrimaryTypesOfFolders=" + overwritePrimaryTypesOfFolders + ", " - + "idConflictPolicy=" + (idConflictPolicy != null ? idConflictPolicy : IdConflictPolicy.FAIL) + "]"; + + "idConflictPolicy=" + (idConflictPolicy != null ? idConflictPolicy : IdConflictPolicy.FAIL) + "]," + + "skipFilterChecksOnImport=" + skipFilterChecksOnImport; } } \ No newline at end of file diff --git a/vault-core/src/main/java/org/apache/jackrabbit/vault/fs/io/package-info.java b/vault-core/src/main/java/org/apache/jackrabbit/vault/fs/io/package-info.java index 9783d907f..8f991720e 100644 --- a/vault-core/src/main/java/org/apache/jackrabbit/vault/fs/io/package-info.java +++ b/vault-core/src/main/java/org/apache/jackrabbit/vault/fs/io/package-info.java @@ -15,7 +15,7 @@ * limitations under the License. */ -@Version("2.16.0") +@Version("2.17.0") package org.apache.jackrabbit.vault.fs.io; import org.osgi.annotation.versioning.Version; diff --git a/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/package-info.java b/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/package-info.java index ae88c4a99..b9b1ec4eb 100644 --- a/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/package-info.java +++ b/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/package-info.java @@ -15,7 +15,7 @@ * limitations under the License. */ -@Version("2.16.0") +@Version("2.17.0") package org.apache.jackrabbit.vault.packaging; import org.osgi.annotation.versioning.Version;