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/01 22:56:24 UTC

svn commit: r930095 - in /maven/archetype/trunk: archetype-common/src/main/java/org/apache/maven/archetype/generator/ archetype-common/src/main/java/org/apache/maven/archetype/old/ archetype-common/src/test/java/org/apache/maven/archetype/old/ archetyp...

Author: hboutemy
Date: Thu Apr  1 20:56:24 2010
New Revision: 930095

URL: http://svn.apache.org/viewvc?rev=930095&view=rev
Log:
changed old archetype "create" API to be similar to new archetype "generate"

Modified:
    maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/generator/DefaultArchetypeGenerator.java
    maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/old/DefaultOldArchetype.java
    maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/old/OldArchetype.java
    maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/old/ArchetypeTest.java
    maven/archetype/trunk/archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/MavenArchetypeMojo.java

Modified: maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/generator/DefaultArchetypeGenerator.java
URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/generator/DefaultArchetypeGenerator.java?rev=930095&r1=930094&r2=930095&view=diff
==============================================================================
--- maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/generator/DefaultArchetypeGenerator.java (original)
+++ maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/generator/DefaultArchetypeGenerator.java Thu Apr  1 20:56:24 2010
@@ -41,9 +41,7 @@ import org.dom4j.DocumentException;
 import java.io.File;
 import java.io.IOException;
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
 
 /** @plexus.component */
 public class DefaultArchetypeGenerator
@@ -92,19 +90,18 @@ public class DefaultArchetypeGenerator
                 + request.getArchetypeArtifactId() + ":" + request.getArchetypeVersion() + ")" );
         }
 
-        if ( archetypeArtifactManager.isFileSetArchetype( request.getArchetypeGroupId(),
-                                                          request.getArchetypeArtifactId(),
-                                                          request.getArchetypeVersion(), remoteRepo, localRepository,
-                                                          repos ) )
-        {
-            processFileSetArchetype( request, remoteRepo, localRepository, basedir, repos );
-        }
-        else if ( archetypeArtifactManager.isOldArchetype( request.getArchetypeGroupId(),
-                                                           request.getArchetypeArtifactId(),
-                                                           request.getArchetypeVersion(), remoteRepo, localRepository,
-                                                           repos ) )
+        File archetypeFile =
+            archetypeArtifactManager.getArchetypeFile( request.getArchetypeGroupId(), request.getArchetypeArtifactId(),
+                                                       request.getArchetypeVersion(), remoteRepo, localRepository,
+                                                       repos );
+
+        if ( archetypeArtifactManager.isFileSetArchetype( archetypeFile ) )
+        {
+            processFileSetArchetype( request, archetypeFile, basedir );
+        }
+        else if ( archetypeArtifactManager.isOldArchetype( archetypeFile ) )
         {
-            processOldArchetype( request, remoteRepo, localRepository, basedir, repos );
+            processOldArchetype( request, archetypeFile, basedir );
         }
         else
         {
@@ -126,65 +123,17 @@ public class DefaultArchetypeGenerator
     }
 
     /** FileSetArchetype */
-    private void processFileSetArchetype( final ArchetypeGenerationRequest request, ArtifactRepository remoteRepo,
-                                          final ArtifactRepository localRepository, final String basedir,
-                                          final List repositories )
+    private void processFileSetArchetype( ArchetypeGenerationRequest request, File archetypeFile, String basedir )
         throws UnknownArchetype, ArchetypeNotConfigured, ProjectDirectoryExists, PomFileExists, OutputFileExists,
         ArchetypeGenerationFailure
     {
-        //TODO: get rid of the property file usage.
-//        Properties properties = request.getProperties();
-//
-//        properties.setProperty( Constants.ARCHETYPE_GROUP_ID, request.getArchetypeGroupId() );
-//
-//        properties.setProperty( Constants.ARCHETYPE_ARTIFACT_ID, request.getArchetypeArtifactId() );
-//
-//        properties.setProperty( Constants.ARCHETYPE_VERSION, request.getArchetypeVersion() );
-//
-//        properties.setProperty( Constants.GROUP_ID, request.getGroupId(  ) );
-//
-//        properties.setProperty( Constants.ARTIFACT_ID, request.getArtifactId(  ) );
-//
-//        properties.setProperty( Constants.VERSION, request.getVersion() );
-//
-//        properties.setProperty( Constants.PACKAGE, request.getPackage(  ) );
-//
-//        properties.setProperty( Constants.ARCHETYPE_POST_GENERATION_GOALS, request.getArchetypeGoals() );
-
-        File archetypeFile =
-            archetypeArtifactManager.getArchetypeFile( request.getArchetypeGroupId(), request.getArchetypeArtifactId(),
-                                                       request.getArchetypeVersion(), remoteRepo, localRepository,
-                                                       repositories );
-
         filesetGenerator.generateArchetype( request, archetypeFile, basedir );
     }
 
-    private void processOldArchetype( ArchetypeGenerationRequest request, ArtifactRepository remoteRepo,
-                                      ArtifactRepository localRepository, String basedir, List repositories )
+    private void processOldArchetype( ArchetypeGenerationRequest request, File archetypeFile, String basedir )
         throws UnknownArchetype, ArchetypeGenerationFailure
     {
-        org.apache.maven.archetype.old.descriptor.ArchetypeDescriptor archetypeDescriptor =
-            archetypeArtifactManager.getOldArchetypeDescriptor( request.getArchetypeGroupId(),
-                                                                request.getArchetypeArtifactId(),
-                                                                request.getArchetypeVersion(), remoteRepo,
-                                                                localRepository, repositories );
-
-        Map parameters = new HashMap();
-
-        parameters.put( "basedir", basedir );
-
-        parameters.put( "package", request.getPackage() );
-
-        parameters.put( "packageName", request.getPackage() );
-
-        parameters.put( "groupId", request.getGroupId() );
-
-        parameters.put( "artifactId", request.getArtifactId() );
-
-        parameters.put( "version", request.getVersion() );
-
-        oldArchetype.createArchetype( request.getArchetypeGroupId(), request.getArchetypeArtifactId(),
-                                      request.getArchetypeVersion(), remoteRepo, localRepository, repositories, parameters );
+        oldArchetype.createArchetype( request, archetypeFile, basedir );
     }
 
     public void generateArchetype( ArchetypeGenerationRequest request, ArchetypeGenerationResult result )

Modified: maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/old/DefaultOldArchetype.java
URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/old/DefaultOldArchetype.java?rev=930095&r1=930094&r2=930095&view=diff
==============================================================================
--- maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/old/DefaultOldArchetype.java (original)
+++ maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/old/DefaultOldArchetype.java Thu Apr  1 20:56:24 2010
@@ -19,6 +19,7 @@ package org.apache.maven.archetype.old;
  * under the License.
  */
 
+import org.apache.maven.archetype.ArchetypeGenerationRequest;
 import org.apache.maven.archetype.old.descriptor.ArchetypeDescriptor;
 import org.apache.maven.archetype.old.descriptor.ArchetypeDescriptorBuilder;
 import org.apache.maven.archetype.old.descriptor.TemplateDescriptor;
@@ -60,8 +61,8 @@ import java.io.StringWriter;
 import java.io.Writer;
 import java.net.URL;
 import java.net.URLClassLoader;
+import java.util.HashMap;
 import java.util.Iterator;
-import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
@@ -102,31 +103,36 @@ public class DefaultOldArchetype
     // artifactId = maven-foo-archetype
     // version = latest
 
-    public void createArchetype( String archetypeGroupId,
-                                 String archetypeArtifactId,
-                                 String archetypeVersion,
-                                 ArtifactRepository archetypeRepository,
-                                 ArtifactRepository localRepository,
-                                 List remoteRepositories,
-                                 Map parameters )
+    public void createArchetype( ArchetypeGenerationRequest request, ArtifactRepository archetypeRepository, String basedir )
         throws UnknownArchetype, ArchetypeNotFoundException, ArchetypeDescriptorException, ArchetypeTemplateProcessingException
     {
         // ----------------------------------------------------------------------
         // Download the archetype
         // ----------------------------------------------------------------------
 
-        File archetype;
+        File archetypeFile = archetypeArtifactManager.getArchetypeFile(
+                request.getArchetypeGroupId(), request.getArchetypeArtifactId(), request.getArchetypeVersion(),
+                archetypeRepository, request.getLocalRepository(), request.getRemoteArtifactRepositories() );
 
-//        try
-//        {
-            archetype = archetypeArtifactManager.getArchetypeFile(
-                archetypeGroupId, archetypeArtifactId, archetypeVersion,
-                archetypeRepository, localRepository, remoteRepositories );
-//        }
-//        catch ( UnknownArchetype e )
-//        {
-//            throw new ArchetypeDescriptorException( "Error attempting to download archetype.", e );
-//        }
+        createArchetype( request, archetypeFile, basedir );
+    }
+
+    public void createArchetype( ArchetypeGenerationRequest request, File archetypeFile, String basedir )
+        throws ArchetypeDescriptorException, ArchetypeTemplateProcessingException
+    {
+        Map parameters = new HashMap();
+
+        parameters.put( "basedir", basedir );
+
+        parameters.put( "package", request.getPackage() );
+
+        parameters.put( "packageName", request.getPackage() );
+
+        parameters.put( "groupId", request.getGroupId() );
+
+        parameters.put( "artifactId", request.getArtifactId() );
+
+        parameters.put( "version", request.getVersion() );
 
         // ---------------------------------------------------------------------
         // Get Logger and display all parameters used
@@ -137,8 +143,8 @@ public class DefaultOldArchetype
             {
                 getLogger().info( "----------------------------------------------------------------------------" );
 
-                getLogger().info( "Using following parameters for creating OldArchetype: " + archetypeArtifactId + ":"
-                    + archetypeVersion );
+                getLogger().info( "Using following parameters for creating OldArchetype: "
+                                      + request.getArchetypeArtifactId() + ":" + request.getArchetypeVersion() );
 
                 getLogger().info( "----------------------------------------------------------------------------" );
 
@@ -177,7 +183,7 @@ public class DefaultOldArchetype
         {
             URL[] urls = new URL[1];
 
-            urls[0] = archetype.toURL();
+            urls[0] = archetypeFile.toURL();
 
             archetypeJarLoader = new URLClassLoader( urls );
 
@@ -213,9 +219,7 @@ public class DefaultOldArchetype
         //
         // ----------------------------------------------------------------------
 
-        String basedir = (String) parameters.get( "basedir" );
-
-        String artifactId = (String) parameters.get( "artifactId" );
+        String artifactId = request.getArtifactId();
 
         File parentPomFile = new File( basedir, ARCHETYPE_POM );
 

Modified: maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/old/OldArchetype.java
URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/old/OldArchetype.java?rev=930095&r1=930094&r2=930095&view=diff
==============================================================================
--- maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/old/OldArchetype.java (original)
+++ maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/old/OldArchetype.java Thu Apr  1 20:56:24 2010
@@ -21,8 +21,9 @@ package org.apache.maven.archetype.old;
 
 import org.apache.maven.artifact.repository.ArtifactRepository;
 
-import java.util.List;
-import java.util.Map;
+import java.io.File;
+
+import org.apache.maven.archetype.ArchetypeGenerationRequest;
 import org.apache.maven.archetype.exception.UnknownArchetype;
 
 /**
@@ -42,8 +43,15 @@ public interface OldArchetype
     // TODO: delete this, it probably should be project.getFile instead
     String ARCHETYPE_POM = "pom.xml";
 
-    void createArchetype( String archetypeGroupId, String archetypeArtifactId, String archetypeVersion,
-                          ArtifactRepository archetypeRepository,
-                          ArtifactRepository localRepository, List remoteRepositories, Map parameters )
+    /**
+     * Download an archetype then create a project from it.
+     */
+    void createArchetype( ArchetypeGenerationRequest request, ArtifactRepository archetypeRepository, String basedir )
         throws UnknownArchetype, ArchetypeNotFoundException, ArchetypeDescriptorException, ArchetypeTemplateProcessingException;
+
+    /**
+     * Create a project from an archetype file.
+     */
+    void createArchetype( ArchetypeGenerationRequest request, File archetypeFile, String basedir )
+        throws ArchetypeDescriptorException, ArchetypeTemplateProcessingException;
 }

Modified: maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/old/ArchetypeTest.java
URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/old/ArchetypeTest.java?rev=930095&r1=930094&r2=930095&view=diff
==============================================================================
--- maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/old/ArchetypeTest.java (original)
+++ maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/old/ArchetypeTest.java Thu Apr  1 20:56:24 2010
@@ -16,6 +16,7 @@ package org.apache.maven.archetype.old;
  * limitations under the License.
  */
 
+import org.apache.maven.archetype.ArchetypeGenerationRequest;
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.factory.ArtifactFactory;
 import org.apache.maven.artifact.repository.ArtifactRepository;
@@ -61,20 +62,6 @@ public class ArchetypeTest
     {
         FileUtils.deleteDirectory( getTestFile( "target/quickstart" ) );
 
-        Map parameters = new HashMap();
-
-        parameters.put( "name", "jason" );
-
-        parameters.put( "groupId", "maven" );
-
-        parameters.put( "artifactId", "quickstart" );
-
-        parameters.put( "version", "1.0-alpha-1-SNAPSHOT" );
-
-        parameters.put( "package", "org.apache.maven.quickstart" );
-
-        parameters.put( "basedir", getTestFile( "target" ).getAbsolutePath() );
-
         // ----------------------------------------------------------------------
         // This needs to be encapsulated in a maven test case.
         // ----------------------------------------------------------------------
@@ -94,16 +81,34 @@ public class ArchetypeTest
 
         remoteRepositories.add( remoteRepository );
 
-        String archetypeGroupId = "org.apache.maven.archetypes";
-        String archetypeArtifactId = "maven-archetype-quickstart";
-        String archetypeVersion = "1.0-alpha-1-SNAPSHOT";
-        archetype.createArchetype( archetypeGroupId, archetypeArtifactId, archetypeVersion, remoteRepository, localRepository,
-                                   remoteRepositories, parameters );
+        ArchetypeGenerationRequest request = new ArchetypeGenerationRequest()
+            .setPackage( "org.apache.maven.quickstart" )
+            .setGroupId( "maven" )
+            .setArtifactId( "quickstart" )
+            .setVersion( "1.0-alpha-1-SNAPSHOT" )
+            .setArchetypeGroupId( "org.apache.maven.archetypes" )
+            .setArchetypeArtifactId( "maven-archetype-quickstart" )
+            .setArchetypeVersion( "1.0-alpha-1-SNAPSHOT" )
+            .setLocalRepository( localRepository )
+            .setRemoteArtifactRepositories( remoteRepositories );
+        //parameters.put( "name", "jason" );
+
+        String basedir = getTestFile( "target" ).getAbsolutePath();
+
+        archetype.createArchetype( request, remoteRepository, basedir );
 
         // ----------------------------------------------------------------------
         // Set up the Velocity context
         // ----------------------------------------------------------------------
 
+        Map parameters = new HashMap();
+        parameters.put( "basedir", basedir );
+        parameters.put( "package", request.getPackage() );
+        parameters.put( "packageName", request.getPackage() );
+        parameters.put( "groupId", request.getGroupId() );
+        parameters.put( "artifactId", request.getArtifactId() );
+        parameters.put( "version", request.getVersion() );
+
         Context context = new VelocityContext();
 
         for ( Iterator iterator = parameters.keySet().iterator(); iterator.hasNext(); )
@@ -120,8 +125,8 @@ public class ArchetypeTest
         // ----------------------------------------------------------------------
 
         ArtifactFactory artifactFactory = (ArtifactFactory) lookup( ArtifactFactory.class.getName() );
-        Artifact archetypeArtifact = artifactFactory.createArtifact( archetypeGroupId, archetypeArtifactId,
-                                                                     archetypeVersion, Artifact.SCOPE_RUNTIME, "jar" );
+        Artifact archetypeArtifact = artifactFactory.createArtifact( request.getArchetypeGroupId(), request.getArchetypeArtifactId(),
+                                                                     request.getArchetypeVersion(), Artifact.SCOPE_RUNTIME, "jar" );
 
         StringWriter writer = new StringWriter();
 

Modified: maven/archetype/trunk/archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/MavenArchetypeMojo.java
URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/MavenArchetypeMojo.java?rev=930095&r1=930094&r2=930095&view=diff
==============================================================================
--- maven/archetype/trunk/archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/MavenArchetypeMojo.java (original)
+++ maven/archetype/trunk/archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/MavenArchetypeMojo.java Thu Apr  1 20:56:24 2010
@@ -19,6 +19,7 @@ package org.apache.maven.archetype.mojos
  * under the License.
  */
 
+import org.apache.maven.archetype.ArchetypeGenerationRequest;
 import org.apache.maven.archetype.exception.UnknownArchetype;
 import org.apache.maven.archetype.old.OldArchetype;
 import org.apache.maven.archetype.old.ArchetypeDescriptorException;
@@ -34,9 +35,7 @@ import org.apache.maven.project.MavenPro
 import org.codehaus.plexus.util.StringUtils;
 
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
 
 /**
  * The archetype creation goal looks for an archetype with a given groupId,
@@ -194,20 +193,6 @@ public class MavenArchetypeMojo
             packageName = groupId;
         }
 
-        // TODO: context mojo more appropriate?
-        Map parameters = new HashMap();
-
-        parameters.put( "basedir", basedir );
-
-        parameters.put( "package", packageName );
-
-        parameters.put( "packageName", packageName );
-
-        parameters.put( "groupId", groupId );
-
-        parameters.put( "artifactId", artifactId );
-
-        parameters.put( "version", version );
 
         List archetypeRemoteRepositories = new ArrayList( pomRemoteRepositories );
 
@@ -227,9 +212,18 @@ public class MavenArchetypeMojo
 
         try
         {
-            archetype.createArchetype( archetypeGroupId, archetypeArtifactId, archetypeVersion,
-                                       createRepository( "http://repo1.maven.org/maven2", "central" ), localRepository,
-                                       archetypeRemoteRepositories, parameters );
+            ArchetypeGenerationRequest request = new ArchetypeGenerationRequest()
+                .setPackage( packageName )
+                .setGroupId( groupId )
+                .setArtifactId( artifactId )
+                .setVersion( version )
+                .setArchetypeGroupId( archetypeGroupId )
+                .setArchetypeArtifactId( archetypeArtifactId )
+                .setArchetypeVersion( archetypeVersion )
+                .setLocalRepository( localRepository )
+                .setRemoteArtifactRepositories( archetypeRemoteRepositories );
+
+            archetype.createArchetype( request, createRepository( "http://repo1.maven.org/maven2", "central" ), basedir );
         }
         catch ( UnknownArchetype e )
         {