[ http://jira.codehaus.org/browse/MNG-4516?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=205373#action_205373 ]
Barnabas Bodnar commented on MNG-4516: -------------------------------------- Apparently it was consciously decided for an "OR"-logic in the version 2.0.x (MNG-3106), although the documentation of that version too spoke about an "AND"-logic. Which were the arguments for it? > Contradiction between the documentation and Maven's behavior related to > profile-activation with multiple criteria > ----------------------------------------------------------------------------------------------------------------- > > Key: MNG-4516 > URL: http://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 > 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 contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira