Author: brett
Date: Wed Feb 13 04:19:46 2008
New Revision: 627371

URL: http://svn.apache.org/viewvc?rev=627371&view=rev
Log:
[ARCHETYPE-117] Restore the previous defaults for archetype artifact ID and the 
version and groupId variables

Added:
    
maven/archetype/trunk/archetype-plugin/src/test/java/org/apache/maven/archetype/ui/DefaultArchetypeGenerationConfiguratorTest.java
   (contents, props changed)
      - copied, changed from r627329, 
maven/archetype/trunk/archetype-plugin/src/test/java/org/apache/maven/archetype/ui/DefaultArchetypeSelectorTest.java
    
maven/archetype/trunk/archetype-plugin/src/test/java/org/apache/maven/archetype/ui/DefaultArchetypeSelectionQueryerTest.java
   (contents, props changed)
      - copied, changed from r627329, 
maven/archetype/trunk/archetype-plugin/src/test/java/org/apache/maven/archetype/ui/DefaultArchetypeSelectorTest.java
Modified:
    
maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/ArchetypeGenerationRequest.java
    
maven/archetype/trunk/archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateProjectFromArchetypeMojo.java
    
maven/archetype/trunk/archetype-plugin/src/main/java/org/apache/maven/archetype/ui/ArchetypeSelectionQueryer.java
    
maven/archetype/trunk/archetype-plugin/src/main/java/org/apache/maven/archetype/ui/DefaultArchetypeFactory.java
    
maven/archetype/trunk/archetype-plugin/src/main/java/org/apache/maven/archetype/ui/DefaultArchetypeGenerationConfigurator.java
    
maven/archetype/trunk/archetype-plugin/src/main/java/org/apache/maven/archetype/ui/DefaultArchetypeSelectionQueryer.java
    
maven/archetype/trunk/archetype-plugin/src/main/java/org/apache/maven/archetype/ui/DefaultArchetypeSelector.java
    
maven/archetype/trunk/archetype-plugin/src/test/java/org/apache/maven/archetype/ui/DefaultArchetypeSelectorTest.java

Modified: 
maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/ArchetypeGenerationRequest.java
URL: 
http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/ArchetypeGenerationRequest.java?rev=627371&r1=627370&r2=627371&view=diff
==============================================================================
--- 
maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/ArchetypeGenerationRequest.java
 (original)
+++ 
maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/ArchetypeGenerationRequest.java
 Wed Feb 13 04:19:46 2008
@@ -73,10 +73,6 @@
 
     private Properties properties = new Properties(  );
 
-    private static final String DEFAULT_ARCHETYPE_GROUP = 
"org.apache.maven.archetypes";
-
-    private static final String DEFAULT_ARCHETYPE_VERSION = "RELEASE";
-
     public ArchetypeGenerationRequest( )
     {
     }
@@ -94,10 +90,6 @@
 
     public String getArchetypeGroupId( )
     {
-        if ( archetypeGroupId == null )
-        {
-            return DEFAULT_ARCHETYPE_GROUP;
-        }
         return archetypeGroupId;
     }
 
@@ -122,10 +114,6 @@
 
     public String getArchetypeVersion( )
     {
-        if ( archetypeVersion == null )
-        {
-            return DEFAULT_ARCHETYPE_VERSION;
-        }
         return archetypeVersion;
     }
 

Modified: 
maven/archetype/trunk/archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateProjectFromArchetypeMojo.java
URL: 
http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateProjectFromArchetypeMojo.java?rev=627371&r1=627370&r2=627371&view=diff
==============================================================================
--- 
maven/archetype/trunk/archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateProjectFromArchetypeMojo.java
 (original)
+++ 
maven/archetype/trunk/archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateProjectFromArchetypeMojo.java
 Wed Feb 13 04:19:46 2008
@@ -19,14 +19,15 @@
 
 package org.apache.maven.archetype.mojos;
 
+import org.apache.maven.archetype.Archetype;
 import org.apache.maven.archetype.ArchetypeGenerationRequest;
 import org.apache.maven.archetype.ArchetypeGenerationResult;
-import org.apache.maven.archetype.Archetype;
 import org.apache.maven.archetype.common.ArchetypeRegistryManager;
 import org.apache.maven.archetype.generator.ArchetypeGenerator;
 import org.apache.maven.archetype.ui.ArchetypeGenerationConfigurator;
 import org.apache.maven.archetype.ui.ArchetypeSelector;
 import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.execution.MavenSession;
 import org.apache.maven.plugin.AbstractMojo;
 import org.apache.maven.plugin.ContextEnabled;
 import org.apache.maven.plugin.MojoExecutionException;
@@ -40,7 +41,6 @@
 import java.io.File;
 import java.util.Arrays;
 import java.util.Properties;
-import org.apache.maven.execution.MavenSession;
 
 /**
  * Generates sample project from archetype.
@@ -164,6 +164,7 @@
         {
             selector.selectArchetype( request, interactiveMode, 
archetypeCatalog );
 
+            // TODO: it's confusing that request has fields that get populated 
but not accepted as input (eg, groupId)
             configurator.configureArchetype( request, interactiveMode, 
executionProperties );
 
             ArchetypeGenerationResult result = 
archetype.generateProjectFromArchetype( request );

Modified: 
maven/archetype/trunk/archetype-plugin/src/main/java/org/apache/maven/archetype/ui/ArchetypeSelectionQueryer.java
URL: 
http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-plugin/src/main/java/org/apache/maven/archetype/ui/ArchetypeSelectionQueryer.java?rev=627371&r1=627370&r2=627371&view=diff
==============================================================================
--- 
maven/archetype/trunk/archetype-plugin/src/main/java/org/apache/maven/archetype/ui/ArchetypeSelectionQueryer.java
 (original)
+++ 
maven/archetype/trunk/archetype-plugin/src/main/java/org/apache/maven/archetype/ui/ArchetypeSelectionQueryer.java
 Wed Feb 13 04:19:46 2008
@@ -19,14 +19,15 @@
 
 package org.apache.maven.archetype.ui;
 
-//import org.apache.maven.archetype.common.Archetype;
-import java.util.Map;
 import org.apache.maven.archetype.catalog.Archetype;
 import org.apache.maven.archetype.common.ArchetypeDefinition;
 import org.codehaus.plexus.components.interactivity.PrompterException;
 
-import java.util.List;
+import java.util.Map;
 
+/**
+ * @todo this interface is bound to it's implementation through the prompter 
exception
+ */
 public interface ArchetypeSelectionQueryer
 {
     String ROLE = ArchetypeSelectionQueryer.class.getName();
@@ -53,4 +54,15 @@
 //    String selectVersion( List list )
 //        throws
 //        PrompterException;
+
+    /**
+     * Select an archetype from the given map.
+     *
+     * @param archetypes the archetypes to choose from
+     * @param defaultDefinition the default archetype, if present in the map
+     * @return the selected archetype
+     * @throws org.codehaus.plexus.components.interactivity.PrompterException 
if there is a problem in making a selection
+     */
+    Archetype selectArchetype( Map archetypes, ArchetypeDefinition 
defaultDefinition )
+        throws PrompterException;
 }

Modified: 
maven/archetype/trunk/archetype-plugin/src/main/java/org/apache/maven/archetype/ui/DefaultArchetypeFactory.java
URL: 
http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-plugin/src/main/java/org/apache/maven/archetype/ui/DefaultArchetypeFactory.java?rev=627371&r1=627370&r2=627371&view=diff
==============================================================================
--- 
maven/archetype/trunk/archetype-plugin/src/main/java/org/apache/maven/archetype/ui/DefaultArchetypeFactory.java
 (original)
+++ 
maven/archetype/trunk/archetype-plugin/src/main/java/org/apache/maven/archetype/ui/DefaultArchetypeFactory.java
 Wed Feb 13 04:19:46 2008
@@ -19,10 +19,10 @@
 
 package org.apache.maven.archetype.ui;
 
-import org.apache.maven.project.MavenProject;
 import org.apache.maven.archetype.common.ArchetypeConfiguration;
 import org.apache.maven.archetype.common.ArchetypeDefinition;
 import org.apache.maven.archetype.common.Constants;
+import org.apache.maven.project.MavenProject;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
 
 import java.util.Iterator;
@@ -128,6 +128,8 @@
                     + configuration.getProperty( Constants.VERSION )
             );
         }
+        configuration.setDefaultProperty( Constants.VERSION, "1.0-SNAPSHOT" );
+
         configuration.addRequiredProperty( Constants.PACKAGE );
         getLogger().debug( "Adding requiredProperty " + Constants.PACKAGE );
         if ( null
@@ -143,6 +145,7 @@
                 )
             );
         }
+        configuration.setDefaultProperty( Constants.PACKAGE, 
configuration.getProperty( Constants.GROUP_ID ) );
 
         return configuration;
     }

Modified: 
maven/archetype/trunk/archetype-plugin/src/main/java/org/apache/maven/archetype/ui/DefaultArchetypeGenerationConfigurator.java
URL: 
http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-plugin/src/main/java/org/apache/maven/archetype/ui/DefaultArchetypeGenerationConfigurator.java?rev=627371&r1=627370&r2=627371&view=diff
==============================================================================
--- 
maven/archetype/trunk/archetype-plugin/src/main/java/org/apache/maven/archetype/ui/DefaultArchetypeGenerationConfigurator.java
 (original)
+++ 
maven/archetype/trunk/archetype-plugin/src/main/java/org/apache/maven/archetype/ui/DefaultArchetypeGenerationConfigurator.java
 Wed Feb 13 04:19:46 2008
@@ -19,7 +19,6 @@
 package org.apache.maven.archetype.ui;
 
 
-import org.apache.maven.archetype.old.OldArchetype;
 import org.apache.maven.archetype.ArchetypeGenerationRequest;
 import org.apache.maven.archetype.common.ArchetypeArtifactManager;
 import org.apache.maven.archetype.common.ArchetypeConfiguration;
@@ -30,6 +29,7 @@
 import org.apache.maven.archetype.exception.ArchetypeNotConfigured;
 import org.apache.maven.archetype.exception.ArchetypeNotDefined;
 import org.apache.maven.archetype.exception.UnknownArchetype;
+import org.apache.maven.archetype.old.OldArchetype;
 import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.codehaus.plexus.components.interactivity.PrompterException;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
@@ -40,6 +40,7 @@
 import java.util.List;
 import java.util.Properties;
 
+// TODO: this seems to have more responsibilities than just a configurator
 /** @plexus.component */
 public class DefaultArchetypeGenerationConfigurator
     extends AbstractLogEnabled
@@ -140,54 +141,73 @@
         }
         
         // mkleint: if already preconfigured, don't ask for confirmation, 
assume it's fine.
-        if ( interactiveMode.booleanValue()  && 
!archetypeConfiguration.isConfigured() )
+        if ( !archetypeConfiguration.isConfigured() )
         {
-            boolean confirmed = false;
-
-            while ( !confirmed )
+            if ( interactiveMode.booleanValue() )
             {
-                if ( !archetypeConfiguration.isConfigured() )
-                {
-                    Iterator requiredProperties = 
archetypeConfiguration.getRequiredProperties().
-                        iterator();
+                boolean confirmed = false;
 
-                    while ( requiredProperties.hasNext() )
+                while ( !confirmed )
+                {
+                    if ( !archetypeConfiguration.isConfigured() )
                     {
-                        String requiredProperty = (String) 
requiredProperties.next();
+                        Iterator requiredProperties = 
archetypeConfiguration.getRequiredProperties().
+                            iterator();
 
-                        if ( !archetypeConfiguration.isConfigured( 
requiredProperty ) )
+                        while ( requiredProperties.hasNext() )
                         {
-                            archetypeConfiguration.setProperty( 
requiredProperty,
-                                archetypeGenerationQueryer.getPropertyValue( 
requiredProperty,
-                                archetypeConfiguration.getDefaultValue( 
requiredProperty ) ) );
+                            String requiredProperty = (String) 
requiredProperties.next();
+
+                            if ( !archetypeConfiguration.isConfigured( 
requiredProperty ) )
+                            {
+                                archetypeConfiguration.setProperty( 
requiredProperty,
+                                    
archetypeGenerationQueryer.getPropertyValue( requiredProperty,
+                                    archetypeConfiguration.getDefaultValue( 
requiredProperty ) ) );
+                            }
                         }
                     }
+
+                    if ( !archetypeConfiguration.isConfigured() )
+                    {
+                        throw new ArchetypeGenerationConfigurationFailure(
+                            "The archetype generation must be configured here" 
);
+                    }
+                    else if ( 
!archetypeGenerationQueryer.confirmConfiguration( archetypeConfiguration ) )
+                    {
+                        getLogger().debug( "OldArchetype generation 
configuration not confirmed" );
+                        archetypeConfiguration.reset();
+                    }
+                    else
+                    {
+                        getLogger().debug( "OldArchetype generation 
configuration confirmed" );
+
+                        confirmed = true;
+                    }
                 }
-                if ( !archetypeConfiguration.isConfigured() )
-                {
-                    throw new ArchetypeGenerationConfigurationFailure(
-                        "The archetype generation must be configured here" );
-                }
-                else if ( !archetypeGenerationQueryer.confirmConfiguration( 
archetypeConfiguration ) )
+            }
+            else
+            {
+                Iterator requiredProperties = 
archetypeConfiguration.getRequiredProperties().
+                    iterator();
+
+                while ( requiredProperties.hasNext() )
                 {
-                    getLogger().debug( "OldArchetype generation configuration 
not confirmed" );
-                    archetypeConfiguration.reset();
+                    String requiredProperty = (String) 
requiredProperties.next();
+
+                    if ( !archetypeConfiguration.isConfigured( 
requiredProperty ) )
+                    {
+                        archetypeConfiguration.setProperty( requiredProperty, 
archetypeConfiguration.getDefaultValue(
+                            requiredProperty ) );
+                    }
                 }
-                else
-                {
-                    getLogger().debug( "OldArchetype generation configuration 
confirmed" );
 
-                    confirmed = true;
+                // in batch mode, we assume the defaults, and if still not 
configured fail
+                if ( !archetypeConfiguration.isConfigured() )
+                {
+                    throw new ArchetypeNotConfigured( "The archetype is not 
configured" );
                 }
             }
         }
-        else
-        {
-            if ( !archetypeConfiguration.isConfigured() )
-            {
-                throw new ArchetypeNotConfigured( "The archetype is not 
configurated" );
-            }
-        }
 
         request.setGroupId( archetypeConfiguration.getProperty( 
Constants.GROUP_ID ) );
 
@@ -208,5 +228,10 @@
         properties.remove( Constants.PACKAGE );
 
         request.setProperties( properties );
+    }
+
+    public void setArchetypeArtifactManager( ArchetypeArtifactManager 
archetypeArtifactManager )
+    {
+        this.archetypeArtifactManager = archetypeArtifactManager;
     }
 }

Modified: 
maven/archetype/trunk/archetype-plugin/src/main/java/org/apache/maven/archetype/ui/DefaultArchetypeSelectionQueryer.java
URL: 
http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-plugin/src/main/java/org/apache/maven/archetype/ui/DefaultArchetypeSelectionQueryer.java?rev=627371&r1=627370&r2=627371&view=diff
==============================================================================
--- 
maven/archetype/trunk/archetype-plugin/src/main/java/org/apache/maven/archetype/ui/DefaultArchetypeSelectionQueryer.java
 (original)
+++ 
maven/archetype/trunk/archetype-plugin/src/main/java/org/apache/maven/archetype/ui/DefaultArchetypeSelectionQueryer.java
 Wed Feb 13 04:19:46 2008
@@ -84,12 +84,19 @@
     public Archetype selectArchetype( Map catalogs )
         throws PrompterException
     {
+        return selectArchetype( catalogs, null );
+    }
+
+    public Archetype selectArchetype( Map catalogs, ArchetypeDefinition 
defaultDefinition )
+        throws PrompterException
+    {
         String query = "Choose archetype:\n";
         Map answerMap = new HashMap();
         List answers = new ArrayList();
 
         Iterator catalogIterator = catalogs.keySet().iterator();
         int counter = 1;
+        int defaultSelection = 0;
         while ( catalogIterator.hasNext() )
         {
             String catalog = (String) catalogIterator.next();
@@ -105,6 +112,13 @@
                     " -> " + archetype.getArtifactId() + " (" + 
archetype.getDescription() + ")\n";
                 answers.add( "" + counter );
 
+                if ( defaultDefinition != null && 
archetype.getGroupId().equals( defaultDefinition.getGroupId() ) &&
+                    archetype.getArtifactId().equals( 
defaultDefinition.getArtifactId() ) &&
+                    archetype.getVersion().equals( 
defaultDefinition.getVersion() ) )
+                {
+                    defaultSelection = counter;
+                }
+
                 counter++;
             }
 
@@ -112,7 +126,15 @@
 
         query += "Choose a number: ";
 
-        String answer = prompter.prompt( query, answers );
+        String answer;
+        if ( defaultSelection == 0 )
+        {
+            answer = prompter.prompt( query, answers );
+        }
+        else
+        {
+            answer = prompter.prompt( query, answers, Integer.toString( 
defaultSelection ) );
+        }
 
         return (org.apache.maven.archetype.catalog.Archetype) answerMap.get( 
answer );
     }
@@ -198,4 +220,9 @@
 //
 //        return (String) answerMap.get( answer );
 //    }
+
+    public void setPrompter( Prompter prompter )
+    {
+        this.prompter = prompter;
+    }
 }

Modified: 
maven/archetype/trunk/archetype-plugin/src/main/java/org/apache/maven/archetype/ui/DefaultArchetypeSelector.java
URL: 
http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-plugin/src/main/java/org/apache/maven/archetype/ui/DefaultArchetypeSelector.java?rev=627371&r1=627370&r2=627371&view=diff
==============================================================================
--- 
maven/archetype/trunk/archetype-plugin/src/main/java/org/apache/maven/archetype/ui/DefaultArchetypeSelector.java
 (original)
+++ 
maven/archetype/trunk/archetype-plugin/src/main/java/org/apache/maven/archetype/ui/DefaultArchetypeSelector.java
 Wed Feb 13 04:19:46 2008
@@ -43,6 +43,12 @@
     extends AbstractLogEnabled
     implements ArchetypeSelector
 {
+    private static final String DEFAULT_ARCHETYPE_GROUPID = 
"org.apache.maven.archetypes";
+
+    private static final String DEFAULT_ARCHETYPE_VERSION = "RELEASE";
+
+    private static final String DEFAULT_ARCHETYPE_ARTIFACTID = 
"maven-archetype-quickstart";
+
     /** @plexus.requirement */
     private ArchetypeSelectionQueryer archetypeSelectionQueryer;
     /** @plexus.requirement */
@@ -164,28 +170,43 @@
                     }
                 }
             }
-        } 
+        }
 
-        if ( interactiveMode.booleanValue ()
-            && !definition.isDefined ()
-            && !definition.isPartiallyDefined ()
-        )
+        // set the defaults - only group and version can be auto-defaulted
+        if ( definition.getGroupId() == null )
         {
-            if ( archetypes.size () > 0 )
+            definition.setGroupId( DEFAULT_ARCHETYPE_GROUPID );
+        }
+        if ( definition.getVersion() == null )
+        {
+            definition.setVersion( DEFAULT_ARCHETYPE_VERSION );
+        }
+
+        if ( !definition.isDefined() && !definition.isPartiallyDefined() )
+        {
+            // if artifact ID is set to it's default, we still prompt to 
confirm 
+            if ( definition.getArtifactId() == null )
+            {
+                definition.setArtifactId( DEFAULT_ARCHETYPE_ARTIFACTID );
+            }
+
+            if ( interactiveMode.booleanValue() )
             {
-                Archetype selectedArchetype =
-                    archetypeSelectionQueryer.selectArchetype ( archetypes );
+                if ( archetypes.size() > 0 )
+                {
+                    Archetype selectedArchetype = 
archetypeSelectionQueryer.selectArchetype( archetypes, definition );
 
-                definition.setGroupId ( selectedArchetype.getGroupId () );
-                definition.setArtifactId ( selectedArchetype.getArtifactId () 
);
-                definition.setVersion ( selectedArchetype.getVersion () );
-                definition.setName ( selectedArchetype.getArtifactId () );
-                definition.setRepository ( selectedArchetype.getRepository () 
);
-                String goals = StringUtils.join ( selectedArchetype.getGoals 
().iterator (), "," );
-                definition.setGoals ( goals );
+                    definition.setGroupId( selectedArchetype.getGroupId() );
+                    definition.setArtifactId( 
selectedArchetype.getArtifactId() );
+                    definition.setVersion( selectedArchetype.getVersion() );
+                    definition.setName( selectedArchetype.getArtifactId() );
+                    definition.setRepository( 
selectedArchetype.getRepository() );
+                    String goals = StringUtils.join( 
selectedArchetype.getGoals().iterator(), "," );
+                    definition.setGoals( goals );
+                }
             }
         }
-        
+
         // Make sure the groupId and artifactId are valid, the version may 
just default to
         // the latest release.
 

Copied: 
maven/archetype/trunk/archetype-plugin/src/test/java/org/apache/maven/archetype/ui/DefaultArchetypeGenerationConfiguratorTest.java
 (from r627329, 
maven/archetype/trunk/archetype-plugin/src/test/java/org/apache/maven/archetype/ui/DefaultArchetypeSelectorTest.java)
URL: 
http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-plugin/src/test/java/org/apache/maven/archetype/ui/DefaultArchetypeGenerationConfiguratorTest.java?p2=maven/archetype/trunk/archetype-plugin/src/test/java/org/apache/maven/archetype/ui/DefaultArchetypeGenerationConfiguratorTest.java&p1=maven/archetype/trunk/archetype-plugin/src/test/java/org/apache/maven/archetype/ui/DefaultArchetypeSelectorTest.java&r1=627329&r2=627371&rev=627371&view=diff
==============================================================================
--- 
maven/archetype/trunk/archetype-plugin/src/test/java/org/apache/maven/archetype/ui/DefaultArchetypeSelectorTest.java
 (original)
+++ 
maven/archetype/trunk/archetype-plugin/src/test/java/org/apache/maven/archetype/ui/DefaultArchetypeGenerationConfiguratorTest.java
 Wed Feb 13 04:19:46 2008
@@ -20,110 +20,92 @@
  */
 
 import org.apache.maven.archetype.ArchetypeGenerationRequest;
-import org.apache.maven.archetype.catalog.Archetype;
+import org.apache.maven.archetype.common.ArchetypeArtifactManager;
+import 
org.apache.maven.archetype.exception.ArchetypeGenerationConfigurationFailure;
+import org.apache.maven.archetype.exception.ArchetypeNotConfigured;
 import org.apache.maven.archetype.exception.ArchetypeNotDefined;
 import org.apache.maven.archetype.exception.ArchetypeSelectionFailure;
 import org.apache.maven.archetype.exception.UnknownArchetype;
 import org.apache.maven.archetype.exception.UnknownGroup;
+import org.apache.maven.archetype.old.descriptor.ArchetypeDescriptor;
 import org.codehaus.plexus.PlexusTestCase;
 import org.codehaus.plexus.components.interactivity.PrompterException;
 import org.easymock.MockControl;
 
 import java.io.IOException;
-import java.util.Collections;
+import java.util.Properties;
 
-public class DefaultArchetypeSelectorTest
+/**
+ * @todo probably testing a little deep, could just test ArchetypeConfiguration
+ */
+public class DefaultArchetypeGenerationConfiguratorTest
     extends PlexusTestCase
 {
-    private DefaultArchetypeSelector selector;
+    private DefaultArchetypeGenerationConfigurator configurator;
 
     public void setUp()
         throws Exception
     {
         super.setUp();
 
-        selector = (DefaultArchetypeSelector) lookup( ArchetypeSelector.ROLE );
-    }
+        configurator = (DefaultArchetypeGenerationConfigurator) lookup( 
ArchetypeGenerationConfigurator.ROLE );
 
-    public void testArchetypeCoordinatesInRequest()
-        throws PrompterException, IOException, UnknownGroup, 
ArchetypeSelectionFailure, UnknownArchetype,
-        ArchetypeNotDefined
-    {
-        ArchetypeGenerationRequest request = new ArchetypeGenerationRequest();
-        request.setArchetypeArtifactId( "preset-artifactId" );
-        request.setArchetypeGroupId( "preset-groupId" );
-        request.setArchetypeVersion( "preset-version" );
-
-        MockControl control = MockControl.createControl( 
ArchetypeSelectionQueryer.class );
-
-        ArchetypeSelectionQueryer queryer = (ArchetypeSelectionQueryer) 
control.getMock();
-        // expect it to not be called
+        MockControl control = MockControl.createControl( 
ArchetypeArtifactManager.class );
+        control.setDefaultMatcher( MockControl.ALWAYS_MATCHER );
 
+        ArchetypeArtifactManager manager = (ArchetypeArtifactManager) 
control.getMock();
+        manager.exists( "archetypeGroupId", "archetypeArtifactId", 
"archetypeVersion", null, null, null );
+        control.setReturnValue( true );
+        manager.isFileSetArchetype( "archetypeGroupId", "archetypeArtifactId", 
"archetypeVersion", null, null, null );
+        control.setReturnValue( false );
+        manager.isOldArchetype( "archetypeGroupId", "archetypeArtifactId", 
"archetypeVersion", null, null, null );
+        control.setReturnValue( true );
+        manager.getOldArchetypeDescriptor( "archetypeGroupId", 
"archetypeArtifactId", "archetypeVersion", null,
+                                               null, null );
+        control.setReturnValue( new ArchetypeDescriptor() );
         control.replay();
-
-        selector.setArchetypeSelectionQueryer( queryer );
-
-        selector.selectArchetype( request, Boolean.TRUE, "" );
-
-        control.verify();
-
-        assertEquals( "preset-groupId", request.getArchetypeGroupId() );
-        assertEquals( "preset-artifactId", request.getArchetypeArtifactId() );
-        assertEquals( "preset-version", request.getArchetypeVersion() );
+        configurator.setArchetypeArtifactManager( manager );
     }
 
-    public void testArchetypeArtifactIdInRequest()
-        throws PrompterException, IOException, UnknownGroup, 
ArchetypeSelectionFailure, UnknownArchetype,
-        ArchetypeNotDefined
+    public void testOldArchetypeGeneratedFieldsInRequestBatchMode()
+        throws PrompterException, ArchetypeGenerationConfigurationFailure, 
IOException, ArchetypeNotConfigured,
+        UnknownArchetype, ArchetypeNotDefined
     {
         ArchetypeGenerationRequest request = new ArchetypeGenerationRequest();
-        request.setArchetypeArtifactId( "preset-artifactId" );
-
-        MockControl control = MockControl.createControl( 
ArchetypeSelectionQueryer.class );
-
-        ArchetypeSelectionQueryer queryer = (ArchetypeSelectionQueryer) 
control.getMock();
-        // expect it to not be called
-
-        control.replay();
-
-        selector.setArchetypeSelectionQueryer( queryer );
-
-        selector.selectArchetype( request, Boolean.TRUE, "" );
-
-        control.verify();
-
-        assertEquals( "org.apache.maven.archetypes", 
request.getArchetypeGroupId() );
-        assertEquals( "preset-artifactId", request.getArchetypeArtifactId() );
-        assertEquals( "RELEASE", request.getArchetypeVersion() );
+        request.setArchetypeGroupId( "archetypeGroupId" );
+        request.setArchetypeArtifactId( "archetypeArtifactId" );
+        request.setArchetypeVersion( "archetypeVersion" );
+        Properties properties = new Properties();
+        properties.setProperty( "groupId", "preset-groupId" );
+        properties.setProperty( "artifactId", "preset-artifactId" );
+        properties.setProperty( "version", "preset-gen-version" );
+        properties.setProperty( "package", "preset-gen-package" );
+
+        configurator.configureArchetype( request, Boolean.FALSE, properties );
+
+        assertEquals( "preset-groupId", request.getGroupId() );
+        assertEquals( "preset-artifactId", request.getArtifactId() );
+        assertEquals( "preset-gen-version", request.getVersion() );
+        assertEquals( "preset-gen-package", request.getPackage() );
     }
 
-    public void testArchetypeArtifactIdNotInRequest()
+    public void testOldArchetypeGeneratedFieldsDefaultsBatchMode()
         throws PrompterException, IOException, UnknownGroup, 
ArchetypeSelectionFailure, UnknownArchetype,
-        ArchetypeNotDefined
+        ArchetypeNotDefined, ArchetypeGenerationConfigurationFailure, 
ArchetypeNotConfigured
     {
         ArchetypeGenerationRequest request = new ArchetypeGenerationRequest();
-
-        MockControl control = MockControl.createControl( 
ArchetypeSelectionQueryer.class );
-
-        ArchetypeSelectionQueryer queryer = (ArchetypeSelectionQueryer) 
control.getMock();
-        queryer.selectArchetype( Collections.EMPTY_MAP );
-        control.setMatcher( MockControl.ALWAYS_MATCHER );
-        Archetype archetype = new Archetype();
-        archetype.setArtifactId( "set-artifactId" );
-        archetype.setGroupId( "set-groupId" );
-        archetype.setVersion( "set-version" );
-        control.setReturnValue( archetype );
-
-        control.replay();
-
-        selector.setArchetypeSelectionQueryer( queryer );
-
-        selector.selectArchetype( request, Boolean.TRUE, "" );
-
-        control.verify();
-
-        assertEquals( "set-groupId", request.getArchetypeGroupId() );
-        assertEquals( "set-artifactId", request.getArchetypeArtifactId() );
-        assertEquals( "set-version", request.getArchetypeVersion() );
+        request.setArchetypeGroupId( "archetypeGroupId" );
+        request.setArchetypeArtifactId( "archetypeArtifactId" );
+        request.setArchetypeVersion( "archetypeVersion" );
+        Properties properties = new Properties();
+        properties.setProperty( "groupId", "preset-groupId" );
+        properties.setProperty( "artifactId", "preset-artifactId" );
+
+        configurator.configureArchetype( request, Boolean.FALSE, properties );
+
+        assertEquals( "preset-groupId", request.getGroupId() );
+        assertEquals( "preset-artifactId", request.getArtifactId() );
+        assertEquals( "1.0-SNAPSHOT", request.getVersion() );
+        assertEquals( "preset-groupId", request.getPackage() );
     }
-}
+}
\ No newline at end of file

Propchange: 
maven/archetype/trunk/archetype-plugin/src/test/java/org/apache/maven/archetype/ui/DefaultArchetypeGenerationConfiguratorTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Copied: 
maven/archetype/trunk/archetype-plugin/src/test/java/org/apache/maven/archetype/ui/DefaultArchetypeSelectionQueryerTest.java
 (from r627329, 
maven/archetype/trunk/archetype-plugin/src/test/java/org/apache/maven/archetype/ui/DefaultArchetypeSelectorTest.java)
URL: 
http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-plugin/src/test/java/org/apache/maven/archetype/ui/DefaultArchetypeSelectionQueryerTest.java?p2=maven/archetype/trunk/archetype-plugin/src/test/java/org/apache/maven/archetype/ui/DefaultArchetypeSelectionQueryerTest.java&p1=maven/archetype/trunk/archetype-plugin/src/test/java/org/apache/maven/archetype/ui/DefaultArchetypeSelectorTest.java&r1=627329&r2=627371&rev=627371&view=diff
==============================================================================
--- 
maven/archetype/trunk/archetype-plugin/src/test/java/org/apache/maven/archetype/ui/DefaultArchetypeSelectorTest.java
 (original)
+++ 
maven/archetype/trunk/archetype-plugin/src/test/java/org/apache/maven/archetype/ui/DefaultArchetypeSelectionQueryerTest.java
 Wed Feb 13 04:19:46 2008
@@ -19,111 +19,183 @@
  * under the License.
  */
 
-import org.apache.maven.archetype.ArchetypeGenerationRequest;
 import org.apache.maven.archetype.catalog.Archetype;
-import org.apache.maven.archetype.exception.ArchetypeNotDefined;
-import org.apache.maven.archetype.exception.ArchetypeSelectionFailure;
-import org.apache.maven.archetype.exception.UnknownArchetype;
-import org.apache.maven.archetype.exception.UnknownGroup;
+import org.apache.maven.archetype.common.ArchetypeDefinition;
 import org.codehaus.plexus.PlexusTestCase;
+import org.codehaus.plexus.components.interactivity.Prompter;
 import org.codehaus.plexus.components.interactivity.PrompterException;
+import org.easymock.AbstractMatcher;
+import org.easymock.ArgumentsMatcher;
 import org.easymock.MockControl;
 
-import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collections;
+import java.util.List;
+import java.util.Map;
 
-public class DefaultArchetypeSelectorTest
+public class DefaultArchetypeSelectionQueryerTest
     extends PlexusTestCase
 {
-    private DefaultArchetypeSelector selector;
+    private DefaultArchetypeSelectionQueryer queryer;
 
     public void setUp()
         throws Exception
     {
         super.setUp();
 
-        selector = (DefaultArchetypeSelector) lookup( ArchetypeSelector.ROLE );
+        queryer = (DefaultArchetypeSelectionQueryer) lookup( 
ArchetypeSelectionQueryer.ROLE );
     }
 
-    public void testArchetypeCoordinatesInRequest()
-        throws PrompterException, IOException, UnknownGroup, 
ArchetypeSelectionFailure, UnknownArchetype,
-        ArchetypeNotDefined
+    public void testDefaultArchetypeInMapOtherSelection()
+        throws PrompterException
     {
-        ArchetypeGenerationRequest request = new ArchetypeGenerationRequest();
-        request.setArchetypeArtifactId( "preset-artifactId" );
-        request.setArchetypeGroupId( "preset-groupId" );
-        request.setArchetypeVersion( "preset-version" );
+        Map map = createDefaultArchetypeCatalog();
 
-        MockControl control = MockControl.createControl( 
ArchetypeSelectionQueryer.class );
-
-        ArchetypeSelectionQueryer queryer = (ArchetypeSelectionQueryer) 
control.getMock();
-        // expect it to not be called
+        MockControl control = MockControl.createControl( Prompter.class );
+        Prompter prompter = (Prompter) control.getMock();
+        prompter.prompt( "", Arrays.asList( new String[]{"1", "2"} ), "2" );
+        control.setMatcher( createArgumentMatcher() );
+        control.setReturnValue( "1" );
+        queryer.setPrompter( prompter );
 
         control.replay();
 
-        selector.setArchetypeSelectionQueryer( queryer );
-
-        selector.selectArchetype( request, Boolean.TRUE, "" );
+        ArchetypeDefinition defaultDefinition = new ArchetypeDefinition();
+        defaultDefinition.setGroupId( "default-groupId" );
+        defaultDefinition.setArtifactId( "default-artifactId" );
+        defaultDefinition.setVersion( "default-version" );
+        Archetype archetype = queryer.selectArchetype( map, defaultDefinition 
);
 
         control.verify();
 
-        assertEquals( "preset-groupId", request.getArchetypeGroupId() );
-        assertEquals( "preset-artifactId", request.getArchetypeArtifactId() );
-        assertEquals( "preset-version", request.getArchetypeVersion() );
+        assertEquals( "set-groupId", archetype.getGroupId() );
+        assertEquals( "set-artifactId", archetype.getArtifactId() );
+        assertEquals( "set-version", archetype.getVersion() );
     }
 
-    public void testArchetypeArtifactIdInRequest()
-        throws PrompterException, IOException, UnknownGroup, 
ArchetypeSelectionFailure, UnknownArchetype,
-        ArchetypeNotDefined
+    public void testDefaultArchetypeInMapDefaultSelection()
+        throws PrompterException
     {
-        ArchetypeGenerationRequest request = new ArchetypeGenerationRequest();
-        request.setArchetypeArtifactId( "preset-artifactId" );
+        Map map = createDefaultArchetypeCatalog();
 
-        MockControl control = MockControl.createControl( 
ArchetypeSelectionQueryer.class );
-
-        ArchetypeSelectionQueryer queryer = (ArchetypeSelectionQueryer) 
control.getMock();
-        // expect it to not be called
+        MockControl control = MockControl.createControl( Prompter.class );
+        Prompter prompter = (Prompter) control.getMock();
+        prompter.prompt( "", Arrays.asList( new String[]{"1", "2"} ), "2" );
+        control.setMatcher( createArgumentMatcher() );
+        control.setReturnValue( "2" );
+        queryer.setPrompter( prompter );
 
         control.replay();
 
-        selector.setArchetypeSelectionQueryer( queryer );
-
-        selector.selectArchetype( request, Boolean.TRUE, "" );
+        ArchetypeDefinition defaultDefinition = new ArchetypeDefinition();
+        defaultDefinition.setGroupId( "default-groupId" );
+        defaultDefinition.setArtifactId( "default-artifactId" );
+        defaultDefinition.setVersion( "default-version" );
+        Archetype archetype = queryer.selectArchetype( map, defaultDefinition 
);
 
         control.verify();
 
-        assertEquals( "org.apache.maven.archetypes", 
request.getArchetypeGroupId() );
-        assertEquals( "preset-artifactId", request.getArchetypeArtifactId() );
-        assertEquals( "RELEASE", request.getArchetypeVersion() );
-    }
-
-    public void testArchetypeArtifactIdNotInRequest()
-        throws PrompterException, IOException, UnknownGroup, 
ArchetypeSelectionFailure, UnknownArchetype,
-        ArchetypeNotDefined
-    {
-        ArchetypeGenerationRequest request = new ArchetypeGenerationRequest();
-
-        MockControl control = MockControl.createControl( 
ArchetypeSelectionQueryer.class );
-
-        ArchetypeSelectionQueryer queryer = (ArchetypeSelectionQueryer) 
control.getMock();
-        queryer.selectArchetype( Collections.EMPTY_MAP );
-        control.setMatcher( MockControl.ALWAYS_MATCHER );
-        Archetype archetype = new Archetype();
-        archetype.setArtifactId( "set-artifactId" );
-        archetype.setGroupId( "set-groupId" );
-        archetype.setVersion( "set-version" );
-        control.setReturnValue( archetype );
+        assertEquals( "default-groupId", archetype.getGroupId() );
+        assertEquals( "default-artifactId", archetype.getArtifactId() );
+        assertEquals( "default-version", archetype.getVersion() );
+    }
+
+    public void testDefaultArchetypeNotInMap()
+        throws PrompterException
+    {
+        Map map = createDefaultArchetypeCatalog();
+
+        MockControl control = MockControl.createControl( Prompter.class );
+        Prompter prompter = (Prompter) control.getMock();
+        prompter.prompt( "", Arrays.asList( new String[]{"1", "2"} ) );
+        control.setMatcher( createArgumentMatcher() );
+        control.setReturnValue( "1" );
+        queryer.setPrompter( prompter );
 
         control.replay();
 
-        selector.setArchetypeSelectionQueryer( queryer );
+        ArchetypeDefinition defaultDefinition = new ArchetypeDefinition();
+        defaultDefinition.setGroupId( "invalid-groupId" );
+        defaultDefinition.setArtifactId( "invalid-artifactId" );
+        defaultDefinition.setVersion( "invalid-version" );
+        Archetype archetype = queryer.selectArchetype( map, defaultDefinition 
);
+
+        control.verify();
+
+        assertEquals( "set-groupId", archetype.getGroupId() );
+        assertEquals( "set-artifactId", archetype.getArtifactId() );
+        assertEquals( "set-version", archetype.getVersion() );
+    }
+
+    public void testNoDefaultArchetype()
+        throws PrompterException
+    {
+        Map map = createDefaultArchetypeCatalog();
+
+        MockControl control = MockControl.createControl( Prompter.class );
+        Prompter prompter = (Prompter) control.getMock();
+        prompter.prompt( "", Arrays.asList( new String[]{"1", "2"} ) );
+        control.setMatcher( createArgumentMatcher() );
+        control.setReturnValue( "1" );
+        queryer.setPrompter( prompter );
+
+        control.replay();
 
-        selector.selectArchetype( request, Boolean.TRUE, "" );
+        Archetype archetype = queryer.selectArchetype( map );
 
         control.verify();
 
-        assertEquals( "set-groupId", request.getArchetypeGroupId() );
-        assertEquals( "set-artifactId", request.getArchetypeArtifactId() );
-        assertEquals( "set-version", request.getArchetypeVersion() );
+        assertEquals( "set-groupId", archetype.getGroupId() );
+        assertEquals( "set-artifactId", archetype.getArtifactId() );
+        assertEquals( "set-version", archetype.getVersion() );
+    }
+
+    private static Map createDefaultArchetypeCatalog()
+    {
+        List list = new ArrayList();
+        list.add( createArchetype( "set-groupId", "set-artifactId", 
"set-version" ) );
+        list.add( createArchetype( "default-groupId", "default-artifactId", 
"default-version" ) );
+        return Collections.singletonMap( "internal", list );
+    }
+
+    private static Archetype createArchetype( String groupId, String 
artifactId, String version )
+    {
+        Archetype a = new Archetype();
+        a.setGroupId( groupId );
+        a.setArtifactId( artifactId );
+        a.setVersion( version );
+        return a;
+    }
+
+    private static ArgumentsMatcher createArgumentMatcher()
+    {
+        return new AbstractMatcher()
+        {
+            private boolean isPromptString( Object o )
+            {
+                boolean value = false;
+                if ( o instanceof String )
+                {
+                    String s = (String) o;
+                    if ( s.startsWith( "Choose" ) )
+                    {
+                        // ignore the prompt
+                        value = true;
+                    }
+                }
+                return value;
+            }
+
+            protected boolean argumentMatches( Object o, Object o1 )
+            {
+                return isPromptString( o1 ) || super.argumentMatches( o, o1 );
+            }
+
+            protected String argumentToString( Object o )
+            {
+                return isPromptString( o ) ? "..." : super.argumentToString( o 
);
+            }
+        };
     }
-}
+}
\ No newline at end of file

Propchange: 
maven/archetype/trunk/archetype-plugin/src/test/java/org/apache/maven/archetype/ui/DefaultArchetypeSelectionQueryerTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: 
maven/archetype/trunk/archetype-plugin/src/test/java/org/apache/maven/archetype/ui/DefaultArchetypeSelectorTest.java
URL: 
http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-plugin/src/test/java/org/apache/maven/archetype/ui/DefaultArchetypeSelectorTest.java?rev=627371&r1=627370&r2=627371&view=diff
==============================================================================
--- 
maven/archetype/trunk/archetype-plugin/src/test/java/org/apache/maven/archetype/ui/DefaultArchetypeSelectorTest.java
 (original)
+++ 
maven/archetype/trunk/archetype-plugin/src/test/java/org/apache/maven/archetype/ui/DefaultArchetypeSelectorTest.java
 Wed Feb 13 04:19:46 2008
@@ -21,16 +21,20 @@
 
 import org.apache.maven.archetype.ArchetypeGenerationRequest;
 import org.apache.maven.archetype.catalog.Archetype;
+import org.apache.maven.archetype.common.ArchetypeDefinition;
 import org.apache.maven.archetype.exception.ArchetypeNotDefined;
 import org.apache.maven.archetype.exception.ArchetypeSelectionFailure;
 import org.apache.maven.archetype.exception.UnknownArchetype;
 import org.apache.maven.archetype.exception.UnknownGroup;
 import org.codehaus.plexus.PlexusTestCase;
 import org.codehaus.plexus.components.interactivity.PrompterException;
+import org.easymock.AbstractMatcher;
+import org.easymock.ArgumentsMatcher;
 import org.easymock.MockControl;
 
 import java.io.IOException;
 import java.util.Collections;
+import java.util.Map;
 
 public class DefaultArchetypeSelectorTest
     extends PlexusTestCase
@@ -106,7 +110,7 @@
         MockControl control = MockControl.createControl( 
ArchetypeSelectionQueryer.class );
 
         ArchetypeSelectionQueryer queryer = (ArchetypeSelectionQueryer) 
control.getMock();
-        queryer.selectArchetype( Collections.EMPTY_MAP );
+        queryer.selectArchetype( Collections.EMPTY_MAP, new 
ArchetypeDefinition() );
         control.setMatcher( MockControl.ALWAYS_MATCHER );
         Archetype archetype = new Archetype();
         archetype.setArtifactId( "set-artifactId" );
@@ -125,5 +129,134 @@
         assertEquals( "set-groupId", request.getArchetypeGroupId() );
         assertEquals( "set-artifactId", request.getArchetypeArtifactId() );
         assertEquals( "set-version", request.getArchetypeVersion() );
+    }
+
+    public void testArchetypeNotInRequestDefaultsInBatchMode()
+        throws PrompterException, IOException, UnknownGroup, 
ArchetypeSelectionFailure, UnknownArchetype,
+        ArchetypeNotDefined
+    {
+        ArchetypeGenerationRequest request = new ArchetypeGenerationRequest();
+
+        MockControl control = MockControl.createControl( 
ArchetypeSelectionQueryer.class );
+
+        ArchetypeSelectionQueryer queryer = (ArchetypeSelectionQueryer) 
control.getMock();
+        // expect it to not be called
+
+        control.replay();
+
+        selector.setArchetypeSelectionQueryer( queryer );
+
+        selector.selectArchetype( request, Boolean.FALSE, "" );
+
+        control.verify();
+
+        assertEquals( "org.apache.maven.archetypes", 
request.getArchetypeGroupId() );
+        assertEquals( "maven-archetype-quickstart", 
request.getArchetypeArtifactId() );
+        assertEquals( "RELEASE", request.getArchetypeVersion() );
+    }
+
+    public void testArchetypeNotInRequestDefaults()
+        throws PrompterException, IOException, UnknownGroup, 
ArchetypeSelectionFailure, UnknownArchetype,
+        ArchetypeNotDefined
+    {
+        ArchetypeGenerationRequest request = new ArchetypeGenerationRequest();
+
+        MockControl control = MockControl.createControl( 
ArchetypeSelectionQueryer.class );
+
+        ArchetypeSelectionQueryer queryer = (ArchetypeSelectionQueryer) 
control.getMock();
+        queryer.selectArchetype( Collections.EMPTY_MAP, 
createDefaultArchetypeDefinition() );
+        control.setMatcher( createArgumentMatcher() );
+        Archetype archetype = new Archetype();
+        archetype.setArtifactId( "set-artifactId" );
+        archetype.setGroupId( "set-groupId" );
+        archetype.setVersion( "set-version" );
+        control.setReturnValue( archetype );
+
+        control.replay();
+
+        selector.setArchetypeSelectionQueryer( queryer );
+
+        selector.selectArchetype( request, Boolean.TRUE, "" );
+
+        control.verify();
+
+        assertEquals( "set-groupId", request.getArchetypeGroupId() );
+        assertEquals( "set-artifactId", request.getArchetypeArtifactId() );
+        assertEquals( "set-version", request.getArchetypeVersion() );
+    }
+
+    private ArchetypeDefinition createDefaultArchetypeDefinition()
+    {
+        ArchetypeDefinition definition = new ArchetypeDefinition();
+        definition.setGroupId( "org.apache.maven.archetypes" );
+        definition.setArtifactId( "maven-archetype-quickstart" );
+        definition.setVersion( "RELEASE" );
+        return definition;
+    }
+
+    private static ArgumentsMatcher createArgumentMatcher()
+    {
+        return new AbstractMatcher()
+        {
+            protected boolean argumentMatches( Object o, Object o1 )
+            {
+                return !( o instanceof ArchetypeDefinition ) ||
+                    compareArchetypeDefinition( (ArchetypeDefinition) o, 
(ArchetypeDefinition) o1 );
+            }
+
+            private boolean compareArchetypeDefinition( ArchetypeDefinition o, 
ArchetypeDefinition o1 )
+            {
+                if ( o1 == o )
+                {
+                    return true;
+                }
+                if ( o == null )
+                {
+                    return false;
+                }
+
+                if ( o1.getArtifactId() != null
+                    ? !o1.getArtifactId().equals( o.getArtifactId() )
+                    : o.getArtifactId() != null )
+                {
+                    return false;
+                }
+                if ( o1.getGroupId() != null ? !o1.getGroupId().equals( 
o.getGroupId() ) : o.getGroupId() != null )
+                {
+                    return false;
+                }
+                if ( o1.getName() != null ? !o1.getName().equals( o.getName() 
) : o.getName() != null )
+                {
+                    return false;
+                }
+                if ( o1.getVersion() != null ? !o1.getVersion().equals( 
o.getVersion() ) : o.getVersion() != null )
+                {
+                    return false;
+                }
+                if ( o1.getGoals() != null ? !o1.getGoals().equals( 
o.getGoals() ) : o.getGoals() != null )
+                {
+                    return false;
+                }
+                if ( o1.getRepository() != null
+                    ? !o1.getRepository().equals( o.getRepository() )
+                    : o.getRepository() != null )
+                {
+                    return false;
+                }
+
+                return true;
+            }
+
+            protected String argumentToString( Object o )
+            {
+                return o instanceof Map ? "..." : toString( 
(ArchetypeDefinition) o );
+            }
+
+            private String toString( ArchetypeDefinition archetypeDefinition )
+            {
+                return "groupId = " + archetypeDefinition.getGroupId() + ", " 
+ "artifactId = " +
+                    archetypeDefinition.getArtifactId() + ", " + "version = " 
+ archetypeDefinition.getVersion();
+            }
+        };
     }
 }


Reply via email to