You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by be...@apache.org on 2009/11/24 00:09:20 UTC

svn commit: r883537 - in /maven/maven-3/trunk/maven-model-builder/src: main/java/org/apache/maven/model/validation/ test/java/org/apache/maven/model/validation/ test/resources/poms/validation/

Author: bentmann
Date: Mon Nov 23 23:09:20 2009
New Revision: 883537

URL: http://svn.apache.org/viewvc?rev=883537&view=rev
Log:
[MNG-4466] Plugin Metaversion Compatibility

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-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=883537&r1=883536&r2=883537&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 Mon Nov 23 23:09:20 2009
@@ -264,7 +264,7 @@
                     validateStringNotEmpty( "build.plugins.plugin.version", problems, errOn31, p.getVersion(),
                                             p.getKey() );
 
-                    validateVersion( "build.plugins.plugin.version", problems, errOn30, p.getVersion(), p.getKey() );
+                    validatePluginVersion( "build.plugins.plugin.version", problems, errOn30, p.getVersion(), p.getKey() );
 
                     validateBoolean( "build.plugins.plugin.inherited", problems, errOn30, p.getInherited(),
                                      p.getKey() );
@@ -655,6 +655,32 @@
         return false;
     }
 
+    private boolean validatePluginVersion( String fieldName, ModelProblemCollector problems, Severity severity, String string,
+                                     String sourceHint )
+    {
+        if ( string == null || string.length() <= 0 )
+        {
+            return true;
+        }
+
+        if ( !hasExpression( string ) && !"RELEASE".equals( string ) && !"LATEST".equals( string ) )
+        {
+            return true;
+        }
+
+        if ( sourceHint != null )
+        {
+            addViolation( problems, severity, "'" + fieldName + "' must be a valid version for " + sourceHint
+                + " but is '" + string + "'." );
+        }
+        else
+        {
+            addViolation( problems, severity, "'" + fieldName + "' must be a valid version but is '" + string + "'." );
+        }
+
+        return false;
+    }
+
     private static void addViolation( ModelProblemCollector problems, Severity severity, String message )
     {
         problems.add( severity, message, null );

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=883537&r1=883536&r2=883537&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 Mon Nov 23 23:09:20 2009
@@ -376,9 +376,11 @@
     {
         SimpleProblemCollector result = validate( "bad-plugin-version.xml" );
 
-        assertViolations( result, 0, 1, 0 );
+        assertViolations( result, 0, 3, 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" ) );
     }
 
     public void testDistributionManagementStatus()

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=883537&r1=883536&r2=883537&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 Mon Nov 23 23:09:20 2009
@@ -27,9 +27,24 @@
     <plugins>
       <plugin>
         <groupId>test</groupId>
+        <artifactId>good</artifactId>
+        <version>1.0</version>
+      </plugin>
+      <plugin>
+        <groupId>test</groupId>
         <artifactId>mip</artifactId>
         <version>${missing.property}</version>
       </plugin>
+      <plugin>
+        <groupId>test</groupId>
+        <artifactId>rmv</artifactId>
+        <version>RELEASE</version>
+      </plugin>
+      <plugin>
+        <groupId>test</groupId>
+        <artifactId>lmv</artifactId>
+        <version>LATEST</version>
+      </plugin>
     </plugins>
   </build>
 </project>