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 me...@apache.org on 2012/12/12 20:30:12 UTC
svn commit: r1420924 -
/jackrabbit/oak/trunk/oak-mongomk/src/main/java/org/apache/jackrabbit/mongomk/impl/command/GetJournalCommand.java
Author: meteatamel
Date: Wed Dec 12 19:30:11 2012
New Revision: 1420924
URL: http://svn.apache.org/viewvc?rev=1420924&view=rev
Log:
OAK-501 - Add journal support for branches
Added journal support for branches for MongoMK
Modified:
jackrabbit/oak/trunk/oak-mongomk/src/main/java/org/apache/jackrabbit/mongomk/impl/command/GetJournalCommand.java
Modified: jackrabbit/oak/trunk/oak-mongomk/src/main/java/org/apache/jackrabbit/mongomk/impl/command/GetJournalCommand.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-mongomk/src/main/java/org/apache/jackrabbit/mongomk/impl/command/GetJournalCommand.java?rev=1420924&r1=1420923&r2=1420924&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-mongomk/src/main/java/org/apache/jackrabbit/mongomk/impl/command/GetJournalCommand.java (original)
+++ jackrabbit/oak/trunk/oak-mongomk/src/main/java/org/apache/jackrabbit/mongomk/impl/command/GetJournalCommand.java Wed Dec 12 19:30:11 2012
@@ -54,22 +54,22 @@ public class GetJournalCommand extends B
List<MongoCommit> commits = getCommits(fromRevision, toRevision);
MongoCommit toCommit = extractCommit(commits, toRevision);
- if (toCommit != null && toCommit.getBranchId() != null) {
- throw new MicroKernelException("Branch revisions are not supported: " + toRevisionId);
- }
-
MongoCommit fromCommit;
if (toRevision == fromRevision) {
fromCommit = toCommit;
} else {
fromCommit = extractCommit(commits, fromRevision);
- if (fromCommit == null || (fromCommit.getTimestamp() > toCommit.getTimestamp())) {
- // negative range, return empty journal
- return "[]";
+ }
+
+ if (fromCommit != null && fromCommit.getBranchId() != null) {
+ if (!fromCommit.getBranchId().equals(toCommit.getBranchId())) {
+ throw new MicroKernelException("Inconsistent range specified: fromRevision denotes a private branch while toRevision denotes a head or another private branch");
}
}
- if (fromCommit.getBranchId() != null) {
- throw new MicroKernelException("Branch revisions are not supported: " + fromRevisionId);
+
+ if (fromCommit != null && fromCommit.getTimestamp() > toCommit.getTimestamp()) {
+ // negative range, return empty journal
+ return "[]";
}
JsopBuilder commitBuff = new JsopBuilder().array();
@@ -94,8 +94,11 @@ public class GetJournalCommand extends B
commitBuff.object()
.key("id").value(MongoUtil.fromMongoRepresentation(commit.getRevisionId()))
.key("ts").value(commit.getTimestamp())
- .key("msg").value(commit.getMessage())
- .key("changes").value(diff).endObject();
+ .key("msg").value(commit.getMessage());
+ if (commit.getBranchId() != null) {
+ commitBuff.key("branchRootId").value(commit.getBranchId().toString());
+ }
+ commitBuff.key("changes").value(diff).endObject();
}
return commitBuff.endArray().toString();
}