You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Benjamin Haag (JIRA)" <ji...@codehaus.org> on 2012/01/19 11:33:03 UTC

[jira] (MNG-4516) Contradiction between the documentation and Maven's behavior related to profile-activation with multiple criteria

    [ https://jira.codehaus.org/browse/MNG-4516?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=288807#comment-288807 ] 

Benjamin Haag commented on MNG-4516:
------------------------------------

If this Issue was Issues to be reviewed for 3.x, as it says, what were the results?
Activation via settings.xml is useless without an OR condition. 

And as long as there is an activation used in the settings.xml, it is impossible to choose the correct profile via -P profile on the commandline ... 

Is nobody willing to fix that problem in the official version? 
                
> Contradiction between the documentation and Maven's behavior related to profile-activation with multiple criteria
> -----------------------------------------------------------------------------------------------------------------
>
>                 Key: MNG-4516
>                 URL: https://jira.codehaus.org/browse/MNG-4516
>             Project: Maven 2 & 3
>          Issue Type: Bug
>          Components: Profiles
>    Affects Versions: 2.2.1
>            Reporter: Barnabas Bodnar
>            Priority: Critical
>             Fix For: Issues to be reviewed for 3.x
>
>         Attachments: debug_output.txt, example2.zip, output.txt, pom.xml
>
>
> The chapter 5.3.1 of the Maven Complete Reference (edition 0.2.1, Novemeber 2009) speaks unambiguously about considering a logical "AND" between more activation-conditions of a profile (cit.: "A profile is activated when all activation criteria has been satisfied. For example, a profile could list an Operating System family of Windows, and a JDK version of 1.4, this profile will only be activated when the build is executed on a Windows machine running Java 1.4."). 
> Suprisingly, Maven's real behavior suggests, that the logical "OR" operator is used. The attached demo project contains a profile with two activation-criteria: a property and the existence of a file. As the output shows (attachement output.txt), the fulfillment of a single criterion is enough for activating the profile. Also the corresponding implementation in the Maven core expresses the intention to use an "OR" logic (maven-project/src/main/java/org/apache/maven/profiles/DefaultProfileManager.java r813685 (branch 2.2.x), line 268):
> for ( Iterator activatorIterator = activators.iterator(); activatorIterator.hasNext(); )
> {
>     ProfileActivator activator = (ProfileActivator) activatorIterator.next();
>     if ( activator.canDetermineActivation( profile ) )
>     {
>         if ( activator.isActive( profile ) )
>         {
>             return true;
>         }
>     }
> }
> return false;
> As I'm considering the documentation's variant more reasonable, I'm reporting this as a bug instead of a documentation-issue.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://jira.codehaus.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira