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 2020/01/27 11:10:06 UTC
svn commit: r1873203 - in
/jackrabbit/commons/filevault-package-maven-plugin/trunk: ./
src/main/java/org/apache/jackrabbit/filevault/maven/packaging/
src/site/markdown/
src/test/java/org/apache/jackrabbit/filevault/maven/packaging/
Author: kwin
Date: Mon Jan 27 11:10:05 2020
New Revision: 1873203
URL: http://svn.apache.org/viewvc?rev=1873203&view=rev
Log:
JCRVLT-404 allow to adjust validator settings per package id
Modified:
jackrabbit/commons/filevault-package-maven-plugin/trunk/.travis.yml
jackrabbit/commons/filevault-package-maven-plugin/trunk/README.md
jackrabbit/commons/filevault-package-maven-plugin/trunk/pom.xml
jackrabbit/commons/filevault-package-maven-plugin/trunk/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/AbstractValidateMojo.java
jackrabbit/commons/filevault-package-maven-plugin/trunk/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/ValidateFilesMojo.java
jackrabbit/commons/filevault-package-maven-plugin/trunk/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/ValidatePackageMojo.java
jackrabbit/commons/filevault-package-maven-plugin/trunk/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/ValidatorSettings.java
jackrabbit/commons/filevault-package-maven-plugin/trunk/src/site/markdown/howto_release.md
jackrabbit/commons/filevault-package-maven-plugin/trunk/src/site/markdown/validators.md
jackrabbit/commons/filevault-package-maven-plugin/trunk/src/test/java/org/apache/jackrabbit/filevault/maven/packaging/AbstractValidateMojoTest.java
Modified: jackrabbit/commons/filevault-package-maven-plugin/trunk/.travis.yml
URL: http://svn.apache.org/viewvc/jackrabbit/commons/filevault-package-maven-plugin/trunk/.travis.yml?rev=1873203&r1=1873202&r2=1873203&view=diff
==============================================================================
--- jackrabbit/commons/filevault-package-maven-plugin/trunk/.travis.yml (original)
+++ jackrabbit/commons/filevault-package-maven-plugin/trunk/.travis.yml Mon Jan 27 11:10:05 2020
@@ -64,4 +64,4 @@ cache:
# This avoids re-downloading the JDK every time, but Travis recommends not to do it
# - $HOME/.jabba/
# Cache Maven repo
- - $HOME/.m2
\ No newline at end of file
+ #- $HOME/.m2
\ No newline at end of file
Modified: jackrabbit/commons/filevault-package-maven-plugin/trunk/README.md
URL: http://svn.apache.org/viewvc/jackrabbit/commons/filevault-package-maven-plugin/trunk/README.md?rev=1873203&r1=1873202&r2=1873203&view=diff
==============================================================================
--- jackrabbit/commons/filevault-package-maven-plugin/trunk/README.md (original)
+++ jackrabbit/commons/filevault-package-maven-plugin/trunk/README.md Mon Jan 27 11:10:05 2020
@@ -3,8 +3,8 @@
Welcome to Apache Jackrabbit FileVault Package Maven Plugin
===========================================================
-The Apache Jackrabbit FileVault package maven plugin is an Apache maven plugin
-that simplifies the creation of content package maven artifacts. The content
+The Apache Jackrabbit FileVault package maven plugin is an Apache Maven Plugin
+that simplifies the creation of content package Maven artifacts. The content
packages can later be used to install content into a JCR repository using the
Apache Jackrabbit FileVault packaging runtime.
Modified: jackrabbit/commons/filevault-package-maven-plugin/trunk/pom.xml
URL: http://svn.apache.org/viewvc/jackrabbit/commons/filevault-package-maven-plugin/trunk/pom.xml?rev=1873203&r1=1873202&r2=1873203&view=diff
==============================================================================
--- jackrabbit/commons/filevault-package-maven-plugin/trunk/pom.xml (original)
+++ jackrabbit/commons/filevault-package-maven-plugin/trunk/pom.xml Mon Jan 27 11:10:05 2020
@@ -259,6 +259,36 @@
</executions>
</plugin>
</plugins>
+ <pluginManagement>
+ <plugins>
+ <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
+ <plugin>
+ <groupId>org.eclipse.m2e</groupId>
+ <artifactId>lifecycle-mapping</artifactId>
+ <version>1.0.0</version>
+ <configuration>
+ <lifecycleMappingMetadata>
+ <pluginExecutions>
+ <pluginExecution>
+ <pluginExecutionFilter>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-plugin-plugin</artifactId>
+ <versionRange>[3.6.0,)</versionRange>
+ <goals>
+ <goal>descriptor</goal>
+ <goal>helpmojo</goal>
+ </goals>
+ </pluginExecutionFilter>
+ <action>
+ <ignore></ignore>
+ </action>
+ </pluginExecution>
+ </pluginExecutions>
+ </lifecycleMappingMetadata>
+ </configuration>
+ </plugin>
+ </plugins>
+ </pluginManagement>
</build>
<!-- ====================================================================== -->
Modified: jackrabbit/commons/filevault-package-maven-plugin/trunk/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/AbstractValidateMojo.java
URL: http://svn.apache.org/viewvc/jackrabbit/commons/filevault-package-maven-plugin/trunk/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/AbstractValidateMojo.java?rev=1873203&r1=1873202&r2=1873203&view=diff
==============================================================================
--- jackrabbit/commons/filevault-package-maven-plugin/trunk/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/AbstractValidateMojo.java (original)
+++ jackrabbit/commons/filevault-package-maven-plugin/trunk/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/AbstractValidateMojo.java Mon Jan 27 11:10:05 2020
@@ -28,6 +28,7 @@ import org.apache.commons.lang3.StringUt
import org.apache.jackrabbit.filevault.maven.packaging.validator.impl.context.DependencyResolver;
import org.apache.jackrabbit.vault.fs.api.PathFilterSet;
import org.apache.jackrabbit.vault.packaging.Dependency;
+import org.apache.jackrabbit.vault.packaging.PackageId;
import org.apache.jackrabbit.vault.packaging.PackageInfo;
import org.apache.jackrabbit.vault.validation.ValidationExecutorFactory;
import org.apache.jackrabbit.vault.validation.spi.ValidationMessageSeverity;
@@ -42,6 +43,7 @@ import org.apache.maven.plugin.AbstractM
import org.apache.maven.plugin.MojoExecution;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.plugin.logging.Log;
import org.apache.maven.plugins.annotations.Component;
import org.apache.maven.plugins.annotations.Parameter;
import org.apache.maven.project.MavenProject;
@@ -55,19 +57,21 @@ public abstract class AbstractValidateMo
@Parameter(property = "vault.skipValidation", defaultValue = "false", required = true)
boolean skipValidation;
- /** All validator settings in a map. The keys are the validator ids and the values
- * are a complex object of type ValdidatorSettings.
+ /** All validator settings in a map. The keys are the validator ids (optionally suffixed by {@code :<package group>:<package name>} to be restricted to certain packages).
+ * You can use {@code *} as wildcard value for {@code package group}.
+ * Alternatively you can use the suffix {@code :subpackages} to influence the settings for all sub packages only!
+ * The values are a complex object of type ValdidatorSettings.
* An example configuration looks like
* <pre>
* <jackrabbit-filter>
* <options>
- * <
+ * <severityForUncoveredAncestorNodes>error</severityForUncoveredAncestorNodes>
* </options>
* </jackrabbit-filter>
* </pre>
*/
@Parameter
- Map<String, ValidatorSettings> validatorsSettings;
+ private Map<String, ValidatorSettings> validatorsSettings;
/** Controls if errors during dependency validation should fail the build.
*
@@ -263,5 +267,69 @@ public abstract class AbstractValidateMo
}
}
+
+ protected void disableChecksOnlyWorkingForPackages() throws MojoExecutionException {
+ final ValidatorSettings filterValidatorSettings;
+ if (validatorsSettings == null) {
+ validatorsSettings = new HashMap<>();
+ }
+ if (validatorsSettings.containsKey(AdvancedFilterValidatorFactory.ID)) {
+ getLog().warn("Overwriting settings for validator " + AdvancedFilterValidatorFactory.ID + " as some checks do not work reliably for this mojo!");
+ filterValidatorSettings = validatorsSettings.get(AdvancedFilterValidatorFactory.ID);
+ } else {
+ filterValidatorSettings = new ValidatorSettings();
+ }
+ // orphaned filter rules cannot be realiably detected, as the package is not yet build
+ filterValidatorSettings.addOption(AdvancedFilterValidatorFactory.OPTION_SEVERITY_FOR_ORPHANED_FILTER_RULES, "debug");
+ }
+
public abstract void doExecute() throws MojoExecutionException, MojoFailureException;
+
+ protected Map<String, ValidatorSettings> getValidatorSettingsForPackage(PackageId packageId, boolean isSubPackage) {
+ return getValidatorSettingsForPackage(getLog(), validatorsSettings, packageId, isSubPackage);
+ }
+
+ static Map<String, ValidatorSettings> getValidatorSettingsForPackage(Log log, Map<String, ValidatorSettings> validatorsSettings, PackageId packageId, boolean isSubPackage) {
+ Map<String, ValidatorSettings> validatorSettingsById = new HashMap<>();
+ if (validatorsSettings == null) {
+ return validatorSettingsById;
+ }
+ for (Map.Entry<String, ValidatorSettings> validatorSettingByIdAndPackage : validatorsSettings.entrySet()) {
+ // does this setting belong to this package?
+ boolean shouldAdd = false;
+ String[] parts = validatorSettingByIdAndPackage.getKey().split(":", 3);
+ final String validatorId = parts[0];
+
+ if (parts.length == 2) {
+ if (parts[1].equals("subpackage")) {
+ shouldAdd = isSubPackage;
+ } else {
+ log.warn("Invalid validatorSettings key '" + validatorSettingByIdAndPackage.getKey() +"'" );
+ continue;
+ }
+ }
+ // does it contain a package id filter?
+ else if (parts.length == 3) {
+ String group = parts[1];
+ String name = parts[2];
+ if (group != "*") {
+ if (!group.equals(packageId.getGroup())) {
+ log.debug("Not applying validator settings with id '" + validatorSettingByIdAndPackage.getKey() +"' as it does not match the package " + packageId);
+ continue;
+ }
+ }
+ if (!name.equals(packageId.getName())) {
+ log.debug("Not applying validator settings with id '" + validatorSettingByIdAndPackage.getKey() +"' as it does not match the package " + packageId);
+ continue;
+ }
+ shouldAdd = true;
+ } else {
+ shouldAdd = true;
+ }
+ if (shouldAdd) {
+ validatorSettingsById.put(validatorId, validatorSettingByIdAndPackage.getValue());
+ }
+ }
+ return validatorSettingsById;
+ }
}
Modified: jackrabbit/commons/filevault-package-maven-plugin/trunk/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/ValidateFilesMojo.java
URL: http://svn.apache.org/viewvc/jackrabbit/commons/filevault-package-maven-plugin/trunk/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/ValidateFilesMojo.java?rev=1873203&r1=1873202&r2=1873203&view=diff
==============================================================================
--- jackrabbit/commons/filevault-package-maven-plugin/trunk/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/ValidateFilesMojo.java (original)
+++ jackrabbit/commons/filevault-package-maven-plugin/trunk/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/ValidateFilesMojo.java Mon Jan 27 11:10:05 2020
@@ -24,7 +24,6 @@ import java.io.InputStream;
import java.nio.file.Paths;
import java.util.Collection;
import java.util.Collections;
-import java.util.HashMap;
import java.util.List;
import org.apache.commons.lang3.StringUtils;
@@ -34,7 +33,6 @@ import org.apache.jackrabbit.vault.util.
import org.apache.jackrabbit.vault.validation.ValidationExecutor;
import org.apache.jackrabbit.vault.validation.ValidationViolation;
import org.apache.jackrabbit.vault.validation.spi.ValidationContext;
-import org.apache.jackrabbit.vault.validation.spi.impl.AdvancedFilterValidatorFactory;
import org.apache.maven.lifecycle.LifecycleExecutor;
import org.apache.maven.lifecycle.LifecycleNotFoundException;
import org.apache.maven.lifecycle.LifecyclePhaseNotFoundException;
@@ -59,8 +57,11 @@ import org.codehaus.plexus.util.Abstract
import org.codehaus.plexus.util.DirectoryScanner;
import org.codehaus.plexus.util.Scanner;
-/** Validates individual files with all registered validators. This is only active for incremental builds (i.e. inside m2e)
- or when mojo "validate-package" is not executed in the current Maven execution */
+/**
+ * Validates individual files with all registered validators. This is only active for incremental builds (i.e. inside m2e)
+ * or when mojo "validate-package" is not executed in the current Maven execution
+ * @see <a href="https://jackrabbit.apache.org/filevault-package-maven-plugin/validators.html">Validators</a>
+ */
@Mojo(name = "validate-files", defaultPhase = LifecyclePhase.PROCESS_CLASSES, requiresDependencyResolution = ResolutionScope.COMPILE, threadSafe = true)
public class ValidateFilesMojo extends AbstractValidateMojo {
@@ -141,20 +142,6 @@ public class ValidateFilesMojo extends A
public ValidateFilesMojo() {
}
- private void disableChecksOnlyWorkingForPackages() throws MojoExecutionException {
- final ValidatorSettings filterValidatorSettings;
- if (validatorsSettings == null) {
- validatorsSettings = new HashMap<>();
- }
- if (validatorsSettings.containsKey(AdvancedFilterValidatorFactory.ID)) {
- getLog().warn("Overwriting settings for validator " + AdvancedFilterValidatorFactory.ID + " as some checks do not work reliably for this mojo!");
- filterValidatorSettings = validatorsSettings.get(AdvancedFilterValidatorFactory.ID);
- } else {
- filterValidatorSettings = new ValidatorSettings();
- }
- // orphaned filter rules cannot be realiably detected, as the package is not yet build
- filterValidatorSettings.addOption(AdvancedFilterValidatorFactory.OPTION_SEVERITY_FOR_ORPHANED_FILTER_RULES, "debug");
- }
@Override
public void doExecute() throws MojoExecutionException, MojoFailureException {
@@ -187,7 +174,7 @@ public class ValidateFilesMojo extends A
File generatedMetaInfRootDirectory = new File(workDirectory, Constants.META_INF);
getLog().info("Using generatedMetaInfRootDirectory: " + generatedMetaInfRootDirectory + " and metaInfRootDir: " + metaInfRootDirectory);
ValidationContext context = new DirectoryValidationContext(generatedMetaInfRootDirectory, metaInfRootDirectory, resolver, getLog());
- ValidationExecutor executor = validationExecutorFactory.createValidationExecutor(context, false, false, validatorsSettings);
+ ValidationExecutor executor = validationExecutorFactory.createValidationExecutor(context, false, false, getValidatorSettingsForPackage(context.getProperties().getId(), false));
if (executor == null) {
throw new MojoExecutionException("No registered validators found!");
}
Modified: jackrabbit/commons/filevault-package-maven-plugin/trunk/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/ValidatePackageMojo.java
URL: http://svn.apache.org/viewvc/jackrabbit/commons/filevault-package-maven-plugin/trunk/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/ValidatePackageMojo.java?rev=1873203&r1=1873202&r2=1873203&view=diff
==============================================================================
--- jackrabbit/commons/filevault-package-maven-plugin/trunk/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/ValidatePackageMojo.java (original)
+++ jackrabbit/commons/filevault-package-maven-plugin/trunk/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/ValidatePackageMojo.java Mon Jan 27 11:10:05 2020
@@ -44,7 +44,10 @@ import org.apache.maven.plugins.annotati
import org.xml.sax.SAXException;
-/** Validates the whole package with all registered validators. This is only active for incremental builds (i.e. inside m2e) */
+/**
+ * Validates the whole package with all registered validators.
+ * @see <a href="https://jackrabbit.apache.org/filevault-package-maven-plugin/validators.html">Validators</a>
+ */
@Mojo(
name = "validate-package", defaultPhase = LifecyclePhase.PACKAGE, requiresDependencyResolution = ResolutionScope.COMPILE, requiresProject = false, threadSafe = true)
public class ValidatePackageMojo extends AbstractValidateMojo {
@@ -79,7 +82,7 @@ public class ValidatePackageMojo extends
try (Archive archive = new ZipArchive(file)) {
archive.open(true);
context = new ArchiveValidationContextImpl(archive, file.toPath(), resolver, getLog());
- executor = validationExecutorFactory.createValidationExecutor(context, false, enforceRecursiveSubpackageValidation, validatorsSettings);
+ executor = validationExecutorFactory.createValidationExecutor(context, false, enforceRecursiveSubpackageValidation, getValidatorSettingsForPackage(context.getProperties().getId(), false));
if (executor != null) {
validationHelper.printUsedValidators(getLog(), executor, context, true);
validateArchive(archive, file.toPath(), context, executor);
@@ -128,7 +131,7 @@ public class ValidatePackageMojo extends
subArchive.open(true);
SubPackageValidationContext subPackageValidationContext = new SubPackageValidationContext(context, subArchive, subPackagePath, resolver, getLog());
ValidationExecutor subPackageValidationExecutor = validationExecutorFactory
- .createValidationExecutor(subPackageValidationContext, true, enforceRecursiveSubpackageValidation, validatorsSettings);
+ .createValidationExecutor(subPackageValidationContext, true, enforceRecursiveSubpackageValidation, getValidatorSettingsForPackage(subPackageValidationContext.getProperties().getId(), true));
if (subPackageValidationExecutor != null) {
validationHelper.printUsedValidators(getLog(), executor, subPackageValidationContext, false);
validateArchive(subArchive, subPackagePath, subPackageValidationContext, subPackageValidationExecutor);
Modified: jackrabbit/commons/filevault-package-maven-plugin/trunk/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/ValidatorSettings.java
URL: http://svn.apache.org/viewvc/jackrabbit/commons/filevault-package-maven-plugin/trunk/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/ValidatorSettings.java?rev=1873203&r1=1873202&r2=1873203&view=diff
==============================================================================
--- jackrabbit/commons/filevault-package-maven-plugin/trunk/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/ValidatorSettings.java (original)
+++ jackrabbit/commons/filevault-package-maven-plugin/trunk/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/ValidatorSettings.java Mon Jan 27 11:10:05 2020
@@ -39,14 +39,16 @@ public class ValidatorSettings implement
this.defaultSeverity = defaultSeverity;
}
- public void setDefaultSeverity(String defaultSeverity) {
+ public ValidatorSettings setDefaultSeverity(String defaultSeverity) {
if (defaultSeverity != null) {
this.defaultSeverity = ValidationMessageSeverity.valueOf(defaultSeverity.toUpperCase());
}
+ return this;
}
- protected String addOption(String key, String value) {
- return options.put(key, value);
+ protected ValidatorSettings addOption(String key, String value) {
+ options.put(key, value);
+ return this;
}
@Override
@@ -64,4 +66,42 @@ public class ValidatorSettings implement
return isDisabled;
}
+ @Override
+ public String toString() {
+ return "ValidatorSettings [isDisabled=" + isDisabled + ", "
+ + (defaultSeverity != null ? "defaultSeverity=" + defaultSeverity + ", " : "")
+ + (options != null ? "options=" + options : "") + "]";
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((defaultSeverity == null) ? 0 : defaultSeverity.hashCode());
+ result = prime * result + (isDisabled ? 1231 : 1237);
+ result = prime * result + ((options == null) ? 0 : options.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ ValidatorSettings other = (ValidatorSettings) obj;
+ if (defaultSeverity != other.defaultSeverity)
+ return false;
+ if (isDisabled != other.isDisabled)
+ return false;
+ if (options == null) {
+ if (other.options != null)
+ return false;
+ } else if (!options.equals(other.options))
+ return false;
+ return true;
+ }
+
}
Modified: jackrabbit/commons/filevault-package-maven-plugin/trunk/src/site/markdown/howto_release.md
URL: http://svn.apache.org/viewvc/jackrabbit/commons/filevault-package-maven-plugin/trunk/src/site/markdown/howto_release.md?rev=1873203&r1=1873202&r2=1873203&view=diff
==============================================================================
--- jackrabbit/commons/filevault-package-maven-plugin/trunk/src/site/markdown/howto_release.md (original)
+++ jackrabbit/commons/filevault-package-maven-plugin/trunk/src/site/markdown/howto_release.md Mon Jan 27 11:10:05 2020
@@ -285,8 +285,6 @@ Jackrabbit project logo are trademarks o
```
-
-<!-- references -->
[0]: http://www.apache.org/dev/release-signing.html#generate
[1]: http://www.apache.org/dev/release-signing.html#apache-wot
[2]: https://repository.apache.org/index.html#stagingRepositories
Modified: jackrabbit/commons/filevault-package-maven-plugin/trunk/src/site/markdown/validators.md
URL: http://svn.apache.org/viewvc/jackrabbit/commons/filevault-package-maven-plugin/trunk/src/site/markdown/validators.md?rev=1873203&r1=1873202&r2=1873203&view=diff
==============================================================================
--- jackrabbit/commons/filevault-package-maven-plugin/trunk/src/site/markdown/validators.md (original)
+++ jackrabbit/commons/filevault-package-maven-plugin/trunk/src/site/markdown/validators.md Mon Jan 27 11:10:05 2020
@@ -26,7 +26,7 @@ Look there on which validators are conta
Configuration
--------
-It is possible to adjust every validator registered in the system (both default and external validators) with the parameter `validatorsSettings`. This is a map with the keys being the validator ids and the values being complex objects.
+It is possible to adjust every validator registered in the system (both default and external validators) with the parameter `validatorsSettings`. This is a map with the keys being the validator ids (and optionally suffixed by `:<package group>:<package name>` to restrict to only certain package ids) and the values being complex objects.
Here is an example configuration
```
@@ -39,6 +39,10 @@ Here is an example configuration
<severityForUncoveredAncestorNodes>error</severityForUncoveredAncestorNodes>
</options>
</jackrabbit-filter>
+ <!-- later items potentially overwrite earlier items -->
+ <jackrabbit-filter:mygroup:mypackage>
+ <isDisabled>true</isDisabled><!-- disable the validator for a specific package -->
+ </jackrabbit-filter>
</validatorsSettings>
</configuration>
```
Modified: jackrabbit/commons/filevault-package-maven-plugin/trunk/src/test/java/org/apache/jackrabbit/filevault/maven/packaging/AbstractValidateMojoTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/commons/filevault-package-maven-plugin/trunk/src/test/java/org/apache/jackrabbit/filevault/maven/packaging/AbstractValidateMojoTest.java?rev=1873203&r1=1873202&r2=1873203&view=diff
==============================================================================
--- jackrabbit/commons/filevault-package-maven-plugin/trunk/src/test/java/org/apache/jackrabbit/filevault/maven/packaging/AbstractValidateMojoTest.java (original)
+++ jackrabbit/commons/filevault-package-maven-plugin/trunk/src/test/java/org/apache/jackrabbit/filevault/maven/packaging/AbstractValidateMojoTest.java Mon Jan 27 11:10:05 2020
@@ -17,10 +17,14 @@
package org.apache.jackrabbit.filevault.maven.packaging;
import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Map;
import org.apache.jackrabbit.vault.packaging.Dependency;
+import org.apache.jackrabbit.vault.packaging.PackageId;
import org.apache.maven.artifact.DefaultArtifact;
import org.apache.maven.artifact.InvalidArtifactRTException;
+import org.apache.maven.plugin.logging.SystemStreamLog;
import org.hamcrest.Matchers;
import org.junit.Assert;
import org.junit.Test;
@@ -34,18 +38,41 @@ public class AbstractValidateMojoTest {
Matchers.hasEntry(Dependency.fromString("group1:name1"), new DefaultArtifact("groupId1", "artifactId1", "", "", "", "", null)),
Matchers.hasEntry(Dependency.fromString("group2:name2"), new DefaultArtifact("groupId2", "artifactId2", "", "", "", "", null)),
Matchers.aMapWithSize(2)));
-
}
@Test(expected = IllegalArgumentException.class)
public void testInvalidMap1() {
AbstractValidateMojo.resolveMap(Arrays.asList("group1:=artifactId1"));
-
}
@Test(expected = InvalidArtifactRTException.class)
public void testInvalidMap2() {
AbstractValidateMojo.resolveMap(Arrays.asList("group1:=:groupId"));
-
+ }
+
+ @Test
+ public void testGetValidatorSettingsForPackage() {
+ Map<String, ValidatorSettings> validatorsSettings = new HashMap<>();
+ validatorsSettings.put("id1", new ValidatorSettings().addOption("id1", "foo"));
+ validatorsSettings.put("id2:mygroup:myname", new ValidatorSettings().addOption("id2", "foo"));
+ validatorsSettings.put("id3:subpackage", new ValidatorSettings().addOption("id3", "foo"));
+ validatorsSettings.put("id4:invalid", new ValidatorSettings().addOption("id4", "foo"));
+ validatorsSettings.put("id5:othergroup:myname", new ValidatorSettings().addOption("id5", "foo"));
+ validatorsSettings.put("id6:mygroup:myothername", new ValidatorSettings().addOption("id3", "foo"));
+ validatorsSettings.put("id7:", new ValidatorSettings().addOption("id7", "foo"));
+
+ Map<String, ValidatorSettings> actualValidatorSettings = AbstractValidateMojo.getValidatorSettingsForPackage(new SystemStreamLog(), validatorsSettings, PackageId.fromString("mygroup:myname:1.0.0"), false);
+ Map<String, ValidatorSettings> expectedValidatorSettings = new HashMap<>();
+ expectedValidatorSettings.put("id1", new ValidatorSettings().addOption("id1", "foo"));
+ expectedValidatorSettings.put("id2", new ValidatorSettings().addOption("id2", "foo"));
+ Assert.assertThat(actualValidatorSettings, Matchers.equalTo(expectedValidatorSettings));
+
+ actualValidatorSettings = AbstractValidateMojo.getValidatorSettingsForPackage(new SystemStreamLog(), validatorsSettings, PackageId.fromString("mygroup:myname:1.0.0"), true);
+ expectedValidatorSettings.put("id3", new ValidatorSettings().addOption("id3", "foo"));
+ Assert.assertThat(actualValidatorSettings, Matchers.equalTo(expectedValidatorSettings));
+
+ actualValidatorSettings = AbstractValidateMojo.getValidatorSettingsForPackage(new SystemStreamLog(), null, PackageId.fromString("mygroup:myname:1.0.0"), true);
+ expectedValidatorSettings.clear();
+ Assert.assertThat(actualValidatorSettings, Matchers.equalTo(expectedValidatorSettings));
}
}