]> git.argeo.org Git - gpl/argeo-slc.git/blob - runtime/org.argeo.slc.support.maven/src/main/java/org/argeo/slc/maven/MavenManager.java
20120bdf77127e7b3368f3e18aef8b75438f5672
[gpl/argeo-slc.git] / runtime / org.argeo.slc.support.maven / src / main / java / org / argeo / slc / maven / MavenManager.java
1 package org.argeo.slc.maven;
2
3
4 public class MavenManager {
5 /*
6 private final Log log = LogFactory.getLog(getClass());
7
8 private String localRepositoryPath = System.getProperty("user.home")
9 + File.separator + ".m2" + File.separator + "repository";
10
11 private ArtifactRepository localRepository;
12 private List<ArtifactRepository> remoteRepositoriesInternal;
13 private List<RemoteRepository> remoteRepositories = new Vector<RemoteRepository>();
14
15 private MavenEmbedder mavenEmbedder;
16
17 public void init() {
18 try {
19 mavenEmbedder = new MavenEmbedder();
20 mavenEmbedder.setOffline(true);
21 mavenEmbedder.setClassLoader(Thread.currentThread()
22 .getContextClassLoader());
23 mavenEmbedder.start();
24
25 mavenEmbedder.setLocalRepositoryDirectory(new File(
26 localRepositoryPath));
27
28 localRepository = mavenEmbedder.getLocalRepository();
29
30 remoteRepositoriesInternal = new Vector<ArtifactRepository>();
31 for (RemoteRepository remoteRepository : remoteRepositories) {
32
33 ArtifactRepository repository = mavenEmbedder.createRepository(
34 remoteRepository.getUrl(), remoteRepository.getId());
35 remoteRepositoriesInternal.add(repository);
36 }
37
38 MavenFile mavenFile = new MavenFile();
39 mavenFile.setGroupId("org.argeo.slc.runtime");
40 mavenFile.setArtifactId("org.argeo.slc.specs");
41 mavenFile.setVersion("0.11.3-SNAPSHOT");
42 Artifact artifact = resolve(mavenFile);
43 log.debug("Dependencies of "+artifact);
44 for(Object obj : artifact.getDependencyTrail()){
45 log.debug(" "+obj);
46 }
47
48 } catch (Exception e) {
49 throw new SlcException("Cannot initialize Maven manager", e);
50 }
51 }
52
53 private Artifact resolve(MavenFile mavenDistribution) {
54 try {
55 Artifact artifact;
56 if (mavenDistribution.getClassifier() == null) {
57 artifact = mavenEmbedder.createArtifact(mavenDistribution
58 .getGroupId(), mavenDistribution.getArtifactId(),
59 mavenDistribution.getVersion(),
60 Artifact.SCOPE_PROVIDED, mavenDistribution.getType());
61 } else {
62 artifact = mavenEmbedder.createArtifactWithClassifier(
63 mavenDistribution.getGroupId(), mavenDistribution
64 .getArtifactId(), mavenDistribution
65 .getVersion(), mavenDistribution.getType(),
66 mavenDistribution.getClassifier());
67 }
68
69 mavenEmbedder.resolve(artifact, remoteRepositoriesInternal,
70 localRepository);
71
72 return artifact;
73 } catch (Exception e) {
74 throw new SlcException("Cannot resolve artifact.", e);
75 }
76 }
77
78 public File getPackageLocation(MavenFile mavenDistribution) {
79 return resolve(mavenDistribution).getFile();
80 }
81
82 public void destroy() {
83 try {
84 if (mavenEmbedder != null) {
85 mavenEmbedder.stop();
86 }
87 } catch (MavenEmbedderException e) {
88 log.error("Cannot destroy Maven manager", e);
89 }
90 }
91
92 public void setLocalRepositoryPath(String localRepositoryPath) {
93 this.localRepositoryPath = localRepositoryPath;
94 }
95
96 public List<RemoteRepository> getRemoteRepositories() {
97 return remoteRepositories;
98 }
99
100 public void setRemoteRepositories(List<RemoteRepository> remoteRepositories) {
101 this.remoteRepositories = remoteRepositories;
102 }
103 */
104 }