You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Hervé Boutemy (JIRA)" <ji...@apache.org> on 2015/08/13 09:53:45 UTC

[jira] [Updated] (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:all-tabpanel ]

Hervé Boutemy updated MNG-5440:
-------------------------------
    Description: 
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.


  was:
If you use default-value on collection or array mojo parameters like

{code}
    /**
     * @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

[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>

will not be aplied correctly:

[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]


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.



> 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
>             Fix For: Issues to be reviewed for 4.x
>
>         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)