You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Hudson (JIRA)" <ji...@apache.org> on 2017/01/28 01:07:25 UTC

[jira] [Commented] (MNG-5440) default-value on mojo parameter of type collection or array effectively make parameter read-only

    [ https://issues.apache.org/jira/browse/MNG-5440?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15843739#comment-15843739 ] 

Hudson commented on MNG-5440:
-----------------------------

SUCCESS: Integrated in Jenkins build maven-plugins #8700 (See [https://builds.apache.org/job/maven-plugins/8700/])
[MCHECKSTYLE-260] sourceDirectories property is ignored in multi-modules

Because of a bug in Sisu, plugin parameters of type Collection or array are always using their default value if it is specified (MNG-5440). This was fixed in 3.3.9, but to be able to have compatibility for all Maven 3.x versions, we have to handle the default value manually, instead of relying on @Parameter's defaultValue mechanism.

Updating the MavenProject stub tests so that they return meaningful values for compileSourceRoot and testCompileSourceRoot (thus getting rid of the specific code inside the actual Mojo checking for null when that cannot happen on a real project). (gboue: [http://svn.apache.org/viewvc/?view=rev&rev=1780622])
* (add) maven-checkstyle-plugin/src/it/MCHECKSTYLE-260-sourceDirectories
* (add) maven-checkstyle-plugin/src/it/MCHECKSTYLE-260-sourceDirectories/child-a
* (add) maven-checkstyle-plugin/src/it/MCHECKSTYLE-260-sourceDirectories/child-a/pom.xml
* (add) maven-checkstyle-plugin/src/it/MCHECKSTYLE-260-sourceDirectories/child-a/src
* (add) maven-checkstyle-plugin/src/it/MCHECKSTYLE-260-sourceDirectories/child-a/src/generated
* (add) maven-checkstyle-plugin/src/it/MCHECKSTYLE-260-sourceDirectories/child-a/src/generated/java
* (add) maven-checkstyle-plugin/src/it/MCHECKSTYLE-260-sourceDirectories/child-a/src/generated/java/org
* (add) maven-checkstyle-plugin/src/it/MCHECKSTYLE-260-sourceDirectories/child-a/src/generated/java/org/MyClass.java
* (add) maven-checkstyle-plugin/src/it/MCHECKSTYLE-260-sourceDirectories/child-b
* (add) maven-checkstyle-plugin/src/it/MCHECKSTYLE-260-sourceDirectories/child-b/pom.xml
* (add) maven-checkstyle-plugin/src/it/MCHECKSTYLE-260-sourceDirectories/child-b/src
* (add) maven-checkstyle-plugin/src/it/MCHECKSTYLE-260-sourceDirectories/child-b/src/generated
* (add) maven-checkstyle-plugin/src/it/MCHECKSTYLE-260-sourceDirectories/child-b/src/generated/java
* (add) maven-checkstyle-plugin/src/it/MCHECKSTYLE-260-sourceDirectories/child-b/src/generated/java/org
* (add) maven-checkstyle-plugin/src/it/MCHECKSTYLE-260-sourceDirectories/child-b/src/generated/java/org/MyClass.java
* (add) maven-checkstyle-plugin/src/it/MCHECKSTYLE-260-sourceDirectories/invoker.properties
* (add) maven-checkstyle-plugin/src/it/MCHECKSTYLE-260-sourceDirectories/pom.xml
* (add) maven-checkstyle-plugin/src/it/MCHECKSTYLE-260-sourceDirectories/verify.groovy
* (add) maven-checkstyle-plugin/src/it/MCHECKSTYLE-260-testSourceDirectories
* (add) maven-checkstyle-plugin/src/it/MCHECKSTYLE-260-testSourceDirectories/child-a
* (add) maven-checkstyle-plugin/src/it/MCHECKSTYLE-260-testSourceDirectories/child-a/pom.xml
* (add) maven-checkstyle-plugin/src/it/MCHECKSTYLE-260-testSourceDirectories/child-a/src
* (add) maven-checkstyle-plugin/src/it/MCHECKSTYLE-260-testSourceDirectories/child-a/src/generated
* (add) maven-checkstyle-plugin/src/it/MCHECKSTYLE-260-testSourceDirectories/child-a/src/generated/java
* (add) maven-checkstyle-plugin/src/it/MCHECKSTYLE-260-testSourceDirectories/child-a/src/generated/java/org
* (add) maven-checkstyle-plugin/src/it/MCHECKSTYLE-260-testSourceDirectories/child-a/src/generated/java/org/MyClass.java
* (add) maven-checkstyle-plugin/src/it/MCHECKSTYLE-260-testSourceDirectories/child-b
* (add) maven-checkstyle-plugin/src/it/MCHECKSTYLE-260-testSourceDirectories/child-b/pom.xml
* (add) maven-checkstyle-plugin/src/it/MCHECKSTYLE-260-testSourceDirectories/child-b/src
* (add) maven-checkstyle-plugin/src/it/MCHECKSTYLE-260-testSourceDirectories/child-b/src/generated
* (add) maven-checkstyle-plugin/src/it/MCHECKSTYLE-260-testSourceDirectories/child-b/src/generated/java
* (add) maven-checkstyle-plugin/src/it/MCHECKSTYLE-260-testSourceDirectories/child-b/src/generated/java/org
* (add) maven-checkstyle-plugin/src/it/MCHECKSTYLE-260-testSourceDirectories/child-b/src/generated/java/org/MyClass.java
* (add) maven-checkstyle-plugin/src/it/MCHECKSTYLE-260-testSourceDirectories/invoker.properties
* (add) maven-checkstyle-plugin/src/it/MCHECKSTYLE-260-testSourceDirectories/pom.xml
* (add) maven-checkstyle-plugin/src/it/MCHECKSTYLE-260-testSourceDirectories/verify.groovy
* (edit) maven-checkstyle-plugin/src/main/java/org/apache/maven/plugins/checkstyle/AbstractCheckstyleReport.java
* (edit) maven-checkstyle-plugin/src/main/java/org/apache/maven/plugins/checkstyle/CheckstyleViolationCheckMojo.java
* (edit) maven-checkstyle-plugin/src/test/java/org/apache/maven/plugins/checkstyle/stubs/MinMavenProjectStub.java
* (edit) maven-checkstyle-plugin/src/test/java/org/apache/maven/plugins/checkstyle/stubs/ModuleMavenProjectStub.java
* (edit) maven-checkstyle-plugin/src/test/java/org/apache/maven/plugins/checkstyle/stubs/MultiMavenProjectStub.java


> default-value on mojo parameter of type collection or array effectively make parameter read-only
> ------------------------------------------------------------------------------------------------
>
>                 Key: MNG-5440
>                 URL: https://issues.apache.org/jira/browse/MNG-5440
>             Project: Maven
>          Issue Type: Bug
>            Reporter: Jan Sievers
>            Assignee: Robert Scholte
>             Fix For: 3.3.9
>
>         Attachments: mojoParamsBug.zip
>
>
> If you use default-value on collection or array mojo parameters like
> {code:java}
>     /**
>      * @parameter default-value="foo,bar"
>      */
>     private List<String> param1;
> {code}
> the default value will always win over pom.xml configuration.
> See demo project attached.
> Steps to reproduce:
> 1. {{mvn install}} on the demo project
> 2. {{mvn compile -f test-pom.xml -X -e}} on the demo project
> you can see in the debug log that mojo configuration
> {noformat}[DEBUG] Configuration: <?xml version="1.0" encoding="UTF-8"?>
> <configuration>
>   <param1 default-value="foo,bar">
>     <param1>non-default value1 param1</param1>
>     <param1>non-default value2 param1</param1>
>   </param1>
>   <param2 default-value="baz">
>     <param2>non-default value1 param2</param2>
>     <param2>non-default value2 param2</param2>
>   </param2>
> </configuration>{noformat}
> will not be aplied correctly:
> {noformat}[DEBUG] Configuring mojo 'mojoParamsBug:mojoParamsBug:0.0.1-SNAPSHOT:demo' with basic configurator -->
> [DEBUG]   (f) param1 = [foo, bar]
> [DEBUG]   (f) param2 = [baz]
> [DEBUG] -- end configuration --
> [INFO] param1: [foo, bar]
> [INFO] param2: [baz]{noformat}
> If default values for srrays/collection are not supported, this should fail the build in step 1. above.
> If they are supported, the configurator should be fixed to actually allow configuring non-default values.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)