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 2013/05/01 16:21:15 UTC

svn commit: r1478014 - in /jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins: observation/ observation2/

Author: mduerig
Date: Wed May  1 14:21:15 2013
New Revision: 1478014

URL: http://svn.apache.org/r1478014
Log:
OAK-144: Implement observation
OAK-775: Implement backward compatible observation
Add logging for registration of observation listeners and usage of deprecated methods on Event

Modified:
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/ChangeFilter.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/EventImpl.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/ObservationManagerImpl.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation2/EventFilter.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation2/EventImpl.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation2/ObservationManagerImpl2.java

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/ChangeFilter.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/ChangeFilter.java?rev=1478014&r1=1478013&r2=1478014&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/ChangeFilter.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/ChangeFilter.java Wed May  1 14:21:15 2013
@@ -16,6 +16,8 @@
  */
 package org.apache.jackrabbit.oak.plugins.observation;
 
+import static com.google.common.base.Objects.toStringHelper;
+
 import javax.annotation.CheckForNull;
 import javax.annotation.Nullable;
 import javax.jcr.RepositoryException;
@@ -34,7 +36,6 @@ import org.slf4j.LoggerFactory;
  * TODO document
  */
 class ChangeFilter {
-
     private static final Logger log = LoggerFactory.getLogger(ChangeFilter.class);
 
     private final ReadOnlyNodeTypeManager ntMgr;
@@ -74,6 +75,18 @@ class ChangeFilter {
                 deep && PathUtils.isAncestor(this.path, path);
     }
 
+    @Override
+    public String toString() {
+        return toStringHelper(this)
+                .add("types", eventTypes)
+                .add("path", path)
+                .add("deep", deep)
+                .add("uuids", uuid)
+                .add("node types", nodeTypeOakName)
+                .add("noLocal", noLocal)
+            .toString();
+    }
+
     //-----------------------------< internal >---------------------------------
 
     private boolean include(int eventType) {

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/EventImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/EventImpl.java?rev=1478014&r1=1478013&r2=1478014&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/EventImpl.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/EventImpl.java Wed May  1 14:21:15 2013
@@ -23,10 +23,16 @@ import javax.jcr.RepositoryException;
 import javax.jcr.UnsupportedRepositoryOperationException;
 import javax.jcr.observation.Event;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.slf4j.MarkerFactory;
+
 /**
  * TODO document
  */
 public class EventImpl implements Event {
+    private static final Logger log = LoggerFactory.getLogger(EventImpl.class);
+
     private final int type;
     private final String path;
     private final String userID;
@@ -55,6 +61,7 @@ public class EventImpl implements Event 
 
     @Override
     public String getUserID() {
+        log.warn(MarkerFactory.getMarker("deprecation"), "Call to deprecated method getUserId");
         return userID;
     }
 
@@ -70,6 +77,7 @@ public class EventImpl implements Event 
 
     @Override
     public String getUserData() throws RepositoryException {
+        log.warn(MarkerFactory.getMarker("deprecation"), "Call to deprecated method getUserData");
         throw new UnsupportedRepositoryOperationException("User data not supported");
     }
 

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/ObservationManagerImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/ObservationManagerImpl.java?rev=1478014&r1=1478013&r2=1478014&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/ObservationManagerImpl.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/ObservationManagerImpl.java Wed May  1 14:21:15 2013
@@ -35,11 +35,16 @@ import org.apache.jackrabbit.oak.core.Ro
 import org.apache.jackrabbit.oak.namepath.NamePathMapper;
 import org.apache.jackrabbit.oak.plugins.nodetype.ReadOnlyNodeTypeManager;
 import org.apache.jackrabbit.oak.spi.observation.ChangeExtractor;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.slf4j.MarkerFactory;
 
 /**
  * TODO document
  */
 public class ObservationManagerImpl implements ObservationManager {
+    private static final Logger log = LoggerFactory.getLogger(ObservationManagerImpl.class);
+
     private final RootImpl root;
     private final NamePathMapper namePathMapper;
     private final ScheduledExecutorService executor;
@@ -78,10 +83,14 @@ public class ObservationManagerImpl impl
                 absPath, isDeep, uuid, nodeTypeName, noLocal);
         ChangeProcessor processor = processors.get(listener);
         if (processor == null) {
+            log.error(MarkerFactory.getMarker("observation"),
+                    "Registering event listener {} with filter {}", listener, filter);
             processor = new ChangeProcessor(this, listener, filter);
             processors.put(listener, processor);
             processor.start(executor);
         } else {
+            log.debug(MarkerFactory.getMarker("observation"),
+                    "Changing event listener {} to filter {}", listener, filter);
             processor.setFilter(filter);
         }
     }

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation2/EventFilter.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation2/EventFilter.java?rev=1478014&r1=1478013&r2=1478014&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation2/EventFilter.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation2/EventFilter.java Wed May  1 14:21:15 2013
@@ -19,6 +19,7 @@
 
 package org.apache.jackrabbit.oak.plugins.observation2;
 
+import static com.google.common.base.Objects.toStringHelper;
 import static org.apache.jackrabbit.oak.plugins.observation2.ObservationConstants.DEEP;
 import static org.apache.jackrabbit.oak.plugins.observation2.ObservationConstants.NODE_TYPES;
 import static org.apache.jackrabbit.oak.plugins.observation2.ObservationConstants.NO_LOCAL;
@@ -66,6 +67,18 @@ class EventFilter {
                 && includeNodeType(associatedType, ntMgr);
     }
 
+    @Override
+    public String toString() {
+        return toStringHelper(this)
+                .add("types", eventTypes)
+                .add("path", path)
+                .add("deep", deep)
+                .add("uuids", uuid)
+                .add("node types", nodeTypeNames)
+                .add("noLocal", noLocal)
+            .toString();
+    }
+
     //-----------------------------< internal >---------------------------------
 
     private boolean includeEventType(int eventType) {

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation2/EventImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation2/EventImpl.java?rev=1478014&r1=1478013&r2=1478014&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation2/EventImpl.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation2/EventImpl.java Wed May  1 14:21:15 2013
@@ -24,10 +24,16 @@ import java.util.Map;
 import javax.jcr.RepositoryException;
 import javax.jcr.observation.Event;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.slf4j.MarkerFactory;
+
 /**
  * TODO document
  */
 public class EventImpl implements Event {
+    private static final Logger log = LoggerFactory.getLogger(EventImpl.class);
+
     private final int type;
     private final String path;
     private final String userID;
@@ -58,6 +64,7 @@ public class EventImpl implements Event 
 
     @Override
     public String getUserID() {
+        log.warn(MarkerFactory.getMarker("deprecation"), "Call to deprecated method getUserId");
         return userID;
     }
 
@@ -73,6 +80,7 @@ public class EventImpl implements Event 
 
     @Override
     public String getUserData() throws RepositoryException {
+        log.warn(MarkerFactory.getMarker("deprecation"), "Call to deprecated method getUserData");
         return userData;
     }
 

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation2/ObservationManagerImpl2.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation2/ObservationManagerImpl2.java?rev=1478014&r1=1478013&r2=1478014&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation2/ObservationManagerImpl2.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation2/ObservationManagerImpl2.java Wed May  1 14:21:15 2013
@@ -45,6 +45,7 @@ import org.apache.jackrabbit.oak.namepat
 import org.apache.jackrabbit.oak.plugins.nodetype.ReadOnlyNodeTypeManager;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.slf4j.MarkerFactory;
 
 /**
  * TODO document
@@ -147,10 +148,14 @@ public class ObservationManagerImpl2 imp
         EventCollector collector = collectors.get(listener);
         try {
             if (collector == null) {
+                log.error(MarkerFactory.getMarker("observation"),
+                        "Registering event listener {} with filter {}", listener, filter);
                 collector = new EventCollector(this, listener, filter);
                 collectors.put(listener, collector);
                 collector.start(executor);
             } else {
+                log.debug(MarkerFactory.getMarker("observation"),
+                        "Changing event listener {} to filter {}", listener, filter);
                 collector.updateFilter(filter);
             }
         } catch (CommitFailedException e) {