Author: jvanzyl Date: Thu Sep 27 15:33:56 2007 New Revision: 580177 URL: http://svn.apache.org/viewvc?rev=580177&view=rev Log: o add a standard registry source, as going out to the wiki should just be an option and a one time shot o also for each archetype that is created on the local system, add it to the registry so that you can try what you just created
Modified: maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/common/DefaultArchetypeRegistryManager.java maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/source/RegistryArchetypeDataSource.java maven/sandbox/trunk/archetypeng/archetypeng-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateArchetypeFromProjectMojo.java maven/sandbox/trunk/archetypeng/archetypeng-plugin/src/main/java/org/apache/maven/archetype/ui/DefaultArchetypeSelector.java Modified: maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/common/DefaultArchetypeRegistryManager.java URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/common/DefaultArchetypeRegistryManager.java?rev=580177&r1=580176&r2=580177&view=diff ============================================================================== --- maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/common/DefaultArchetypeRegistryManager.java (original) +++ maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/common/DefaultArchetypeRegistryManager.java Thu Sep 27 15:33:56 2007 @@ -149,6 +149,8 @@ IOException, XmlPullParserException { + System.out.println( "DEFAULT_REGISTRY = " + DEFAULT_REGISTRY ); + return readArchetypeRegistry( DEFAULT_REGISTRY ); } Modified: maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/source/RegistryArchetypeDataSource.java URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/source/RegistryArchetypeDataSource.java?rev=580177&r1=580176&r2=580177&view=diff ============================================================================== --- maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/source/RegistryArchetypeDataSource.java (original) +++ maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/source/RegistryArchetypeDataSource.java Thu Sep 27 15:33:56 2007 @@ -2,10 +2,13 @@ import org.apache.maven.archetype.common.ArchetypeRegistryManager; import org.apache.maven.archetype.registry.Archetype; +import org.codehaus.plexus.util.xml.pull.XmlPullParserException; import java.util.HashMap; import java.util.Iterator; +import java.util.List; import java.util.Map; +import java.io.IOException; /** @author Jason van Zyl */ public class RegistryArchetypeDataSource @@ -23,7 +26,18 @@ { Map archetypes = new HashMap(); - for ( Iterator i = archetypeRegistryManager.getDefaultArchetypeRegistry().getArchetypes().iterator(); i.hasNext(); ) + List list; + + try + { + list = archetypeRegistryManager.readArchetypeRegistry().getArchetypes(); + } + catch ( Exception e ) + { + throw new ArchetypeDataSourceException( "Error reading ~/.m2/archetype.xml" ); + } + + for ( Iterator i = list.iterator(); i.hasNext(); ) { Archetype archetype = (Archetype) i.next(); Modified: maven/sandbox/trunk/archetypeng/archetypeng-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateArchetypeFromProjectMojo.java URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/archetypeng-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateArchetypeFromProjectMojo.java?rev=580177&r1=580176&r2=580177&view=diff ============================================================================== --- maven/sandbox/trunk/archetypeng/archetypeng-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateArchetypeFromProjectMojo.java (original) +++ maven/sandbox/trunk/archetypeng/archetypeng-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateArchetypeFromProjectMojo.java Thu Sep 27 15:33:56 2007 @@ -19,16 +19,21 @@ package org.apache.maven.archetype.mojos; +import org.apache.maven.archetype.common.ArchetypePropertiesManager; +import org.apache.maven.archetype.common.ArchetypeRegistryManager; +import org.apache.maven.archetype.common.Constants; +import org.apache.maven.archetype.creator.ArchetypeCreator; +import org.apache.maven.archetype.registry.Archetype; +import org.apache.maven.archetype.registry.ArchetypeRegistry; +import org.apache.maven.archetype.ui.ArchetypeCreationConfigurator; import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.MojoFailureException; -import org.apache.maven.archetype.common.ArchetypeRegistryManager; -import org.apache.maven.archetype.ui.ArchetypeCreationConfigurator; -import org.apache.maven.archetype.creator.ArchetypeCreator; import org.apache.maven.project.MavenProject; -import java.util.List; import java.io.File; +import java.util.List; +import java.util.Properties; /** * Creates sample archetype from current project. @@ -57,6 +62,9 @@ /** @component role-hint="fileset" */ ArchetypeCreator creator; + /** @component */ + private ArchetypePropertiesManager propertiesManager; + /** * File extensions which are checked for project's text files (vs binary files). * @@ -131,6 +139,8 @@ */ private File propertyFile; + /** @parameter expression="${basedir}/target" */ + private File outputDirectory; public void execute() throws @@ -186,6 +196,26 @@ ); getLog().info( "Archetype created in target/generated-sources/archetypeng" ); + + Properties p = new Properties(); + + propertiesManager.readProperties( p, new File( outputDirectory, "archetype.properties" ) ); + + Archetype archetype = new Archetype(); + + archetype.setGroupId( p.getProperty( Constants.ARCHETYPE_GROUP_ID ) ); + + archetype.setArtifactId( p.getProperty( Constants.ARCHETYPE_ARTIFACT_ID ) ); + + archetype.setVersion( p.getProperty( Constants.ARCHETYPE_VERSION ) ); + + archetype.setDescription( "This is the Archetype"); + + ArchetypeRegistry archetypeRegistry = archetypeRegistryManager.getDefaultArchetypeRegistry(); + + archetypeRegistry.addArchetype( archetype ); + + archetypeRegistryManager.writeArchetypeRegistry( archetypeRegistryFile, archetypeRegistry ); } catch ( Exception ex ) { Modified: maven/sandbox/trunk/archetypeng/archetypeng-plugin/src/main/java/org/apache/maven/archetype/ui/DefaultArchetypeSelector.java URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/archetypeng-plugin/src/main/java/org/apache/maven/archetype/ui/DefaultArchetypeSelector.java?rev=580177&r1=580176&r2=580177&view=diff ============================================================================== --- maven/sandbox/trunk/archetypeng/archetypeng-plugin/src/main/java/org/apache/maven/archetype/ui/DefaultArchetypeSelector.java (original) +++ maven/sandbox/trunk/archetypeng/archetypeng-plugin/src/main/java/org/apache/maven/archetype/ui/DefaultArchetypeSelector.java Thu Sep 27 15:33:56 2007 @@ -123,6 +123,8 @@ ArchetypeDataSource source = new RegistryArchetypeDataSource( archetypeRegistryManager ); archetypes = source.getArchetypes().values(); + + System.out.println( "archetypes = " + archetypes ); } catch ( ArchetypeDataSourceException e ) {