From commits-return-11422-apmail-jackrabbit-commits-archive=jackrabbit.apache.org@jackrabbit.apache.org Tue Jul 5 15:37:30 2011 Return-Path: X-Original-To: apmail-jackrabbit-commits-archive@www.apache.org Delivered-To: apmail-jackrabbit-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 5A48946F6 for ; Tue, 5 Jul 2011 15:37:30 +0000 (UTC) Received: (qmail 82788 invoked by uid 500); 5 Jul 2011 15:37:30 -0000 Delivered-To: apmail-jackrabbit-commits-archive@jackrabbit.apache.org Received: (qmail 82747 invoked by uid 500); 5 Jul 2011 15:37:29 -0000 Mailing-List: contact commits-help@jackrabbit.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@jackrabbit.apache.org Delivered-To: mailing list commits@jackrabbit.apache.org Received: (qmail 82740 invoked by uid 99); 5 Jul 2011 15:37:29 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 05 Jul 2011 15:37:29 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 05 Jul 2011 15:37:26 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id C1F6E23889EA; Tue, 5 Jul 2011 15:37:04 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1143111 - in /jackrabbit/sandbox/spi2microkernel/src: main/java/org/apache/jackrabbit/spi2microkernel/ test/java/org/apache/jackrabbit/spi2microkernel/ Date: Tue, 05 Jul 2011 15:37:04 -0000 To: commits@jackrabbit.apache.org From: thomasm@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20110705153704.C1F6E23889EA@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: thomasm Date: Tue Jul 5 15:37:04 2011 New Revision: 1143111 URL: http://svn.apache.org/viewvc?rev=1143111&view=rev Log: New method waitForCommit to avoid polling delays. Modified: jackrabbit/sandbox/spi2microkernel/src/main/java/org/apache/jackrabbit/spi2microkernel/SubscriptionImpl.java jackrabbit/sandbox/spi2microkernel/src/test/java/org/apache/jackrabbit/spi2microkernel/MicrokernelTest.java jackrabbit/sandbox/spi2microkernel/src/test/java/org/apache/jackrabbit/spi2microkernel/RepositoryTest.java Modified: jackrabbit/sandbox/spi2microkernel/src/main/java/org/apache/jackrabbit/spi2microkernel/SubscriptionImpl.java URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/spi2microkernel/src/main/java/org/apache/jackrabbit/spi2microkernel/SubscriptionImpl.java?rev=1143111&r1=1143110&r2=1143111&view=diff ============================================================================== --- jackrabbit/sandbox/spi2microkernel/src/main/java/org/apache/jackrabbit/spi2microkernel/SubscriptionImpl.java (original) +++ jackrabbit/sandbox/spi2microkernel/src/main/java/org/apache/jackrabbit/spi2microkernel/SubscriptionImpl.java Tue Jul 5 15:37:04 2011 @@ -69,10 +69,9 @@ public class SubscriptionImpl implements } public EventBundle[] getEvents(long timeout) throws RepositoryException, InterruptedException { - Thread.sleep(timeout); List eventBundles = new ArrayList(); - + synchronized (eventSources) { if (!eventSources.isEmpty()) { EventSource current = eventSources.remove(); @@ -82,13 +81,14 @@ public class SubscriptionImpl implements eventBundles.addAll(current.getEventsBundles(next.getStartRevision())); current = next; } - - String head = microKernel.getHeadRevision(); + + String old = current.getStartRevision(); + String head = microKernel.waitForCommit(old, 1000); eventBundles.addAll(current.getEventsBundles(head)); eventSources.add(current.update(head)); } } - + return eventBundles.toArray(new EventBundle[eventBundles.size()]); } @@ -238,7 +238,7 @@ public class SubscriptionImpl implements case '-': removeNode(jsopTokenizer, eventTemplate, events); break; case '^': setProperty(jsopTokenizer, eventTemplate, events); break; case '>': moveNode(jsopTokenizer, eventTemplate, events); break; - default: // skip + default: // skip } } @@ -287,7 +287,7 @@ public class SubscriptionImpl implements if (tokenType == ',') { jsopTokenizer.read(); } - + Name name = Paths.stringToName(jsopTokenizer.getToken()); Path path = createPath(parentId.getPath(), name); Modified: jackrabbit/sandbox/spi2microkernel/src/test/java/org/apache/jackrabbit/spi2microkernel/MicrokernelTest.java URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/spi2microkernel/src/test/java/org/apache/jackrabbit/spi2microkernel/MicrokernelTest.java?rev=1143111&r1=1143110&r2=1143111&view=diff ============================================================================== --- jackrabbit/sandbox/spi2microkernel/src/test/java/org/apache/jackrabbit/spi2microkernel/MicrokernelTest.java (original) +++ jackrabbit/sandbox/spi2microkernel/src/test/java/org/apache/jackrabbit/spi2microkernel/MicrokernelTest.java Tue Jul 5 15:37:04 2011 @@ -19,6 +19,7 @@ package org.apache.jackrabbit.spi2microkernel; +import junit.framework.Assert; import org.apache.jackrabbit.mk.MicroKernelFactory; import org.apache.jackrabbit.mk.api.MicroKernel; import org.apache.jackrabbit.mk.json.JsopTokenizer; @@ -65,8 +66,13 @@ public class MicrokernelTest { String head = mk.getHeadRevision(); String s1 = mk.getNodes("/test", head); - String s2 = mk.getNodes("/test/", head); - assertEquals(s1, s2); + assertEquals("{\"stringProp\":\"stringVal\",\"intProp\":42,\"multiIntProp\":[1,2,3],\"floatProp\":42.2,\":childNodeCount\":0}", s1); + try { + String s2 = mk.getNodes("/test/", head); + Assert.fail("Success with invalid path: " + s2); + } catch (Exception e) { + // expected + } } @Test @@ -215,7 +221,7 @@ public class MicrokernelTest { "-\"{}node\"", head, ""); - mk.getJournal(init, head); + mk.getJournal(init, head); } @Test Modified: jackrabbit/sandbox/spi2microkernel/src/test/java/org/apache/jackrabbit/spi2microkernel/RepositoryTest.java URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/spi2microkernel/src/test/java/org/apache/jackrabbit/spi2microkernel/RepositoryTest.java?rev=1143111&r1=1143110&r2=1143111&view=diff ============================================================================== --- jackrabbit/sandbox/spi2microkernel/src/test/java/org/apache/jackrabbit/spi2microkernel/RepositoryTest.java (original) +++ jackrabbit/sandbox/spi2microkernel/src/test/java/org/apache/jackrabbit/spi2microkernel/RepositoryTest.java Tue Jul 5 15:37:04 2011 @@ -23,6 +23,7 @@ import org.apache.jackrabbit.mk.api.Micr import org.apache.jackrabbit.mk.json.JsonBuilder; import org.apache.jackrabbit.spi.commons.name.NameConstants; import org.apache.jackrabbit.spi2microkernel.util.Arrays; +import org.apache.jackrabbit.spi2microkernel.util.Loop; import org.apache.jackrabbit.spi2microkernel.util.Paths; import org.junit.After; import org.junit.Before; @@ -878,7 +879,7 @@ public class RepositoryTest { mixTest.setName("mix:test"); mixTest.setMixin(true); ntMgr.registerNodeType(mixTest, false); - + Node testNode = getNode(testPath); NodeType[] mix = testNode.getMixinNodeTypes(); assertEquals(0, mix.length); @@ -969,10 +970,10 @@ public class RepositoryTest { failedEvents.add(event); } break; - default: + default: failedEvents.add(event); } - } + } catch (RepositoryException e) { failedEvents.add(event); } @@ -981,7 +982,7 @@ public class RepositoryTest { }, Event.NODE_ADDED | Event.NODE_REMOVED | Event.NODE_MOVED | Event.PROPERTY_ADDED | Event.PROPERTY_REMOVED | Event.PROPERTY_CHANGED | Event.PERSIST, "/", true, null, null, false); - + Node n = getNode(testPath); n.setProperty("prop0", "val0"); Node n1 = n.addNode("1"); @@ -994,16 +995,18 @@ public class RepositoryTest { n.addNode("3"); n1.setProperty("prop1", "val1 new"); n1.getProperty("prop2").remove(); - n.getNode("2").remove(); + n.getNode("2").remove(); getSession().save(); - Thread.sleep(5000); - assertTrue(addNodes.isEmpty()); - assertTrue(removeNodes.isEmpty()); - assertTrue(addProperties.isEmpty()); - assertTrue(removeProperties.isEmpty()); - assertTrue(setProperties.isEmpty()); - assertTrue(failedEvents.isEmpty()); + new Loop() { public void test() { + assertTrue(addNodes.isEmpty()); + assertTrue(removeNodes.isEmpty()); + assertTrue(addProperties.isEmpty()); + assertTrue(removeProperties.isEmpty()); + assertTrue(setProperties.isEmpty()); + assertTrue(failedEvents.isEmpty()); + }}; + } //------------------------------------------< private >---