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"


Reply via email to