Remove dependency on LinkResourceService from ObjectiveTracker
This resolves ONOS-3262. Change-Id: I57b51b9d8ef1ed2d847ecddeca279b8afdb8725e
Showing
2 changed files
with
31 additions
and
43 deletions
| ... | @@ -48,9 +48,9 @@ import org.onosproject.net.intent.PartitionEvent; | ... | @@ -48,9 +48,9 @@ import org.onosproject.net.intent.PartitionEvent; |
| 48 | import org.onosproject.net.intent.PartitionEventListener; | 48 | import org.onosproject.net.intent.PartitionEventListener; |
| 49 | import org.onosproject.net.intent.PartitionService; | 49 | import org.onosproject.net.intent.PartitionService; |
| 50 | import org.onosproject.net.link.LinkEvent; | 50 | import org.onosproject.net.link.LinkEvent; |
| 51 | -import org.onosproject.net.resource.link.LinkResourceEvent; | 51 | +import org.onosproject.net.newresource.ResourceEvent; |
| 52 | -import org.onosproject.net.resource.link.LinkResourceListener; | 52 | +import org.onosproject.net.newresource.ResourceListener; |
| 53 | -import org.onosproject.net.resource.link.LinkResourceService; | 53 | +import org.onosproject.net.newresource.ResourceService; |
| 54 | import org.onosproject.net.topology.TopologyEvent; | 54 | import org.onosproject.net.topology.TopologyEvent; |
| 55 | import org.onosproject.net.topology.TopologyListener; | 55 | import org.onosproject.net.topology.TopologyListener; |
| 56 | import org.onosproject.net.topology.TopologyService; | 56 | import org.onosproject.net.topology.TopologyService; |
| ... | @@ -60,6 +60,7 @@ import java.util.Collection; | ... | @@ -60,6 +60,7 @@ import java.util.Collection; |
| 60 | import java.util.Collections; | 60 | import java.util.Collections; |
| 61 | import java.util.HashSet; | 61 | import java.util.HashSet; |
| 62 | import java.util.List; | 62 | import java.util.List; |
| 63 | +import java.util.Optional; | ||
| 63 | import java.util.Set; | 64 | import java.util.Set; |
| 64 | import java.util.concurrent.ExecutorService; | 65 | import java.util.concurrent.ExecutorService; |
| 65 | import java.util.concurrent.Executors; | 66 | import java.util.concurrent.Executors; |
| ... | @@ -101,7 +102,7 @@ public class ObjectiveTracker implements ObjectiveTrackerService { | ... | @@ -101,7 +102,7 @@ public class ObjectiveTracker implements ObjectiveTrackerService { |
| 101 | protected TopologyService topologyService; | 102 | protected TopologyService topologyService; |
| 102 | 103 | ||
| 103 | @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) | 104 | @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) |
| 104 | - protected LinkResourceService resourceManager; | 105 | + protected ResourceService resourceService; |
| 105 | 106 | ||
| 106 | @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) | 107 | @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) |
| 107 | protected DeviceService deviceService; | 108 | protected DeviceService deviceService; |
| ... | @@ -122,8 +123,7 @@ public class ObjectiveTracker implements ObjectiveTrackerService { | ... | @@ -122,8 +123,7 @@ public class ObjectiveTracker implements ObjectiveTrackerService { |
| 122 | .newScheduledThreadPool(1); | 123 | .newScheduledThreadPool(1); |
| 123 | 124 | ||
| 124 | private TopologyListener listener = new InternalTopologyListener(); | 125 | private TopologyListener listener = new InternalTopologyListener(); |
| 125 | - private LinkResourceListener linkResourceListener = | 126 | + private ResourceListener resourceListener = new InternalResourceListener(); |
| 126 | - new InternalLinkResourceListener(); | ||
| 127 | private DeviceListener deviceListener = new InternalDeviceListener(); | 127 | private DeviceListener deviceListener = new InternalDeviceListener(); |
| 128 | private HostListener hostListener = new InternalHostListener(); | 128 | private HostListener hostListener = new InternalHostListener(); |
| 129 | private PartitionEventListener partitionListener = new InternalPartitionListener(); | 129 | private PartitionEventListener partitionListener = new InternalPartitionListener(); |
| ... | @@ -134,7 +134,7 @@ public class ObjectiveTracker implements ObjectiveTrackerService { | ... | @@ -134,7 +134,7 @@ public class ObjectiveTracker implements ObjectiveTrackerService { |
| 134 | @Activate | 134 | @Activate |
| 135 | public void activate() { | 135 | public void activate() { |
| 136 | topologyService.addListener(listener); | 136 | topologyService.addListener(listener); |
| 137 | - resourceManager.addListener(linkResourceListener); | 137 | + resourceService.addListener(resourceListener); |
| 138 | deviceService.addListener(deviceListener); | 138 | deviceService.addListener(deviceListener); |
| 139 | hostService.addListener(hostListener); | 139 | hostService.addListener(hostListener); |
| 140 | partitionService.addListener(partitionListener); | 140 | partitionService.addListener(partitionListener); |
| ... | @@ -144,7 +144,7 @@ public class ObjectiveTracker implements ObjectiveTrackerService { | ... | @@ -144,7 +144,7 @@ public class ObjectiveTracker implements ObjectiveTrackerService { |
| 144 | @Deactivate | 144 | @Deactivate |
| 145 | public void deactivate() { | 145 | public void deactivate() { |
| 146 | topologyService.removeListener(listener); | 146 | topologyService.removeListener(listener); |
| 147 | - resourceManager.removeListener(linkResourceListener); | 147 | + resourceService.removeListener(resourceListener); |
| 148 | deviceService.removeListener(deviceListener); | 148 | deviceService.removeListener(deviceListener); |
| 149 | hostService.removeListener(hostListener); | 149 | hostService.removeListener(hostListener); |
| 150 | partitionService.removeListener(partitionListener); | 150 | partitionService.removeListener(partitionListener); |
| ... | @@ -299,35 +299,22 @@ public class ObjectiveTracker implements ObjectiveTrackerService { | ... | @@ -299,35 +299,22 @@ public class ObjectiveTracker implements ObjectiveTrackerService { |
| 299 | } | 299 | } |
| 300 | } | 300 | } |
| 301 | 301 | ||
| 302 | - /** | 302 | + private class InternalResourceListener implements ResourceListener { |
| 303 | - * Internal re-actor to resource available events. | ||
| 304 | - */ | ||
| 305 | - private class InternalLinkResourceListener implements LinkResourceListener { | ||
| 306 | @Override | 303 | @Override |
| 307 | - public void event(LinkResourceEvent event) { | 304 | + public void event(ResourceEvent event) { |
| 308 | - executorService.execute(new ResourceAvailableHandler(event)); | 305 | + Optional<Class<?>> linkEvent = event.subject().components().stream() |
| 309 | - } | 306 | + .map(Object::getClass) |
| 310 | - } | 307 | + .filter(x -> x == LinkKey.class) |
| 311 | - | 308 | + .findFirst(); |
| 312 | - /* | 309 | + if (linkEvent.isPresent()) { |
| 313 | - * Re-dispatcher of resource available events. | 310 | + executorService.execute(() -> { |
| 314 | - */ | 311 | + if (delegate == null) { |
| 315 | - private class ResourceAvailableHandler implements Runnable { | 312 | + return; |
| 316 | - | 313 | + } |
| 317 | - private final LinkResourceEvent event; | ||
| 318 | - | ||
| 319 | - ResourceAvailableHandler(LinkResourceEvent event) { | ||
| 320 | - this.event = event; | ||
| 321 | - } | ||
| 322 | 314 | ||
| 323 | - @Override | 315 | + delegate.triggerCompile(Collections.emptySet(), true); |
| 324 | - public void run() { | 316 | + }); |
| 325 | - // If there is no delegate, why bother? Just bail. | ||
| 326 | - if (delegate == null) { | ||
| 327 | - return; | ||
| 328 | } | 317 | } |
| 329 | - | ||
| 330 | - delegate.triggerCompile(Collections.emptySet(), true); | ||
| 331 | } | 318 | } |
| 332 | } | 319 | } |
| 333 | 320 | ... | ... |
| ... | @@ -16,7 +16,6 @@ | ... | @@ -16,7 +16,6 @@ |
| 16 | package org.onosproject.net.intent.impl; | 16 | package org.onosproject.net.intent.impl; |
| 17 | 17 | ||
| 18 | import java.util.Collection; | 18 | import java.util.Collection; |
| 19 | -import java.util.HashSet; | ||
| 20 | import java.util.LinkedList; | 19 | import java.util.LinkedList; |
| 21 | import java.util.List; | 20 | import java.util.List; |
| 22 | import java.util.concurrent.CountDownLatch; | 21 | import java.util.concurrent.CountDownLatch; |
| ... | @@ -38,8 +37,9 @@ import org.onosproject.net.intent.Intent; | ... | @@ -38,8 +37,9 @@ import org.onosproject.net.intent.Intent; |
| 38 | import org.onosproject.net.intent.Key; | 37 | import org.onosproject.net.intent.Key; |
| 39 | import org.onosproject.net.intent.MockIdGenerator; | 38 | import org.onosproject.net.intent.MockIdGenerator; |
| 40 | import org.onosproject.net.link.LinkEvent; | 39 | import org.onosproject.net.link.LinkEvent; |
| 41 | -import org.onosproject.net.resource.link.LinkResourceEvent; | 40 | +import org.onosproject.net.newresource.ResourceEvent; |
| 42 | -import org.onosproject.net.resource.link.LinkResourceListener; | 41 | +import org.onosproject.net.newresource.ResourceListener; |
| 42 | +import org.onosproject.net.newresource.ResourcePath; | ||
| 43 | import org.onosproject.net.topology.Topology; | 43 | import org.onosproject.net.topology.Topology; |
| 44 | import org.onosproject.net.topology.TopologyEvent; | 44 | import org.onosproject.net.topology.TopologyEvent; |
| 45 | import org.onosproject.net.topology.TopologyListener; | 45 | import org.onosproject.net.topology.TopologyListener; |
| ... | @@ -52,6 +52,8 @@ import static org.hamcrest.MatcherAssert.assertThat; | ... | @@ -52,6 +52,8 @@ import static org.hamcrest.MatcherAssert.assertThat; |
| 52 | import static org.hamcrest.Matchers.equalTo; | 52 | import static org.hamcrest.Matchers.equalTo; |
| 53 | import static org.hamcrest.Matchers.hasSize; | 53 | import static org.hamcrest.Matchers.hasSize; |
| 54 | import static org.hamcrest.Matchers.is; | 54 | import static org.hamcrest.Matchers.is; |
| 55 | +import static org.onosproject.net.LinkKey.linkKey; | ||
| 56 | +import static org.onosproject.net.newresource.ResourceEvent.Type.*; | ||
| 55 | import static org.onosproject.net.NetTestTools.APP_ID; | 57 | import static org.onosproject.net.NetTestTools.APP_ID; |
| 56 | import static org.onosproject.net.NetTestTools.device; | 58 | import static org.onosproject.net.NetTestTools.device; |
| 57 | import static org.onosproject.net.NetTestTools.link; | 59 | import static org.onosproject.net.NetTestTools.link; |
| ... | @@ -67,7 +69,7 @@ public class ObjectiveTrackerTest { | ... | @@ -67,7 +69,7 @@ public class ObjectiveTrackerTest { |
| 67 | private List<Event> reasons; | 69 | private List<Event> reasons; |
| 68 | private TopologyListener listener; | 70 | private TopologyListener listener; |
| 69 | private DeviceListener deviceListener; | 71 | private DeviceListener deviceListener; |
| 70 | - private LinkResourceListener linkResourceListener; | 72 | + private ResourceListener resourceListener; |
| 71 | private IdGenerator mockGenerator; | 73 | private IdGenerator mockGenerator; |
| 72 | 74 | ||
| 73 | /** | 75 | /** |
| ... | @@ -84,7 +86,7 @@ public class ObjectiveTrackerTest { | ... | @@ -84,7 +86,7 @@ public class ObjectiveTrackerTest { |
| 84 | reasons = new LinkedList<>(); | 86 | reasons = new LinkedList<>(); |
| 85 | listener = TestUtils.getField(tracker, "listener"); | 87 | listener = TestUtils.getField(tracker, "listener"); |
| 86 | deviceListener = TestUtils.getField(tracker, "deviceListener"); | 88 | deviceListener = TestUtils.getField(tracker, "deviceListener"); |
| 87 | - linkResourceListener = TestUtils.getField(tracker, "linkResourceListener"); | 89 | + resourceListener = TestUtils.getField(tracker, "resourceListener"); |
| 88 | mockGenerator = new MockIdGenerator(); | 90 | mockGenerator = new MockIdGenerator(); |
| 89 | Intent.bindIdGenerator(mockGenerator); | 91 | Intent.bindIdGenerator(mockGenerator); |
| 90 | } | 92 | } |
| ... | @@ -228,10 +230,9 @@ public class ObjectiveTrackerTest { | ... | @@ -228,10 +230,9 @@ public class ObjectiveTrackerTest { |
| 228 | */ | 230 | */ |
| 229 | @Test | 231 | @Test |
| 230 | public void testResourceEvent() throws Exception { | 232 | public void testResourceEvent() throws Exception { |
| 231 | - LinkResourceEvent event = new LinkResourceEvent( | 233 | + ResourceEvent event = new ResourceEvent(RESOURCE_ADDED, |
| 232 | - LinkResourceEvent.Type.ADDITIONAL_RESOURCES_AVAILABLE, | 234 | + new ResourcePath(linkKey(link("a", 1, "b", 1)))); |
| 233 | - new HashSet<>()); | 235 | + resourceListener.event(event); |
| 234 | - linkResourceListener.event(event); | ||
| 235 | 236 | ||
| 236 | assertThat( | 237 | assertThat( |
| 237 | delegate.latch.await(WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS), | 238 | delegate.latch.await(WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS), | ... | ... |
-
Please register or login to post a comment