]>
git.argeo.org Git - gpl/argeo-slc.git/blob - runtime/org.argeo.slc.launcher/src/main/java/org/argeo/slc/maven/MavenManager.java
1 package org
.argeo
.slc
.maven
;
5 import java
.util
.Vector
;
7 import org
.apache
.commons
.logging
.Log
;
8 import org
.apache
.commons
.logging
.LogFactory
;
9 //import org.apache.maven.artifact.Artifact;
10 //import org.apache.maven.artifact.repository.ArtifactRepository;
11 //import org.apache.maven.embedder.MavenEmbedder;
12 //import org.apache.maven.embedder.MavenEmbedderException;
14 import org
.argeo
.slc
.core
.SlcException
;
16 public class MavenManager
{/* FIXME
17 private final Log log = LogFactory.getLog(getClass());
19 private String localRepositoryPath;
21 private ArtifactRepository localRepository;
22 private List<ArtifactRepository> remoteRepositoriesInternal;
23 private List<RemoteRepository> remoteRepositories = new Vector<RemoteRepository>();
25 private MavenEmbedder mavenEmbedder;
29 mavenEmbedder = new MavenEmbedder();
30 mavenEmbedder.setOffline(true);
31 mavenEmbedder.setClassLoader(Thread.currentThread()
32 .getContextClassLoader());
33 mavenEmbedder.start();
35 mavenEmbedder.setLocalRepositoryDirectory(new File(
36 localRepositoryPath));
38 localRepository = mavenEmbedder.getLocalRepository();
40 remoteRepositoriesInternal = new Vector<ArtifactRepository>();
41 for (RemoteRepository remoteRepository : remoteRepositories) {
43 ArtifactRepository repository = mavenEmbedder.createRepository(
44 remoteRepository.getUrl(), remoteRepository.getId());
45 remoteRepositoriesInternal.add(repository);
48 } catch (Exception e) {
49 throw new SlcException("Cannot initialize Maven manager", e);
53 private Artifact resolve(MavenFile mavenDistribution) {
56 if (mavenDistribution.getClassifier() == null) {
57 artifact = mavenEmbedder.createArtifact(mavenDistribution
58 .getGroupId(), mavenDistribution.getArtifactId(),
59 mavenDistribution.getVersion(),
60 Artifact.SCOPE_PROVIDED, mavenDistribution.getType());
62 artifact = mavenEmbedder.createArtifactWithClassifier(
63 mavenDistribution.getGroupId(), mavenDistribution
64 .getArtifactId(), mavenDistribution
65 .getVersion(), mavenDistribution.getType(),
66 mavenDistribution.getClassifier());
69 mavenEmbedder.resolve(artifact, remoteRepositoriesInternal,
73 } catch (Exception e) {
74 throw new SlcException("Cannot resolve artifact.", e);
78 public File getPackageLocation(MavenFile mavenDistribution) {
79 return resolve(mavenDistribution).getFile();
82 public void destroy() {
84 if (mavenEmbedder != null) {
87 } catch (MavenEmbedderException e) {
88 log.error("Cannot destroy Maven manager", e);
92 public void setLocalRepositoryPath(String localRepositoryPath) {
93 this.localRepositoryPath = localRepositoryPath;
96 public List<RemoteRepository> getRemoteRepositories() {
97 return remoteRepositories;
100 public void setRemoteRepositories(List<RemoteRepository> remoteRepositories) {
101 this.remoteRepositories = remoteRepositories;