mirror of https://github.com/apache/maven.git
o Refactored profile activators to use problem collector
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@810452 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
102f4ab603
commit
326e14b853
|
@ -94,17 +94,9 @@ public class DefaultProfileSelector
|
||||||
{
|
{
|
||||||
for ( ProfileActivator activator : activators )
|
for ( ProfileActivator activator : activators )
|
||||||
{
|
{
|
||||||
try
|
if ( activator.isActive( profile, context, problems ) )
|
||||||
{
|
{
|
||||||
if ( activator.isActive( profile, context ) )
|
return true;
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch ( ProfileActivationException e )
|
|
||||||
{
|
|
||||||
problems.addError( "Invalid activation condition for profile " + profile.getId() + ": "
|
|
||||||
+ e.getMessage() );
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -1,73 +0,0 @@
|
||||||
package org.apache.maven.model.profile;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Licensed to the Apache Software Foundation (ASF) under one
|
|
||||||
* or more contributor license agreements. See the NOTICE file
|
|
||||||
* distributed with this work for additional information
|
|
||||||
* regarding copyright ownership. The ASF licenses this file
|
|
||||||
* to you under the Apache License, Version 2.0 (the
|
|
||||||
* "License"); you may not use this file except in compliance
|
|
||||||
* with the License. You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing,
|
|
||||||
* software distributed under the License is distributed on an
|
|
||||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
||||||
* KIND, either express or implied. See the License for the
|
|
||||||
* specific language governing permissions and limitations
|
|
||||||
* under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
import org.apache.maven.model.Profile;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Signals an error in determining the activation status of a profile (e.g. bad syntax of activation condition).
|
|
||||||
*
|
|
||||||
* @author Benjamin Bentmann
|
|
||||||
*/
|
|
||||||
public class ProfileActivationException
|
|
||||||
extends Exception
|
|
||||||
{
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The profile which raised this error, can be {@code null}.
|
|
||||||
*/
|
|
||||||
private final Profile profile;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Creates a new exception with specified detail message and cause for the given profile.
|
|
||||||
*
|
|
||||||
* @param message The detail message, may be {@code null}.
|
|
||||||
* @param profile The profile that caused the error, may be {@code null}.
|
|
||||||
* @param cause The cause, may be {@code null}.
|
|
||||||
*/
|
|
||||||
public ProfileActivationException( String message, Profile profile, Throwable cause )
|
|
||||||
{
|
|
||||||
super( message, cause );
|
|
||||||
this.profile = profile;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Creates a new exception with specified detail message for the given profile.
|
|
||||||
*
|
|
||||||
* @param message The detail message, may be {@code null}.
|
|
||||||
* @param profile The profile that caused the error, may be {@code null}.
|
|
||||||
*/
|
|
||||||
public ProfileActivationException( String message, Profile profile )
|
|
||||||
{
|
|
||||||
super( message );
|
|
||||||
this.profile = profile;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the profile that caused this error (if any).
|
|
||||||
*
|
|
||||||
* @return The profile that caused this error or {@code null} if not applicable.
|
|
||||||
*/
|
|
||||||
public Profile getProfile()
|
|
||||||
{
|
|
||||||
return profile;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -24,9 +24,9 @@ import java.io.File;
|
||||||
import org.apache.maven.model.Activation;
|
import org.apache.maven.model.Activation;
|
||||||
import org.apache.maven.model.ActivationFile;
|
import org.apache.maven.model.ActivationFile;
|
||||||
import org.apache.maven.model.Profile;
|
import org.apache.maven.model.Profile;
|
||||||
|
import org.apache.maven.model.building.ModelProblemCollector;
|
||||||
import org.apache.maven.model.path.PathTranslator;
|
import org.apache.maven.model.path.PathTranslator;
|
||||||
import org.apache.maven.model.profile.ProfileActivationContext;
|
import org.apache.maven.model.profile.ProfileActivationContext;
|
||||||
import org.apache.maven.model.profile.ProfileActivationException;
|
|
||||||
import org.codehaus.plexus.component.annotations.Component;
|
import org.codehaus.plexus.component.annotations.Component;
|
||||||
import org.codehaus.plexus.component.annotations.Requirement;
|
import org.codehaus.plexus.component.annotations.Requirement;
|
||||||
import org.codehaus.plexus.interpolation.AbstractValueSource;
|
import org.codehaus.plexus.interpolation.AbstractValueSource;
|
||||||
|
@ -47,8 +47,7 @@ public class FileProfileActivator
|
||||||
@Requirement
|
@Requirement
|
||||||
private PathTranslator pathTranslator;
|
private PathTranslator pathTranslator;
|
||||||
|
|
||||||
public boolean isActive( Profile profile, ProfileActivationContext context )
|
public boolean isActive( Profile profile, ProfileActivationContext context, ModelProblemCollector problems )
|
||||||
throws ProfileActivationException
|
|
||||||
{
|
{
|
||||||
Activation activation = profile.getActivation();
|
Activation activation = profile.getActivation();
|
||||||
|
|
||||||
|
@ -119,8 +118,9 @@ public class FileProfileActivator
|
||||||
}
|
}
|
||||||
catch ( Exception e )
|
catch ( Exception e )
|
||||||
{
|
{
|
||||||
throw new ProfileActivationException( "Failed to interpolate file location " + path + " for profile "
|
problems.addError( "Failed to interpolate file location " + path + " for profile " + profile.getId() + ": "
|
||||||
+ profile.getId() + ": " + e.getMessage(), profile, e );
|
+ e.getMessage(), e );
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
path = pathTranslator.alignToBaseDirectory( path, basedir );
|
path = pathTranslator.alignToBaseDirectory( path, basedir );
|
||||||
|
|
|
@ -25,8 +25,8 @@ import java.util.List;
|
||||||
|
|
||||||
import org.apache.maven.model.Activation;
|
import org.apache.maven.model.Activation;
|
||||||
import org.apache.maven.model.Profile;
|
import org.apache.maven.model.Profile;
|
||||||
|
import org.apache.maven.model.building.ModelProblemCollector;
|
||||||
import org.apache.maven.model.profile.ProfileActivationContext;
|
import org.apache.maven.model.profile.ProfileActivationContext;
|
||||||
import org.apache.maven.model.profile.ProfileActivationException;
|
|
||||||
import org.codehaus.plexus.component.annotations.Component;
|
import org.codehaus.plexus.component.annotations.Component;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -39,8 +39,7 @@ public class JdkVersionProfileActivator
|
||||||
implements ProfileActivator
|
implements ProfileActivator
|
||||||
{
|
{
|
||||||
|
|
||||||
public boolean isActive( Profile profile, ProfileActivationContext context )
|
public boolean isActive( Profile profile, ProfileActivationContext context, ModelProblemCollector problems )
|
||||||
throws ProfileActivationException
|
|
||||||
{
|
{
|
||||||
boolean active = false;
|
boolean active = false;
|
||||||
|
|
||||||
|
@ -56,8 +55,8 @@ public class JdkVersionProfileActivator
|
||||||
|
|
||||||
if ( version.length() <= 0 )
|
if ( version.length() <= 0 )
|
||||||
{
|
{
|
||||||
throw new ProfileActivationException( "Failed to determine Java version for profile "
|
problems.addError( "Failed to determine Java version for profile " + profile.getId() );
|
||||||
+ profile.getId(), profile );
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( jdk.startsWith( "!" ) )
|
if ( jdk.startsWith( "!" ) )
|
||||||
|
|
|
@ -22,8 +22,8 @@ package org.apache.maven.model.profile.activation;
|
||||||
import org.apache.maven.model.Activation;
|
import org.apache.maven.model.Activation;
|
||||||
import org.apache.maven.model.ActivationOS;
|
import org.apache.maven.model.ActivationOS;
|
||||||
import org.apache.maven.model.Profile;
|
import org.apache.maven.model.Profile;
|
||||||
|
import org.apache.maven.model.building.ModelProblemCollector;
|
||||||
import org.apache.maven.model.profile.ProfileActivationContext;
|
import org.apache.maven.model.profile.ProfileActivationContext;
|
||||||
import org.apache.maven.model.profile.ProfileActivationException;
|
|
||||||
import org.codehaus.plexus.component.annotations.Component;
|
import org.codehaus.plexus.component.annotations.Component;
|
||||||
import org.codehaus.plexus.util.Os;
|
import org.codehaus.plexus.util.Os;
|
||||||
|
|
||||||
|
@ -37,8 +37,7 @@ public class OperatingSystemProfileActivator
|
||||||
implements ProfileActivator
|
implements ProfileActivator
|
||||||
{
|
{
|
||||||
|
|
||||||
public boolean isActive( Profile profile, ProfileActivationContext context )
|
public boolean isActive( Profile profile, ProfileActivationContext context, ModelProblemCollector problems )
|
||||||
throws ProfileActivationException
|
|
||||||
{
|
{
|
||||||
boolean active = false;
|
boolean active = false;
|
||||||
|
|
||||||
|
|
|
@ -20,8 +20,8 @@ package org.apache.maven.model.profile.activation;
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import org.apache.maven.model.Profile;
|
import org.apache.maven.model.Profile;
|
||||||
|
import org.apache.maven.model.building.ModelProblemCollector;
|
||||||
import org.apache.maven.model.profile.ProfileActivationContext;
|
import org.apache.maven.model.profile.ProfileActivationContext;
|
||||||
import org.apache.maven.model.profile.ProfileActivationException;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Determines whether a profile should be activated.
|
* Determines whether a profile should be activated.
|
||||||
|
@ -37,11 +37,10 @@ public interface ProfileActivator
|
||||||
* @param profile The profile whose activation status should be determined, must not be {@code null}.
|
* @param profile The profile whose activation status should be determined, must not be {@code null}.
|
||||||
* @param context The environmental context used to determine the activation status of the profile, must not be
|
* @param context The environmental context used to determine the activation status of the profile, must not be
|
||||||
* {@code null}.
|
* {@code null}.
|
||||||
|
* @param problems The container used to collect problems (e.g. bad syntax) that were encountered, must not be
|
||||||
|
* {@code null}.
|
||||||
* @return {@code true} if the profile is active, {@code false} otherwise.
|
* @return {@code true} if the profile is active, {@code false} otherwise.
|
||||||
* @throws ProfileActivationException If the activation status of the profile could not be determined (e.g. due to
|
|
||||||
* missing values or bad syntax).
|
|
||||||
*/
|
*/
|
||||||
boolean isActive( Profile profile, ProfileActivationContext context )
|
boolean isActive( Profile profile, ProfileActivationContext context, ModelProblemCollector problems );
|
||||||
throws ProfileActivationException;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,8 +22,8 @@ package org.apache.maven.model.profile.activation;
|
||||||
import org.apache.maven.model.Activation;
|
import org.apache.maven.model.Activation;
|
||||||
import org.apache.maven.model.ActivationProperty;
|
import org.apache.maven.model.ActivationProperty;
|
||||||
import org.apache.maven.model.Profile;
|
import org.apache.maven.model.Profile;
|
||||||
|
import org.apache.maven.model.building.ModelProblemCollector;
|
||||||
import org.apache.maven.model.profile.ProfileActivationContext;
|
import org.apache.maven.model.profile.ProfileActivationContext;
|
||||||
import org.apache.maven.model.profile.ProfileActivationException;
|
|
||||||
import org.codehaus.plexus.component.annotations.Component;
|
import org.codehaus.plexus.component.annotations.Component;
|
||||||
import org.codehaus.plexus.util.StringUtils;
|
import org.codehaus.plexus.util.StringUtils;
|
||||||
|
|
||||||
|
@ -37,8 +37,7 @@ public class PropertyProfileActivator
|
||||||
implements ProfileActivator
|
implements ProfileActivator
|
||||||
{
|
{
|
||||||
|
|
||||||
public boolean isActive( Profile profile, ProfileActivationContext context )
|
public boolean isActive( Profile profile, ProfileActivationContext context, ModelProblemCollector problems )
|
||||||
throws ProfileActivationException
|
|
||||||
{
|
{
|
||||||
boolean active = false;
|
boolean active = false;
|
||||||
|
|
||||||
|
@ -53,18 +52,18 @@ public class PropertyProfileActivator
|
||||||
String name = property.getName();
|
String name = property.getName();
|
||||||
boolean reverseName = false;
|
boolean reverseName = false;
|
||||||
|
|
||||||
if ( name == null )
|
if ( name != null && name.startsWith( "!" ) )
|
||||||
{
|
|
||||||
throw new ProfileActivationException( "The property name is required to activate the profile "
|
|
||||||
+ profile.getId(), profile );
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( name.startsWith( "!" ) )
|
|
||||||
{
|
{
|
||||||
reverseName = true;
|
reverseName = true;
|
||||||
name = name.substring( 1 );
|
name = name.substring( 1 );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ( name == null || name.length() <= 0 )
|
||||||
|
{
|
||||||
|
problems.addError( "The property name is required to activate the profile " + profile.getId() );
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
String sysValue = context.getUserProperties().getProperty( name );
|
String sysValue = context.getUserProperties().getProperty( name );
|
||||||
if ( sysValue == null )
|
if ( sysValue == null )
|
||||||
{
|
{
|
||||||
|
|
|
@ -0,0 +1,68 @@
|
||||||
|
package org.apache.maven.model.building;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
* or more contributor license agreements. See the NOTICE file
|
||||||
|
* distributed with this work for additional information
|
||||||
|
* regarding copyright ownership. The ASF licenses this file
|
||||||
|
* to you under the Apache License, Version 2.0 (the
|
||||||
|
* "License"); you may not use this file except in compliance
|
||||||
|
* with the License. You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A simple model problem collector for testing the model building components.
|
||||||
|
*
|
||||||
|
* @author Benjamin Bentmann
|
||||||
|
*/
|
||||||
|
public class SimpleProblemCollector
|
||||||
|
implements ModelProblemCollector
|
||||||
|
{
|
||||||
|
|
||||||
|
private List<String> warnings = new ArrayList<String>();
|
||||||
|
|
||||||
|
private List<String> errors = new ArrayList<String>();
|
||||||
|
|
||||||
|
public void addError( String message )
|
||||||
|
{
|
||||||
|
errors.add( message );
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addError( String message, Exception cause )
|
||||||
|
{
|
||||||
|
addError( message );
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addWarning( String message )
|
||||||
|
{
|
||||||
|
warnings.add( message );
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addWarning( String message, Exception cause )
|
||||||
|
{
|
||||||
|
addWarning( message );
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<String> getWarnings()
|
||||||
|
{
|
||||||
|
return warnings;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<String> getErrors()
|
||||||
|
{
|
||||||
|
return errors;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -21,6 +21,8 @@ package org.apache.maven.model.profile.activation;
|
||||||
|
|
||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
|
|
||||||
|
import org.apache.maven.model.Profile;
|
||||||
|
import org.apache.maven.model.building.SimpleProblemCollector;
|
||||||
import org.apache.maven.model.profile.DefaultProfileActivationContext;
|
import org.apache.maven.model.profile.DefaultProfileActivationContext;
|
||||||
import org.apache.maven.model.profile.ProfileActivationContext;
|
import org.apache.maven.model.profile.ProfileActivationContext;
|
||||||
import org.codehaus.plexus.PlexusTestCase;
|
import org.codehaus.plexus.PlexusTestCase;
|
||||||
|
@ -77,4 +79,14 @@ public abstract class AbstractProfileActivatorTest<T extends ProfileActivator>
|
||||||
return context.setUserProperties( userProperties ).setSystemProperties( systemProperties );
|
return context.setUserProperties( userProperties ).setSystemProperties( systemProperties );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void assertActivation( boolean active, Profile profile, ProfileActivationContext context )
|
||||||
|
{
|
||||||
|
SimpleProblemCollector problems = new SimpleProblemCollector();
|
||||||
|
|
||||||
|
assertEquals( active, activator.isActive( profile, context, problems ) );
|
||||||
|
|
||||||
|
assertEquals( problems.getErrors().toString(), 0, problems.getErrors().size() );
|
||||||
|
assertEquals( problems.getWarnings().toString(), 0, problems.getWarnings().size() );
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -61,11 +61,11 @@ public class JdkVersionProfileActivatorTest
|
||||||
{
|
{
|
||||||
Profile p = new Profile();
|
Profile p = new Profile();
|
||||||
|
|
||||||
assertFalse( activator.isActive( p, newContext( null, null ) ) );
|
assertActivation( false, p, newContext( null, null ) );
|
||||||
|
|
||||||
p.setActivation( new Activation() );
|
p.setActivation( new Activation() );
|
||||||
|
|
||||||
assertFalse( activator.isActive( p, newContext( null, null ) ) );
|
assertActivation( false, p, newContext( null, null ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testPrefix()
|
public void testPrefix()
|
||||||
|
@ -73,13 +73,13 @@ public class JdkVersionProfileActivatorTest
|
||||||
{
|
{
|
||||||
Profile profile = newProfile( "1.4" );
|
Profile profile = newProfile( "1.4" );
|
||||||
|
|
||||||
assertTrue( activator.isActive( profile, newContext( null, newProperties( "1.4" ) ) ) );
|
assertActivation( true, profile, newContext( null, newProperties( "1.4" ) ) );
|
||||||
|
|
||||||
assertTrue( activator.isActive( profile, newContext( null, newProperties( "1.4.2" ) ) ) );
|
assertActivation( true, profile, newContext( null, newProperties( "1.4.2" ) ) );
|
||||||
|
|
||||||
assertFalse( activator.isActive( profile, newContext( null, newProperties( "1.3" ) ) ) );
|
assertActivation( false, profile, newContext( null, newProperties( "1.3" ) ) );
|
||||||
|
|
||||||
assertFalse( activator.isActive( profile, newContext( null, newProperties( "1.5" ) ) ) );
|
assertActivation( false, profile, newContext( null, newProperties( "1.5" ) ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testPrefixNegated()
|
public void testPrefixNegated()
|
||||||
|
@ -87,13 +87,13 @@ public class JdkVersionProfileActivatorTest
|
||||||
{
|
{
|
||||||
Profile profile = newProfile( "!1.4" );
|
Profile profile = newProfile( "!1.4" );
|
||||||
|
|
||||||
assertFalse( activator.isActive( profile, newContext( null, newProperties( "1.4" ) ) ) );
|
assertActivation( false, profile, newContext( null, newProperties( "1.4" ) ) );
|
||||||
|
|
||||||
assertFalse( activator.isActive( profile, newContext( null, newProperties( "1.4.2" ) ) ) );
|
assertActivation( false, profile, newContext( null, newProperties( "1.4.2" ) ) );
|
||||||
|
|
||||||
assertTrue( activator.isActive( profile, newContext( null, newProperties( "1.3" ) ) ) );
|
assertActivation( true, profile, newContext( null, newProperties( "1.3" ) ) );
|
||||||
|
|
||||||
assertTrue( activator.isActive( profile, newContext( null, newProperties( "1.5" ) ) ) );
|
assertActivation( true, profile, newContext( null, newProperties( "1.5" ) ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testVersionRange()
|
public void testVersionRange()
|
||||||
|
@ -101,13 +101,13 @@ public class JdkVersionProfileActivatorTest
|
||||||
{
|
{
|
||||||
Profile profile = newProfile( "(1.3,1.6)" );
|
Profile profile = newProfile( "(1.3,1.6)" );
|
||||||
|
|
||||||
assertTrue( activator.isActive( profile, newContext( null, newProperties( "1.5.0_16" ) ) ) );
|
assertActivation( true, profile, newContext( null, newProperties( "1.5.0_16" ) ) );
|
||||||
|
|
||||||
assertFalse( activator.isActive( profile, newContext( null, newProperties( "1.3" ) ) ) );
|
assertActivation( false, profile, newContext( null, newProperties( "1.3" ) ) );
|
||||||
|
|
||||||
assertTrue( activator.isActive( profile, newContext( null, newProperties( "1.3.1" ) ) ) );
|
assertActivation( true, profile, newContext( null, newProperties( "1.3.1" ) ) );
|
||||||
|
|
||||||
assertFalse( activator.isActive( profile, newContext( null, newProperties( "1.6" ) ) ) );
|
assertActivation( false, profile, newContext( null, newProperties( "1.6" ) ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -66,11 +66,11 @@ public class PropertyProfileActivatorTest
|
||||||
{
|
{
|
||||||
Profile p = new Profile();
|
Profile p = new Profile();
|
||||||
|
|
||||||
assertFalse( activator.isActive( p, newContext( null, null ) ) );
|
assertActivation( false, p, newContext( null, null ) );
|
||||||
|
|
||||||
p.setActivation( new Activation() );
|
p.setActivation( new Activation() );
|
||||||
|
|
||||||
assertFalse( activator.isActive( p, newContext( null, null ) ) );
|
assertActivation( false, p, newContext( null, null ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testWithNameOnly_UserProperty()
|
public void testWithNameOnly_UserProperty()
|
||||||
|
@ -78,11 +78,11 @@ public class PropertyProfileActivatorTest
|
||||||
{
|
{
|
||||||
Profile profile = newProfile( "prop", null );
|
Profile profile = newProfile( "prop", null );
|
||||||
|
|
||||||
assertTrue( activator.isActive( profile, newContext( newProperties( "prop", "value" ), null ) ) );
|
assertActivation( true, profile, newContext( newProperties( "prop", "value" ), null ) );
|
||||||
|
|
||||||
assertFalse( activator.isActive( profile, newContext( newProperties( "prop", "" ), null ) ) );
|
assertActivation( false, profile, newContext( newProperties( "prop", "" ), null ) );
|
||||||
|
|
||||||
assertFalse( activator.isActive( profile, newContext( newProperties( "other", "value" ), null ) ) );
|
assertActivation( false, profile, newContext( newProperties( "other", "value" ), null ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testWithNameOnly_SystemProperty()
|
public void testWithNameOnly_SystemProperty()
|
||||||
|
@ -90,11 +90,11 @@ public class PropertyProfileActivatorTest
|
||||||
{
|
{
|
||||||
Profile profile = newProfile( "prop", null );
|
Profile profile = newProfile( "prop", null );
|
||||||
|
|
||||||
assertTrue( activator.isActive( profile, newContext( null, newProperties( "prop", "value" ) ) ) );
|
assertActivation( true, profile, newContext( null, newProperties( "prop", "value" ) ) );
|
||||||
|
|
||||||
assertFalse( activator.isActive( profile, newContext( null, newProperties( "prop", "" ) ) ) );
|
assertActivation( false, profile, newContext( null, newProperties( "prop", "" ) ) );
|
||||||
|
|
||||||
assertFalse( activator.isActive( profile, newContext( null, newProperties( "other", "value" ) ) ) );
|
assertActivation( false, profile, newContext( null, newProperties( "other", "value" ) ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testWithNegatedNameOnly_UserProperty()
|
public void testWithNegatedNameOnly_UserProperty()
|
||||||
|
@ -102,11 +102,11 @@ public class PropertyProfileActivatorTest
|
||||||
{
|
{
|
||||||
Profile profile = newProfile( "!prop", null );
|
Profile profile = newProfile( "!prop", null );
|
||||||
|
|
||||||
assertFalse( activator.isActive( profile, newContext( newProperties( "prop", "value" ), null ) ) );
|
assertActivation( false, profile, newContext( newProperties( "prop", "value" ), null ) );
|
||||||
|
|
||||||
assertTrue( activator.isActive( profile, newContext( newProperties( "prop", "" ), null ) ) );
|
assertActivation( true, profile, newContext( newProperties( "prop", "" ), null ) );
|
||||||
|
|
||||||
assertTrue( activator.isActive( profile, newContext( newProperties( "other", "value" ), null ) ) );
|
assertActivation( true, profile, newContext( newProperties( "other", "value" ), null ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testWithNegatedNameOnly_SystemProperty()
|
public void testWithNegatedNameOnly_SystemProperty()
|
||||||
|
@ -114,11 +114,11 @@ public class PropertyProfileActivatorTest
|
||||||
{
|
{
|
||||||
Profile profile = newProfile( "!prop", null );
|
Profile profile = newProfile( "!prop", null );
|
||||||
|
|
||||||
assertFalse( activator.isActive( profile, newContext( null, newProperties( "prop", "value" ) ) ) );
|
assertActivation( false, profile, newContext( null, newProperties( "prop", "value" ) ) );
|
||||||
|
|
||||||
assertTrue( activator.isActive( profile, newContext( null, newProperties( "prop", "" ) ) ) );
|
assertActivation( true, profile, newContext( null, newProperties( "prop", "" ) ) );
|
||||||
|
|
||||||
assertTrue( activator.isActive( profile, newContext( null, newProperties( "other", "value" ) ) ) );
|
assertActivation( true, profile, newContext( null, newProperties( "other", "value" ) ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testWithValue_UserProperty()
|
public void testWithValue_UserProperty()
|
||||||
|
@ -126,11 +126,11 @@ public class PropertyProfileActivatorTest
|
||||||
{
|
{
|
||||||
Profile profile = newProfile( "prop", "value" );
|
Profile profile = newProfile( "prop", "value" );
|
||||||
|
|
||||||
assertTrue( activator.isActive( profile, newContext( newProperties( "prop", "value" ), null ) ) );
|
assertActivation( true, profile, newContext( newProperties( "prop", "value" ), null ) );
|
||||||
|
|
||||||
assertFalse( activator.isActive( profile, newContext( newProperties( "prop", "other" ), null ) ) );
|
assertActivation( false, profile, newContext( newProperties( "prop", "other" ), null ) );
|
||||||
|
|
||||||
assertFalse( activator.isActive( profile, newContext( newProperties( "prop", "" ), null ) ) );
|
assertActivation( false, profile, newContext( newProperties( "prop", "" ), null ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testWithValue_SystemProperty()
|
public void testWithValue_SystemProperty()
|
||||||
|
@ -138,11 +138,11 @@ public class PropertyProfileActivatorTest
|
||||||
{
|
{
|
||||||
Profile profile = newProfile( "prop", "value" );
|
Profile profile = newProfile( "prop", "value" );
|
||||||
|
|
||||||
assertTrue( activator.isActive( profile, newContext( null, newProperties( "prop", "value" ) ) ) );
|
assertActivation( true, profile, newContext( null, newProperties( "prop", "value" ) ) );
|
||||||
|
|
||||||
assertFalse( activator.isActive( profile, newContext( null, newProperties( "prop", "other" ) ) ) );
|
assertActivation( false, profile, newContext( null, newProperties( "prop", "other" ) ) );
|
||||||
|
|
||||||
assertFalse( activator.isActive( profile, newContext( null, newProperties( "other", "" ) ) ) );
|
assertActivation( false, profile, newContext( null, newProperties( "other", "" ) ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testWithNegatedValue_UserProperty()
|
public void testWithNegatedValue_UserProperty()
|
||||||
|
@ -150,11 +150,11 @@ public class PropertyProfileActivatorTest
|
||||||
{
|
{
|
||||||
Profile profile = newProfile( "prop", "!value" );
|
Profile profile = newProfile( "prop", "!value" );
|
||||||
|
|
||||||
assertFalse( activator.isActive( profile, newContext( newProperties( "prop", "value" ), null ) ) );
|
assertActivation( false, profile, newContext( newProperties( "prop", "value" ), null ) );
|
||||||
|
|
||||||
assertTrue( activator.isActive( profile, newContext( newProperties( "prop", "other" ), null ) ) );
|
assertActivation( true, profile, newContext( newProperties( "prop", "other" ), null ) );
|
||||||
|
|
||||||
assertTrue( activator.isActive( profile, newContext( newProperties( "prop", "" ), null ) ) );
|
assertActivation( true, profile, newContext( newProperties( "prop", "" ), null ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testWithNegatedValue_SystemProperty()
|
public void testWithNegatedValue_SystemProperty()
|
||||||
|
@ -162,11 +162,11 @@ public class PropertyProfileActivatorTest
|
||||||
{
|
{
|
||||||
Profile profile = newProfile( "prop", "!value" );
|
Profile profile = newProfile( "prop", "!value" );
|
||||||
|
|
||||||
assertFalse( activator.isActive( profile, newContext( null, newProperties( "prop", "value" ) ) ) );
|
assertActivation( false, profile, newContext( null, newProperties( "prop", "value" ) ) );
|
||||||
|
|
||||||
assertTrue( activator.isActive( profile, newContext( null, newProperties( "prop", "other" ) ) ) );
|
assertActivation( true, profile, newContext( null, newProperties( "prop", "other" ) ) );
|
||||||
|
|
||||||
assertTrue( activator.isActive( profile, newContext( null, newProperties( "other", "" ) ) ) );
|
assertActivation( true, profile, newContext( null, newProperties( "other", "" ) ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testWithValue_UserPropertyDominantOverSystemProperty()
|
public void testWithValue_UserPropertyDominantOverSystemProperty()
|
||||||
|
@ -177,9 +177,9 @@ public class PropertyProfileActivatorTest
|
||||||
Properties props1 = newProperties( "prop", "value" );
|
Properties props1 = newProperties( "prop", "value" );
|
||||||
Properties props2 = newProperties( "prop", "other" );
|
Properties props2 = newProperties( "prop", "other" );
|
||||||
|
|
||||||
assertTrue( activator.isActive( profile, newContext( props1, props2 ) ) );
|
assertActivation( true, profile, newContext( props1, props2 ) );
|
||||||
|
|
||||||
assertFalse( activator.isActive( profile, newContext( props2, props1 ) ) );
|
assertActivation( false, profile, newContext( props2, props1 ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,13 +20,12 @@ package org.apache.maven.model.validation;
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.apache.maven.model.Model;
|
import org.apache.maven.model.Model;
|
||||||
import org.apache.maven.model.building.DefaultModelBuildingRequest;
|
import org.apache.maven.model.building.DefaultModelBuildingRequest;
|
||||||
import org.apache.maven.model.building.ModelBuildingRequest;
|
import org.apache.maven.model.building.ModelBuildingRequest;
|
||||||
import org.apache.maven.model.building.ModelProblemCollector;
|
import org.apache.maven.model.building.SimpleProblemCollector;
|
||||||
import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
|
import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
|
||||||
import org.codehaus.plexus.PlexusTestCase;
|
import org.codehaus.plexus.PlexusTestCase;
|
||||||
|
|
||||||
|
@ -40,46 +39,6 @@ public class DefaultModelValidatorTest
|
||||||
|
|
||||||
private DefaultModelValidator validator;
|
private DefaultModelValidator validator;
|
||||||
|
|
||||||
private static class SimpleProblemCollector
|
|
||||||
implements ModelProblemCollector
|
|
||||||
{
|
|
||||||
|
|
||||||
private List<String> warnings = new ArrayList<String>();
|
|
||||||
|
|
||||||
private List<String> errors = new ArrayList<String>();
|
|
||||||
|
|
||||||
public void addError( String message )
|
|
||||||
{
|
|
||||||
errors.add( message );
|
|
||||||
}
|
|
||||||
|
|
||||||
public void addError( String message, Exception cause )
|
|
||||||
{
|
|
||||||
addError( message );
|
|
||||||
}
|
|
||||||
|
|
||||||
public void addWarning( String message )
|
|
||||||
{
|
|
||||||
warnings.add( message );
|
|
||||||
}
|
|
||||||
|
|
||||||
public void addWarning( String message, Exception cause )
|
|
||||||
{
|
|
||||||
addWarning( message );
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<String> getWarnings()
|
|
||||||
{
|
|
||||||
return warnings;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<String> getErrors()
|
|
||||||
{
|
|
||||||
return errors;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
private Model read( String pom )
|
private Model read( String pom )
|
||||||
throws Exception
|
throws Exception
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue