Author: brett
Date: Tue Mar 17 02:32:33 2009
New Revision: 755090

URL: http://svn.apache.org/viewvc?rev=755090&view=rev
Log:
[MNG-4091] Validate the plugin descriptors and improve error reporting when 
mismatched with artifact

Added:
    
maven/components/branches/maven-2.1.x/maven-core/src/main/java/org/apache/maven/plugin/MavenPluginValidator.java
      - copied unchanged from r755086, 
maven/components/branches/maven-2.1.0-RC/maven-core/src/main/java/org/apache/maven/plugin/MavenPluginValidator.java
Modified:
    maven/components/branches/maven-2.1.x/   (props changed)
    maven/components/branches/maven-2.1.x/apache-maven/   (props changed)
    maven/components/branches/maven-2.1.x/apache-maven/src/test/   (props 
changed)
    
maven/components/branches/maven-2.1.x/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
    maven/components/branches/maven-2.1.x/maven-integration-tests/   (props 
changed)
    maven/components/branches/maven-2.1.x/maven-model/src/test/   (props 
changed)
    
maven/components/branches/maven-2.1.x/maven-project/src/test/java/org/apache/maven/project/interpolation/AbstractModelInterpolatorTest.java
   (props changed)

Propchange: maven/components/branches/maven-2.1.x/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Mar 17 02:32:33 2009
@@ -1,7 +1,7 @@
 
/maven/components/branches/maven-2.0.10-RC:679193-679867,680477-688882,708790-728809,728834
 
/maven/components/branches/maven-2.0.x:679552-679867,693956-728820,728836,728940,729060,729738,729785,730461,730631,734502,734803,736543,746381
 /maven/components/branches/maven-2.1.0-M1-RC:690315,691793-694304
-/maven/components/branches/maven-2.1.0-RC:688883,689695,689976,689990,752428,753089-753090
+/maven/components/branches/maven-2.1.0-RC:688883,689695,689976,689990,752428,753089-753090,755086
 /maven/components/branches/maven-2.1.x:751686
 /maven/components/trunk:572229,720001,721902,726845,729292
 /maven/sandbox/branches/maven/MNG-3379:678167

Propchange: maven/components/branches/maven-2.1.x/apache-maven/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Mar 17 02:32:33 2009
@@ -1,7 +1,7 @@
 
/maven/components/branches/maven-2.0.10-RC/apache-maven:679193-679867,680477-688882,708790-728809,728834
 
/maven/components/branches/maven-2.0.x/apache-maven:533160,636838,649903,657432,659677,679552-679867,693956-728820,728836,728940,736543,746038
 /maven/components/branches/maven-2.1.0-M1-RC/apache-maven:690315,691793-694304
-/maven/components/branches/maven-2.1.0-RC/apache-maven:688883,689695,689976,689990,752428,753089-753090
+/maven/components/branches/maven-2.1.0-RC/apache-maven:688883,689695,689976,689990,752428,753089-753090,755086
 /maven/components/branches/maven-2.1.x/apache-maven:751686
 /maven/components/trunk/apache-maven:720001,721902,726845,727688
 /maven/components/trunk/maven-distribution:727688

Propchange: maven/components/branches/maven-2.1.x/apache-maven/src/test/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Mar 17 02:32:33 2009
@@ -1,4 +1,4 @@
 /maven/components/branches/maven-2.0.10-RC/apache-maven/src/test:728834
 /maven/components/branches/maven-2.0.x/apache-maven/src/test:736543
-/maven/components/branches/maven-2.1.0-RC/apache-maven/src/test:752428,753089-753090
+/maven/components/branches/maven-2.1.0-RC/apache-maven/src/test:752428,753089-753090,755086
 /maven/components/branches/maven-2.1.x/apache-maven/src/test:751686

Modified: 
maven/components/branches/maven-2.1.x/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
URL: 
http://svn.apache.org/viewvc/maven/components/branches/maven-2.1.x/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java?rev=755090&r1=755089&r2=755090&view=diff
==============================================================================
--- 
maven/components/branches/maven-2.1.x/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
 (original)
+++ 
maven/components/branches/maven-2.1.x/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
 Tue Mar 17 02:32:33 2009
@@ -69,6 +69,7 @@
 import org.codehaus.plexus.component.configurator.ConfigurationListener;
 import 
org.codehaus.plexus.component.configurator.expression.ExpressionEvaluationException;
 import 
org.codehaus.plexus.component.configurator.expression.ExpressionEvaluator;
+import org.codehaus.plexus.component.discovery.ComponentDiscoveryListener;
 import 
org.codehaus.plexus.component.repository.exception.ComponentLifecycleException;
 import 
org.codehaus.plexus.component.repository.exception.ComponentLookupException;
 import org.codehaus.plexus.configuration.PlexusConfiguration;
@@ -84,6 +85,7 @@
 import java.io.File;
 import java.net.URL;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.HashMap;
@@ -296,10 +298,26 @@
 
         try
         {
-            child = container.createChildContainer( 
PluginUtils.constructVersionedKey( plugin ).intern(),
+            MavenPluginValidator validator = new MavenPluginValidator( 
pluginArtifact );
+
+            String key = PluginUtils.constructVersionedKey( plugin ).intern();
+            child = container.createChildContainer( key,
                                                     Collections.singletonList( 
pluginArtifact.getFile() ),
                                                     Collections.EMPTY_MAP,
-                                                    Collections.singletonList( 
pluginCollector ) );
+                                                    Arrays.asList( new 
ComponentDiscoveryListener[] { validator, pluginCollector } ) );
+
+            if ( validator.hasErrors() )
+            {
+                String msg = "Plugin '" + key + "' has an invalid descriptor:";
+                int count = 1;
+                for ( Iterator i = validator.getErrors().iterator(); 
i.hasNext(); )
+                {
+                    msg += "\n" + count + ") " + i.next();
+                    count++;
+                }
+                throw new PluginManagerException( msg );
+            }
+
             try
             {
                 child.getContainerRealm().importFrom( "plexus.core", 
"org.codehaus.plexus.util.xml.Xpp3Dom" );

Propchange: maven/components/branches/maven-2.1.x/maven-integration-tests/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Mar 17 02:32:33 2009
@@ -1,4 +1,4 @@
 /maven/components/branches/maven-2.0.10-RC/maven-integration-tests:728834
 /maven/components/branches/maven-2.0.x/maven-integration-tests:736543
-/maven/components/branches/maven-2.1.0-RC/maven-integration-tests:752428,753089-753090
+/maven/components/branches/maven-2.1.0-RC/maven-integration-tests:752428,753089-753090,755086
 /maven/components/branches/maven-2.1.x/maven-integration-tests:751686

Propchange: maven/components/branches/maven-2.1.x/maven-model/src/test/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Mar 17 02:32:33 2009
@@ -1,4 +1,4 @@
 /maven/components/branches/maven-2.0.10-RC/maven-model/src/test:728834
 /maven/components/branches/maven-2.0.x/maven-model/src/test:736543
-/maven/components/branches/maven-2.1.0-RC/maven-model/src/test:752428,753089-753090
+/maven/components/branches/maven-2.1.0-RC/maven-model/src/test:752428,753089-753090,755086
 /maven/components/branches/maven-2.1.x/maven-model/src/test:751686

Propchange: 
maven/components/branches/maven-2.1.x/maven-project/src/test/java/org/apache/maven/project/interpolation/AbstractModelInterpolatorTest.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Mar 17 02:32:33 2009
@@ -1,4 +1,4 @@
 
/maven/components/branches/maven-2.0.10-RC/maven-project/src/test/java/org/apache/maven/project/interpolation/AbstractModelInterpolatorTest.java:688259,725329-725330,725342,725349,725359
 
/maven/components/branches/maven-2.1.0-M1-RC/maven-project/src/test/java/org/apache/maven/project/interpolation/AbstractModelInterpolatorTest.java:690315,691793
-/maven/components/branches/maven-2.1.0-RC/maven-project/src/test/java/org/apache/maven/project/interpolation/AbstractModelInterpolatorTest.java:688883,689695,689976,689990,752428,753089-753090
+/maven/components/branches/maven-2.1.0-RC/maven-project/src/test/java/org/apache/maven/project/interpolation/AbstractModelInterpolatorTest.java:688883,689695,689976,689990,752428,753089-753090,755086
 
/maven/components/branches/maven-2.1.x/maven-project/src/test/java/org/apache/maven/project/interpolation/AbstractModelInterpolatorTest.java:751686


Reply via email to