You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cs...@apache.org on 2020/04/16 14:57:17 UTC

[sling-org-apache-sling-distribution-journal] branch master updated: SLING-9377 - Do not exit on test message

This is an automated email from the ASF dual-hosted git repository.

cschneider pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-distribution-journal.git


The following commit(s) were added to refs/heads/master by this push:
     new 1071138  SLING-9377 - Do not exit on test message
1071138 is described below

commit 10711381fe42746a42b95763b9307045e1b35150
Author: Christian Schneider <cs...@adobe.com>
AuthorDate: Thu Apr 16 16:55:20 2020 +0200

    SLING-9377 - Do not exit on test message
---
 .../journal/impl/queue/impl/RangePoller.java       |  6 ++-
 .../journal/impl/queue/impl/RangePollerTest.java   | 50 ++++++++++++----------
 2 files changed, 32 insertions(+), 24 deletions(-)

diff --git a/src/main/java/org/apache/sling/distribution/journal/impl/queue/impl/RangePoller.java b/src/main/java/org/apache/sling/distribution/journal/impl/queue/impl/RangePoller.java
index 51ceb7b..68fe9f7 100644
--- a/src/main/java/org/apache/sling/distribution/journal/impl/queue/impl/RangePoller.java
+++ b/src/main/java/org/apache/sling/distribution/journal/impl/queue/impl/RangePoller.java
@@ -80,8 +80,10 @@ public class RangePoller {
     private void handlePackage(MessageInfo info, Messages.PackageMessage message) {
         long offset = info.getOffset();
         LOG.debug("Reading offset {}", offset);
-        if (offset < maxOffset && isNotTestMessage(message)) {
-            messages.add(new FullMessage<>(info, message));
+        if (offset < maxOffset) {
+            if (isNotTestMessage(message)) {
+                messages.add(new FullMessage<>(info, message));
+            }
         } else {
             fetched.countDown();
         }
diff --git a/src/test/java/org/apache/sling/distribution/journal/impl/queue/impl/RangePollerTest.java b/src/test/java/org/apache/sling/distribution/journal/impl/queue/impl/RangePollerTest.java
index 778bbaa..7a4aab0 100644
--- a/src/test/java/org/apache/sling/distribution/journal/impl/queue/impl/RangePollerTest.java
+++ b/src/test/java/org/apache/sling/distribution/journal/impl/queue/impl/RangePollerTest.java
@@ -18,6 +18,7 @@
  */
 package org.apache.sling.distribution.journal.impl.queue.impl;
 
+import static org.hamcrest.CoreMatchers.equalTo;
 import static org.hamcrest.Matchers.contains;
 import static org.hamcrest.Matchers.samePropertyValuesAs;
 import static org.junit.Assert.assertThat;
@@ -28,7 +29,16 @@ import java.io.Closeable;
 import java.io.IOException;
 import java.util.List;
 
+import org.apache.sling.distribution.journal.FullMessage;
+import org.apache.sling.distribution.journal.HandlerAdapter;
+import org.apache.sling.distribution.journal.MessageHandler;
+import org.apache.sling.distribution.journal.MessageInfo;
+import org.apache.sling.distribution.journal.MessagingProvider;
+import org.apache.sling.distribution.journal.Reset;
 import org.apache.sling.distribution.journal.impl.shared.TestMessageInfo;
+import org.apache.sling.distribution.journal.messages.Messages;
+import org.apache.sling.distribution.journal.messages.Messages.PackageMessage;
+import org.apache.sling.distribution.journal.messages.Messages.PackageMessage.ReqType;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -38,16 +48,6 @@ import org.mockito.Mock;
 import org.mockito.Mockito;
 import org.mockito.MockitoAnnotations;
 
-import org.apache.sling.distribution.journal.messages.Messages;
-import org.apache.sling.distribution.journal.messages.Messages.PackageMessage;
-import org.apache.sling.distribution.journal.messages.Messages.PackageMessage.ReqType;
-import org.apache.sling.distribution.journal.FullMessage;
-import org.apache.sling.distribution.journal.HandlerAdapter;
-import org.apache.sling.distribution.journal.MessageHandler;
-import org.apache.sling.distribution.journal.MessageInfo;
-import org.apache.sling.distribution.journal.MessagingProvider;
-import org.apache.sling.distribution.journal.Reset;
-
 public class RangePollerTest {
 
     private static final int MIN_OFFSET = 10;
@@ -64,9 +64,10 @@ public class RangePollerTest {
     private Closeable poller;
     
     private MessageHandler<PackageMessage> handler;
+    private FullMessage<PackageMessage>[] messages;
     
     @Before
-    public void before() {
+    public void before() throws IOException {
         MockitoAnnotations.initMocks(this);
         when(clientProvider.assignTo(MIN_OFFSET))
                 .thenReturn("0:" + MIN_OFFSET);
@@ -88,26 +89,31 @@ public class RangePollerTest {
     public void test() throws Exception {
         RangePoller poller = new RangePoller(clientProvider, TOPIC, MIN_OFFSET, MAX_OFFSET);
         handler = handlerCaptor.getValue().getHandler();
-        FullMessage<PackageMessage> message1 = simulateMessage(MIN_OFFSET);
-        FullMessage<PackageMessage> message2 = simulateMessage(19);
-        simulateMessage(MAX_OFFSET);
+        messages = new FullMessage[] {
+          createMessage(ReqType.ADD, MIN_OFFSET),
+          createMessage(ReqType.TEST, MIN_OFFSET + 1),
+          createMessage(ReqType.ADD, MAX_OFFSET - 1),
+          createMessage(ReqType.ADD, MAX_OFFSET)
+        };
+        simulateMessages();
         List<FullMessage<PackageMessage>> actualMessages = poller.fetchRange();
-        assertThat(actualMessages, contains(samePropertyValuesAs(message1), samePropertyValuesAs(message2)));
+        assertThat(actualMessages.size(), equalTo(2));
+        assertThat(actualMessages, contains(samePropertyValuesAs(messages[0]), samePropertyValuesAs(messages[2])));
     }
-
-    private FullMessage<PackageMessage> simulateMessage(int offset) {
-        FullMessage<PackageMessage> message = createMessage(offset);
-        handler.handle(message.getInfo(), message.getMessage());
-        return message;
+    
+    private void simulateMessages() {
+        for (FullMessage<PackageMessage> message : messages) {
+            handler.handle(message.getInfo(), message.getMessage());
+        }
     }
 
-    private FullMessage<Messages.PackageMessage> createMessage(int offset) {
+    private FullMessage<Messages.PackageMessage> createMessage(ReqType reqType, int offset) {
         MessageInfo info = new TestMessageInfo(TOPIC, 0, offset, System.currentTimeMillis());
         PackageMessage message = Messages.PackageMessage.newBuilder()
                 .setPubAgentName("agent1")
                 .setPubSlingId("pub1SlingId")
                 .setPkgId("package-" + offset)
-                .setReqType(ReqType.ADD)
+                .setReqType(reqType)
                 .setPkgType("journal")
                 .addPaths("path")
                 .build();