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>.