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 2012/06/27 11:22:34 UTC
svn commit: r1354381 -
/jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/RepositoryTest.java
Author: mduerig
Date: Wed Jun 27 09:22:33 2012
New Revision: 1354381
URL: http://svn.apache.org/viewvc?rev=1354381&view=rev
Log:
OAK-144: Implement observation
- update observation tests
Modified:
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/RepositoryTest.java
Modified: jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/RepositoryTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/RepositoryTest.java?rev=1354381&r1=1354380&r2=1354381&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/RepositoryTest.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/RepositoryTest.java Wed Jun 27 09:22:33 2012
@@ -1540,7 +1540,7 @@ public class RepositoryTest extends Abst
n1.setProperty("prop2", "val2");
n.addNode("2");
getSession().save();
- assertTrue(eventCount.get().await(1, TimeUnit.SECONDS));
+ assertTrue(eventCount.get().await(2, TimeUnit.SECONDS));
eventCount.set(new CountDownLatch(8));
n.setProperty("property", 42);
@@ -1549,7 +1549,7 @@ public class RepositoryTest extends Abst
n1.getProperty("prop2").remove();
n.getNode("2").remove();
getSession().save();
- assertTrue(eventCount.get().await(1, TimeUnit.SECONDS));
+ assertTrue(eventCount.get().await(2, TimeUnit.SECONDS));
assertTrue("failedEvents not empty: " + failedEvents, failedEvents.isEmpty());
assertTrue("addNodes not empty: " + addNodes, addNodes.isEmpty());
@@ -1561,7 +1561,7 @@ public class RepositoryTest extends Abst
@Ignore // TODO implement observation
@Test
- public void observation2() throws RepositoryException {
+ public void observation2() throws RepositoryException, InterruptedException {
final Set<String> addNodes = toSet(
TEST_PATH + "/1",
TEST_PATH + "/2");
@@ -1573,11 +1573,13 @@ public class RepositoryTest extends Abst
TEST_PATH + "/1/jcr:primaryType",
TEST_PATH + "/2/jcr:primaryType");
+ final Set<String> removeProperties = toSet(
+ TEST_PATH + "/1/jcr:primaryType");
final List<Event> failedEvents = new ArrayList<Event>();
+ final AtomicReference<CountDownLatch> eventCount = new AtomicReference<CountDownLatch>();
ObservationManager obsMgr = getSession().getWorkspace().getObservationManager();
- obsMgr.setUserData("my user data");
obsMgr.addEventListener(new EventListener() {
@Override
public void onEvent(EventIterator events) {
@@ -1600,6 +1602,11 @@ public class RepositoryTest extends Abst
failedEvents.add(event);
}
break;
+ case Event.PROPERTY_REMOVED:
+ if (!removeProperties.remove(event.getPath())) {
+ failedEvents.add(event);
+ }
+ break;
default:
failedEvents.add(event);
}
@@ -1607,46 +1614,30 @@ public class RepositoryTest extends Abst
catch (RepositoryException e) {
failedEvents.add(event);
}
+ eventCount.get().countDown();
}
}
},
Event.NODE_ADDED | Event.NODE_REMOVED | Event.NODE_MOVED | Event.PROPERTY_ADDED |
Event.PROPERTY_REMOVED | Event.PROPERTY_CHANGED | Event.PERSIST, "/", true, null, null, false);
+ eventCount.set(new CountDownLatch(2));
Node n = getNode(TEST_PATH);
n.addNode("1");
getSession().save();
+ assertTrue(eventCount.get().await(2, TimeUnit.SECONDS));
+ eventCount.set(new CountDownLatch(4));
n.addNode("2");
n.getNode("1").remove();
getSession().save();
+ assertTrue(eventCount.get().await(2, TimeUnit.SECONDS));
- assertTrue(failedEvents.isEmpty());
- assertTrue(addNodes.isEmpty());
- assertTrue(removeNodes.isEmpty());
- assertTrue(addProperties.isEmpty());
- }
-
- @Ignore // TODO implement observation
- @Test
- public void observationNoEvents() throws RepositoryException, InterruptedException {
- final List<Event> failedEvents = new ArrayList<Event>();
-
- ObservationManager obsMgr = getSession().getWorkspace().getObservationManager();
- obsMgr.setUserData("my user data");
- obsMgr.addEventListener(new EventListener() {
- @Override
- public void onEvent(EventIterator events) {
- while (events.hasNext()) {
- failedEvents.add(events.nextEvent());
- }
- }
- },
- Event.NODE_ADDED | Event.NODE_REMOVED | Event.NODE_MOVED | Event.PROPERTY_ADDED |
- Event.PROPERTY_REMOVED | Event.PROPERTY_CHANGED | Event.PERSIST, "/", true, null, null, false);
-
- Thread.sleep(5000);
- assertTrue(failedEvents.isEmpty());
+ assertTrue("failedEvents not empty: " + failedEvents, failedEvents.isEmpty());
+ assertTrue("addNodes not empty: " + addNodes, addNodes.isEmpty());
+ assertTrue("removeNodes not empty: " + removeNodes, removeNodes.isEmpty());
+ assertTrue("addProperties not empty: " + addProperties, addProperties.isEmpty());
+ assertTrue("removeProperties not empty: " + removeProperties, removeProperties.isEmpty());
}
@Ignore // TODO implement observation
@@ -1657,7 +1648,6 @@ public class RepositoryTest extends Abst
final List<Event> failedEvents = new ArrayList<Event>();
final ObservationManager obsMgr = getSession().getWorkspace().getObservationManager();
- obsMgr.setUserData("my user data");
final EventListener listener = new EventListener() {
@Override
public void onEvent(EventIterator events) {
@@ -1670,17 +1660,16 @@ public class RepositoryTest extends Abst
Event.PROPERTY_ADDED | Event.PROPERTY_REMOVED | Event.PROPERTY_CHANGED | Event.PERSIST,
"/", true, null, null, false);
- FutureTask<Object> disposer = new FutureTask<Object>(new Callable<Object>() {
+ FutureTask<Void> disposer = new FutureTask<Void>(new Callable<Void>() {
@Override
- public Object call() throws Exception {
+ public Void call() throws Exception {
obsMgr.removeEventListener(listener);
return null;
}
});
- Thread.sleep(250);
Executors.newSingleThreadExecutor().execute(disposer);
- disposer.get(10000, TimeUnit.MILLISECONDS);
+ disposer.get(2, TimeUnit.SECONDS);
assertTrue(failedEvents.isEmpty());
}