package org.opendaylight.lispflowmapping.clusterdao;
import java.util.EnumSet;
-import java.util.HashMap;
import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
protected static final Logger logger = LoggerFactory.getLogger(ClusterDAOService.class);
private IClusterContainerServices clusterContainerService = null;
- private ConcurrentMap<Object, Map<String, Object>> data;
+ private ConcurrentMap<Object, ConcurrentMap<String, Object>> data;
private final String CACHE_NAME = "mappingServiceCache";
private TimeUnit timeUnit = TimeUnit.SECONDS;
private int recordTimeOut = 240;
return;
}
logger.trace("Retrieving cache for ClusterDAOService");
- data = (ConcurrentMap<Object, Map<String, Object>>) this.clusterContainerService.getCache(CACHE_NAME);
+ data = (ConcurrentMap<Object, ConcurrentMap<String, Object>>) this.clusterContainerService.getCache(CACHE_NAME);
if (data == null) {
logger.warn("Cache couldn't be retrieved for ClusterDAOService");
}
}
public void getAll(IRowVisitor visitor) {
- for (Map.Entry<Object, Map<String, Object>> keyEntry : data.entrySet()) {
+ for (ConcurrentMap.Entry<Object, ConcurrentMap<String, Object>> keyEntry : data.entrySet()) {
for (Map.Entry<String, Object> valueEntry : keyEntry.getValue().entrySet()) {
visitor.visitRow(keyEntry.getKey(), valueEntry.getKey(), valueEntry.getValue());
}
public void put(Object key, MappingEntry<?>... values) {
if (!data.containsKey(key)) {
- data.put(key, new HashMap<String, Object>());
+ data.put(key, new ConcurrentHashMap<String, Object>());
}
for (MappingEntry<?> entry : values) {
data.get(key).put(entry.getKey(), entry.getValue());
LispAFIAddress rloc2Value = asIPAfiAddress("4.3.2.2");
MapReply mapReply = sendMapRegisterTwiceWithDiffrentValues(eid, rloc1Value, rloc2Value);
assertEquals(2, mapReply.getEidToLocatorRecord().get(0).getLocatorRecord().size());
- assertEquals(LispAFIConvertor.toContainer(rloc1Value), mapReply.getEidToLocatorRecord().get(0).getLocatorRecord().get(0)
- .getLispAddressContainer());
- assertEquals(LispAFIConvertor.toContainer(rloc2Value), mapReply.getEidToLocatorRecord().get(0).getLocatorRecord().get(1)
- .getLispAddressContainer());
+ LispAddressContainer rloc1ReturnValueContainer = mapReply.getEidToLocatorRecord().get(0).getLocatorRecord().get(0).getLispAddressContainer();
+ LispAddressContainer rloc2ReturnValueContainer = mapReply.getEidToLocatorRecord().get(0).getLocatorRecord().get(1).getLispAddressContainer();
+ assertTrue((LispAFIConvertor.toContainer(rloc1Value).equals(rloc1ReturnValueContainer) &&
+ LispAFIConvertor.toContainer(rloc2Value).equals(rloc2ReturnValueContainer)) ||
+ (LispAFIConvertor.toContainer(rloc1Value).equals(rloc2ReturnValueContainer) &&
+ LispAFIConvertor.toContainer(rloc2Value).equals(rloc1ReturnValueContainer)));
}
private MapReply sendMapRegisterTwiceWithDiffrentValues(LispAFIAddress eid, LispAFIAddress rloc1, LispAFIAddress rloc2)