You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by hb...@apache.org on 2010/04/11 23:17:00 UTC

svn commit: r932994 - in /maven/archetype/trunk/archetype-common/src: main/java/org/apache/maven/archetype/creator/ main/resources/org/apache/maven/archetype/creator/ test/java/org/apache/maven/archetype/creator/

Author: hboutemy
Date: Sun Apr 11 21:16:58 2010
New Revision: 932994

URL: http://svn.apache.org/viewvc?rev=932994&view=rev
Log:
[ARCHETYPE-294] added a basic it in generated archetype

Added:
    maven/archetype/trunk/archetype-common/src/main/resources/org/apache/maven/archetype/creator/archetype.properties   (with props)
    maven/archetype/trunk/archetype-common/src/main/resources/org/apache/maven/archetype/creator/goal.txt   (with props)
Modified:
    maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/creator/FilesetArchetypeCreator.java
    maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/creator/DefaultArchetypeCreatorTest.java

Modified: maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/creator/FilesetArchetypeCreator.java
URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/creator/FilesetArchetypeCreator.java?rev=932994&r1=932993&r2=932994&view=diff
==============================================================================
--- maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/creator/FilesetArchetypeCreator.java (original)
+++ maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/creator/FilesetArchetypeCreator.java Sun Apr 11 21:16:58 2010
@@ -227,6 +227,8 @@ public class FilesetArchetypeCreator
                 IOUtil.close( out );
             }
 
+            createArchetypeBasicIt( archetypeDescriptor, generatedSourcesDirectory );
+
             InvocationRequest internalRequest = new DefaultInvocationRequest();
             internalRequest.setPomFile( archetypePomFile );
             internalRequest.setGoals( Collections.singletonList( request.getPostPhase() ) );
@@ -240,6 +242,51 @@ public class FilesetArchetypeCreator
         }
     }
 
+    /**
+     * Create an archetype IT, ie goals.txt and archetype.properties in src/test/resources/projects/basic.
+     *
+     * @param archetypeDescriptor
+     * @param generatedSourcesDirectory
+     * @throws IOException
+     */
+    private void createArchetypeBasicIt( ArchetypeDescriptor archetypeDescriptor, File generatedSourcesDirectory )
+        throws IOException
+    {
+        String basic = Constants.SRC + File.separator + Constants.TEST + File.separator + Constants.RESOURCES
+            + File.separator + "projects" + File.separator + "basic";
+        File basicItDirectory = new File( generatedSourcesDirectory, basic );
+        basicItDirectory.mkdirs();
+
+        InputStream in = null;
+        OutputStream out = null;
+
+        try
+        {
+            in = FilesetArchetypeCreator.class.getResourceAsStream( "archetype.properties" );
+
+            Properties archetypeProperties = new Properties();
+            archetypeProperties.load( in );
+
+            for ( Iterator iter = archetypeDescriptor.getRequiredProperties().iterator(); iter.hasNext(); )
+            {
+                RequiredProperty req = (RequiredProperty) iter.next();
+
+                archetypeProperties.put( req.getKey(), req.getDefaultValue() );
+            }
+
+            out = new FileOutputStream( new File( basicItDirectory, "archetype.properties" ) );
+            archetypeProperties.store( out, null );
+        }
+        finally
+        {
+            IOUtil.close( in );
+            IOUtil.close( out );
+        }
+        copyResource( "goal.txt", new File( basicItDirectory, "goal.txt" ) );
+
+        getLogger().debug( "Added basic integration test" );
+    }
+
     private void extractPropertiesFromProject( MavenProject project, Properties properties,
                                                Properties configurationProperties, String packageName )
     {
@@ -351,12 +398,24 @@ public class FilesetArchetypeCreator
 
         archetypePomFile.getParentFile().mkdirs();
 
+        copyResource( "pom-prototype.xml", archetypePomFile );
+
+        pomManager.writePom( model, archetypePomFile, archetypePomFile );
+
+        return archetypePomFile;
+    }
+
+    private void copyResource( String name, File destination )
+        throws IOException
+    {
         InputStream in = null;
         OutputStream out = null;
+
         try
         {
-            in = FilesetArchetypeCreator.class.getResourceAsStream( "pom-prototype.xml" );
-            out = new FileOutputStream( archetypePomFile );
+            in = FilesetArchetypeCreator.class.getResourceAsStream( name );
+            out = new FileOutputStream( destination );
+
             IOUtil.copy( in, out );
         }
         finally
@@ -364,10 +423,6 @@ public class FilesetArchetypeCreator
             IOUtil.close( in );
             IOUtil.close( out );
         }
-
-        pomManager.writePom( model, archetypePomFile, archetypePomFile );
-
-        return archetypePomFile;
     }
 
     private void addRequiredProperties( ArchetypeDescriptor archetypeDescriptor, Properties properties )

Added: maven/archetype/trunk/archetype-common/src/main/resources/org/apache/maven/archetype/creator/archetype.properties
URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-common/src/main/resources/org/apache/maven/archetype/creator/archetype.properties?rev=932994&view=auto
==============================================================================
--- maven/archetype/trunk/archetype-common/src/main/resources/org/apache/maven/archetype/creator/archetype.properties (added)
+++ maven/archetype/trunk/archetype-common/src/main/resources/org/apache/maven/archetype/creator/archetype.properties Sun Apr 11 21:16:58 2010
@@ -0,0 +1,3 @@
+groupId=archetype.it
+artifactId=basic
+version=0.1-SNAPSHOT
\ No newline at end of file

Propchange: maven/archetype/trunk/archetype-common/src/main/resources/org/apache/maven/archetype/creator/archetype.properties
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/archetype/trunk/archetype-common/src/main/resources/org/apache/maven/archetype/creator/archetype.properties
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/archetype/trunk/archetype-common/src/main/resources/org/apache/maven/archetype/creator/goal.txt
URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-common/src/main/resources/org/apache/maven/archetype/creator/goal.txt?rev=932994&view=auto
==============================================================================
    (empty)

Propchange: maven/archetype/trunk/archetype-common/src/main/resources/org/apache/maven/archetype/creator/goal.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/archetype/trunk/archetype-common/src/main/resources/org/apache/maven/archetype/creator/goal.txt
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Modified: maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/creator/DefaultArchetypeCreatorTest.java
URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/creator/DefaultArchetypeCreatorTest.java?rev=932994&r1=932993&r2=932994&view=diff
==============================================================================
--- maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/creator/DefaultArchetypeCreatorTest.java (original)
+++ maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/creator/DefaultArchetypeCreatorTest.java Sun Apr 11 21:16:58 2010
@@ -85,11 +85,11 @@ public class DefaultArchetypeCreatorTest
         {
             Object result = builder.buildWithDependencies( projectFile, localRepository, null );
             if ( result instanceof MavenProject )
-            { // Using maven 2.0.x / x >= 7
+            { // Using Maven 2.0.x / x >= 7
                 mavenProject = (MavenProject) result;
             }
             else if ( result instanceof MavenProjectBuildingResult )
-            { // Using maven 2.1
+            { // Using Maven 3
                 mavenProject = ( (MavenProjectBuildingResult) result ).getProject();
             }
             else
@@ -140,7 +140,7 @@ public class DefaultArchetypeCreatorTest
             .setPartialArchetype( false )
             .setPreserveCData( false )
             .setKeepParent( false )
-            .setPostPhase( "package" );
+            .setPostPhase( "verify" );
 
         ArchetypeCreationResult result = new ArchetypeCreationResult();