Migrate HashedWheelTimer to netty 4
- moved potentially time consuming task to
shared ScheduledThreadPoolExecutor
Change-Id: I8e77041e0f84bd2bdfd6ae6704f4e39b81c721dd
diff --git a/providers/lldpcommon/src/main/java/org/onosproject/provider/lldpcommon/LinkDiscovery.java b/providers/lldpcommon/src/main/java/org/onosproject/provider/lldpcommon/LinkDiscovery.java
index f4e2231..e3b9085 100644
--- a/providers/lldpcommon/src/main/java/org/onosproject/provider/lldpcommon/LinkDiscovery.java
+++ b/providers/lldpcommon/src/main/java/org/onosproject/provider/lldpcommon/LinkDiscovery.java
@@ -17,8 +17,9 @@
import com.google.common.collect.Sets;
-import org.jboss.netty.util.Timeout;
-import org.jboss.netty.util.TimerTask;
+import io.netty.util.Timeout;
+import io.netty.util.TimerTask;
+
import org.onlab.packet.Ethernet;
import org.onlab.packet.MacAddress;
import org.onlab.packet.ONOSLLDP;
@@ -109,7 +110,7 @@
public synchronized void start() {
if (isStopped) {
isStopped = false;
- timeout = Timer.getTimer().newTimeout(this, 0, MILLISECONDS);
+ timeout = Timer.newTimeout(this, 0, MILLISECONDS);
} else {
log.warn("LinkDiscovery started multiple times?");
}
@@ -218,7 +219,7 @@
}
if (!isStopped()) {
- timeout = Timer.getTimer().newTimeout(this, context.probeRate(), MILLISECONDS);
+ timeout = t.timer().newTimeout(this, context.probeRate(), MILLISECONDS);
}
}
diff --git a/providers/null/src/main/java/org/onosproject/provider/nil/NullFlowRuleProvider.java b/providers/null/src/main/java/org/onosproject/provider/nil/NullFlowRuleProvider.java
index 8e508d2..98cb848 100644
--- a/providers/null/src/main/java/org/onosproject/provider/nil/NullFlowRuleProvider.java
+++ b/providers/null/src/main/java/org/onosproject/provider/nil/NullFlowRuleProvider.java
@@ -16,9 +16,10 @@
package org.onosproject.provider.nil;
import com.google.common.collect.Sets;
-import org.jboss.netty.util.HashedWheelTimer;
-import org.jboss.netty.util.Timeout;
-import org.jboss.netty.util.TimerTask;
+
+import io.netty.util.Timeout;
+import io.netty.util.TimerTask;
+
import org.onlab.util.Timer;
import org.onosproject.core.ApplicationId;
import org.onosproject.net.DeviceId;
@@ -52,7 +53,6 @@
private FlowRuleProviderService providerService;
- private HashedWheelTimer timer = Timer.getTimer();
private Timeout timeout;
/**
@@ -62,7 +62,7 @@
*/
void start(FlowRuleProviderService providerService) {
this.providerService = providerService;
- timeout = timer.newTimeout(new StatisticTask(), 5, TimeUnit.SECONDS);
+ timeout = Timer.newTimeout(new StatisticTask(), 5, TimeUnit.SECONDS);
}
/**
@@ -126,7 +126,7 @@
flowTable.getOrDefault(devId, Collections.emptySet());
providerService.pushFlowMetrics(devId, entries);
}
- timeout = timer.newTimeout(to.getTask(), 5, TimeUnit.SECONDS);
+ timeout = to.timer().newTimeout(to.task(), 5, TimeUnit.SECONDS);
}
}
}
diff --git a/providers/null/src/main/java/org/onosproject/provider/nil/NullPacketProvider.java b/providers/null/src/main/java/org/onosproject/provider/nil/NullPacketProvider.java
index 54b45e4..d69a0ac 100644
--- a/providers/null/src/main/java/org/onosproject/provider/nil/NullPacketProvider.java
+++ b/providers/null/src/main/java/org/onosproject/provider/nil/NullPacketProvider.java
@@ -15,9 +15,6 @@
*/
package org.onosproject.provider.nil;
-import org.jboss.netty.util.HashedWheelTimer;
-import org.jboss.netty.util.Timeout;
-import org.jboss.netty.util.TimerTask;
import org.onlab.packet.Ethernet;
import org.onlab.packet.ICMP;
import org.onlab.util.Timer;
@@ -34,6 +31,9 @@
import org.onosproject.net.packet.PacketProviderService;
import org.slf4j.Logger;
+import io.netty.util.Timeout;
+import io.netty.util.TimerTask;
+
import java.nio.ByteBuffer;
import java.util.List;
import java.util.concurrent.TimeUnit;
@@ -69,7 +69,6 @@
private List<Device> devices;
private int currentDevice = 0;
- private HashedWheelTimer timer = Timer.getTimer();
private Timeout timeout;
/**
@@ -91,7 +90,7 @@
.collect(Collectors.toList());
adjustRate(packetRate);
- timeout = timer.newTimeout(new PacketDriverTask(), INITIAL_DELAY, SECONDS);
+ timeout = Timer.newTimeout(new PacketDriverTask(), INITIAL_DELAY, SECONDS);
}
/**
@@ -103,7 +102,7 @@
boolean needsRestart = delay == 0 && packetRate > 0;
delay = packetRate > 0 ? 1000 / packetRate : 0;
if (needsRestart) {
- timeout = timer.newTimeout(new PacketDriverTask(), 1, MILLISECONDS);
+ timeout = Timer.newTimeout(new PacketDriverTask(), 1, MILLISECONDS);
}
log.info("Settings: packetRate={}, delay={}", packetRate, delay);
}
@@ -144,7 +143,7 @@
if (!devices.isEmpty() && !to.isCancelled() && delay > 0) {
sendEvent(devices.get(Math.min(currentDevice, devices.size() - 1)));
currentDevice = (currentDevice + 1) % devices.size();
- timeout = timer.newTimeout(to.getTask(), delay, TimeUnit.MILLISECONDS);
+ timeout = to.timer().newTimeout(to.task(), delay, TimeUnit.MILLISECONDS);
}
}
diff --git a/providers/openflow/group/src/main/java/org/onosproject/provider/of/group/impl/GroupStatsCollector.java b/providers/openflow/group/src/main/java/org/onosproject/provider/of/group/impl/GroupStatsCollector.java
index d13a5b0..7366806 100644
--- a/providers/openflow/group/src/main/java/org/onosproject/provider/of/group/impl/GroupStatsCollector.java
+++ b/providers/openflow/group/src/main/java/org/onosproject/provider/of/group/impl/GroupStatsCollector.java
@@ -16,9 +16,6 @@
package org.onosproject.provider.of.group.impl;
-import org.jboss.netty.util.HashedWheelTimer;
-import org.jboss.netty.util.Timeout;
-import org.jboss.netty.util.TimerTask;
import org.onlab.util.Timer;
import org.onosproject.openflow.controller.OpenFlowSwitch;
import org.onosproject.openflow.controller.RoleState;
@@ -27,6 +24,9 @@
import org.projectfloodlight.openflow.types.OFGroup;
import org.slf4j.Logger;
+import io.netty.util.Timeout;
+import io.netty.util.TimerTask;
+
import java.util.concurrent.TimeUnit;
import static org.slf4j.LoggerFactory.getLogger;
@@ -36,7 +36,6 @@
*/
public class GroupStatsCollector implements TimerTask {
- private final HashedWheelTimer timer = Timer.getTimer();
private final OpenFlowSwitch sw;
private final Logger log = getLogger(getClass());
private final int refreshInterval;
@@ -65,7 +64,7 @@
if (!this.stopTimer) {
log.trace("Scheduling stats collection in {} seconds for {}",
this.refreshInterval, this.sw.getStringId());
- timeout.getTimer().newTimeout(this, refreshInterval,
+ timeout.timer().newTimeout(this, refreshInterval,
TimeUnit.SECONDS);
}
}
@@ -100,7 +99,7 @@
*/
public void start() {
log.info("Starting Group Stats collection thread for {}", sw.getStringId());
- timeout = timer.newTimeout(this, 1, TimeUnit.SECONDS);
+ timeout = Timer.newTimeout(this, 1, TimeUnit.SECONDS);
}
/**
diff --git a/providers/openflow/meter/src/main/java/org/onosproject/provider/of/meter/impl/MeterStatsCollector.java b/providers/openflow/meter/src/main/java/org/onosproject/provider/of/meter/impl/MeterStatsCollector.java
index 38af8db0..677eec1 100644
--- a/providers/openflow/meter/src/main/java/org/onosproject/provider/of/meter/impl/MeterStatsCollector.java
+++ b/providers/openflow/meter/src/main/java/org/onosproject/provider/of/meter/impl/MeterStatsCollector.java
@@ -16,15 +16,15 @@
package org.onosproject.provider.of.meter.impl;
-import org.jboss.netty.util.HashedWheelTimer;
-import org.jboss.netty.util.Timeout;
-import org.jboss.netty.util.TimerTask;
import org.onlab.util.Timer;
import org.onosproject.openflow.controller.OpenFlowSwitch;
import org.onosproject.openflow.controller.RoleState;
import org.projectfloodlight.openflow.protocol.OFMeterStatsRequest;
import org.slf4j.Logger;
+import io.netty.util.Timeout;
+import io.netty.util.TimerTask;
+
import java.util.concurrent.TimeUnit;
import static org.slf4j.LoggerFactory.getLogger;
@@ -34,7 +34,6 @@
*/
public class MeterStatsCollector implements TimerTask {
- private final HashedWheelTimer timer = Timer.getTimer();
private final OpenFlowSwitch sw;
private final Logger log = getLogger(getClass());
private final int refreshInterval;
@@ -68,7 +67,7 @@
if (!this.stopTimer) {
log.trace("Scheduling stats collection in {} seconds for {}",
this.refreshInterval, this.sw.getStringId());
- timeout.getTimer().newTimeout(this, refreshInterval,
+ timeout.timer().newTimeout(this, refreshInterval,
TimeUnit.SECONDS);
}
}
@@ -94,7 +93,7 @@
*/
public void start() {
log.info("Starting Meter Stats collection thread for {}", sw.getStringId());
- timeout = timer.newTimeout(this, 1, TimeUnit.SECONDS);
+ timeout = Timer.newTimeout(this, 1, TimeUnit.SECONDS);
}
/**
diff --git a/providers/pcep/tunnel/src/main/java/org/onosproject/provider/pcep/tunnel/impl/TunnelStatsCollector.java b/providers/pcep/tunnel/src/main/java/org/onosproject/provider/pcep/tunnel/impl/TunnelStatsCollector.java
index ab3e752..e64daa4 100644
--- a/providers/pcep/tunnel/src/main/java/org/onosproject/provider/pcep/tunnel/impl/TunnelStatsCollector.java
+++ b/providers/pcep/tunnel/src/main/java/org/onosproject/provider/pcep/tunnel/impl/TunnelStatsCollector.java
@@ -19,14 +19,14 @@
import org.apache.felix.scr.annotations.Reference;
import org.apache.felix.scr.annotations.ReferenceCardinality;
-import org.jboss.netty.util.HashedWheelTimer;
-import org.jboss.netty.util.Timeout;
-import org.jboss.netty.util.TimerTask;
import org.onlab.util.Timer;
import org.onosproject.pcep.api.PcepController;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import io.netty.util.Timeout;
+import io.netty.util.TimerTask;
+
import java.util.concurrent.TimeUnit;
/*
@@ -39,7 +39,6 @@
protected PcepController controller;
private int refreshInterval;
- private final HashedWheelTimer timer = Timer.getTimer();
private String pcepTunnelId;
private Timeout timeout;
@@ -47,7 +46,7 @@
/**
- * Greate a tunnel status collector object.
+ * Create a tunnel status collector object.
*
* @param id tunnel whose status data will be collected
* @param refreshInterval time interval for collecting statistic
@@ -68,7 +67,7 @@
if (!stopped && !timeout.isCancelled()) {
log.trace("Scheduling stats collection in {} seconds for {}",
this.refreshInterval, pcepTunnelId);
- timeout.getTimer().newTimeout(this, refreshInterval, TimeUnit.SECONDS);
+ timeout.timer().newTimeout(this, refreshInterval, TimeUnit.SECONDS);
}
}
@@ -88,7 +87,7 @@
public synchronized void start() {
log.info("Starting Tunnel Stats collection thread for {}", pcepTunnelId);
stopped = false;
- timeout = timer.newTimeout(this, 1, TimeUnit.SECONDS);
+ timeout = Timer.newTimeout(this, 1, TimeUnit.SECONDS);
}
/**