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

rombert pushed a commit to branch master
in repository 
https://gitbox.apache.org/repos/asf/sling-org-apache-sling-feature-analyser.git


The following commit(s) were added to refs/heads/master by this push:
     new 17f9605  SLING-13295 - Refine repoinit conflict warning messages and 
align tests (#62)
17f9605 is described below

commit 17f9605b8ba98bd50ddf6bf595073837836c666e
Author: michalwedzik <[email protected]>
AuthorDate: Tue Aug 11 11:43:21 2026 +0200

    SLING-13295 - Refine repoinit conflict warning messages and align tests 
(#62)
    
    - replace generic conflict summary text with a stable, grep-friendly prefix
    - trim conflicting repoinit statement output in ValidationReport
    - update CheckRepoInitConflictsTest and RepoInitConflictsValidatorTest 
expectations
    
    ---------
    
    Co-authored-by: sii12877 <[email protected]>
---
 .../analyser/task/impl/CheckRepoInitConflicts.java   |  6 +-----
 .../impl/repoinitconflicts/ValidationReport.java     | 19 +++++++++++--------
 .../task/impl/CheckRepoInitConflictsTest.java        |  6 ++----
 .../RepoInitConflictsValidatorTest.java              | 20 ++++++++++++--------
 4 files changed, 26 insertions(+), 25 deletions(-)

diff --git 
a/src/main/java/org/apache/sling/feature/analyser/task/impl/CheckRepoInitConflicts.java
 
b/src/main/java/org/apache/sling/feature/analyser/task/impl/CheckRepoInitConflicts.java
index edf714b..f4a83c5 100644
--- 
a/src/main/java/org/apache/sling/feature/analyser/task/impl/CheckRepoInitConflicts.java
+++ 
b/src/main/java/org/apache/sling/feature/analyser/task/impl/CheckRepoInitConflicts.java
@@ -18,8 +18,6 @@
  */
 package org.apache.sling.feature.analyser.task.impl;
 
-import java.util.List;
-
 import org.apache.sling.feature.Feature;
 import org.apache.sling.feature.analyser.task.AnalyserTask;
 import org.apache.sling.feature.analyser.task.AnalyserTaskContext;
@@ -55,8 +53,6 @@ public class CheckRepoInitConflicts implements AnalyserTask {
         if (!report.hasConflicts()) {
             return;
         }
-
-        List<String> messages = report.generate();
-        messages.forEach(context::reportWarning);
+        context.reportWarning(report.generate());
     }
 }
diff --git 
a/src/main/java/org/apache/sling/feature/analyser/task/impl/repoinitconflicts/ValidationReport.java
 
b/src/main/java/org/apache/sling/feature/analyser/task/impl/repoinitconflicts/ValidationReport.java
index 733905e..a1f83a1 100644
--- 
a/src/main/java/org/apache/sling/feature/analyser/task/impl/repoinitconflicts/ValidationReport.java
+++ 
b/src/main/java/org/apache/sling/feature/analyser/task/impl/repoinitconflicts/ValidationReport.java
@@ -23,6 +23,7 @@ import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 
+import org.apache.commons.lang3.StringUtils;
 import org.apache.sling.feature.Feature;
 import org.apache.sling.repoinit.parser.operations.CreatePath;
 
@@ -45,7 +46,7 @@ public class ValidationReport {
         return !conflicts.isEmpty();
     }
 
-    public List<String> generate() {
+    public String generate() {
         List<String> messages = new ArrayList<>();
         messages.add("Repoinit validation results:");
 
@@ -56,18 +57,20 @@ public class ValidationReport {
                 Feature feature = entry.getKey();
                 List<CreatePath[]> featureConflicts = entry.getValue();
 
-                messages.add("Incorrect repoinit for feature " + feature);
-                messages.add("Found " + featureConflicts.size() + " sets of 
conflicting repoinit statements");
+                messages.add("Repoinit validation conflict summary for feature 
" + feature + ": found "
+                        + featureConflicts.size() + " conflict(s)");
 
+                int conflictIndex = 1;
                 for (CreatePath[] conflict : featureConflicts) {
-                    messages.add("Conflicting statement :\n  "
-                            + conflict[0].asRepoInitString()
-                            + "\n"
-                            + conflict[1].asRepoInitString());
+                    messages.add("Conflicting repoinit statement set " + 
conflictIndex + "/" + featureConflicts.size()
+                            + ":");
+                    
messages.add(StringUtils.trim(conflict[0].asRepoInitString()));
+                    
messages.add(StringUtils.trim(conflict[1].asRepoInitString()));
+                    conflictIndex++;
                 }
             }
         }
 
-        return messages;
+        return String.join("\n", messages);
     }
 }
diff --git 
a/src/test/java/org/apache/sling/feature/analyser/task/impl/CheckRepoInitConflictsTest.java
 
b/src/test/java/org/apache/sling/feature/analyser/task/impl/CheckRepoInitConflictsTest.java
index cd46394..42bcaf9 100644
--- 
a/src/test/java/org/apache/sling/feature/analyser/task/impl/CheckRepoInitConflictsTest.java
+++ 
b/src/test/java/org/apache/sling/feature/analyser/task/impl/CheckRepoInitConflictsTest.java
@@ -125,8 +125,7 @@ class CheckRepoInitConflictsTest {
         task.execute(ctx);
 
         verify(ctx).getFeature();
-        verify(ctx).reportWarning(contains("conflicting repoinit"));
-        verify(ctx).reportWarning(contains("Conflicting statement"));
+        verify(ctx).reportWarning(contains("Repoinit validation conflict 
summary"));
     }
 
     @Test
@@ -142,8 +141,7 @@ class CheckRepoInitConflictsTest {
         task.execute(ctx);
 
         verify(ctx).getFeature();
-        verify(ctx).reportWarning(contains("conflicting repoinit"));
-        verify(ctx).reportWarning(contains("Conflicting statement"));
+        verify(ctx).reportWarning(contains("Repoinit validation conflict 
summary"));
     }
 
     @Test
diff --git 
a/src/test/java/org/apache/sling/feature/analyser/task/impl/repoinitconflicts/RepoInitConflictsValidatorTest.java
 
b/src/test/java/org/apache/sling/feature/analyser/task/impl/repoinitconflicts/RepoInitConflictsValidatorTest.java
index b2e538b..a7bc0c9 100644
--- 
a/src/test/java/org/apache/sling/feature/analyser/task/impl/repoinitconflicts/RepoInitConflictsValidatorTest.java
+++ 
b/src/test/java/org/apache/sling/feature/analyser/task/impl/repoinitconflicts/RepoInitConflictsValidatorTest.java
@@ -18,13 +18,12 @@
  */
 package org.apache.sling.feature.analyser.task.impl.repoinitconflicts;
 
-import java.util.List;
-
 import org.apache.sling.feature.Extension;
 import org.apache.sling.feature.ExtensionType;
 import org.apache.sling.feature.Feature;
 import org.junit.jupiter.api.Test;
 
+import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 import static org.mockito.Mockito.mock;
@@ -68,10 +67,15 @@ class RepoInitConflictsValidatorTest {
         ValidationReport report = RepoInitConflictsValidator.validate(feature);
         assertTrue(report.hasConflicts());
 
-        List<String> result = report.generate();
-        assertTrue(result.get(1).contains("Incorrect repoinit for feature"));
-        assertTrue(result.get(2).contains("Found 1 sets of conflicting 
repoinit statements"));
-        assertTrue(result.get(3).contains("/apps/a/b"));
+        String result = report.generate();
+        String[] lines = result.split("\n");
+        assertEquals(5, lines.length);
+        assertEquals("Repoinit validation results:", lines[0]);
+        assertTrue(lines[1].contains("Repoinit validation conflict summary"));
+        assertTrue(lines[1].contains("found 1 conflict(s)"));
+        assertTrue(lines[2].contains("Conflicting repoinit statement set 
1/1:"));
+        assertTrue(lines[3].contains("/apps/a/b(sling:OrderedFolder)"));
+        assertTrue(lines[4].contains("/apps/a/b"));
     }
 
     @Test
@@ -86,8 +90,8 @@ class RepoInitConflictsValidatorTest {
         ValidationReport report = RepoInitConflictsValidator.validate(feature);
         assertTrue(report.hasConflicts());
 
-        List<String> result = report.generate();
-        assertTrue(result.get(2).contains("Found 2 sets of conflicting 
repoinit statements"));
+        String result = report.generate();
+        assertTrue(result.contains("2 conflict(s)"));
     }
 
     @Test

Reply via email to