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:39 UTC
svn commit: r1569760 - in /jackrabbit/oak/trunk/oak-core/src:
main/java/org/apache/jackrabbit/oak/core/
main/java/org/apache/jackrabbit/oak/spi/commit/
main/java/org/apache/jackrabbit/oak/spi/lifecycle/
test/java/org/apache/jackrabbit/oak/spi/commit/
Author: mduerig
Date: Wed Feb 19 14:34:39 2014
New Revision: 1569760
URL: http://svn.apache.org/r1569760
Log:
OAK-1438: Generalise Root.commit(String) to Root.commit(Map)
Add info Map to CommitInfo and pass it down from Root.commit(Map)
Modified:
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/spi/commit/CommitInfo.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/lifecycle/OakInitializer.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/spi/commit/BackgroundObserverTest.java
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=1569760&r1=1569759&r2=1569760&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:39 2014
@@ -229,10 +229,8 @@ abstract class AbstractRoot implements R
public void commit(Map<String, Object> info) throws CommitFailedException {
checkLive();
ContentSession session = getContentSession();
- Object path = info.get(COMMIT_PATH);
CommitInfo commitInfo = new CommitInfo(
- session.toString(), session.getAuthInfo().getUserID(), (String) info.get("message"),
- path instanceof String ? (String) path : "/");
+ session.toString(), session.getAuthInfo().getUserID(), info);
store.merge(builder, getCommitHook(), commitInfo);
secureBuilder.baseChanged();
modCount = 0;
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/commit/CommitInfo.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/commit/CommitInfo.java?rev=1569760&r1=1569759&r2=1569760&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/commit/CommitInfo.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/commit/CommitInfo.java Wed Feb 19 14:34:39 2014
@@ -21,11 +21,15 @@ package org.apache.jackrabbit.oak.spi.co
import static com.google.common.base.Objects.toStringHelper;
import static com.google.common.base.Preconditions.checkNotNull;
+import java.util.Map;
+
import javax.annotation.CheckForNull;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import com.google.common.base.Objects;
+import com.google.common.collect.ImmutableMap;
+import org.apache.jackrabbit.oak.api.Root;
/**
* Commit info instances associate some meta data with a commit.
@@ -39,24 +43,21 @@ public final class CommitInfo {
* metadata is known (or needed) about a commit.
*/
public static final CommitInfo EMPTY =
- new CommitInfo(OAK_UNKNOWN, OAK_UNKNOWN, null);
+ new CommitInfo(OAK_UNKNOWN, OAK_UNKNOWN, "/");
private final String sessionId;
private final String userId;
- private final String message;
-
private final long date = System.currentTimeMillis();
- private final String path;
+ private final Map<String, Object> info;
/**
* Creates a commit info for the given session and user.
*
* @param sessionId session identifier
* @param userId The user id.
- * @param message message attached to this commit, or {@code null}
*/
public CommitInfo(
@Nonnull String sessionId, @Nullable String userId,
@@ -67,10 +68,23 @@ public final class CommitInfo {
public CommitInfo(
@Nonnull String sessionId, @Nullable String userId,
@Nullable String message, @Nonnull String path) {
+ this(sessionId, userId, ImmutableMap.<String, Object>of(
+ Root.COMMIT_PATH, checkNotNull(path),
+ "message", String.valueOf(message)
+ ));
+ }
+
+ /**
+ * Creates a commit info for the given session and user and info map.
+ *
+ * @param sessionId session identifier
+ * @param userId The user id.
+ * @param info info map
+ */
+ public CommitInfo(@Nonnull String sessionId, @Nullable String userId, Map<String, Object> info) {
this.sessionId = checkNotNull(sessionId);
this.userId = (userId == null) ? OAK_UNKNOWN : userId;
- this.message = message;
- this.path = checkNotNull(path);
+ this.info = checkNotNull(info);
}
/**
@@ -94,7 +108,8 @@ public final class CommitInfo {
*/
@CheckForNull
public String getMessage() {
- return message;
+ Object message = info.get("message");
+ return message instanceof String ? (String) message : null;
}
/**
@@ -116,7 +131,16 @@ public final class CommitInfo {
* @return base path of this commit
*/
public String getPath() {
- return path;
+ Object path = info.get(Root.COMMIT_PATH);
+ return path instanceof String ? (String) path : "/";
+ }
+
+ /**
+ * Return the info map
+ * @return info map
+ */
+ public Map<String, Object> getInfo() {
+ return info;
}
//------------------------------------------------------------< Object >--
@@ -129,9 +153,8 @@ public final class CommitInfo {
CommitInfo that = (CommitInfo) object;
return sessionId.equals(that.sessionId)
&& userId.equals(that.userId)
- && Objects.equal(this.message, that.message)
&& this.date == that.date
- && path.equals(that.path);
+ && info.equals(that.info);
} else {
return false;
}
@@ -139,7 +162,7 @@ public final class CommitInfo {
@Override
public int hashCode() {
- return Objects.hashCode(sessionId, userId, message, date, path);
+ return Objects.hashCode(sessionId, userId, date, info);
}
@Override
@@ -147,9 +170,8 @@ public final class CommitInfo {
return toStringHelper(this).omitNullValues()
.add("sessionId", sessionId)
.add("userId", userId)
- .add("userData", message)
.add("date", date)
- .add("path", path)
+ .add("info", info)
.toString();
}
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/lifecycle/OakInitializer.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/lifecycle/OakInitializer.java?rev=1569760&r1=1569759&r2=1569760&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/lifecycle/OakInitializer.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/lifecycle/OakInitializer.java Wed Feb 19 14:34:39 2014
@@ -42,7 +42,7 @@ public final class OakInitializer {
NodeBuilder builder = store.getRoot().builder();
initializer.initialize(builder);
CommitHook hook = new EditorHook(new IndexUpdateProvider(indexEditor));
- CommitInfo info = new CommitInfo("OakInitializer", null, null);
+ CommitInfo info = new CommitInfo("OakInitializer", null, (String)null);
store.merge(builder, hook, info);
} catch (CommitFailedException e) {
throw new RuntimeException(e);
@@ -61,7 +61,7 @@ public final class OakInitializer {
}
try {
CommitHook hook = new EditorHook(new IndexUpdateProvider(indexEditor));
- CommitInfo info = new CommitInfo("OakInitializer", null, null);
+ CommitInfo info = new CommitInfo("OakInitializer", null, (String)null);
store.merge(builder, hook, info);
} catch (CommitFailedException e) {
throw new RuntimeException(e);
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/spi/commit/BackgroundObserverTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/spi/commit/BackgroundObserverTest.java?rev=1569760&r1=1569759&r2=1569760&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/spi/commit/BackgroundObserverTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/spi/commit/BackgroundObserverTest.java Wed Feb 19 14:34:39 2014
@@ -42,7 +42,7 @@ import org.junit.Test;
public class BackgroundObserverTest {
private static final CommitInfo COMMIT_INFO =
- new CommitInfo("no-session", null, null);
+ new CommitInfo("no-session", null, (String)null);
private final List<List<Runnable>> assertionLists = Lists.newArrayList();
private CountDownLatch doneCounter;