Remove dependency on LinkResourceService from ObjectiveTracker
This resolves ONOS-3262. Change-Id: I57b51b9d8ef1ed2d847ecddeca279b8afdb8725e
Showing
2 changed files
with
28 additions
and
40 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 | ||
307 | - public void event(LinkResourceEvent event) { | ||
308 | - executorService.execute(new ResourceAvailableHandler(event)); | ||
309 | - } | ||
310 | - } | ||
311 | - | ||
312 | - /* | ||
313 | - * Re-dispatcher of resource available events. | ||
314 | - */ | ||
315 | - private class ResourceAvailableHandler implements Runnable { | ||
316 | - | ||
317 | - private final LinkResourceEvent event; | ||
318 | - | ||
319 | - ResourceAvailableHandler(LinkResourceEvent event) { | ||
320 | - this.event = event; | ||
321 | - } | ||
322 | - | ||
323 | @Override | 303 | @Override |
324 | - public void run() { | 304 | + public void event(ResourceEvent event) { |
325 | - // If there is no delegate, why bother? Just bail. | 305 | + Optional<Class<?>> linkEvent = event.subject().components().stream() |
306 | + .map(Object::getClass) | ||
307 | + .filter(x -> x == LinkKey.class) | ||
308 | + .findFirst(); | ||
309 | + if (linkEvent.isPresent()) { | ||
310 | + executorService.execute(() -> { | ||
326 | if (delegate == null) { | 311 | if (delegate == null) { |
327 | return; | 312 | return; |
328 | } | 313 | } |
329 | 314 | ||
330 | delegate.triggerCompile(Collections.emptySet(), true); | 315 | delegate.triggerCompile(Collections.emptySet(), true); |
316 | + }); | ||
317 | + } | ||
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