Author: bentmann
Date: Wed Nov 24 21:36:06 2010
New Revision: 1038838
URL: http://svn.apache.org/viewvc?rev=1038838&view=rev
Log:
[MNG-4915] Versions in pom.xml are not checked for invalid characters
Modified:
maven/maven-3/trunk/maven-model-builder/src/main/java/org/apache/maven/model/validation/DefaultModelValidator.java
maven/maven-3/trunk/maven-model-builder/src/test/java/org/apache/maven/model/validation/DefaultModelValidatorTest.java
maven/maven-3/trunk/maven-model-builder/src/test/resources/poms/validation/bad-dependency-version.xml
maven/maven-3/trunk/maven-model-builder/src/test/resources/poms/validation/bad-plugin-version.xml
Modified:
maven/maven-3/trunk/maven-model-builder/src/main/java/org/apache/maven/model/validation/DefaultModelValidator.java
URL:
http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-model-builder/src/main/java/org/apache/maven/model/validation/DefaultModelValidator.java?rev=1038838&r1=1038837&r2=1038838&view=diff
==============================================================================
---
maven/maven-3/trunk/maven-model-builder/src/main/java/org/apache/maven/model/validation/DefaultModelValidator.java
(original)
+++
maven/maven-3/trunk/maven-model-builder/src/main/java/org/apache/maven/model/validation/DefaultModelValidator.java
Wed Nov 24 21:36:06 2010
@@ -764,39 +764,47 @@ public class DefaultModelValidator
return true;
}
- if ( !hasExpression( string ) )
+ if ( hasExpression( string ) )
{
- return true;
+ addViolation( problems, severity, fieldName, sourceHint,
+ "must be a valid version but is '" + string + "'.",
tracker );
+ return false;
}
- addViolation( problems, severity, fieldName, sourceHint, "must be a
valid version but is '" + string + "'.",
- tracker );
+ if ( !validateBannedCharacters( fieldName, problems, severity, string,
sourceHint, tracker,
+ ILLEGAL_VERSION_CHARS ) )
+ {
+ return false;
+ }
- return false;
+ return true;
}
private boolean validatePluginVersion( String fieldName,
ModelProblemCollector problems, String string,
String sourceHint,
InputLocationTracker tracker,
ModelBuildingRequest request )
{
- Severity errOn30 = getSeverity( request,
ModelBuildingRequest.VALIDATION_LEVEL_MAVEN_3_0 );
-
if ( string == null )
{
// NOTE: The check for missing plugin versions is handled directly
by the model builder
return true;
}
- if ( string.length() > 0 && !hasExpression( string ) &&
!"RELEASE".equals( string )
- && !"LATEST".equals( string ) )
+ Severity errOn30 = getSeverity( request,
ModelBuildingRequest.VALIDATION_LEVEL_MAVEN_3_0 );
+
+ if ( !validateVersion( fieldName, problems, errOn30, string,
sourceHint, tracker ) )
{
- return true;
+ return false;
}
- addViolation( problems, errOn30, fieldName, sourceHint, "must be a
valid version but is '" + string + "'.",
- tracker );
+ if ( string.length() <= 0 || "RELEASE".equals( string ) ||
"LATEST".equals( string ) )
+ {
+ addViolation( problems, errOn30, fieldName, sourceHint, "must be a
valid version but is '" + string + "'.",
+ tracker );
+ return false;
+ }
- return false;
+ return true;
}
private static void addViolation( ModelProblemCollector problems, Severity
severity, String fieldName,
Modified:
maven/maven-3/trunk/maven-model-builder/src/test/java/org/apache/maven/model/validation/DefaultModelValidatorTest.java
URL:
http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-model-builder/src/test/java/org/apache/maven/model/validation/DefaultModelValidatorTest.java?rev=1038838&r1=1038837&r2=1038838&view=diff
==============================================================================
---
maven/maven-3/trunk/maven-model-builder/src/test/java/org/apache/maven/model/validation/DefaultModelValidatorTest.java
(original)
+++
maven/maven-3/trunk/maven-model-builder/src/test/java/org/apache/maven/model/validation/DefaultModelValidatorTest.java
Wed Nov 24 21:36:06 2010
@@ -349,9 +349,12 @@ public class DefaultModelValidatorTest
{
SimpleProblemCollector result = validate( "bad-dependency-version.xml"
);
- assertViolations( result, 0, 1, 0 );
+ assertViolations( result, 0, 2, 0 );
- assertTrue( result.getErrors().get( 0 ).contains( "test:b" ) );
+ assertContains( result.getErrors().get( 0 ),
+ "'dependencies.dependency.version' for test:b:jar must
be a valid version" );
+ assertContains( result.getErrors().get( 1 ),
+ "'dependencies.dependency.version' for test:c:jar must
not contain any of these characters" );
}
public void testDuplicateModule()
@@ -379,11 +382,16 @@ public class DefaultModelValidatorTest
{
SimpleProblemCollector result = validate( "bad-plugin-version.xml" );
- assertViolations( result, 0, 3, 0 );
+ assertViolations( result, 0, 4, 0 );
- assertTrue( result.getErrors().get( 0 ).contains( "test:mip" ) );
- assertTrue( result.getErrors().get( 1 ).contains( "test:rmv" ) );
- assertTrue( result.getErrors().get( 2 ).contains( "test:lmv" ) );
+ assertContains( result.getErrors().get( 0 ),
+ "'build.plugins.plugin.version' for test:mip must be a
valid version" );
+ assertContains( result.getErrors().get( 1 ),
+ "'build.plugins.plugin.version' for test:rmv must be a
valid version" );
+ assertContains( result.getErrors().get( 2 ),
+ "'build.plugins.plugin.version' for test:lmv must be a
valid version" );
+ assertContains( result.getErrors().get( 3 ),
+ "'build.plugins.plugin.version' for test:ifsc must not
contain any of these characters" );
}
public void testDistributionManagementStatus()
Modified:
maven/maven-3/trunk/maven-model-builder/src/test/resources/poms/validation/bad-dependency-version.xml
URL:
http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-model-builder/src/test/resources/poms/validation/bad-dependency-version.xml?rev=1038838&r1=1038837&r2=1038838&view=diff
==============================================================================
---
maven/maven-3/trunk/maven-model-builder/src/test/resources/poms/validation/bad-dependency-version.xml
(original)
+++
maven/maven-3/trunk/maven-model-builder/src/test/resources/poms/validation/bad-dependency-version.xml
Wed Nov 24 21:36:06 2010
@@ -34,5 +34,10 @@ under the License.
<artifactId>b</artifactId>
<version>${missing.property}</version>
</dependency>
+ <dependency>
+ <groupId>test</groupId>
+ <artifactId>c</artifactId>
+ <version>1/1</version>
+ </dependency>
</dependencies>
</project>
Modified:
maven/maven-3/trunk/maven-model-builder/src/test/resources/poms/validation/bad-plugin-version.xml
URL:
http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-model-builder/src/test/resources/poms/validation/bad-plugin-version.xml?rev=1038838&r1=1038837&r2=1038838&view=diff
==============================================================================
---
maven/maven-3/trunk/maven-model-builder/src/test/resources/poms/validation/bad-plugin-version.xml
(original)
+++
maven/maven-3/trunk/maven-model-builder/src/test/resources/poms/validation/bad-plugin-version.xml
Wed Nov 24 21:36:06 2010
@@ -45,6 +45,11 @@ under the License.
<artifactId>lmv</artifactId>
<version>LATEST</version>
</plugin>
+ <plugin>
+ <groupId>test</groupId>
+ <artifactId>ifsc</artifactId>
+ <version>1/1</version>
+ </plugin>
</plugins>
</build>
</project>