Author: jvanzyl
Date: Sun Nov 18 18:37:15 2007
New Revision: 596182

URL: http://svn.apache.org/viewvc?rev=596182&view=rev
Log:
o make the remote catalog use the wagon manager to take advantage of the 
already configured proxies, otherwise
  she blows up with a proxied connection nice.

Modified:
    
maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/source/RemoteCatalogArchetypeDataSource.java

Modified: 
maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/source/RemoteCatalogArchetypeDataSource.java
URL: 
http://svn.apache.org/viewvc/maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/source/RemoteCatalogArchetypeDataSource.java?rev=596182&r1=596181&r2=596182&view=diff
==============================================================================
--- 
maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/source/RemoteCatalogArchetypeDataSource.java
 (original)
+++ 
maven/sandbox/trunk/archetypeng/archetypeng-common/src/main/java/org/apache/maven/archetype/source/RemoteCatalogArchetypeDataSource.java
 Sun Nov 18 18:37:15 2007
@@ -22,11 +22,11 @@
 import org.apache.maven.archetype.catalog.Archetype;
 import org.apache.maven.artifact.manager.WagonManager;
 import org.apache.maven.settings.Settings;
+import org.apache.maven.wagon.Wagon;
+import org.apache.maven.wagon.repository.Repository;
 
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.net.MalformedURLException;
-import java.net.URL;
+import java.io.File;
+import java.io.FileReader;
 import java.util.List;
 import java.util.Properties;
 
@@ -58,17 +58,27 @@
             {
                 repository = repository.substring( 0, repository.length(  ) - 
1 );
             }
-                        
-            URL url = new URL( repository + "/" + "archetype-catalog.xml" );
 
-            return createArchetypeMap( readCatalog( new InputStreamReader( 
url.openStream(  ) ) ) );
-        }
-        catch ( MalformedURLException e )
-        {
-            throw new ArchetypeDataSourceException( "Invalid URL provided for 
archetype registry.", e );
+            // We use wagon to take advantage of a Proxy that has already been 
setup in a Maven environment.
+
+            Repository wagonRepository = new Repository( "archetype", 
repository );
+
+            Wagon wagon = wagonManager.getWagon( wagonRepository );
+
+            File catalog = File.createTempFile( "archetype-catalog", ".xml" );
+
+            wagon.connect( wagonRepository );
+
+            wagon.get( "archetype-catalog.xml", catalog );
+
+            wagon.disconnect();
+
+            return createArchetypeMap( readCatalog( new FileReader( catalog ) 
) );
         }
-        catch ( IOException e )
+        catch ( Exception e )
         {
+            e.printStackTrace();
+
             throw new ArchetypeDataSourceException( "Error reading archetype 
registry.", e );
         }
     }


Reply via email to