You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by br...@apache.org on 2005/10/08 19:12:52 UTC
svn commit: r307314 - in /maven/components/trunk/maven-project/src:
main/java/org/apache/maven/project/validation/
test/java/org/apache/maven/project/validation/ test/resources/validation/
Author: brett
Date: Sat Oct 8 10:12:41 2005
New Revision: 307314
URL: http://svn.apache.org/viewcvs?rev=307314&view=rev
Log:
PR: MNG-801
validate ids in model
Added:
maven/components/trunk/maven-project/src/test/resources/validation/invalid-ids-pom.xml (with props)
Modified:
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/validation/DefaultModelValidator.java
maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/validation/DefaultModelValidatorTest.java
Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/validation/DefaultModelValidator.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/validation/DefaultModelValidator.java?rev=307314&r1=307313&r2=307314&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/validation/DefaultModelValidator.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/validation/DefaultModelValidator.java Sat Oct 8 10:12:41 2005
@@ -37,6 +37,8 @@
public class DefaultModelValidator
implements ModelValidator
{
+ private static final String ID_REGEX = "[A-Za-z0-9_\\-.]+";
+
///////////////////////////////////////////////////////////////////////////
// ModelValidator Implementation
@@ -46,9 +48,9 @@
validateStringNotEmpty( "modelVersion", result, model.getModelVersion() );
- validateStringNotEmpty( "groupId", result, model.getGroupId() );
+ validateId( "groupId", result, model.getGroupId() );
- validateStringNotEmpty( "artifactId", result, model.getArtifactId() );
+ validateId( "artifactId", result, model.getArtifactId() );
validateStringNotEmpty( "packaging", result, model.getPackaging() );
@@ -58,13 +60,13 @@
{
Dependency d = (Dependency) it.next();
- validateSubElementStringNotEmpty( d, "dependencies.dependency.artifactId", result, d.getArtifactId() );
+ validateId( "dependencies.dependency.artifactId", result, d.getArtifactId() );
- validateSubElementStringNotEmpty( d, "dependencies.dependency.groupId", result, d.getGroupId() );
+ validateId( "dependencies.dependency.groupId", result, d.getGroupId() );
- validateSubElementStringNotEmpty( d, "dependencies.dependency.type", result, d.getType() );
+ validateStringNotEmpty( "dependencies.dependency.type", result, d.getType() );
- validateSubElementStringNotEmpty( d, "dependencies.dependency.version", result, d.getVersion() );
+ validateStringNotEmpty( "dependencies.dependency.version", result, d.getVersion() );
if ( Artifact.SCOPE_SYSTEM.equals( d.getScope() ) && StringUtils.isEmpty( d.getSystemPath() ) )
{
@@ -136,6 +138,23 @@
forcePluginExecutionIdCollision( model, result );
return result;
+ }
+
+ private boolean validateId( String fieldName, ModelValidationResult result, String id )
+ {
+ if ( !validateStringNotEmpty( fieldName, result, id ) )
+ {
+ return false;
+ }
+ else
+ {
+ boolean match = id.matches( ID_REGEX );
+ if ( !match )
+ {
+ result.addMessage( "'" + fieldName + "' with value '" + id + "' does not match a valid id pattern." );
+ }
+ return match;
+ }
}
private void validateRepositories( ModelValidationResult result, List repositories, String prefix )
Modified: maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/validation/DefaultModelValidatorTest.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/validation/DefaultModelValidatorTest.java?rev=307314&r1=307313&r2=307314&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/validation/DefaultModelValidatorTest.java (original)
+++ maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/validation/DefaultModelValidatorTest.java Sat Oct 8 10:12:41 2005
@@ -65,6 +65,18 @@
assertEquals( "'groupId' is missing.", result.getMessage( 0 ) );
}
+ public void testInvalidIds()
+ throws Exception
+ {
+ ModelValidationResult result = validate( "invalid-ids-pom.xml" );
+
+ assertEquals( 2, result.getMessageCount() );
+
+ assertEquals( "'groupId' with value 'o/a/m' does not match a valid id pattern.", result.getMessage( 0 ) );
+
+ assertEquals( "'artifactId' with value 'm$-do$' does not match a valid id pattern.", result.getMessage( 1 ) );
+ }
+
public void testMissingType()
throws Exception
{
Added: maven/components/trunk/maven-project/src/test/resources/validation/invalid-ids-pom.xml
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-project/src/test/resources/validation/invalid-ids-pom.xml?rev=307314&view=auto
==============================================================================
--- maven/components/trunk/maven-project/src/test/resources/validation/invalid-ids-pom.xml (added)
+++ maven/components/trunk/maven-project/src/test/resources/validation/invalid-ids-pom.xml Sat Oct 8 10:12:41 2005
@@ -0,0 +1,7 @@
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>o/a/m</groupId>
+ <artifactId>m$-do$</artifactId>
+ <version>99.44</version>
+ <packaging>bleh</packaging>
+</project>
Propchange: maven/components/trunk/maven-project/src/test/resources/validation/invalid-ids-pom.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/components/trunk/maven-project/src/test/resources/validation/invalid-ids-pom.xml
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"