1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.giraph.utils;
19
20 import org.apache.log4j.Logger;
21
22 import com.google.common.collect.Maps;
23 import com.google.common.io.Resources;
24
25 import java.io.IOException;
26 import java.net.URL;
27 import java.util.Map;
28 import java.util.Properties;
29
30
31
32
33
34
35
36
37
38 public class GiraphDepVersions {
39
40 private static final Logger LOG = Logger.getLogger(GiraphDepVersions.class);
41
42
43 private static final String RESOURCE_NAME =
44 "org/apache/giraph/versions.properties";
45
46
47 private static final GiraphDepVersions INSTANCE = new GiraphDepVersions();
48
49
50 private final Properties properties;
51
52
53 private GiraphDepVersions() {
54 URL url = Resources.getResource(RESOURCE_NAME);
55 properties = new Properties();
56 try {
57 properties.load(url.openStream());
58 } catch (IOException e) {
59 LOG.error("Could not read giraph versions from file " + RESOURCE_NAME);
60 }
61 }
62
63
64
65
66
67
68 public static GiraphDepVersions get() {
69 return INSTANCE;
70 }
71
72 public Properties getProperties() {
73 return properties;
74 }
75
76
77
78
79
80
81
82 public String versionOf(String name) {
83 return properties.getProperty(name);
84 }
85
86
87 public void logVersionsUsed() {
88 Map<String, String> sortedVersions = Maps.newTreeMap();
89 for (Map.Entry<Object, Object> entry : properties.entrySet()) {
90 sortedVersions.put(entry.getKey().toString(),
91 entry.getValue().toString());
92 }
93 StringBuilder sb = new StringBuilder(sortedVersions.size() * 20);
94 for (Map.Entry<String, String> entry : sortedVersions.entrySet()) {
95 sb.append(" ").append(entry.getKey()).append(": ").
96 append(entry.getValue()).append("\n");
97 }
98 LOG.info("Versions of Giraph dependencies =>\n" + sb);
99 }
100 }