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/05/25 16:27:46 UTC

svn commit: r778426 - in /maven/components/branches/MNG-2766/maven-core/src: main/java/org/apache/maven/project/validation/ test/java/org/apache/maven/project/validation/ test/resources-project-builder/execution-configuration-subcollections/ test/resou...

Author: bentmann
Date: Mon May 25 14:27:46 2009
New Revision: 778426

URL: http://svn.apache.org/viewvc?rev=778426&view=rev
Log:
[MNG-4173] Remove automatic version resolution for POM plugins

o Strengthended model validator to bark with a nice error message before down stream code bubbles up with ugly exceptions. The new validation step applies only to local builds and not to dependency resolution via the metadata source to accept existing POMs

Added:
    maven/components/branches/MNG-2766/maven-core/src/test/resources/validation/missing-plugin-version-pom.xml
      - copied, changed from r778306, maven/components/branches/MNG-2766/maven-core/src/test/resources/validation/missing-plugin-artifactId-pom.xml
Modified:
    maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/project/validation/DefaultModelValidator.java
    maven/components/branches/MNG-2766/maven-core/src/test/java/org/apache/maven/project/validation/DefaultModelValidatorTest.java
    maven/components/branches/MNG-2766/maven-core/src/test/resources-project-builder/execution-configuration-subcollections/pom.xml
    maven/components/branches/MNG-2766/maven-core/src/test/resources-project-builder/plugin-config-order/wo-plugin-mngt/pom.xml
    maven/components/branches/MNG-2766/maven-core/src/test/resources-project-builder/plugin-exec-config-order/wo-plugin-mngt/pom.xml
    maven/components/branches/MNG-2766/maven-core/src/test/resources-project-builder/profile-plugins/pom.xml
    maven/components/branches/MNG-2766/maven-core/src/test/resources/validation/missing-plugin-artifactId-pom.xml

Modified: maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/project/validation/DefaultModelValidator.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/project/validation/DefaultModelValidator.java?rev=778426&r1=778425&r2=778426&view=diff
==============================================================================
--- maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/project/validation/DefaultModelValidator.java (original)
+++ maven/components/branches/MNG-2766/maven-core/src/main/java/org/apache/maven/project/validation/DefaultModelValidator.java Mon May 25 14:27:46 2009
@@ -153,50 +153,50 @@
             }
         }
 
-        Build build = model.getBuild();
-        if ( build != null )
+        if ( !lenient )
         {
-            for ( Plugin p : build.getPlugins() )
+            Build build = model.getBuild();
+            if ( build != null )
             {
-                validateStringNotEmpty( "build.plugins.plugin.artifactId", result, p.getArtifactId() );
+                for ( Plugin p : build.getPlugins() )
+                {
+                    validateStringNotEmpty( "build.plugins.plugin.artifactId", result, p.getArtifactId() );
 
-                validateStringNotEmpty( "build.plugins.plugin.groupId", result, p.getGroupId() );
-                
-                /*
-                 * FIXME: Enforce the existence of a version, no more guessing but reproducibility. We can't do this
-                 * right now as it would affect dependency resolution via the metadata source. As a prerequisite, we
-                 * need to tell the validator which level of strictness we want or alternatively disable validation
-                 * completely for the metadata source.
-                 */
-            }
+                    validateStringNotEmpty( "build.plugins.plugin.groupId", result, p.getGroupId() );
 
-            for ( Resource r : build.getResources() )
-            {
-                validateStringNotEmpty( "build.resources.resource.directory", result, r.getDirectory() );
-            }
+                    validateStringNotEmpty( "build.plugins.plugin.version", result, p.getVersion(), p.getKey() );
+                }
 
-            for ( Resource r : build.getTestResources() )
-            {
-                validateStringNotEmpty( "build.testResources.testResource.directory", result, r.getDirectory() );
+                for ( Resource r : build.getResources() )
+                {
+                    validateStringNotEmpty( "build.resources.resource.directory", result, r.getDirectory() );
+                }
+
+                for ( Resource r : build.getTestResources() )
+                {
+                    validateStringNotEmpty( "build.testResources.testResource.directory", result, r.getDirectory() );
+                }
             }
-        }
 
-        Reporting reporting = model.getReporting();
-        if ( reporting != null )
-        {
-            for ( ReportPlugin p : reporting.getPlugins())
+            Reporting reporting = model.getReporting();
+            if ( reporting != null )
             {
-                validateStringNotEmpty( "reporting.plugins.plugin.artifactId", result, p.getArtifactId() );
+                for ( ReportPlugin p : reporting.getPlugins() )
+                {
+                    validateStringNotEmpty( "reporting.plugins.plugin.artifactId", result, p.getArtifactId() );
+
+                    validateStringNotEmpty( "reporting.plugins.plugin.groupId", result, p.getGroupId() );
 
-                validateStringNotEmpty( "reporting.plugins.plugin.groupId", result, p.getGroupId() );
+                    validateStringNotEmpty( "reporting.plugins.plugin.version", result, p.getVersion(), p.getKey() );
+                }
             }
-        }
 
-        validateRepositories( result, model.getRepositories(), "repositories.repository" );
+            validateRepositories( result, model.getRepositories(), "repositories.repository" );
 
-//        validateRepositories( result, model.getPluginRepositories(), "pluginRepositories.pluginRepository" );
+            // validateRepositories( result, model.getPluginRepositories(), "pluginRepositories.pluginRepository" );
 
-        forcePluginExecutionIdCollision( model, result );
+            forcePluginExecutionIdCollision( model, result );
+        }
 
         return result;
     }

Modified: maven/components/branches/MNG-2766/maven-core/src/test/java/org/apache/maven/project/validation/DefaultModelValidatorTest.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-core/src/test/java/org/apache/maven/project/validation/DefaultModelValidatorTest.java?rev=778426&r1=778425&r2=778426&view=diff
==============================================================================
--- maven/components/branches/MNG-2766/maven-core/src/test/java/org/apache/maven/project/validation/DefaultModelValidatorTest.java (original)
+++ maven/components/branches/MNG-2766/maven-core/src/test/java/org/apache/maven/project/validation/DefaultModelValidatorTest.java Mon May 25 14:27:46 2009
@@ -188,6 +188,17 @@
         assertEquals( "'build.plugins.plugin.artifactId' is missing.", result.getMessage( 0 ) );
     }
 
+    public void testMissingPluginVersion()
+        throws Exception
+    {
+        ModelValidationResult result = validate( "missing-plugin-version-pom.xml" );
+
+        assertEquals( 1, result.getMessageCount() );
+
+        assertEquals( "'build.plugins.plugin.version' is missing for org.apache.maven.plugins:maven-it-plugin",
+                      result.getMessage( 0 ) );
+    }
+
     public void testMissingRepositoryId()
         throws Exception
     {

Modified: maven/components/branches/MNG-2766/maven-core/src/test/resources-project-builder/execution-configuration-subcollections/pom.xml
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-core/src/test/resources-project-builder/execution-configuration-subcollections/pom.xml?rev=778426&r1=778425&r2=778426&view=diff
==============================================================================
--- maven/components/branches/MNG-2766/maven-core/src/test/resources-project-builder/execution-configuration-subcollections/pom.xml (original)
+++ maven/components/branches/MNG-2766/maven-core/src/test/resources-project-builder/execution-configuration-subcollections/pom.xml Mon May 25 14:27:46 2009
@@ -12,6 +12,7 @@
         <plugins>
             <plugin>
                 <artifactId>maven-enforcer-plugin</artifactId>
+                <version>1.0</version>
                 <executions>
                     <execution>
                         <goals>

Modified: maven/components/branches/MNG-2766/maven-core/src/test/resources-project-builder/plugin-config-order/wo-plugin-mngt/pom.xml
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-core/src/test/resources-project-builder/plugin-config-order/wo-plugin-mngt/pom.xml?rev=778426&r1=778425&r2=778426&view=diff
==============================================================================
--- maven/components/branches/MNG-2766/maven-core/src/test/resources-project-builder/plugin-config-order/wo-plugin-mngt/pom.xml (original)
+++ maven/components/branches/MNG-2766/maven-core/src/test/resources-project-builder/plugin-config-order/wo-plugin-mngt/pom.xml Mon May 25 14:27:46 2009
@@ -37,6 +37,7 @@
       <plugin>
         <groupId>org.apache.maven.its.plugins</groupId>
         <artifactId>maven-it-plugin-configuration</artifactId>
+        <version>1.0</version>
         <configuration>
           <stringParams>
             <stringParam>one</stringParam>

Modified: maven/components/branches/MNG-2766/maven-core/src/test/resources-project-builder/plugin-exec-config-order/wo-plugin-mngt/pom.xml
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-core/src/test/resources-project-builder/plugin-exec-config-order/wo-plugin-mngt/pom.xml?rev=778426&r1=778425&r2=778426&view=diff
==============================================================================
--- maven/components/branches/MNG-2766/maven-core/src/test/resources-project-builder/plugin-exec-config-order/wo-plugin-mngt/pom.xml (original)
+++ maven/components/branches/MNG-2766/maven-core/src/test/resources-project-builder/plugin-exec-config-order/wo-plugin-mngt/pom.xml Mon May 25 14:27:46 2009
@@ -37,6 +37,7 @@
       <plugin>
         <groupId>org.apache.maven.its.plugins</groupId>
         <artifactId>maven-it-plugin-configuration</artifactId>
+        <version>1.0</version>
         <executions>
           <execution>
             <phase>validate</phase>

Modified: maven/components/branches/MNG-2766/maven-core/src/test/resources-project-builder/profile-plugins/pom.xml
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-core/src/test/resources-project-builder/profile-plugins/pom.xml?rev=778426&r1=778425&r2=778426&view=diff
==============================================================================
--- maven/components/branches/MNG-2766/maven-core/src/test/resources-project-builder/profile-plugins/pom.xml (original)
+++ maven/components/branches/MNG-2766/maven-core/src/test/resources-project-builder/profile-plugins/pom.xml Mon May 25 14:27:46 2009
@@ -27,6 +27,7 @@
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-surefire-plugin</artifactId>
+        <version>2.4.3</version>
       </plugin>
     </plugins>
   </build>
@@ -42,6 +43,7 @@
           <plugin>
             <groupId>org.apache.maven.plugins</groupId>
             <artifactId>maven-assembly2-plugin</artifactId>
+            <version>2.0</version>
           </plugin>
         </plugins>
       </build>

Modified: maven/components/branches/MNG-2766/maven-core/src/test/resources/validation/missing-plugin-artifactId-pom.xml
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-core/src/test/resources/validation/missing-plugin-artifactId-pom.xml?rev=778426&r1=778425&r2=778426&view=diff
==============================================================================
--- maven/components/branches/MNG-2766/maven-core/src/test/resources/validation/missing-plugin-artifactId-pom.xml (original)
+++ maven/components/branches/MNG-2766/maven-core/src/test/resources/validation/missing-plugin-artifactId-pom.xml Mon May 25 14:27:46 2009
@@ -26,7 +26,7 @@
   <build>
     <plugins>
       <plugin>
-
+        <version>1.0</version>
       </plugin>
     </plugins>
   </build>

Copied: maven/components/branches/MNG-2766/maven-core/src/test/resources/validation/missing-plugin-version-pom.xml (from r778306, maven/components/branches/MNG-2766/maven-core/src/test/resources/validation/missing-plugin-artifactId-pom.xml)
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-core/src/test/resources/validation/missing-plugin-version-pom.xml?p2=maven/components/branches/MNG-2766/maven-core/src/test/resources/validation/missing-plugin-version-pom.xml&p1=maven/components/branches/MNG-2766/maven-core/src/test/resources/validation/missing-plugin-artifactId-pom.xml&r1=778306&r2=778426&rev=778426&view=diff
==============================================================================
--- maven/components/branches/MNG-2766/maven-core/src/test/resources/validation/missing-plugin-artifactId-pom.xml (original)
+++ maven/components/branches/MNG-2766/maven-core/src/test/resources/validation/missing-plugin-version-pom.xml Mon May 25 14:27:46 2009
@@ -26,7 +26,7 @@
   <build>
     <plugins>
       <plugin>
-
+        <artifactId>maven-it-plugin</artifactId>
       </plugin>
     </plugins>
   </build>