mirror of https://github.com/apache/maven.git
PR: MNG-1509
Submitted By: Bernd Bohmann Reviewed By: John Casey Applied patches. These patches added the OS activator to the component descriptor, fixed the activation implementation for it, and finally added a unit test for OS activation. git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@355387 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
2e89dadbce
commit
4e955c058a
|
@ -35,17 +35,28 @@ public class OperatingSystemProfileActivator
|
|||
{
|
||||
Activation activation = profile.getActivation();
|
||||
ActivationOS os = activation.getOs();
|
||||
|
||||
boolean hasNonNull = ensureAtLeastOneNonNull( os );
|
||||
|
||||
boolean isFamily = determineFamilyMatch( os.getFamily() );
|
||||
boolean isName = determineNameMatch( os.getName() );
|
||||
boolean isArch = determineArchMatch( os.getArch() );
|
||||
boolean isVersion = determineVersionMatch( os.getVersion() );
|
||||
|
||||
return hasNonNull && isFamily && isName && isArch && isVersion;
|
||||
|
||||
boolean result = ensureAtLeastOneNonNull( os );
|
||||
|
||||
if ( result && os.getFamily() != null )
|
||||
{
|
||||
result = determineFamilyMatch( os.getFamily() );
|
||||
}
|
||||
if ( result && os.getName() != null )
|
||||
{
|
||||
result = determineNameMatch( os.getName() );
|
||||
}
|
||||
if ( result && os.getArch() != null )
|
||||
{
|
||||
result = determineArchMatch( os.getArch() );
|
||||
}
|
||||
if ( result && os.getVersion() != null )
|
||||
{
|
||||
result = determineVersionMatch( os.getVersion() );
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
private boolean ensureAtLeastOneNonNull( ActivationOS os )
|
||||
{
|
||||
return os.getArch() != null || os.getFamily() != null || os.getName() != null || os.getVersion() != null;
|
||||
|
@ -107,9 +118,9 @@ public class OperatingSystemProfileActivator
|
|||
reverse = true;
|
||||
test = test.substring( 1 );
|
||||
}
|
||||
|
||||
|
||||
boolean result = Os.isName( test );
|
||||
|
||||
|
||||
if ( reverse )
|
||||
{
|
||||
return !result;
|
||||
|
|
|
@ -115,6 +115,16 @@
|
|||
<role-hint>system-property</role-hint>
|
||||
<implementation>org.apache.maven.profiles.activation.SystemPropertyProfileActivator</implementation>
|
||||
</component>
|
||||
<!--
|
||||
|
|
||||
|
|
||||
|
|
||||
-->
|
||||
<component>
|
||||
<role>org.apache.maven.profiles.activation.ProfileActivator</role>
|
||||
<role-hint>os</role-hint>
|
||||
<implementation>org.apache.maven.profiles.activation.OperatingSystemProfileActivator</implementation>
|
||||
</component>
|
||||
<!--
|
||||
|
|
||||
|
|
||||
|
|
|
@ -3,6 +3,7 @@ package org.apache.maven.profiles;
|
|||
import org.apache.maven.model.Activation;
|
||||
import org.apache.maven.model.ActivationProperty;
|
||||
import org.apache.maven.model.Profile;
|
||||
import org.apache.maven.model.ActivationOS;
|
||||
import org.apache.maven.profiles.activation.ProfileActivationException;
|
||||
import org.codehaus.plexus.PlexusTestCase;
|
||||
|
||||
|
@ -156,4 +157,29 @@ public class DefaultProfileManagerTest
|
|||
assertEquals( 0, active.size() );
|
||||
}
|
||||
|
||||
public void testOsActivationProfile() throws ProfileActivationException
|
||||
{
|
||||
Profile osActivated = new Profile();
|
||||
osActivated.setId("os-profile");
|
||||
|
||||
Activation osActivation = new Activation();
|
||||
|
||||
ActivationOS activationOS = new ActivationOS();
|
||||
|
||||
activationOS.setName("!dddd");
|
||||
|
||||
osActivation.setOs(activationOS);
|
||||
|
||||
osActivated.setActivation(osActivation);
|
||||
|
||||
ProfileManager profileManager = new DefaultProfileManager(getContainer());
|
||||
|
||||
profileManager.addProfile(osActivated);
|
||||
|
||||
List active = profileManager.getActiveProfiles();
|
||||
|
||||
assertNotNull( active );
|
||||
assertEquals( 1, active.size() );
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue