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,}|\\[|\\]|\\&nbsp;", "" );
-    }    
-}
+}
\ 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();
                 }


Reply via email to