blob: 907466fc1b7efe6617aef6f2276bfe85aa7c52c3 [file] [log] [blame]
Thomas Vachuskae0f804a2014-10-27 23:40:48 -07001package org.onlab.onos.core.impl;
2
3import org.apache.felix.scr.annotations.Activate;
4import org.apache.felix.scr.annotations.Component;
5import org.apache.felix.scr.annotations.Reference;
6import org.apache.felix.scr.annotations.ReferenceCardinality;
7import org.apache.felix.scr.annotations.Service;
8import org.onlab.onos.core.ApplicationId;
9import org.onlab.onos.core.ApplicationIdStore;
10import org.onlab.onos.core.CoreService;
11import org.onlab.onos.core.Version;
12import org.onlab.util.Tools;
13
14import java.io.File;
15import java.util.List;
16import java.util.Set;
17
18import static com.google.common.base.Preconditions.checkNotNull;
19
20/**
21 * Core service implementation.
22 */
23@Component
24@Service
25public class CoreManager implements CoreService {
26
27 private static final File VERSION_FILE = new File("../VERSION");
28 private static Version version = Version.version("1.0.0-SNAPSHOT");
29
30 @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
31 protected ApplicationIdStore applicationIdStore;
32
33 @Activate
34 public void activate() {
35 List<String> versionLines = Tools.slurp(VERSION_FILE);
36 if (versionLines != null && !versionLines.isEmpty()) {
37 version = Version.version(versionLines.get(0));
38 }
39 }
40
41 @Override
42 public Version version() {
43 return version;
44 }
45
46 @Override
47 public Set<ApplicationId> getAppIds() {
48 return applicationIdStore.getAppIds();
49 }
50
51 @Override
52 public ApplicationId getAppId(Short id) {
53 return applicationIdStore.getAppId(id);
54 }
55
56 @Override
57 public ApplicationId registerApplication(String name) {
58 checkNotNull(name, "Application ID cannot be null");
59 return applicationIdStore.registerApplication(name);
60 }
61
62}