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 );
}