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:55 UTC

svn commit: r1569761 - in /jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr: delegate/SessionDelegate.java observation/EventFactory.java

Author: mduerig
Date: Wed Feb 19 14:34:55 2014
New Revision: 1569761

URL: http://svn.apache.org/r1569761
Log:
OAK-1438: Generalise Root.commit(String) to Root.commit(Map)
Pass user data through the info Map instead of the commit message

Modified:
    jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/delegate/SessionDelegate.java
    jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/EventFactory.java

Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/delegate/SessionDelegate.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/delegate/SessionDelegate.java?rev=1569761&r1=1569760&r2=1569761&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/delegate/SessionDelegate.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/delegate/SessionDelegate.java Wed Feb 19 14:34:55 2014
@@ -25,6 +25,7 @@ import static org.apache.jackrabbit.oak.
 
 import java.io.IOException;
 import java.util.Iterator;
+import java.util.Map;
 import java.util.concurrent.atomic.AtomicLong;
 
 import javax.annotation.CheckForNull;
@@ -34,6 +35,7 @@ import javax.jcr.PathNotFoundException;
 import javax.jcr.RepositoryException;
 import javax.jcr.nodetype.ConstraintViolationException;
 
+import com.google.common.collect.Maps;
 import org.apache.jackrabbit.oak.api.AuthInfo;
 import org.apache.jackrabbit.oak.api.CommitFailedException;
 import org.apache.jackrabbit.oak.api.ContentSession;
@@ -41,6 +43,7 @@ import org.apache.jackrabbit.oak.api.Que
 import org.apache.jackrabbit.oak.api.Root;
 import org.apache.jackrabbit.oak.api.Tree;
 import org.apache.jackrabbit.oak.commons.PathUtils;
+import org.apache.jackrabbit.oak.jcr.observation.EventFactory;
 import org.apache.jackrabbit.oak.jcr.session.RefreshStrategy;
 import org.apache.jackrabbit.oak.jcr.session.SessionStats;
 import org.apache.jackrabbit.oak.jcr.session.operation.SessionOperation;
@@ -250,7 +253,9 @@ public class SessionDelegate {
      * @throws CommitFailedException if the commit failed
      */
     public void commit(Root root) throws CommitFailedException {
-        root.commit(userData, "/");
+        Map<String, Object> info = Maps.newHashMap();
+        info.put(EventFactory.USER_DATA, userData);
+        root.commit(info);
     }
 
     public void checkProtectedNode(String path) throws RepositoryException {

Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/EventFactory.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/EventFactory.java?rev=1569761&r1=1569760&r2=1569761&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/EventFactory.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/EventFactory.java Wed Feb 19 14:34:55 2014
@@ -41,7 +41,8 @@ import com.google.common.collect.Immutab
  * the event info maps to as late as possible to avoid the memory overhead
  * of keeping track of pre-computed values.
  */
-class EventFactory {
+public class EventFactory {
+    public static final String USER_DATA = "user-data";
 
     private final NamePathMapper mapper;
 
@@ -53,12 +54,13 @@ class EventFactory {
 
     private final boolean external;
 
-    EventFactory(NamePathMapper mapper, CommitInfo info) {
+    EventFactory(NamePathMapper mapper, CommitInfo commitInfo) {
         this.mapper = mapper;
-        if (info != null) {
-            this.userID = info.getUserId();
-            this.userData = info.getMessage();
-            this.date = info.getDate();
+        if (commitInfo != null) {
+            this.userID = commitInfo.getUserId();
+            Object userData = commitInfo.getInfo().get(USER_DATA);
+            this.userData = userData instanceof String ? (String) userData : null;
+            this.date = commitInfo.getDate();
             this.external = false;
         } else {
             this.userID = CommitInfo.OAK_UNKNOWN;