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;