package hudson.plugins.stagingrelease;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.maven.artifact.repository.DefaultArtifactRepository;
import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
import org.apache.maven.artifact.repository.layout.DefaultRepositoryLayout;
import org.apache.maven.artifact.repository.layout.LegacyRepositoryLayout;
import org.apache.maven.plugin.MojoFailureException;
public class RepositoryUtil {
private static final Pattern ALT_REPO_SYNTAX_PATTERN = Pattern
.compile("(.+)::(.+)::(.+)");
public static DefaultArtifactRepository createRepository(String repositoryId)
throws MojoFailureException {
Matcher matcher = ALT_REPO_SYNTAX_PATTERN.matcher(repositoryId);
if (!matcher.matches()) {
throw new MojoFailureException(repositoryId,
"Invalid syntax for repository.",
"Invalid syntax for alternative repository. Use \"id::layout::url\".");
} else {
String id = matcher.group(1).trim();
String layout = matcher.group(2).trim();
String url = matcher.group(3).trim();
ArtifactRepositoryLayout repoLayout;
if (layout.equals("default")) {
repoLayout = new DefaultRepositoryLayout();
} else if (layout.equals("legacy")) {
repoLayout = new LegacyRepositoryLayout();
} else {
throw new MojoFailureException(layout,
"Unknown repository layout",
"Unknown repository layout. Use default or legacy");
}
return new DefaultArtifactRepository(id, url, repoLayout, true);
}
}
}