Renamed AbstractListenerRegistry to ListenerRegistry (since it is not abstract).
- added checkForNonRegistrant() predicate and augmented unit tests. Change-Id: I7ecc618f01fdc4cead6f143a1e5e0ddd03268efc
Showing
21 changed files
with
175 additions
and
130 deletions
| ... | @@ -28,15 +28,20 @@ import static org.slf4j.LoggerFactory.getLogger; | ... | @@ -28,15 +28,20 @@ import static org.slf4j.LoggerFactory.getLogger; |
| 28 | * Base implementation of an event sink and a registry capable of tracking | 28 | * Base implementation of an event sink and a registry capable of tracking |
| 29 | * listeners and dispatching events to them as part of event sink processing. | 29 | * listeners and dispatching events to them as part of event sink processing. |
| 30 | */ | 30 | */ |
| 31 | -public class AbstractListenerRegistry<E extends Event, L extends EventListener<E>> | 31 | +public class ListenerRegistry<E extends Event, L extends EventListener<E>> |
| 32 | implements EventSink<E> { | 32 | implements EventSink<E> { |
| 33 | 33 | ||
| 34 | private final Logger log = getLogger(getClass()); | 34 | private final Logger log = getLogger(getClass()); |
| 35 | 35 | ||
| 36 | - protected final Set<L> listeners = new CopyOnWriteArraySet<>(); | ||
| 37 | private volatile boolean shutdown = false; | 36 | private volatile boolean shutdown = false; |
| 38 | 37 | ||
| 39 | /** | 38 | /** |
| 39 | + * Set of listeners that have registered. | ||
| 40 | + */ | ||
| 41 | + protected final Set<L> listeners = new CopyOnWriteArraySet<>(); | ||
| 42 | + | ||
| 43 | + | ||
| 44 | + /** | ||
| 40 | * Adds the specified listener. | 45 | * Adds the specified listener. |
| 41 | * | 46 | * |
| 42 | * @param listener listener to be added | 47 | * @param listener listener to be added |
| ... | @@ -53,8 +58,10 @@ public class AbstractListenerRegistry<E extends Event, L extends EventListener<E | ... | @@ -53,8 +58,10 @@ public class AbstractListenerRegistry<E extends Event, L extends EventListener<E |
| 53 | */ | 58 | */ |
| 54 | public void removeListener(L listener) { | 59 | public void removeListener(L listener) { |
| 55 | checkNotNull(listener, "Listener cannot be null"); | 60 | checkNotNull(listener, "Listener cannot be null"); |
| 61 | + if (checkForNonRegistrant()) { | ||
| 56 | checkArgument(listeners.remove(listener), "Listener not registered"); | 62 | checkArgument(listeners.remove(listener), "Listener not registered"); |
| 57 | } | 63 | } |
| 64 | + } | ||
| 58 | 65 | ||
| 59 | @Override | 66 | @Override |
| 60 | public void process(E event) { | 67 | public void process(E event) { |
| ... | @@ -68,6 +75,19 @@ public class AbstractListenerRegistry<E extends Event, L extends EventListener<E | ... | @@ -68,6 +75,19 @@ public class AbstractListenerRegistry<E extends Event, L extends EventListener<E |
| 68 | } | 75 | } |
| 69 | 76 | ||
| 70 | /** | 77 | /** |
| 78 | + * Predicate indicating whether we should throw an exception if the | ||
| 79 | + * argument to {@link #removeListener} is not in the current set of | ||
| 80 | + * listeners. | ||
| 81 | + * <p> | ||
| 82 | + * This default implementation returns <code>true</code>. | ||
| 83 | + * | ||
| 84 | + * @return true if non-listed listeners should cause exception on remove | ||
| 85 | + */ | ||
| 86 | + protected boolean checkForNonRegistrant() { | ||
| 87 | + return true; | ||
| 88 | + } | ||
| 89 | + | ||
| 90 | + /** | ||
| 71 | * Reports a problem encountered while processing an event. | 91 | * Reports a problem encountered while processing an event. |
| 72 | * | 92 | * |
| 73 | * @param event event being processed | 93 | * @param event event being processed |
| ... | @@ -92,5 +112,4 @@ public class AbstractListenerRegistry<E extends Event, L extends EventListener<E | ... | @@ -92,5 +112,4 @@ public class AbstractListenerRegistry<E extends Event, L extends EventListener<E |
| 92 | public void deactivate() { | 112 | public void deactivate() { |
| 93 | shutdown = true; | 113 | shutdown = true; |
| 94 | } | 114 | } |
| 95 | - | ||
| 96 | } | 115 | } | ... | ... |
| ... | @@ -15,50 +15,79 @@ | ... | @@ -15,50 +15,79 @@ |
| 15 | */ | 15 | */ |
| 16 | package org.onosproject.event; | 16 | package org.onosproject.event; |
| 17 | 17 | ||
| 18 | +import org.junit.Before; | ||
| 18 | import org.junit.Test; | 19 | import org.junit.Test; |
| 19 | 20 | ||
| 20 | import static org.junit.Assert.assertFalse; | 21 | import static org.junit.Assert.assertFalse; |
| 21 | import static org.junit.Assert.assertTrue; | 22 | import static org.junit.Assert.assertTrue; |
| 22 | 23 | ||
| 23 | /** | 24 | /** |
| 24 | - * Tests of the base listener manager. | 25 | + * Unit tests for {@link ListenerRegistry}. |
| 25 | */ | 26 | */ |
| 26 | -public class AbstractListenerRegistryTest { | 27 | +public class ListenerRegistryTest { |
| 28 | + | ||
| 29 | + private static class RelaxedRegistry extends TestListenerRegistry { | ||
| 30 | + @Override | ||
| 31 | + protected boolean checkForNonRegistrant() { | ||
| 32 | + return false; | ||
| 33 | + } | ||
| 34 | + } | ||
| 35 | + | ||
| 36 | + private static final TestEvent FOO_EVENT = | ||
| 37 | + new TestEvent(TestEvent.Type.FOO, "foo"); | ||
| 38 | + private static final TestEvent BAR_EVENT = | ||
| 39 | + new TestEvent(TestEvent.Type.BAR, "bar"); | ||
| 40 | + | ||
| 41 | + private TestListener listener; | ||
| 42 | + private TestListener secondListener; | ||
| 43 | + private TestListenerRegistry manager; | ||
| 44 | + | ||
| 45 | + @Before | ||
| 46 | + public void setUp() { | ||
| 47 | + listener = new TestListener(); | ||
| 48 | + secondListener = new TestListener(); | ||
| 49 | + manager = new TestListenerRegistry(); | ||
| 50 | + } | ||
| 27 | 51 | ||
| 28 | @Test | 52 | @Test |
| 29 | public void basics() { | 53 | public void basics() { |
| 30 | - TestListener listener = new TestListener(); | ||
| 31 | - TestListener secondListener = new TestListener(); | ||
| 32 | - TestListenerRegistry manager = new TestListenerRegistry(); | ||
| 33 | manager.addListener(listener); | 54 | manager.addListener(listener); |
| 34 | manager.addListener(secondListener); | 55 | manager.addListener(secondListener); |
| 35 | 56 | ||
| 36 | - TestEvent event = new TestEvent(TestEvent.Type.BAR, "bar"); | 57 | + manager.process(BAR_EVENT); |
| 37 | - manager.process(event); | 58 | + assertTrue("BAR not processed", listener.events.contains(BAR_EVENT)); |
| 38 | - assertTrue("event not processed", listener.events.contains(event)); | 59 | + assertTrue("BAR not processed", secondListener.events.contains(BAR_EVENT)); |
| 39 | - assertTrue("event not processed", secondListener.events.contains(event)); | ||
| 40 | 60 | ||
| 41 | manager.removeListener(listener); | 61 | manager.removeListener(listener); |
| 42 | 62 | ||
| 43 | - TestEvent another = new TestEvent(TestEvent.Type.FOO, "foo"); | 63 | + manager.process(FOO_EVENT); |
| 44 | - manager.process(another); | 64 | + assertFalse("FOO processed", listener.events.contains(FOO_EVENT)); |
| 45 | - assertFalse("event processed", listener.events.contains(another)); | 65 | + assertTrue("FOO not processed", secondListener.events.contains(FOO_EVENT)); |
| 46 | - assertTrue("event not processed", secondListener.events.contains(event)); | ||
| 47 | } | 66 | } |
| 48 | 67 | ||
| 49 | @Test | 68 | @Test |
| 50 | public void badListener() { | 69 | public void badListener() { |
| 51 | - TestListener listener = new BrokenListener(); | 70 | + listener = new BrokenListener(); |
| 52 | - TestListener secondListener = new TestListener(); | 71 | + |
| 53 | - TestListenerRegistry manager = new TestListenerRegistry(); | ||
| 54 | manager.addListener(listener); | 72 | manager.addListener(listener); |
| 55 | manager.addListener(secondListener); | 73 | manager.addListener(secondListener); |
| 56 | 74 | ||
| 57 | - TestEvent event = new TestEvent(TestEvent.Type.BAR, "bar"); | 75 | + manager.process(BAR_EVENT); |
| 58 | - manager.process(event); | 76 | + assertFalse("BAR processed", listener.events.contains(BAR_EVENT)); |
| 59 | - assertFalse("event processed", listener.events.contains(event)); | ||
| 60 | assertFalse("error not reported", manager.errors.isEmpty()); | 77 | assertFalse("error not reported", manager.errors.isEmpty()); |
| 61 | - assertTrue("event not processed", secondListener.events.contains(event)); | 78 | + assertTrue("BAR not processed", secondListener.events.contains(BAR_EVENT)); |
| 79 | + } | ||
| 80 | + | ||
| 81 | + @Test(expected = IllegalArgumentException.class) | ||
| 82 | + public void removeNonListenerCausesException() { | ||
| 83 | + manager.removeListener(listener); | ||
| 84 | + } | ||
| 85 | + | ||
| 86 | + @Test | ||
| 87 | + public void removeNonListenerIgnored() { | ||
| 88 | + manager = new RelaxedRegistry(); | ||
| 89 | + manager.removeListener(listener); | ||
| 90 | + assertTrue("what?", manager.listeners.isEmpty()); | ||
| 62 | } | 91 | } |
| 63 | 92 | ||
| 64 | } | 93 | } | ... | ... |
| ... | @@ -22,7 +22,7 @@ import java.util.List; | ... | @@ -22,7 +22,7 @@ import java.util.List; |
| 22 | * Test event listener manager fixture. | 22 | * Test event listener manager fixture. |
| 23 | */ | 23 | */ |
| 24 | public class TestListenerRegistry | 24 | public class TestListenerRegistry |
| 25 | - extends AbstractListenerRegistry<TestEvent, TestListener> { | 25 | + extends ListenerRegistry<TestEvent, TestListener> { |
| 26 | 26 | ||
| 27 | public final List<Throwable> errors = new ArrayList<>(); | 27 | public final List<Throwable> errors = new ArrayList<>(); |
| 28 | 28 | ... | ... |
| ... | @@ -33,7 +33,7 @@ import org.onosproject.app.ApplicationStoreDelegate; | ... | @@ -33,7 +33,7 @@ import org.onosproject.app.ApplicationStoreDelegate; |
| 33 | import org.onosproject.core.Application; | 33 | import org.onosproject.core.Application; |
| 34 | import org.onosproject.core.ApplicationId; | 34 | import org.onosproject.core.ApplicationId; |
| 35 | import org.onosproject.core.Permission; | 35 | import org.onosproject.core.Permission; |
| 36 | -import org.onosproject.event.AbstractListenerRegistry; | 36 | +import org.onosproject.event.ListenerRegistry; |
| 37 | import org.onosproject.event.EventDeliveryService; | 37 | import org.onosproject.event.EventDeliveryService; |
| 38 | import org.slf4j.Logger; | 38 | import org.slf4j.Logger; |
| 39 | 39 | ||
| ... | @@ -55,8 +55,8 @@ public class ApplicationManager implements ApplicationService, ApplicationAdminS | ... | @@ -55,8 +55,8 @@ public class ApplicationManager implements ApplicationService, ApplicationAdminS |
| 55 | 55 | ||
| 56 | private static final String APP_ID_NULL = "Application ID cannot be null"; | 56 | private static final String APP_ID_NULL = "Application ID cannot be null"; |
| 57 | 57 | ||
| 58 | - protected final AbstractListenerRegistry<ApplicationEvent, ApplicationListener> | 58 | + protected final ListenerRegistry<ApplicationEvent, ApplicationListener> |
| 59 | - listenerRegistry = new AbstractListenerRegistry<>(); | 59 | + listenerRegistry = new ListenerRegistry<>(); |
| 60 | 60 | ||
| 61 | private final ApplicationStoreDelegate delegate = new InternalStoreDelegate(); | 61 | private final ApplicationStoreDelegate delegate = new InternalStoreDelegate(); |
| 62 | 62 | ... | ... |
| ... | @@ -32,7 +32,7 @@ import org.onosproject.cluster.ClusterStore; | ... | @@ -32,7 +32,7 @@ import org.onosproject.cluster.ClusterStore; |
| 32 | import org.onosproject.cluster.ClusterStoreDelegate; | 32 | import org.onosproject.cluster.ClusterStoreDelegate; |
| 33 | import org.onosproject.cluster.ControllerNode; | 33 | import org.onosproject.cluster.ControllerNode; |
| 34 | import org.onosproject.cluster.NodeId; | 34 | import org.onosproject.cluster.NodeId; |
| 35 | -import org.onosproject.event.AbstractListenerRegistry; | 35 | +import org.onosproject.event.ListenerRegistry; |
| 36 | import org.onosproject.event.EventDeliveryService; | 36 | import org.onosproject.event.EventDeliveryService; |
| 37 | import org.slf4j.Logger; | 37 | import org.slf4j.Logger; |
| 38 | 38 | ||
| ... | @@ -54,8 +54,8 @@ public class ClusterManager implements ClusterService, ClusterAdminService { | ... | @@ -54,8 +54,8 @@ public class ClusterManager implements ClusterService, ClusterAdminService { |
| 54 | 54 | ||
| 55 | private ClusterStoreDelegate delegate = new InternalStoreDelegate(); | 55 | private ClusterStoreDelegate delegate = new InternalStoreDelegate(); |
| 56 | 56 | ||
| 57 | - protected final AbstractListenerRegistry<ClusterEvent, ClusterEventListener> | 57 | + protected final ListenerRegistry<ClusterEvent, ClusterEventListener> |
| 58 | - listenerRegistry = new AbstractListenerRegistry<>(); | 58 | + listenerRegistry = new ListenerRegistry<>(); |
| 59 | 59 | ||
| 60 | @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) | 60 | @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) |
| 61 | protected ClusterStore store; | 61 | protected ClusterStore store; | ... | ... |
| ... | @@ -30,7 +30,7 @@ import org.onosproject.cluster.ControllerNode; | ... | @@ -30,7 +30,7 @@ import org.onosproject.cluster.ControllerNode; |
| 30 | import org.onosproject.cluster.NodeId; | 30 | import org.onosproject.cluster.NodeId; |
| 31 | import org.onosproject.cluster.RoleInfo; | 31 | import org.onosproject.cluster.RoleInfo; |
| 32 | import org.onosproject.core.MetricsHelper; | 32 | import org.onosproject.core.MetricsHelper; |
| 33 | -import org.onosproject.event.AbstractListenerRegistry; | 33 | +import org.onosproject.event.ListenerRegistry; |
| 34 | import org.onosproject.event.EventDeliveryService; | 34 | import org.onosproject.event.EventDeliveryService; |
| 35 | import org.onosproject.mastership.MastershipAdminService; | 35 | import org.onosproject.mastership.MastershipAdminService; |
| 36 | import org.onosproject.mastership.MastershipEvent; | 36 | import org.onosproject.mastership.MastershipEvent; |
| ... | @@ -73,8 +73,8 @@ public class MastershipManager | ... | @@ -73,8 +73,8 @@ public class MastershipManager |
| 73 | 73 | ||
| 74 | private final Logger log = getLogger(getClass()); | 74 | private final Logger log = getLogger(getClass()); |
| 75 | 75 | ||
| 76 | - protected final AbstractListenerRegistry<MastershipEvent, MastershipListener> | 76 | + protected final ListenerRegistry<MastershipEvent, MastershipListener> |
| 77 | - listenerRegistry = new AbstractListenerRegistry<>(); | 77 | + listenerRegistry = new ListenerRegistry<>(); |
| 78 | 78 | ||
| 79 | private final MastershipStoreDelegate delegate = new InternalDelegate(); | 79 | private final MastershipStoreDelegate delegate = new InternalDelegate(); |
| 80 | 80 | ... | ... |
| ... | @@ -24,7 +24,7 @@ import org.apache.felix.scr.annotations.ReferenceCardinality; | ... | @@ -24,7 +24,7 @@ import org.apache.felix.scr.annotations.ReferenceCardinality; |
| 24 | import org.apache.felix.scr.annotations.Service; | 24 | import org.apache.felix.scr.annotations.Service; |
| 25 | import org.onosproject.cluster.ClusterService; | 25 | import org.onosproject.cluster.ClusterService; |
| 26 | import org.onosproject.cluster.NodeId; | 26 | import org.onosproject.cluster.NodeId; |
| 27 | -import org.onosproject.event.AbstractListenerRegistry; | 27 | +import org.onosproject.event.ListenerRegistry; |
| 28 | import org.onosproject.event.EventDeliveryService; | 28 | import org.onosproject.event.EventDeliveryService; |
| 29 | import org.onosproject.mastership.MastershipEvent; | 29 | import org.onosproject.mastership.MastershipEvent; |
| 30 | import org.onosproject.mastership.MastershipListener; | 30 | import org.onosproject.mastership.MastershipListener; |
| ... | @@ -83,8 +83,8 @@ public class DeviceManager | ... | @@ -83,8 +83,8 @@ public class DeviceManager |
| 83 | 83 | ||
| 84 | private final Logger log = getLogger(getClass()); | 84 | private final Logger log = getLogger(getClass()); |
| 85 | 85 | ||
| 86 | - protected final AbstractListenerRegistry<DeviceEvent, DeviceListener> listenerRegistry = | 86 | + protected final ListenerRegistry<DeviceEvent, DeviceListener> listenerRegistry = |
| 87 | - new AbstractListenerRegistry<>(); | 87 | + new ListenerRegistry<>(); |
| 88 | 88 | ||
| 89 | private final DeviceStoreDelegate delegate = new InternalStoreDelegate(); | 89 | private final DeviceStoreDelegate delegate = new InternalStoreDelegate(); |
| 90 | 90 | ... | ... |
| ... | @@ -35,7 +35,7 @@ import org.onosproject.cfg.ComponentConfigService; | ... | @@ -35,7 +35,7 @@ import org.onosproject.cfg.ComponentConfigService; |
| 35 | import org.onosproject.core.ApplicationId; | 35 | import org.onosproject.core.ApplicationId; |
| 36 | import org.onosproject.core.CoreService; | 36 | import org.onosproject.core.CoreService; |
| 37 | import org.onosproject.core.IdGenerator; | 37 | import org.onosproject.core.IdGenerator; |
| 38 | -import org.onosproject.event.AbstractListenerRegistry; | 38 | +import org.onosproject.event.ListenerRegistry; |
| 39 | import org.onosproject.event.EventDeliveryService; | 39 | import org.onosproject.event.EventDeliveryService; |
| 40 | import org.onosproject.net.Device; | 40 | import org.onosproject.net.Device; |
| 41 | import org.onosproject.net.DeviceId; | 41 | import org.onosproject.net.DeviceId; |
| ... | @@ -97,8 +97,8 @@ public class FlowRuleManager | ... | @@ -97,8 +97,8 @@ public class FlowRuleManager |
| 97 | 97 | ||
| 98 | private final Logger log = getLogger(getClass()); | 98 | private final Logger log = getLogger(getClass()); |
| 99 | 99 | ||
| 100 | - private final AbstractListenerRegistry<FlowRuleEvent, FlowRuleListener> | 100 | + private final ListenerRegistry<FlowRuleEvent, FlowRuleListener> |
| 101 | - listenerRegistry = new AbstractListenerRegistry<>(); | 101 | + listenerRegistry = new ListenerRegistry<>(); |
| 102 | 102 | ||
| 103 | private final FlowRuleStoreDelegate delegate = new InternalStoreDelegate(); | 103 | private final FlowRuleStoreDelegate delegate = new InternalStoreDelegate(); |
| 104 | 104 | ... | ... |
| ... | @@ -15,13 +15,7 @@ | ... | @@ -15,13 +15,7 @@ |
| 15 | */ | 15 | */ |
| 16 | package org.onosproject.net.group.impl; | 16 | package org.onosproject.net.group.impl; |
| 17 | 17 | ||
| 18 | -import static org.slf4j.LoggerFactory.getLogger; | 18 | +import com.google.common.collect.Sets; |
| 19 | - | ||
| 20 | -import java.util.Collection; | ||
| 21 | -import java.util.Collections; | ||
| 22 | -import java.util.Iterator; | ||
| 23 | -import java.util.Set; | ||
| 24 | - | ||
| 25 | import org.apache.felix.scr.annotations.Activate; | 19 | import org.apache.felix.scr.annotations.Activate; |
| 26 | import org.apache.felix.scr.annotations.Component; | 20 | import org.apache.felix.scr.annotations.Component; |
| 27 | import org.apache.felix.scr.annotations.Deactivate; | 21 | import org.apache.felix.scr.annotations.Deactivate; |
| ... | @@ -29,8 +23,8 @@ import org.apache.felix.scr.annotations.Reference; | ... | @@ -29,8 +23,8 @@ import org.apache.felix.scr.annotations.Reference; |
| 29 | import org.apache.felix.scr.annotations.ReferenceCardinality; | 23 | import org.apache.felix.scr.annotations.ReferenceCardinality; |
| 30 | import org.apache.felix.scr.annotations.Service; | 24 | import org.apache.felix.scr.annotations.Service; |
| 31 | import org.onosproject.core.ApplicationId; | 25 | import org.onosproject.core.ApplicationId; |
| 32 | -import org.onosproject.event.AbstractListenerRegistry; | ||
| 33 | import org.onosproject.event.EventDeliveryService; | 26 | import org.onosproject.event.EventDeliveryService; |
| 27 | +import org.onosproject.event.ListenerRegistry; | ||
| 34 | import org.onosproject.net.DeviceId; | 28 | import org.onosproject.net.DeviceId; |
| 35 | import org.onosproject.net.device.DeviceEvent; | 29 | import org.onosproject.net.device.DeviceEvent; |
| 36 | import org.onosproject.net.device.DeviceListener; | 30 | import org.onosproject.net.device.DeviceListener; |
| ... | @@ -54,7 +48,12 @@ import org.onosproject.net.provider.AbstractProviderRegistry; | ... | @@ -54,7 +48,12 @@ import org.onosproject.net.provider.AbstractProviderRegistry; |
| 54 | import org.onosproject.net.provider.AbstractProviderService; | 48 | import org.onosproject.net.provider.AbstractProviderService; |
| 55 | import org.slf4j.Logger; | 49 | import org.slf4j.Logger; |
| 56 | 50 | ||
| 57 | -import com.google.common.collect.Sets; | 51 | +import java.util.Collection; |
| 52 | +import java.util.Collections; | ||
| 53 | +import java.util.Iterator; | ||
| 54 | +import java.util.Set; | ||
| 55 | + | ||
| 56 | +import static org.slf4j.LoggerFactory.getLogger; | ||
| 58 | 57 | ||
| 59 | /** | 58 | /** |
| 60 | * Provides implementation of the group service APIs. | 59 | * Provides implementation of the group service APIs. |
| ... | @@ -67,8 +66,8 @@ public class GroupManager | ... | @@ -67,8 +66,8 @@ public class GroupManager |
| 67 | 66 | ||
| 68 | private final Logger log = getLogger(getClass()); | 67 | private final Logger log = getLogger(getClass()); |
| 69 | 68 | ||
| 70 | - private final AbstractListenerRegistry<GroupEvent, GroupListener> | 69 | + private final ListenerRegistry<GroupEvent, GroupListener> |
| 71 | - listenerRegistry = new AbstractListenerRegistry<>(); | 70 | + listenerRegistry = new ListenerRegistry<>(); |
| 72 | private final GroupStoreDelegate delegate = new InternalGroupStoreDelegate(); | 71 | private final GroupStoreDelegate delegate = new InternalGroupStoreDelegate(); |
| 73 | private final DeviceListener deviceListener = new InternalDeviceListener(); | 72 | private final DeviceListener deviceListener = new InternalDeviceListener(); |
| 74 | 73 | ... | ... |
| ... | @@ -15,19 +15,17 @@ | ... | @@ -15,19 +15,17 @@ |
| 15 | */ | 15 | */ |
| 16 | package org.onosproject.net.host.impl; | 16 | package org.onosproject.net.host.impl; |
| 17 | 17 | ||
| 18 | -import static com.google.common.base.Preconditions.checkNotNull; | ||
| 19 | -import static org.slf4j.LoggerFactory.getLogger; | ||
| 20 | - | ||
| 21 | -import java.util.Set; | ||
| 22 | - | ||
| 23 | import org.apache.felix.scr.annotations.Activate; | 18 | import org.apache.felix.scr.annotations.Activate; |
| 24 | import org.apache.felix.scr.annotations.Component; | 19 | import org.apache.felix.scr.annotations.Component; |
| 25 | import org.apache.felix.scr.annotations.Deactivate; | 20 | import org.apache.felix.scr.annotations.Deactivate; |
| 26 | import org.apache.felix.scr.annotations.Reference; | 21 | import org.apache.felix.scr.annotations.Reference; |
| 27 | import org.apache.felix.scr.annotations.ReferenceCardinality; | 22 | import org.apache.felix.scr.annotations.ReferenceCardinality; |
| 28 | import org.apache.felix.scr.annotations.Service; | 23 | import org.apache.felix.scr.annotations.Service; |
| 29 | -import org.onosproject.event.AbstractListenerRegistry; | 24 | +import org.onlab.packet.IpAddress; |
| 25 | +import org.onlab.packet.MacAddress; | ||
| 26 | +import org.onlab.packet.VlanId; | ||
| 30 | import org.onosproject.event.EventDeliveryService; | 27 | import org.onosproject.event.EventDeliveryService; |
| 28 | +import org.onosproject.event.ListenerRegistry; | ||
| 31 | import org.onosproject.net.ConnectPoint; | 29 | import org.onosproject.net.ConnectPoint; |
| 32 | import org.onosproject.net.DeviceId; | 30 | import org.onosproject.net.DeviceId; |
| 33 | import org.onosproject.net.Host; | 31 | import org.onosproject.net.Host; |
| ... | @@ -47,11 +45,13 @@ import org.onosproject.net.host.PortAddresses; | ... | @@ -47,11 +45,13 @@ import org.onosproject.net.host.PortAddresses; |
| 47 | import org.onosproject.net.packet.PacketService; | 45 | import org.onosproject.net.packet.PacketService; |
| 48 | import org.onosproject.net.provider.AbstractProviderRegistry; | 46 | import org.onosproject.net.provider.AbstractProviderRegistry; |
| 49 | import org.onosproject.net.provider.AbstractProviderService; | 47 | import org.onosproject.net.provider.AbstractProviderService; |
| 50 | -import org.onlab.packet.IpAddress; | ||
| 51 | -import org.onlab.packet.MacAddress; | ||
| 52 | -import org.onlab.packet.VlanId; | ||
| 53 | import org.slf4j.Logger; | 48 | import org.slf4j.Logger; |
| 54 | 49 | ||
| 50 | +import java.util.Set; | ||
| 51 | + | ||
| 52 | +import static com.google.common.base.Preconditions.checkNotNull; | ||
| 53 | +import static org.slf4j.LoggerFactory.getLogger; | ||
| 54 | + | ||
| 55 | /** | 55 | /** |
| 56 | * Provides basic implementation of the host SB & NB APIs. | 56 | * Provides basic implementation of the host SB & NB APIs. |
| 57 | */ | 57 | */ |
| ... | @@ -64,8 +64,8 @@ public class HostManager | ... | @@ -64,8 +64,8 @@ public class HostManager |
| 64 | public static final String HOST_ID_NULL = "Host ID cannot be null"; | 64 | public static final String HOST_ID_NULL = "Host ID cannot be null"; |
| 65 | private final Logger log = getLogger(getClass()); | 65 | private final Logger log = getLogger(getClass()); |
| 66 | 66 | ||
| 67 | - private final AbstractListenerRegistry<HostEvent, HostListener> | 67 | + private final ListenerRegistry<HostEvent, HostListener> |
| 68 | - listenerRegistry = new AbstractListenerRegistry<>(); | 68 | + listenerRegistry = new ListenerRegistry<>(); |
| 69 | 69 | ||
| 70 | private HostStoreDelegate delegate = new InternalStoreDelegate(); | 70 | private HostStoreDelegate delegate = new InternalStoreDelegate(); |
| 71 | 71 | ... | ... |
| ... | @@ -24,7 +24,7 @@ import org.apache.felix.scr.annotations.ReferenceCardinality; | ... | @@ -24,7 +24,7 @@ import org.apache.felix.scr.annotations.ReferenceCardinality; |
| 24 | import org.apache.felix.scr.annotations.Service; | 24 | import org.apache.felix.scr.annotations.Service; |
| 25 | import org.onosproject.core.CoreService; | 25 | import org.onosproject.core.CoreService; |
| 26 | import org.onosproject.core.IdGenerator; | 26 | import org.onosproject.core.IdGenerator; |
| 27 | -import org.onosproject.event.AbstractListenerRegistry; | 27 | +import org.onosproject.event.ListenerRegistry; |
| 28 | import org.onosproject.event.EventDeliveryService; | 28 | import org.onosproject.event.EventDeliveryService; |
| 29 | import org.onosproject.net.flow.FlowRule; | 29 | import org.onosproject.net.flow.FlowRule; |
| 30 | import org.onosproject.net.flow.FlowRuleOperations; | 30 | import org.onosproject.net.flow.FlowRuleOperations; |
| ... | @@ -83,8 +83,8 @@ public class IntentManager | ... | @@ -83,8 +83,8 @@ public class IntentManager |
| 83 | private static final EnumSet<IntentState> RECOMPILE | 83 | private static final EnumSet<IntentState> RECOMPILE |
| 84 | = EnumSet.of(INSTALL_REQ, FAILED, WITHDRAW_REQ); | 84 | = EnumSet.of(INSTALL_REQ, FAILED, WITHDRAW_REQ); |
| 85 | 85 | ||
| 86 | - private final AbstractListenerRegistry<IntentEvent, IntentListener> | 86 | + private final ListenerRegistry<IntentEvent, IntentListener> |
| 87 | - listenerRegistry = new AbstractListenerRegistry<>(); | 87 | + listenerRegistry = new ListenerRegistry<>(); |
| 88 | 88 | ||
| 89 | @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) | 89 | @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) |
| 90 | protected CoreService coreService; | 90 | protected CoreService coreService; | ... | ... |
| ... | @@ -15,16 +15,17 @@ | ... | @@ -15,16 +15,17 @@ |
| 15 | */ | 15 | */ |
| 16 | package org.onosproject.net.link.impl; | 16 | package org.onosproject.net.link.impl; |
| 17 | 17 | ||
| 18 | -import java.util.Set; | 18 | +import com.google.common.base.Predicate; |
| 19 | - | 19 | +import com.google.common.collect.FluentIterable; |
| 20 | +import com.google.common.collect.Sets; | ||
| 20 | import org.apache.felix.scr.annotations.Activate; | 21 | import org.apache.felix.scr.annotations.Activate; |
| 21 | import org.apache.felix.scr.annotations.Component; | 22 | import org.apache.felix.scr.annotations.Component; |
| 22 | import org.apache.felix.scr.annotations.Deactivate; | 23 | import org.apache.felix.scr.annotations.Deactivate; |
| 23 | import org.apache.felix.scr.annotations.Reference; | 24 | import org.apache.felix.scr.annotations.Reference; |
| 24 | import org.apache.felix.scr.annotations.ReferenceCardinality; | 25 | import org.apache.felix.scr.annotations.ReferenceCardinality; |
| 25 | import org.apache.felix.scr.annotations.Service; | 26 | import org.apache.felix.scr.annotations.Service; |
| 26 | -import org.onosproject.event.AbstractListenerRegistry; | ||
| 27 | import org.onosproject.event.EventDeliveryService; | 27 | import org.onosproject.event.EventDeliveryService; |
| 28 | +import org.onosproject.event.ListenerRegistry; | ||
| 28 | import org.onosproject.net.ConnectPoint; | 29 | import org.onosproject.net.ConnectPoint; |
| 29 | import org.onosproject.net.DeviceId; | 30 | import org.onosproject.net.DeviceId; |
| 30 | import org.onosproject.net.Link; | 31 | import org.onosproject.net.Link; |
| ... | @@ -47,9 +48,7 @@ import org.onosproject.net.provider.AbstractProviderRegistry; | ... | @@ -47,9 +48,7 @@ import org.onosproject.net.provider.AbstractProviderRegistry; |
| 47 | import org.onosproject.net.provider.AbstractProviderService; | 48 | import org.onosproject.net.provider.AbstractProviderService; |
| 48 | import org.slf4j.Logger; | 49 | import org.slf4j.Logger; |
| 49 | 50 | ||
| 50 | -import com.google.common.base.Predicate; | 51 | +import java.util.Set; |
| 51 | -import com.google.common.collect.FluentIterable; | ||
| 52 | -import com.google.common.collect.Sets; | ||
| 53 | 52 | ||
| 54 | import static com.google.common.base.Preconditions.checkNotNull; | 53 | import static com.google.common.base.Preconditions.checkNotNull; |
| 55 | import static org.slf4j.LoggerFactory.getLogger; | 54 | import static org.slf4j.LoggerFactory.getLogger; |
| ... | @@ -69,8 +68,8 @@ public class LinkManager | ... | @@ -69,8 +68,8 @@ public class LinkManager |
| 69 | 68 | ||
| 70 | private final Logger log = getLogger(getClass()); | 69 | private final Logger log = getLogger(getClass()); |
| 71 | 70 | ||
| 72 | - protected final AbstractListenerRegistry<LinkEvent, LinkListener> | 71 | + protected final ListenerRegistry<LinkEvent, LinkListener> |
| 73 | - listenerRegistry = new AbstractListenerRegistry<>(); | 72 | + listenerRegistry = new ListenerRegistry<>(); |
| 74 | 73 | ||
| 75 | private final LinkStoreDelegate delegate = new InternalStoreDelegate(); | 74 | private final LinkStoreDelegate delegate = new InternalStoreDelegate(); |
| 76 | 75 | ... | ... |
| ... | @@ -21,7 +21,7 @@ import org.apache.felix.scr.annotations.Deactivate; | ... | @@ -21,7 +21,7 @@ import org.apache.felix.scr.annotations.Deactivate; |
| 21 | import org.apache.felix.scr.annotations.Reference; | 21 | import org.apache.felix.scr.annotations.Reference; |
| 22 | import org.apache.felix.scr.annotations.ReferenceCardinality; | 22 | import org.apache.felix.scr.annotations.ReferenceCardinality; |
| 23 | import org.apache.felix.scr.annotations.Service; | 23 | import org.apache.felix.scr.annotations.Service; |
| 24 | -import org.onosproject.event.AbstractListenerRegistry; | 24 | +import org.onosproject.event.ListenerRegistry; |
| 25 | import org.onosproject.event.EventDeliveryService; | 25 | import org.onosproject.event.EventDeliveryService; |
| 26 | import org.onosproject.net.Link; | 26 | import org.onosproject.net.Link; |
| 27 | import org.onosproject.net.intent.IntentId; | 27 | import org.onosproject.net.intent.IntentId; |
| ... | @@ -66,8 +66,8 @@ public class LinkResourceManager implements LinkResourceService { | ... | @@ -66,8 +66,8 @@ public class LinkResourceManager implements LinkResourceService { |
| 66 | 66 | ||
| 67 | private final Logger log = getLogger(getClass()); | 67 | private final Logger log = getLogger(getClass()); |
| 68 | 68 | ||
| 69 | - protected final AbstractListenerRegistry<LinkResourceEvent, LinkResourceListener> | 69 | + protected final ListenerRegistry<LinkResourceEvent, LinkResourceListener> |
| 70 | - listenerRegistry = new AbstractListenerRegistry<>(); | 70 | + listenerRegistry = new ListenerRegistry<>(); |
| 71 | 71 | ||
| 72 | @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) | 72 | @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) |
| 73 | private LinkResourceStore store; | 73 | private LinkResourceStore store; | ... | ... |
| ... | @@ -21,7 +21,7 @@ import org.apache.felix.scr.annotations.Deactivate; | ... | @@ -21,7 +21,7 @@ import org.apache.felix.scr.annotations.Deactivate; |
| 21 | import org.apache.felix.scr.annotations.Reference; | 21 | import org.apache.felix.scr.annotations.Reference; |
| 22 | import org.apache.felix.scr.annotations.ReferenceCardinality; | 22 | import org.apache.felix.scr.annotations.ReferenceCardinality; |
| 23 | import org.apache.felix.scr.annotations.Service; | 23 | import org.apache.felix.scr.annotations.Service; |
| 24 | -import org.onosproject.event.AbstractListenerRegistry; | 24 | +import org.onosproject.event.ListenerRegistry; |
| 25 | import org.onosproject.event.Event; | 25 | import org.onosproject.event.Event; |
| 26 | import org.onosproject.event.EventDeliveryService; | 26 | import org.onosproject.event.EventDeliveryService; |
| 27 | import org.onosproject.net.ConnectPoint; | 27 | import org.onosproject.net.ConnectPoint; |
| ... | @@ -69,8 +69,8 @@ public class TopologyManager | ... | @@ -69,8 +69,8 @@ public class TopologyManager |
| 69 | 69 | ||
| 70 | private final Logger log = getLogger(getClass()); | 70 | private final Logger log = getLogger(getClass()); |
| 71 | 71 | ||
| 72 | - private final AbstractListenerRegistry<TopologyEvent, TopologyListener> | 72 | + private final ListenerRegistry<TopologyEvent, TopologyListener> |
| 73 | - listenerRegistry = new AbstractListenerRegistry<>(); | 73 | + listenerRegistry = new ListenerRegistry<>(); |
| 74 | 74 | ||
| 75 | private TopologyStoreDelegate delegate = new InternalStoreDelegate(); | 75 | private TopologyStoreDelegate delegate = new InternalStoreDelegate(); |
| 76 | 76 | ... | ... |
| ... | @@ -15,12 +15,6 @@ | ... | @@ -15,12 +15,6 @@ |
| 15 | */ | 15 | */ |
| 16 | package org.onosproject.net.tunnel.impl; | 16 | package org.onosproject.net.tunnel.impl; |
| 17 | 17 | ||
| 18 | -import static org.slf4j.LoggerFactory.getLogger; | ||
| 19 | - | ||
| 20 | -import java.util.Collection; | ||
| 21 | -import java.util.Set; | ||
| 22 | -import java.util.concurrent.ExecutorService; | ||
| 23 | - | ||
| 24 | import org.apache.felix.scr.annotations.Activate; | 18 | import org.apache.felix.scr.annotations.Activate; |
| 25 | import org.apache.felix.scr.annotations.Component; | 19 | import org.apache.felix.scr.annotations.Component; |
| 26 | import org.apache.felix.scr.annotations.Deactivate; | 20 | import org.apache.felix.scr.annotations.Deactivate; |
| ... | @@ -28,8 +22,8 @@ import org.apache.felix.scr.annotations.Reference; | ... | @@ -28,8 +22,8 @@ import org.apache.felix.scr.annotations.Reference; |
| 28 | import org.apache.felix.scr.annotations.ReferenceCardinality; | 22 | import org.apache.felix.scr.annotations.ReferenceCardinality; |
| 29 | import org.apache.felix.scr.annotations.Service; | 23 | import org.apache.felix.scr.annotations.Service; |
| 30 | import org.onosproject.core.CoreService; | 24 | import org.onosproject.core.CoreService; |
| 31 | -import org.onosproject.event.AbstractListenerRegistry; | ||
| 32 | import org.onosproject.event.EventDeliveryService; | 25 | import org.onosproject.event.EventDeliveryService; |
| 26 | +import org.onosproject.event.ListenerRegistry; | ||
| 33 | import org.onosproject.net.ConnectPoint; | 27 | import org.onosproject.net.ConnectPoint; |
| 34 | import org.onosproject.net.DeviceId; | 28 | import org.onosproject.net.DeviceId; |
| 35 | import org.onosproject.net.Path; | 29 | import org.onosproject.net.Path; |
| ... | @@ -41,6 +35,7 @@ import org.onosproject.net.provider.ProviderId; | ... | @@ -41,6 +35,7 @@ import org.onosproject.net.provider.ProviderId; |
| 41 | import org.onosproject.net.resource.BandwidthResource; | 35 | import org.onosproject.net.resource.BandwidthResource; |
| 42 | import org.onosproject.net.tunnel.Label; | 36 | import org.onosproject.net.tunnel.Label; |
| 43 | import org.onosproject.net.tunnel.Tunnel; | 37 | import org.onosproject.net.tunnel.Tunnel; |
| 38 | +import org.onosproject.net.tunnel.Tunnel.Type; | ||
| 44 | import org.onosproject.net.tunnel.TunnelAdminService; | 39 | import org.onosproject.net.tunnel.TunnelAdminService; |
| 45 | import org.onosproject.net.tunnel.TunnelDescription; | 40 | import org.onosproject.net.tunnel.TunnelDescription; |
| 46 | import org.onosproject.net.tunnel.TunnelEvent; | 41 | import org.onosproject.net.tunnel.TunnelEvent; |
| ... | @@ -52,9 +47,14 @@ import org.onosproject.net.tunnel.TunnelProviderService; | ... | @@ -52,9 +47,14 @@ import org.onosproject.net.tunnel.TunnelProviderService; |
| 52 | import org.onosproject.net.tunnel.TunnelService; | 47 | import org.onosproject.net.tunnel.TunnelService; |
| 53 | import org.onosproject.net.tunnel.TunnelStore; | 48 | import org.onosproject.net.tunnel.TunnelStore; |
| 54 | import org.onosproject.net.tunnel.TunnelStoreDelegate; | 49 | import org.onosproject.net.tunnel.TunnelStoreDelegate; |
| 55 | -import org.onosproject.net.tunnel.Tunnel.Type; | ||
| 56 | import org.slf4j.Logger; | 50 | import org.slf4j.Logger; |
| 57 | 51 | ||
| 52 | +import java.util.Collection; | ||
| 53 | +import java.util.Set; | ||
| 54 | +import java.util.concurrent.ExecutorService; | ||
| 55 | + | ||
| 56 | +import static org.slf4j.LoggerFactory.getLogger; | ||
| 57 | + | ||
| 58 | /** | 58 | /** |
| 59 | * Provides implementation of the tunnel NB/SB APIs. | 59 | * Provides implementation of the tunnel NB/SB APIs. |
| 60 | */ | 60 | */ |
| ... | @@ -67,8 +67,8 @@ public class TunnelManager extends AbstractProviderRegistry<TunnelProvider, Tunn | ... | @@ -67,8 +67,8 @@ public class TunnelManager extends AbstractProviderRegistry<TunnelProvider, Tunn |
| 67 | 67 | ||
| 68 | private final Logger log = getLogger(getClass()); | 68 | private final Logger log = getLogger(getClass()); |
| 69 | 69 | ||
| 70 | - protected final AbstractListenerRegistry<TunnelEvent, TunnelListener> | 70 | + protected final ListenerRegistry<TunnelEvent, TunnelListener> |
| 71 | - listenerRegistry = new AbstractListenerRegistry<>(); | 71 | + listenerRegistry = new ListenerRegistry<>(); |
| 72 | 72 | ||
| 73 | private final TunnelStoreDelegate delegate = new InternalStoreDelegate(); | 73 | private final TunnelStoreDelegate delegate = new InternalStoreDelegate(); |
| 74 | private final InternalTunnelListener tunnelListener = new InternalTunnelListener(); | 74 | private final InternalTunnelListener tunnelListener = new InternalTunnelListener(); | ... | ... |
| ... | @@ -33,7 +33,7 @@ import org.onosproject.cluster.LeadershipEvent; | ... | @@ -33,7 +33,7 @@ import org.onosproject.cluster.LeadershipEvent; |
| 33 | import org.onosproject.cluster.LeadershipEventListener; | 33 | import org.onosproject.cluster.LeadershipEventListener; |
| 34 | import org.onosproject.cluster.LeadershipService; | 34 | import org.onosproject.cluster.LeadershipService; |
| 35 | import org.onosproject.cluster.NodeId; | 35 | import org.onosproject.cluster.NodeId; |
| 36 | -import org.onosproject.event.AbstractListenerRegistry; | 36 | +import org.onosproject.event.ListenerRegistry; |
| 37 | import org.onosproject.event.EventDeliveryService; | 37 | import org.onosproject.event.EventDeliveryService; |
| 38 | import org.onosproject.store.cluster.messaging.ClusterCommunicationService; | 38 | import org.onosproject.store.cluster.messaging.ClusterCommunicationService; |
| 39 | import org.onosproject.store.cluster.messaging.ClusterMessage; | 39 | import org.onosproject.store.cluster.messaging.ClusterMessage; |
| ... | @@ -109,7 +109,7 @@ public class HazelcastLeadershipService implements LeadershipService { | ... | @@ -109,7 +109,7 @@ public class HazelcastLeadershipService implements LeadershipService { |
| 109 | @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) | 109 | @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) |
| 110 | protected EventDeliveryService eventDispatcher; | 110 | protected EventDeliveryService eventDispatcher; |
| 111 | 111 | ||
| 112 | - private AbstractListenerRegistry<LeadershipEvent, LeadershipEventListener> | 112 | + private ListenerRegistry<LeadershipEvent, LeadershipEventListener> |
| 113 | listenerRegistry; | 113 | listenerRegistry; |
| 114 | private final Map<String, Topic> topics = Maps.newConcurrentMap(); | 114 | private final Map<String, Topic> topics = Maps.newConcurrentMap(); |
| 115 | private NodeId localNodeId; | 115 | private NodeId localNodeId; |
| ... | @@ -122,7 +122,7 @@ public class HazelcastLeadershipService implements LeadershipService { | ... | @@ -122,7 +122,7 @@ public class HazelcastLeadershipService implements LeadershipService { |
| 122 | @Activate | 122 | @Activate |
| 123 | protected void activate() { | 123 | protected void activate() { |
| 124 | localNodeId = clusterService.getLocalNode().id(); | 124 | localNodeId = clusterService.getLocalNode().id(); |
| 125 | - listenerRegistry = new AbstractListenerRegistry<>(); | 125 | + listenerRegistry = new ListenerRegistry<>(); |
| 126 | eventDispatcher.addSink(LeadershipEvent.class, listenerRegistry); | 126 | eventDispatcher.addSink(LeadershipEvent.class, listenerRegistry); |
| 127 | 127 | ||
| 128 | TopicConfig topicConfig = new TopicConfig(); | 128 | TopicConfig topicConfig = new TopicConfig(); | ... | ... |
| ... | @@ -19,7 +19,7 @@ import org.onosproject.cluster.LeadershipEvent; | ... | @@ -19,7 +19,7 @@ import org.onosproject.cluster.LeadershipEvent; |
| 19 | import org.onosproject.cluster.LeadershipEventListener; | 19 | import org.onosproject.cluster.LeadershipEventListener; |
| 20 | import org.onosproject.cluster.LeadershipService; | 20 | import org.onosproject.cluster.LeadershipService; |
| 21 | import org.onosproject.cluster.NodeId; | 21 | import org.onosproject.cluster.NodeId; |
| 22 | -import org.onosproject.event.AbstractListenerRegistry; | 22 | +import org.onosproject.event.ListenerRegistry; |
| 23 | import org.onosproject.event.EventDeliveryService; | 23 | import org.onosproject.event.EventDeliveryService; |
| 24 | import org.onosproject.store.cluster.messaging.ClusterCommunicationService; | 24 | import org.onosproject.store.cluster.messaging.ClusterCommunicationService; |
| 25 | import org.onosproject.store.cluster.messaging.MessageSubject; | 25 | import org.onosproject.store.cluster.messaging.MessageSubject; |
| ... | @@ -85,7 +85,7 @@ public class DistributedLeadershipManager implements LeadershipService { | ... | @@ -85,7 +85,7 @@ public class DistributedLeadershipManager implements LeadershipService { |
| 85 | private ConsistentMap<String, NodeId> leaderMap; | 85 | private ConsistentMap<String, NodeId> leaderMap; |
| 86 | private ConsistentMap<String, List<NodeId>> candidateMap; | 86 | private ConsistentMap<String, List<NodeId>> candidateMap; |
| 87 | 87 | ||
| 88 | - private AbstractListenerRegistry<LeadershipEvent, LeadershipEventListener> | 88 | + private ListenerRegistry<LeadershipEvent, LeadershipEventListener> |
| 89 | listenerRegistry; | 89 | listenerRegistry; |
| 90 | private final Map<String, Leadership> leaderBoard = Maps.newConcurrentMap(); | 90 | private final Map<String, Leadership> leaderBoard = Maps.newConcurrentMap(); |
| 91 | private final Map<String, Leadership> candidateBoard = Maps.newConcurrentMap(); | 91 | private final Map<String, Leadership> candidateBoard = Maps.newConcurrentMap(); |
| ... | @@ -135,7 +135,7 @@ public class DistributedLeadershipManager implements LeadershipService { | ... | @@ -135,7 +135,7 @@ public class DistributedLeadershipManager implements LeadershipService { |
| 135 | leadershipStatusBroadcaster.scheduleWithFixedDelay( | 135 | leadershipStatusBroadcaster.scheduleWithFixedDelay( |
| 136 | this::sendLeadershipStatus, 0, LEADERSHIP_STATUS_UPDATE_INTERVAL_SEC, TimeUnit.SECONDS); | 136 | this::sendLeadershipStatus, 0, LEADERSHIP_STATUS_UPDATE_INTERVAL_SEC, TimeUnit.SECONDS); |
| 137 | 137 | ||
| 138 | - listenerRegistry = new AbstractListenerRegistry<>(); | 138 | + listenerRegistry = new ListenerRegistry<>(); |
| 139 | eventDispatcher.addSink(LeadershipEvent.class, listenerRegistry); | 139 | eventDispatcher.addSink(LeadershipEvent.class, listenerRegistry); |
| 140 | 140 | ||
| 141 | log.info("Started"); | 141 | log.info("Started"); | ... | ... |
| ... | @@ -15,15 +15,9 @@ | ... | @@ -15,15 +15,9 @@ |
| 15 | */ | 15 | */ |
| 16 | package org.onosproject.store.flow.impl; | 16 | package org.onosproject.store.flow.impl; |
| 17 | 17 | ||
| 18 | -import static com.google.common.base.Preconditions.checkNotNull; | 18 | +import com.google.common.base.Objects; |
| 19 | -import static org.slf4j.LoggerFactory.getLogger; | 19 | +import com.google.common.collect.ImmutableList; |
| 20 | -import static org.onosproject.store.flow.ReplicaInfoEvent.Type.MASTER_CHANGED; | 20 | +import com.google.common.collect.Maps; |
| 21 | -import static org.onosproject.store.flow.ReplicaInfoEvent.Type.BACKUPS_CHANGED; | ||
| 22 | - | ||
| 23 | -import java.util.Collections; | ||
| 24 | -import java.util.List; | ||
| 25 | -import java.util.Map; | ||
| 26 | - | ||
| 27 | import org.apache.felix.scr.annotations.Activate; | 21 | import org.apache.felix.scr.annotations.Activate; |
| 28 | import org.apache.felix.scr.annotations.Component; | 22 | import org.apache.felix.scr.annotations.Component; |
| 29 | import org.apache.felix.scr.annotations.Deactivate; | 23 | import org.apache.felix.scr.annotations.Deactivate; |
| ... | @@ -32,8 +26,8 @@ import org.apache.felix.scr.annotations.ReferenceCardinality; | ... | @@ -32,8 +26,8 @@ import org.apache.felix.scr.annotations.ReferenceCardinality; |
| 32 | import org.apache.felix.scr.annotations.Service; | 26 | import org.apache.felix.scr.annotations.Service; |
| 33 | import org.onosproject.cluster.NodeId; | 27 | import org.onosproject.cluster.NodeId; |
| 34 | import org.onosproject.cluster.RoleInfo; | 28 | import org.onosproject.cluster.RoleInfo; |
| 35 | -import org.onosproject.event.AbstractListenerRegistry; | ||
| 36 | import org.onosproject.event.EventDeliveryService; | 29 | import org.onosproject.event.EventDeliveryService; |
| 30 | +import org.onosproject.event.ListenerRegistry; | ||
| 37 | import org.onosproject.mastership.MastershipEvent; | 31 | import org.onosproject.mastership.MastershipEvent; |
| 38 | import org.onosproject.mastership.MastershipListener; | 32 | import org.onosproject.mastership.MastershipListener; |
| 39 | import org.onosproject.mastership.MastershipService; | 33 | import org.onosproject.mastership.MastershipService; |
| ... | @@ -44,9 +38,14 @@ import org.onosproject.store.flow.ReplicaInfoEventListener; | ... | @@ -44,9 +38,14 @@ import org.onosproject.store.flow.ReplicaInfoEventListener; |
| 44 | import org.onosproject.store.flow.ReplicaInfoService; | 38 | import org.onosproject.store.flow.ReplicaInfoService; |
| 45 | import org.slf4j.Logger; | 39 | import org.slf4j.Logger; |
| 46 | 40 | ||
| 47 | -import com.google.common.base.Objects; | 41 | +import java.util.Collections; |
| 48 | -import com.google.common.collect.ImmutableList; | 42 | +import java.util.List; |
| 49 | -import com.google.common.collect.Maps; | 43 | +import java.util.Map; |
| 44 | + | ||
| 45 | +import static com.google.common.base.Preconditions.checkNotNull; | ||
| 46 | +import static org.onosproject.store.flow.ReplicaInfoEvent.Type.BACKUPS_CHANGED; | ||
| 47 | +import static org.onosproject.store.flow.ReplicaInfoEvent.Type.MASTER_CHANGED; | ||
| 48 | +import static org.slf4j.LoggerFactory.getLogger; | ||
| 50 | 49 | ||
| 51 | /** | 50 | /** |
| 52 | * Manages replica placement information. | 51 | * Manages replica placement information. |
| ... | @@ -65,8 +64,8 @@ public class ReplicaInfoManager implements ReplicaInfoService { | ... | @@ -65,8 +64,8 @@ public class ReplicaInfoManager implements ReplicaInfoService { |
| 65 | @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) | 64 | @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) |
| 66 | protected MastershipService mastershipService; | 65 | protected MastershipService mastershipService; |
| 67 | 66 | ||
| 68 | - protected final AbstractListenerRegistry<ReplicaInfoEvent, ReplicaInfoEventListener> | 67 | + protected final ListenerRegistry<ReplicaInfoEvent, ReplicaInfoEventListener> |
| 69 | - listenerRegistry = new AbstractListenerRegistry<>(); | 68 | + listenerRegistry = new ListenerRegistry<>(); |
| 70 | 69 | ||
| 71 | private final Map<DeviceId, ReplicaInfo> deviceReplicaInfoMap = Maps.newConcurrentMap(); | 70 | private final Map<DeviceId, ReplicaInfo> deviceReplicaInfoMap = Maps.newConcurrentMap(); |
| 72 | 71 | ... | ... |
| ... | @@ -15,25 +15,18 @@ | ... | @@ -15,25 +15,18 @@ |
| 15 | */ | 15 | */ |
| 16 | package org.onosproject.store.flow.impl; | 16 | package org.onosproject.store.flow.impl; |
| 17 | 17 | ||
| 18 | -import static com.google.common.base.Preconditions.checkState; | 18 | +import com.google.common.base.Optional; |
| 19 | -import static org.junit.Assert.*; | 19 | +import com.google.common.collect.Maps; |
| 20 | - | ||
| 21 | -import java.util.Collections; | ||
| 22 | -import java.util.Map; | ||
| 23 | -import java.util.LinkedList; | ||
| 24 | -import java.util.concurrent.CountDownLatch; | ||
| 25 | -import java.util.concurrent.TimeUnit; | ||
| 26 | - | ||
| 27 | import org.junit.After; | 20 | import org.junit.After; |
| 28 | import org.junit.Before; | 21 | import org.junit.Before; |
| 29 | import org.junit.Test; | 22 | import org.junit.Test; |
| 30 | import org.onosproject.cluster.NodeId; | 23 | import org.onosproject.cluster.NodeId; |
| 31 | import org.onosproject.cluster.RoleInfo; | 24 | import org.onosproject.cluster.RoleInfo; |
| 32 | -import org.onosproject.event.AbstractListenerRegistry; | ||
| 33 | import org.onosproject.event.DefaultEventSinkRegistry; | 25 | import org.onosproject.event.DefaultEventSinkRegistry; |
| 34 | import org.onosproject.event.Event; | 26 | import org.onosproject.event.Event; |
| 35 | import org.onosproject.event.EventDeliveryService; | 27 | import org.onosproject.event.EventDeliveryService; |
| 36 | import org.onosproject.event.EventSink; | 28 | import org.onosproject.event.EventSink; |
| 29 | +import org.onosproject.event.ListenerRegistry; | ||
| 37 | import org.onosproject.mastership.MastershipEvent; | 30 | import org.onosproject.mastership.MastershipEvent; |
| 38 | import org.onosproject.mastership.MastershipEvent.Type; | 31 | import org.onosproject.mastership.MastershipEvent.Type; |
| 39 | import org.onosproject.mastership.MastershipListener; | 32 | import org.onosproject.mastership.MastershipListener; |
| ... | @@ -45,8 +38,15 @@ import org.onosproject.store.flow.ReplicaInfoEvent; | ... | @@ -45,8 +38,15 @@ import org.onosproject.store.flow.ReplicaInfoEvent; |
| 45 | import org.onosproject.store.flow.ReplicaInfoEventListener; | 38 | import org.onosproject.store.flow.ReplicaInfoEventListener; |
| 46 | import org.onosproject.store.flow.ReplicaInfoService; | 39 | import org.onosproject.store.flow.ReplicaInfoService; |
| 47 | 40 | ||
| 48 | -import com.google.common.base.Optional; | 41 | +import java.util.Collections; |
| 49 | -import com.google.common.collect.Maps; | 42 | +import java.util.LinkedList; |
| 43 | +import java.util.Map; | ||
| 44 | +import java.util.concurrent.CountDownLatch; | ||
| 45 | +import java.util.concurrent.TimeUnit; | ||
| 46 | + | ||
| 47 | +import static com.google.common.base.Preconditions.checkState; | ||
| 48 | +import static org.junit.Assert.assertEquals; | ||
| 49 | +import static org.junit.Assert.assertTrue; | ||
| 50 | 50 | ||
| 51 | public class ReplicaInfoManagerTest { | 51 | public class ReplicaInfoManagerTest { |
| 52 | 52 | ||
| ... | @@ -58,14 +58,14 @@ public class ReplicaInfoManagerTest { | ... | @@ -58,14 +58,14 @@ public class ReplicaInfoManagerTest { |
| 58 | private ReplicaInfoManager mgr; | 58 | private ReplicaInfoManager mgr; |
| 59 | private ReplicaInfoService service; | 59 | private ReplicaInfoService service; |
| 60 | 60 | ||
| 61 | - private AbstractListenerRegistry<MastershipEvent, MastershipListener> | 61 | + private ListenerRegistry<MastershipEvent, MastershipListener> |
| 62 | mastershipListenerRegistry; | 62 | mastershipListenerRegistry; |
| 63 | private TestEventDispatcher eventDispatcher; | 63 | private TestEventDispatcher eventDispatcher; |
| 64 | 64 | ||
| 65 | 65 | ||
| 66 | @Before | 66 | @Before |
| 67 | public void setUp() throws Exception { | 67 | public void setUp() throws Exception { |
| 68 | - mastershipListenerRegistry = new AbstractListenerRegistry<>(); | 68 | + mastershipListenerRegistry = new ListenerRegistry<>(); |
| 69 | 69 | ||
| 70 | mgr = new ReplicaInfoManager(); | 70 | mgr = new ReplicaInfoManager(); |
| 71 | service = mgr; | 71 | service = mgr; | ... | ... |
| ... | @@ -17,7 +17,7 @@ | ... | @@ -17,7 +17,7 @@ |
| 17 | 17 | ||
| 18 | package org.onosproject.ui.impl.topo; | 18 | package org.onosproject.ui.impl.topo; |
| 19 | 19 | ||
| 20 | -import org.onosproject.event.AbstractListenerRegistry; | 20 | +import org.onosproject.event.ListenerRegistry; |
| 21 | import org.slf4j.Logger; | 21 | import org.slf4j.Logger; |
| 22 | 22 | ||
| 23 | import java.util.HashSet; | 23 | import java.util.HashSet; |
| ... | @@ -31,7 +31,7 @@ import static org.slf4j.LoggerFactory.getLogger; | ... | @@ -31,7 +31,7 @@ import static org.slf4j.LoggerFactory.getLogger; |
| 31 | */ | 31 | */ |
| 32 | // package private | 32 | // package private |
| 33 | class ModelListenerRegistry | 33 | class ModelListenerRegistry |
| 34 | - extends AbstractListenerRegistry<TopoUiEvent, TopoUiListener> { | 34 | + extends ListenerRegistry<TopoUiEvent, TopoUiListener> { |
| 35 | 35 | ||
| 36 | private final Logger log = getLogger(getClass()); | 36 | private final Logger log = getLogger(getClass()); |
| 37 | 37 | ||
| ... | @@ -58,4 +58,9 @@ class ModelListenerRegistry | ... | @@ -58,4 +58,9 @@ class ModelListenerRegistry |
| 58 | removeListener(z); | 58 | removeListener(z); |
| 59 | } | 59 | } |
| 60 | } | 60 | } |
| 61 | + | ||
| 62 | + @Override | ||
| 63 | + protected boolean checkForNonRegistrant() { | ||
| 64 | + return false; | ||
| 65 | + } | ||
| 61 | } | 66 | } | ... | ... |
| ... | @@ -143,12 +143,7 @@ public class TopoUiModelManager implements TopoUiModelService { | ... | @@ -143,12 +143,7 @@ public class TopoUiModelManager implements TopoUiModelService { |
| 143 | 143 | ||
| 144 | @Override | 144 | @Override |
| 145 | public void removeListener(TopoUiListener listener) { | 145 | public void removeListener(TopoUiListener listener) { |
| 146 | - // we don't really care if the listener is not listed... | ||
| 147 | - try { | ||
| 148 | listenerRegistry.removeListener(listener); | 146 | listenerRegistry.removeListener(listener); |
| 149 | - } catch (IllegalArgumentException e) { | ||
| 150 | - log.debug("Oops, listener not registered: {}", listener); | ||
| 151 | - } | ||
| 152 | } | 147 | } |
| 153 | 148 | ||
| 154 | @Override | 149 | @Override | ... | ... |
-
Please register or login to post a comment