Author: jukka
Date: Wed Jan 29 18:05:01 2014
New Revision: 1562531
URL: http://svn.apache.org/r1562531
Log:
OAK-1332: Large number of changes to the same node can fill observation queue
Rename ChangeHandler to EventHandler for better consistency with the
related interfaces, and merge .handler to the main .observation package
now that the oak-jcr -specific code is no longer there.
Added:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/EventHandler.java
(contents, props changed)
- copied, changed from r1562522,
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/handler/ChangeHandler.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/FilteredHandler.java
(contents, props changed)
- copied, changed from r1562522,
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/handler/FilteredHandler.java
Removed:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/handler/ChangeHandler.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/handler/FilteredHandler.java
Modified:
jackrabbit/oak/trunk/oak-core/pom.xml
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/EventGenerator.java
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/EventQueue.java
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/QueueingHandler.java
Modified: jackrabbit/oak/trunk/oak-core/pom.xml
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/pom.xml?rev=1562531&r1=1562530&r2=1562531&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/pom.xml (original)
+++ jackrabbit/oak/trunk/oak-core/pom.xml Wed Jan 29 18:05:01 2014
@@ -63,7 +63,6 @@
org.apache.jackrabbit.oak.plugins.nodetype.write,
org.apache.jackrabbit.oak.plugins.observation,
org.apache.jackrabbit.oak.plugins.observation.filter,
- org.apache.jackrabbit.oak.plugins.observation.handler,
org.apache.jackrabbit.oak.plugins.value,
org.apache.jackrabbit.oak.plugins.version,
org.apache.jackrabbit.oak.spi.query,
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/EventGenerator.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/EventGenerator.java?rev=1562531&r1=1562530&r2=1562531&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/EventGenerator.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/EventGenerator.java
Wed Jan 29 18:05:01 2014
@@ -32,16 +32,14 @@ import java.util.LinkedList;
import java.util.List;
import javax.annotation.Nonnull;
-import javax.swing.event.ChangeListener;
import org.apache.jackrabbit.oak.api.PropertyState;
-import org.apache.jackrabbit.oak.plugins.observation.handler.ChangeHandler;
import org.apache.jackrabbit.oak.spi.state.NodeState;
import org.apache.jackrabbit.oak.spi.state.NodeStateDiff;
/**
* Continuation-based content diff implementation that generates
- * {@link ChangeHandler} callbacks by recursing down a content diff
+ * {@link EventHandler} callbacks by recursing down a content diff
* in a way that guarantees that only a finite number of callbacks
* will be made during a {@link #generate()} method call, regardless
* of how large or complex the content diff is.
@@ -77,7 +75,7 @@ public class EventGenerator {
*/
public EventGenerator(
@Nonnull NodeState before, @Nonnull NodeState after,
- @Nonnull ChangeHandler handler) {
+ @Nonnull EventHandler handler) {
continuations.add(new Continuation(handler, before, after, 0));
}
@@ -89,7 +87,7 @@ public class EventGenerator {
}
/**
- * Generates a finite number of {@link ChangeListener} callbacks based
+ * Generates a finite number of {@link EventHandler} callbacks based
* on the content changes that have yet to be processed. Further processing
* (even if no callbacks were made) may be postponed to a future
* {@link #generate()} call, until the {@link #isDone()} method finally
@@ -106,7 +104,7 @@ public class EventGenerator {
/**
* Filtered handler of detected content changes.
*/
- private final ChangeHandler handler;
+ private final EventHandler handler;
/**
* Before state, possibly non-existent.
@@ -129,7 +127,7 @@ public class EventGenerator {
private int counter = 0;
private Continuation(
- ChangeHandler handler, NodeState before, NodeState after,
+ EventHandler handler, NodeState before, NodeState after,
int skip) {
this.handler = handler;
this.before = before;
@@ -286,7 +284,7 @@ public class EventGenerator {
*/
private void addChildDiff(
String name, NodeState before, NodeState after) {
- ChangeHandler h = handler.getChildHandler(name, before, after);
+ EventHandler h = handler.getChildHandler(name, before, after);
if (h != null) {
continuations.add(new Continuation(h, before, after, 0));
}
Copied:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/EventHandler.java
(from r1562522,
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/handler/ChangeHandler.java)
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/EventHandler.java?p2=jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/EventHandler.java&p1=jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/handler/ChangeHandler.java&r1=1562522&r2=1562531&rev=1562531&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/handler/ChangeHandler.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/EventHandler.java
Wed Jan 29 18:05:01 2014
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.jackrabbit.oak.plugins.observation.handler;
+package org.apache.jackrabbit.oak.plugins.observation;
import javax.annotation.CheckForNull;
@@ -24,7 +24,7 @@ import org.apache.jackrabbit.oak.api.Pro
import org.apache.jackrabbit.oak.spi.state.NodeState;
/**
- * Handler of content changes. Used to decouple processing of changes
+ * Handler of content change events. Used to decouple processing of changes
* from the content diff logic that detects them.
* <p>
* As the content diff recurses down the content tree, it will call the
@@ -38,19 +38,19 @@ import org.apache.jackrabbit.oak.spi.sta
* <p>
* All names and paths passed to handler methods use unmapped Oak names.
*/
-public interface ChangeHandler {
+public interface EventHandler {
/**
- * Returns a handler of changes within the given child node, or
+ * Returns a handler of events within the given child node, or
* {@code null} if changes within that child are not to be processed.
*
* @param name name of the child node
* @param before before state of the child node, possibly non-existent
* @param after after state of the child node, possibly non-existent
- * @return handler of changes within the child node, or {@code null}
+ * @return handler of events within the child node, or {@code null}
*/
@CheckForNull
- ChangeHandler getChildHandler(
+ EventHandler getChildHandler(
String name, NodeState before, NodeState after);
/**
Propchange:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/EventHandler.java
------------------------------------------------------------------------------
svn:eol-style = native
Copied:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/FilteredHandler.java
(from r1562522,
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/handler/FilteredHandler.java)
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/FilteredHandler.java?p2=jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/FilteredHandler.java&p1=jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/handler/FilteredHandler.java&r1=1562522&r2=1562531&rev=1562531&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/handler/FilteredHandler.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/FilteredHandler.java
Wed Jan 29 18:05:01 2014
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.jackrabbit.oak.plugins.observation.handler;
+package org.apache.jackrabbit.oak.plugins.observation;
import javax.annotation.CheckForNull;
@@ -25,27 +25,27 @@ import org.apache.jackrabbit.oak.plugins
import org.apache.jackrabbit.oak.spi.state.NodeState;
/**
- * Filtered change handler. This decorator class applies an {@link EventFilter}
- * on all detected changes, and forwards the filtered changes to a given
- * delegate change handler.
+ * Filtered event handler. This decorator class applies an {@link EventFilter}
+ * on all detected changes, and forwards the filtered change events to a given
+ * delegate handler.
*/
-public class FilteredHandler implements ChangeHandler {
+public class FilteredHandler implements EventHandler {
private final EventFilter filter;
- private final ChangeHandler handler;
+ private final EventHandler handler;
- public FilteredHandler(EventFilter filter, ChangeHandler handler) {
+ public FilteredHandler(EventFilter filter, EventHandler handler) {
this.filter = filter;
this.handler = handler;
}
@Override @CheckForNull
- public ChangeHandler getChildHandler(
+ public EventHandler getChildHandler(
String name, NodeState before, NodeState after) {
EventFilter f = filter.create(name, before, after);
if (f != null) {
- ChangeHandler h = handler.getChildHandler(name, before, after);
+ EventHandler h = handler.getChildHandler(name, before, after);
if (h != null) {
return new FilteredHandler(f, h);
}
Propchange:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/FilteredHandler.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified:
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/EventQueue.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/EventQueue.java?rev=1562531&r1=1562530&r2=1562531&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/EventQueue.java
(original)
+++
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/EventQueue.java
Wed Jan 29 18:05:01 2014
@@ -30,11 +30,11 @@ import javax.jcr.observation.EventIterat
import org.apache.jackrabbit.oak.commons.PathUtils;
import org.apache.jackrabbit.oak.namepath.NamePathMapper;
import org.apache.jackrabbit.oak.plugins.observation.EventGenerator;
+import org.apache.jackrabbit.oak.plugins.observation.EventHandler;
+import org.apache.jackrabbit.oak.plugins.observation.FilteredHandler;
import org.apache.jackrabbit.oak.plugins.observation.filter.EventFilter;
import org.apache.jackrabbit.oak.plugins.observation.filter.Filters;
import org.apache.jackrabbit.oak.plugins.observation.filter.VisibleFilter;
-import org.apache.jackrabbit.oak.plugins.observation.handler.ChangeHandler;
-import org.apache.jackrabbit.oak.plugins.observation.handler.FilteredHandler;
import org.apache.jackrabbit.oak.spi.commit.CommitInfo;
import org.apache.jackrabbit.oak.spi.state.NodeState;
@@ -53,7 +53,7 @@ class EventQueue implements EventIterato
@Nonnull NamePathMapper mapper, CommitInfo info,
@Nonnull NodeState before, @Nonnull NodeState after,
@Nonnull String basePath, @Nonnull EventFilter filter) {
- ChangeHandler handler = new QueueingHandler(
+ EventHandler handler = new QueueingHandler(
this, mapper, info, before, after);
for (String name : PathUtils.elements(basePath)) {
before = before.getChildNode(name);
Modified:
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/QueueingHandler.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/QueueingHandler.java?rev=1562531&r1=1562530&r2=1562531&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/QueueingHandler.java
(original)
+++
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/QueueingHandler.java
Wed Jan 29 18:05:01 2014
@@ -29,7 +29,7 @@ import org.apache.jackrabbit.oak.api.Pro
import org.apache.jackrabbit.oak.commons.PathUtils;
import org.apache.jackrabbit.oak.namepath.NamePathMapper;
import org.apache.jackrabbit.oak.plugins.nodetype.TypePredicate;
-import org.apache.jackrabbit.oak.plugins.observation.handler.ChangeHandler;
+import org.apache.jackrabbit.oak.plugins.observation.EventHandler;
import org.apache.jackrabbit.oak.spi.commit.CommitInfo;
import org.apache.jackrabbit.oak.spi.state.NodeState;
@@ -40,7 +40,7 @@ import com.google.common.collect.Immutab
* Change handler that generates JCR Event instances and places them
* in an event queue.
*/
-class QueueingHandler implements ChangeHandler {
+class QueueingHandler implements EventHandler {
/**
* Dummy session identifier used to identify external commits.
@@ -149,7 +149,7 @@ class QueueingHandler implements ChangeH
//-----------------------------------------------------< ChangeHandler >--
@Override
- public ChangeHandler getChildHandler(
+ public EventHandler getChildHandler(
String name, NodeState before, NodeState after) {
return new QueueingHandler(this, name, before, after);
}