Committed by
Gerrit Code Review
Made time limit for event processing configurable; cleaned-up duplicate code.
Change-Id: I08e7f1c9f4cdbd6404f1eb5e3544989e7a728d92
Showing
15 changed files
with
90 additions
and
60 deletions
| ... | @@ -20,4 +20,19 @@ package org.onosproject.event; | ... | @@ -20,4 +20,19 @@ package org.onosproject.event; |
| 20 | * then dispatching them to the appropriate event sink. | 20 | * then dispatching them to the appropriate event sink. |
| 21 | */ | 21 | */ |
| 22 | public interface EventDeliveryService extends EventDispatcher, EventSinkRegistry { | 22 | public interface EventDeliveryService extends EventDispatcher, EventSinkRegistry { |
| 23 | + | ||
| 24 | + /** | ||
| 25 | + * Sets the number of millis that an event sink has to process an event. | ||
| 26 | + * | ||
| 27 | + * @param millis number of millis allowed per sink per event | ||
| 28 | + */ | ||
| 29 | + void setDispatchTimeLimit(long millis); | ||
| 30 | + | ||
| 31 | + /** | ||
| 32 | + * Returns the number of millis that an event sink has to process an event. | ||
| 33 | + * | ||
| 34 | + * @return number of millis allowed per sink per event | ||
| 35 | + */ | ||
| 36 | + long getDispatchTimeLimit(); | ||
| 37 | + | ||
| 23 | } | 38 | } | ... | ... |
| ... | @@ -13,7 +13,7 @@ | ... | @@ -13,7 +13,7 @@ |
| 13 | * See the License for the specific language governing permissions and | 13 | * See the License for the specific language governing permissions and |
| 14 | * limitations under the License. | 14 | * limitations under the License. |
| 15 | */ | 15 | */ |
| 16 | -package org.onosproject.event.impl; | 16 | +package org.onosproject.common.event.impl; |
| 17 | 17 | ||
| 18 | import org.onosproject.event.DefaultEventSinkRegistry; | 18 | import org.onosproject.event.DefaultEventSinkRegistry; |
| 19 | import org.onosproject.event.Event; | 19 | import org.onosproject.event.Event; |
| ... | @@ -37,4 +37,12 @@ public class TestEventDispatcher extends DefaultEventSinkRegistry | ... | @@ -37,4 +37,12 @@ public class TestEventDispatcher extends DefaultEventSinkRegistry |
| 37 | sink.process(event); | 37 | sink.process(event); |
| 38 | } | 38 | } |
| 39 | 39 | ||
| 40 | + @Override | ||
| 41 | + public void setDispatchTimeLimit(long millis) { | ||
| 42 | + } | ||
| 43 | + | ||
| 44 | + @Override | ||
| 45 | + public long getDispatchTimeLimit() { | ||
| 46 | + return 0; | ||
| 47 | + } | ||
| 40 | } | 48 | } | ... | ... |
| ... | @@ -17,12 +17,12 @@ package org.onosproject.core.impl; | ... | @@ -17,12 +17,12 @@ package org.onosproject.core.impl; |
| 17 | 17 | ||
| 18 | import org.apache.felix.scr.annotations.Activate; | 18 | import org.apache.felix.scr.annotations.Activate; |
| 19 | import org.apache.felix.scr.annotations.Component; | 19 | import org.apache.felix.scr.annotations.Component; |
| 20 | +import org.apache.felix.scr.annotations.Deactivate; | ||
| 21 | +import org.apache.felix.scr.annotations.Modified; | ||
| 22 | +import org.apache.felix.scr.annotations.Property; | ||
| 20 | import org.apache.felix.scr.annotations.Reference; | 23 | import org.apache.felix.scr.annotations.Reference; |
| 21 | import org.apache.felix.scr.annotations.ReferenceCardinality; | 24 | import org.apache.felix.scr.annotations.ReferenceCardinality; |
| 22 | import org.apache.felix.scr.annotations.Service; | 25 | import org.apache.felix.scr.annotations.Service; |
| 23 | -import org.apache.felix.scr.annotations.Property; | ||
| 24 | -import org.apache.felix.scr.annotations.Deactivate; | ||
| 25 | -import org.apache.felix.scr.annotations.Modified; | ||
| 26 | import org.onlab.util.SharedExecutors; | 26 | import org.onlab.util.SharedExecutors; |
| 27 | import org.onlab.util.Tools; | 27 | import org.onlab.util.Tools; |
| 28 | import org.onosproject.cfg.ComponentConfigService; | 28 | import org.onosproject.cfg.ComponentConfigService; |
| ... | @@ -32,9 +32,11 @@ import org.onosproject.core.CoreService; | ... | @@ -32,9 +32,11 @@ import org.onosproject.core.CoreService; |
| 32 | import org.onosproject.core.IdBlockStore; | 32 | import org.onosproject.core.IdBlockStore; |
| 33 | import org.onosproject.core.IdGenerator; | 33 | import org.onosproject.core.IdGenerator; |
| 34 | import org.onosproject.core.Version; | 34 | import org.onosproject.core.Version; |
| 35 | +import org.onosproject.event.EventDeliveryService; | ||
| 35 | import org.osgi.service.component.ComponentContext; | 36 | import org.osgi.service.component.ComponentContext; |
| 36 | import org.slf4j.Logger; | 37 | import org.slf4j.Logger; |
| 37 | import org.slf4j.LoggerFactory; | 38 | import org.slf4j.LoggerFactory; |
| 39 | + | ||
| 38 | import java.io.File; | 40 | import java.io.File; |
| 39 | import java.util.Dictionary; | 41 | import java.util.Dictionary; |
| 40 | import java.util.List; | 42 | import java.util.List; |
| ... | @@ -64,9 +66,18 @@ public class CoreManager implements CoreService { | ... | @@ -64,9 +66,18 @@ public class CoreManager implements CoreService { |
| 64 | @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) | 66 | @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) |
| 65 | protected ComponentConfigService cfgService; | 67 | protected ComponentConfigService cfgService; |
| 66 | 68 | ||
| 67 | - @Property(name = "sharedThreadPoolSize", intValue = 30, | 69 | + @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) |
| 70 | + protected EventDeliveryService eventDeliveryService; | ||
| 71 | + | ||
| 72 | + private static final int DEFAULT_POOL_SIZE = 30; | ||
| 73 | + @Property(name = "sharedThreadPoolSize", intValue = DEFAULT_POOL_SIZE, | ||
| 68 | label = "Configure shared pool maximum size ") | 74 | label = "Configure shared pool maximum size ") |
| 69 | - private int sharedThreadPoolSize = 30; | 75 | + private int sharedThreadPoolSize = DEFAULT_POOL_SIZE; |
| 76 | + | ||
| 77 | + private static final int DEFAULT_EVENT_TIME = 2000; | ||
| 78 | + @Property(name = "maxEventTimeLimit", intValue = DEFAULT_EVENT_TIME, | ||
| 79 | + label = "Maximum number of millis an event sink has to process an event") | ||
| 80 | + private int maxEventTimeLimit = DEFAULT_EVENT_TIME; | ||
| 70 | 81 | ||
| 71 | @Activate | 82 | @Activate |
| 72 | public void activate() { | 83 | public void activate() { |
| ... | @@ -121,30 +132,33 @@ public class CoreManager implements CoreService { | ... | @@ -121,30 +132,33 @@ public class CoreManager implements CoreService { |
| 121 | @Modified | 132 | @Modified |
| 122 | public void modified(ComponentContext context) { | 133 | public void modified(ComponentContext context) { |
| 123 | Dictionary<?, ?> properties = context.getProperties(); | 134 | Dictionary<?, ?> properties = context.getProperties(); |
| 124 | - Integer sharedThreadPoolSizeConfig = | 135 | + Integer poolSize = getIntegerProperty(properties, "sharedThreadPoolSize"); |
| 125 | - getIntegerProperty(properties, "sharedThreadPoolSize"); | 136 | + |
| 126 | - if (sharedThreadPoolSizeConfig == null) { | 137 | + if (poolSize != null && poolSize > 1) { |
| 127 | - log.info("Shared Pool Size is not configured, default value is {}", | 138 | + sharedThreadPoolSize = poolSize; |
| 128 | - sharedThreadPoolSize); | 139 | + SharedExecutors.setPoolSize(sharedThreadPoolSize); |
| 129 | - } else { | 140 | + } else if (poolSize != null) { |
| 130 | - if (sharedThreadPoolSizeConfig > 0) { | 141 | + log.warn("sharedThreadPoolSize must be greater than 1"); |
| 131 | - sharedThreadPoolSize = sharedThreadPoolSizeConfig; | ||
| 132 | - SharedExecutors.setPoolSize(sharedThreadPoolSize); | ||
| 133 | - log.info("Configured. Shared Pool Size is configured to {}", | ||
| 134 | - sharedThreadPoolSize); | ||
| 135 | - } else { | ||
| 136 | - log.warn("Shared Pool Size size must be greater than 0"); | ||
| 137 | - } | ||
| 138 | } | 142 | } |
| 139 | - } | ||
| 140 | 143 | ||
| 144 | + Integer timeLimit = getIntegerProperty(properties, "maxEventTimeLimit"); | ||
| 145 | + if (timeLimit != null && timeLimit > 1) { | ||
| 146 | + maxEventTimeLimit = timeLimit; | ||
| 147 | + eventDeliveryService.setDispatchTimeLimit(maxEventTimeLimit); | ||
| 148 | + } else if (timeLimit != null) { | ||
| 149 | + log.warn("maxEventTimeLimit must be greater than 1"); | ||
| 150 | + } | ||
| 151 | + | ||
| 152 | + log.info("Settings: sharedThreadPoolSize={}, maxEventTimeLimit={}", | ||
| 153 | + sharedThreadPoolSize, maxEventTimeLimit); | ||
| 154 | + } | ||
| 141 | 155 | ||
| 142 | 156 | ||
| 143 | /** | 157 | /** |
| 144 | * Get Integer property from the propertyName | 158 | * Get Integer property from the propertyName |
| 145 | * Return null if propertyName is not found. | 159 | * Return null if propertyName is not found. |
| 146 | * | 160 | * |
| 147 | - * @param properties properties to be looked up | 161 | + * @param properties properties to be looked up |
| 148 | * @param propertyName the name of the property to look up | 162 | * @param propertyName the name of the property to look up |
| 149 | * @return value when the propertyName is defined or return null | 163 | * @return value when the propertyName is defined or return null |
| 150 | */ | 164 | */ | ... | ... |
| ... | @@ -33,6 +33,7 @@ import java.util.concurrent.ExecutorService; | ... | @@ -33,6 +33,7 @@ import java.util.concurrent.ExecutorService; |
| 33 | import java.util.concurrent.Future; | 33 | import java.util.concurrent.Future; |
| 34 | import java.util.concurrent.LinkedBlockingQueue; | 34 | import java.util.concurrent.LinkedBlockingQueue; |
| 35 | 35 | ||
| 36 | +import static com.google.common.base.Preconditions.checkArgument; | ||
| 36 | import static java.util.concurrent.Executors.newSingleThreadExecutor; | 37 | import static java.util.concurrent.Executors.newSingleThreadExecutor; |
| 37 | import static org.onlab.util.Tools.groupedThreads; | 38 | import static org.onlab.util.Tools.groupedThreads; |
| 38 | import static org.slf4j.LoggerFactory.getLogger; | 39 | import static org.slf4j.LoggerFactory.getLogger; |
| ... | @@ -45,12 +46,12 @@ import static org.slf4j.LoggerFactory.getLogger; | ... | @@ -45,12 +46,12 @@ import static org.slf4j.LoggerFactory.getLogger; |
| 45 | public class CoreEventDispatcher extends DefaultEventSinkRegistry | 46 | public class CoreEventDispatcher extends DefaultEventSinkRegistry |
| 46 | implements EventDeliveryService { | 47 | implements EventDeliveryService { |
| 47 | 48 | ||
| 48 | - // Maximum number of millis a sink can take to process an event. | ||
| 49 | - private static final long MAX_EXECUTE_MS = 1_000; | ||
| 50 | - private static final long WATCHDOG_MS = MAX_EXECUTE_MS / 4; | ||
| 51 | - | ||
| 52 | private final Logger log = getLogger(getClass()); | 49 | private final Logger log = getLogger(getClass()); |
| 53 | 50 | ||
| 51 | + // Default number of millis a sink can take to process an event. | ||
| 52 | + private static final long DEFAULT_EXECUTE_MS = 2_000; // ms | ||
| 53 | + private static final long WATCHDOG_MS = 250; // ms | ||
| 54 | + | ||
| 54 | private final BlockingQueue<Event> events = new LinkedBlockingQueue<>(); | 55 | private final BlockingQueue<Event> events = new LinkedBlockingQueue<>(); |
| 55 | 56 | ||
| 56 | private final ExecutorService executor = | 57 | private final ExecutorService executor = |
| ... | @@ -61,6 +62,7 @@ public class CoreEventDispatcher extends DefaultEventSinkRegistry | ... | @@ -61,6 +62,7 @@ public class CoreEventDispatcher extends DefaultEventSinkRegistry |
| 61 | }; | 62 | }; |
| 62 | 63 | ||
| 63 | private DispatchLoop dispatchLoop; | 64 | private DispatchLoop dispatchLoop; |
| 65 | + private long maxProcessMillis = DEFAULT_EXECUTE_MS; | ||
| 64 | 66 | ||
| 65 | // Means to detect long-running sinks | 67 | // Means to detect long-running sinks |
| 66 | private TimerTask watchdog; | 68 | private TimerTask watchdog; |
| ... | @@ -92,6 +94,18 @@ public class CoreEventDispatcher extends DefaultEventSinkRegistry | ... | @@ -92,6 +94,18 @@ public class CoreEventDispatcher extends DefaultEventSinkRegistry |
| 92 | log.info("Stopped"); | 94 | log.info("Stopped"); |
| 93 | } | 95 | } |
| 94 | 96 | ||
| 97 | + @Override | ||
| 98 | + public void setDispatchTimeLimit(long millis) { | ||
| 99 | + checkArgument(millis >= WATCHDOG_MS, | ||
| 100 | + "Time limit must be greater than %s", WATCHDOG_MS); | ||
| 101 | + maxProcessMillis = millis; | ||
| 102 | + } | ||
| 103 | + | ||
| 104 | + @Override | ||
| 105 | + public long getDispatchTimeLimit() { | ||
| 106 | + return maxProcessMillis; | ||
| 107 | + } | ||
| 108 | + | ||
| 95 | // Auxiliary event dispatching loop that feeds off the events queue. | 109 | // Auxiliary event dispatching loop that feeds off the events queue. |
| 96 | private class DispatchLoop implements Runnable { | 110 | private class DispatchLoop implements Runnable { |
| 97 | private volatile boolean stopped; | 111 | private volatile boolean stopped; |
| ... | @@ -126,7 +140,7 @@ public class CoreEventDispatcher extends DefaultEventSinkRegistry | ... | @@ -126,7 +140,7 @@ public class CoreEventDispatcher extends DefaultEventSinkRegistry |
| 126 | lastStart = 0; | 140 | lastStart = 0; |
| 127 | } else { | 141 | } else { |
| 128 | log.warn("No sink registered for event class {}", | 142 | log.warn("No sink registered for event class {}", |
| 129 | - event.getClass()); | 143 | + event.getClass().getName()); |
| 130 | } | 144 | } |
| 131 | } | 145 | } |
| 132 | 146 | ||
| ... | @@ -140,7 +154,7 @@ public class CoreEventDispatcher extends DefaultEventSinkRegistry | ... | @@ -140,7 +154,7 @@ public class CoreEventDispatcher extends DefaultEventSinkRegistry |
| 140 | @Override | 154 | @Override |
| 141 | public void run() { | 155 | public void run() { |
| 142 | long delta = System.currentTimeMillis() - lastStart; | 156 | long delta = System.currentTimeMillis() - lastStart; |
| 143 | - if (lastStart > 0 && delta > MAX_EXECUTE_MS) { | 157 | + if (lastStart > 0 && delta > maxProcessMillis) { |
| 144 | log.error("Event sink {} exceeded execution time limit: {} ms", | 158 | log.error("Event sink {} exceeded execution time limit: {} ms", |
| 145 | lastSink.getClass().getName(), delta); | 159 | lastSink.getClass().getName(), delta); |
| 146 | 160 | ... | ... |
| ... | @@ -28,7 +28,7 @@ import org.onosproject.core.Application; | ... | @@ -28,7 +28,7 @@ import org.onosproject.core.Application; |
| 28 | import org.onosproject.core.ApplicationId; | 28 | import org.onosproject.core.ApplicationId; |
| 29 | import org.onosproject.core.DefaultApplication; | 29 | import org.onosproject.core.DefaultApplication; |
| 30 | import org.onosproject.core.DefaultApplicationId; | 30 | import org.onosproject.core.DefaultApplicationId; |
| 31 | -import org.onosproject.event.impl.TestEventDispatcher; | 31 | +import org.onosproject.common.event.impl.TestEventDispatcher; |
| 32 | 32 | ||
| 33 | import java.io.InputStream; | 33 | import java.io.InputStream; |
| 34 | import java.net.URI; | 34 | import java.net.URI; | ... | ... |
| ... | @@ -26,7 +26,7 @@ import org.onosproject.cluster.ClusterServiceAdapter; | ... | @@ -26,7 +26,7 @@ import org.onosproject.cluster.ClusterServiceAdapter; |
| 26 | import org.onosproject.cluster.ControllerNode; | 26 | import org.onosproject.cluster.ControllerNode; |
| 27 | import org.onosproject.cluster.DefaultControllerNode; | 27 | import org.onosproject.cluster.DefaultControllerNode; |
| 28 | import org.onosproject.cluster.NodeId; | 28 | import org.onosproject.cluster.NodeId; |
| 29 | -import org.onosproject.event.impl.TestEventDispatcher; | 29 | +import org.onosproject.common.event.impl.TestEventDispatcher; |
| 30 | import org.onosproject.mastership.MastershipService; | 30 | import org.onosproject.mastership.MastershipService; |
| 31 | import org.onosproject.mastership.MastershipStore; | 31 | import org.onosproject.mastership.MastershipStore; |
| 32 | import org.onosproject.mastership.MastershipTermService; | 32 | import org.onosproject.mastership.MastershipTermService; | ... | ... |
| ... | @@ -31,7 +31,7 @@ import org.onosproject.cluster.ControllerNode; | ... | @@ -31,7 +31,7 @@ import org.onosproject.cluster.ControllerNode; |
| 31 | import org.onosproject.cluster.DefaultControllerNode; | 31 | import org.onosproject.cluster.DefaultControllerNode; |
| 32 | import org.onosproject.cluster.NodeId; | 32 | import org.onosproject.cluster.NodeId; |
| 33 | import org.onosproject.event.Event; | 33 | import org.onosproject.event.Event; |
| 34 | -import org.onosproject.event.impl.TestEventDispatcher; | 34 | +import org.onosproject.common.event.impl.TestEventDispatcher; |
| 35 | import org.onosproject.mastership.MastershipServiceAdapter; | 35 | import org.onosproject.mastership.MastershipServiceAdapter; |
| 36 | import org.onosproject.mastership.MastershipTerm; | 36 | import org.onosproject.mastership.MastershipTerm; |
| 37 | import org.onosproject.mastership.MastershipTermService; | 37 | import org.onosproject.mastership.MastershipTermService; | ... | ... |
| ... | @@ -29,7 +29,7 @@ import org.onosproject.core.ApplicationId; | ... | @@ -29,7 +29,7 @@ import org.onosproject.core.ApplicationId; |
| 29 | import org.onosproject.core.CoreServiceAdapter; | 29 | import org.onosproject.core.CoreServiceAdapter; |
| 30 | import org.onosproject.core.DefaultApplicationId; | 30 | import org.onosproject.core.DefaultApplicationId; |
| 31 | import org.onosproject.core.IdGenerator; | 31 | import org.onosproject.core.IdGenerator; |
| 32 | -import org.onosproject.event.impl.TestEventDispatcher; | 32 | +import org.onosproject.common.event.impl.TestEventDispatcher; |
| 33 | import org.onosproject.net.DefaultDevice; | 33 | import org.onosproject.net.DefaultDevice; |
| 34 | import org.onosproject.net.Device; | 34 | import org.onosproject.net.Device; |
| 35 | import org.onosproject.net.Device.Type; | 35 | import org.onosproject.net.Device.Type; | ... | ... |
| ... | @@ -35,7 +35,7 @@ import org.onosproject.core.ApplicationId; | ... | @@ -35,7 +35,7 @@ import org.onosproject.core.ApplicationId; |
| 35 | import org.onosproject.core.DefaultApplicationId; | 35 | import org.onosproject.core.DefaultApplicationId; |
| 36 | import org.onosproject.core.DefaultGroupId; | 36 | import org.onosproject.core.DefaultGroupId; |
| 37 | import org.onosproject.core.GroupId; | 37 | import org.onosproject.core.GroupId; |
| 38 | -import org.onosproject.event.impl.TestEventDispatcher; | 38 | +import org.onosproject.common.event.impl.TestEventDispatcher; |
| 39 | import org.onosproject.net.DeviceId; | 39 | import org.onosproject.net.DeviceId; |
| 40 | import org.onosproject.net.PortNumber; | 40 | import org.onosproject.net.PortNumber; |
| 41 | import org.onosproject.net.device.impl.DeviceManager; | 41 | import org.onosproject.net.device.impl.DeviceManager; | ... | ... |
| ... | @@ -36,7 +36,7 @@ import org.onlab.packet.IpPrefix; | ... | @@ -36,7 +36,7 @@ import org.onlab.packet.IpPrefix; |
| 36 | import org.onlab.packet.MacAddress; | 36 | import org.onlab.packet.MacAddress; |
| 37 | import org.onlab.packet.VlanId; | 37 | import org.onlab.packet.VlanId; |
| 38 | import org.onosproject.event.Event; | 38 | import org.onosproject.event.Event; |
| 39 | -import org.onosproject.event.impl.TestEventDispatcher; | 39 | +import org.onosproject.common.event.impl.TestEventDispatcher; |
| 40 | import org.onosproject.net.ConnectPoint; | 40 | import org.onosproject.net.ConnectPoint; |
| 41 | import org.onosproject.net.DeviceId; | 41 | import org.onosproject.net.DeviceId; |
| 42 | import org.onosproject.net.Host; | 42 | import org.onosproject.net.Host; | ... | ... |
| ... | @@ -30,7 +30,7 @@ import org.onosproject.TestApplicationId; | ... | @@ -30,7 +30,7 @@ import org.onosproject.TestApplicationId; |
| 30 | import org.onosproject.cfg.ComponentConfigAdapter; | 30 | import org.onosproject.cfg.ComponentConfigAdapter; |
| 31 | import org.onosproject.core.ApplicationId; | 31 | import org.onosproject.core.ApplicationId; |
| 32 | import org.onosproject.core.impl.TestCoreManager; | 32 | import org.onosproject.core.impl.TestCoreManager; |
| 33 | -import org.onosproject.event.impl.TestEventDispatcher; | 33 | +import org.onosproject.common.event.impl.TestEventDispatcher; |
| 34 | import org.onosproject.net.NetworkResource; | 34 | import org.onosproject.net.NetworkResource; |
| 35 | import org.onosproject.net.intent.FlowRuleIntent; | 35 | import org.onosproject.net.intent.FlowRuleIntent; |
| 36 | import org.onosproject.net.intent.Intent; | 36 | import org.onosproject.net.intent.Intent; | ... | ... |
| ... | @@ -37,7 +37,7 @@ import org.onosproject.net.link.LinkProviderService; | ... | @@ -37,7 +37,7 @@ import org.onosproject.net.link.LinkProviderService; |
| 37 | import org.onosproject.net.link.LinkService; | 37 | import org.onosproject.net.link.LinkService; |
| 38 | import org.onosproject.net.provider.AbstractProvider; | 38 | import org.onosproject.net.provider.AbstractProvider; |
| 39 | import org.onosproject.net.provider.ProviderId; | 39 | import org.onosproject.net.provider.ProviderId; |
| 40 | -import org.onosproject.event.impl.TestEventDispatcher; | 40 | +import org.onosproject.common.event.impl.TestEventDispatcher; |
| 41 | import org.onosproject.net.device.impl.DeviceManager; | 41 | import org.onosproject.net.device.impl.DeviceManager; |
| 42 | import org.onosproject.store.trivial.impl.SimpleLinkStore; | 42 | import org.onosproject.store.trivial.impl.SimpleLinkStore; |
| 43 | 43 | ... | ... |
| ... | @@ -22,7 +22,7 @@ import org.junit.Before; | ... | @@ -22,7 +22,7 @@ import org.junit.Before; |
| 22 | import org.junit.Test; | 22 | import org.junit.Test; |
| 23 | import org.onosproject.cfg.ComponentConfigAdapter; | 23 | import org.onosproject.cfg.ComponentConfigAdapter; |
| 24 | import org.onosproject.event.Event; | 24 | import org.onosproject.event.Event; |
| 25 | -import org.onosproject.event.impl.TestEventDispatcher; | 25 | +import org.onosproject.common.event.impl.TestEventDispatcher; |
| 26 | import org.onosproject.net.Device; | 26 | import org.onosproject.net.Device; |
| 27 | import org.onosproject.net.Link; | 27 | import org.onosproject.net.Link; |
| 28 | import org.onosproject.net.device.DeviceEvent; | 28 | import org.onosproject.net.device.DeviceEvent; | ... | ... |
| ... | @@ -19,7 +19,7 @@ import org.junit.After; | ... | @@ -19,7 +19,7 @@ import org.junit.After; |
| 19 | import org.junit.Before; | 19 | import org.junit.Before; |
| 20 | import org.junit.Test; | 20 | import org.junit.Test; |
| 21 | import org.onosproject.event.Event; | 21 | import org.onosproject.event.Event; |
| 22 | -import org.onosproject.event.impl.TestEventDispatcher; | 22 | +import org.onosproject.common.event.impl.TestEventDispatcher; |
| 23 | import org.onosproject.net.ConnectPoint; | 23 | import org.onosproject.net.ConnectPoint; |
| 24 | import org.onosproject.net.Device; | 24 | import org.onosproject.net.Device; |
| 25 | import org.onosproject.net.Link; | 25 | import org.onosproject.net.Link; | ... | ... |
| ... | @@ -22,10 +22,7 @@ import org.junit.Before; | ... | @@ -22,10 +22,7 @@ import org.junit.Before; |
| 22 | import org.junit.Test; | 22 | import org.junit.Test; |
| 23 | import org.onosproject.cluster.NodeId; | 23 | import org.onosproject.cluster.NodeId; |
| 24 | import org.onosproject.cluster.RoleInfo; | 24 | import org.onosproject.cluster.RoleInfo; |
| 25 | -import org.onosproject.event.DefaultEventSinkRegistry; | 25 | +import org.onosproject.common.event.impl.TestEventDispatcher; |
| 26 | -import org.onosproject.event.Event; | ||
| 27 | -import org.onosproject.event.EventDeliveryService; | ||
| 28 | -import org.onosproject.event.EventSink; | ||
| 29 | import org.onosproject.event.ListenerRegistry; | 26 | import org.onosproject.event.ListenerRegistry; |
| 30 | import org.onosproject.mastership.MastershipEvent; | 27 | import org.onosproject.mastership.MastershipEvent; |
| 31 | import org.onosproject.mastership.MastershipEvent.Type; | 28 | import org.onosproject.mastership.MastershipEvent.Type; |
| ... | @@ -44,7 +41,6 @@ import java.util.Map; | ... | @@ -44,7 +41,6 @@ import java.util.Map; |
| 44 | import java.util.concurrent.CountDownLatch; | 41 | import java.util.concurrent.CountDownLatch; |
| 45 | import java.util.concurrent.TimeUnit; | 42 | import java.util.concurrent.TimeUnit; |
| 46 | 43 | ||
| 47 | -import static com.google.common.base.Preconditions.checkState; | ||
| 48 | import static org.junit.Assert.assertEquals; | 44 | import static org.junit.Assert.assertEquals; |
| 49 | import static org.junit.Assert.assertTrue; | 45 | import static org.junit.Assert.assertTrue; |
| 50 | 46 | ||
| ... | @@ -168,21 +164,4 @@ public class ReplicaInfoManagerTest { | ... | @@ -168,21 +164,4 @@ public class ReplicaInfoManagerTest { |
| 168 | } | 164 | } |
| 169 | } | 165 | } |
| 170 | 166 | ||
| 171 | - | ||
| 172 | - // code clone | ||
| 173 | - /** | ||
| 174 | - * Implements event delivery system that delivers events synchronously, or | ||
| 175 | - * in-line with the post method invocation. | ||
| 176 | - */ | ||
| 177 | - private static class TestEventDispatcher extends DefaultEventSinkRegistry | ||
| 178 | - implements EventDeliveryService { | ||
| 179 | - | ||
| 180 | - @SuppressWarnings({ "rawtypes", "unchecked" }) | ||
| 181 | - @Override | ||
| 182 | - public void post(Event event) { | ||
| 183 | - EventSink sink = getSink(event.getClass()); | ||
| 184 | - checkState(sink != null, "No sink for event %s", event); | ||
| 185 | - sink.process(event); | ||
| 186 | - } | ||
| 187 | - } | ||
| 188 | } | 167 | } | ... | ... |
-
Please register or login to post a comment