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 md...@apache.org on 2014/02/19 15:34:18 UTC
svn commit: r1569759 - in
/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak:
api/Root.java core/AbstractRoot.java core/ImmutableRoot.java
Author: mduerig
Date: Wed Feb 19 14:34:17 2014
New Revision: 1569759
URL: http://svn.apache.org/r1569759
Log:
OAK-1438: Generalise Root.commit(String) to Root.commit(Map)
Introduce info argument of type Map in Root.commit
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/Root.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/AbstractRoot.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/ImmutableRoot.java
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/Root.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/Root.java?rev=1569759&r1=1569758&r2=1569759&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/Root.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/Root.java Wed Feb 19 14:34:17 2014
@@ -20,6 +20,7 @@ package org.apache.jackrabbit.oak.api;
import java.io.IOException;
import java.io.InputStream;
+import java.util.Map;
import javax.annotation.CheckForNull;
import javax.annotation.Nonnull;
@@ -41,6 +42,7 @@ import javax.annotation.Nullable;
* @see Tree Existence and iterability of trees
*/
public interface Root {
+ String COMMIT_PATH = "path";
/**
* Move the child located at {@code sourcePath} to a child at {@code destPath}.
@@ -86,6 +88,8 @@ public interface Root {
*/
void refresh();
+ void commit(Map<String, Object> info) throws CommitFailedException;
+
/**
* Atomically persists all changes made to the tree attached to this root
* at the given {@code path}. An implementations may throw a
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/AbstractRoot.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/AbstractRoot.java?rev=1569759&r1=1569758&r2=1569759&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/AbstractRoot.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/AbstractRoot.java Wed Feb 19 14:34:17 2014
@@ -18,14 +18,23 @@
*/
package org.apache.jackrabbit.oak.core;
+import static com.google.common.base.Preconditions.checkNotNull;
+import static com.google.common.collect.Lists.newArrayList;
+import static org.apache.jackrabbit.oak.commons.PathUtils.getName;
+import static org.apache.jackrabbit.oak.commons.PathUtils.getParentPath;
+import static org.apache.jackrabbit.oak.commons.PathUtils.isAncestor;
+
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
+import java.util.Map;
+
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import javax.security.auth.Subject;
+import com.google.common.collect.Maps;
import org.apache.jackrabbit.oak.api.Blob;
import org.apache.jackrabbit.oak.api.CommitFailedException;
import org.apache.jackrabbit.oak.api.ContentSession;
@@ -54,12 +63,6 @@ import org.apache.jackrabbit.oak.spi.sta
import org.apache.jackrabbit.oak.spi.state.NodeState;
import org.apache.jackrabbit.oak.spi.state.NodeStore;
-import static com.google.common.base.Preconditions.checkNotNull;
-import static com.google.common.collect.Lists.newArrayList;
-import static org.apache.jackrabbit.oak.commons.PathUtils.getName;
-import static org.apache.jackrabbit.oak.commons.PathUtils.getParentPath;
-import static org.apache.jackrabbit.oak.commons.PathUtils.isAncestor;
-
abstract class AbstractRoot implements Root {
/**
@@ -106,7 +109,7 @@ abstract class AbstractRoot implements R
* may no longer be detected as changes in the commit hook due to way the
* diff is compiled.
*/
- private MoveTracker moveTracker = new MoveTracker();
+ private final MoveTracker moveTracker = new MoveTracker();
/**
* Number of {@link #updated} occurred.
@@ -223,19 +226,14 @@ abstract class AbstractRoot implements R
}
@Override
- public void commit() throws CommitFailedException {
- commit(null, "/");
- }
-
- @Override
- public void commit(@Nullable String message, @Nonnull String path)
- throws CommitFailedException {
+ public void commit(Map<String, Object> info) throws CommitFailedException {
checkLive();
ContentSession session = getContentSession();
- CommitInfo info = new CommitInfo(
- session.toString(), session.getAuthInfo().getUserID(),
- message, path);
- store.merge(builder, getCommitHook(), info);
+ Object path = info.get(COMMIT_PATH);
+ CommitInfo commitInfo = new CommitInfo(
+ session.toString(), session.getAuthInfo().getUserID(), (String) info.get("message"),
+ path instanceof String ? (String) path : "/");
+ store.merge(builder, getCommitHook(), commitInfo);
secureBuilder.baseChanged();
modCount = 0;
if (permissionProvider.hasValue()) {
@@ -244,6 +242,20 @@ abstract class AbstractRoot implements R
moveTracker.clear();
}
+ @Override
+ public void commit(@Nullable String message, @Nullable String path)
+ throws CommitFailedException {
+ Map<String, Object> info = Maps.newHashMap();
+ info.put("message", message);
+ info.put(COMMIT_PATH, path);
+ commit(info);
+ }
+
+ @Override
+ public void commit() throws CommitFailedException {
+ commit(null, null);
+ }
+
/**
* Combine the globally defined commit hook(s) and the hooks and validators defined by the
* various security related configurations.
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/ImmutableRoot.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/ImmutableRoot.java?rev=1569759&r1=1569758&r2=1569759&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/ImmutableRoot.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/ImmutableRoot.java Wed Feb 19 14:34:17 2014
@@ -18,7 +18,12 @@
*/
package org.apache.jackrabbit.oak.core;
+import static com.google.common.base.Preconditions.checkArgument;
+import static org.apache.jackrabbit.oak.commons.PathUtils.elements;
+
import java.io.InputStream;
+import java.util.Map;
+
import javax.annotation.Nonnull;
import org.apache.jackrabbit.oak.api.Blob;
@@ -32,9 +37,6 @@ import org.apache.jackrabbit.oak.query.E
import org.apache.jackrabbit.oak.query.QueryEngineImpl;
import org.apache.jackrabbit.oak.spi.state.NodeState;
-import static com.google.common.base.Preconditions.checkArgument;
-import static org.apache.jackrabbit.oak.commons.PathUtils.elements;
-
/**
* Simple implementation of the Root interface that only supports simple read
* operations based on the {@code NodeState} (or {@code ImmutableTree})
@@ -93,8 +95,8 @@ public final class ImmutableRoot impleme
}
@Override
- public void commit() {
- commit(null, null);
+ public void commit(Map<String, Object> info) {
+ throw new UnsupportedOperationException();
}
@Override
@@ -103,6 +105,11 @@ public final class ImmutableRoot impleme
}
@Override
+ public void commit() {
+ commit(null, null);
+ }
+
+ @Override
public boolean hasPendingChanges() {
return false;
}