o Extended model validation to support distinction between warnings and errors

git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@790131 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Benjamin Bentmann 2009-07-01 11:56:44 +00:00
parent b91f837e12
commit 22516c9fa7
7 changed files with 220 additions and 136 deletions

View File

@ -44,7 +44,7 @@ public class DefaultModelValidator
ModelBuildingRequest request = new DefaultModelBuildingRequest().setLenientValidation( false ); ModelBuildingRequest request = new DefaultModelBuildingRequest().setLenientValidation( false );
for ( String message : modelValidator.validateEffectiveModel( model, request ).getMessages() ) for ( String message : modelValidator.validateEffectiveModel( model, request ).getErrors() )
{ {
result.addMessage( message ); result.addMessage( message );
} }

View File

@ -19,12 +19,77 @@ package org.apache.maven.project.validation;
* under the License. * under the License.
*/ */
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/** /**
* @author <a href="mailto:trygvis@inamo.no">Trygve Laugst&oslash;l</a> * @author <a href="mailto:trygvis@inamo.no">Trygve Laugst&oslash;l</a>
* @version $Id$ * @version $Id$
*/ */
public class ModelValidationResult public class ModelValidationResult
extends org.apache.maven.model.validation.ModelValidationResult
{ {
/** */
private final static String NEWLINE = System.getProperty( "line.separator" );
/** */
private List<String> messages;
public ModelValidationResult()
{
messages = new ArrayList<String>();
}
public int getMessageCount()
{
return messages.size();
}
public String getMessage( int i )
{
return messages.get( i );
}
public List<String> getMessages()
{
return Collections.unmodifiableList( messages );
}
public void addMessage( String message )
{
messages.add( message );
}
public String toString()
{
return render( "" );
}
public String render( String indentation )
{
if ( messages.size() == 0 )
{
return indentation + "There were no validation errors.";
}
StringBuffer message = new StringBuffer();
// if ( messages.size() == 1 )
// {
// message.append( "There was 1 validation error: " );
// }
// else
// {
// message.append( "There was " + messages.size() + " validation errors: " + NEWLINE );
// }
//
for ( int i = 0; i < messages.size(); i++ )
{
message.append( indentation + "[" + i + "] " + messages.get( i ).toString() + NEWLINE );
}
return message.toString();
}
} }

View File

@ -138,7 +138,15 @@ public abstract class AbstractMavenProjectTestCase
if ( e instanceof InvalidProjectModelException ) if ( e instanceof InvalidProjectModelException )
{ {
ModelValidationResult validationResult = ( (InvalidProjectModelException) e ).getValidationResult(); ModelValidationResult validationResult = ( (InvalidProjectModelException) e ).getValidationResult();
String message = "In: " + pom + "(" + ( (ProjectBuildingException) e ).getProjectId() + ")\n\n" + validationResult.render( " " ); String message = "In: " + pom + "(" + ( (ProjectBuildingException) e ).getProjectId() + ")\n\n";
for ( String error : validationResult.getErrors() )
{
message += " [ERROR] " + error + "\n";
}
for ( String warning : validationResult.getWarnings() )
{
message += " [WARNING] " + warning + "\n";
}
System.out.println( message ); System.out.println( message );
fail( message ); fail( message );
} }

View File

@ -278,15 +278,21 @@ public class DefaultModelBuilder
private void addProblems( Model model, ModelValidationResult result, List<ModelProblem> problems ) private void addProblems( Model model, ModelValidationResult result, List<ModelProblem> problems )
{ {
if ( result.getMessageCount() > 0 ) if ( !result.getWarnings().isEmpty() || !result.getErrors().isEmpty() )
{ {
String source = toSourceHint( model ); String source = toSourceHint( model );
for ( int i = 0; i < result.getMessageCount(); i++ ) for ( String message : result.getWarnings() )
{ {
problems.add( new ModelProblem( "Invalid POM " + source + ": " + result.getMessage( i ), problems.add( new ModelProblem( "Invalid POM " + source + ": " + message,
ModelProblem.Severity.WARNING, source ) ); ModelProblem.Severity.WARNING, source ) );
} }
for ( String message : result.getErrors() )
{
problems.add( new ModelProblem( "Invalid POM " + source + ": " + message, ModelProblem.Severity.ERROR,
source ) );
}
} }
} }

View File

@ -57,16 +57,16 @@ public class DefaultModelValidator
Parent parent = model.getParent(); Parent parent = model.getParent();
if ( parent != null ) if ( parent != null )
{ {
validateStringNotEmpty( "parent.groupId", result, parent.getGroupId() ); validateStringNotEmpty( "parent.groupId", result, false, parent.getGroupId() );
validateStringNotEmpty( "parent.artifactId", result, parent.getArtifactId() ); validateStringNotEmpty( "parent.artifactId", result, false, parent.getArtifactId() );
validateStringNotEmpty( "parent.version", result, parent.getVersion() ); validateStringNotEmpty( "parent.version", result, false, parent.getVersion() );
if ( parent.getGroupId().equals( model.getGroupId() ) if ( parent.getGroupId().equals( model.getGroupId() )
&& parent.getArtifactId().equals( model.getArtifactId() ) ) && parent.getArtifactId().equals( model.getArtifactId() ) )
{ {
result.addMessage( "The parent element cannot have the same ID as the project." ); addViolation( result, false, "The parent element cannot have the same ID as the project." );
} }
} }
@ -110,17 +110,17 @@ public class DefaultModelValidator
{ {
ModelValidationResult result = new ModelValidationResult(); ModelValidationResult result = new ModelValidationResult();
validateStringNotEmpty( "modelVersion", result, model.getModelVersion() ); validateStringNotEmpty( "modelVersion", result, false, model.getModelVersion() );
validateId( "groupId", result, model.getGroupId() ); validateId( "groupId", result, model.getGroupId() );
validateId( "artifactId", result, model.getArtifactId() ); validateId( "artifactId", result, model.getArtifactId() );
validateStringNotEmpty( "packaging", result, model.getPackaging() ); validateStringNotEmpty( "packaging", result, false, model.getPackaging() );
if ( !model.getModules().isEmpty() && !"pom".equals( model.getPackaging() ) ) if ( !model.getModules().isEmpty() && !"pom".equals( model.getPackaging() ) )
{ {
result.addMessage( "Packaging '" + model.getPackaging() + "' is invalid. Aggregator projects " + addViolation( result, false, "Packaging '" + model.getPackaging() + "' is invalid. Aggregator projects " +
"require 'pom' as packaging." ); "require 'pom' as packaging." );
} }
@ -130,11 +130,11 @@ public class DefaultModelValidator
if ( parent.getGroupId().equals( model.getGroupId() ) && if ( parent.getGroupId().equals( model.getGroupId() ) &&
parent.getArtifactId().equals( model.getArtifactId() ) ) parent.getArtifactId().equals( model.getArtifactId() ) )
{ {
result.addMessage( "The parent element cannot have the same ID as the project." ); addViolation( result, false, "The parent element cannot have the same ID as the project." );
} }
} }
validateStringNotEmpty( "version", result, model.getVersion() ); validateStringNotEmpty( "version", result, false, model.getVersion() );
for ( Dependency d : model.getDependencies() ) for ( Dependency d : model.getDependencies() )
{ {
@ -142,9 +142,9 @@ public class DefaultModelValidator
validateId( "dependencies.dependency.groupId", result, d.getGroupId() ); validateId( "dependencies.dependency.groupId", result, d.getGroupId() );
validateStringNotEmpty( "dependencies.dependency.type", result, d.getType(), d.getManagementKey() ); validateStringNotEmpty( "dependencies.dependency.type", result, false, d.getType(), d.getManagementKey() );
validateStringNotEmpty( "dependencies.dependency.version", result, d.getVersion(), validateStringNotEmpty( "dependencies.dependency.version", result, false, d.getVersion(),
d.getManagementKey() ); d.getManagementKey() );
if ( "system".equals( d.getScope() ) ) if ( "system".equals( d.getScope() ) )
@ -153,20 +153,20 @@ public class DefaultModelValidator
if ( StringUtils.isEmpty( systemPath ) ) if ( StringUtils.isEmpty( systemPath ) )
{ {
result.addMessage( "For dependency " + d + ": system-scoped dependency must specify systemPath." ); addViolation( result, false, "For dependency " + d + ": system-scoped dependency must specify systemPath." );
} }
else else
{ {
if ( !new File( systemPath ).isAbsolute() ) if ( !new File( systemPath ).isAbsolute() )
{ {
result.addMessage( "For dependency " + d + ": system-scoped dependency must " + addViolation( result, false, "For dependency " + d + ": system-scoped dependency must " +
"specify an absolute path systemPath." ); "specify an absolute path systemPath." );
} }
} }
} }
else if ( StringUtils.isNotEmpty( d.getSystemPath() ) ) else if ( StringUtils.isNotEmpty( d.getSystemPath() ) )
{ {
result.addMessage( addViolation( result, false,
"For dependency " + d + ": only dependency with system scope can specify systemPath." ); "For dependency " + d + ": only dependency with system scope can specify systemPath." );
} }
} }
@ -188,21 +188,21 @@ public class DefaultModelValidator
if ( StringUtils.isEmpty( systemPath ) ) if ( StringUtils.isEmpty( systemPath ) )
{ {
result.addMessage( addViolation( result, false,
"For managed dependency " + d + ": system-scoped dependency must specify systemPath." ); "For managed dependency " + d + ": system-scoped dependency must specify systemPath." );
} }
else else
{ {
if ( !new File( systemPath ).isAbsolute() ) if ( !new File( systemPath ).isAbsolute() )
{ {
result.addMessage( "For managed dependency " + d + ": system-scoped dependency must " + addViolation( result, false, "For managed dependency " + d + ": system-scoped dependency must " +
"specify an absolute path systemPath." ); "specify an absolute path systemPath." );
} }
} }
} }
else if ( StringUtils.isNotEmpty( d.getSystemPath() ) ) else if ( StringUtils.isNotEmpty( d.getSystemPath() ) )
{ {
result.addMessage( addViolation( result, false,
"For managed dependency " + d + ": only dependency with system scope can specify systemPath." ); "For managed dependency " + d + ": only dependency with system scope can specify systemPath." );
} }
} }
@ -215,11 +215,11 @@ public class DefaultModelValidator
{ {
for ( Plugin p : build.getPlugins() ) for ( Plugin p : build.getPlugins() )
{ {
validateStringNotEmpty( "build.plugins.plugin.artifactId", result, p.getArtifactId() ); validateStringNotEmpty( "build.plugins.plugin.artifactId", result, false, p.getArtifactId() );
validateStringNotEmpty( "build.plugins.plugin.groupId", result, p.getGroupId() ); validateStringNotEmpty( "build.plugins.plugin.groupId", result, false, p.getGroupId() );
validateStringNotEmpty( "build.plugins.plugin.version", result, p.getVersion(), p.getKey() ); validateStringNotEmpty( "build.plugins.plugin.version", result, false, p.getVersion(), p.getKey() );
} }
validateResources( result, build.getResources(), "build.resources.resource" ); validateResources( result, build.getResources(), "build.resources.resource" );
@ -232,11 +232,11 @@ public class DefaultModelValidator
{ {
for ( ReportPlugin p : reporting.getPlugins() ) for ( ReportPlugin p : reporting.getPlugins() )
{ {
validateStringNotEmpty( "reporting.plugins.plugin.artifactId", result, p.getArtifactId() ); validateStringNotEmpty( "reporting.plugins.plugin.artifactId", result, false, p.getArtifactId() );
validateStringNotEmpty( "reporting.plugins.plugin.groupId", result, p.getGroupId() ); validateStringNotEmpty( "reporting.plugins.plugin.groupId", result,false, p.getGroupId() );
validateStringNotEmpty( "reporting.plugins.plugin.version", result, p.getVersion(), p.getKey() ); validateStringNotEmpty( "reporting.plugins.plugin.version", result, false, p.getVersion(), p.getKey() );
} }
} }
@ -248,7 +248,7 @@ public class DefaultModelValidator
private boolean validateId( String fieldName, ModelValidationResult result, String id ) private boolean validateId( String fieldName, ModelValidationResult result, String id )
{ {
if ( !validateStringNotEmpty( fieldName, result, id ) ) if ( !validateStringNotEmpty( fieldName, result, false, id ) )
{ {
return false; return false;
} }
@ -257,7 +257,7 @@ public class DefaultModelValidator
boolean match = id.matches( ID_REGEX ); boolean match = id.matches( ID_REGEX );
if ( !match ) if ( !match )
{ {
result.addMessage( "'" + fieldName + "' with value '" + id + "' does not match a valid id pattern." ); addViolation( result, false, "'" + fieldName + "' with value '" + id + "' does not match a valid id pattern." );
} }
return match; return match;
} }
@ -275,7 +275,7 @@ public class DefaultModelValidator
if ( existing != null ) if ( existing != null )
{ {
result.addMessage( "'" + prefix + ".(groupId:artifactId:type:classifier)' must be unique: " + key addViolation( result, false, "'" + prefix + ".(groupId:artifactId:type:classifier)' must be unique: " + key
+ " -> " + existing.getVersion() + " vs " + dependency.getVersion() ); + " -> " + existing.getVersion() + " vs " + dependency.getVersion() );
} }
else else
@ -291,9 +291,9 @@ public class DefaultModelValidator
for ( Repository repository : repositories ) for ( Repository repository : repositories )
{ {
validateStringNotEmpty( prefix + ".id", result, repository.getId() ); validateStringNotEmpty( prefix + ".id", result, false, repository.getId() );
validateStringNotEmpty( prefix + ".url", result, repository.getUrl() ); validateStringNotEmpty( prefix + ".url", result, false, repository.getUrl() );
String key = repository.getId(); String key = repository.getId();
@ -301,7 +301,7 @@ public class DefaultModelValidator
if ( existing != null ) if ( existing != null )
{ {
result.addMessage( "'" + prefix + ".id' must be unique: " + repository.getId() + " -> " addViolation( result, false, "'" + prefix + ".id' must be unique: " + repository.getId() + " -> "
+ existing.getUrl() + " vs " + repository.getUrl() ); + existing.getUrl() + " vs " + repository.getUrl() );
} }
else else
@ -315,7 +315,7 @@ public class DefaultModelValidator
{ {
for ( Resource resource : resources ) for ( Resource resource : resources )
{ {
validateStringNotEmpty( prefix + ".directory", result, resource.getDirectory() ); validateStringNotEmpty( prefix + ".directory", result, false, resource.getDirectory() );
} }
} }
@ -338,7 +338,7 @@ public class DefaultModelValidator
} }
catch ( IllegalStateException collisionException ) catch ( IllegalStateException collisionException )
{ {
result.addMessage( collisionException.getMessage() ); addViolation( result, false, collisionException.getMessage() );
} }
} }
} }
@ -349,23 +349,23 @@ public class DefaultModelValidator
// Field validation // Field validation
// ---------------------------------------------------------------------- // ----------------------------------------------------------------------
private boolean validateStringNotEmpty( String fieldName, ModelValidationResult result, String string ) private boolean validateStringNotEmpty( String fieldName, ModelValidationResult result, boolean warning, String string )
{ {
return validateStringNotEmpty( fieldName, result, string, null ); return validateStringNotEmpty( fieldName, result, warning, string, null );
} }
/** /**
* Asserts: * Asserts:
* <p/> * <p/>
* <ul> * <ul>
* <li><code>string.length != null</code> * <li><code>string != null</code>
* <li><code>string.length > 0</code> * <li><code>string.length > 0</code>
* </ul> * </ul>
*/ */
private boolean validateStringNotEmpty( String fieldName, ModelValidationResult result, String string, private boolean validateStringNotEmpty( String fieldName, ModelValidationResult result, boolean warning,
String sourceHint ) String string, String sourceHint )
{ {
if ( !validateNotNull( fieldName, result, string, sourceHint ) ) if ( !validateNotNull( fieldName, result, warning, string, sourceHint ) )
{ {
return false; return false;
} }
@ -377,11 +377,11 @@ public class DefaultModelValidator
if ( sourceHint != null ) if ( sourceHint != null )
{ {
result.addMessage( "'" + fieldName + "' is missing for " + sourceHint ); addViolation( result, false, "'" + fieldName + "' is missing for " + sourceHint );
} }
else else
{ {
result.addMessage( "'" + fieldName + "' is missing." ); addViolation( result, false, "'" + fieldName + "' is missing." );
} }
return false; return false;
@ -391,7 +391,7 @@ public class DefaultModelValidator
* Asserts: * Asserts:
* <p/> * <p/>
* <ul> * <ul>
* <li><code>string.length != null</code> * <li><code>string != null</code>
* <li><code>string.length > 0</code> * <li><code>string.length > 0</code>
* </ul> * </ul>
*/ */
@ -408,7 +408,7 @@ public class DefaultModelValidator
return true; return true;
} }
result.addMessage( "In " + subElementInstance + ":\n\n -> '" + fieldName + "' is missing." ); addViolation( result, false, "In " + subElementInstance + ":\n\n -> '" + fieldName + "' is missing." );
return false; return false;
} }
@ -420,7 +420,7 @@ public class DefaultModelValidator
* <li><code>string != null</code> * <li><code>string != null</code>
* </ul> * </ul>
*/ */
private boolean validateNotNull( String fieldName, ModelValidationResult result, Object object, String sourceHint ) private boolean validateNotNull( String fieldName, ModelValidationResult result, boolean warning, Object object, String sourceHint )
{ {
if ( object != null ) if ( object != null )
{ {
@ -429,11 +429,11 @@ public class DefaultModelValidator
if ( sourceHint != null ) if ( sourceHint != null )
{ {
result.addMessage( "'" + fieldName + "' is missing for " + sourceHint ); addViolation( result, warning, "'" + fieldName + "' is missing for " + sourceHint );
} }
else else
{ {
result.addMessage( "'" + fieldName + "' is missing." ); addViolation( result, warning, "'" + fieldName + "' is missing." );
} }
return false; return false;
@ -454,9 +454,21 @@ public class DefaultModelValidator
return true; return true;
} }
result.addMessage( "In " + subElementInstance + ":\n\n -> '" + fieldName + "' is missing." ); addViolation( result, false, "In " + subElementInstance + ":\n\n -> '" + fieldName + "' is missing." );
return false; return false;
} }
private void addViolation( ModelValidationResult result, boolean warning, String message )
{
if ( warning )
{
result.addWarning( message );
}
else
{
result.addError( message );
}
}
} }

View File

@ -20,74 +20,67 @@ package org.apache.maven.model.validation;
*/ */
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections;
import java.util.List; import java.util.List;
/** /**
* @author <a href="mailto:trygvis@inamo.no">Trygve Laugst&oslash;l</a> * Collects the warnings and errors from the model validator.
* @version $Id$ *
* @author Benjamin Bentmann
*/ */
public class ModelValidationResult public class ModelValidationResult
{ {
/** */
private final static String NEWLINE = System.getProperty( "line.separator" );
/** */ private List<String> warnings;
private List<String> messages;
private List<String> errors;
/**
* Creates a new validation result.
*/
public ModelValidationResult() public ModelValidationResult()
{ {
messages = new ArrayList<String>(); warnings = new ArrayList<String>();
errors = new ArrayList<String>();
} }
public int getMessageCount() /**
* Gets the warnings from the validator.
*
* @return The warnings from the validator, can be empty but never {@code null}.
*/
public List<String> getWarnings()
{ {
return messages.size(); return warnings;
} }
public String getMessage( int i ) /**
* Records the specified warning.
*
* @param message The detail message about the validation warning.
*/
public void addWarning( String message )
{ {
return messages.get( i ); warnings.add( message );
} }
public List<String> getMessages() /**
* Gets the errors from the validator.
*
* @return The errors from the validator, can be empty but never {@code null}.
*/
public List<String> getErrors()
{ {
return Collections.unmodifiableList( messages ); return errors;
} }
public void addMessage( String message ) /**
* Records the specified error.
*
* @param message The detail message about the validation error.
*/
public void addError( String message )
{ {
messages.add( message ); errors.add( message );
} }
public String toString()
{
return render( "" );
}
public String render( String indentation )
{
if ( messages.size() == 0 )
{
return indentation + "There were no validation errors.";
}
StringBuffer message = new StringBuffer();
// if ( messages.size() == 1 )
// {
// message.append( "There was 1 validation error: " );
// }
// else
// {
// message.append( "There was " + messages.size() + " validation errors: " + NEWLINE );
// }
//
for ( int i = 0; i < messages.size(); i++ )
{
message.append( indentation + "[" + i + "] " + messages.get( i ).toString() + NEWLINE );
}
return message.toString();
}
} }

View File

@ -90,9 +90,9 @@ public class DefaultModelValidatorTest
{ {
ModelValidationResult result = validate( "missing-modelVersion-pom.xml" ); ModelValidationResult result = validate( "missing-modelVersion-pom.xml" );
assertEquals( 1, result.getMessageCount() ); assertEquals( 1, result.getErrors().size() );
assertEquals( "'modelVersion' is missing.", result.getMessage( 0 ) ); assertEquals( "'modelVersion' is missing.", result.getErrors().get( 0 ) );
} }
public void testMissingArtifactId() public void testMissingArtifactId()
@ -100,9 +100,9 @@ public class DefaultModelValidatorTest
{ {
ModelValidationResult result = validate( "missing-artifactId-pom.xml" ); ModelValidationResult result = validate( "missing-artifactId-pom.xml" );
assertEquals( 1, result.getMessageCount() ); assertEquals( 1, result.getErrors().size() );
assertEquals( "'artifactId' is missing.", result.getMessage( 0 ) ); assertEquals( "'artifactId' is missing.", result.getErrors().get( 0 ) );
} }
public void testMissingGroupId() public void testMissingGroupId()
@ -110,9 +110,9 @@ public class DefaultModelValidatorTest
{ {
ModelValidationResult result = validate( "missing-groupId-pom.xml" ); ModelValidationResult result = validate( "missing-groupId-pom.xml" );
assertEquals( 1, result.getMessageCount() ); assertEquals( 1, result.getErrors().size() );
assertEquals( "'groupId' is missing.", result.getMessage( 0 ) ); assertEquals( "'groupId' is missing.", result.getErrors().get( 0 ) );
} }
public void testInvalidIds() public void testInvalidIds()
@ -120,11 +120,11 @@ public class DefaultModelValidatorTest
{ {
ModelValidationResult result = validate( "invalid-ids-pom.xml" ); ModelValidationResult result = validate( "invalid-ids-pom.xml" );
assertEquals( 2, result.getMessageCount() ); assertEquals( 2, result.getErrors().size() );
assertEquals( "'groupId' with value 'o/a/m' does not match a valid id pattern.", result.getMessage( 0 ) ); assertEquals( "'groupId' with value 'o/a/m' does not match a valid id pattern.", result.getErrors().get( 0 ) );
assertEquals( "'artifactId' with value 'm$-do$' does not match a valid id pattern.", result.getMessage( 1 ) ); assertEquals( "'artifactId' with value 'm$-do$' does not match a valid id pattern.", result.getErrors().get( 1 ) );
} }
public void testMissingType() public void testMissingType()
@ -132,9 +132,9 @@ public class DefaultModelValidatorTest
{ {
ModelValidationResult result = validate( "missing-type-pom.xml" ); ModelValidationResult result = validate( "missing-type-pom.xml" );
assertEquals( 1, result.getMessageCount() ); assertEquals( 1, result.getErrors().size() );
assertEquals( "'packaging' is missing.", result.getMessage( 0 ) ); assertEquals( "'packaging' is missing.", result.getErrors().get( 0 ) );
} }
public void testMissingVersion() public void testMissingVersion()
@ -142,9 +142,9 @@ public class DefaultModelValidatorTest
{ {
ModelValidationResult result = validate( "missing-version-pom.xml" ); ModelValidationResult result = validate( "missing-version-pom.xml" );
assertEquals( 1, result.getMessageCount() ); assertEquals( 1, result.getErrors().size() );
assertEquals( "'version' is missing.", result.getMessage( 0 ) ); assertEquals( "'version' is missing.", result.getErrors().get( 0 ) );
} }
public void testInvalidAggregatorPackaging() public void testInvalidAggregatorPackaging()
@ -152,9 +152,9 @@ public class DefaultModelValidatorTest
{ {
ModelValidationResult result = validate( "invalid-aggregator-packaging-pom.xml" ); ModelValidationResult result = validate( "invalid-aggregator-packaging-pom.xml" );
assertEquals( 1, result.getMessageCount() ); assertEquals( 1, result.getErrors().size() );
assertTrue( result.getMessage( 0 ).indexOf( "Aggregator projects require 'pom' as packaging." ) > -1 ); assertTrue( result.getErrors().get( 0 ).indexOf( "Aggregator projects require 'pom' as packaging." ) > -1 );
} }
public void testMissingDependencyArtifactId() public void testMissingDependencyArtifactId()
@ -162,9 +162,9 @@ public class DefaultModelValidatorTest
{ {
ModelValidationResult result = validate( "missing-dependency-artifactId-pom.xml" ); ModelValidationResult result = validate( "missing-dependency-artifactId-pom.xml" );
assertEquals( 1, result.getMessageCount() ); assertEquals( 1, result.getErrors().size() );
assertTrue( result.getMessage( 0 ).indexOf( "'dependencies.dependency.artifactId' is missing." ) > -1 ); assertTrue( result.getErrors().get( 0 ).indexOf( "'dependencies.dependency.artifactId' is missing." ) > -1 );
} }
public void testMissingDependencyGroupId() public void testMissingDependencyGroupId()
@ -172,9 +172,9 @@ public class DefaultModelValidatorTest
{ {
ModelValidationResult result = validate( "missing-dependency-groupId-pom.xml" ); ModelValidationResult result = validate( "missing-dependency-groupId-pom.xml" );
assertEquals( 1, result.getMessageCount() ); assertEquals( 1, result.getErrors().size() );
assertTrue( result.getMessage( 0 ).indexOf( "'dependencies.dependency.groupId' is missing." ) > -1 ); assertTrue( result.getErrors().get( 0 ).indexOf( "'dependencies.dependency.groupId' is missing." ) > -1 );
} }
public void testMissingDependencyVersion() public void testMissingDependencyVersion()
@ -182,9 +182,9 @@ public class DefaultModelValidatorTest
{ {
ModelValidationResult result = validate( "missing-dependency-version-pom.xml" ); ModelValidationResult result = validate( "missing-dependency-version-pom.xml" );
assertEquals( 1, result.getMessageCount() ); assertEquals( 1, result.getErrors().size() );
assertTrue( result.getMessage( 0 ).indexOf( "'dependencies.dependency.version' is missing" ) > -1 ); assertTrue( result.getErrors().get( 0 ).indexOf( "'dependencies.dependency.version' is missing" ) > -1 );
} }
public void testMissingDependencyManagementArtifactId() public void testMissingDependencyManagementArtifactId()
@ -192,9 +192,9 @@ public class DefaultModelValidatorTest
{ {
ModelValidationResult result = validate( "missing-dependency-mgmt-artifactId-pom.xml" ); ModelValidationResult result = validate( "missing-dependency-mgmt-artifactId-pom.xml" );
assertEquals( 1, result.getMessageCount() ); assertEquals( 1, result.getErrors().size() );
assertTrue( result.getMessage( 0 ).indexOf( assertTrue( result.getErrors().get( 0 ).indexOf(
"'dependencyManagement.dependencies.dependency.artifactId' is missing." ) > -1 ); "'dependencyManagement.dependencies.dependency.artifactId' is missing." ) > -1 );
} }
@ -203,9 +203,9 @@ public class DefaultModelValidatorTest
{ {
ModelValidationResult result = validate( "missing-dependency-mgmt-groupId-pom.xml" ); ModelValidationResult result = validate( "missing-dependency-mgmt-groupId-pom.xml" );
assertEquals( 1, result.getMessageCount() ); assertEquals( 1, result.getErrors().size() );
assertTrue( result.getMessage( 0 ).indexOf( assertTrue( result.getErrors().get( 0 ).indexOf(
"'dependencyManagement.dependencies.dependency.groupId' is missing." ) > -1 ); "'dependencyManagement.dependencies.dependency.groupId' is missing." ) > -1 );
} }
@ -214,9 +214,9 @@ public class DefaultModelValidatorTest
{ {
ModelValidationResult result = validate( "missing-1-pom.xml" ); ModelValidationResult result = validate( "missing-1-pom.xml" );
assertEquals( 4, result.getMessageCount() ); assertEquals( 4, result.getErrors().size() );
List<String> messages = result.getMessages(); List<String> messages = result.getErrors();
assertTrue( messages.contains( "\'modelVersion\' is missing." ) ); assertTrue( messages.contains( "\'modelVersion\' is missing." ) );
assertTrue( messages.contains( "\'groupId\' is missing." ) ); assertTrue( messages.contains( "\'groupId\' is missing." ) );
@ -230,9 +230,9 @@ public class DefaultModelValidatorTest
{ {
ModelValidationResult result = validate( "missing-plugin-artifactId-pom.xml" ); ModelValidationResult result = validate( "missing-plugin-artifactId-pom.xml" );
assertEquals( 1, result.getMessageCount() ); assertEquals( 1, result.getErrors().size() );
assertEquals( "'build.plugins.plugin.artifactId' is missing.", result.getMessage( 0 ) ); assertEquals( "'build.plugins.plugin.artifactId' is missing.", result.getErrors().get( 0 ) );
} }
public void testMissingPluginVersion() public void testMissingPluginVersion()
@ -240,10 +240,10 @@ public class DefaultModelValidatorTest
{ {
ModelValidationResult result = validate( "missing-plugin-version-pom.xml" ); ModelValidationResult result = validate( "missing-plugin-version-pom.xml" );
assertEquals( 1, result.getMessageCount() ); assertEquals( 1, result.getErrors().size() );
assertEquals( "'build.plugins.plugin.version' is missing for org.apache.maven.plugins:maven-it-plugin", assertEquals( "'build.plugins.plugin.version' is missing for org.apache.maven.plugins:maven-it-plugin",
result.getMessage( 0 ) ); result.getErrors().get( 0 ) );
} }
public void testMissingRepositoryId() public void testMissingRepositoryId()
@ -251,15 +251,15 @@ public class DefaultModelValidatorTest
{ {
ModelValidationResult result = validate( "missing-repository-id-pom.xml", true, false ); ModelValidationResult result = validate( "missing-repository-id-pom.xml", true, false );
assertEquals( 4, result.getMessageCount() ); assertEquals( 4, result.getErrors().size() );
assertEquals( "'repositories.repository.id' is missing.", result.getMessage( 0 ) ); assertEquals( "'repositories.repository.id' is missing.", result.getErrors().get( 0 ) );
assertEquals( "'repositories.repository.url' is missing.", result.getMessage( 1 ) ); assertEquals( "'repositories.repository.url' is missing.", result.getErrors().get( 1 ) );
assertEquals( "'pluginRepositories.pluginRepository.id' is missing.", result.getMessage( 2 ) ); assertEquals( "'pluginRepositories.pluginRepository.id' is missing.", result.getErrors().get( 2 ) );
assertEquals( "'pluginRepositories.pluginRepository.url' is missing.", result.getMessage( 3 ) ); assertEquals( "'pluginRepositories.pluginRepository.url' is missing.", result.getErrors().get( 3 ) );
} }
public void testMissingResourceDirectory() public void testMissingResourceDirectory()
@ -267,11 +267,11 @@ public class DefaultModelValidatorTest
{ {
ModelValidationResult result = validate( "missing-resource-directory-pom.xml" ); ModelValidationResult result = validate( "missing-resource-directory-pom.xml" );
assertEquals( 2, result.getMessageCount() ); assertEquals( 2, result.getErrors().size() );
assertEquals( "'build.resources.resource.directory' is missing.", result.getMessage( 0 ) ); assertEquals( "'build.resources.resource.directory' is missing.", result.getErrors().get( 0 ) );
assertEquals( "'build.testResources.testResource.directory' is missing.", result.getMessage( 1 ) ); assertEquals( "'build.testResources.testResource.directory' is missing.", result.getErrors().get( 1 ) );
} }
} }