[WIP] Upgrade ONOS to karaf version 4.2.1

Change-Id: I7cd40c995bdf1c80f94b1895fb3344e32404c7fa
diff --git a/drivers/microsemi/ea1000/src/main/java/org/onosproject/drivers/microsemi/EA1000MeterProvider.java b/drivers/microsemi/ea1000/src/main/java/org/onosproject/drivers/microsemi/EA1000MeterProvider.java
index 03405d7..b524345 100644
--- a/drivers/microsemi/ea1000/src/main/java/org/onosproject/drivers/microsemi/EA1000MeterProvider.java
+++ b/drivers/microsemi/ea1000/src/main/java/org/onosproject/drivers/microsemi/EA1000MeterProvider.java
@@ -21,11 +21,11 @@
 
 import java.util.concurrent.atomic.AtomicInteger;
 
-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.Reference;
-import org.apache.felix.scr.annotations.ReferenceCardinality;
+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.Reference;
+import org.osgi.service.component.annotations.ReferenceCardinality;
 import org.onosproject.core.CoreService;
 import org.onosproject.drivers.microsemi.yang.MseaUniEvcServiceNetconfService;
 import org.onosproject.net.DeviceId;
@@ -73,16 +73,16 @@
 
     private final Logger log = getLogger(getClass());
 
-    @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
+    @Reference(cardinality = ReferenceCardinality.MANDATORY)
     protected NetconfController controller;
 
-    @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
+    @Reference(cardinality = ReferenceCardinality.MANDATORY)
     protected MeterProviderRegistry providerRegistry;
 
-    @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
+    @Reference(cardinality = ReferenceCardinality.MANDATORY)
     protected CoreService coreService;
 
-    @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
+    @Reference(cardinality = ReferenceCardinality.MANDATORY)
     protected MseaUniEvcServiceNetconfService mseaUniEvcServiceSvc;
 
     private MeterProviderService providerService;
diff --git a/drivers/microsemi/ea1000/src/main/java/org/onosproject/drivers/microsemi/MicrosemiDriversLoader.java b/drivers/microsemi/ea1000/src/main/java/org/onosproject/drivers/microsemi/MicrosemiDriversLoader.java
index a556765..7499a6d 100644
--- a/drivers/microsemi/ea1000/src/main/java/org/onosproject/drivers/microsemi/MicrosemiDriversLoader.java
+++ b/drivers/microsemi/ea1000/src/main/java/org/onosproject/drivers/microsemi/MicrosemiDriversLoader.java
@@ -15,7 +15,7 @@
  */
 package org.onosproject.drivers.microsemi;
 
-import org.apache.felix.scr.annotations.Component;
+import org.osgi.service.component.annotations.Component;
 import org.onosproject.net.driver.AbstractDriverLoader;
 
 /**
diff --git a/drivers/microsemi/ea1000/src/main/java/org/onosproject/drivers/microsemi/NetconfConfigGetter.java b/drivers/microsemi/ea1000/src/main/java/org/onosproject/drivers/microsemi/NetconfConfigGetter.java
index 039b760..7d937d0 100644
--- a/drivers/microsemi/ea1000/src/main/java/org/onosproject/drivers/microsemi/NetconfConfigGetter.java
+++ b/drivers/microsemi/ea1000/src/main/java/org/onosproject/drivers/microsemi/NetconfConfigGetter.java
@@ -19,8 +19,8 @@
 import static org.onosproject.netconf.DatastoreId.datastore;
 import static org.slf4j.LoggerFactory.getLogger;
 
-import org.apache.felix.scr.annotations.Reference;
-import org.apache.felix.scr.annotations.ReferenceCardinality;
+import org.osgi.service.component.annotations.Reference;
+import org.osgi.service.component.annotations.ReferenceCardinality;
 import org.onosproject.net.DeviceId;
 import org.onosproject.net.behaviour.ConfigGetter;
 import org.onosproject.net.driver.AbstractHandlerBehaviour;
@@ -42,7 +42,7 @@
 
     private final Logger log = getLogger(getClass());
 
-    @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
+    @Reference(cardinality = ReferenceCardinality.MANDATORY)
     protected PacketService packetService;
 
     private PacketProcessor testProcessor;
diff --git a/drivers/microsemi/ea1000/src/main/java/org/onosproject/drivers/microsemi/yang/impl/AbstractYangServiceImpl.java b/drivers/microsemi/ea1000/src/main/java/org/onosproject/drivers/microsemi/yang/impl/AbstractYangServiceImpl.java
index 074aad4..e61d5e5 100644
--- a/drivers/microsemi/ea1000/src/main/java/org/onosproject/drivers/microsemi/yang/impl/AbstractYangServiceImpl.java
+++ b/drivers/microsemi/ea1000/src/main/java/org/onosproject/drivers/microsemi/yang/impl/AbstractYangServiceImpl.java
@@ -15,21 +15,8 @@
  */
 package org.onosproject.drivers.microsemi.yang.impl;
 
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.List;
-import java.util.Set;
-import java.util.regex.Pattern;
-
 import com.google.common.base.Charsets;
 import com.google.common.io.ByteSource;
-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.Reference;
-import org.apache.felix.scr.annotations.ReferenceCardinality;
-import org.apache.felix.scr.annotations.Service;
 import org.onosproject.core.ApplicationId;
 import org.onosproject.core.CoreService;
 import org.onosproject.netconf.DatastoreId;
@@ -54,15 +41,26 @@
 import org.onosproject.yang.runtime.YangSerializerContext;
 import org.onosproject.yang.runtime.YangSerializerRegistry;
 import org.onosproject.yang.serializers.xml.XmlSerializer;
+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.Reference;
+import org.osgi.service.component.annotations.ReferenceCardinality;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.List;
+import java.util.Set;
+import java.util.regex.Pattern;
+
 /**
  * Abstract class that implements some of the core functions of a YANG model service.
  *
  */
-@Component(immediate = true)
-@Service
+@Component(immediate = true, service = AbstractYangServiceImpl.class)
 public abstract class AbstractYangServiceImpl {
     public static final String NC_OPERATION = "nc:operation";
     public static final String OP_DELETE = "delete";
@@ -70,10 +68,10 @@
     protected final Logger log = LoggerFactory.getLogger(getClass());
     protected boolean alreadyLoaded = false;
 
-    @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
+    @Reference(cardinality = ReferenceCardinality.MANDATORY)
     protected CoreService coreService;
 
-    @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
+    @Reference(cardinality = ReferenceCardinality.MANDATORY)
     protected YangModelRegistry yangModelRegistry;
 
     protected ApplicationId appId;
diff --git a/drivers/microsemi/ea1000/src/main/java/org/onosproject/drivers/microsemi/yang/impl/IetfSystemManager.java b/drivers/microsemi/ea1000/src/main/java/org/onosproject/drivers/microsemi/yang/impl/IetfSystemManager.java
index 0411967..16f6be8 100644
--- a/drivers/microsemi/ea1000/src/main/java/org/onosproject/drivers/microsemi/yang/impl/IetfSystemManager.java
+++ b/drivers/microsemi/ea1000/src/main/java/org/onosproject/drivers/microsemi/yang/impl/IetfSystemManager.java
@@ -19,10 +19,9 @@
 import java.time.OffsetDateTime;
 import java.time.format.DateTimeFormatter;
 
-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.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Deactivate;
 import org.onosproject.drivers.microsemi.yang.IetfSystemNetconfService;
 import org.onosproject.netconf.DatastoreId;
 import org.onosproject.netconf.NetconfException;
@@ -41,8 +40,7 @@
 /**
  * Implementation of the IetfService YANG model service.
  */
-@Component(immediate = true, inherit = true)
-@Service
+@Component(immediate = true, service = AbstractYangServiceImpl.class)
 public class IetfSystemManager extends AbstractYangServiceImpl
     implements IetfSystemNetconfService {
 
diff --git a/drivers/microsemi/ea1000/src/main/java/org/onosproject/drivers/microsemi/yang/impl/MseaCfmManager.java b/drivers/microsemi/ea1000/src/main/java/org/onosproject/drivers/microsemi/yang/impl/MseaCfmManager.java
index ef40928..81581d0 100644
--- a/drivers/microsemi/ea1000/src/main/java/org/onosproject/drivers/microsemi/yang/impl/MseaCfmManager.java
+++ b/drivers/microsemi/ea1000/src/main/java/org/onosproject/drivers/microsemi/yang/impl/MseaCfmManager.java
@@ -15,12 +15,6 @@
  */
 package org.onosproject.drivers.microsemi.yang.impl;
 
-import java.util.ArrayList;
-
-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.drivers.microsemi.yang.MseaCfmNetconfService;
 import org.onosproject.incubator.net.l2monitoring.cfm.identifier.MaIdShort;
 import org.onosproject.incubator.net.l2monitoring.cfm.identifier.MdId;
@@ -54,16 +48,19 @@
 import org.onosproject.yang.runtime.DefaultAnnotatedNodeInfo;
 import org.onosproject.yang.runtime.DefaultAnnotation;
 import org.onosproject.yang.runtime.DefaultCompositeStream;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Deactivate;
 
 import java.io.ByteArrayInputStream;
+import java.util.ArrayList;
 import java.util.Optional;
 import java.util.regex.Pattern;
 
 /**
  * Implementation of the MseaCfmServiceNetconf YANG model service.
  */
-@Component(immediate = true, inherit = true)
-@Service
+@Component(immediate = true, service = MseaCfmNetconfService.class)
 public class MseaCfmManager extends AbstractYangServiceImpl
     implements MseaCfmNetconfService {
 
diff --git a/drivers/microsemi/ea1000/src/main/java/org/onosproject/drivers/microsemi/yang/impl/MseaSaFilteringManager.java b/drivers/microsemi/ea1000/src/main/java/org/onosproject/drivers/microsemi/yang/impl/MseaSaFilteringManager.java
index 78c6315..284c732 100644
--- a/drivers/microsemi/ea1000/src/main/java/org/onosproject/drivers/microsemi/yang/impl/MseaSaFilteringManager.java
+++ b/drivers/microsemi/ea1000/src/main/java/org/onosproject/drivers/microsemi/yang/impl/MseaSaFilteringManager.java
@@ -15,10 +15,9 @@
  */
 package org.onosproject.drivers.microsemi.yang.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.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Deactivate;
 import org.onosproject.drivers.microsemi.yang.MseaSaFilteringNetconfService;
 import org.onosproject.netconf.DatastoreId;
 import org.onosproject.netconf.NetconfException;
@@ -45,8 +44,7 @@
 /**
  * Implementation of the MseaSaFiltering YANG model service.
  */
-@Component(immediate = true, inherit = true)
-@Service
+@Component(immediate = true, service = AbstractYangServiceImpl.class)
 public class MseaSaFilteringManager extends AbstractYangServiceImpl
     implements MseaSaFilteringNetconfService {
     public static final String MSEA_SA_FILTERING =
diff --git a/drivers/microsemi/ea1000/src/main/java/org/onosproject/drivers/microsemi/yang/impl/MseaUniEvcServiceManager.java b/drivers/microsemi/ea1000/src/main/java/org/onosproject/drivers/microsemi/yang/impl/MseaUniEvcServiceManager.java
index c0cba14..8d2b556 100644
--- a/drivers/microsemi/ea1000/src/main/java/org/onosproject/drivers/microsemi/yang/impl/MseaUniEvcServiceManager.java
+++ b/drivers/microsemi/ea1000/src/main/java/org/onosproject/drivers/microsemi/yang/impl/MseaUniEvcServiceManager.java
@@ -20,10 +20,9 @@
 import java.util.List;
 import java.util.Map;
 
-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.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Deactivate;
 import org.onosproject.drivers.microsemi.yang.MseaUniEvcServiceNetconfService;
 import org.onosproject.netconf.DatastoreId;
 import org.onosproject.netconf.NetconfException;
@@ -47,8 +46,7 @@
 /**
  * Implementation of the MseaUniEvcServiceService YANG model service.
  */
-@Component(immediate = true, inherit = true)
-@Service
+@Component(immediate = true, service = MseaUniEvcServiceNetconfService.class)
 public class MseaUniEvcServiceManager extends AbstractYangServiceImpl
         implements MseaUniEvcServiceNetconfService {
     public static final String MSEA_UNI_EVC_SVC =
diff --git a/drivers/microsemi/ea1000/src/test/java/org/onosproject/yang/MockYangRuntimeManager.java b/drivers/microsemi/ea1000/src/test/java/org/onosproject/yang/MockYangRuntimeManager.java
index 5cfa3ef..2ed8af3 100644
--- a/drivers/microsemi/ea1000/src/test/java/org/onosproject/yang/MockYangRuntimeManager.java
+++ b/drivers/microsemi/ea1000/src/test/java/org/onosproject/yang/MockYangRuntimeManager.java
@@ -15,10 +15,10 @@
  */
 package org.onosproject.yang;
 
-import org.apache.felix.scr.annotations.Activate;
-import org.apache.felix.scr.annotations.Deactivate;
-import org.apache.felix.scr.annotations.Reference;
-import org.apache.felix.scr.annotations.ReferenceCardinality;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Deactivate;
+import org.osgi.service.component.annotations.Reference;
+import org.osgi.service.component.annotations.ReferenceCardinality;
 import org.onosproject.core.CoreService;
 import org.onosproject.drivers.netconf.MockCoreService;
 import org.onosproject.yang.model.ModelConverter;
@@ -62,7 +62,7 @@
         private static final String APP_ID = "org.onosproject.yang";
         private final Logger log = LoggerFactory.getLogger(getClass());
 
-        @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
+        @Reference(cardinality = ReferenceCardinality.MANDATORY)
         protected CoreService coreService;
 
         private DefaultYangModelRegistry modelRegistry;