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]");
+ }
+
}