Author: brett
Date: Sun Mar 19 05:35:55 2006
New Revision: 386966

URL: http://svn.apache.org/viewcvs?rev=386966&view=rev
Log:
only overlay partial archetype if artifact ID was not given

Modified:
    
maven/archetype/trunk/maven-archetype-core/src/main/java/org/apache/maven/archetype/Archetype.java
    
maven/archetype/trunk/maven-archetype-core/src/main/java/org/apache/maven/archetype/DefaultArchetype.java
    
maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/plugin/archetype/MavenArchetypeMojo.java

Modified: 
maven/archetype/trunk/maven-archetype-core/src/main/java/org/apache/maven/archetype/Archetype.java
URL: 
http://svn.apache.org/viewcvs/maven/archetype/trunk/maven-archetype-core/src/main/java/org/apache/maven/archetype/Archetype.java?rev=386966&r1=386965&r2=386966&view=diff
==============================================================================
--- 
maven/archetype/trunk/maven-archetype-core/src/main/java/org/apache/maven/archetype/Archetype.java
 (original)
+++ 
maven/archetype/trunk/maven-archetype-core/src/main/java/org/apache/maven/archetype/Archetype.java
 Sun Mar 19 05:35:55 2006
@@ -16,11 +16,11 @@
  * limitations under the License.
  */
 
+import org.apache.maven.artifact.repository.ArtifactRepository;
+
 import java.util.List;
 import java.util.Map;
 
-import org.apache.maven.artifact.repository.ArtifactRepository;
-
 /**
  * @author <a href="mailto:[EMAIL PROTECTED]">Jason van Zyl</a>
  * @version $Id$
@@ -33,6 +33,7 @@
 
     String ARCHETYPE_RESOURCES = "archetype-resources";
 
+    // TODO: delete this, it probably should be project.getFile instead
     String ARCHETYPE_POM = "pom.xml";
 
     void createArchetype( String archetypeGroupId, String archetypeArtifactId, 
String archetypeVersion,

Modified: 
maven/archetype/trunk/maven-archetype-core/src/main/java/org/apache/maven/archetype/DefaultArchetype.java
URL: 
http://svn.apache.org/viewcvs/maven/archetype/trunk/maven-archetype-core/src/main/java/org/apache/maven/archetype/DefaultArchetype.java?rev=386966&r1=386965&r2=386966&view=diff
==============================================================================
--- 
maven/archetype/trunk/maven-archetype-core/src/main/java/org/apache/maven/archetype/DefaultArchetype.java
 (original)
+++ 
maven/archetype/trunk/maven-archetype-core/src/main/java/org/apache/maven/archetype/DefaultArchetype.java
 Sun Mar 19 05:35:55 2006
@@ -85,12 +85,8 @@
     // artifactId = maven-foo-archetype
     // version = latest
 
-    public void createArchetype( String archetypeGroupId,
-                                 String archetypeArtifactId,
-                                 String archetypeVersion,
-                                 ArtifactRepository localRepository,
-                                 List remoteRepositories,
-                                 Map parameters )
+    public void createArchetype( String archetypeGroupId, String 
archetypeArtifactId, String archetypeVersion,
+                                 ArtifactRepository localRepository, List 
remoteRepositories, Map parameters )
         throws ArchetypeNotFoundException, ArchetypeDescriptorException, 
ArchetypeTemplateProcessingException
     {
         // 
----------------------------------------------------------------------
@@ -195,12 +191,18 @@
 
         File outputDirectoryFile;
 
-        if ( pomFile.exists() && descriptor.isAllowPartial() )
+        if ( pomFile.exists() && descriptor.isAllowPartial() && artifactId == 
null )
         {
             outputDirectoryFile = new File( basedir );
         }
         else
         {
+            if ( artifactId == null )
+            {
+                throw new ArchetypeTemplateProcessingException(
+                    "Artifact ID must be specified when creating a new project 
from an archetype." );
+            }
+
             outputDirectoryFile = new File( basedir, artifactId );
 
             if ( outputDirectoryFile.exists() )

Modified: 
maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/plugin/archetype/MavenArchetypeMojo.java
URL: 
http://svn.apache.org/viewcvs/maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/plugin/archetype/MavenArchetypeMojo.java?rev=386966&r1=386965&r2=386966&view=diff
==============================================================================
--- 
maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/plugin/archetype/MavenArchetypeMojo.java
 (original)
+++ 
maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/plugin/archetype/MavenArchetypeMojo.java
 Sun Mar 19 05:35:55 2006
@@ -26,22 +26,21 @@
 import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
 import org.apache.maven.plugin.AbstractMojo;
 import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.project.MavenProject;
 import org.codehaus.plexus.util.StringUtils;
-import 
org.codehaus.plexus.component.repository.exception.ComponentLookupException;
 
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.ArrayList;
 
 /**
- * Builds archetype containers.
- *
- * @goal create
- * @description The archetype creation goal looks for an archetype with a 
given groupId, artifactId, and
+ * The archetype creation goal looks for an archetype with a given groupId, 
artifactId, and
  * version and retrieves it from the remote repository. Once the archetype is 
retrieve it is process against
  * a set of user parameters to create a working Maven project.
+ *
  * @requiresProject false
+ * @goal create
  */
 public class MavenArchetypeMojo
     extends AbstractMojo
@@ -88,13 +87,11 @@
 
     /**
      * @parameter expression="${groupId}"
-     * @required
      */
     private String groupId;
 
     /**
      * @parameter expression="${artifactId}"
-     * @required
      */
     private String artifactId;
 
@@ -120,6 +117,11 @@
      */
     private String remoteRepositories;
 
+    /**
+     * @parameter expression="${project}"
+     */
+    private MavenProject project;
+
     public void execute()
         throws MojoExecutionException
     {
@@ -136,6 +138,11 @@
         // parameters
         // 
----------------------------------------------------------------------
 
+        if ( project.getFile() != null && groupId == null )
+        {
+            groupId = project.getGroupId();
+        }
+
         String basedir = System.getProperty( "user.dir" );
 
         if ( packageName == null )
@@ -164,7 +171,7 @@
 
         if ( remoteRepositories != null )
         {
-            getLog().info( "We are using command line specified remote 
repositories: " + remoteRepositories );            
+            getLog().info( "We are using command line specified remote 
repositories: " + remoteRepositories );
 
             archetypeRemoteRepositories = new ArrayList();
 
@@ -172,13 +179,14 @@
 
             for ( int i = 0; i < s.length; i++ )
             {
-                archetypeRemoteRepositories.add( createRepository( s[i], "id" 
+ i ));
+                archetypeRemoteRepositories.add( createRepository( s[i], "id" 
+ i ) );
             }
         }
 
         try
         {
-            archetype.createArchetype( archetypeGroupId, archetypeArtifactId, 
archetypeVersion, localRepository, archetypeRemoteRepositories, map );
+            archetype.createArchetype( archetypeGroupId, archetypeArtifactId, 
archetypeVersion, localRepository,
+                                       archetypeRemoteRepositories, map );
         }
         catch ( ArchetypeNotFoundException e )
         {
@@ -207,11 +215,14 @@
 
         String checksumPolicyFlag = 
ArtifactRepositoryPolicy.CHECKSUM_POLICY_WARN;
 
-        ArtifactRepositoryPolicy snapshotsPolicy = new 
ArtifactRepositoryPolicy( true, updatePolicyFlag, checksumPolicyFlag );
+        ArtifactRepositoryPolicy snapshotsPolicy =
+            new ArtifactRepositoryPolicy( true, updatePolicyFlag, 
checksumPolicyFlag );
 
-        ArtifactRepositoryPolicy releasesPolicy = new 
ArtifactRepositoryPolicy( true, updatePolicyFlag, checksumPolicyFlag );
+        ArtifactRepositoryPolicy releasesPolicy =
+            new ArtifactRepositoryPolicy( true, updatePolicyFlag, 
checksumPolicyFlag );
 
-        return artifactRepositoryFactory.createArtifactRepository( 
repositoryId, url, defaultArtifactRepositoryLayout, snapshotsPolicy, 
releasesPolicy );
+        return artifactRepositoryFactory.createArtifactRepository( 
repositoryId, url, defaultArtifactRepositoryLayout,
+                                                                   
snapshotsPolicy, releasesPolicy );
     }
 }
 


Reply via email to