You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ra...@apache.org on 2008/06/12 23:09:24 UTC
svn commit: r667228 -
/maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/source/RemoteCatalogArchetypeDataSource.java
Author: rafale
Date: Thu Jun 12 14:09:23 2008
New Revision: 667228
URL: http://svn.apache.org/viewvc?rev=667228&view=rev
Log:
Fix for archetype-161
When a url is given to search for a remote catalog, first it is searched by appending archetype-catalog.xml to the URL. if no catalog is found there, then the URL is assumed to be the url of the file.
Modified:
maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/source/RemoteCatalogArchetypeDataSource.java
Modified: maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/source/RemoteCatalogArchetypeDataSource.java
URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/source/RemoteCatalogArchetypeDataSource.java?rev=667228&r1=667227&r2=667228&view=diff
==============================================================================
--- maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/source/RemoteCatalogArchetypeDataSource.java (original)
+++ maven/archetype/trunk/archetype-common/src/main/java/org/apache/maven/archetype/source/RemoteCatalogArchetypeDataSource.java Thu Jun 12 14:09:23 2008
@@ -59,26 +59,42 @@
repository = repository.substring( 0, repository.length( ) - 1 );
}
+ getLogger().debug("Searching for remote catalog: "+ repository +"/archetype-catalog.xml");
// 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 readCatalog( new FileReader( catalog ) );
}
- catch ( Exception e )
+ catch ( ArchetypeDataSourceException e )
{
- getLogger().warn( "Error reading archetype catalog "+ repository, e );
- return new ArchetypeCatalog();
+ throw e;
+ }
+ catch ( Exception e )
+ {// When the default archetype catalog names doesn't works, we assume the repository is the URL to a file
+ try
+ {
+ String repositoryPath = repository.substring(0, repository.lastIndexOf("/"));
+ String fileName = repository.substring(repository.lastIndexOf("/") + 1);
+
+ getLogger().debug("Searching for remote catalog: "+ repositoryPath +"/"+fileName);
+ // We use wagon to take advantage of a Proxy that has already been setup in a Maven environment.
+ Repository wagonRepository = new Repository( "archetype", repositoryPath );
+ Wagon wagon = wagonManager.getWagon( wagonRepository );
+ File catalog = File.createTempFile( "archetype-catalog", ".xml" );
+ wagon.connect( wagonRepository );
+ wagon.get( fileName , catalog );
+ wagon.disconnect();
+ return readCatalog( new FileReader( catalog ) );
+ }
+ catch ( Exception ex )
+ {
+ getLogger().warn( "Error reading archetype catalog "+ repository, ex );
+ return new ArchetypeCatalog();
+ }
}
}