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>