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 2017/12/08 18:13:58 UTC

[maven-downloader] 01/48: o super simple interface for downloading a single artifact

This is an automated email from the ASF dual-hosted git repository.

hboutemy pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-downloader.git

commit 7e33d822466983488261948b18b0232cf79d497a
Author: Jason van Zyl <jv...@apache.org>
AuthorDate: Thu Nov 16 22:18:14 2006 +0000

    o super simple interface for downloading a single artifact
    
    
    git-svn-id: https://svn.apache.org/repos/asf/maven/shared/trunk@475949 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml                                            | 32 ++++++++++++
 .../maven/shared/downloader/DefaultDownloader.java | 61 ++++++++++++++++++++++
 .../maven/shared/downloader/DownloadException.java | 24 +++++++++
 .../downloader/DownloadNotFoundException.java      | 24 +++++++++
 .../apache/maven/shared/downloader/Downloader.java | 28 ++++++++++
 5 files changed, 169 insertions(+)

diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..180ba5e
--- /dev/null
+++ b/pom.xml
@@ -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>
diff --git a/src/main/java/org/apache/maven/shared/downloader/DefaultDownloader.java b/src/main/java/org/apache/maven/shared/downloader/DefaultDownloader.java
new file mode 100644
index 0000000..4ec715a
--- /dev/null
+++ b/src/main/java/org/apache/maven/shared/downloader/DefaultDownloader.java
@@ -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();
+    }
+}
diff --git a/src/main/java/org/apache/maven/shared/downloader/DownloadException.java b/src/main/java/org/apache/maven/shared/downloader/DownloadException.java
new file mode 100644
index 0000000..2748b47
--- /dev/null
+++ b/src/main/java/org/apache/maven/shared/downloader/DownloadException.java
@@ -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 );
+    }
+}
diff --git a/src/main/java/org/apache/maven/shared/downloader/DownloadNotFoundException.java b/src/main/java/org/apache/maven/shared/downloader/DownloadNotFoundException.java
new file mode 100644
index 0000000..938c220
--- /dev/null
+++ b/src/main/java/org/apache/maven/shared/downloader/DownloadNotFoundException.java
@@ -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 );
+    }
+}
diff --git a/src/main/java/org/apache/maven/shared/downloader/Downloader.java b/src/main/java/org/apache/maven/shared/downloader/Downloader.java
new file mode 100644
index 0000000..2be384a
--- /dev/null
+++ b/src/main/java/org/apache/maven/shared/downloader/Downloader.java
@@ -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;
+}

-- 
To stop receiving notification emails like this one, please contact
"commits@maven.apache.org" <co...@maven.apache.org>.