Author: jvanzyl
Date: Thu Nov 16 14:18:14 2006
New Revision: 475949
URL: http://svn.apache.org/viewvc?view=rev&rev=475949
Log:
o super simple interface for downloading a single artifact
Added:
maven/shared/trunk/maven-downloader/
maven/shared/trunk/maven-downloader/pom.xml (with props)
maven/shared/trunk/maven-downloader/src/
maven/shared/trunk/maven-downloader/src/main/
maven/shared/trunk/maven-downloader/src/main/java/
maven/shared/trunk/maven-downloader/src/main/java/org/
maven/shared/trunk/maven-downloader/src/main/java/org/apache/
maven/shared/trunk/maven-downloader/src/main/java/org/apache/maven/
maven/shared/trunk/maven-downloader/src/main/java/org/apache/maven/shared/
maven/shared/trunk/maven-downloader/src/main/java/org/apache/maven/shared/downloader/
maven/shared/trunk/maven-downloader/src/main/java/org/apache/maven/shared/downloader/DefaultDownloader.java
(with props)
maven/shared/trunk/maven-downloader/src/main/java/org/apache/maven/shared/downloader/DownloadException.java
(with props)
maven/shared/trunk/maven-downloader/src/main/java/org/apache/maven/shared/downloader/DownloadNotFoundException.java
(with props)
maven/shared/trunk/maven-downloader/src/main/java/org/apache/maven/shared/downloader/Downloader.java
(with props)
Added: maven/shared/trunk/maven-downloader/pom.xml
URL:
http://svn.apache.org/viewvc/maven/shared/trunk/maven-downloader/pom.xml?view=auto&rev=475949
==============================================================================
--- maven/shared/trunk/maven-downloader/pom.xml (added)
+++ maven/shared/trunk/maven-downloader/pom.xml Thu Nov 16 14:18:14 2006
@@ -0,0 +1,32 @@
+<?xml version="1.0"?><project>
+ <parent>
+ <artifactId>maven-shared-components</artifactId>
+ <groupId>org.apache.maven.shared</groupId>
+ <version>4-SNAPSHOT</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.maven.shared</groupId>
+ <artifactId>maven-downloader</artifactId>
+ <name>Maven Downloader</name>
+ <description>Provide a super simple interface for downloading a single
artifact.</description>
+ <version>1.0-SNAPSHOT</version>
+ <url>http://maven.apache.org</url>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-artifact-manager</artifactId>
+ <version>2.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-artifact</artifactId>
+ <version>2.0</version>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>3.8.1</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+</project>
Propchange: maven/shared/trunk/maven-downloader/pom.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/shared/trunk/maven-downloader/pom.xml
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added:
maven/shared/trunk/maven-downloader/src/main/java/org/apache/maven/shared/downloader/DefaultDownloader.java
URL:
http://svn.apache.org/viewvc/maven/shared/trunk/maven-downloader/src/main/java/org/apache/maven/shared/downloader/DefaultDownloader.java?view=auto&rev=475949
==============================================================================
---
maven/shared/trunk/maven-downloader/src/main/java/org/apache/maven/shared/downloader/DefaultDownloader.java
(added)
+++
maven/shared/trunk/maven-downloader/src/main/java/org/apache/maven/shared/downloader/DefaultDownloader.java
Thu Nov 16 14:18:14 2006
@@ -0,0 +1,61 @@
+package org.apache.maven.shared.downloader;
+
+import org.apache.maven.artifact.resolver.ArtifactResolver;
+import org.apache.maven.artifact.resolver.ArtifactResolutionException;
+import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
+import org.apache.maven.artifact.factory.ArtifactFactory;
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+
+import java.util.List;
+import java.io.File;
+
+/**
+ * @author Jason van Zyl
+ * @plexus.component
+ */
+public class DefaultDownloader
+ implements Downloader
+{
+ private ArtifactResolver artifactResolver;
+
+ private ArtifactFactory artifactFactory;
+
+ public File download( String groupId,
+ String artifactId,
+ String version,
+ File localRepository,
+ String[] remoteRepositories )
+ throws DownloadException, DownloadNotFoundException
+
+ {
+ return download( groupId, artifactId, version, localRepository,
remoteRepositories );
+ }
+
+ public File download( String groupId,
+ String artifactId,
+ String version,
+ ArtifactRepository localRepository,
+ List remoteRepositories )
+ throws DownloadException, DownloadNotFoundException
+
+ {
+ Artifact artifact =
+ artifactFactory.createArtifact( groupId, artifactId, version,
Artifact.SCOPE_RUNTIME, "jar" );
+
+ try
+ {
+ artifactResolver.resolve( artifact, remoteRepositories,
localRepository );
+ }
+ catch ( ArtifactResolutionException e )
+ {
+ throw new DownloadException( "Error downloading.", e );
+ }
+ catch ( ArtifactNotFoundException e )
+ {
+ throw new DownloadNotFoundException( "Requested download does not
exist.", e );
+ }
+
+ return artifact.getFile();
+ }
+}
Propchange:
maven/shared/trunk/maven-downloader/src/main/java/org/apache/maven/shared/downloader/DefaultDownloader.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/shared/trunk/maven-downloader/src/main/java/org/apache/maven/shared/downloader/DefaultDownloader.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added:
maven/shared/trunk/maven-downloader/src/main/java/org/apache/maven/shared/downloader/DownloadException.java
URL:
http://svn.apache.org/viewvc/maven/shared/trunk/maven-downloader/src/main/java/org/apache/maven/shared/downloader/DownloadException.java?view=auto&rev=475949
==============================================================================
---
maven/shared/trunk/maven-downloader/src/main/java/org/apache/maven/shared/downloader/DownloadException.java
(added)
+++
maven/shared/trunk/maven-downloader/src/main/java/org/apache/maven/shared/downloader/DownloadException.java
Thu Nov 16 14:18:14 2006
@@ -0,0 +1,24 @@
+package org.apache.maven.shared.downloader;
+
+/**
+ * @author Jason van Zyl
+ */
+public class DownloadException
+ extends Exception
+{
+ public DownloadException( String string )
+ {
+ super( string );
+ }
+
+ public DownloadException( String string,
+ Throwable throwable )
+ {
+ super( string, throwable );
+ }
+
+ public DownloadException( Throwable throwable )
+ {
+ super( throwable );
+ }
+}
Propchange:
maven/shared/trunk/maven-downloader/src/main/java/org/apache/maven/shared/downloader/DownloadException.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/shared/trunk/maven-downloader/src/main/java/org/apache/maven/shared/downloader/DownloadException.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added:
maven/shared/trunk/maven-downloader/src/main/java/org/apache/maven/shared/downloader/DownloadNotFoundException.java
URL:
http://svn.apache.org/viewvc/maven/shared/trunk/maven-downloader/src/main/java/org/apache/maven/shared/downloader/DownloadNotFoundException.java?view=auto&rev=475949
==============================================================================
---
maven/shared/trunk/maven-downloader/src/main/java/org/apache/maven/shared/downloader/DownloadNotFoundException.java
(added)
+++
maven/shared/trunk/maven-downloader/src/main/java/org/apache/maven/shared/downloader/DownloadNotFoundException.java
Thu Nov 16 14:18:14 2006
@@ -0,0 +1,24 @@
+package org.apache.maven.shared.downloader;
+
+/**
+ * @author Jason van Zyl
+ */
+public class DownloadNotFoundException
+ extends Exception
+{
+ public DownloadNotFoundException( String string )
+ {
+ super( string );
+ }
+
+ public DownloadNotFoundException( String string,
+ Throwable throwable )
+ {
+ super( string, throwable );
+ }
+
+ public DownloadNotFoundException( Throwable throwable )
+ {
+ super( throwable );
+ }
+}
Propchange:
maven/shared/trunk/maven-downloader/src/main/java/org/apache/maven/shared/downloader/DownloadNotFoundException.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/shared/trunk/maven-downloader/src/main/java/org/apache/maven/shared/downloader/DownloadNotFoundException.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added:
maven/shared/trunk/maven-downloader/src/main/java/org/apache/maven/shared/downloader/Downloader.java
URL:
http://svn.apache.org/viewvc/maven/shared/trunk/maven-downloader/src/main/java/org/apache/maven/shared/downloader/Downloader.java?view=auto&rev=475949
==============================================================================
---
maven/shared/trunk/maven-downloader/src/main/java/org/apache/maven/shared/downloader/Downloader.java
(added)
+++
maven/shared/trunk/maven-downloader/src/main/java/org/apache/maven/shared/downloader/Downloader.java
Thu Nov 16 14:18:14 2006
@@ -0,0 +1,28 @@
+package org.apache.maven.shared.downloader;
+
+import org.apache.maven.artifact.repository.ArtifactRepository;
+
+import java.io.File;
+import java.util.List;
+
+/**
+ * @author Jason van Zyl
+ */
+public interface Downloader
+{
+ String ROLE = Downloader.class.getName();
+
+ public File download( String groupId,
+ String artifactId,
+ String version,
+ File localRepository,
+ String[] remoteRepositories )
+ throws DownloadException, DownloadNotFoundException;
+
+ public File download( String groupId,
+ String artifactId,
+ String version,
+ ArtifactRepository localRepository,
+ List remoteRepositories )
+ throws DownloadException, DownloadNotFoundException;
+}
Propchange:
maven/shared/trunk/maven-downloader/src/main/java/org/apache/maven/shared/downloader/Downloader.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/shared/trunk/maven-downloader/src/main/java/org/apache/maven/shared/downloader/Downloader.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"