Author: hboutemy Date: Sun Sep 26 14:49:04 2010 New Revision: 1001441 URL: http://svn.apache.org/viewvc?rev=1001441&view=rev Log: [ARCHETYPE-306] download archetypes with their pom
Added: maven/archetype/trunk/archetype-common/src/test/archetypes/basic-1.0/META-INF/maven/archetypes/ maven/archetype/trunk/archetype-common/src/test/archetypes/basic-1.0/META-INF/maven/archetypes/basic/ maven/archetype/trunk/archetype-common/src/test/archetypes/basic-1.0/META-INF/maven/archetypes/basic/pom.xml (with props) maven/archetype/trunk/archetype-common/src/test/archetypes/fileset-1.0/META-INF/maven/archetypes/ maven/archetype/trunk/archetype-common/src/test/archetypes/fileset-1.0/META-INF/maven/archetypes/fileset/ maven/archetype/trunk/archetype-common/src/test/archetypes/fileset-1.0/META-INF/maven/archetypes/fileset/pom.xml (with props) maven/archetype/trunk/archetype-common/src/test/archetypes/old-1.0/META-INF/maven/ maven/archetype/trunk/archetype-common/src/test/archetypes/old-1.0/META-INF/maven/archetypes/ maven/archetype/trunk/archetype-common/src/test/archetypes/old-1.0/META-INF/maven/archetypes/old/ maven/archetype/trunk/archetype-common/src/test/archetypes/old-1.0/META-INF/maven/archetypes/old/pom.xml (with props) maven/archetype/trunk/archetype-common/src/test/archetypes/partial-1.0/META-INF/maven/archetypes/ maven/archetype/trunk/archetype-common/src/test/archetypes/partial-1.0/META-INF/maven/archetypes/partial/ maven/archetype/trunk/archetype-common/src/test/archetypes/partial-1.0/META-INF/maven/archetypes/partial/pom.xml (with props) maven/archetype/trunk/archetype-common/src/test/archetypes/site-1.0/META-INF/maven/archetypes/ maven/archetype/trunk/archetype-common/src/test/archetypes/site-1.0/META-INF/maven/archetypes/site/ maven/archetype/trunk/archetype-common/src/test/archetypes/site-1.0/META-INF/maven/archetypes/site/pom.xml (with props) Modified: maven/archetype/trunk/archetype-common/pom.xml maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/downloader/DefaultDownloader.java maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/repositorycrawler/DefaultRepositoryCrawlerTest.java maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/test/ArchetyperRoundtripTest.java maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/test/ArchetyperRoundtripWithProxyTest.java maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/test/RoundtripMultiModuleTest.java Modified: maven/archetype/trunk/archetype-common/pom.xml URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-common/pom.xml?rev=1001441&r1=1001440&r2=1001441&view=diff ============================================================================== --- maven/archetype/trunk/archetype-common/pom.xml (original) +++ maven/archetype/trunk/archetype-common/pom.xml Sun Sep 26 14:49:04 2010 @@ -245,6 +245,8 @@ under the License. <mkdir dir="${basedir}/target/test-classes/${test.projects.repository}/${test.projects.target.directory}/" /> <jar destfile="${basedir}/target/test-classes/${test.projects.repository}/${test.projects.target.directory}/${test.projects.archetype}.jar" basedir="${basedir}/src/test/archetypes/${test.projects.source.directory}/" /> + + <copy tofile="${basedir}/target/test-classes/${test.projects.repository}/${test.projects.target.directory}/${test.projects.archetype}.pom" file="${basedir}/src/test/archetypes/${test.projects.source.directory}/META-INF/maven/archetypes/${test.projects.name}/pom.xml" /> </tasks> </configuration> <goals> @@ -266,6 +268,8 @@ under the License. <mkdir dir="${basedir}/target/test-classes/${test.projects.repository}/${test.projects.target.directory}/" /> <jar destfile="${basedir}/target/test-classes/${test.projects.repository}/${test.projects.target.directory}/${test.projects.archetype}.jar" basedir="${basedir}/src/test/archetypes/${test.projects.source.directory}/" /> + + <copy tofile="${basedir}/target/test-classes/${test.projects.repository}/${test.projects.target.directory}/${test.projects.archetype}.pom" file="${basedir}/src/test/archetypes/${test.projects.source.directory}/META-INF/maven/archetypes/${test.projects.name}/pom.xml" /> </tasks> </configuration> <goals> @@ -288,6 +292,8 @@ under the License. <mkdir dir="${basedir}/target/test-classes/${test.projects.repository}/${test.projects.target.directory}/" /> <jar destfile="${basedir}/target/test-classes/${test.projects.repository}/${test.projects.target.directory}/${test.projects.archetype}.jar" basedir="${basedir}/src/test/archetypes/${test.projects.source.directory}/" /> + + <copy tofile="${basedir}/target/test-classes/${test.projects.repository}/${test.projects.target.directory}/${test.projects.archetype}.pom" file="${basedir}/src/test/archetypes/${test.projects.source.directory}/META-INF/maven/archetypes/${test.projects.name}/pom.xml" /> </tasks> </configuration> <goals> @@ -310,6 +316,8 @@ under the License. <mkdir dir="${basedir}/target/test-classes/${test.projects.repository}/${test.projects.target.directory}/" /> <jar destfile="${basedir}/target/test-classes/${test.projects.repository}/${test.projects.target.directory}/${test.projects.archetype}.jar" basedir="${basedir}/src/test/archetypes/${test.projects.source.directory}/" /> + + <copy tofile="${basedir}/target/test-classes/${test.projects.repository}/${test.projects.target.directory}/${test.projects.archetype}.pom" file="${basedir}/src/test/archetypes/${test.projects.source.directory}/META-INF/maven/archetypes/${test.projects.name}/pom.xml" /> </tasks> </configuration> <goals> @@ -332,6 +340,8 @@ under the License. <mkdir dir="${basedir}/target/test-classes/${test.projects.repository}/${test.projects.target.directory}/" /> <jar destfile="${basedir}/target/test-classes/${test.projects.repository}/${test.projects.target.directory}/${test.projects.archetype}.jar" basedir="${basedir}/src/test/archetypes/${test.projects.source.directory}/" /> + + <copy tofile="${basedir}/target/test-classes/${test.projects.repository}/${test.projects.target.directory}/${test.projects.archetype}.pom" file="${basedir}/src/test/archetypes/${test.projects.source.directory}/META-INF/maven/archetypes/${test.projects.name}/pom.xml" /> </tasks> </configuration> <goals> Modified: maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/downloader/DefaultDownloader.java URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/downloader/DefaultDownloader.java?rev=1001441&r1=1001440&r2=1001441&view=diff ============================================================================== --- maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/downloader/DefaultDownloader.java (original) +++ maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/downloader/DefaultDownloader.java Sun Sep 26 14:49:04 2010 @@ -52,6 +52,7 @@ public class DefaultDownloader throws DownloadException, DownloadNotFoundException { Artifact artifact = artifactFactory.createArtifact( groupId, artifactId, version, Artifact.SCOPE_RUNTIME, "jar" ); + Artifact artifactPom = artifactFactory.createArtifact( groupId, artifactId, version, Artifact.SCOPE_RUNTIME, "pom" ); List<ArtifactRepository> repositories = new ArrayList<ArtifactRepository>( remoteRepositories ); if ( repositories.isEmpty() && archetypeRepository != null ) @@ -76,6 +77,18 @@ public class DefaultDownloader { throw new DownloadNotFoundException( "Requested " + artifact.getId() + " download does not exist.", e ); } + try + { + artifactResolver.resolve( artifactPom, repositories, localRepo ); + } + catch ( ArtifactResolutionException e ) + { + throw new DownloadException( "Error downloading POM for " + artifact.getId() + ".", e ); + } + catch ( ArtifactNotFoundException e ) + { + throw new DownloadNotFoundException( "Requested " + artifact.getId() + " download's POM does not exist.", e ); + } return artifact.getFile(); } Added: maven/archetype/trunk/archetype-common/src/test/archetypes/basic-1.0/META-INF/maven/archetypes/basic/pom.xml URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-common/src/test/archetypes/basic-1.0/META-INF/maven/archetypes/basic/pom.xml?rev=1001441&view=auto ============================================================================== --- maven/archetype/trunk/archetype-common/src/test/archetypes/basic-1.0/META-INF/maven/archetypes/basic/pom.xml (added) +++ maven/archetype/trunk/archetype-common/src/test/archetypes/basic-1.0/META-INF/maven/archetypes/basic/pom.xml Sun Sep 26 14:49:04 2010 @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<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>archetypes</groupId> + <artifactId>basic</artifactId> + <version>1.0</version> +</project> Propchange: maven/archetype/trunk/archetype-common/src/test/archetypes/basic-1.0/META-INF/maven/archetypes/basic/pom.xml ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/archetype/trunk/archetype-common/src/test/archetypes/basic-1.0/META-INF/maven/archetypes/basic/pom.xml ------------------------------------------------------------------------------ svn:keywords = Author Date Id Revision Propchange: maven/archetype/trunk/archetype-common/src/test/archetypes/basic-1.0/META-INF/maven/archetypes/basic/pom.xml ------------------------------------------------------------------------------ svn:mime-type = text/plain Added: maven/archetype/trunk/archetype-common/src/test/archetypes/fileset-1.0/META-INF/maven/archetypes/fileset/pom.xml URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-common/src/test/archetypes/fileset-1.0/META-INF/maven/archetypes/fileset/pom.xml?rev=1001441&view=auto ============================================================================== --- maven/archetype/trunk/archetype-common/src/test/archetypes/fileset-1.0/META-INF/maven/archetypes/fileset/pom.xml (added) +++ maven/archetype/trunk/archetype-common/src/test/archetypes/fileset-1.0/META-INF/maven/archetypes/fileset/pom.xml Sun Sep 26 14:49:04 2010 @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<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>archetypes</groupId> + <artifactId>fileset</artifactId> + <version>1.0</version> +</project> Propchange: maven/archetype/trunk/archetype-common/src/test/archetypes/fileset-1.0/META-INF/maven/archetypes/fileset/pom.xml ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/archetype/trunk/archetype-common/src/test/archetypes/fileset-1.0/META-INF/maven/archetypes/fileset/pom.xml ------------------------------------------------------------------------------ svn:keywords = Author Date Id Revision Propchange: maven/archetype/trunk/archetype-common/src/test/archetypes/fileset-1.0/META-INF/maven/archetypes/fileset/pom.xml ------------------------------------------------------------------------------ svn:mime-type = text/plain Added: maven/archetype/trunk/archetype-common/src/test/archetypes/old-1.0/META-INF/maven/archetypes/old/pom.xml URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-common/src/test/archetypes/old-1.0/META-INF/maven/archetypes/old/pom.xml?rev=1001441&view=auto ============================================================================== --- maven/archetype/trunk/archetype-common/src/test/archetypes/old-1.0/META-INF/maven/archetypes/old/pom.xml (added) +++ maven/archetype/trunk/archetype-common/src/test/archetypes/old-1.0/META-INF/maven/archetypes/old/pom.xml Sun Sep 26 14:49:04 2010 @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<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>archetypes</groupId> + <artifactId>old</artifactId> + <version>1.0</version> +</project> Propchange: maven/archetype/trunk/archetype-common/src/test/archetypes/old-1.0/META-INF/maven/archetypes/old/pom.xml ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/archetype/trunk/archetype-common/src/test/archetypes/old-1.0/META-INF/maven/archetypes/old/pom.xml ------------------------------------------------------------------------------ svn:keywords = Author Date Id Revision Propchange: maven/archetype/trunk/archetype-common/src/test/archetypes/old-1.0/META-INF/maven/archetypes/old/pom.xml ------------------------------------------------------------------------------ svn:mime-type = text/plain Added: maven/archetype/trunk/archetype-common/src/test/archetypes/partial-1.0/META-INF/maven/archetypes/partial/pom.xml URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-common/src/test/archetypes/partial-1.0/META-INF/maven/archetypes/partial/pom.xml?rev=1001441&view=auto ============================================================================== --- maven/archetype/trunk/archetype-common/src/test/archetypes/partial-1.0/META-INF/maven/archetypes/partial/pom.xml (added) +++ maven/archetype/trunk/archetype-common/src/test/archetypes/partial-1.0/META-INF/maven/archetypes/partial/pom.xml Sun Sep 26 14:49:04 2010 @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<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>archetypes</groupId> + <artifactId>partial</artifactId> + <version>1.0</version> +</project> Propchange: maven/archetype/trunk/archetype-common/src/test/archetypes/partial-1.0/META-INF/maven/archetypes/partial/pom.xml ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/archetype/trunk/archetype-common/src/test/archetypes/partial-1.0/META-INF/maven/archetypes/partial/pom.xml ------------------------------------------------------------------------------ svn:keywords = Author Date Id Revision Propchange: maven/archetype/trunk/archetype-common/src/test/archetypes/partial-1.0/META-INF/maven/archetypes/partial/pom.xml ------------------------------------------------------------------------------ svn:mime-type = text/plain Added: maven/archetype/trunk/archetype-common/src/test/archetypes/site-1.0/META-INF/maven/archetypes/site/pom.xml URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-common/src/test/archetypes/site-1.0/META-INF/maven/archetypes/site/pom.xml?rev=1001441&view=auto ============================================================================== --- maven/archetype/trunk/archetype-common/src/test/archetypes/site-1.0/META-INF/maven/archetypes/site/pom.xml (added) +++ maven/archetype/trunk/archetype-common/src/test/archetypes/site-1.0/META-INF/maven/archetypes/site/pom.xml Sun Sep 26 14:49:04 2010 @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<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>archetypes</groupId> + <artifactId>site</artifactId> + <version>1.0</version> +</project> Propchange: maven/archetype/trunk/archetype-common/src/test/archetypes/site-1.0/META-INF/maven/archetypes/site/pom.xml ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/archetype/trunk/archetype-common/src/test/archetypes/site-1.0/META-INF/maven/archetypes/site/pom.xml ------------------------------------------------------------------------------ svn:keywords = Author Date Id Revision Propchange: maven/archetype/trunk/archetype-common/src/test/archetypes/site-1.0/META-INF/maven/archetypes/site/pom.xml ------------------------------------------------------------------------------ svn:mime-type = text/plain Modified: maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/repositorycrawler/DefaultRepositoryCrawlerTest.java URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/repositorycrawler/DefaultRepositoryCrawlerTest.java?rev=1001441&r1=1001440&r2=1001441&view=diff ============================================================================== --- maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/repositorycrawler/DefaultRepositoryCrawlerTest.java (original) +++ maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/repositorycrawler/DefaultRepositoryCrawlerTest.java Sun Sep 26 14:49:04 2010 @@ -46,7 +46,7 @@ extends AbstractMojoTestCase System.err.println ( "result = " + result ); assertTrue ( ( 5 <= result.getArchetypes ().size () ) - && ( result.getArchetypes ().size () >= 7 ) + && ( result.getArchetypes ().size () <= 8 ) ); // TODO: should write to another directory Modified: maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/test/ArchetyperRoundtripTest.java URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/test/ArchetyperRoundtripTest.java?rev=1001441&r1=1001440&r2=1001441&view=diff ============================================================================== --- maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/test/ArchetyperRoundtripTest.java (original) +++ maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/test/ArchetyperRoundtripTest.java Sun Sep 26 14:49:04 2010 @@ -134,17 +134,20 @@ public class ArchetyperRoundtripTest new File( generatedArchetypeProject.getBuild().getDirectory() ), generatedArchetypeProject.getBuild().getFinalName() ); - File archetypeInRepository = - new File( centralRepository.getBasedir(), StringUtils.replace( generatedArchetypeProject.getGroupId(), ".", - File.separator ) + String baseName = StringUtils.replace( generatedArchetypeProject.getGroupId(), ".", File.separator ) + File.separator + generatedArchetypeProject.getArtifactId() + File.separator + generatedArchetypeProject.getVersion() + File.separator - + generatedArchetypeProject.getBuild().getFinalName() + ".jar" ); + + generatedArchetypeProject.getBuild().getFinalName(); + File archetypeInRepository = + new File( centralRepository.getBasedir(), baseName + ".jar" ); + File archetypePomInRepository = + new File( centralRepository.getBasedir(), baseName + ".pom" ); archetypeInRepository.getParentFile().mkdirs(); FileUtils.copyFile( archetypeArchive, archetypeInRepository ); + FileUtils.copyFile( generatedArchetypePom, archetypePomInRepository ); // (4) create our own archetype catalog describing the archetype we just created ArchetypeCatalog catalog = new ArchetypeCatalog(); Modified: maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/test/ArchetyperRoundtripWithProxyTest.java URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/test/ArchetyperRoundtripWithProxyTest.java?rev=1001441&r1=1001440&r2=1001441&view=diff ============================================================================== --- maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/test/ArchetyperRoundtripWithProxyTest.java (original) +++ maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/test/ArchetyperRoundtripWithProxyTest.java Sun Sep 26 14:49:04 2010 @@ -144,17 +144,20 @@ public class ArchetyperRoundtripWithProx new File( generatedArchetypeProject.getBuild().getDirectory() ), generatedArchetypeProject.getBuild().getFinalName() ); + String baseName = StringUtils.replace( generatedArchetypeProject.getGroupId(), ".", File.separator ) + + File.separator + + generatedArchetypeProject.getArtifactId() + + File.separator + + generatedArchetypeProject.getVersion() + + File.separator + + generatedArchetypeProject.getBuild().getFinalName(); File archetypeInRepository = - new File( centralRepository.getBasedir(), StringUtils.replace( generatedArchetypeProject.getGroupId(), ".", - File.separator ) - + File.separator - + generatedArchetypeProject.getArtifactId() - + File.separator - + generatedArchetypeProject.getVersion() - + File.separator - + generatedArchetypeProject.getBuild().getFinalName() + ".jar" ); + new File( centralRepository.getBasedir(), baseName + ".jar" ); + File archetypePomInRepository = + new File( centralRepository.getBasedir(), baseName + ".pom" ); archetypeInRepository.getParentFile().mkdirs(); FileUtils.copyFile( archetypeArchive, archetypeInRepository ); + FileUtils.copyFile( generatedArchetypePom, archetypePomInRepository ); // (4) create our own archetype catalog describing the archetype we just created ArchetypeCatalog catalog = new ArchetypeCatalog(); Modified: maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/test/RoundtripMultiModuleTest.java URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/test/RoundtripMultiModuleTest.java?rev=1001441&r1=1001440&r2=1001441&view=diff ============================================================================== --- maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/test/RoundtripMultiModuleTest.java (original) +++ maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/test/RoundtripMultiModuleTest.java Sun Sep 26 14:49:04 2010 @@ -150,17 +150,20 @@ public class RoundtripMultiModuleTest new File( generatedArchetypeProject.getBuild().getDirectory() ), generatedArchetypeProject.getBuild().getFinalName() ); + String baseName = StringUtils.replace( generatedArchetypeProject.getGroupId(), ".", File.separator ) + + File.separator + + generatedArchetypeProject.getArtifactId() + + File.separator + + generatedArchetypeProject.getVersion() + + File.separator + + generatedArchetypeProject.getBuild().getFinalName(); File archetypeInRepository = - new File( centralRepository.getBasedir(), StringUtils.replace( generatedArchetypeProject.getGroupId(), ".", - File.separator ) - + File.separator - + generatedArchetypeProject.getArtifactId() - + File.separator - + generatedArchetypeProject.getVersion() - + File.separator - + generatedArchetypeProject.getBuild().getFinalName() + ".jar" ); + new File( centralRepository.getBasedir(), baseName + ".jar" ); + File archetypePomInRepository = + new File( centralRepository.getBasedir(), baseName + ".pom" ); archetypeInRepository.getParentFile().mkdirs(); FileUtils.copyFile( archetypeArchive, archetypeInRepository ); + FileUtils.copyFile( generatedArchetypePom, archetypePomInRepository ); // (4) create our own archetype catalog describing the archetype we just created ArchetypeCatalog catalog = new ArchetypeCatalog();