You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by kw...@apache.org on 2021/10/21 19:34:33 UTC

[jackrabbit-filevault-package-maven-plugin] 01/01: JCRVLT-566 fix parsing of defaultSeverity inside validatorSettings

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

kwin pushed a commit to branch bugfix/JCRVLT-566-fix-parsing-of-defaultseverity
in repository https://gitbox.apache.org/repos/asf/jackrabbit-filevault-package-maven-plugin.git

commit 96710b35cf2034157a318a8cb291ff0a99fd8aec
Author: Konrad Windszus <kw...@apache.org>
AuthorDate: Thu Oct 21 21:34:23 2021 +0200

    JCRVLT-566 fix parsing of defaultSeverity inside validatorSettings
    
    improve IT for validate-packages to check for more details on issues
---
 .../maven/packaging/AbstractValidateMojo.java      |  2 +-
 .../maven/packaging/it/ValidatePackageIT.java      | 47 +++++++++++++++++++++-
 .../filevault/maven/packaging/it/report.csv        |  7 ++++
 .../invalid-project/META-INF/vault/filter.xml      |  1 +
 .../jcr_root/apps/test/.content.xml                |  3 ++
 .../validator-projects/invalid-project/pom.xml     |  6 +++
 6 files changed, 64 insertions(+), 2 deletions(-)

diff --git a/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/AbstractValidateMojo.java b/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/AbstractValidateMojo.java
index 7de12e7..f1e695a 100644
--- a/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/AbstractValidateMojo.java
+++ b/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/AbstractValidateMojo.java
@@ -327,7 +327,7 @@ public abstract class AbstractValidateMojo extends AbstractMojo {
 
             // do no fully disable but emit violations with level DEBUG
             ValidatorSettings dependencyValidatorSettings = new ValidatorSettings();
-            dependencyValidatorSettings.setDefaultSeverity(ValidationMessageSeverity.DEBUG);
+            dependencyValidatorSettings.setDefaultSeverity(ValidationMessageSeverity.DEBUG.name());
             validatorsSettings.put(DependencyValidatorFactory.ID, dependencyValidatorSettings);
 
             ValidatorSettings filterValidatorSettings = validatorsSettings.containsKey(AdvancedFilterValidatorFactory.ID) ? validatorsSettings.get(AdvancedFilterValidatorFactory.ID) : new ValidatorSettings();
diff --git a/src/test/java/org/apache/jackrabbit/filevault/maven/packaging/it/ValidatePackageIT.java b/src/test/java/org/apache/jackrabbit/filevault/maven/packaging/it/ValidatePackageIT.java
index 0bb753f..7650bbe 100644
--- a/src/test/java/org/apache/jackrabbit/filevault/maven/packaging/it/ValidatePackageIT.java
+++ b/src/test/java/org/apache/jackrabbit/filevault/maven/packaging/it/ValidatePackageIT.java
@@ -18,14 +18,21 @@ package org.apache.jackrabbit.filevault.maven.packaging.it;
 
 import java.io.File;
 import java.io.IOException;
+import java.io.InputStream;
 import java.nio.charset.StandardCharsets;
 import java.nio.file.Paths;
+import java.util.Arrays;
+import java.util.Collection;
 import java.util.List;
 
 import org.apache.commons.csv.CSVFormat;
 import org.apache.commons.csv.CSVParser;
 import org.apache.commons.csv.CSVRecord;
 import org.apache.maven.it.VerificationException;
+import org.hamcrest.Description;
+import org.hamcrest.MatcherAssert;
+import org.hamcrest.Matchers;
+import org.hamcrest.TypeSafeMatcher;
 import org.junit.Assert;
 import org.junit.Test;
 
@@ -48,7 +55,12 @@ public class ValidatePackageIT {
         Assert.assertTrue(csvReportFile.exists());
         CSVParser csvParser = CSVParser.parse(csvReportFile, StandardCharsets.UTF_8, CSVFormat.EXCEL);
         List<CSVRecord> actualRecords = csvParser.getRecords();
-        Assert.assertEquals(5, actualRecords.size()); // 4 issues + header
+        try (InputStream input = getClass().getResourceAsStream("report.csv")) {
+            csvParser = CSVParser.parse(input, StandardCharsets.UTF_8, CSVFormat.EXCEL);
+            List<CSVRecord> expectedRecords = csvParser.getRecords();
+            // ignore file name in records.csv (4th column)
+            MatcherAssert.assertThat(actualRecords, Matchers.contains(expectedRecords.stream().map(r -> new CSVRecordMatcher(r, 3)).toArray(CSVRecordMatcher[]::new)));
+        }
     }
  
     @Test
@@ -60,4 +72,37 @@ public class ValidatePackageIT {
     public void testValidProjectWithClassifier() throws Exception {
         verify("classifier-project", false, "test");
     }
+
+    private static final class CSVRecordMatcher extends TypeSafeMatcher<CSVRecord> {
+        private final CSVRecord expectedCsvRecord;
+        private final Collection<Integer> ignoredValueIndices;
+
+        CSVRecordMatcher(CSVRecord csvRecord, Integer... ignoredValueIndices) {
+            this.expectedCsvRecord = csvRecord;
+            this.ignoredValueIndices =  Arrays.asList(ignoredValueIndices);
+        }
+
+        @Override
+        public void describeTo(Description description) {
+            description.appendText(expectedCsvRecord.toString());
+        }
+
+        @Override
+        protected boolean matchesSafely(CSVRecord item) {
+            int size = expectedCsvRecord.size();
+            if (item.size() != size) {
+                return false;
+            }
+            for (int i=0; i<size; i++) {
+                if(ignoredValueIndices.contains(i)) {
+                    continue;
+                }
+                if (!item.get(i).equals(expectedCsvRecord.get(i))) {
+                    return false;
+                }
+            }
+            return true;
+        }
+        
+    }
 }
diff --git a/src/test/resources/org/apache/jackrabbit/filevault/maven/packaging/it/report.csv b/src/test/resources/org/apache/jackrabbit/filevault/maven/packaging/it/report.csv
new file mode 100644
index 0000000..348fa2e
--- /dev/null
+++ b/src/test/resources/org/apache/jackrabbit/filevault/maven/packaging/it/report.csv
@@ -0,0 +1,7 @@
+Severity,Validator ID,Message,File,Line:Column,Node Path
+ERROR,jackrabbit-filter,Invalid pattern given ('invalidpattern') which will never match for any descendants of the root path '/apps/wcm/core/content'.,/Users/konradwindszus/git/jackrabbit-filevault-package-maven-plugin/target/test-classes/test-projects/validator-projects/invalid-project/target/package-plugin-test-pkg-1.0.0-SNAPSHOT.zip/META-INF/vault/filter.xml,0:0,
+WARN,jackrabbit-filter,Filter root's ancestor '/apps/wcm/core' is not covered by any of the specified dependencies nor a valid root.,/Users/konradwindszus/git/jackrabbit-filevault-package-maven-plugin/target/test-classes/test-projects/validator-projects/invalid-project/target/package-plugin-test-pkg-1.0.0-SNAPSHOT.zip/META-INF/vault/filter.xml,0:0,
+WARN,jackrabbit-packagetype,Package of type 'CONTENT' is not supposed to contain content below root nodes 'apps' or 'libs'!,/Users/konradwindszus/git/jackrabbit-filevault-package-maven-plugin/target/test-classes/test-projects/validator-projects/invalid-project/target/package-plugin-test-pkg-1.0.0-SNAPSHOT.zip/jcr_root/apps/test,0:0,/apps/test
+WARN,jackrabbit-nodetypes,Invalid primary type 'sling:Folder': sling: is not a registered namespace prefix. Skip validation of nodes with that type/name,/Users/konradwindszus/git/jackrabbit-filevault-package-maven-plugin/target/test-classes/test-projects/validator-projects/invalid-project/target/package-plugin-test-pkg-1.0.0-SNAPSHOT.zip/jcr_root/apps/test/.content.xml,3:37,/apps/test
+WARN,jackrabbit-packagetype,Package of type 'CONTENT' is not supposed to contain content below root nodes 'apps' or 'libs'!,/Users/konradwindszus/git/jackrabbit-filevault-package-maven-plugin/target/test-classes/test-projects/validator-projects/invalid-project/target/package-plugin-test-pkg-1.0.0-SNAPSHOT.zip/jcr_root/apps/test/.content.xml,3:0,/apps/test
+WARN,jackrabbit-filter,"Found orphaned filter entries: includes [regex: invalidpattern] below root '/apps/wcm/core/content', entry with root '/rep:policy'",,0:0,
diff --git a/src/test/resources/test-projects/validator-projects/invalid-project/META-INF/vault/filter.xml b/src/test/resources/test-projects/validator-projects/invalid-project/META-INF/vault/filter.xml
index c29c176..3b95c9e 100644
--- a/src/test/resources/test-projects/validator-projects/invalid-project/META-INF/vault/filter.xml
+++ b/src/test/resources/test-projects/validator-projects/invalid-project/META-INF/vault/filter.xml
@@ -20,4 +20,5 @@
         <include pattern="invalidpattern"/>
     </filter>
     <filter root="/rep:policy" mode="merge"/>
+    <filter root="/apps/test" />
 </workspaceFilter>
diff --git a/src/test/resources/test-projects/validator-projects/invalid-project/jcr_root/apps/test/.content.xml b/src/test/resources/test-projects/validator-projects/invalid-project/jcr_root/apps/test/.content.xml
new file mode 100644
index 0000000..fd1e601
--- /dev/null
+++ b/src/test/resources/test-projects/validator-projects/invalid-project/jcr_root/apps/test/.content.xml
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:cq="http://www.day.com/jcr/cq/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0"
+    jcr:primaryType="sling:Folder"/>
diff --git a/src/test/resources/test-projects/validator-projects/invalid-project/pom.xml b/src/test/resources/test-projects/validator-projects/invalid-project/pom.xml
index 436a1a1..d142501 100755
--- a/src/test/resources/test-projects/validator-projects/invalid-project/pom.xml
+++ b/src/test/resources/test-projects/validator-projects/invalid-project/pom.xml
@@ -31,6 +31,12 @@
                 <extensions>true</extensions>
                 <configuration>
                     <csvReportFile>report.csv</csvReportFile>
+                    <packageType>content</packageType>
+                    <validatorsSettings>
+                        <jackrabbit-packagetype>
+                            <defaultSeverity>warn</defaultSeverity>
+                        </jackrabbit-packagetype>
+                    </validatorsSettings>
                 </configuration>
             </plugin>
         </plugins>