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/22 09:53:11 UTC

[jackrabbit-filevault-package-maven-plugin] branch master updated: JCRVLT-566 fix parsing of defaultSeverity inside validatorSettings (#63)

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

kwin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/jackrabbit-filevault-package-maven-plugin.git


The following commit(s) were added to refs/heads/master by this push:
     new df533ba  JCRVLT-566 fix parsing of defaultSeverity inside validatorSettings (#63)
df533ba is described below

commit df533ba2e0ed8f1962c2dff699ee7c06f1fe370b
Author: Konrad Windszus <kw...@apache.org>
AuthorDate: Fri Oct 22 11:53:04 2021 +0200

    JCRVLT-566 fix parsing of defaultSeverity inside validatorSettings (#63)
    
    improve IT for validate-packages to check for more details on issues
---
 .ratignore                                         |  1 +
 .../maven/packaging/AbstractValidateMojo.java      |  2 +-
 .../maven/packaging/ValidatorSettings.java         |  4 --
 .../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 +++
 8 files changed, 65 insertions(+), 6 deletions(-)

diff --git a/.ratignore b/.ratignore
index 167d10c..6ee4664 100644
--- a/.ratignore
+++ b/.ratignore
@@ -6,6 +6,7 @@ src/test/resources/test-projects/**/.vltignore
 src/test/resources/test-projects/**/.dummy
 src/test/resources/test-projects/**/*.lst
 src/test/resources/test-projects/**/*.MF
+src/test/resources/**/*.csv
 .mvn/**
 .no-defender.sh
 .repository/**
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/main/java/org/apache/jackrabbit/filevault/maven/packaging/ValidatorSettings.java b/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/ValidatorSettings.java
index c5c959d..d4af781 100644
--- a/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/ValidatorSettings.java
+++ b/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/ValidatorSettings.java
@@ -58,10 +58,6 @@ public class ValidatorSettings implements org.apache.jackrabbit.vault.validation
         return this;
     }
 
-    public void setDefaultSeverity(ValidationMessageSeverity defaultSeverity) {
-        this.defaultSeverity = defaultSeverity;
-    }
-
     protected ValidatorSettings addOption(String key, String value) {
         options.put(key, value);
         return this;
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>