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