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 <[email protected]> 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 "[email protected]" <[email protected]>.
