You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by hb...@apache.org on 2010/04/05 17:34:39 UTC

svn commit: r930879 - /maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/test/WikiArchetypeDataSource.java

Author: hboutemy
Date: Mon Apr  5 15:34:38 2010
New Revision: 930879

URL: http://svn.apache.org/viewvc?rev=930879&view=rev
Log:
improved documentation

Modified:
    maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/test/WikiArchetypeDataSource.java

Modified: maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/test/WikiArchetypeDataSource.java
URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/test/WikiArchetypeDataSource.java?rev=930879&r1=930878&r2=930879&view=diff
==============================================================================
--- maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/test/WikiArchetypeDataSource.java (original)
+++ maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/test/WikiArchetypeDataSource.java Mon Apr  5 15:34:38 2010
@@ -23,11 +23,10 @@ import org.apache.maven.archetype.catalo
 import org.apache.maven.archetype.catalog.ArchetypeCatalog;
 import org.apache.maven.archetype.source.ArchetypeDataSource;
 import org.apache.maven.archetype.source.ArchetypeDataSourceException;
+import org.codehaus.plexus.util.IOUtil;
 
-import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.InputStream;
-import java.io.InputStreamReader;
 
 import java.net.URL;
 
@@ -38,6 +37,10 @@ import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
 /**
+ * An archetype data source getting its content from a Confluence Wiki page.
+ * By default, <a href="http://docs.codehaus.org/display/MAVENUSER/Archetypes+List">MAVENUSER/Archetypes List</a>
+ * is used.
+ *
  * @author            Jason van Zyl
  * @plexus.component  role-hint="wiki"
  */
@@ -78,34 +81,30 @@ public class WikiArchetypeDataSource
 
         List archetypes = new ArrayList();
 
-        StringBuffer sb = new StringBuffer();
-
+        String pageSource = "";
+        InputStream in = null;
         try
         {
-            InputStream in = new URL( cleanupUrl( url ) ).openStream();
-
-            BufferedReader reader = new BufferedReader( new InputStreamReader( in ) );
-
-            char[] buffer = new char[1024];
+            in = new URL( cleanupUrl( url ) ).openStream();
 
-            int len = 0;
-
-            while( ( len = reader.read( buffer ) ) > -1 )
-            {
-                sb.append( buffer, 0, len );
-            }
+            pageSource = IOUtil.toString( in );
         }
         catch ( IOException e )
         {
             throw new ArchetypeDataSourceException( "Error retrieving list of archetypes from " + url );
         }
+        finally
+        {
+            IOUtil.close( in );
+        }
 
+        // | ArtifactId | GroupId | Version | Repository | Description |
         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() );
+        Matcher m = ptn.matcher( pageSource );
 
         while ( m.find() )
         {
@@ -116,12 +115,10 @@ public class WikiArchetypeDataSource
             archetype.setGroupId( m.group( 2 ).trim() );
 
             String version = m.group( 3 ).trim();
-
             if ( version.equals( "" ) )
             {
                 version = "RELEASE";
             }
-
             archetype.setVersion( version );
 
             archetype.setRepository( cleanupUrl( m.group( 4 ).trim() ) );