[
http://jira.codehaus.org/browse/MNG-3106?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_112045
]
Andy Bryant commented on MNG-3106:
----------------------------------
Something like the following should do the trick. This modifies the
DefaultProfileManager isActive method so that:
- if no activator matches return false (current behaviour)
- if any activators match, they ALL must consider the profile to be active
Index: DefaultProfileManager.java
===================================================================
--- DefaultProfileManager.java (revision 590008)
+++ DefaultProfileManager.java (working copy)
@@ -254,17 +254,27 @@
{
activators = container.lookupList( ProfileActivator.ROLE );
+ boolean matchedActivator = false;
+ boolean activate = true;
+
for ( Iterator activatorIterator = activators.iterator();
activatorIterator.hasNext(); )
{
ProfileActivator activator = (ProfileActivator)
activatorIterator.next();
if ( activator.canDetermineActivation( profile ) )
{
- return activator.isActive( profile );
+ matchedActivator = true;
+ activate &= activator.isActive( profile );
}
}
-
- return false;
+ if (!matchedActivator)
+ {
+ return false;
+ }
+ else
+ {
+ return activate;
+ }
}
catch ( ComponentLookupException e )
{
> Multiple profile activation conditions broken
> ---------------------------------------------
>
> Key: MNG-3106
> URL: http://jira.codehaus.org/browse/MNG-3106
> Project: Maven 2
> Issue Type: Bug
> Components: Profiles
> Affects Versions: 2.0.4
> Reporter: Andy Bryant
> Fix For: 2.0.x
>
>
> Having multiple profile activation conditions behaves in an unexpected
> manner. It doesn't cause a build failure, but the actual algorithm for
> activating a profile is very different from expected. My expectation was that
> if you include multiple conditions, they are ANDed together. However what
> appears to happen is that the conditions overwrite each other.
> If an <os> condition is added, it overrides any <property> or <file>
> conditions regardless of their results.
> If a <file> condition is added, it overrides any <property> condition
> regardless of results
> The following table gives a sample of conditions matched, and whether the
> profile was activated as a result:
> Property File OS Result Expected
> T T - T T
> T F - F F
> F T - T F
> F F - F F
> T - T T T
> T - F F F
> F - T T F
> F - F F F
> F F T T F
> T T F F F
--
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