]> git.argeo.org Git - gpl/argeo-slc.git/blob - runtime/org.argeo.slc.support.maven/src/main/java/org/argeo/slc/maven/DependencyFileLoader.java
Upgrade to Maven 2.0.9 (in order to support import id DependencyManagement)
[gpl/argeo-slc.git] / runtime / org.argeo.slc.support.maven / src / main / java / org / argeo / slc / maven / DependencyFileLoader.java
1 package org.argeo.slc.maven;
2
3 import java.io.IOException;
4 import java.util.ArrayList;
5 import java.util.List;
6 import java.util.StringTokenizer;
7
8 import org.apache.commons.io.IOUtils;
9 import org.apache.commons.logging.Log;
10 import org.apache.commons.logging.LogFactory;
11 import org.argeo.slc.SlcException;
12 import org.springframework.beans.factory.FactoryBean;
13 import org.springframework.core.io.Resource;
14
15 public class DependencyFileLoader implements FactoryBean{
16 private final static Log log = LogFactory.getLog(DependencyFileLoader.class);
17
18 private Resource dependenciesResource;
19
20 @SuppressWarnings("unchecked")
21 public List<MavenFile> loadMavenFiles() {
22 try {
23 List<MavenFile> mavenFiles = new ArrayList<MavenFile>();
24
25 List<String> lines = IOUtils.readLines(dependenciesResource
26 .getInputStream());
27 for (String line : lines) {
28 try {
29 line = line.trim();
30 if (line.equals("")
31 || line
32 .startsWith("The following files have been resolved:"))
33 continue;// skip
34
35 mavenFiles.add(convert(line));
36 } catch (Exception e) {
37 log.warn("Could not load line " + line);
38 }
39 }
40
41 return mavenFiles;
42 } catch (IOException e) {
43 throw new SlcException("Could not read dependencies resource "
44 + dependenciesResource, e);
45 }
46 }
47
48 protected MavenFile convert(String str) {
49 StringTokenizer st = new StringTokenizer(str, ":");
50 MavenFile component = new MavenFile();
51 component.setGroupId(st.nextToken());
52 component.setArtifactId(st.nextToken());
53 component.setType(st.nextToken());
54 component.setVersion(st.nextToken());
55 component.setScope(st.nextToken());
56 return component;
57 }
58
59 public void setDependenciesResource(Resource dependenciesResource) {
60 this.dependenciesResource = dependenciesResource;
61 }
62
63 public Object getObject() throws Exception {
64 return loadMavenFiles();
65 }
66
67 @SuppressWarnings("unchecked")
68 public Class<List> getObjectType() {
69 return List.class;
70 }
71
72 public boolean isSingleton() {
73 return false;
74 }
75
76
77 }