[WIP] Upgrade ONOS to karaf version 4.2.1

Change-Id: I7cd40c995bdf1c80f94b1895fb3344e32404c7fa
diff --git a/core/net/src/main/java/org/onosproject/core/impl/CoreManager.java b/core/net/src/main/java/org/onosproject/core/impl/CoreManager.java
index 66fc9f9..733da9c 100644
--- a/core/net/src/main/java/org/onosproject/core/impl/CoreManager.java
+++ b/core/net/src/main/java/org/onosproject/core/impl/CoreManager.java
@@ -15,22 +15,14 @@
  */
 package org.onosproject.core.impl;
 
-import org.apache.felix.scr.annotations.Activate;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Deactivate;
-import org.apache.felix.scr.annotations.Modified;
-import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.Reference;
-import org.apache.felix.scr.annotations.ReferenceCardinality;
-import org.apache.felix.scr.annotations.Service;
 import org.onlab.metrics.MetricsService;
 import org.onlab.util.SharedExecutors;
 import org.onlab.util.SharedScheduledExecutors;
 import org.onlab.util.Tools;
+import org.onosproject.app.ApplicationIdStore;
 import org.onosproject.app.ApplicationService;
 import org.onosproject.cfg.ComponentConfigService;
 import org.onosproject.core.ApplicationId;
-import org.onosproject.app.ApplicationIdStore;
 import org.onosproject.core.CoreService;
 import org.onosproject.core.IdBlockStore;
 import org.onosproject.core.IdGenerator;
@@ -38,6 +30,12 @@
 import org.onosproject.core.VersionService;
 import org.onosproject.event.EventDeliveryService;
 import org.osgi.service.component.ComponentContext;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Deactivate;
+import org.osgi.service.component.annotations.Modified;
+import org.osgi.service.component.annotations.Reference;
+import org.osgi.service.component.annotations.ReferenceCardinality;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -52,46 +50,45 @@
 /**
  * Core service implementation.
  */
-@Component(immediate = true)
-@Service
+@Component(immediate = true, service = CoreService.class)
 public class CoreManager implements CoreService {
 
     private final Logger log = LoggerFactory.getLogger(getClass());
 
-    @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
+    @Reference(cardinality = ReferenceCardinality.MANDATORY)
     protected VersionService versionService;
 
-    @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
+    @Reference(cardinality = ReferenceCardinality.MANDATORY)
     protected ApplicationIdStore applicationIdStore;
 
-    @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
+    @Reference(cardinality = ReferenceCardinality.MANDATORY)
     protected IdBlockStore idBlockStore;
 
-    @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
+    @Reference(cardinality = ReferenceCardinality.MANDATORY)
     protected ApplicationService appService;
 
-    @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
+    @Reference(cardinality = ReferenceCardinality.MANDATORY)
     protected ComponentConfigService cfgService;
 
-    @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
+    @Reference(cardinality = ReferenceCardinality.MANDATORY)
     protected EventDeliveryService eventDeliveryService;
 
-    @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
+    @Reference(cardinality = ReferenceCardinality.MANDATORY)
     protected MetricsService metricsService;
 
     private static final int DEFAULT_POOL_SIZE = 30;
-    @Property(name = "sharedThreadPoolSize", intValue = DEFAULT_POOL_SIZE,
-            label = "Configure shared pool maximum size ")
+    //@Property(name = "sharedThreadPoolSize", intValue = DEFAULT_POOL_SIZE,
+    //        label = "Configure shared pool maximum size ")
     private int sharedThreadPoolSize = DEFAULT_POOL_SIZE;
 
     private static final int DEFAULT_EVENT_TIME = 2000;
-    @Property(name = "maxEventTimeLimit", intValue = DEFAULT_EVENT_TIME,
-            label = "Maximum number of millis an event sink has to process an event")
+    //@Property(name = "maxEventTimeLimit", intValue = DEFAULT_EVENT_TIME,
+    //        label = "Maximum number of millis an event sink has to process an event")
     private int maxEventTimeLimit = DEFAULT_EVENT_TIME;
 
     private static final boolean DEFAULT_PERFORMANCE_CHECK = false;
-    @Property(name = "sharedThreadPerformanceCheck", boolValue = DEFAULT_PERFORMANCE_CHECK,
-            label = "Enable queue performance check on shared pool")
+    //@Property(name = "sharedThreadPerformanceCheck", boolValue = DEFAULT_PERFORMANCE_CHECK,
+    //        label = "Enable queue performance check on shared pool")
     private boolean calculatePoolPerformance = DEFAULT_PERFORMANCE_CHECK;
 
 
diff --git a/core/net/src/main/java/org/onosproject/core/impl/HybridLogicalClockManager.java b/core/net/src/main/java/org/onosproject/core/impl/HybridLogicalClockManager.java
index 7eb0bf7..182aee0 100644
--- a/core/net/src/main/java/org/onosproject/core/impl/HybridLogicalClockManager.java
+++ b/core/net/src/main/java/org/onosproject/core/impl/HybridLogicalClockManager.java
@@ -16,25 +16,23 @@
 
 package org.onosproject.core.impl;
 
-import static org.slf4j.LoggerFactory.getLogger;
+import org.onosproject.core.HybridLogicalClockService;
+import org.onosproject.core.HybridLogicalTime;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Deactivate;
+import org.slf4j.Logger;
 
 import java.util.function.Supplier;
 
-import org.apache.felix.scr.annotations.Activate;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Deactivate;
-import org.apache.felix.scr.annotations.Service;
-import org.onosproject.core.HybridLogicalClockService;
-import org.onosproject.core.HybridLogicalTime;
-import org.slf4j.Logger;
+import static org.slf4j.LoggerFactory.getLogger;
 
 /**
  * Implementation of {@link HybridLogicalClockService}.
  * <p>
  * Implementation is based on HLT <a href="http://www.cse.buffalo.edu/tech-reports/2014-04.pdf">paper</a>.
  */
-@Component(immediate = true)
-@Service
+@Component(immediate = true, service = HybridLogicalClockService.class)
 public class HybridLogicalClockManager implements HybridLogicalClockService {
 
     private final Logger log = getLogger(getClass());
diff --git a/core/net/src/main/java/org/onosproject/core/impl/MetricsManagerComponent.java b/core/net/src/main/java/org/onosproject/core/impl/MetricsManagerComponent.java
index aaff20a..4e8db53 100644
--- a/core/net/src/main/java/org/onosproject/core/impl/MetricsManagerComponent.java
+++ b/core/net/src/main/java/org/onosproject/core/impl/MetricsManagerComponent.java
@@ -15,18 +15,16 @@
  */
 package org.onosproject.core.impl;
 
-import org.apache.felix.scr.annotations.Activate;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Deactivate;
-import org.apache.felix.scr.annotations.Service;
-
 import org.onlab.metrics.MetricsManager;
+import org.onlab.metrics.MetricsService;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Deactivate;
 
 /**
  * Metrics service implementation.
  */
-@Component(immediate = true)
-@Service
+@Component(immediate = true, service = MetricsService.class)
 public class MetricsManagerComponent extends MetricsManager {
 
     @Activate
diff --git a/core/net/src/main/java/org/onosproject/core/impl/VersionManager.java b/core/net/src/main/java/org/onosproject/core/impl/VersionManager.java
index faec87b..ea5fb99 100644
--- a/core/net/src/main/java/org/onosproject/core/impl/VersionManager.java
+++ b/core/net/src/main/java/org/onosproject/core/impl/VersionManager.java
@@ -15,6 +15,13 @@
  */
 package org.onosproject.core.impl;
 
+import org.onosproject.core.Version;
+import org.onosproject.core.VersionService;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 import java.io.File;
 import java.io.IOException;
 import java.nio.file.Files;
@@ -22,19 +29,10 @@
 import java.nio.file.Paths;
 import java.util.List;
 
-import org.apache.felix.scr.annotations.Activate;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Service;
-import org.onosproject.core.Version;
-import org.onosproject.core.VersionService;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
 /**
  * Node version service implementation.
  */
-@Component(immediate = true)
-@Service
+@Component(immediate = true, service = VersionService.class)
 public class VersionManager implements VersionService {
 
     private final Logger log = LoggerFactory.getLogger(getClass());