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