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-messages.git


The following commit(s) were added to refs/heads/master by this push:
     new 7e764eb  GRANITE-50556 - Add toString with with option to abbreviate 
(#22)
7e764eb is described below

commit 7e764ebc782121dad651cf30bb05f0acd7617c41
Author: Christian Schneider <[email protected]>
AuthorDate: Tue Mar 19 11:23:32 2024 +0100

    GRANITE-50556 - Add toString with with option to abbreviate (#22)
    
    * GRANITE-50556 - Add toString with with option to abbreviate
    
    * GRANITE-50556 - Increase lombok version for jdk 21
    
    * GRANITE-50556 - Improvements from review
---
 pom.xml                                                  |  2 +-
 .../distribution/journal/messages/PackageMessage.java    | 16 ++++++++++++----
 .../distribution/journal/messages/package-info.java      |  2 +-
 .../journal/messages/PackageMessageTest.java             | 16 +++++++++++-----
 4 files changed, 25 insertions(+), 11 deletions(-)

diff --git a/pom.xml b/pom.xml
index 4d4711a..c20cafe 100644
--- a/pom.xml
+++ b/pom.xml
@@ -58,7 +58,7 @@
         <dependency>
             <groupId>org.projectlombok</groupId>
             <artifactId>lombok</artifactId>
-            <version>1.18.20</version>
+            <version>1.18.30</version>
             <scope>provided</scope>
         </dependency>
         <dependency>
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 137ab8d..7ffe3cb 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
@@ -43,6 +43,7 @@ public class PackageMessage {
     @Builder.Default
     List<String> deepPaths = new ArrayList<>();
 
+    // No builder default, we want metadata to be null by default
     Map<String, String> metadata = new HashMap<>();
 
     public enum ReqType {
@@ -70,8 +71,12 @@ public class PackageMessage {
         this.paths = paths;
         this.deepPaths = deepPaths;
     }
-
+    
     public String toString() {
+        return toString(true);
+    }
+
+    public String toString(boolean abbreviate) {
         StringBuilder out = new StringBuilder();
         out.append("PackageMessage(pubSlingId=");
         out.append(pubSlingId);
@@ -92,19 +97,22 @@ public class PackageMessage {
             out.append(pkgBinary.length);
         }
         out.append(", paths=");
-        out.append(abbreviate(paths));
+        out.append(printList(paths, abbreviate));
         out.append(", deepPaths=");
-        out.append(abbreviate(deepPaths));
+        out.append(printList(deepPaths, abbreviate));
         out.append(", metadata=");
         out.append(metadata);
         out.append(")");
         return out.toString();
     }
 
-    static String abbreviate(List<String> list) {
+    static String printList(List<String> list, boolean abbreviate) {
         if (list == null) {
             return null;
         }
+        if (!abbreviate) {
+            return list.toString();
+        }
         Iterator<String> iter = list.iterator();
         StringBuilder abbr = new StringBuilder();
         abbr.append("[");
diff --git 
a/src/main/java/org/apache/sling/distribution/journal/messages/package-info.java
 
b/src/main/java/org/apache/sling/distribution/journal/messages/package-info.java
index 992be64..4ab9ba2 100644
--- 
a/src/main/java/org/apache/sling/distribution/journal/messages/package-info.java
+++ 
b/src/main/java/org/apache/sling/distribution/journal/messages/package-info.java
@@ -16,5 +16,5 @@
  * specific language governing permissions and limitations
  * under the License.
  */
[email protected]("1.4.0")
[email protected]("1.5.0")
 package org.apache.sling.distribution.journal.messages;
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 01cc228..bae6c34 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,7 @@
  */
 package org.apache.sling.distribution.journal.messages;
 
-import static 
org.apache.sling.distribution.journal.messages.PackageMessage.abbreviate;
+import static 
org.apache.sling.distribution.journal.messages.PackageMessage.printList;
 import static org.hamcrest.CoreMatchers.equalTo;
 import static org.junit.Assert.assertNotNull;
 import static org.hamcrest.MatcherAssert.assertThat;
@@ -84,25 +84,31 @@ public class PackageMessageTest {
 
     @Test
     public void testAbbreviateNullPaths() {
-        assertNull(abbreviate(null));
+        assertNull(printList(null, true));
     }
 
     @Test
     public void testAbbreviateEmptyPaths() {
         List<String> empty = Collections.emptyList();
-        assertThat(abbreviate(empty), equalTo(empty.toString()));
+        assertThat(printList(empty, true), equalTo(empty.toString()));
     }
 
     @Test
     public void testAbbreviateOnePaths() {
         List<String> one = Collections.singletonList("/a/path");
-        assertThat(abbreviate(one), equalTo(one.toString()));
+        assertThat(printList(one, true), equalTo(one.toString()));
     }
 
     @Test
     public void testAbbreviateManyPaths() {
         List<String> one = Arrays.asList("/a/path", "/another/one", 
"/yet/another/one");
-        assertThat(abbreviate(one), equalTo("[/a/path, ... 2 more]"));
+        assertThat(printList(one, true), equalTo("[/a/path, ... 2 more]"));
+    }
+    
+    @Test
+    public void testPrintManyPaths() {
+        List<String> one = Arrays.asList("/a/path", "/another/one", 
"/yet/another/one");
+        assertThat(printList(one, false), equalTo("[/a/path, /another/one, 
/yet/another/one]"));
     }
 
 }

Reply via email to