Author: hboutemy
Date: Thu Aug 25 22:01:58 2011
New Revision: 1161774

URL: http://svn.apache.org/viewvc?rev=1161774&view=rev
Log:
[ARCHETYPE-359] improved error message when IT fails due to missing property in 
archetype.properties

Modified:
    
maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/IntegrationTestMojo.java

Modified: 
maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/IntegrationTestMojo.java
URL: 
http://svn.apache.org/viewvc/maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/IntegrationTestMojo.java?rev=1161774&r1=1161773&r2=1161774&view=diff
==============================================================================
--- 
maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/IntegrationTestMojo.java
 (original)
+++ 
maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/IntegrationTestMojo.java
 Thu Aug 25 22:01:58 2011
@@ -23,7 +23,9 @@ import org.apache.commons.collections.Co
 import org.apache.maven.archetype.ArchetypeGenerationRequest;
 import org.apache.maven.archetype.ArchetypeGenerationResult;
 import org.apache.maven.archetype.common.Constants;
+import org.apache.maven.archetype.exception.ArchetypeNotConfigured;
 import org.apache.maven.archetype.generator.ArchetypeGenerator;
+import org.apache.maven.archetype.metadata.RequiredProperty;
 import org.apache.maven.plugin.AbstractMojo;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
@@ -43,6 +45,7 @@ import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.StringWriter;
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 import java.util.Properties;
@@ -127,10 +130,8 @@ public class IntegrationTestMojo
                 }
                 catch ( IntegrationTestFailure ex )
                 {
-                    errorWriter.write( "Test " + 
goalFile.getParentFile().getName() + " failed\n" );
-                    errorWriter.write( ex.getStackTrace() + "\n" );
-                    errorWriter.write( ex.getMessage() + "\n" );
-                    errorWriter.write( "\n" );
+                    errorWriter.write( "\nArchetype IT '" + 
goalFile.getParentFile().getName() + "' failed: " );
+                    errorWriter.write( ex.getMessage() );
                 }
             }
 
@@ -276,7 +277,15 @@ public class IntegrationTestMojo
 
             if ( result.getCause() != null )
             {
-                throw new IntegrationTestFailure( result.getCause() );
+                if ( result.getCause() instanceof ArchetypeNotConfigured )
+                {
+                    ArchetypeNotConfigured anc = (ArchetypeNotConfigured) 
result.getCause();
+
+                    throw new IntegrationTestFailure( "Missing required 
properties in archetype.properties: "
+                        + StringUtils.join( 
anc.getMissingProperties().iterator(), ", " ), anc );
+                }
+
+                throw new IntegrationTestFailure( 
result.getCause().getMessage(), result.getCause() );
             }
 
             File reference = new File( goalFile.getParentFile(), "reference" );


Reply via email to