mirror of https://github.com/apache/maven.git
Profile tests. Fixes for negation activation.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@749717 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
e417b541e0
commit
c151f2925f
|
@ -10,20 +10,35 @@ import java.util.List;
|
|||
public class JdkMatcher implements ActiveProfileMatcher {
|
||||
//TODO: Ranges
|
||||
public boolean isMatch(ModelContainer modelContainer, List<InterpolatorProperty> properties) {
|
||||
if(modelContainer == null ) {
|
||||
if(modelContainer == null )
|
||||
{
|
||||
throw new IllegalArgumentException("modelContainer: null");
|
||||
}
|
||||
|
||||
if(properties == null) {
|
||||
if(properties == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
for(InterpolatorProperty property : properties) {
|
||||
if(property.getKey().equals("${java.specification.version}")) {
|
||||
for(InterpolatorProperty property : properties)
|
||||
{
|
||||
if(property.getKey().equals("${java.specification.version}"))
|
||||
{
|
||||
String version = property.getValue();
|
||||
for(ModelProperty modelProperty : modelContainer.getProperties()) {
|
||||
if(modelProperty.getUri().equals(ProjectUri.Profiles.Profile.Activation.jdk)) {
|
||||
return version.equals(modelProperty.getValue());
|
||||
for(ModelProperty modelProperty : modelContainer.getProperties())
|
||||
{
|
||||
|
||||
if(modelProperty.getUri().equals(ProjectUri.Profiles.Profile.Activation.jdk))
|
||||
{
|
||||
if(modelProperty.getValue().startsWith("!"))
|
||||
{
|
||||
return !version.equals(modelProperty.getValue().replaceFirst("!", ""));
|
||||
}
|
||||
else
|
||||
{
|
||||
return version.equals(modelProperty.getValue());
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
return false;
|
||||
|
|
|
@ -35,6 +35,39 @@ public class JdkMatcherTest {
|
|||
assertTrue(matcher.isMatch(modelContainer, props));
|
||||
}
|
||||
|
||||
@org.junit.Test
|
||||
public void jdkVersionDoesNotMatchWithNotSymbol() {
|
||||
List<ModelProperty> modelProperties = new ArrayList<ModelProperty>();
|
||||
modelProperties.add(new ModelProperty(ProjectUri.Profiles.Profile.xUri, null));
|
||||
modelProperties.add(new ModelProperty(ProjectUri.Profiles.Profile.Activation.xUri , null));
|
||||
modelProperties.add(new ModelProperty(ProjectUri.Profiles.Profile.Activation.jdk , "!1.5"));
|
||||
|
||||
ModelContainer modelContainer = new DefaultModelContainer(modelProperties);
|
||||
|
||||
List<InterpolatorProperty> props = new ArrayList<InterpolatorProperty>();
|
||||
props.add(new InterpolatorProperty("${java.specification.version}" , "1.5"));
|
||||
|
||||
JdkMatcher matcher = new JdkMatcher();
|
||||
assertTrue(!matcher.isMatch(modelContainer, props));
|
||||
}
|
||||
|
||||
@org.junit.Test
|
||||
public void jdkVersionDoesMatchWithNotSymbol() {
|
||||
List<ModelProperty> modelProperties = new ArrayList<ModelProperty>();
|
||||
modelProperties.add(new ModelProperty(ProjectUri.Profiles.Profile.xUri, null));
|
||||
modelProperties.add(new ModelProperty(ProjectUri.Profiles.Profile.Activation.xUri , null));
|
||||
modelProperties.add(new ModelProperty(ProjectUri.Profiles.Profile.Activation.jdk , "!1.5"));
|
||||
|
||||
ModelContainer modelContainer = new DefaultModelContainer(modelProperties);
|
||||
|
||||
List<InterpolatorProperty> props = new ArrayList<InterpolatorProperty>();
|
||||
props.add(new InterpolatorProperty("${java.specification.version}" , "1.6"));
|
||||
|
||||
JdkMatcher matcher = new JdkMatcher();
|
||||
assertTrue(matcher.isMatch(modelContainer, props));
|
||||
}
|
||||
|
||||
|
||||
@org.junit.Test
|
||||
public void jdkVersionNotMatches() {
|
||||
List<ModelProperty> modelProperties = new ArrayList<ModelProperty>();
|
||||
|
|
|
@ -78,6 +78,19 @@ public class PomConstructionTest
|
|||
}
|
||||
*/
|
||||
|
||||
/**
|
||||
* Tests that modules is not overriden by profile
|
||||
*
|
||||
* @throws Exception
|
||||
*/
|
||||
public void testProfileModules()
|
||||
throws Exception
|
||||
{
|
||||
PomTestWrapper pom = buildPomFromMavenProject( "profile-module", "a" );
|
||||
assertEquals( "test-prop", pom.getValue( "properties[1]/b" ) );//verifies profile applied
|
||||
assertEquals( "test-module", pom.getValue( "modules[1]" ) );
|
||||
}
|
||||
|
||||
/**
|
||||
* Will throw exception if doesn't find parent(s) in build
|
||||
*
|
||||
|
|
|
@ -0,0 +1,18 @@
|
|||
<project>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>gid</groupId>
|
||||
<artifactId>aid</artifactId>
|
||||
<version>1.0</version>
|
||||
<packaging>pom</packaging>
|
||||
<modules>
|
||||
<module>test-module</module>
|
||||
</modules>
|
||||
<profiles>
|
||||
<profile>
|
||||
<id>a</id>
|
||||
<properties>
|
||||
<b>test-prop</b>
|
||||
</properties>
|
||||
</profile>
|
||||
</profiles>
|
||||
</project>
|
Loading…
Reference in New Issue