When the version or type are missing from a dependency a g:a string will
  be displayed so you can easily find the problematic dependency in question.
  


git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@329419 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Jason van Zyl 2005-10-29 14:31:44 +00:00
parent d33fea54f0
commit 34d4cc14fc
2 changed files with 45 additions and 10 deletions

View File

@ -65,9 +65,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() ); validateStringNotEmpty( "dependencies.dependency.type", result, d.getType(), dependencySourceHint( d ) );
validateStringNotEmpty( "dependencies.dependency.version", result, d.getVersion() ); validateStringNotEmpty( "dependencies.dependency.version", result, d.getVersion(), dependencySourceHint( d ) );
if ( Artifact.SCOPE_SYSTEM.equals( d.getScope() ) && StringUtils.isEmpty( d.getSystemPath() ) ) if ( Artifact.SCOPE_SYSTEM.equals( d.getScope() ) && StringUtils.isEmpty( d.getSystemPath() ) )
{ {
@ -212,8 +212,28 @@ public class DefaultModelValidator
} }
} }
///////////////////////////////////////////////////////////////////////////
// Field validator // ----------------------------------------------------------------------
// Field validation
// ----------------------------------------------------------------------
/**
* Create a hint string consisting of the groupId and artifactId for user validation
* messages. For example when the version or type information is missing from a
* dependency.
*
* @param d The dependency from which to make the hint.
* @return String of the form g:a.
*/
private String dependencySourceHint( Dependency d )
{
return d.getGroupId() + ":" + d.getArtifactId();
}
private boolean validateStringNotEmpty( String fieldName, ModelValidationResult result, String string )
{
return validateStringNotEmpty( fieldName, result, string, null );
}
/** /**
* Asserts: * Asserts:
@ -223,9 +243,9 @@ public class DefaultModelValidator
* <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, String string, String sourceHint )
{ {
if ( !validateNotNull( fieldName, result, string ) ) if ( !validateNotNull( fieldName, result, string, sourceHint ) )
{ {
return false; return false;
} }
@ -235,7 +255,15 @@ public class DefaultModelValidator
return true; return true;
} }
result.addMessage( "'" + fieldName + "' is missing." ); if ( sourceHint != null )
{
result.addMessage( "'" + fieldName + "' is missing for " + sourceHint );
}
else
{
result.addMessage( "'" + fieldName + "' is missing." );
}
return false; return false;
} }
@ -273,14 +301,21 @@ public class DefaultModelValidator
* <li><code>string != null</code> * <li><code>string != null</code>
* </ul> * </ul>
*/ */
private boolean validateNotNull( String fieldName, ModelValidationResult result, Object object ) private boolean validateNotNull( String fieldName, ModelValidationResult result, Object object, String sourceHint )
{ {
if ( object != null ) if ( object != null )
{ {
return true; return true;
} }
result.addMessage( "'" + fieldName + "' is missing." ); if ( sourceHint != null )
{
result.addMessage( "'" + fieldName + "' is missing for " + sourceHint );
}
else
{
result.addMessage( "'" + fieldName + "' is missing." );
}
return false; return false;
} }

View File

@ -124,7 +124,7 @@ public class DefaultModelValidatorTest
assertEquals( 1, result.getMessageCount() ); assertEquals( 1, result.getMessageCount() );
assertTrue( result.getMessage( 0 ).indexOf( "'dependencies.dependency.version' is missing." ) > -1 ); assertTrue( result.getMessage( 0 ).indexOf( "'dependencies.dependency.version' is missing" ) > -1 );
} }
public void testMissingDependencyManagementArtifactId() public void testMissingDependencyManagementArtifactId()