OpenFlow: use same timer throughout all component lifetime
Calls to the modified methods (all configuration changes through the
CLI, for example) of OpenFlowDeviceProvider and OpenFlowRuleProvider
cause a switch from executor to another one on PortStatsCollector and
FlowStats collector respectively.
Since these Collectors are constructed with a Timer argument, we might
as well use those timers properly right away.
Change-Id: I32aa8c89d9615ea065e5fd9fd7dfc70da96b9739
diff --git a/providers/openflow/device/src/main/java/org/onosproject/provider/of/device/impl/OpenFlowDeviceProvider.java b/providers/openflow/device/src/main/java/org/onosproject/provider/of/device/impl/OpenFlowDeviceProvider.java
index 8aa509d..a4098fa 100644
--- a/providers/openflow/device/src/main/java/org/onosproject/provider/of/device/impl/OpenFlowDeviceProvider.java
+++ b/providers/openflow/device/src/main/java/org/onosproject/provider/of/device/impl/OpenFlowDeviceProvider.java
@@ -162,7 +162,7 @@
label = "Frequency (in seconds) for polling switch Port statistics")
private int portStatsPollFrequency = POLL_INTERVAL;
- private final Timer timer = new Timer("onos-openflow-collector");
+ private final Timer timer = new Timer("onos-openflow-portstats-collector");
private HashMap<Dpid, PortStatsCollector> collectors = Maps.newHashMap();
diff --git a/providers/openflow/device/src/main/java/org/onosproject/provider/of/device/impl/PortStatsCollector.java b/providers/openflow/device/src/main/java/org/onosproject/provider/of/device/impl/PortStatsCollector.java
index 02d9d9b..15cab14 100644
--- a/providers/openflow/device/src/main/java/org/onosproject/provider/of/device/impl/PortStatsCollector.java
+++ b/providers/openflow/device/src/main/java/org/onosproject/provider/of/device/impl/PortStatsCollector.java
@@ -16,7 +16,6 @@
package org.onosproject.provider.of.device.impl;
-import org.onlab.util.SharedExecutors;
import org.onosproject.openflow.controller.OpenFlowSwitch;
import org.onosproject.openflow.controller.RoleState;
import org.projectfloodlight.openflow.protocol.OFPortStatsRequest;
@@ -73,8 +72,8 @@
public synchronized void start() {
log.info("Starting Port Stats collection thread for {}", sw.getStringId());
task = new InternalTimerTask();
- SharedExecutors.getTimer().scheduleAtFixedRate(task, 1 * SECONDS,
- refreshInterval * SECONDS);
+ timer.scheduleAtFixedRate(task, 1 * SECONDS,
+ refreshInterval * SECONDS);
}
/**
diff --git a/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/impl/FlowStatsCollector.java b/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/impl/FlowStatsCollector.java
index 88ba50b..b52d35a 100644
--- a/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/impl/FlowStatsCollector.java
+++ b/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/impl/FlowStatsCollector.java
@@ -16,7 +16,6 @@
package org.onosproject.provider.of.flow.impl;
import static com.google.common.base.Preconditions.checkNotNull;
-import org.onlab.util.SharedExecutors;
import org.onosproject.openflow.controller.OpenFlowSwitch;
import org.onosproject.openflow.controller.RoleState;
import org.projectfloodlight.openflow.protocol.OFFlowStatsRequest;
@@ -88,8 +87,8 @@
// Initially start polling quickly. Then drop down to configured value
log.debug("Starting Stats collection thread for {}", sw.getStringId());
task = new InternalTimerTask();
- SharedExecutors.getTimer().scheduleAtFixedRate(task, 1 * SECONDS,
- pollInterval * SECONDS);
+ timer.scheduleAtFixedRate(task, 1 * SECONDS,
+ pollInterval * SECONDS);
}
public synchronized void stop() {
diff --git a/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/impl/OpenFlowRuleProvider.java b/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/impl/OpenFlowRuleProvider.java
index 3b6cbe4..9c9f154 100644
--- a/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/impl/OpenFlowRuleProvider.java
+++ b/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/impl/OpenFlowRuleProvider.java
@@ -140,7 +140,7 @@
private Cache<Long, InternalCacheEntry> pendingBatches;
- private final Timer timer = new Timer("onos-openflow-collector");
+ private final Timer timer = new Timer("onos-openflow-flowstats-collector");
private final Map<Dpid, FlowStatsCollector> simpleCollectors = Maps.newConcurrentMap();
// NewAdaptiveFlowStatsCollector Set