Author: mduerig
Date: Wed Jan 29 17:17:55 2014
New Revision: 1562514
URL: http://svn.apache.org/r1562514
Log:
OAK-1367: Benchmark ObservationTest should register more than a single listener
Modified:
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/ObservationTest.java
Modified:
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/ObservationTest.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/ObservationTest.java?rev=1562514&r1=1562513&r2=1562514&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/ObservationTest.java
(original)
+++
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/ObservationTest.java
Wed Jan 29 17:17:55 2014
@@ -50,6 +50,7 @@ public class ObservationTest extends Ben
private static final int EVENTS_PER_NODE = 2; // NODE_ADDED and
PROPERTY_ADDED
private static final int SAVE_INTERVAL = 100;
private static final int OUTPUT_RESOLUTION = 100;
+ private static final int LISTENER_COUNT = 100;
@Override
public void run(Iterable<RepositoryFixture> fixtures) {
@@ -87,17 +88,14 @@ public class ObservationTest extends Ben
final AtomicInteger eventCount = new AtomicInteger();
final AtomicInteger nodeCount = new AtomicInteger();
- EventListener listener = new EventListener() {
- @Override
- public void onEvent(EventIterator events) {
- for (; events.hasNext(); events.nextEvent()) {
- eventCount.incrementAndGet();
- }
- }
- };
+ EventListener[] listeners = new Listener[LISTENER_COUNT];
try {
- observationManager.addEventListener(listener, EVENT_TYPES, "/",
true, null, null, false);
+ for (int k = 0; k < LISTENER_COUNT; k++) {
+ listeners[k] = new Listener(eventCount);
+ observationManager.addEventListener(listeners[k], EVENT_TYPES,
"/", true, null, null, false);
+ }
+
Future<?> createNodes =
Executors.newSingleThreadExecutor().submit(new Runnable() {
private final Session session = repository.login(new
SimpleCredentials("admin", "admin".toCharArray()));
@@ -137,7 +135,7 @@ public class ObservationTest extends Ben
t += System.currentTimeMillis() - t0;
int nc = nodeCount.get();
- int ec = eventCount.get();
+ int ec = eventCount.get() / LISTENER_COUNT;
double nps = (double) nc / t * 1000;
double eps = (double) ec / t * 1000;
@@ -147,8 +145,24 @@ public class ObservationTest extends Ben
}
createNodes.get();
} finally {
- observationManager.removeEventListener(listener);
+ for (int k = 0; k < LISTENER_COUNT; k++) {
+ observationManager.removeEventListener(listeners[k]);
+ }
}
}
+ private static class Listener implements EventListener {
+ private final AtomicInteger eventCount;
+
+ public Listener(AtomicInteger eventCount) {
+ this.eventCount = eventCount;
+ }
+
+ @Override
+ public void onEvent(EventIterator events) {
+ for (; events.hasNext(); events.nextEvent()) {
+ eventCount.incrementAndGet();
+ }
+ }
+ }
}