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);
}
}