Author: mduerig
Date: Wed Mar 26 14:15:52 2014
New Revision: 1581856

URL: http://svn.apache.org/r1581856
Log:
OAK-1606: Omit warnings about accessing commit related info when external 
events are excluded

Modified:
    
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/ObservationManagerImpl.java

Modified: 
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/ObservationManagerImpl.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/ObservationManagerImpl.java?rev=1581856&r1=1581855&r2=1581856&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/ObservationManagerImpl.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/ObservationManagerImpl.java
 Wed Mar 26 14:15:52 2014
@@ -167,18 +167,8 @@ public class ObservationManagerImpl impl
      */
     public void addEventListener(EventListener listener, FilterProvider 
filterProvider) {
         // FIXME Add support for FilterProvider in ListenerTracker
-        ListenerTracker tracker = new ListenerTracker(
-                listener, 0, null, true, null, null, false) {
-            @Override
-            protected void warn(String message) {
-                LOG.warn(DEPRECATED, message, initStackTrace);
-            }
-
-            @Override
-            protected void beforeEventDelivery() {
-                sessionDelegate.refreshAtNextAccess();
-            }
-        };
+        ListenerTracker tracker = new WarningListenerTracker(
+                true, listener, 0, null, true, null, null, false);
         addEventListener(listener, tracker, filterProvider);
     }
 
@@ -188,29 +178,21 @@ public class ObservationManagerImpl impl
             throws RepositoryException {
 
         FilterBuilder filterBuilder = new FilterBuilder();
+        boolean includeExternal = !(listener instanceof ExcludeExternal);
         filterBuilder
             .basePath(namePathMapper.getOakPath(absPath))
             .includeSessionLocal(!noLocal)
-            .includeClusterExternal(!(listener instanceof ExcludeExternal))
+            .includeClusterExternal(includeExternal)
             .condition(filterBuilder.all(
-                filterBuilder.deleteSubtree(),
-                filterBuilder.moveSubtree(),
-                filterBuilder.path(isDeep ? STAR_STAR : STAR),
-                filterBuilder.eventType(eventTypes),
-                filterBuilder.uuid(Selectors.PARENT, uuids),
-                filterBuilder.nodeType(Selectors.PARENT, 
validateNodeTypeNames(nodeTypeName))));
-
-        ListenerTracker tracker = new ListenerTracker(
-                listener, eventTypes, absPath, isDeep, uuids, nodeTypeName, 
noLocal) {
-            @Override
-            protected void warn(String message) {
-                LOG.warn(DEPRECATED, message, initStackTrace);
-            }
-            @Override
-            protected void beforeEventDelivery() {
-                sessionDelegate.refreshAtNextAccess();
-            }
-        };
+                    filterBuilder.deleteSubtree(),
+                    filterBuilder.moveSubtree(),
+                    filterBuilder.path(isDeep ? STAR_STAR : STAR),
+                    filterBuilder.eventType(eventTypes),
+                    filterBuilder.uuid(Selectors.PARENT, uuids),
+                    filterBuilder.nodeType(Selectors.PARENT, 
validateNodeTypeNames(nodeTypeName))));
+
+        ListenerTracker tracker = new WarningListenerTracker(
+                includeExternal, listener, eventTypes, absPath, isDeep, uuids, 
nodeTypeName, noLocal);
 
         addEventListener(listener, tracker, filterBuilder.build());
     }
@@ -247,22 +229,14 @@ public class ObservationManagerImpl impl
                             filterBuilder.eventType(eventTypes),
                             filterBuilder.uuid(Selectors.PARENT, uuids),
                             filterBuilder.nodeType(Selectors.PARENT,
-                                    validateNodeTypeNames(nodeTypeName))));
+                                    validateNodeTypeNames(nodeTypeName))
+                    ));
             filterProviders.add(filterBuilder.build());
         }
 
         // FIXME support multiple path in ListenerTracker
-        ListenerTracker tracker = new ListenerTracker(
-                listener, eventTypes, absPath, isDeep, uuids, nodeTypeName, 
noLocal) {
-            @Override
-            protected void warn(String message) {
-                LOG.warn(DEPRECATED, message, initStackTrace);
-            }
-            @Override
-            protected void beforeEventDelivery() {
-                sessionDelegate.refreshAtNextAccess();
-            }
-        };
+        ListenerTracker tracker = new WarningListenerTracker(
+                !noExternal, listener, eventTypes, absPath, isDeep, uuids, 
nodeTypeName, noLocal);
 
         addEventListener(listener, tracker, filterProviders);
     }
@@ -342,4 +316,27 @@ public class ObservationManagerImpl impl
         }
     }
 
+    private class WarningListenerTracker extends ListenerTracker {
+        private final boolean enableWarning;
+
+        public WarningListenerTracker(
+                boolean enableWarning, EventListener listener, int eventTypes, 
String absPath,
+                boolean isDeep, String[] uuids, String[] nodeTypeName, boolean 
noLocal) {
+            super(listener, eventTypes, absPath, isDeep, uuids, nodeTypeName, 
noLocal);
+            this.enableWarning = enableWarning;
+        }
+
+        @Override
+        protected void warn(String message) {
+            if (enableWarning) {
+                LOG.warn(DEPRECATED, message, initStackTrace);
+            }
+        }
+
+        @Override
+        protected void beforeEventDelivery() {
+            sessionDelegate.refreshAtNextAccess();
+        }
+    }
+
 }


Reply via email to