You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by re...@apache.org on 2022/01/19 12:08:07 UTC

[jackrabbit-filevault] branch feature/JCRVLT-596 updated: JCRVLT-596: try to detect whether a policy was set

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

reschke pushed a commit to branch feature/JCRVLT-596
in repository https://gitbox.apache.org/repos/asf/jackrabbit-filevault.git


The following commit(s) were added to refs/heads/feature/JCRVLT-596 by this push:
     new 7738308  JCRVLT-596: try to detect whether a policy was set
7738308 is described below

commit 7738308066418d735dbbe1c06c8b99a2026da31b
Author: Julian Reschke <ju...@gmx.de>
AuthorDate: Wed Jan 19 13:07:45 2022 +0100

    JCRVLT-596: try to detect whether a policy was set
---
 .../apache/jackrabbit/vault/fs/impl/io/DocViewSAXImporter.java |  3 ++-
 .../java/org/apache/jackrabbit/vault/fs/io/ImportOptions.java  | 10 ++++++----
 .../java/org/apache/jackrabbit/vault/fs/io/package-info.java   |  2 +-
 .../apache/jackrabbit/vault/packaging/impl/JcrPackageImpl.java |  5 ++++-
 4 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/vault-core/src/main/java/org/apache/jackrabbit/vault/fs/impl/io/DocViewSAXImporter.java b/vault-core/src/main/java/org/apache/jackrabbit/vault/fs/impl/io/DocViewSAXImporter.java
index 4854642..ff5d889 100644
--- a/vault-core/src/main/java/org/apache/jackrabbit/vault/fs/impl/io/DocViewSAXImporter.java
+++ b/vault-core/src/main/java/org/apache/jackrabbit/vault/fs/impl/io/DocViewSAXImporter.java
@@ -254,6 +254,7 @@ public class DocViewSAXImporter extends RejectingEntityDefaultHandler implements
      * @param rootNodeName name of the root node
      * @param artifacts    the artifact set that could contain attachments
      * @param wspFilter    workspace filter
+     * @param idConflictPolicy conflict policy
      * @throws RepositoryException if an error occurs.
      */
     public DocViewSAXImporter(Node parentNode, String rootNodeName,
@@ -270,7 +271,7 @@ public class DocViewSAXImporter extends RejectingEntityDefaultHandler implements
         this.snsSupported = session.getRepository().
                 getDescriptorValue(Repository.NODE_TYPE_MANAGEMENT_SAME_NAME_SIBLINGS_SUPPORTED).getBoolean();
         this.nsHelper = new JcrNamespaceHelper(session, null);
-        this.idConflictPolicy = idConflictPolicy;
+        this.idConflictPolicy = idConflictPolicy != null ? idConflictPolicy : IdConflictPolicy.FAIL;
         log.debug("idConflictPolicy: {}", idConflictPolicy);
         String rootPath = parentNode.getPath();
         if (!rootPath.equals("/")) {
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 2fa7f53..f6fcce8 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
@@ -19,6 +19,7 @@ package org.apache.jackrabbit.vault.fs.io;
 
 import java.io.File;
 import java.io.IOException;
+import java.util.Objects;
 import java.util.regex.Pattern;
 import java.util.regex.PatternSyntaxException;
 
@@ -29,6 +30,7 @@ import org.apache.jackrabbit.vault.fs.api.ProgressTrackerListener;
 import org.apache.jackrabbit.vault.fs.api.WorkspaceFilter;
 import org.apache.jackrabbit.vault.packaging.DependencyHandling;
 import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
 
 /**
  * Option that control the package import.
@@ -67,7 +69,7 @@ public class ImportOptions {
 
     private DependencyHandling dependencyHandling = null;
 
-    private @NotNull IdConflictPolicy idConflictPolicy = IdConflictPolicy.FAIL;
+    private IdConflictPolicy idConflictPolicy = null;
 
     private Boolean overwritePrimaryTypesOfFolders = null;
 
@@ -452,10 +454,10 @@ public class ImportOptions {
 
     /**
      * 
-     * @return the id conflict policy
+     * @return the id conflict policy ({@code null} if not set before)
      * @since 3.5.1
      */
-    public @NotNull IdConflictPolicy getIdConflictPolicy() {
+    public @Nullable IdConflictPolicy getIdConflictPolicy() {
         return idConflictPolicy;
     }
 
@@ -558,7 +560,7 @@ public class ImportOptions {
             return false;
         if (overwritePrimaryTypesOfFolders != other.overwritePrimaryTypesOfFolders)
             return false;
-        if (!idConflictPolicy.equals(other.idConflictPolicy))
+        if (!Objects.equals(idConflictPolicy, other.idConflictPolicy))
             return false;
         return true;
     }
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 2be7b2f..bd8a9c5 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.12.0")
+@Version("2.12.1")
 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/impl/JcrPackageImpl.java b/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/impl/JcrPackageImpl.java
index ee5320c..5333c29 100644
--- a/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/impl/JcrPackageImpl.java
+++ b/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/impl/JcrPackageImpl.java
@@ -386,7 +386,10 @@ public class JcrPackageImpl implements JcrPackage {
             // MAX_VALUE disables saving completely, therefore we have to use a lower value!
             opts.setAutoSaveThreshold(Integer.MAX_VALUE - 1);
         }
-        opts.setIdConflictPolicy(mgr.getDefaultIdConflictPolicy());
+        if (opts.getIdConflictPolicy() == null) {
+            log.debug("setting IdConflictPolicy to {}", mgr.getDefaultIdConflictPolicy());
+            opts.setIdConflictPolicy(mgr.getDefaultIdConflictPolicy());
+        }
         InstallContextImpl ctx = pack.prepareExtract(node.getSession(), opts, mgr.getSecurityConfig(), mgr.isStrictByDefault(),
                 mgr.overwritePrimaryTypesOfFoldersByDefault());
         JcrPackage snap = null;