Author: chetanm
Date: Fri Nov 25 14:19:42 2016
New Revision: 1771319
URL: http://svn.apache.org/viewvc?rev=1771319&view=rev
Log:
OAK-5126 - Support ChangeSet merging and serialization
Ensure that path being added is within max depth allowed
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/ChangeSetBuilder.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/observation/ChangeSetBuilderTest.java
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/ChangeSetBuilder.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/ChangeSetBuilder.java?rev=1771319&r1=1771318&r2=1771319&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/ChangeSetBuilder.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/ChangeSetBuilder.java
Fri Nov 25 14:19:42 2016
@@ -21,6 +21,7 @@ package org.apache.jackrabbit.oak.plugin
import java.util.Set;
import com.google.common.collect.Sets;
+import org.apache.jackrabbit.oak.commons.PathUtils;
/**
* Builder of a ChangeSet - only used by ChangeCollectorProvider (and tests..)
@@ -58,6 +59,9 @@ public class ChangeSetBuilder {
}
public ChangeSetBuilder addParentPath(String path){
+ if (PathUtils.getDepth(path) > maxPathDepth){
+ return this;
+ }
parentPathOverflow = addAndCheckOverflow(parentPaths, path, maxItems,
parentPathOverflow);
return this;
}
Modified:
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/observation/ChangeSetBuilderTest.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/observation/ChangeSetBuilderTest.java?rev=1771319&r1=1771318&r2=1771319&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/observation/ChangeSetBuilderTest.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/observation/ChangeSetBuilderTest.java
Fri Nov 25 14:19:42 2016
@@ -133,6 +133,17 @@ public class ChangeSetBuilderTest {
assertThat(cs.getPropertyNames(), containsInAnyOrder("pn-1", "pn-2"));
}
+ @Test
+ public void pathDepth() throws Exception{
+ ChangeSetBuilder cb = new ChangeSetBuilder(2, 2);
+ cb.addParentPath("/a/b");
+ cb.addParentPath("/x");
+ cb.addParentPath("/p/q/r");
+
+ ChangeSet cs = cb.build();
+ assertThat(cs.getParentPaths(), containsInAnyOrder("/a/b", "/x"));
+ }
+
private static void add(ChangeSetBuilder cb, String suffix){
cb.addNodeType("nt-"+suffix)
.addParentPath("p-"+suffix)