You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by bd...@apache.org on 2014/10/22 11:21:17 UTC

svn commit: r1633568 - in /sling/trunk/bundles/jcr/it-jackrabbit-oak/src/test/java/org/apache/sling/jcr/repository/it: CommonTests.java OakRepositoryIT.java ResourceEventListener.java

Author: bdelacretaz
Date: Wed Oct 22 09:21:17 2014
New Revision: 1633568

URL: http://svn.apache.org/r1633568
Log:
SLING-4058 - tweaks to testOsgiResourceEvents()

Modified:
    sling/trunk/bundles/jcr/it-jackrabbit-oak/src/test/java/org/apache/sling/jcr/repository/it/CommonTests.java
    sling/trunk/bundles/jcr/it-jackrabbit-oak/src/test/java/org/apache/sling/jcr/repository/it/OakRepositoryIT.java
    sling/trunk/bundles/jcr/it-jackrabbit-oak/src/test/java/org/apache/sling/jcr/repository/it/ResourceEventListener.java

Modified: sling/trunk/bundles/jcr/it-jackrabbit-oak/src/test/java/org/apache/sling/jcr/repository/it/CommonTests.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/it-jackrabbit-oak/src/test/java/org/apache/sling/jcr/repository/it/CommonTests.java?rev=1633568&r1=1633567&r2=1633568&view=diff
==============================================================================
--- sling/trunk/bundles/jcr/it-jackrabbit-oak/src/test/java/org/apache/sling/jcr/repository/it/CommonTests.java (original)
+++ sling/trunk/bundles/jcr/it-jackrabbit-oak/src/test/java/org/apache/sling/jcr/repository/it/CommonTests.java Wed Oct 22 09:21:17 2014
@@ -46,6 +46,7 @@ import javax.jcr.observation.Observation
 import javax.jcr.query.Query;
 
 import org.apache.jackrabbit.commons.cnd.CndImporter;
+import org.apache.sling.api.SlingConstants;
 import org.apache.sling.jcr.api.SlingRepository;
 import org.junit.After;
 import org.junit.Ignore;
@@ -340,15 +341,18 @@ public abstract class CommonTests {
     }
 
     @Test
-    @Ignore("SLING-3479 - doesn't work with Oak 1.0 yet")
+    @Ignore("SLING-3479 - doesn't work with Oak yet")
     public void testOsgiResourceEvents() throws RepositoryException {
         final ResourceEventListener listener = new ResourceEventListener();
-        final ServiceRegistration reg = listener.register(bundleContext);
+        final ServiceRegistration reg = listener.register(bundleContext, SlingConstants.TOPIC_RESOURCE_ADDED);
         final Session s = repository.loginAdministrative(null);
         final int nPaths = 500;
-        final int timeoutMsec = 5000;
+        final int timeoutMsec = 10000;
         final String prefix = uniqueName("testOsgiResourceEvents");
 
+        // Create N nodes with a unique name under /
+        // and verify that ResourceEventListener gets an event
+        // for each of them
         try {
             for(int i=0; i  < nPaths; i++) {
                 s.getRootNode().addNode(prefix + i);
@@ -374,9 +378,10 @@ public abstract class CommonTests {
             }
 
             if(!missing.isEmpty()) {
+                final String missingStr = missing.size() > 10 ? missing.size() + " paths missing" : missing.toString();
                 fail("OSGi add resource events are missing for "
                         + missing.size() + "/" + nPaths + " paths after "
-                        + timeoutMsec + " msec: " + missing);
+                        + timeoutMsec + " msec: " + missingStr);
             }
         } finally {
             reg.unregister();

Modified: sling/trunk/bundles/jcr/it-jackrabbit-oak/src/test/java/org/apache/sling/jcr/repository/it/OakRepositoryIT.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/it-jackrabbit-oak/src/test/java/org/apache/sling/jcr/repository/it/OakRepositoryIT.java?rev=1633568&r1=1633567&r2=1633568&view=diff
==============================================================================
--- sling/trunk/bundles/jcr/it-jackrabbit-oak/src/test/java/org/apache/sling/jcr/repository/it/OakRepositoryIT.java (original)
+++ sling/trunk/bundles/jcr/it-jackrabbit-oak/src/test/java/org/apache/sling/jcr/repository/it/OakRepositoryIT.java Wed Oct 22 09:21:17 2014
@@ -100,7 +100,7 @@ public class OakRepositoryIT extends Com
                 mavenBundle("org.apache.sling", "org.apache.sling.settings", "1.3.0"),
                 mavenBundle("org.apache.sling", "org.apache.sling.resourceresolver", "1.1.0"),
                 mavenBundle("org.apache.sling", "org.apache.sling.adapter", "2.1.0"),
-                mavenBundle("org.apache.sling", "org.apache.sling.jcr.resource", "2.2.6"),
+                mavenBundle("org.apache.sling", "org.apache.sling.jcr.resource", "2.3.11-SNAPSHOT"),
                 mavenBundle("org.apache.sling", "org.apache.sling.jcr.classloader", "3.1.12"),
                 mavenBundle("org.apache.sling", "org.apache.sling.jcr.contentloader", "2.1.2"),
                 mavenBundle("org.apache.sling", "org.apache.sling.engine", "2.2.6"),

Modified: sling/trunk/bundles/jcr/it-jackrabbit-oak/src/test/java/org/apache/sling/jcr/repository/it/ResourceEventListener.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/it-jackrabbit-oak/src/test/java/org/apache/sling/jcr/repository/it/ResourceEventListener.java?rev=1633568&r1=1633567&r2=1633568&view=diff
==============================================================================
--- sling/trunk/bundles/jcr/it-jackrabbit-oak/src/test/java/org/apache/sling/jcr/repository/it/ResourceEventListener.java (original)
+++ sling/trunk/bundles/jcr/it-jackrabbit-oak/src/test/java/org/apache/sling/jcr/repository/it/ResourceEventListener.java Wed Oct 22 09:21:17 2014
@@ -22,7 +22,6 @@ import java.util.HashSet;
 import java.util.Hashtable;
 import java.util.Set;
 
-import org.apache.sling.api.SlingConstants;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.ServiceRegistration;
 import org.osgi.service.event.Event;
@@ -31,14 +30,15 @@ import org.osgi.service.event.EventHandl
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+/** Keep track of OSGi events received on a given topic */
 public class ResourceEventListener implements EventHandler {
     
     private final Logger log = LoggerFactory.getLogger(getClass());
     private final Set<String> paths = new HashSet<String>();
     
-    ServiceRegistration register(BundleContext ctx) {
+    ServiceRegistration register(BundleContext ctx, String osgiEventTopic) {
         final Hashtable<String, Object> props = new Hashtable<String, Object>();
-        props.put(EventConstants.EVENT_TOPIC, SlingConstants.TOPIC_RESOURCE_ADDED);
+        props.put(EventConstants.EVENT_TOPIC, osgiEventTopic);
         return ctx.registerService(EventHandler.class.getName(), this, props);
     }
     
@@ -46,10 +46,10 @@ public class ResourceEventListener imple
     public void handleEvent(Event event) {
         final String path = (String) event.getProperty("path");
         if(path != null) {
-            if(paths.isEmpty()) {
-                log.info("Got first event, path={}", path);
-            }
             synchronized (paths) {
+                if(paths.isEmpty()) {
+                    log.info("Got first event, path={}", path);
+                }
                 paths.add(path);
             }
         }