You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by br...@apache.org on 2007/08/29 04:43:59 UTC
svn commit: r570618 [11/14] - in /maven/sandbox/trunk/archetypeng: ./
archetype-common/ archetype-common/src/ archetype-common/src/main/
archetype-common/src/main/java/ archetype-common/src/main/java/org/
archetype-common/src/main/java/org/apache/ arch...
Added: maven/sandbox/trunk/archetypeng/archetype-generator/src/test/java/org/apache/maven/archetype/generator/DefaultArchetypeGeneratorTest.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/archetype-generator/src/test/java/org/apache/maven/archetype/generator/DefaultArchetypeGeneratorTest.java?rev=570618&view=auto
==============================================================================
--- maven/sandbox/trunk/archetypeng/archetype-generator/src/test/java/org/apache/maven/archetype/generator/DefaultArchetypeGeneratorTest.java (added)
+++ maven/sandbox/trunk/archetypeng/archetype-generator/src/test/java/org/apache/maven/archetype/generator/DefaultArchetypeGeneratorTest.java Tue Aug 28 19:43:33 2007
@@ -0,0 +1,847 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.maven.archetype.generator;
+
+import org.apache.maven.archetype.common.DefaultArchetypeFilesResolver;
+import org.apache.maven.archetype.exception.ArchetypeNotConfigured;
+import org.apache.maven.archetype.exception.ArchetypeNotDefined;
+import org.apache.maven.archetype.metadata.FileSet;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.repository.DefaultArtifactRepository;
+import org.apache.maven.artifact.repository.layout.DefaultRepositoryLayout;
+import org.apache.maven.model.Dependency;
+import org.apache.maven.model.Model;
+import org.apache.maven.model.Plugin;
+import org.apache.maven.model.ReportPlugin;
+import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
+import org.apache.maven.plugin.testing.AbstractMojoTestCase;
+
+import org.codehaus.plexus.util.FileUtils;
+import org.codehaus.plexus.util.IOUtil;
+import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.IOException;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Properties;
+
+public class DefaultArchetypeGeneratorTest
+extends AbstractMojoTestCase
+{
+ ArtifactRepository localRepository;
+ List repositories;
+
+ public void testArchetypeNotDefined ()
+ throws Exception
+ {
+ System.out.println ( "testArchetypeNotDefined" );
+
+ String project = "generate-2";
+ File propertyFile = getPropertiesFile ( project );
+ File propertyFileSample = getPropertiesSampleFile ( project );
+ copy ( propertyFileSample, propertyFile );
+
+ String basedir = propertyFile.getParent ();
+
+ DefaultArchetypeGenerator instance =
+ (DefaultArchetypeGenerator) lookup ( ArchetypeGenerator.ROLE );
+ instanceDefined ( instance );
+
+ try
+ {
+ instance.generateArchetype ( propertyFile, localRepository, repositories, basedir );
+
+ fail ( "Exception must be thrown" );
+ }
+ catch ( ArchetypeNotDefined e )
+ {
+ assertEquals (
+ "Exception not correct",
+ "The archetype is not defined",
+ e.getMessage ()
+ );
+ }
+ }
+
+ public void testGenerateArchetypeCompleteWithoutParent ()
+ throws Exception
+ {
+ System.out.println ( "testGenerateArchetypeCompleteWithoutParent" );
+
+ String project = "generate-4";
+ File propertyFile = getPropertiesFile ( project );
+ File propertyFileSample = getPropertiesSampleFile ( project );
+ copy ( propertyFileSample, propertyFile );
+
+ String basedir = propertyFile.getParent ();
+
+ File projectDirectory = new File ( basedir, "file-value" );
+ assertDeleted ( projectDirectory );
+
+ DefaultArchetypeGenerator instance =
+ (DefaultArchetypeGenerator) lookup ( ArchetypeGenerator.ROLE );
+ instanceDefined ( instance );
+
+ instance.generateArchetype ( propertyFile, localRepository, repositories, basedir );
+
+ String template;
+ template = "src/main/java/file/value/package/App.java";
+ assertTemplateContent ( projectDirectory, template );
+
+ template = "src/main/java/file/value/package/inner/package/App2.java";
+ assertTemplateContent ( projectDirectory, template );
+
+ template = "src/main/c/file/value/package/App.c";
+ assertTemplateContent ( projectDirectory, template );
+
+ template = "src/test/java/file/value/package/AppTest.java";
+ assertTemplateContent ( projectDirectory, template );
+
+ template = "src/test/c/file/value/package/AppTest.c";
+ assertTemplateContent ( projectDirectory, template );
+
+ template = "src/main/resources/App.properties";
+ assertTemplateContent ( projectDirectory, template );
+
+ template = "src/main/resources/inner/dir/App2.properties";
+ assertTemplateContent ( projectDirectory, template );
+
+ template = "src/main/mdo/App.mdo";
+ assertTemplateContent ( projectDirectory, template );
+
+ template = "src/test/resources/AppTest.properties";
+ assertTemplateContent ( projectDirectory, template );
+
+ template = "src/test/mdo/AppTest.mdo";
+ assertTemplateContent ( projectDirectory, template );
+
+ Model model = readPom ( getProjectFile ( project + File.separator + "file-value" ) );
+ assertNull ( model.getParent () );
+ assertEquals ( "file-value", model.getGroupId () );
+ assertEquals ( "file-value", model.getArtifactId () );
+ assertEquals ( "file-value", model.getVersion () );
+ }
+
+ public void testGenerateArchetypeCompleteWithParent ()
+ throws Exception
+ {
+ System.out.println ( "testGenerateArchetypeCompleteWithParent" );
+
+ String project = "generate-5";
+ File propertyFile = getPropertiesFile ( project );
+ File propertyFileSample = getPropertiesSampleFile ( project );
+ copy ( propertyFileSample, propertyFile );
+
+ File projectFile = getProjectFile ( project );
+ File projectFileSample = getProjectSampleFile ( project );
+ copy ( projectFileSample, projectFile );
+
+ String basedir = propertyFile.getParent ();
+ assertDeleted ( new File ( basedir, "file-value" ) );
+
+ DefaultArchetypeGenerator instance =
+ (DefaultArchetypeGenerator) lookup ( ArchetypeGenerator.ROLE );
+ instanceDefined ( instance );
+
+ instance.generateArchetype ( propertyFile, localRepository, repositories, basedir );
+
+ Model model = readPom ( getProjectFile ( project + File.separator + "file-value" ) );
+ assertEquals ( "org.apache.maven.archetype", model.getParent ().getGroupId () );
+ assertEquals ( "test-generate-5-parent", model.getParent ().getArtifactId () );
+ assertEquals ( "1.0-SNAPSHOT", model.getParent ().getVersion () );
+ assertEquals ( "file-value", model.getGroupId () );
+ assertEquals ( "file-value", model.getArtifactId () );
+ assertEquals ( "file-value", model.getVersion () );
+
+ Model parentModel = readPom ( projectFile );
+ assertTrue ( parentModel.getModules ().contains ( "file-value" ) );
+ }
+
+ public void testGenerateArchetypePartialOnChild ()
+ throws Exception
+ {
+ System.out.println ( "testGenerateArchetypePartialOnChild" );
+
+ String project = "generate-8";
+ File propertyFile = getPropertiesFile ( project );
+ File propertyFileSample = getPropertiesSampleFile ( project );
+ copy ( propertyFileSample, propertyFile );
+
+ File parentProjectFile = getProjectFile ( project );
+ File parentProjectFileSample = getProjectSampleFile ( project );
+ copy ( parentProjectFileSample, parentProjectFile );
+
+ File projectFile = getProjectFile ( project + File.separator + "file-value" );
+ File projectFileSample = getProjectSampleFile ( project + File.separator + "file-value" );
+ copy ( projectFileSample, projectFile );
+
+ String basedir = propertyFile.getParent ();
+ assertDeleted ( new File ( basedir, "file-value" + File.separator + "src" ) );
+
+ DefaultArchetypeGenerator instance =
+ (DefaultArchetypeGenerator) lookup ( ArchetypeGenerator.ROLE );
+ instanceDefined ( instance );
+
+ instance.generateArchetype ( propertyFile, localRepository, repositories, basedir );
+
+ Model model = readPom ( getProjectFile ( project + File.separator + "file-value" ) );
+ assertNotNull ( model.getParent () );
+ assertEquals ( "org.apache.maven.archetype", model.getGroupId () );
+ assertEquals ( "file-value", model.getArtifactId () );
+ assertEquals ( "1.0-SNAPSHOT", model.getVersion () );
+ assertTrue ( model.getModules ().isEmpty () );
+ assertFalse ( model.getDependencies ().isEmpty () );
+ assertFalse ( model.getBuild ().getPlugins ().isEmpty () );
+ assertFalse ( model.getReporting ().getPlugins ().isEmpty () );
+ }
+
+ public void testGenerateArchetypePartialOnChildDontOverride ()
+ throws Exception
+ {
+ System.out.println ( "testGenerateArchetypePartialOnChildDontOverride" );
+
+ String project = "generate-9";
+ File propertyFile = getPropertiesFile ( project );
+ File propertyFileSample = getPropertiesSampleFile ( project );
+ copy ( propertyFileSample, propertyFile );
+
+ File parentProjectFile = getProjectFile ( project );
+ File parentProjectFileSample = getProjectSampleFile ( project );
+ copy ( parentProjectFileSample, parentProjectFile );
+
+ File projectFile = getProjectFile ( project + File.separator + "file-value" );
+ File projectFileSample = getProjectSampleFile ( project + File.separator + "file-value" );
+ copy ( projectFileSample, projectFile );
+
+ String basedir = propertyFile.getParent ();
+ assertDeleted ( new File ( basedir, "file-value" + File.separator + "src" ) );
+
+ DefaultArchetypeGenerator instance =
+ (DefaultArchetypeGenerator) lookup ( ArchetypeGenerator.ROLE );
+ instanceDefined ( instance );
+
+ instance.generateArchetype ( propertyFile, localRepository, repositories, basedir );
+
+ Model model = readPom ( getProjectFile ( project + File.separator + "file-value" ) );
+ assertNotNull ( model.getParent () );
+ assertEquals ( "org.apache.maven.archetype", model.getGroupId () );
+ assertEquals ( "file-value", model.getArtifactId () );
+ assertEquals ( "1.0-SNAPSHOT", model.getVersion () );
+ assertTrue ( model.getModules ().isEmpty () );
+ assertFalse ( model.getDependencies ().isEmpty () );
+ assertEquals ( "1.0", ( (Dependency) model.getDependencies ().get ( 0 ) ).getVersion () );
+ assertFalse ( model.getBuild ().getPlugins ().isEmpty () );
+ assertEquals (
+ "1.0",
+ ( (Plugin) model.getBuild ().getPlugins ().get ( 0 ) ).getVersion ()
+ );
+ assertFalse ( model.getReporting ().getPlugins ().isEmpty () );
+ assertEquals (
+ "1.0",
+ ( (ReportPlugin) model.getReporting ().getPlugins ().get ( 0 ) ).getVersion ()
+ );
+ }
+
+ public void testGenerateArchetypePartialOnParent ()
+ throws Exception
+ {
+ System.out.println ( "testGenerateArchetypePartialOnParent" );
+
+ String project = "generate-7";
+ File propertyFile = getPropertiesFile ( project );
+ File propertyFileSample = getPropertiesSampleFile ( project );
+ copy ( propertyFileSample, propertyFile );
+
+ File projectFile = getProjectFile ( project );
+ File projectFileSample = getProjectSampleFile ( project );
+ copy ( projectFileSample, projectFile );
+
+ String basedir = propertyFile.getParent ();
+ assertDeleted ( new File ( basedir, "src" ) );
+
+ DefaultArchetypeGenerator instance =
+ (DefaultArchetypeGenerator) lookup ( ArchetypeGenerator.ROLE );
+ instanceDefined ( instance );
+
+ instance.generateArchetype ( propertyFile, localRepository, repositories, basedir );
+
+ Model model = readPom ( getProjectFile ( project ) );
+ assertNull ( model.getParent () );
+ assertEquals ( "org.apache.maven.archetype", model.getGroupId () );
+ assertEquals ( "test-generate-7", model.getArtifactId () );
+ assertEquals ( "1.0-SNAPSHOT", model.getVersion () );
+ assertTrue ( model.getModules ().isEmpty () );
+ assertFalse ( model.getBuild ().getPlugins ().isEmpty () );
+ }
+
+ public void testGenerateArchetypePartialWithoutPoms ()
+ throws Exception
+ {
+ System.out.println ( "testGenerateArchetypePartialWithoutPoms" );
+
+ String project = "generate-6";
+ File propertyFile = getPropertiesFile ( project );
+ File propertyFileSample = getPropertiesSampleFile ( project );
+ copy ( propertyFileSample, propertyFile );
+
+ String basedir = propertyFile.getParent ();
+
+ File projectDirectory = new File ( basedir, "file-value" );
+ assertDeleted ( projectDirectory );
+
+ DefaultArchetypeGenerator instance =
+ (DefaultArchetypeGenerator) lookup ( ArchetypeGenerator.ROLE );
+ instanceDefined ( instance );
+
+ instance.generateArchetype ( propertyFile, localRepository, repositories, basedir );
+
+ Model model = readPom ( getProjectFile ( project + File.separator + "file-value" ) );
+ assertNull ( model.getParent () );
+ assertEquals ( "file-value", model.getGroupId () );
+ assertEquals ( "file-value", model.getArtifactId () );
+ assertEquals ( "file-value", model.getVersion () );
+ }
+
+ public void testGenerateArchetypeSite ()
+ throws Exception
+ {
+ System.out.println ( "testGenerateArchetypeSite" );
+
+ String project = "generate-10";
+ File propertyFile = getPropertiesFile ( project );
+ File propertyFileSample = getPropertiesSampleFile ( project );
+ copy ( propertyFileSample, propertyFile );
+
+ String basedir = propertyFile.getParent ();
+
+ File projectDirectory = new File ( basedir, "file-value" );
+ assertDeleted ( projectDirectory );
+
+ DefaultArchetypeGenerator instance =
+ (DefaultArchetypeGenerator) lookup ( ArchetypeGenerator.ROLE );
+ instanceDefined ( instance );
+
+ instance.generateArchetype ( propertyFile, localRepository, repositories, basedir );
+
+ String template;
+ template = "src/site/site.xml";
+ assertTemplateContent ( projectDirectory, template );
+
+ template = "src/site/apt/test.apt";
+ assertTemplateContent ( projectDirectory, template );
+
+ Model model = readPom ( getProjectFile ( project + File.separator + "file-value" ) );
+ assertNull ( model.getParent () );
+ assertEquals ( "file-value", model.getGroupId () );
+ assertEquals ( "file-value", model.getArtifactId () );
+ assertEquals ( "file-value", model.getVersion () );
+ }
+
+ public void testGenerateFileSetArchetype ()
+ throws Exception
+ {
+ System.out.println ( "testGenerateFileSetArchetype" );
+
+ String project = "generate-12";
+ File propertyFile = getPropertiesFile ( project );
+ File propertyFileSample = getPropertiesSampleFile ( project );
+ copy ( propertyFileSample, propertyFile );
+
+ String basedir = propertyFile.getParent ();
+
+ File projectDirectory = new File ( basedir, "file-value" );
+ assertDeleted ( projectDirectory );
+
+ DefaultArchetypeGenerator instance =
+ (DefaultArchetypeGenerator) lookup ( ArchetypeGenerator.ROLE );
+ instanceDefined ( instance );
+
+ instance.generateArchetype ( propertyFile, localRepository, repositories, basedir );
+
+ Model model;
+ String template;
+
+ template = "src/main/java/file/value/package/App.java";
+ assertTemplateContentGeneratedWithFileSetArchetype (
+ projectDirectory,
+ template,
+ "file-value"
+ );
+
+ template = "src/main/java/file/value/package/inner/package/App2.java";
+ assertTemplateContentGeneratedWithFileSetArchetype (
+ projectDirectory,
+ template,
+ "file-value"
+ );
+
+ template = "src/main/java/file/value/package/App.ogg";
+ assertTemplateCopiedWithFileSetArchetype ( projectDirectory, template );
+
+ template = "src/main/resources/App.properties";
+ assertTemplateContentGeneratedWithFileSetArchetype (
+ projectDirectory,
+ template,
+ "file-value"
+ );
+
+ template = "src/main/resources/some-dir/App.png";
+ assertTemplateCopiedWithFileSetArchetype ( projectDirectory, template );
+
+ template = "src/site/site.xml";
+ assertTemplateContentGeneratedWithFileSetArchetype (
+ projectDirectory,
+ template,
+ "file-value"
+ );
+
+ template = "src/site/apt/usage.apt";
+ assertTemplateContentGeneratedWithFileSetArchetype (
+ projectDirectory,
+ template,
+ "file-value"
+ );
+
+ template = ".classpath";
+ assertTemplateContentGeneratedWithFileSetArchetype (
+ projectDirectory,
+ template,
+ "file-value"
+ );
+
+ template = "profiles.xml";
+ assertTemplateContentGeneratedWithFileSetArchetype (
+ projectDirectory,
+ template,
+ "file-value"
+ );
+
+ model = readPom ( getProjectFile ( project + File.separator + "file-value" ) );
+ assertNull ( model.getParent () );
+ assertEquals ( "file-value", model.getGroupId () );
+ assertEquals ( "file-value", model.getArtifactId () );
+ assertEquals ( "file-value", model.getVersion () );
+
+ template = "subproject/src/main/java/file/value/package/App.java";
+ assertTemplateContentGeneratedWithFileSetArchetype (
+ projectDirectory,
+ template,
+ "subproject"
+ );
+
+ model =
+ readPom ( getProjectFile ( project + File.separator + "file-value" + "/subproject/" ) );
+ assertNotNull ( model.getParent () );
+ assertEquals ( "file-value", model.getParent ().getGroupId () );
+ assertEquals ( "file-value", model.getParent ().getArtifactId () );
+ assertEquals ( "file-value", model.getParent ().getVersion () );
+ assertEquals ( "file-value", model.getGroupId () );
+ assertEquals ( "subproject", model.getArtifactId () );
+ assertEquals ( "file-value", model.getVersion () );
+
+ template = "subproject/subsubproject/src/main/java/file/value/package/App.java";
+ assertTemplateContentGeneratedWithFileSetArchetype (
+ projectDirectory,
+ template,
+ "subsubproject"
+ );
+
+ model =
+ readPom (
+ getProjectFile (
+ project + File.separator + "file-value" + "/subproject/subsubproject/"
+ )
+ );
+ assertNotNull ( model.getParent () );
+ assertEquals ( "file-value", model.getParent ().getGroupId () );
+ assertEquals ( "subproject", model.getParent ().getArtifactId () );
+ assertEquals ( "file-value", model.getParent ().getVersion () );
+ assertEquals ( "file-value", model.getGroupId () );
+ assertEquals ( "subsubproject", model.getArtifactId () );
+ assertEquals ( "file-value", model.getVersion () );
+ }
+
+ public void testGenerateOldArchetype ()
+ throws Exception
+ {
+ System.out.println ( "testGenerateOldArchetype" );
+
+ String project = "generate-11";
+ File propertyFile = getPropertiesFile ( project );
+ File propertyFileSample = getPropertiesSampleFile ( project );
+ copy ( propertyFileSample, propertyFile );
+
+ String basedir = propertyFile.getParent ();
+
+ File projectDirectory = new File ( basedir, "file-value" );
+ assertDeleted ( projectDirectory );
+
+ DefaultArchetypeGenerator instance =
+ (DefaultArchetypeGenerator) lookup ( ArchetypeGenerator.ROLE );
+ instanceDefined ( instance );
+
+ instance.generateArchetype ( propertyFile, localRepository, repositories, basedir );
+
+ String template;
+ template = "src/main/java/file/value/package/App.java";
+ assertTemplateContentGeneratedWithOldArchetype ( projectDirectory, template );
+
+ template = "src/main/resources/App.properties";
+ assertTemplateContentGeneratedWithOldArchetype ( projectDirectory, template );
+
+ template = "src/site/site.xml";
+ assertTemplateContentGeneratedWithOldArchetype ( projectDirectory, template );
+
+ Model model = readPom ( getProjectFile ( project + File.separator + "file-value" ) );
+ assertNull ( model.getParent () );
+ assertEquals ( "file-value", model.getGroupId () );
+ assertEquals ( "file-value", model.getArtifactId () );
+ assertEquals ( "file-value", model.getVersion () );
+ }
+
+ public void testNoPropertyFile ()
+ throws Exception
+ {
+ System.out.println ( "testNoPropertyFile" );
+
+ String project = "generate-1";
+ File propertyFile = getPropertiesFile ( project );
+ String basedir = propertyFile.getParent ();
+
+ DefaultArchetypeGenerator instance =
+ (DefaultArchetypeGenerator) lookup ( ArchetypeGenerator.ROLE );
+ instanceDefined ( instance );
+
+ try
+ {
+ instance.generateArchetype ( propertyFile, localRepository, repositories, basedir );
+
+ fail ( "Exception must be thrown" );
+ }
+ catch ( FileNotFoundException e )
+ {
+ /* Commented out as error messages are localised by default, and I (rafale)
+ * don't know how to have unlocalised messages from the exception object. String
+ * errorMessage = e.getMessage (); assertTrue ( "Exception not correct",
+ * errorMessage.contains ( "No such file or directory" ) || errorMessage.contains (
+ * "The system cannot find the file specified" ) );
+ */
+ }
+ }
+
+ public void testPropertiesNotDefined ()
+ throws Exception
+ {
+ System.out.println ( "testPropertiesNotDefined" );
+
+ String project = "generate-3";
+ File propertyFile = getPropertiesFile ( project );
+ File propertyFileSample = getPropertiesSampleFile ( project );
+ copy ( propertyFileSample, propertyFile );
+
+ String basedir = propertyFile.getParent ();
+
+ DefaultArchetypeGenerator instance =
+ (DefaultArchetypeGenerator) lookup ( ArchetypeGenerator.ROLE );
+ instanceDefined ( instance );
+
+ try
+ {
+ instance.generateArchetype ( propertyFile, localRepository, repositories, basedir );
+
+ fail ( "Exception must be thrown" );
+ }
+ catch ( ArchetypeNotConfigured e )
+ {
+ assertEquals (
+ "Exception not correct",
+ "The archetype is not configured",
+ e.getMessage ()
+ );
+ }
+ }
+
+ public void testResourceFiltering ()
+ throws Exception
+ {
+ FileSet fileSet = new FileSet ();
+
+ fileSet.addInclude ( "**/*.java" );
+
+ fileSet.setDirectory ( "src/main/java" );
+ fileSet.setEncoding ( "UTF-8" );
+ fileSet.setPackaged ( true );
+ fileSet.setFiltered ( true );
+
+ List archetypeResources = new ArrayList ();
+
+ archetypeResources.add ( "pom.xml" );
+ archetypeResources.add ( "App.java" );
+ archetypeResources.add ( "src/main/c/App.c" );
+ archetypeResources.add ( "src/main/java/App.java" );
+ archetypeResources.add ( "src/main/java/inner/package/App2.java" );
+ archetypeResources.add ( "src/main/mdo/App.mdo" );
+ archetypeResources.add ( "src/main/resources/App.properties" );
+ archetypeResources.add ( "src/main/resources/inner/dir/App2.properties" );
+ archetypeResources.add ( "src/test/c/AppTest.c" );
+ archetypeResources.add ( "src/test/java/AppTest.java" );
+ archetypeResources.add ( "src/test/mdo/AppTest.mdo" );
+ archetypeResources.add ( "src/test/resources/AppTest.properties" );
+
+ System.out.println ( "FileSet:" + fileSet );
+ System.out.println ( "Resources:" + archetypeResources );
+
+ DefaultArchetypeFilesResolver resolver = new DefaultArchetypeFilesResolver ();
+
+ List fileSetResources = resolver.filterFiles ( "", fileSet, archetypeResources );
+ System.out.println ( "Result:" + fileSetResources );
+ assertEquals ( 2, fileSetResources.size () );
+ }
+
+ protected void tearDown ()
+ throws Exception
+ {
+ super.tearDown ();
+ }
+
+ protected void setUp ()
+ throws Exception
+ {
+ super.setUp ();
+
+ localRepository =
+ new DefaultArtifactRepository (
+ "local",
+ new File ( getBasedir (), "target/test-classes/repositories/local" ).toURI ()
+ .toString (),
+ new DefaultRepositoryLayout ()
+ );
+
+ repositories =
+ Arrays.asList (
+ new ArtifactRepository[]
+ {
+ new DefaultArtifactRepository (
+ "central",
+ new File ( getBasedir (), "target/test-classes/repositories/central" )
+ .toURI ().toString (),
+ new DefaultRepositoryLayout ()
+ )
+ }
+ );
+ }
+
+ /**
+ * This method attempts to delete a directory or file if it exists. If the file exists after
+ * deletion, it throws a failure.
+ *
+ * @param file to delete.
+ */
+ private void assertDeleted ( File file )
+ {
+ if ( file.exists () )
+ {
+ if ( file.isDirectory () )
+ {
+ try
+ {
+ FileUtils.deleteDirectory ( file );
+ }
+ catch ( IOException e )
+ {
+ fail ( "Unable to delete directory:" + file + ":" + e.getLocalizedMessage () );
+ }
+ }
+ }
+ else
+ {
+ try
+ {
+ FileUtils.forceDelete ( file );
+ }
+ catch ( IOException e )
+ {
+ fail ( "Unable to delete file:" + file + ":" + e.getLocalizedMessage () );
+ e.printStackTrace ();
+ }
+ }
+
+ if ( file.exists () )
+ {
+ fail ( "File not deleted:" + file );
+ }
+ }
+
+ private void assertTemplateContent ( final File projectDirectory, final String template )
+ throws IOException
+ {
+ Properties properties = loadProperties ( projectDirectory, template );
+ assertEquals ( "file-value", properties.getProperty ( "groupId" ) );
+ assertEquals ( "file-value", properties.getProperty ( "artifactId" ) );
+ assertEquals ( "file-value", properties.getProperty ( "version" ) );
+ assertEquals ( "file.value.package", properties.getProperty ( "package" ) );
+ assertEquals ( "file-value", properties.getProperty ( "property-with-default-1" ) );
+ assertEquals ( "file-value", properties.getProperty ( "property-with-default-2" ) );
+ assertEquals ( "file-value", properties.getProperty ( "property-with-default-3" ) );
+ assertEquals ( "file-value", properties.getProperty ( "property-with-default-4" ) );
+ assertEquals ( "file-value", properties.getProperty ( "property-without-default-1" ) );
+ assertEquals ( "file-value", properties.getProperty ( "property-without-default-2" ) );
+ assertEquals ( "file-value", properties.getProperty ( "property-without-default-3" ) );
+ assertEquals ( "file-value", properties.getProperty ( "property-without-default-4" ) );
+ }
+
+ private void assertTemplateContentGeneratedWithFileSetArchetype (
+ File projectDirectory,
+ String template,
+ String artifactId
+ )
+ throws IOException
+ {
+ Properties properties = loadProperties ( projectDirectory, template );
+ assertEquals ( "file-value", properties.getProperty ( "groupId" ) );
+ assertEquals ( artifactId, properties.getProperty ( "artifactId" ) );
+ assertEquals ( "file-value", properties.getProperty ( "version" ) );
+ assertEquals ( "file.value.package", properties.getProperty ( "package" ) );
+ }
+
+ private void assertTemplateContentGeneratedWithOldArchetype (
+ final File projectDirectory,
+ final String template
+ )
+ throws IOException
+ {
+ Properties properties = loadProperties ( projectDirectory, template );
+ assertEquals ( "file-value", properties.getProperty ( "groupId" ) );
+ assertEquals ( "file-value", properties.getProperty ( "artifactId" ) );
+ assertEquals ( "file-value", properties.getProperty ( "version" ) );
+ assertEquals ( "file.value.package", properties.getProperty ( "package" ) );
+ }
+
+ private void assertTemplateCopiedWithFileSetArchetype ( File projectDirectory, String template )
+ throws IOException
+ {
+ Properties properties = loadProperties ( projectDirectory, template );
+ assertEquals ( "${groupId}", properties.getProperty ( "groupId" ) );
+ assertEquals ( "${artifactId}", properties.getProperty ( "artifactId" ) );
+ assertEquals ( "${version}", properties.getProperty ( "version" ) );
+ assertEquals ( "${package}", properties.getProperty ( "package" ) );
+ }
+
+ private void copy ( final File in, final File out )
+ throws IOException, FileNotFoundException
+ {
+ assertTrue ( !out.exists () || out.delete () );
+ assertFalse ( out.exists () );
+ IOUtil.copy ( new FileReader ( in ), new FileWriter ( out ) );
+ assertTrue ( out.exists () );
+ assertTrue ( in.exists () );
+ }
+
+ private void instanceDefined ( DefaultArchetypeGenerator instance )
+ throws IllegalAccessException
+ {
+ assertNotNull ( instance );
+ assertNotNull ( getVariableValueFromObject ( instance, "archetypeArtifactManager" ) );
+ assertNotNull ( getVariableValueFromObject ( instance, "archetypeFactory" ) );
+ assertNotNull ( getVariableValueFromObject ( instance, "archetypePropertiesManager" ) );
+ assertNotNull ( getVariableValueFromObject ( instance, "oldArchetype" ) );
+ assertNotNull ( getVariableValueFromObject ( instance, "filesetGenerator" ) );
+ }
+
+ private Properties loadProperties ( File propertyFile )
+ throws IOException, FileNotFoundException
+ {
+ Properties properties = new Properties ();
+ properties.load ( new FileInputStream ( propertyFile ) );
+ return properties;
+ }
+
+ private Properties loadProperties ( final File projectDirectory, final String template )
+ throws IOException
+ {
+ File templateFile = new File ( projectDirectory, template );
+ if ( !templateFile.exists () )
+ {
+ fail ( "Missing File:" + templateFile );
+ }
+
+ Properties properties = loadProperties ( templateFile );
+ return properties;
+ }
+
+ private File getProjectFile ( String project )
+ {
+ return new File ( getBasedir (), "target/test-classes/projects/" + project + "/pom.xml" );
+ }
+
+ private File getProjectSampleFile ( String project )
+ {
+ return
+ new File (
+ getBasedir (),
+ "target/test-classes/projects/" + project + "/pom.xml.sample"
+ );
+ }
+
+ private File getPropertiesFile ( String project )
+ {
+ return
+ new File (
+ getBasedir (),
+ "target/test-classes/projects/" + project + "/archetype.properties"
+ );
+ }
+
+ private File getPropertiesSampleFile ( final String project )
+ {
+ return
+ new File (
+ getBasedir (),
+ "target/test-classes/projects/" + project + "/archetype.properties.sample"
+ );
+ }
+
+ private Model readPom ( final File pomFile )
+ throws IOException, XmlPullParserException
+ {
+ Model generatedModel;
+ FileReader pomReader = null;
+ try
+ {
+ pomReader = new FileReader ( pomFile );
+
+ MavenXpp3Reader reader = new MavenXpp3Reader ();
+
+ generatedModel = reader.read ( pomReader );
+ }
+ finally
+ {
+ IOUtil.close ( pomReader );
+ }
+ return generatedModel;
+ }
+}
Added: maven/sandbox/trunk/archetypeng/archetype-generator/src/test/java/org/apache/maven/archetype/generator/DefaultArchetypeSelectorTest.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/archetype-generator/src/test/java/org/apache/maven/archetype/generator/DefaultArchetypeSelectorTest.java?rev=570618&view=auto
==============================================================================
--- maven/sandbox/trunk/archetypeng/archetype-generator/src/test/java/org/apache/maven/archetype/generator/DefaultArchetypeSelectorTest.java (added)
+++ maven/sandbox/trunk/archetypeng/archetype-generator/src/test/java/org/apache/maven/archetype/generator/DefaultArchetypeSelectorTest.java Tue Aug 28 19:43:33 2007
@@ -0,0 +1,663 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.maven.archetype.generator;
+
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.repository.DefaultArtifactRepository;
+import org.apache.maven.artifact.repository.layout.DefaultRepositoryLayout;
+import org.apache.maven.plugin.testing.AbstractMojoTestCase;
+
+import org.codehaus.plexus.util.IOUtil;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.IOException;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Properties;
+
+public class DefaultArchetypeSelectorTest
+extends AbstractMojoTestCase
+{
+ ArtifactRepository localRepository;
+ List repositories;
+
+ public void testBatchModeNoPropertyDefined ()
+ throws Exception
+ {
+ System.out.println ( "testBatchModeNoPropertyDefined" );
+
+ String archetypeGroupId = null;
+ String archetypeArtifactId = null;
+ String archetypeVersion = null;
+
+ Boolean interactiveMode = Boolean.FALSE;
+ String project = "select-1";
+ File propertyFile = getPropertiesFile ( project );
+ assertTrue ( !propertyFile.exists () || propertyFile.delete () );
+
+ File archetypeRegistryFile = getRegistryFile ( project );
+
+ DefaultArchetypeSelector instance =
+ (DefaultArchetypeSelector) lookup ( ArchetypeSelector.ROLE );
+ instanceDefined ( instance );
+
+ assertFalse ( propertyFile.exists () );
+
+ try
+ {
+ instance.selectArchetype (
+ archetypeGroupId,
+ archetypeArtifactId,
+ archetypeVersion,
+ interactiveMode,
+ propertyFile,
+ archetypeRegistryFile,
+ localRepository,
+ repositories
+ );
+
+ fail ( "Exception must be thrown" );
+ }
+ catch ( Exception e )
+ {
+ assertEquals (
+ "Exception not correct",
+ "The archetype is not defined",
+ e.getMessage ()
+ );
+ assertFalse ( propertyFile.exists () );
+ }
+ }
+
+ public void testBatchModePropertiesDefinedInFile ()
+ throws Exception
+ {
+ System.out.println ( "testBatchModePropertiesDefinedInFile" );
+
+ String archetypeGroupId = null;
+ String archetypeArtifactId = null;
+ String archetypeVersion = null;
+
+ Boolean interactiveMode = Boolean.FALSE;
+
+ String project = "select-2";
+ File propertyFile = getPropertiesFile ( project );
+ File propertyFileSample = getPropertiesSampleFile ( project );
+ copy ( propertyFileSample, propertyFile );
+
+ File archetypeRegistryFile = getRegistryFile ( project );
+
+ DefaultArchetypeSelector instance =
+ (DefaultArchetypeSelector) lookup ( ArchetypeSelector.ROLE );
+
+ instanceDefined ( instance );
+
+ assertTrue ( propertyFile.exists () );
+
+ instance.selectArchetype (
+ archetypeGroupId,
+ archetypeArtifactId,
+ archetypeVersion,
+ interactiveMode,
+ propertyFile,
+ archetypeRegistryFile,
+ localRepository,
+ repositories
+ );
+
+ assertTrue ( propertyFile.exists () );
+
+ Properties properties = loadProperties ( propertyFile );
+ assertEquals ( "archetypes", properties.getProperty ( "archetype.groupId" ) );
+ assertEquals ( "basic", properties.getProperty ( "archetype.artifactId" ) );
+ assertEquals ( "1.0", properties.getProperty ( "archetype.version" ) );
+ }
+
+ public void testBatchModePropertiesDefinedInSystem ()
+ throws Exception
+ {
+ System.out.println ( "testBatchModePropertiesDefinedInSystem" );
+
+ String archetypeGroupId = "archetypes";
+ String archetypeArtifactId = "basic";
+ String archetypeVersion = "1.0";
+
+ Boolean interactiveMode = Boolean.FALSE;
+
+ String project = "select-3";
+ File propertyFile = getPropertiesFile ( project );
+ assertTrue ( !propertyFile.exists () || propertyFile.delete () );
+
+ File archetypeRegistryFile = getRegistryFile ( project );
+
+ DefaultArchetypeSelector instance =
+ (DefaultArchetypeSelector) lookup ( ArchetypeSelector.ROLE );
+
+ instanceDefined ( instance );
+
+ assertFalse ( propertyFile.exists () );
+
+ instance.selectArchetype (
+ archetypeGroupId,
+ archetypeArtifactId,
+ archetypeVersion,
+ interactiveMode,
+ propertyFile,
+ archetypeRegistryFile,
+ localRepository,
+ repositories
+ );
+
+ assertTrue ( propertyFile.exists () );
+
+ Properties properties = loadProperties ( propertyFile );
+ assertEquals ( "archetypes", properties.getProperty ( "archetype.groupId" ) );
+ assertEquals ( "basic", properties.getProperty ( "archetype.artifactId" ) );
+ assertEquals ( "1.0", properties.getProperty ( "archetype.version" ) );
+ }
+
+ public void testBatchModePropertiesOverrided ()
+ throws Exception
+ {
+ System.out.println ( "testBatchModePropertiesOverrided" );
+
+ String archetypeGroupId = "archetypes";
+ String archetypeArtifactId = "dont-exist";
+ String archetypeVersion = "1.0";
+
+ Boolean interactiveMode = Boolean.FALSE;
+
+ String project = "select-4";
+ File propertyFile = getPropertiesFile ( project );
+ File propertyFileSample = getPropertiesSampleFile ( project );
+ copy ( propertyFileSample, propertyFile );
+
+ File archetypeRegistryFile = getRegistryFile ( project );
+
+ DefaultArchetypeSelector instance =
+ (DefaultArchetypeSelector) lookup ( ArchetypeSelector.ROLE );
+
+ instanceDefined ( instance );
+
+ assertTrue ( propertyFile.exists () );
+
+ try
+ {
+ instance.selectArchetype (
+ archetypeGroupId,
+ archetypeArtifactId,
+ archetypeVersion,
+ interactiveMode,
+ propertyFile,
+ archetypeRegistryFile,
+ localRepository,
+ repositories
+ );
+
+ fail ( "Exception must be thrown" );
+ }
+ catch ( Exception e )
+ {
+ assertEquals (
+ "Exception not correct",
+ "The desired archetype does not exist (" + archetypeGroupId + ":"
+ + archetypeArtifactId + ":" + archetypeVersion + ")",
+ e.getMessage ()
+ );
+ assertTrue ( propertyFile.exists () );
+
+ Properties properties = loadProperties ( propertyFile );
+ assertEquals ( "archetypes", properties.getProperty ( "archetype.groupId" ) );
+ assertEquals ( "basic", properties.getProperty ( "archetype.artifactId" ) );
+ assertEquals ( "1.0", properties.getProperty ( "archetype.version" ) );
+ }
+ }
+
+ public void testInteractiveModePropertiesDefinedInFileAndAskedWithoutConfirmation ()
+ throws Exception
+ {
+ System.out.println (
+ "testInteractiveModePropertiesDefinedInFileAndAskedWithoutConfirmation"
+ );
+
+ String archetypeGroupId = null;
+ String archetypeArtifactId = null;
+ String archetypeVersion = null;
+
+ Boolean interactiveMode = Boolean.TRUE;
+
+ String project = "select-8";
+ File propertyFile = getPropertiesFile ( project );
+ File propertyFileSample = getPropertiesSampleFile ( project );
+ copy ( propertyFileSample, propertyFile );
+
+ File archetypeRegistryFile = getRegistryFile ( project );
+
+ DefaultArchetypeSelector instance =
+ (DefaultArchetypeSelector) lookup ( ArchetypeSelector.ROLE );
+
+ instanceDefined ( instance );
+
+ assertTrue ( propertyFile.exists () );
+
+ MockPrompter prompter = new MockPrompter ();
+ prompter.addAnswer ( "1" );
+ prompter.addAnswer ( "N" );
+ prompter.addAnswer ( "1" );
+ prompter.addAnswer ( "1" );
+ prompter.addAnswer ( "Y" );
+ setVariableValueToObject (
+ getVariableValueFromObject ( instance, "archetypeSelectionQueryer" ),
+ "prompter",
+ prompter
+ );
+
+ instance.selectArchetype (
+ archetypeGroupId,
+ archetypeArtifactId,
+ archetypeVersion,
+ interactiveMode,
+ propertyFile,
+ archetypeRegistryFile,
+ localRepository,
+ repositories
+ );
+
+ assertTrue ( propertyFile.exists () );
+
+ Properties properties = loadProperties ( propertyFile );
+ assertEquals ( "archetypes", properties.getProperty ( "archetype.groupId" ) );
+ assertEquals ( "basic", properties.getProperty ( "archetype.artifactId" ) );
+ assertEquals ( "1.0", properties.getProperty ( "archetype.version" ) );
+ }
+
+ public void testInteractiveModePropertiesDefinedInFileWithoutConfirmation ()
+ throws Exception
+ {
+ System.out.println ( "testInteractiveModePropertiesDefinedInFileWithoutConfirmation" );
+
+ String archetypeGroupId = "archetypes";
+ String archetypeArtifactId = "basic";
+ String archetypeVersion = "1.0";
+
+ Boolean interactiveMode = Boolean.TRUE;
+
+ String project = "select-7";
+ File propertyFile = getPropertiesFile ( project );
+ File propertyFileSample = getPropertiesSampleFile ( project );
+ copy ( propertyFileSample, propertyFile );
+
+ File archetypeRegistryFile = getRegistryFile ( project );
+
+ DefaultArchetypeSelector instance =
+ (DefaultArchetypeSelector) lookup ( ArchetypeSelector.ROLE );
+
+ instanceDefined ( instance );
+
+ assertTrue ( propertyFile.exists () );
+
+ MockPrompter prompter = new MockPrompter ();
+ prompter.addAnswer ( "N" );
+ prompter.addAnswer ( "1" );
+ prompter.addAnswer ( "1" );
+ prompter.addAnswer ( "Y" );
+ setVariableValueToObject (
+ getVariableValueFromObject ( instance, "archetypeSelectionQueryer" ),
+ "prompter",
+ prompter
+ );
+
+ instance.selectArchetype (
+ archetypeGroupId,
+ archetypeArtifactId,
+ archetypeVersion,
+ interactiveMode,
+ propertyFile,
+ archetypeRegistryFile,
+ localRepository,
+ repositories
+ );
+
+ assertTrue ( propertyFile.exists () );
+
+ Properties properties = loadProperties ( propertyFile );
+ assertEquals ( "archetypes", properties.getProperty ( "archetype.groupId" ) );
+ assertEquals ( "basic", properties.getProperty ( "archetype.artifactId" ) );
+ assertEquals ( "1.0", properties.getProperty ( "archetype.version" ) );
+ }
+
+ public void testInteractiveModePropertiesDefinedInSystemAndAskedMissing ()
+ throws Exception
+ {
+ System.out.println ( "testInteractiveModePropertiesDefinedInSystemAndAskedMissing" );
+
+ String archetypeGroupId = "archetypes";
+ String archetypeArtifactId = "basic";
+ String archetypeVersion = null;
+
+ Boolean interactiveMode = Boolean.TRUE;
+
+ String project = "select-6";
+ File propertyFile = getPropertiesFile ( project );
+ assertTrue ( !propertyFile.exists () || propertyFile.delete () );
+
+ File archetypeRegistryFile = getRegistryFile ( project );
+
+ DefaultArchetypeSelector instance =
+ (DefaultArchetypeSelector) lookup ( ArchetypeSelector.ROLE );
+
+ instanceDefined ( instance );
+
+ assertFalse ( propertyFile.exists () );
+
+ MockPrompter prompter = new MockPrompter ();
+ prompter.addAnswer ( "1" );
+ prompter.addAnswer ( "Y" );
+ setVariableValueToObject (
+ getVariableValueFromObject ( instance, "archetypeSelectionQueryer" ),
+ "prompter",
+ prompter
+ );
+
+ instance.selectArchetype (
+ archetypeGroupId,
+ archetypeArtifactId,
+ archetypeVersion,
+ interactiveMode,
+ propertyFile,
+ archetypeRegistryFile,
+ localRepository,
+ repositories
+ );
+
+ assertTrue ( propertyFile.exists () );
+
+ Properties properties = loadProperties ( propertyFile );
+ assertEquals ( "archetypes", properties.getProperty ( "archetype.groupId" ) );
+ assertEquals ( "basic", properties.getProperty ( "archetype.artifactId" ) );
+ assertEquals ( "1.0", properties.getProperty ( "archetype.version" ) );
+ }
+
+ public void testInteractiveModePropertiesNotDefined ()
+ throws Exception
+ {
+ System.out.println ( "testInteractiveModePropertiesNotDefined" );
+
+ String archetypeGroupId = null;
+ String archetypeArtifactId = null;
+ String archetypeVersion = null;
+
+ Boolean interactiveMode = Boolean.TRUE;
+
+ String project = "select-5";
+ File propertyFile = getPropertiesFile ( project );
+ assertTrue ( !propertyFile.exists () || propertyFile.delete () );
+
+ File archetypeRegistryFile = getRegistryFile ( project );
+
+ DefaultArchetypeSelector instance =
+ (DefaultArchetypeSelector) lookup ( ArchetypeSelector.ROLE );
+
+ instanceDefined ( instance );
+
+ assertFalse ( propertyFile.exists () );
+
+ MockPrompter prompter = new MockPrompter ();
+ prompter.addAnswer ( "2" );
+ prompter.addAnswer ( "1" );
+ prompter.addAnswer ( "1" );
+ prompter.addAnswer ( "Y" );
+ setVariableValueToObject (
+ getVariableValueFromObject ( instance, "archetypeSelectionQueryer" ),
+ "prompter",
+ prompter
+ );
+
+ instance.selectArchetype (
+ archetypeGroupId,
+ archetypeArtifactId,
+ archetypeVersion,
+ interactiveMode,
+ propertyFile,
+ archetypeRegistryFile,
+ localRepository,
+ repositories
+ );
+
+ assertTrue ( propertyFile.exists () );
+
+ Properties properties = loadProperties ( propertyFile );
+ assertEquals ( "archetypes", properties.getProperty ( "archetype.groupId" ) );
+ assertEquals ( "basic", properties.getProperty ( "archetype.artifactId" ) );
+ assertEquals ( "1.0", properties.getProperty ( "archetype.version" ) );
+ }
+
+
+ public void testInteractiveModeUnknownGroup ()
+ throws Exception
+ {
+ System.out.println ( "testInteractiveModeUnknownGroup" );
+
+ String archetypeGroupId = null;
+ String archetypeArtifactId = null;
+ String archetypeVersion = null;
+
+ Boolean interactiveMode = Boolean.TRUE;
+
+ String project = "select-9";
+ File propertyFile = getPropertiesFile ( project );
+ assertTrue ( !propertyFile.exists () || propertyFile.delete () );
+
+ File archetypeRegistryFile = getRegistryFile ( project );
+
+ DefaultArchetypeSelector instance =
+ (DefaultArchetypeSelector) lookup ( ArchetypeSelector.ROLE );
+
+ instanceDefined ( instance );
+
+ assertFalse ( propertyFile.exists () );
+
+ MockPrompter prompter = new MockPrompter ();
+ prompter.addAnswer ( "1" );
+ prompter.addAnswer ( "1" );
+ prompter.addAnswer ( "1" );
+ prompter.addAnswer ( "1" );
+ prompter.addAnswer ( "Y" );
+ setVariableValueToObject (
+ getVariableValueFromObject ( instance, "archetypeSelectionQueryer" ),
+ "prompter",
+ prompter
+ );
+
+ instance.selectArchetype (
+ archetypeGroupId,
+ archetypeArtifactId,
+ archetypeVersion,
+ interactiveMode,
+ propertyFile,
+ archetypeRegistryFile,
+ localRepository,
+ repositories
+ );
+
+ assertTrue ( propertyFile.exists () );
+
+ Properties properties = loadProperties ( propertyFile );
+ assertEquals ( "archetypes", properties.getProperty ( "archetype.groupId" ) );
+ assertEquals ( "basic", properties.getProperty ( "archetype.artifactId" ) );
+ assertEquals ( "1.0", properties.getProperty ( "archetype.version" ) );
+ }
+
+ public void testInteractiveModeUnknownGroups ()
+ throws Exception
+ {
+ System.out.println ( "testInteractiveModeUnknownGroups" );
+
+ String archetypeGroupId = null;
+ String archetypeArtifactId = null;
+ String archetypeVersion = null;
+
+ Boolean interactiveMode = Boolean.TRUE;
+
+ String project = "select-10";
+ File propertyFile = getPropertiesFile ( project );
+ assertTrue ( !propertyFile.exists () || propertyFile.delete () );
+
+ File archetypeRegistryFile = getRegistryFile ( project );
+
+ DefaultArchetypeSelector instance =
+ (DefaultArchetypeSelector) lookup ( ArchetypeSelector.ROLE );
+
+ instanceDefined ( instance );
+
+ assertFalse ( propertyFile.exists () );
+
+ MockPrompter prompter = new MockPrompter ();
+ prompter.addAnswer ( "1" );
+ prompter.addAnswer ( "1" );
+ prompter.addAnswer ( "1" );
+ setVariableValueToObject (
+ getVariableValueFromObject ( instance, "archetypeSelectionQueryer" ),
+ "prompter",
+ prompter
+ );
+
+ try
+ {
+ instance.selectArchetype (
+ archetypeGroupId,
+ archetypeArtifactId,
+ archetypeVersion,
+ interactiveMode,
+ propertyFile,
+ archetypeRegistryFile,
+ localRepository,
+ repositories
+ );
+
+ fail ( "Exception must be thrown" );
+ }
+ catch ( Exception e )
+ {
+ assertEquals (
+ "Exception not correct",
+ "No registered group contain an archetype",
+ e.getMessage ()
+ );
+ assertFalse ( propertyFile.exists () );
+ }
+ }
+
+ protected void tearDown ()
+ throws Exception
+ {
+ super.tearDown ();
+ }
+
+ protected void setUp ()
+ throws Exception
+ {
+ super.setUp ();
+
+ localRepository =
+ new DefaultArtifactRepository (
+ "local",
+ new File ( getBasedir (), "target/test-classes/repositories/local" ).toURI ()
+ .toString (),
+ new DefaultRepositoryLayout ()
+ );
+
+ repositories =
+ Arrays.asList (
+ new ArtifactRepository[]
+ {
+ new DefaultArtifactRepository (
+ "central",
+ new File ( getBasedir (), "target/test-classes/repositories/central" )
+ .toURI ().toString (),
+ new DefaultRepositoryLayout ()
+ )
+ }
+ );
+ }
+
+ private void copy ( final File in, final File out )
+ throws IOException, FileNotFoundException
+ {
+ assertTrue ( !out.exists () || out.delete () );
+ assertFalse ( out.exists () );
+ IOUtil.copy ( new FileReader ( in ), new FileWriter ( out ) );
+ assertTrue ( out.exists () );
+ assertTrue ( in.exists () );
+ }
+
+ private void instanceDefined ( final DefaultArchetypeSelector instance )
+ throws IllegalAccessException
+ {
+ assertNotNull ( instance );
+ assertNotNull ( getVariableValueFromObject ( instance, "archetypeArtifactManager" ) );
+ assertNotNull ( getVariableValueFromObject ( instance, "archetypeFactory" ) );
+ assertNotNull ( getVariableValueFromObject ( instance, "archetypePropertiesManager" ) );
+ assertNotNull ( getVariableValueFromObject ( instance, "archetypeRegistryManager" ) );
+ assertNotNull ( getVariableValueFromObject ( instance, "archetypeSelectionQueryer" ) );
+ }
+
+ private Properties loadProperties ( File propertyFile )
+ throws IOException, FileNotFoundException
+ {
+ Properties properties = new Properties ();
+ properties.load ( new FileInputStream ( propertyFile ) );
+ return properties;
+ }
+
+ private File getPropertiesFile ( String project )
+ {
+ return
+ new File (
+ getBasedir (),
+ "target/test-classes/projects/" + project + "/archetype.properties"
+ );
+ }
+
+ private File getPropertiesSampleFile ( final String project )
+ {
+ File propertyFileSample =
+ new File (
+ getBasedir (),
+ "target/test-classes/projects/" + project + "/archetype.properties.sample"
+ );
+ return propertyFileSample;
+ }
+
+ private File getRegistryFile ( final String project )
+ {
+ File archetypeRegistryFile =
+ new File (
+ getBasedir (),
+ "target/test-classes/projects/" + project + "/archetype.xml"
+ );
+ return archetypeRegistryFile;
+ }
+}
Added: maven/sandbox/trunk/archetypeng/archetype-generator/src/test/java/org/apache/maven/archetype/generator/MockPrompter.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/archetype-generator/src/test/java/org/apache/maven/archetype/generator/MockPrompter.java?rev=570618&view=auto
==============================================================================
--- maven/sandbox/trunk/archetypeng/archetype-generator/src/test/java/org/apache/maven/archetype/generator/MockPrompter.java (added)
+++ maven/sandbox/trunk/archetypeng/archetype-generator/src/test/java/org/apache/maven/archetype/generator/MockPrompter.java Tue Aug 28 19:43:33 2007
@@ -0,0 +1,97 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.maven.archetype.generator;
+
+import org.codehaus.plexus.components.interactivity.Prompter;
+import org.codehaus.plexus.components.interactivity.PrompterException;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class MockPrompter
+implements Prompter
+{
+ List prompts = new ArrayList ();
+
+ public void addAnswer ( String prompt )
+ {
+ prompts.add ( prompt );
+ }
+
+ public String prompt ( String string )
+ throws PrompterException
+ {
+ System.err.println ( string );
+
+ String answer = (String) prompts.remove ( 0 );
+ System.err.println ( "answer = " + answer );
+ return answer;
+ }
+
+ public String prompt ( String string, String string0 )
+ throws PrompterException
+ {
+ System.err.println ( string );
+ System.err.println ( string0 );
+
+ String answer = (String) prompts.remove ( 0 );
+ System.err.println ( "answer = " + answer );
+ return answer;
+ }
+
+ public String prompt ( String string, List list )
+ throws PrompterException
+ {
+ System.err.println ( string );
+ System.err.println ( list );
+
+ String answer = (String) prompts.remove ( 0 );
+ System.err.println ( "answer = " + answer );
+ return answer;
+ }
+
+ public String prompt ( String string, List list, String string0 )
+ throws PrompterException
+ {
+ System.err.println ( string );
+ System.err.println ( list );
+ System.err.println ( string0 );
+
+ String answer = (String) prompts.remove ( 0 );
+ System.err.println ( "answer = " + answer );
+ return answer;
+ }
+
+ public String promptForPassword ( String string )
+ throws PrompterException
+ {
+ System.err.println ( string );
+
+ String answer = (String) prompts.remove ( 0 );
+ System.err.println ( "answer = " + answer );
+ return answer;
+ }
+
+ public void showMessage ( String string )
+ throws PrompterException
+ {
+ System.err.println ( string );
+ }
+}
Added: maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/configure-1/dummy
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/configure-1/dummy?rev=570618&view=auto
==============================================================================
(empty)
Added: maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/configure-2/archetype.properties.sample
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/configure-2/archetype.properties.sample?rev=570618&view=auto
==============================================================================
--- maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/configure-2/archetype.properties.sample (added)
+++ maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/configure-2/archetype.properties.sample Tue Aug 28 19:43:33 2007
@@ -0,0 +1,5 @@
+#
+#Tue Jan 23 23:34:16 CET 2007
+archetype.groupId=archetypes
+archetype.artifactId=basic
+archetype.version=1.0
Added: maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/configure-3/archetype.properties.sample
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/configure-3/archetype.properties.sample?rev=570618&view=auto
==============================================================================
--- maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/configure-3/archetype.properties.sample (added)
+++ maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/configure-3/archetype.properties.sample Tue Aug 28 19:43:33 2007
@@ -0,0 +1,5 @@
+#
+#Tue Jan 23 23:34:16 CET 2007
+archetype.groupId=archetypes
+archetype.artifactId=basic
+archetype.version=1.0
Added: maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/configure-4/archetype.properties.sample
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/configure-4/archetype.properties.sample?rev=570618&view=auto
==============================================================================
--- maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/configure-4/archetype.properties.sample (added)
+++ maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/configure-4/archetype.properties.sample Tue Aug 28 19:43:33 2007
@@ -0,0 +1,17 @@
+#
+#Tue Jan 23 23:34:16 CET 2007
+archetype.groupId=archetypes
+archetype.artifactId=basic
+archetype.version=1.0
+groupId=file-value
+artifactId=file-value
+version=file-value
+package=file-value
+property-without-default-4=file-value
+property-without-default-3=file-value
+property-without-default-2=file-value
+property-without-default-1=file-value
+property-with-default-4=file-value
+property-with-default-3=file-value
+property-with-default-2=file-value
+property-with-default-1=file-value
Added: maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/configure-5/archetype.properties.sample
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/configure-5/archetype.properties.sample?rev=570618&view=auto
==============================================================================
--- maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/configure-5/archetype.properties.sample (added)
+++ maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/configure-5/archetype.properties.sample Tue Aug 28 19:43:33 2007
@@ -0,0 +1,5 @@
+#
+#Tue Jan 23 23:34:16 CET 2007
+archetype.groupId=archetypes
+archetype.artifactId=basic
+archetype.version=1.0
Added: maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/configure-6/archetype.properties.sample
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/configure-6/archetype.properties.sample?rev=570618&view=auto
==============================================================================
--- maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/configure-6/archetype.properties.sample (added)
+++ maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/configure-6/archetype.properties.sample Tue Aug 28 19:43:33 2007
@@ -0,0 +1,8 @@
+#
+#Tue Jan 23 23:34:16 CET 2007
+archetype.groupId=archetypes
+archetype.artifactId=basic
+archetype.version=1.0
+artifactId=file-value
+property-without-default-2=file-value
+property-with-default-2=file-value
Added: maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/configure-7/archetype.properties.sample
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/configure-7/archetype.properties.sample?rev=570618&view=auto
==============================================================================
--- maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/configure-7/archetype.properties.sample (added)
+++ maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/configure-7/archetype.properties.sample Tue Aug 28 19:43:33 2007
@@ -0,0 +1,5 @@
+#
+#Tue Jan 23 23:34:16 CET 2007
+archetype.groupId=archetypes
+archetype.artifactId=old
+archetype.version=1.0
Added: maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/configure-8/archetype.properties.sample
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/configure-8/archetype.properties.sample?rev=570618&view=auto
==============================================================================
--- maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/configure-8/archetype.properties.sample (added)
+++ maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/configure-8/archetype.properties.sample Tue Aug 28 19:43:33 2007
@@ -0,0 +1,5 @@
+#
+#Tue Jan 23 23:34:16 CET 2007
+archetype.groupId=archetypes
+archetype.artifactId=old
+archetype.version=1.0
Added: maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/configure-9/archetype.properties.sample
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/configure-9/archetype.properties.sample?rev=570618&view=auto
==============================================================================
--- maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/configure-9/archetype.properties.sample (added)
+++ maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/configure-9/archetype.properties.sample Tue Aug 28 19:43:33 2007
@@ -0,0 +1,5 @@
+#
+#Tue Jan 23 23:34:16 CET 2007
+archetype.groupId=archetypes
+archetype.artifactId=fileset
+archetype.version=1.0
Added: maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/generate-1/dummy
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/generate-1/dummy?rev=570618&view=auto
==============================================================================
(empty)
Added: maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/generate-10/archetype.properties.sample
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/generate-10/archetype.properties.sample?rev=570618&view=auto
==============================================================================
--- maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/generate-10/archetype.properties.sample (added)
+++ maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/generate-10/archetype.properties.sample Tue Aug 28 19:43:33 2007
@@ -0,0 +1,17 @@
+#
+#Tue Jan 23 23:34:16 CET 2007
+archetype.groupId=archetypes
+archetype.artifactId=site
+archetype.version=1.0
+groupId=file-value
+artifactId=file-value
+version=file-value
+package=file.value.package
+property-without-default-1=file-value
+property-without-default-2=file-value
+property-without-default-3=file-value
+property-without-default-4=file-value
+property-with-default-1=file-value
+property-with-default-2=file-value
+property-with-default-3=file-value
+property-with-default-4=file-value
Added: maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/generate-11/archetype.properties.sample
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/generate-11/archetype.properties.sample?rev=570618&view=auto
==============================================================================
--- maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/generate-11/archetype.properties.sample (added)
+++ maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/generate-11/archetype.properties.sample Tue Aug 28 19:43:33 2007
@@ -0,0 +1,9 @@
+#
+#Tue Jan 23 23:34:16 CET 2007
+archetype.groupId=archetypes
+archetype.artifactId=old
+archetype.version=1.0
+groupId=file-value
+artifactId=file-value
+version=file-value
+package=file.value.package
Added: maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/generate-12/archetype.properties.sample
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/generate-12/archetype.properties.sample?rev=570618&view=auto
==============================================================================
--- maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/generate-12/archetype.properties.sample (added)
+++ maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/generate-12/archetype.properties.sample Tue Aug 28 19:43:33 2007
@@ -0,0 +1,17 @@
+#
+#Tue Jan 23 23:34:16 CET 2007
+archetype.groupId=archetypes
+archetype.artifactId=fileset
+archetype.version=1.0
+groupId=file-value
+artifactId=file-value
+version=file-value
+package=file.value.package
+property-without-default-1=file-value
+property-without-default-2=file-value
+property-without-default-3=file-value
+property-without-default-4=file-value
+property-with-default-1=file-value
+property-with-default-2=file-value
+property-with-default-3=file-value
+property-with-default-4=file-value
Added: maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/generate-2/archetype.properties.sample
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/generate-2/archetype.properties.sample?rev=570618&view=auto
==============================================================================
--- maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/generate-2/archetype.properties.sample (added)
+++ maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/generate-2/archetype.properties.sample Tue Aug 28 19:43:33 2007
@@ -0,0 +1,2 @@
+archetype.groupId=archetypes
+archetype.version=1.0
Added: maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/generate-3/archetype.properties.sample
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/generate-3/archetype.properties.sample?rev=570618&view=auto
==============================================================================
--- maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/generate-3/archetype.properties.sample (added)
+++ maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/generate-3/archetype.properties.sample Tue Aug 28 19:43:33 2007
@@ -0,0 +1,3 @@
+archetype.groupId=archetypes
+archetype.artifactId=basic
+archetype.version=1.0
\ No newline at end of file
Added: maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/generate-4/archetype.properties.sample
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/generate-4/archetype.properties.sample?rev=570618&view=auto
==============================================================================
--- maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/generate-4/archetype.properties.sample (added)
+++ maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/generate-4/archetype.properties.sample Tue Aug 28 19:43:33 2007
@@ -0,0 +1,17 @@
+#
+#Tue Jan 23 23:34:16 CET 2007
+archetype.groupId=archetypes
+archetype.artifactId=basic
+archetype.version=1.0
+groupId=file-value
+artifactId=file-value
+version=file-value
+package=file.value.package
+property-without-default-1=file-value
+property-without-default-2=file-value
+property-without-default-3=file-value
+property-without-default-4=file-value
+property-with-default-1=file-value
+property-with-default-2=file-value
+property-with-default-3=file-value
+property-with-default-4=file-value
Added: maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/generate-5/archetype.properties.sample
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/generate-5/archetype.properties.sample?rev=570618&view=auto
==============================================================================
--- maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/generate-5/archetype.properties.sample (added)
+++ maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/generate-5/archetype.properties.sample Tue Aug 28 19:43:33 2007
@@ -0,0 +1,17 @@
+#
+#Tue Jan 23 23:34:16 CET 2007
+archetype.groupId=archetypes
+archetype.artifactId=basic
+archetype.version=1.0
+groupId=file-value
+artifactId=file-value
+version=file-value
+package=file.value.package
+property-without-default-1=file-value
+property-without-default-2=file-value
+property-without-default-3=file-value
+property-without-default-4=file-value
+property-with-default-1=file-value
+property-with-default-2=file-value
+property-with-default-3=file-value
+property-with-default-4=file-value
Added: maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/generate-5/pom.xml.sample
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/generate-5/pom.xml.sample?rev=570618&view=auto
==============================================================================
--- maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/generate-5/pom.xml.sample (added)
+++ maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/generate-5/pom.xml.sample Tue Aug 28 19:43:33 2007
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+<project
+ xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <groupId>org.apache.maven.archetype</groupId>
+ <artifactId>test-generate-5-parent</artifactId>
+ <version>1.0-SNAPSHOT</version>
+
+ <name>Maven ArchetypeNG Test Generate 5 parent</name>
+ <packaging>pom</packaging>
+
+</project>
Added: maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/generate-6/archetype.properties.sample
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/generate-6/archetype.properties.sample?rev=570618&view=auto
==============================================================================
--- maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/generate-6/archetype.properties.sample (added)
+++ maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/generate-6/archetype.properties.sample Tue Aug 28 19:43:33 2007
@@ -0,0 +1,9 @@
+#
+#Tue Jan 23 23:34:16 CET 2007
+archetype.groupId=archetypes
+archetype.artifactId=partial
+archetype.version=1.0
+groupId=file-value
+artifactId=file-value
+version=file-value
+package=file.value.package
Added: maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/generate-7/archetype.properties.sample
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/generate-7/archetype.properties.sample?rev=570618&view=auto
==============================================================================
--- maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/generate-7/archetype.properties.sample (added)
+++ maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/generate-7/archetype.properties.sample Tue Aug 28 19:43:33 2007
@@ -0,0 +1,17 @@
+#
+#Tue Jan 23 23:34:16 CET 2007
+archetype.groupId=archetypes
+archetype.artifactId=partial
+archetype.version=1.0
+groupId=file-value
+artifactId=file-value
+version=file-value
+package=file.value.package
+property-without-default-1=file-value
+property-without-default-2=file-value
+property-without-default-3=file-value
+property-without-default-4=file-value
+property-with-default-1=file-value
+property-with-default-2=file-value
+property-with-default-3=file-value
+property-with-default-4=file-value
Added: maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/generate-7/pom.xml.sample
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/generate-7/pom.xml.sample?rev=570618&view=auto
==============================================================================
--- maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/generate-7/pom.xml.sample (added)
+++ maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/generate-7/pom.xml.sample Tue Aug 28 19:43:33 2007
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+<project
+ xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <groupId>org.apache.maven.archetype</groupId>
+ <artifactId>test-generate-7</artifactId>
+ <version>1.0-SNAPSHOT</version>
+
+ <name>Maven ArchetypeNG Test Generate 7</name>
+ <packaging>jar</packaging>
+
+</project>
Added: maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/generate-8/archetype.properties.sample
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/generate-8/archetype.properties.sample?rev=570618&view=auto
==============================================================================
--- maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/generate-8/archetype.properties.sample (added)
+++ maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/generate-8/archetype.properties.sample Tue Aug 28 19:43:33 2007
@@ -0,0 +1,17 @@
+#
+#Tue Jan 23 23:34:16 CET 2007
+archetype.groupId=archetypes
+archetype.artifactId=partial
+archetype.version=1.0
+groupId=file-value
+artifactId=file-value
+version=file-value
+package=file.value.package
+property-without-default-1=file-value
+property-without-default-2=file-value
+property-without-default-3=file-value
+property-without-default-4=file-value
+property-with-default-1=file-value
+property-with-default-2=file-value
+property-with-default-3=file-value
+property-with-default-4=file-value
Added: maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/generate-8/file-value/pom.xml.sample
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/generate-8/file-value/pom.xml.sample?rev=570618&view=auto
==============================================================================
--- maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/generate-8/file-value/pom.xml.sample (added)
+++ maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/generate-8/file-value/pom.xml.sample Tue Aug 28 19:43:33 2007
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+<project
+ xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.apache.maven.archetype</groupId>
+ <artifactId>test-generate-8-parent</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+
+ <groupId>org.apache.maven.archetype</groupId>
+ <artifactId>file-value</artifactId>
+ <version>1.0-SNAPSHOT</version>
+
+ <name>Maven ArchetypeNG Test Generate 8</name>
+ <packaging>jar</packaging>
+
+</project>
Added: maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/generate-8/pom.xml.sample
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/generate-8/pom.xml.sample?rev=570618&view=auto
==============================================================================
--- maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/generate-8/pom.xml.sample (added)
+++ maven/sandbox/trunk/archetypeng/archetype-generator/src/test/resources/projects/generate-8/pom.xml.sample Tue Aug 28 19:43:33 2007
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+<project
+ xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <groupId>org.apache.maven.archetype</groupId>
+ <artifactId>test-generate-8-parent</artifactId>
+ <version>1.0-SNAPSHOT</version>
+
+ <name>Maven ArchetypeNG Test Generate 8 parent</name>
+ <packaging>pom</packaging>
+
+</project>