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

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


The following commit(s) were added to refs/heads/master by this push:
     new 18883d9  SLING-10066 - Override PackageMessage#toString to show keep 
only relevant data for logging
18883d9 is described below

commit 18883d974b3bcfa680ec014f0c62a28bb83a2fba
Author: tmaret <[email protected]>
AuthorDate: Fri Mar 12 17:19:26 2021 +0100

    SLING-10066 - Override PackageMessage#toString to show keep only relevant 
data for logging
---
 .../journal/messages/PackageMessage.java           | 52 ++++++++++++++++++++++
 .../journal/messages/PackageMessageTest.java       | 40 ++++++++++++++++-
 2 files changed, 90 insertions(+), 2 deletions(-)

diff --git 
a/src/main/java/org/apache/sling/distribution/journal/messages/PackageMessage.java
 
b/src/main/java/org/apache/sling/distribution/journal/messages/PackageMessage.java
index 0802541..1d16cc3 100644
--- 
a/src/main/java/org/apache/sling/distribution/journal/messages/PackageMessage.java
+++ 
b/src/main/java/org/apache/sling/distribution/journal/messages/PackageMessage.java
@@ -19,6 +19,7 @@
 package org.apache.sling.distribution.journal.messages;
 
 import java.util.ArrayList;
+import java.util.Iterator;
 import java.util.List;
 
 import lombok.AllArgsConstructor;
@@ -52,4 +53,55 @@ public class PackageMessage {
         DELETE,
         TEST;
     }
+
+    public String toString() {
+        StringBuilder out = new StringBuilder();
+        out.append("PackageMessage(pubSlingId=");
+        out.append(pubSlingId);
+        out.append(", reqType=");
+        out.append(reqType);
+        out.append(", pkgId=");
+        out.append(pkgId);
+        out.append(", pkgType=");
+        out.append(pkgType);
+        out.append(", pkgLength=");
+        out.append(pkgLength);
+        out.append(", pubAgentName=");
+        out.append(pubAgentName);
+        out.append(", userId=");
+        out.append(userId);
+        if (pkgBinary != null) {
+            out.append(", pkgBinary.length=");
+            out.append(pkgBinary.length);
+        }
+        if (pkgBinaryRef != null) {
+            out.append(", pkgBinaryRef=");
+            out.append(pkgBinaryRef);
+        }
+        out.append(", paths=");
+        out.append(abbreviate(paths));
+        out.append(", deepPaths=");
+        out.append(abbreviate(deepPaths));
+        out.append(")");
+        return out.toString();
+    }
+
+    static String abbreviate(List<String> list) {
+        if (list == null) {
+            return null;
+        }
+        Iterator<String> iter = list.iterator();
+        StringBuilder abbr = new StringBuilder();
+        abbr.append("[");
+        if (iter.hasNext()) {
+            abbr.append(iter.next());
+        }
+        if (iter.hasNext()) {
+            abbr.append(", ... ");
+            abbr.append(list.size() - 1);
+            abbr.append(" more");
+        }
+        abbr.append("]");
+        return abbr.toString();
+    }
 }
diff --git 
a/src/test/java/org/apache/sling/distribution/journal/messages/PackageMessageTest.java
 
b/src/test/java/org/apache/sling/distribution/journal/messages/PackageMessageTest.java
index 90d2617..2ee58b4 100644
--- 
a/src/test/java/org/apache/sling/distribution/journal/messages/PackageMessageTest.java
+++ 
b/src/test/java/org/apache/sling/distribution/journal/messages/PackageMessageTest.java
@@ -18,7 +18,12 @@
  */
 package org.apache.sling.distribution.journal.messages;
 
+import static 
org.apache.sling.distribution.journal.messages.PackageMessage.abbreviate;
 import static org.hamcrest.CoreMatchers.equalTo;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertThat;
+import static org.junit.Assert.assertNull;
 
 import java.io.IOException;
 import java.io.StringWriter;
@@ -26,10 +31,11 @@ import java.nio.charset.StandardCharsets;
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.Paths;
+import java.util.Arrays;
 import java.util.Collections;
+import java.util.List;
 import java.util.stream.Collectors;
 
-import org.junit.Assert;
 import org.junit.Test;
 
 import com.fasterxml.jackson.core.JsonGenerationException;
@@ -52,6 +58,36 @@ public class PackageMessageTest {
         String serialized = outWriter.getBuffer().toString();
         Path path = Paths.get("src/test/resources/serialized.json");
         String expected = Files.lines(path, 
StandardCharsets.UTF_8).collect(Collectors.joining());
-        Assert.assertThat(serialized, equalTo(expected));
+        assertThat(serialized, equalTo(expected));
     }
+
+    @Test
+    public void testToStringWithDefault() {
+        PackageMessage message = PackageMessage.builder().build();
+        assertNotNull(message.toString());
+    }
+
+    @Test
+    public void testAbbreviateNullPaths() {
+        assertNull(abbreviate(null));
+    }
+
+    @Test
+    public void testAbbreviateEmptyPaths() {
+        List<String> empty = Collections.emptyList();
+        assertEquals(abbreviate(empty), empty.toString());
+    }
+
+    @Test
+    public void testAbbreviateOnePaths() {
+        List<String> one = Collections.singletonList("/a/path");
+        assertEquals(abbreviate(one), one.toString());
+    }
+
+    @Test
+    public void testAbbreviateManyPaths() {
+        List<String> one = Arrays.asList("/a/path", "/another/one", 
"/yet/another/one");
+        assertEquals(abbreviate(one), "[/a/path, ... 2 more]");
+    }
+
 }

Reply via email to