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>