Author: jvanzyl
Date: Thu May 31 19:07:24 2007
New Revision: 543359

URL: http://svn.apache.org/viewvc?view=rev&rev=543359
Log:
MNG-1889: Warn users when their plugins contain no valid mojos to prevent 
problems at runtime.
Submitted by: Jochen Wiedmann

Modified:
    
maven/shared/trunk/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/scanner/DefaultMojoScanner.java
    
maven/shared/trunk/maven-plugin-tools/maven-plugin-tools-api/src/test/java/org/apache/maven/tools/plugin/scanner/DefaultMojoScannerTest.java

Modified: 
maven/shared/trunk/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/scanner/DefaultMojoScanner.java
URL: 
http://svn.apache.org/viewvc/maven/shared/trunk/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/scanner/DefaultMojoScanner.java?view=diff&rev=543359&r1=543358&r2=543359
==============================================================================
--- 
maven/shared/trunk/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/scanner/DefaultMojoScanner.java
 (original)
+++ 
maven/shared/trunk/maven-plugin-tools/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/scanner/DefaultMojoScanner.java
 Thu May 31 19:07:24 2007
@@ -69,6 +69,8 @@
 
         logger.info( "Using " + activeExtractors.size() + " extractors." );
 
+        int numMojoDescriptors = 0;
+
         for ( Iterator it = activeExtractors.iterator(); it.hasNext(); )
         {
             String language = (String) it.next();
@@ -85,6 +87,7 @@
 
             logger.info( "Extractor for language: " + language + " found " + 
extractorDescriptors.size() +
                 " mojo descriptors." );
+            numMojoDescriptors += extractorDescriptors.size();
 
             for ( Iterator descriptorIt = extractorDescriptors.iterator(); 
descriptorIt.hasNext(); )
             {
@@ -96,6 +99,11 @@
 
                 pluginDescriptor.addMojo( descriptor );
             }
+        }
+
+        if ( numMojoDescriptors == 0 )
+        {
+            throw new InvalidPluginDescriptorException( "No mojo descriptors 
found in plugin." );
         }
     }
 

Modified: 
maven/shared/trunk/maven-plugin-tools/maven-plugin-tools-api/src/test/java/org/apache/maven/tools/plugin/scanner/DefaultMojoScannerTest.java
URL: 
http://svn.apache.org/viewvc/maven/shared/trunk/maven-plugin-tools/maven-plugin-tools-api/src/test/java/org/apache/maven/tools/plugin/scanner/DefaultMojoScannerTest.java?view=diff&rev=543359&r1=543358&r2=543359
==============================================================================
--- 
maven/shared/trunk/maven-plugin-tools/maven-plugin-tools-api/src/test/java/org/apache/maven/tools/plugin/scanner/DefaultMojoScannerTest.java
 (original)
+++ 
maven/shared/trunk/maven-plugin-tools/maven-plugin-tools-api/src/test/java/org/apache/maven/tools/plugin/scanner/DefaultMojoScannerTest.java
 Thu May 31 19:07:24 2007
@@ -22,6 +22,7 @@
 import junit.framework.TestCase;
 import org.apache.maven.model.Build;
 import org.apache.maven.model.Model;
+import org.apache.maven.plugin.descriptor.InvalidPluginDescriptorException;
 import org.apache.maven.plugin.descriptor.MojoDescriptor;
 import org.apache.maven.plugin.descriptor.PluginDescriptor;
 import org.apache.maven.project.MavenProject;
@@ -118,7 +119,15 @@
         PluginDescriptor pluginDescriptor = createPluginDescriptor();
 
         scanner.setActiveExtractors( Collections.EMPTY_SET );
-        scanner.populatePluginDescriptor( project, pluginDescriptor );
+        try
+        {
+            scanner.populatePluginDescriptor( project, pluginDescriptor );
+            fail( "Expected exception" );
+        }
+        catch (InvalidPluginDescriptorException e)
+        {
+            // Ok
+        }
 
         checkResult( pluginDescriptor, Collections.EMPTY_SET );
     }


Reply via email to