Author: jvanzyl Date: Thu Sep 27 14:34:56 2007 New Revision: 580168 URL: http://svn.apache.org/viewvc?rev=580168&view=rev Log: o use the registry source as the default
Added: maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/source/RegistryArchetypeDataSource.java - copied, changed from r580148, maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/source/WikiArchetypeDataSource.java Modified: maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/common/ArchetypeRegistryManager.java maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/common/DefaultArchetypeRegistryManager.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/ArchetypeRegistryManager.java URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/common/ArchetypeRegistryManager.java?rev=580168&r1=580167&r2=580168&view=diff ============================================================================== --- maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/common/ArchetypeRegistryManager.java (original) +++ maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/common/ArchetypeRegistryManager.java Thu Sep 27 14:34:56 2007 @@ -49,6 +49,12 @@ FileNotFoundException, XmlPullParserException; + ArchetypeRegistry readArchetypeRegistry() + throws + IOException, + FileNotFoundException, + XmlPullParserException; + List getRepositories( List pomRemoteRepositories, String remoteRepositories, 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=580168&r1=580167&r2=580168&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 14:34:56 2007 @@ -54,6 +54,8 @@ extends AbstractLogEnabled implements ArchetypeRegistryManager { + private static File DEFAULT_REGISTRY = new File( System.getProperty( "user.home" ), ".m2/archetype.xml" ); + /** * Used to create ArtifactRepository objects given the urls of the remote repositories. * @@ -140,6 +142,14 @@ } return languages; + } + + public ArchetypeRegistry readArchetypeRegistry() + throws + IOException, + XmlPullParserException + { + return readArchetypeRegistry( DEFAULT_REGISTRY ); } public ArchetypeRegistry readArchetypeRegistry( File archetypeRegistryFile ) Copied: maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/source/RegistryArchetypeDataSource.java (from r580148, maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/source/WikiArchetypeDataSource.java) URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/source/RegistryArchetypeDataSource.java?p2=maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/source/RegistryArchetypeDataSource.java&p1=maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/source/WikiArchetypeDataSource.java&r1=580148&r2=580168&rev=580168&view=diff ============================================================================== --- maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/source/WikiArchetypeDataSource.java (original) +++ maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/source/RegistryArchetypeDataSource.java Thu Sep 27 14:34:56 2007 @@ -1,100 +1,35 @@ package org.apache.maven.archetype.source; -import java.io.BufferedReader; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.IOException; -import java.net.URL; -import java.util.LinkedHashMap; +import org.apache.maven.archetype.common.ArchetypeRegistryManager; +import org.apache.maven.archetype.registry.Archetype; + +import java.util.HashMap; +import java.util.Iterator; import java.util.Map; -import java.util.regex.Matcher; -import java.util.regex.Pattern; /** @author Jason van Zyl */ -public class WikiArchetypeDataSource +public class RegistryArchetypeDataSource implements ArchetypeDataSource { - private static String DEFAULT_ARCHETYPE_INVENTORY_PAGE = "http://docs.codehaus.org/pages/viewpagesrc.action?pageId=48400"; - - private String url; - - public WikiArchetypeDataSource() - { - this( DEFAULT_ARCHETYPE_INVENTORY_PAGE ); - } + private ArchetypeRegistryManager archetypeRegistryManager; - public WikiArchetypeDataSource( String url ) + public RegistryArchetypeDataSource( ArchetypeRegistryManager archetypeRegistryManager ) { - this.url = url; + this.archetypeRegistryManager = archetypeRegistryManager; } public Map getArchetypes() throws ArchetypeDataSourceException { - Map archetypes = new LinkedHashMap(); - - StringBuffer sb = new StringBuffer(); + Map archetypes = new HashMap(); - try + for ( Iterator i = archetypeRegistryManager.getDefaultArchetypeRegistry().getArchetypes().iterator(); i.hasNext(); ) { - InputStream in = new URL( cleanupUrl( url ) ).openStream(); - - BufferedReader reader = new BufferedReader( new InputStreamReader( in ) ); - - char[] buffer = new char[1024]; + Archetype archetype = (Archetype) i.next(); - int len = 0; - - while ( ( len = reader.read( buffer ) ) > -1 ) - { - sb.append( buffer, 0, len ); - } - } - catch ( IOException e ) - { - throw new ArchetypeDataSourceException( "Error retrieving list of archetypes from " + url ); - } - - Pattern ptn = Pattern.compile( - "<br>\\|([-a-zA-Z0-9_. ]+)\\|([-a-zA-Z0-9_. ]+)\\|([-a-zA-Z0-9_. ]+)\\|([-a-zA-Z0-9_.:/ \\[\\],]+)\\|([^|]+)\\|" ); - - Matcher m = ptn.matcher( sb.toString() ); - - while ( m.find() ) - { - org.apache.maven.archetype.registry.Archetype arch = new org.apache.maven.archetype.registry.Archetype(); - - arch.setArtifactId( m.group( 1 ).trim() ); - - arch.setGroupId( m.group( 2 ).trim() ); - - String version = m.group( 3 ).trim(); - - if ( version.equals( "" ) ) - { - version = "RELEASE"; - } - - arch.setVersion( version ); - - arch.setRepository( cleanupUrl( m.group( 4 ).trim() ) ); - - arch.setDescription( cleanup( m.group( 5 ).trim() ) ); - - archetypes.put( arch.getArtifactId(), arch ); + archetypes.put( archetype.getArtifactId(), archetype ); } return archetypes; } - - static String cleanup( String val ) - { - val = val.replaceAll( "\\r|\\n|\\s{2,}", "" ); - return val; - } - - static String cleanupUrl( String val ) - { - return val.replaceAll( "\\r|\\n|\\s{2,}|\\[|\\]|\\ ", "" ); - } -} +} \ No newline at end of file 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=580168&r1=580167&r2=580168&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 14:34:56 2007 @@ -31,7 +31,7 @@ import org.apache.maven.archetype.exception.UnknownGroup; import org.apache.maven.archetype.source.ArchetypeDataSource; import org.apache.maven.archetype.source.ArchetypeDataSourceException; -import org.apache.maven.archetype.source.WikiArchetypeDataSource; +import org.apache.maven.archetype.source.RegistryArchetypeDataSource; import org.apache.maven.artifact.repository.ArtifactRepository; import org.codehaus.plexus.components.interactivity.PrompterException; import org.codehaus.plexus.logging.AbstractLogEnabled; @@ -120,7 +120,7 @@ try { - ArchetypeDataSource source = new WikiArchetypeDataSource(); + ArchetypeDataSource source = new RegistryArchetypeDataSource( archetypeRegistryManager ); archetypes = source.getArchetypes().values(); }