[WIP] Upgrade ONOS to karaf version 4.2.1

Change-Id: I7cd40c995bdf1c80f94b1895fb3344e32404c7fa
diff --git a/core/api/src/main/java/org/onosproject/net/driver/AbstractDriverLoader.java b/core/api/src/main/java/org/onosproject/net/driver/AbstractDriverLoader.java
index fc2b6f2..9271fd9 100644
--- a/core/api/src/main/java/org/onosproject/net/driver/AbstractDriverLoader.java
+++ b/core/api/src/main/java/org/onosproject/net/driver/AbstractDriverLoader.java
@@ -15,21 +15,20 @@
  */
 package org.onosproject.net.driver;
 
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Reference;
-import org.apache.felix.scr.annotations.ReferenceCardinality;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
+import org.osgi.service.component.annotations.ReferenceCardinality;
 
 /**
  * Abstract bootstrapper for loading and registering driver definitions that
  * are dependent on the default driver definitions.
  */
-@Component
 public abstract class AbstractDriverLoader extends AbstractIndependentDriverLoader {
 
     // FIXME: This requirement should be removed and the driver extensions that
     // depend on the default drivers being loaded should be modified to instead
     // express the dependency using the application dependency mechanism.
-    @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
+    @Reference(cardinality = ReferenceCardinality.MANDATORY)
     protected DefaultDriverProviderService defaultDriverProviderService;
 
     /**
diff --git a/core/api/src/main/java/org/onosproject/net/driver/AbstractIndependentDriverLoader.java b/core/api/src/main/java/org/onosproject/net/driver/AbstractIndependentDriverLoader.java
index cd587e9..5816ef7 100644
--- a/core/api/src/main/java/org/onosproject/net/driver/AbstractIndependentDriverLoader.java
+++ b/core/api/src/main/java/org/onosproject/net/driver/AbstractIndependentDriverLoader.java
@@ -15,11 +15,10 @@
  */
 package org.onosproject.net.driver;
 
-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.Deactivate;
+import org.osgi.service.component.annotations.Reference;
+import org.osgi.service.component.annotations.ReferenceCardinality;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -27,7 +26,6 @@
  * Abstract bootstrapper for loading and registering driver definitions that
  * are independent from the default driver definitions.
  */
-@Component
 public abstract class AbstractIndependentDriverLoader {
 
     private final Logger log = LoggerFactory.getLogger(getClass());
@@ -35,7 +33,7 @@
     private DriverProvider provider;
     private final String path;
 
-    @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
+    @Reference(cardinality = ReferenceCardinality.MANDATORY)
     protected DriverAdminService driverAdminService;
 
     /**
diff --git a/core/api/src/main/java/org/onosproject/net/provider/AbstractListenerProviderRegistry.java b/core/api/src/main/java/org/onosproject/net/provider/AbstractListenerProviderRegistry.java
index f65f3bc..b42e077 100644
--- a/core/api/src/main/java/org/onosproject/net/provider/AbstractListenerProviderRegistry.java
+++ b/core/api/src/main/java/org/onosproject/net/provider/AbstractListenerProviderRegistry.java
@@ -15,19 +15,17 @@
  */
 package org.onosproject.net.provider;
 
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Reference;
-import org.apache.felix.scr.annotations.ReferenceCardinality;
 import org.onosproject.event.Event;
 import org.onosproject.event.EventDeliveryService;
 import org.onosproject.event.EventListener;
 import org.onosproject.event.ListenerRegistry;
 import org.onosproject.event.ListenerService;
+import org.osgi.service.component.annotations.Reference;
+import org.osgi.service.component.annotations.ReferenceCardinality;
 
 /**
  * Basis for components which need to export listener mechanism.
  */
-@Component
 public abstract class AbstractListenerProviderRegistry<E extends Event, L extends EventListener<E>,
                                                        P extends Provider, S extends ProviderService<P>>
         extends AbstractProviderRegistry<P, S> implements ListenerService<E, L> {
@@ -36,7 +34,7 @@
 
     protected final ListenerRegistry<E, L> listenerRegistry = new ListenerRegistry<>();
 
-    @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
+    @Reference(cardinality = ReferenceCardinality.MANDATORY)
     protected EventDeliveryService eventDispatcher;
 
     @Override