package org.jboss.arquillian;
import java.io.File;
public class MavenArtifactResolver
{
private static final String LOCAL_MAVEN_REPO =
System.getProperty("maven.repo.local") != null ?
System.getProperty("maven.repo.local") :
(System.getProperty("user.home") + File.separatorChar +
".m2" + File.separatorChar + "repository");
public static File resolve(final String groupId, final String artifactId,
final String version)
{
return resolve(groupId, artifactId, version, null);
}
public static File resolve(final String groupId, final String artifactId,
final String version, final String classifier)
{
return new File(LOCAL_MAVEN_REPO + File.separatorChar +
groupId.replace(".", File.separator) + File.separatorChar +
artifactId + File.separatorChar +
version + File.separatorChar +
artifactId + "-" + version +
(classifier != null ? ("-" + classifier) : "") + ".jar");
}
public static File resolve(final String qualifiedArtifactId)
{
String[] segments = qualifiedArtifactId.split(":");
if (segments.length == 3)
{
return resolve(segments[0], segments[1], segments[2]);
}
else if (segments.length == 4)
{
return resolve(segments[0], segments[1], segments[2], segments[3]);
}
throw new IllegalArgumentException("Invalid qualified artifactId syntax: " +
qualifiedArtifactId);
}
public static File[] resolve(final String... qualifiedArtifactIds)
{
int n = qualifiedArtifactIds.length;
File[] artifacts = new File[n];
for (int i = 0; i < n; i++)
{
artifacts[i] = resolve(qualifiedArtifactIds[i]);
}
return artifacts;
}
}