You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by ba...@apache.org on 2015/04/09 15:47:40 UTC

svn commit: r1672350 - /jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/RepositoryUpgrade.java

Author: baedke
Date: Thu Apr  9 13:47:40 2015
New Revision: 1672350

URL: http://svn.apache.org/r1672350
Log:
OAK-2737: RepositoryUpgrade.copy() should allow custom commit hooks


Added RepositoryUpgrade.setCustomCommitHooks().

Modified:
    jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/RepositoryUpgrade.java

Modified: jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/RepositoryUpgrade.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/RepositoryUpgrade.java?rev=1672350&r1=1672349&r2=1672350&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/RepositoryUpgrade.java (original)
+++ jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/RepositoryUpgrade.java Thu Apr  9 13:47:40 2015
@@ -34,6 +34,7 @@ import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
 import java.util.Collection;
+import java.util.Collections;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
@@ -121,6 +122,7 @@ import org.apache.jackrabbit.spi.commons
 import org.apache.jackrabbit.spi.commons.value.ValueFormat;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import sun.rmi.log.LogInputStream;
 
 public class RepositoryUpgrade {
 
@@ -138,6 +140,8 @@ public class RepositoryUpgrade {
 
     private boolean copyBinariesByReference = false;
 
+    private List<CommitHook> customCommitHooks = null;
+
     /**
      * Copies the contents of the repository in the given source directory
      * to the given target node store.
@@ -191,6 +195,26 @@ public class RepositoryUpgrade {
     }
 
     /**
+     * Returns the list of custom CommitHooks to be applied before the final
+     * type validation, reference and indexing hooks.
+     *
+     * @return the list of custom CommitHooks
+     */
+    public List<CommitHook> getCustomCommitHooks() {
+        return customCommitHooks;
+    }
+
+    /**
+     * Sets the list of custom CommitHooks to be applied before the final
+     * type validation, reference and indexing hooks.
+     *
+     * @param customCommitHooks the list of custom CommitHooks
+     */
+    public void setCustomCommitHooks(List<CommitHook> customCommitHooks) {
+        this.customCommitHooks = customCommitHooks;
+    }
+
+    /**
      * Copies the full content from the source to the target repository.
      * <p>
      * The source repository <strong>must not be modified</strong> while
@@ -298,6 +322,10 @@ public class RepositoryUpgrade {
                 hooks.addAll(sc.getCommitHooks(workspaceName));
             }
 
+            if (customCommitHooks != null) {
+                hooks.addAll(customCommitHooks);
+            }
+
             // type validation, reference and indexing hooks
             hooks.add(new EditorHook(new CompositeEditorProvider(
                 createTypeEditorProvider(),



Re: svn commit: r1672350 - /jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/RepositoryUpgrade.java

Posted by Michael Dürig <md...@apache.org>.
Hi,

On 9.4.15 3:47 , baedke@apache.org wrote:
> +    private List<CommitHook> customCommitHooks = null;

Note that with this approach every custom commit hook adds a full 
repository traversal, which might have an impact on the time it takes to 
migrate big repositories. A better alternative might be to let clients 
inject a list of EditorProviders and compose them to a CompositeEditor, 
which will only require a single traversal.

Michael