Brian O'Connor

ONOS-2979 ObjectiveTracker improvements

- Removing unused intent map
- Passing copy of intents to recompile to prevent ConcurrentModificationException
- Dropping Host Updated events (only act on ADDED, MOVED, and REMOVED)

Change-Id: I86520c45f51e74c21cc47aab94a746c0b4135f93
......@@ -16,8 +16,8 @@
package org.onosproject.net.intent.impl;
import com.google.common.collect.HashMultimap;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.common.collect.SetMultimap;
import org.apache.felix.scr.annotations.Activate;
import org.apache.felix.scr.annotations.Component;
......@@ -61,7 +61,6 @@ import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
......@@ -91,8 +90,6 @@ public class ObjectiveTracker implements ObjectiveTrackerService {
private final Logger log = getLogger(getClass());
private final ConcurrentMap<Key, Intent> intents = Maps.newConcurrentMap();
private final SetMultimap<LinkKey, Key> intentsByLink =
//TODO this could be slow as a point of synchronization
synchronizedSetMultimap(HashMultimap.<LinkKey, Key>create());
......@@ -378,7 +375,7 @@ public class ObjectiveTracker implements ObjectiveTrackerService {
}
// TODO should we recompile on available==true?
delegate.triggerCompile(intentsByDevice.get(id), available);
delegate.triggerCompile(ImmutableSet.copyOf(intentsByDevice.get(id)), available);
}
}
......@@ -415,7 +412,17 @@ public class ObjectiveTracker implements ObjectiveTrackerService {
@Override
public void event(HostEvent event) {
HostId id = event.subject().id();
switch (event.type()) {
case HOST_ADDED:
case HOST_MOVED:
case HOST_REMOVED:
executorService.execute(new DeviceAvailabilityHandler(id, false));
break;
case HOST_UPDATED:
default:
// DO NOTHING
break;
}
}
}
......