You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by to...@apache.org on 2014/10/28 13:49:14 UTC
svn commit: r1634863 - in
/sling/trunk/contrib/extensions/replication/core/src:
main/java/org/apache/sling/replication/servlet/ReplicationTriggerServlet.java
test/java/org/apache/sling/replication/trigger/impl/ResourceEventReplicationTriggerTest.java
Author: tommaso
Date: Tue Oct 28 12:49:14 2014
New Revision: 1634863
URL: http://svn.apache.org/r1634863
Log:
SLING-4106 - adding exception handling for trigger (un)registration
Modified:
sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/servlet/ReplicationTriggerServlet.java
sling/trunk/contrib/extensions/replication/core/src/test/java/org/apache/sling/replication/trigger/impl/ResourceEventReplicationTriggerTest.java
Modified: sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/servlet/ReplicationTriggerServlet.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/servlet/ReplicationTriggerServlet.java?rev=1634863&r1=1634862&r2=1634863&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/servlet/ReplicationTriggerServlet.java (original)
+++ sling/trunk/contrib/extensions/replication/core/src/main/java/org/apache/sling/replication/servlet/ReplicationTriggerServlet.java Tue Oct 28 12:49:14 2014
@@ -23,7 +23,6 @@ import java.io.IOException;
import java.io.PrintWriter;
import java.util.Arrays;
-import org.apache.felix.scr.annotations.Component;
import org.apache.felix.scr.annotations.sling.SlingServlet;
import org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.api.SlingHttpServletResponse;
@@ -31,6 +30,7 @@ import org.apache.sling.api.servlets.Sli
import org.apache.sling.replication.communication.ReplicationRequest;
import org.apache.sling.replication.trigger.ReplicationRequestHandler;
import org.apache.sling.replication.trigger.ReplicationTrigger;
+import org.apache.sling.replication.trigger.ReplicationTriggerException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -79,16 +79,21 @@ public class ReplicationTriggerServlet e
writeEvent(writer, request);
}
};
- replicationTrigger.register(replicationRequestHandler);
-
try {
- Thread.sleep(seconds * 1000);
- } catch (InterruptedException e) {
- log.error("thread interrupted", e);
- }
+ replicationTrigger.register(replicationRequestHandler);
- replicationTrigger.unregister(replicationRequestHandler);
+ try {
+ Thread.sleep(seconds * 1000);
+ } catch (InterruptedException e) {
+ log.error("thread interrupted", e);
+ }
+ replicationTrigger.unregister(replicationRequestHandler);
+
+ } catch (ReplicationTriggerException e) {
+ response.setStatus(400);
+ response.getWriter().write("error while (un)registering trigger " + e.toString());
+ }
}
/* Write a single server-sent event to the response stream for the given event and message */
Modified: sling/trunk/contrib/extensions/replication/core/src/test/java/org/apache/sling/replication/trigger/impl/ResourceEventReplicationTriggerTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/replication/core/src/test/java/org/apache/sling/replication/trigger/impl/ResourceEventReplicationTriggerTest.java?rev=1634863&r1=1634862&r2=1634863&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/replication/core/src/test/java/org/apache/sling/replication/trigger/impl/ResourceEventReplicationTriggerTest.java (original)
+++ sling/trunk/contrib/extensions/replication/core/src/test/java/org/apache/sling/replication/trigger/impl/ResourceEventReplicationTriggerTest.java Tue Oct 28 12:49:14 2014
@@ -18,11 +18,16 @@
*/
package org.apache.sling.replication.trigger.impl;
+import java.util.Dictionary;
+
import org.apache.sling.replication.trigger.ReplicationRequestHandler;
import org.junit.Test;
import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceRegistration;
+import static org.mockito.Matchers.any;
import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
/**
* Testcase for {@link org.apache.sling.replication.trigger.impl.ResourceEventReplicationTrigger}
@@ -33,6 +38,8 @@ public class ResourceEventReplicationTri
public void testRegister() throws Exception {
String path = "/some/path";
BundleContext bundleContext = mock(BundleContext.class);
+ ServiceRegistration registration = mock(ServiceRegistration.class);
+ when(bundleContext.registerService(any(String.class), any(Object.class), any(Dictionary.class))).thenReturn(registration);
ResourceEventReplicationTrigger resourceEventReplicationTrigger = new ResourceEventReplicationTrigger(path, bundleContext);
ReplicationRequestHandler handler = mock(ReplicationRequestHandler.class);
resourceEventReplicationTrigger.register(handler);