Refining driver subsystem to facilitate coordinated start-up.
- for ONOS-6402
Change-Id: I7f64fc62ad1d451fcf55624b2422b60631a3c8e8
diff --git a/incubator/net/src/main/java/org/onosproject/incubator/net/meter/impl/MeterManager.java b/incubator/net/src/main/java/org/onosproject/incubator/net/meter/impl/MeterManager.java
index 62b77de..1777cbc 100644
--- a/incubator/net/src/main/java/org/onosproject/incubator/net/meter/impl/MeterManager.java
+++ b/incubator/net/src/main/java/org/onosproject/incubator/net/meter/impl/MeterManager.java
@@ -63,10 +63,10 @@
/**
* Provides implementation of the meter service APIs.
*/
-@Component(immediate = true, enabled = true)
+@Component(immediate = true)
@Service
-public class MeterManager extends AbstractListenerProviderRegistry<MeterEvent, MeterListener,
- MeterProvider, MeterProviderService>
+public class MeterManager
+ extends AbstractListenerProviderRegistry<MeterEvent, MeterListener, MeterProvider, MeterProviderService>
implements MeterService, MeterProviderRegistry {
private static final String METERCOUNTERIDENTIFIER = "meter-id-counter-%s";
@@ -89,7 +89,6 @@
@Activate
public void activate() {
-
store.setDelegate(delegate);
eventDispatcher.addSink(MeterEvent.class, listenerRegistry);
@@ -113,6 +112,7 @@
@Deactivate
public void deactivate() {
store.unsetDelegate(delegate);
+ eventDispatcher.removeSink(MeterEvent.class);
log.info("Stopped");
}
diff --git a/incubator/net/src/main/java/org/onosproject/incubator/net/virtual/impl/provider/DefaultVirtualPacketProvider.java b/incubator/net/src/main/java/org/onosproject/incubator/net/virtual/impl/provider/DefaultVirtualPacketProvider.java
index 63c3cc2..5eaa3b0 100644
--- a/incubator/net/src/main/java/org/onosproject/incubator/net/virtual/impl/provider/DefaultVirtualPacketProvider.java
+++ b/incubator/net/src/main/java/org/onosproject/incubator/net/virtual/impl/provider/DefaultVirtualPacketProvider.java
@@ -96,17 +96,14 @@
/**
* Creates a provider with the supplied identifier.
- *
*/
public DefaultVirtualPacketProvider() {
- super(new ProviderId("virtual-packet",
- "org.onosproject.virtual.virtual-packet"));
+ super(new ProviderId("virtual-packet", "org.onosproject.virtual.virtual-packet"));
}
@Activate
public void activate() {
- appId = coreService.registerApplication(
- "org.onosproject.virtual.virtual-packet");
+ appId = coreService.registerApplication("org.onosproject.virtual.virtual-packet");
providerRegistryService.registerProvider(this);
contextMap = Maps.newConcurrentMap();
@@ -119,6 +116,7 @@
if (processor != null) {
packetService.removeProcessor(processor);
}
+ providerRegistryService.unregisterProvider(this);
log.info("Stopped");
}
@@ -136,7 +134,6 @@
@Override
public void startPacketHandling(NetworkId networkId) {
requestsSet.add(networkId);
-
if (processor == null) {
processor = new InternalPacketProcessor();
packetService.addProcessor(processor, PACKET_PROCESSOR_PRIORITY);
@@ -146,7 +143,6 @@
@Override
public void stopPacketHandling(NetworkId networkId) {
requestsSet.remove(networkId);
-
if (requestsSet.isEmpty()) {
packetService.removeProcessor(processor);
processor = null;