From: Robert Varga Date: Thu, 21 Feb 2019 16:14:32 +0000 (+0100) Subject: Migrate to MD-SAL APIs X-Git-Tag: release/sodium~10 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=refs%2Fchanges%2F24%2F80524%2F4;p=lispflowmapping.git Migrate to MD-SAL APIs Migrate to use MD-SAL APIs instead of deprecated Controller APIs. Change-Id: I642d319c8cddf958ac44cad328d99fdd1e1270e9 Signed-off-by: Robert Varga --- diff --git a/commons/parent/pom.xml b/commons/parent/pom.xml index e3135dc0e..4f9d38eee 100644 --- a/commons/parent/pom.xml +++ b/commons/parent/pom.xml @@ -74,11 +74,6 @@ netty-event-executor-config ${config.version} - - org.opendaylight.controller - sal-binding-api - ${mdsal.version} - org.opendaylight.controller sal-binding-broker-impl diff --git a/mappingservice/dsbackend/pom.xml b/mappingservice/dsbackend/pom.xml index a5dbbcf45..e6d162c44 100644 --- a/mappingservice/dsbackend/pom.xml +++ b/mappingservice/dsbackend/pom.xml @@ -36,9 +36,8 @@ junit-addons - org.opendaylight.controller - sal-binding-api - 1.10.0-SNAPSHOT + org.opendaylight.mdsal + mdsal-binding-api javax.xml.bind diff --git a/mappingservice/dsbackend/src/main/java/org/opendaylight/lispflowmapping/dsbackend/DataStoreBackEnd.java b/mappingservice/dsbackend/src/main/java/org/opendaylight/lispflowmapping/dsbackend/DataStoreBackEnd.java index aa29a0604..52aa77b81 100644 --- a/mappingservice/dsbackend/src/main/java/org/opendaylight/lispflowmapping/dsbackend/DataStoreBackEnd.java +++ b/mappingservice/dsbackend/src/main/java/org/opendaylight/lispflowmapping/dsbackend/DataStoreBackEnd.java @@ -7,25 +7,24 @@ */ package org.opendaylight.lispflowmapping.dsbackend; -import com.google.common.base.Optional; import com.google.common.base.Preconditions; -import com.google.common.util.concurrent.CheckedFuture; import com.google.common.util.concurrent.FutureCallback; -import com.google.common.util.concurrent.Futures; +import com.google.common.util.concurrent.ListenableFuture; import com.google.common.util.concurrent.MoreExecutors; import java.util.ArrayList; import java.util.Date; import java.util.List; -import org.opendaylight.controller.md.sal.binding.api.BindingTransactionChain; -import org.opendaylight.controller.md.sal.binding.api.DataBroker; -import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction; -import org.opendaylight.controller.md.sal.binding.api.WriteTransaction; -import org.opendaylight.controller.md.sal.common.api.data.AsyncTransaction; -import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; -import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException; -import org.opendaylight.controller.md.sal.common.api.data.TransactionChain; -import org.opendaylight.controller.md.sal.common.api.data.TransactionChainListener; +import java.util.Optional; +import java.util.concurrent.ExecutionException; import org.opendaylight.lispflowmapping.lisp.util.LispAddressStringifier; +import org.opendaylight.mdsal.binding.api.DataBroker; +import org.opendaylight.mdsal.binding.api.ReadTransaction; +import org.opendaylight.mdsal.binding.api.Transaction; +import org.opendaylight.mdsal.binding.api.TransactionChain; +import org.opendaylight.mdsal.binding.api.TransactionChainListener; +import org.opendaylight.mdsal.binding.api.WriteTransaction; +import org.opendaylight.mdsal.common.api.CommitInfo; +import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.XtrId; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mappingservice.rev150906.MappingDatabase; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mappingservice.rev150906.MappingOrigin; @@ -51,8 +50,8 @@ public class DataStoreBackEnd implements TransactionChainListener { InstanceIdentifier.create(MappingDatabase.class); private static final InstanceIdentifier LAST_UPDATED = InstanceIdentifier.create(MappingDatabase.class).child(LastUpdated.class); - private DataBroker broker; - private BindingTransactionChain txChain; + private final DataBroker broker; + private TransactionChain txChain; public DataStoreBackEnd(DataBroker broker) { this.broker = broker; @@ -61,7 +60,7 @@ public class DataStoreBackEnd implements TransactionChainListener { public void createTransactionChain() { LOG.debug("Creating DataStoreBackEnd transaction chain..."); - txChain = broker.createTransactionChain(this); + txChain = broker.createMergingTransactionChain(this); } public void addAuthenticationKey(AuthenticationKey authenticationKey) { @@ -193,7 +192,7 @@ public class DataStoreBackEnd implements TransactionChainListener { public List getAllMappings(LogicalDatastoreType logicalDataStore) { LOG.debug("MD-SAL: Get all mappings from {} datastore", logicalDataStore == LogicalDatastoreType.CONFIGURATION ? "config" : "operational"); - List mappings = new ArrayList(); + List mappings = new ArrayList<>(); MappingDatabase mdb = readTransaction(DATABASE_ROOT, logicalDataStore); if (mdb != null && mdb.getVirtualNetworkIdentifier() != null) { @@ -210,7 +209,7 @@ public class DataStoreBackEnd implements TransactionChainListener { public List getAllAuthenticationKeys() { LOG.debug("MD-SAL: Get all authentication keys from datastore"); - List authKeys = new ArrayList(); + List authKeys = new ArrayList<>(); MappingDatabase mdb = readTransaction(DATABASE_ROOT, LogicalDatastoreType.CONFIGURATION); if (mdb != null && mdb.getVirtualNetworkIdentifier() != null) { @@ -260,11 +259,13 @@ public class DataStoreBackEnd implements TransactionChainListener { InstanceIdentifier addIID, U data, LogicalDatastoreType logicalDatastoreType, String errMsg) { WriteTransaction writeTx = txChain.newWriteOnlyTransaction(); writeTx.put(logicalDatastoreType, addIID, data, true); - Futures.addCallback(writeTx.submit(), new FutureCallback() { + writeTx.commit().addCallback(new FutureCallback() { - public void onSuccess(Void result) { + @Override + public void onSuccess(CommitInfo result) { } + @Override public void onFailure(Throwable throwable) { LOG.error("Transaction failed:", throwable); } @@ -273,17 +274,18 @@ public class DataStoreBackEnd implements TransactionChainListener { private U readTransaction( InstanceIdentifier readIID, LogicalDatastoreType logicalDatastoreType) { - ReadOnlyTransaction readTx = txChain.newReadOnlyTransaction(); - CheckedFuture, ReadFailedException> readFuture = readTx.read(logicalDatastoreType, readIID); - readTx.close(); + final ListenableFuture> readFuture; + try (ReadTransaction readTx = txChain.newReadOnlyTransaction()) { + readFuture = readTx.read(logicalDatastoreType, readIID); + } try { - Optional optionalDataObject = readFuture.checkedGet(); + Optional optionalDataObject = readFuture.get(); if (optionalDataObject != null && optionalDataObject.isPresent()) { return optionalDataObject.get(); } else { LOG.debug("{}: Failed to read", Thread.currentThread().getStackTrace()[1]); } - } catch (ReadFailedException e) { + } catch (InterruptedException | ExecutionException e) { LOG.warn("Failed to ....", e); } return null; @@ -294,24 +296,26 @@ public class DataStoreBackEnd implements TransactionChainListener { WriteTransaction writeTx = txChain.newWriteOnlyTransaction(); writeTx.delete(logicalDatastoreType, deleteIID); - Futures.addCallback(writeTx.submit(), new FutureCallback() { - - public void onSuccess(Void result) { + writeTx.commit().addCallback(new FutureCallback() { + @Override + public void onSuccess(CommitInfo result) { } + @Override public void onFailure(Throwable throwable) { LOG.error("Transaction failed:", throwable); } }, MoreExecutors.directExecutor()); } - public void onTransactionChainFailed(TransactionChain chain, AsyncTransaction transaction, - Throwable cause) { + @Override + public void onTransactionChainFailed(TransactionChain chain, Transaction transaction, Throwable cause) { LOG.error("Broken chain {} in DataStoreBackEnd, transaction {}, cause {}", chain, transaction.getIdentifier(), cause); } - public void onTransactionChainSuccessful(TransactionChain chain) { + @Override + public void onTransactionChainSuccessful(TransactionChain chain) { LOG.info("DataStoreBackEnd closed successfully, chain {}", chain); } diff --git a/mappingservice/dsbackend/src/test/java/org/opendaylight/lispflowmapping/dsbackend/DataStoreBackEndTest.java b/mappingservice/dsbackend/src/test/java/org/opendaylight/lispflowmapping/dsbackend/DataStoreBackEndTest.java index 6baf180fd..0659bcfc2 100644 --- a/mappingservice/dsbackend/src/test/java/org/opendaylight/lispflowmapping/dsbackend/DataStoreBackEndTest.java +++ b/mappingservice/dsbackend/src/test/java/org/opendaylight/lispflowmapping/dsbackend/DataStoreBackEndTest.java @@ -9,11 +9,10 @@ package org.opendaylight.lispflowmapping.dsbackend; import static org.junit.Assert.assertEquals; -import com.google.common.base.Optional; import com.google.common.collect.Lists; -import com.google.common.util.concurrent.CheckedFuture; -import com.google.common.util.concurrent.Futures; +import com.google.common.util.concurrent.FluentFuture; import java.util.ArrayList; +import java.util.Optional; import javax.xml.bind.DatatypeConverter; import org.junit.Before; import org.junit.Test; @@ -23,16 +22,14 @@ import org.mockito.Captor; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.junit.MockitoJUnitRunner; -import org.opendaylight.controller.md.sal.binding.api.BindingTransactionChain; -import org.opendaylight.controller.md.sal.binding.api.DataBroker; -import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction; -import org.opendaylight.controller.md.sal.binding.api.WriteTransaction; -import org.opendaylight.controller.md.sal.common.api.data.AsyncTransaction; -import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; -import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException; -import org.opendaylight.controller.md.sal.common.api.data.TransactionChain; -import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException; import org.opendaylight.lispflowmapping.lisp.util.LispAddressUtil; +import org.opendaylight.mdsal.binding.api.DataBroker; +import org.opendaylight.mdsal.binding.api.ReadTransaction; +import org.opendaylight.mdsal.binding.api.Transaction; +import org.opendaylight.mdsal.binding.api.TransactionChain; +import org.opendaylight.mdsal.binding.api.WriteTransaction; +import org.opendaylight.mdsal.common.api.CommitInfo; +import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.XtrId; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.eid.container.Eid; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.mapping.authkey.container.MappingAuthkeyBuilder; @@ -54,6 +51,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mappingservice.rev15090 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mappingservice.rev150906.db.instance.mapping.XtrIdMappingKey; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mappingservice.rev150906.mapping.database.VirtualNetworkIdentifier; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mappingservice.rev150906.mapping.database.VirtualNetworkIdentifierBuilder; +import org.opendaylight.yangtools.util.concurrent.FluentFutures; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.powermock.api.mockito.PowerMockito; import org.powermock.core.classloader.annotations.PowerMockIgnore; @@ -72,7 +70,7 @@ public class DataStoreBackEndTest { @Captor private static ArgumentCaptor> iidCaptorAuthKey; @Captor private static ArgumentCaptor> iidCaptorMapping; @Captor private static ArgumentCaptor> iidCaptorXtrIdMapping; - @Mock private static BindingTransactionChain txChainMock; + @Mock private static TransactionChain txChainMock; @Mock private static WriteTransaction wTxMock; private static DataStoreBackEnd dataStoreBackEnd; @@ -98,12 +96,12 @@ public class DataStoreBackEndTest { PowerMockito.when(LoggerFactory.getLogger(DataStoreBackEnd.class)) .thenReturn(logMock); Mockito.when(logMock.isDebugEnabled()).thenReturn(true); - Mockito.when(brokerMock.createTransactionChain(Mockito.any(DataStoreBackEnd.class))).thenReturn(txChainMock); + Mockito.when(brokerMock.createMergingTransactionChain(Mockito.any(DataStoreBackEnd.class))) + .thenReturn(txChainMock); dataStoreBackEnd = PowerMockito.spy(new DataStoreBackEnd(brokerMock)); Mockito.when(txChainMock.newWriteOnlyTransaction()).thenReturn(wTxMock); - Mockito.when(wTxMock.submit()) - .thenReturn(Futures.immediateCheckedFuture(null)); + Mockito.doReturn(CommitInfo.emptyFluentFuture()).when(wTxMock).commit(); } /** @@ -256,43 +254,31 @@ public class DataStoreBackEndTest { * Tests {@link DataStoreBackEnd#getAllMappings} method. */ @Test - @SuppressWarnings("unchecked") - public void getAllMappingsTest() throws ReadFailedException { - final ReadOnlyTransaction rTxMock = Mockito.mock(ReadOnlyTransaction.class); - final CheckedFuture, ReadFailedException> readFutureMock - = Mockito.mock(CheckedFuture.class); - final Optional optionalMock = Mockito.mock(Optional.class); + public void getAllMappingsTest() { + final ReadTransaction rTxMock = Mockito.mock(ReadTransaction.class); + final FluentFuture> readFutureMock = FluentFutures.immediateFluentFuture( + Optional.of(getDefaultMappingDatabase().build())); Mockito.when(txChainMock.newReadOnlyTransaction()).thenReturn(rTxMock); Mockito.when(rTxMock.read(LogicalDatastoreType.CONFIGURATION, DATABASE_ROOT)).thenReturn(readFutureMock); Mockito.when(rTxMock.read(LogicalDatastoreType.OPERATIONAL, DATABASE_ROOT)).thenReturn(readFutureMock); - Mockito.when(readFutureMock.checkedGet()).thenReturn(optionalMock); - Mockito.when(optionalMock.isPresent()).thenReturn(true); - Mockito.when(optionalMock.get()).thenReturn(getDefaultMappingDatabase().build()); assertEquals(8, dataStoreBackEnd.getAllMappings().size()); - Mockito.verify(optionalMock, Mockito.times(2)).get(); } /** * Tests {@link DataStoreBackEnd#getAllAuthenticationKeys} method. */ @Test - @SuppressWarnings("unchecked") - public void getAllAuthenticationKeysTest() throws ReadFailedException { - final ReadOnlyTransaction rTxMock = Mockito.mock(ReadOnlyTransaction.class); - final CheckedFuture, ReadFailedException> readFutureMock - = Mockito.mock(CheckedFuture.class); - final Optional optionalMock = Mockito.mock(Optional.class); + public void getAllAuthenticationKeysTest() { + final ReadTransaction rTxMock = Mockito.mock(ReadTransaction.class); + final FluentFuture> readFutureMock = FluentFutures.immediateFluentFuture( + Optional.of(getDefaultMappingDatabase().build())); Mockito.when(txChainMock.newReadOnlyTransaction()).thenReturn(rTxMock); Mockito.when(rTxMock.read(LogicalDatastoreType.CONFIGURATION, DATABASE_ROOT)).thenReturn(readFutureMock); - Mockito.when(readFutureMock.checkedGet()).thenReturn(optionalMock); - Mockito.when(optionalMock.isPresent()).thenReturn(true); - Mockito.when(optionalMock.get()).thenReturn(getDefaultMappingDatabase().build()); assertEquals(4, dataStoreBackEnd.getAllAuthenticationKeys().size()); - Mockito.verify(optionalMock).get(); } /** @@ -310,7 +296,7 @@ public class DataStoreBackEndTest { */ @Test public void onTransactionChainFailedTest() { - AsyncTransaction asyncTransactionMock = Mockito.mock(AsyncTransaction.class); + Transaction asyncTransactionMock = Mockito.mock(Transaction.class); Mockito.when(asyncTransactionMock.getIdentifier()).thenReturn(new Object()); dataStoreBackEnd.onTransactionChainFailed(Mockito.mock(TransactionChain.class), asyncTransactionMock, Mockito.mock(Throwable.class)); diff --git a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/LispMappingService.java b/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/LispMappingService.java index 1fcfe00c9..c14f74f7f 100644 --- a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/LispMappingService.java +++ b/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/LispMappingService.java @@ -13,7 +13,6 @@ import com.google.common.util.concurrent.ListenableFuture; import java.util.List; import org.apache.commons.lang3.tuple.MutablePair; import org.apache.commons.lang3.tuple.Pair; -import org.opendaylight.controller.md.sal.binding.api.NotificationService; import org.opendaylight.lispflowmapping.config.ConfigIni; import org.opendaylight.lispflowmapping.implementation.lisp.MapResolver; import org.opendaylight.lispflowmapping.implementation.lisp.MapServer; @@ -27,6 +26,7 @@ import org.opendaylight.lispflowmapping.interfaces.lisp.ISmrNotificationListener import org.opendaylight.lispflowmapping.interfaces.mappingservice.IMappingService; import org.opendaylight.lispflowmapping.lisp.type.LispMessage; import org.opendaylight.lispflowmapping.lisp.util.LispAddressStringifier; +import org.opendaylight.mdsal.binding.api.NotificationService; import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonService; import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider; import org.opendaylight.mdsal.singleton.common.api.ServiceGroupIdentifier; @@ -73,11 +73,9 @@ public class LispMappingService implements IFlowMapping, IMapRequestResultHandle private volatile boolean smr = ConfigIni.getInstance().smrIsSet(); private volatile String elpPolicy = ConfigIni.getInstance().getElpPolicy(); - private ThreadLocal tlsMapReply = new ThreadLocal(); - private ThreadLocal>> tlsMapNotify = - new ThreadLocal>>(); - private ThreadLocal> tlsMapRequest = - new ThreadLocal>(); + private ThreadLocal tlsMapReply = new ThreadLocal<>(); + private ThreadLocal>> tlsMapNotify = new ThreadLocal<>(); + private ThreadLocal> tlsMapRequest = new ThreadLocal<>(); private final OdlLispSbService lispSB; private IMapResolverAsync mapResolver; @@ -101,6 +99,7 @@ public class LispMappingService implements IFlowMapping, IMapRequestResultHandle return this.smr; } + @Override public void setShouldUseSmr(boolean shouldUseSmr) { this.smr = shouldUseSmr; if (mapServer != null) { @@ -130,6 +129,7 @@ public class LispMappingService implements IFlowMapping, IMapRequestResultHandle mapResolver.setSmrNotificationListener((ISmrNotificationListener) mapServer); } + @Override public MapReply handleMapRequest(MapRequest request) { if (LOG.isDebugEnabled()) { LOG.debug("LISP: Retrieving mapping for {}", @@ -151,6 +151,7 @@ public class LispMappingService implements IFlowMapping, IMapRequestResultHandle } } + @Override public Pair> handleMapRegister(MapRegister mapRegister) { if (LOG.isDebugEnabled()) { LOG.debug("LISP: Adding mapping for {}", @@ -201,7 +202,7 @@ public class LispMappingService implements IFlowMapping, IMapRequestResultHandle MapReply mapReply = handleMapRequest(mapRequestNotification.getMapRequest()); if (mapReply != null) { SendMapReplyInputBuilder smrib = new SendMapReplyInputBuilder(); - smrib.setMapReply((new MapReplyBuilder(mapReply).build())); + smrib.setMapReply(new MapReplyBuilder(mapReply).build()); smrib.setTransportAddress(mapRequestNotification.getTransportAddress()); getLispSB().sendMapReply(smrib.build()); } else { @@ -253,7 +254,7 @@ public class LispMappingService implements IFlowMapping, IMapRequestResultHandle @Override public void handleMapNotify(MapNotify notify, List rlocs) { - tlsMapNotify.set(new MutablePair>(notify, rlocs)); + tlsMapNotify.set(new MutablePair<>(notify, rlocs)); } @Override @@ -273,7 +274,7 @@ public class LispMappingService implements IFlowMapping, IMapRequestResultHandle @Override public void handleNonProxyMapRequest(MapRequest mapRequest, TransportAddress transportAddress) { - tlsMapRequest.set(new MutablePair(mapRequest, transportAddress)); + tlsMapRequest.set(new MutablePair<>(mapRequest, transportAddress)); } private void destroy() { diff --git a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/MappingService.java b/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/MappingService.java index fbfb83774..e8ac91bdf 100644 --- a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/MappingService.java +++ b/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/MappingService.java @@ -13,9 +13,6 @@ import com.google.common.util.concurrent.ListenableFuture; import java.util.ArrayList; import java.util.List; import java.util.Set; - -import org.opendaylight.controller.md.sal.binding.api.DataBroker; -import org.opendaylight.controller.md.sal.binding.api.NotificationPublishService; import org.opendaylight.lispflowmapping.config.ConfigIni; import org.opendaylight.lispflowmapping.dsbackend.DataStoreBackEnd; import org.opendaylight.lispflowmapping.implementation.mdsal.AuthenticationKeyDataListener; @@ -27,6 +24,8 @@ import org.opendaylight.lispflowmapping.interfaces.dao.Subscriber; import org.opendaylight.lispflowmapping.interfaces.mappingservice.IMappingService; import org.opendaylight.lispflowmapping.lisp.type.MappingData; import org.opendaylight.lispflowmapping.lisp.util.LispAddressUtil; +import org.opendaylight.mdsal.binding.api.DataBroker; +import org.opendaylight.mdsal.binding.api.NotificationPublishService; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.SiteId; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.XtrId; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.eid.container.Eid; @@ -123,8 +122,8 @@ public class MappingService implements OdlMappingserviceService, IMappingService private final NotificationPublishService notificationPublishService; private boolean mappingMergePolicy = ConfigIni.getInstance().mappingMergeIsSet(); - private boolean notificationPolicy = ConfigIni.getInstance().smrIsSet(); - private boolean iterateMask = true; + private final boolean notificationPolicy = ConfigIni.getInstance().smrIsSet(); + private final boolean iterateMask = true; private boolean isMaster = false; public MappingService(final DataBroker broker, @@ -576,7 +575,7 @@ public class MappingService implements OdlMappingserviceService, IMappingService } if (LispAddressUtil.addressNeedsConversionFromBinary(originalRecord.getEid().getAddress()) - || (originalLocators != null && convertedLocators != null)) { + || originalLocators != null && convertedLocators != null) { MappingRecordBuilder mrb = new MappingRecordBuilder(originalRecord); mrb.setEid(LispAddressUtil.convertFromBinary(originalRecord.getEid())); if (convertedLocators != null) { @@ -594,7 +593,7 @@ public class MappingService implements OdlMappingserviceService, IMappingService LocatorRecordBuilder lrb = new LocatorRecordBuilder(record); lrb.setRloc(LispAddressUtil.convertFromBinary(record.getRloc())); if (convertedLocators == null) { - convertedLocators = new ArrayList(); + convertedLocators = new ArrayList<>(); } convertedLocators.add(lrb.build()); } diff --git a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/MappingSystem.java b/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/MappingSystem.java index 6b813e4cb..8ce1e77c2 100644 --- a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/MappingSystem.java +++ b/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/MappingSystem.java @@ -19,8 +19,6 @@ import java.util.List; import java.util.Map; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; -import org.opendaylight.controller.md.sal.binding.api.NotificationPublishService; -import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; import org.opendaylight.lispflowmapping.config.ConfigIni; import org.opendaylight.lispflowmapping.dsbackend.DataStoreBackEnd; import org.opendaylight.lispflowmapping.implementation.timebucket.implementation.TimeBucketMappingTimeoutService; @@ -48,6 +46,8 @@ import org.opendaylight.lispflowmapping.mapcache.AuthKeyDb; import org.opendaylight.lispflowmapping.mapcache.MultiTableMapCache; import org.opendaylight.lispflowmapping.mapcache.SimpleMapCache; import org.opendaylight.lispflowmapping.mapcache.lisp.LispMapCacheStringifier; +import org.opendaylight.mdsal.binding.api.NotificationPublishService; +import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.SimpleAddress; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.ExplicitLocatorPath; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.Ipv4; @@ -88,19 +88,19 @@ public class MappingSystem implements IMappingSystem { private static final String AUTH_KEY_TABLE = "authentication"; //private static final int TTL_RLOC_TIMED_OUT = 1; private static final int TTL_NO_RLOC_KNOWN = ConfigIni.getInstance().getNegativeMappingTTL(); - private NotificationPublishService notificationPublishService; + private final NotificationPublishService notificationPublishService; private boolean mappingMerge; - private ILispDAO dao; + private final ILispDAO dao; private ILispDAO sdao; private ILispMapCache smc; private IMapCache pmc; - private ConcurrentHashMap> subscriberdb = new ConcurrentHashMap<>(); + private final ConcurrentHashMap> subscriberdb = new ConcurrentHashMap<>(); private IAuthKeyDb akdb; private final EnumMap tableMap = new EnumMap<>(MappingOrigin.class); private DataStoreBackEnd dsbe; private boolean isMaster = false; - private ISouthBoundMappingTimeoutService sbMappingTimeoutService; + private final ISouthBoundMappingTimeoutService sbMappingTimeoutService; public MappingSystem(ILispDAO dao, boolean iterateMask, NotificationPublishService nps, boolean mappingMerge) { this.dao = dao; @@ -210,7 +210,7 @@ public class MappingSystem implements IMappingSystem { } private static MappingRecord getMappingRecord(MappingData mappingData) { - return (mappingData != null) ? mappingData.getRecord() : null; + return mappingData != null ? mappingData.getRecord() : null; } @SuppressWarnings("unchecked") @@ -329,6 +329,7 @@ public class MappingSystem implements IMappingSystem { * Since this method is only called when there is a hit in the southbound Map-Register cache, and that cache is * not used when merge is on, it's OK to ignore the effects of timestamp changes on merging for now. */ + @Override public void refreshMappingRegistration(Eid key, XtrId xtrId, Long timestamp) { sbMappingTimeoutService.removeExpiredMappings(); diff --git a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/lisp/MapServer.java b/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/lisp/MapServer.java index 5dd1c36f6..6ac847b11 100644 --- a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/lisp/MapServer.java +++ b/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/lisp/MapServer.java @@ -28,7 +28,6 @@ import java.util.concurrent.ScheduledFuture; import java.util.concurrent.ThreadFactory; import java.util.concurrent.TimeUnit; import org.apache.commons.lang3.BooleanUtils; -import org.opendaylight.controller.md.sal.binding.api.NotificationService; import org.opendaylight.lispflowmapping.config.ConfigIni; import org.opendaylight.lispflowmapping.implementation.util.LoggingUtil; import org.opendaylight.lispflowmapping.implementation.util.MSNotificationInputUtil; @@ -49,6 +48,7 @@ import org.opendaylight.lispflowmapping.lisp.util.MapRequestUtil; import org.opendaylight.lispflowmapping.lisp.util.MappingRecordUtil; import org.opendaylight.lispflowmapping.lisp.util.MaskUtil; import org.opendaylight.lispflowmapping.lisp.util.SourceDestKeyHelper; +import org.opendaylight.mdsal.binding.api.NotificationService; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.Address; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.SourceDestKey; @@ -82,12 +82,12 @@ public class MapServer implements IMapServerAsync, OdlMappingserviceListener, IS private static final Logger LOG = LoggerFactory.getLogger(MapServer.class); private static final byte[] ALL_ZEROES_XTR_ID = new byte[] {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ,0}; - private IMappingService mapService; + private final IMappingService mapService; private boolean subscriptionService; - private IMapNotifyHandler notifyHandler; - private NotificationService notificationService; + private final IMapNotifyHandler notifyHandler; + private final NotificationService notificationService; private ListenerRegistration mapServerListenerRegistration; - private SmrScheduler scheduler; + private final SmrScheduler scheduler; public MapServer(IMappingService mapService, boolean subscriptionService, IMapNotifyHandler notifyHandler, NotificationService notificationService) { @@ -107,6 +107,7 @@ public class MapServer implements IMapServerAsync, OdlMappingserviceListener, IS this.subscriptionService = subscriptionService; } + @Override @SuppressWarnings("unchecked") public void handleMapRegister(MapRegister mapRegister) { boolean mappingUpdated = false; @@ -145,8 +146,8 @@ public class MapServer implements IMapServerAsync, OdlMappingserviceListener, IS MapNotifyBuilder builder = new MapNotifyBuilder(); List rlocs = null; if (merge) { - Set notifyRlocs = new LinkedHashSet(); - List mergedMappings = new ArrayList(); + Set notifyRlocs = new LinkedHashSet<>(); + List mergedMappings = new ArrayList<>(); for (MappingRecordItem record : mapRegister.getMappingRecordItem()) { MappingRecord mapping = record.getMappingRecord(); MappingRecord currentRecord = getMappingRecord(mapService.getMapping(MappingOrigin.Southbound, @@ -180,7 +181,7 @@ public class MapServer implements IMapServerAsync, OdlMappingserviceListener, IS } private static List getTransportAddresses(Set addresses) { - List rlocs = new ArrayList(); + List rlocs = new ArrayList<>(); for (IpAddressBinary address : addresses) { TransportAddressBuilder tab = new TransportAddressBuilder(); tab.setIpAddress(address); @@ -191,11 +192,11 @@ public class MapServer implements IMapServerAsync, OdlMappingserviceListener, IS } private static SiteId getSiteId(MapRegister mapRegister) { - return (mapRegister.getSiteId() != null) ? new SiteId(mapRegister.getSiteId()) : null; + return mapRegister.getSiteId() != null ? new SiteId(mapRegister.getSiteId()) : null; } private static MappingRecord getMappingRecord(MappingData mappingData) { - return (mappingData != null) ? mappingData.getRecord() : null; + return mappingData != null ? mappingData.getRecord() : null; } @Override @@ -387,8 +388,8 @@ public class MapServer implements IMapServerAsync, OdlMappingserviceListener, IS } private final class CancellableRunnable implements Runnable { - private MapRequestBuilder mrb; - private Subscriber subscriber; + private final MapRequestBuilder mrb; + private final Subscriber subscriber; private int executionCount = 1; CancellableRunnable(MapRequestBuilder mrb, Subscriber subscriber) { diff --git a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/mdsal/AbstractDataListener.java b/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/mdsal/AbstractDataListener.java index 09d9b5908..40ba2704f 100644 --- a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/mdsal/AbstractDataListener.java +++ b/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/mdsal/AbstractDataListener.java @@ -7,10 +7,10 @@ */ package org.opendaylight.lispflowmapping.implementation.mdsal; -import org.opendaylight.controller.md.sal.binding.api.ClusteredDataTreeChangeListener; -import org.opendaylight.controller.md.sal.binding.api.DataBroker; -import org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier; -import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; +import org.opendaylight.mdsal.binding.api.ClusteredDataTreeChangeListener; +import org.opendaylight.mdsal.binding.api.DataBroker; +import org.opendaylight.mdsal.binding.api.DataTreeIdentifier; +import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.yangtools.concepts.ListenerRegistration; import org.opendaylight.yangtools.yang.binding.DataObject; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; @@ -26,9 +26,9 @@ public abstract class AbstractDataListener implements Clus private ListenerRegistration> operRegistration; void registerDataChangeListener() { - final DataTreeIdentifier configDataTreeIdentifier = new DataTreeIdentifier<>( + final DataTreeIdentifier configDataTreeIdentifier = DataTreeIdentifier.create( LogicalDatastoreType.CONFIGURATION, path); - final DataTreeIdentifier operDataTreeIdentifier = new DataTreeIdentifier<>( + final DataTreeIdentifier operDataTreeIdentifier = DataTreeIdentifier.create( LogicalDatastoreType.OPERATIONAL, path); configRegistration = broker.registerDataTreeChangeListener(configDataTreeIdentifier, this); diff --git a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/mdsal/AuthenticationKeyDataListener.java b/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/mdsal/AuthenticationKeyDataListener.java index afa59841f..17a8c21ee 100644 --- a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/mdsal/AuthenticationKeyDataListener.java +++ b/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/mdsal/AuthenticationKeyDataListener.java @@ -8,12 +8,12 @@ package org.opendaylight.lispflowmapping.implementation.mdsal; import java.util.Collection; -import org.opendaylight.controller.md.sal.binding.api.DataBroker; -import org.opendaylight.controller.md.sal.binding.api.DataObjectModification; -import org.opendaylight.controller.md.sal.binding.api.DataObjectModification.ModificationType; -import org.opendaylight.controller.md.sal.binding.api.DataTreeModification; import org.opendaylight.lispflowmapping.interfaces.mapcache.IMappingSystem; import org.opendaylight.lispflowmapping.lisp.util.LispAddressUtil; +import org.opendaylight.mdsal.binding.api.DataBroker; +import org.opendaylight.mdsal.binding.api.DataObjectModification; +import org.opendaylight.mdsal.binding.api.DataObjectModification.ModificationType; +import org.opendaylight.mdsal.binding.api.DataTreeModification; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.eid.container.Eid; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mappingservice.rev150906.MappingDatabase; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mappingservice.rev150906.db.instance.AuthenticationKey; diff --git a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/mdsal/MappingDataListener.java b/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/mdsal/MappingDataListener.java index 04453fa50..1f7f9abea 100644 --- a/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/mdsal/MappingDataListener.java +++ b/mappingservice/implementation/src/main/java/org/opendaylight/lispflowmapping/implementation/mdsal/MappingDataListener.java @@ -10,14 +10,14 @@ package org.opendaylight.lispflowmapping.implementation.mdsal; import java.util.ArrayList; import java.util.Collection; import java.util.List; -import org.opendaylight.controller.md.sal.binding.api.DataBroker; -import org.opendaylight.controller.md.sal.binding.api.DataObjectModification; -import org.opendaylight.controller.md.sal.binding.api.DataObjectModification.ModificationType; -import org.opendaylight.controller.md.sal.binding.api.DataTreeModification; -import org.opendaylight.controller.md.sal.binding.api.NotificationPublishService; import org.opendaylight.lispflowmapping.interfaces.mapcache.IMappingSystem; import org.opendaylight.lispflowmapping.lisp.type.MappingData; import org.opendaylight.lispflowmapping.lisp.util.LispAddressUtil; +import org.opendaylight.mdsal.binding.api.DataBroker; +import org.opendaylight.mdsal.binding.api.DataObjectModification; +import org.opendaylight.mdsal.binding.api.DataObjectModification.ModificationType; +import org.opendaylight.mdsal.binding.api.DataTreeModification; +import org.opendaylight.mdsal.binding.api.NotificationPublishService; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.eid.container.Eid; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.locatorrecords.LocatorRecord; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.locatorrecords.LocatorRecordBuilder; @@ -43,7 +43,7 @@ public class MappingDataListener extends AbstractDataListener { private static final Logger LOG = LoggerFactory.getLogger(MappingDataListener.class); private IMappingSystem mapSystem; private NotificationPublishService notificationPublishService; - private boolean isMaster = false; + private final boolean isMaster = false; public MappingDataListener(DataBroker broker, IMappingSystem msmr, NotificationPublishService nps) { setBroker(broker); @@ -131,7 +131,7 @@ public class MappingDataListener extends AbstractDataListener { } if (LispAddressUtil.addressNeedsConversionToBinary(originalRecord.getEid().getAddress()) - || (originalLocators != null && convertedLocators != null)) { + || originalLocators != null && convertedLocators != null) { MappingRecordBuilder mrb = new MappingRecordBuilder(originalRecord); mrb.setEid(LispAddressUtil.convertToBinary(originalRecord.getEid())); if (convertedLocators != null) { @@ -149,7 +149,7 @@ public class MappingDataListener extends AbstractDataListener { LocatorRecordBuilder lrb = new LocatorRecordBuilder(record); lrb.setRloc(LispAddressUtil.convertToBinary(record.getRloc())); if (convertedLocators == null) { - convertedLocators = new ArrayList(); + convertedLocators = new ArrayList<>(); } convertedLocators.add(lrb.build()); } diff --git a/mappingservice/implementation/src/main/resources/OSGI-INF/blueprint/mappingservice.xml b/mappingservice/implementation/src/main/resources/OSGI-INF/blueprint/mappingservice.xml index 738999171..22726bcfe 100644 --- a/mappingservice/implementation/src/main/resources/OSGI-INF/blueprint/mappingservice.xml +++ b/mappingservice/implementation/src/main/resources/OSGI-INF/blueprint/mappingservice.xml @@ -4,12 +4,11 @@ odl:use-default-for-reference-types="true"> + interface="org.opendaylight.mdsal.binding.api.DataBroker" /> + interface="org.opendaylight.mdsal.binding.api.NotificationPublishService" /> + interface="org.opendaylight.mdsal.binding.api.NotificationService" /> - \ No newline at end of file + diff --git a/mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/LispMappingServiceTest.java b/mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/LispMappingServiceTest.java index cffe326be..9ac5e42d6 100644 --- a/mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/LispMappingServiceTest.java +++ b/mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/LispMappingServiceTest.java @@ -24,12 +24,12 @@ import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.junit.MockitoJUnitRunner; -import org.opendaylight.controller.md.sal.binding.api.NotificationService; import org.opendaylight.lispflowmapping.interfaces.lisp.IMapResolverAsync; import org.opendaylight.lispflowmapping.interfaces.lisp.IMapServerAsync; import org.opendaylight.lispflowmapping.interfaces.mappingservice.IMappingService; import org.opendaylight.lispflowmapping.lisp.type.LispMessage; import org.opendaylight.lispflowmapping.lisp.util.LispAddressUtil; +import org.opendaylight.mdsal.binding.api.NotificationService; import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.inet.binary.types.rev160303.IpAddressBinary; @@ -394,6 +394,7 @@ public class LispMappingServiceTest { } class TransportAddressMatch implements ArgumentMatcher { + @Override public boolean matches(SendMapNotifyInput sendMapNotify) { final TransportAddress notifyTransportAddress = sendMapNotify.getTransportAddress(); return TRANSPORT_ADDRESS_1.equals(notifyTransportAddress) diff --git a/mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/MappingSystemTest.java b/mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/MappingSystemTest.java index 46cea2dd7..195448f7e 100644 --- a/mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/MappingSystemTest.java +++ b/mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/MappingSystemTest.java @@ -27,8 +27,6 @@ import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.junit.MockitoJUnitRunner; -import org.opendaylight.controller.md.sal.binding.api.NotificationPublishService; -import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; import org.opendaylight.lispflowmapping.config.ConfigIni; import org.opendaylight.lispflowmapping.dsbackend.DataStoreBackEnd; import org.opendaylight.lispflowmapping.implementation.util.MappingMergeUtil; @@ -41,6 +39,8 @@ import org.opendaylight.lispflowmapping.interfaces.mapcache.IMapCache; import org.opendaylight.lispflowmapping.interfaces.mappingservice.IMappingService; import org.opendaylight.lispflowmapping.lisp.type.MappingData; import org.opendaylight.lispflowmapping.lisp.util.LispAddressUtil; +import org.opendaylight.mdsal.binding.api.NotificationPublishService; +import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.ExplicitLocatorPathLcaf; @@ -259,7 +259,7 @@ public class MappingSystemTest { final MappingData mappingData = getDefaultMappingData(mappingRecord); Mockito.when(pmcMock.getMapping(EID_IPV4_SRC, EID_SERVICE_PATH)).thenReturn(mappingData); - final MappingData result = (MappingData) mappingSystem.getMapping(EID_IPV4_SRC, EID_SERVICE_PATH); + final MappingData result = mappingSystem.getMapping(EID_IPV4_SRC, EID_SERVICE_PATH); final Ipv4Binary ipv4Result = (Ipv4Binary) result.getRecord().getLocatorRecord().get(0).getRloc().getAddress(); assertTrue(Arrays .equals(InetAddress.getByName(IPV4_STRING_3).getAddress(), ipv4Result.getIpv4Binary().getValue())); diff --git a/mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/lisp/MapServerTest.java b/mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/lisp/MapServerTest.java index c38123234..461dadce8 100644 --- a/mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/lisp/MapServerTest.java +++ b/mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/lisp/MapServerTest.java @@ -27,7 +27,6 @@ import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.Spy; import org.mockito.junit.MockitoJUnitRunner; -import org.opendaylight.controller.md.sal.binding.api.NotificationService; import org.opendaylight.lispflowmapping.config.ConfigIni; import org.opendaylight.lispflowmapping.interfaces.dao.SubKeys; import org.opendaylight.lispflowmapping.interfaces.dao.Subscriber; @@ -37,6 +36,7 @@ import org.opendaylight.lispflowmapping.lisp.type.LispMessage; import org.opendaylight.lispflowmapping.lisp.type.MappingData; import org.opendaylight.lispflowmapping.lisp.util.LispAddressUtil; import org.opendaylight.lispflowmapping.lisp.util.SourceDestKeyHelper; +import org.opendaylight.mdsal.binding.api.NotificationService; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.inet.binary.types.rev160303.IpAddressBinary; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.inet.binary.types.rev160303.Ipv4AddressBinary; diff --git a/mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/lisp/MappingServiceTest.java b/mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/lisp/MappingServiceTest.java index 0f3ca539d..b3ebccbe1 100644 --- a/mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/lisp/MappingServiceTest.java +++ b/mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/lisp/MappingServiceTest.java @@ -19,8 +19,6 @@ import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.junit.MockitoJUnitRunner; -import org.opendaylight.controller.md.sal.binding.api.DataBroker; -import org.opendaylight.controller.md.sal.binding.api.NotificationPublishService; import org.opendaylight.lispflowmapping.dsbackend.DataStoreBackEnd; import org.opendaylight.lispflowmapping.implementation.MappingService; import org.opendaylight.lispflowmapping.implementation.MappingSystem; @@ -32,6 +30,8 @@ import org.opendaylight.lispflowmapping.interfaces.dao.ILispDAO; import org.opendaylight.lispflowmapping.interfaces.dao.SubKeys; import org.opendaylight.lispflowmapping.lisp.type.MappingData; import org.opendaylight.lispflowmapping.lisp.util.LispAddressUtil; +import org.opendaylight.mdsal.binding.api.DataBroker; +import org.opendaylight.mdsal.binding.api.NotificationPublishService; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.SiteId; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.XtrId; @@ -269,7 +269,7 @@ public class MappingServiceTest { final RpcError error = rpc.getErrors().iterator().next(); //result - final Future> result = (mappingService.getMapping(getMappingInput)); + final Future> result = mappingService.getMapping(getMappingInput); final RpcError errorResult = result.get().getErrors().iterator().next(); assertEquals(1, result.get().getErrors().size()); diff --git a/mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/mdsal/AuthenticationKeyDataListenerTest.java b/mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/mdsal/AuthenticationKeyDataListenerTest.java index 342895410..9f4802889 100644 --- a/mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/mdsal/AuthenticationKeyDataListenerTest.java +++ b/mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/mdsal/AuthenticationKeyDataListenerTest.java @@ -12,14 +12,14 @@ import java.util.List; import org.junit.Before; import org.junit.Test; import org.mockito.Mockito; -import org.opendaylight.controller.md.sal.binding.api.DataBroker; -import org.opendaylight.controller.md.sal.binding.api.DataObjectModification; -import org.opendaylight.controller.md.sal.binding.api.DataObjectModification.ModificationType; -import org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier; -import org.opendaylight.controller.md.sal.binding.api.DataTreeModification; -import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; import org.opendaylight.lispflowmapping.interfaces.mapcache.IMappingSystem; import org.opendaylight.lispflowmapping.lisp.util.LispAddressUtil; +import org.opendaylight.mdsal.binding.api.DataBroker; +import org.opendaylight.mdsal.binding.api.DataObjectModification; +import org.opendaylight.mdsal.binding.api.DataObjectModification.ModificationType; +import org.opendaylight.mdsal.binding.api.DataTreeIdentifier; +import org.opendaylight.mdsal.binding.api.DataTreeModification; +import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.eid.container.Eid; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.mapping.authkey.container.MappingAuthkeyBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mappingservice.rev150906.db.instance.AuthenticationKey; @@ -57,7 +57,7 @@ public class AuthenticationKeyDataListenerTest { final InstanceIdentifier instanceIdentifierMock = Mockito.mock(InstanceIdentifier.class); final DataTreeIdentifier dataTreeIdentifier = - new DataTreeIdentifier<>(LogicalDatastoreType.CONFIGURATION, instanceIdentifierMock); + DataTreeIdentifier.create(LogicalDatastoreType.CONFIGURATION, instanceIdentifierMock); change_del = Mockito.mock(DataTreeModification.class); change_subtreeModified = Mockito.mock(DataTreeModification.class); @@ -81,7 +81,6 @@ public class AuthenticationKeyDataListenerTest { * Tests {@link AuthenticationKeyDataListener#onDataTreeChanged} method with DELETE modification type. */ @Test - @SuppressWarnings("unchecked") public void onDataTreeChangedTest_delete() { final List> changes = Lists.newArrayList(change_del); Mockito.when(mod_del.getDataBefore()).thenReturn(AUTHENTICATION_KEY_1); @@ -94,7 +93,6 @@ public class AuthenticationKeyDataListenerTest { * Tests {@link AuthenticationKeyDataListener#onDataTreeChanged} method with WRITE modification type. */ @Test - @SuppressWarnings("unchecked") public void onDataTreeChangedTest_write() { final List> changes = Lists.newArrayList(change_write); Mockito.when(mod_write.getDataAfter()).thenReturn(AUTHENTICATION_KEY_2); @@ -107,7 +105,6 @@ public class AuthenticationKeyDataListenerTest { * Tests {@link AuthenticationKeyDataListener#onDataTreeChanged} method with SUBTREE_MODIFIED modification type. */ @Test - @SuppressWarnings("unchecked") public void onDataTreeChangedTest_subtreeModified() { final List> changes = Lists.newArrayList(change_subtreeModified); Mockito.when(mod_subtreeModified.getDataAfter()).thenReturn(AUTHENTICATION_KEY_3); @@ -120,7 +117,6 @@ public class AuthenticationKeyDataListenerTest { * Tests {@link AuthenticationKeyDataListener#onDataTreeChanged} method with multiple modification types. */ @Test - @SuppressWarnings("unchecked") public void onDataTreeChangedTest_multipleModTypes() { final List> changes = Lists.newArrayList(change_del, change_write, change_subtreeModified); diff --git a/mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/mdsal/MappingDataListenerTest.java b/mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/mdsal/MappingDataListenerTest.java index d4f96f4c7..dd0b6770d 100644 --- a/mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/mdsal/MappingDataListenerTest.java +++ b/mappingservice/implementation/src/test/java/org/opendaylight/lispflowmapping/implementation/mdsal/MappingDataListenerTest.java @@ -16,17 +16,17 @@ import org.junit.Ignore; import org.junit.Test; import org.mockito.ArgumentCaptor; import org.mockito.Mockito; -import org.opendaylight.controller.md.sal.binding.api.DataBroker; -import org.opendaylight.controller.md.sal.binding.api.DataObjectModification; -import org.opendaylight.controller.md.sal.binding.api.DataObjectModification.ModificationType; -import org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier; -import org.opendaylight.controller.md.sal.binding.api.DataTreeModification; -import org.opendaylight.controller.md.sal.binding.api.NotificationPublishService; -import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; import org.opendaylight.lispflowmapping.implementation.util.MSNotificationInputUtil; import org.opendaylight.lispflowmapping.interfaces.mapcache.IMappingSystem; import org.opendaylight.lispflowmapping.lisp.type.MappingData; import org.opendaylight.lispflowmapping.lisp.util.LispAddressUtil; +import org.opendaylight.mdsal.binding.api.DataBroker; +import org.opendaylight.mdsal.binding.api.DataObjectModification; +import org.opendaylight.mdsal.binding.api.DataObjectModification.ModificationType; +import org.opendaylight.mdsal.binding.api.DataTreeIdentifier; +import org.opendaylight.mdsal.binding.api.DataTreeModification; +import org.opendaylight.mdsal.binding.api.NotificationPublishService; +import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.eid.container.Eid; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.mapping.record.container.MappingRecord; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.mapping.record.container.MappingRecordBuilder; @@ -76,7 +76,7 @@ public class MappingDataListenerTest { final InstanceIdentifier instanceIdentifierMock = Mockito.mock(InstanceIdentifier.class); final DataTreeIdentifier dataTreeIdentifier = - new DataTreeIdentifier<>(LogicalDatastoreType.CONFIGURATION, instanceIdentifierMock); + DataTreeIdentifier.create(LogicalDatastoreType.CONFIGURATION, instanceIdentifierMock); change_del = Mockito.mock(DataTreeModification.class); change_subtreeModified = Mockito.mock(DataTreeModification.class); @@ -101,7 +101,6 @@ public class MappingDataListenerTest { * Tests {@link MappingDataListener#onDataTreeChanged} method with DELETE modification type from northbound. */ @Test - @SuppressWarnings("unchecked") public void onDataTreeChangedTest_delete_NB() throws InterruptedException { final List> changes = Lists.newArrayList(change_del); Mockito.when(mod_del.getDataBefore()).thenReturn(MAPPING_EID_1_NB); @@ -114,7 +113,6 @@ public class MappingDataListenerTest { * Tests {@link MappingDataListener#onDataTreeChanged} method with DELETE modification type from southbound. */ @Test - @SuppressWarnings("unchecked") public void onDataTreeChangedTest_delete_SB() { final List> changes = Lists.newArrayList(change_del); Mockito.when(mod_del.getDataBefore()).thenReturn(MAPPING_EID_1_SB); @@ -130,7 +128,6 @@ public class MappingDataListenerTest { */ @Test @Ignore - @SuppressWarnings("unchecked") public void onDataTreeChangedTest_subtreeModified_NB() throws InterruptedException { final List> changes = Lists.newArrayList(change_subtreeModified); final MappingChanged mapChanged = MSNotificationInputUtil.toMappingChanged( @@ -150,7 +147,6 @@ public class MappingDataListenerTest { * southbound. */ @Test - @SuppressWarnings("unchecked") public void onDataTreeChangedTest_subtreeModified_SB() { final List> changes = Lists.newArrayList(change_subtreeModified); Mockito.when(mod_subtreeModified.getDataAfter()).thenReturn(MAPPING_EID_2_SB); @@ -165,7 +161,6 @@ public class MappingDataListenerTest { */ @Test @Ignore - @SuppressWarnings("unchecked") public void onDataTreeChangedTest_write_NB() throws InterruptedException { final List> changes = Lists.newArrayList(change_write); final MappingChanged mapChanged = MSNotificationInputUtil.toMappingChanged( @@ -184,7 +179,6 @@ public class MappingDataListenerTest { * Tests {@link MappingDataListener#onDataTreeChanged} method with WRITE modification type from southbound. */ @Test - @SuppressWarnings("unchecked") public void onDataTreeChangedTest_write_SB() { final List> changes = Lists.newArrayList(change_write); Mockito.when(mod_write.getDataAfter()).thenReturn(MAPPING_EID_3_SB); @@ -199,7 +193,6 @@ public class MappingDataListenerTest { */ @Test @Ignore - @SuppressWarnings("unchecked") public void onDataTreeChangedTest_multipleChanges() throws InterruptedException { final List> changes = Lists.newArrayList(change_del, change_subtreeModified, change_write); diff --git a/mappingservice/neutron/pom.xml b/mappingservice/neutron/pom.xml index 6a2912961..c3b215334 100644 --- a/mappingservice/neutron/pom.xml +++ b/mappingservice/neutron/pom.xml @@ -33,13 +33,6 @@ pom import - - org.opendaylight.controller - mdsal-artifacts - 1.10.0-SNAPSHOT - pom - import - @@ -53,9 +46,8 @@ mappingservice.lisp-proto - org.opendaylight.controller - sal-binding-api - 1.10.0-SNAPSHOT + org.opendaylight.mdsal + mdsal-binding-api org.opendaylight.neutron diff --git a/mappingservice/neutron/src/main/java/org/opendaylight/lispflowmapping/neutron/DelegatingDataTreeListener.java b/mappingservice/neutron/src/main/java/org/opendaylight/lispflowmapping/neutron/DelegatingDataTreeListener.java index c2bb3bf6c..1b31c35a2 100644 --- a/mappingservice/neutron/src/main/java/org/opendaylight/lispflowmapping/neutron/DelegatingDataTreeListener.java +++ b/mappingservice/neutron/src/main/java/org/opendaylight/lispflowmapping/neutron/DelegatingDataTreeListener.java @@ -10,11 +10,11 @@ package org.opendaylight.lispflowmapping.neutron; import com.google.common.base.Preconditions; import java.util.Collection; import javax.annotation.Nonnull; -import org.opendaylight.controller.md.sal.binding.api.ClusteredDataTreeChangeListener; -import org.opendaylight.controller.md.sal.binding.api.DataBroker; -import org.opendaylight.controller.md.sal.binding.api.DataObjectModification; -import org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier; -import org.opendaylight.controller.md.sal.binding.api.DataTreeModification; +import org.opendaylight.mdsal.binding.api.ClusteredDataTreeChangeListener; +import org.opendaylight.mdsal.binding.api.DataBroker; +import org.opendaylight.mdsal.binding.api.DataObjectModification; +import org.opendaylight.mdsal.binding.api.DataTreeIdentifier; +import org.opendaylight.mdsal.binding.api.DataTreeModification; import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.networks.rev150712.networks.attributes.networks.Network; import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.ports.rev150712.ports.attributes.ports.Port; import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.subnets.rev150712.subnets.attributes.subnets.Subnet; diff --git a/mappingservice/neutron/src/main/java/org/opendaylight/lispflowmapping/neutron/LispNeutronService.java b/mappingservice/neutron/src/main/java/org/opendaylight/lispflowmapping/neutron/LispNeutronService.java index e1535d3a6..e8f9defcc 100644 --- a/mappingservice/neutron/src/main/java/org/opendaylight/lispflowmapping/neutron/LispNeutronService.java +++ b/mappingservice/neutron/src/main/java/org/opendaylight/lispflowmapping/neutron/LispNeutronService.java @@ -7,9 +7,9 @@ */ package org.opendaylight.lispflowmapping.neutron; -import org.opendaylight.controller.md.sal.binding.api.DataBroker; import org.opendaylight.lispflowmapping.interfaces.lisp.IFlowMapping; import org.opendaylight.lispflowmapping.neutron.mappingmanager.HostInformationManager; +import org.opendaylight.mdsal.binding.api.DataBroker; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mappingservice.rev150906.OdlMappingserviceService; import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.networks.rev150712.networks.attributes.networks.Network; import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.ports.rev150712.ports.attributes.ports.Port; diff --git a/mappingservice/neutron/src/main/java/org/opendaylight/lispflowmapping/neutron/NetworkListener.java b/mappingservice/neutron/src/main/java/org/opendaylight/lispflowmapping/neutron/NetworkListener.java index 6f8c7702a..bca16ebe4 100644 --- a/mappingservice/neutron/src/main/java/org/opendaylight/lispflowmapping/neutron/NetworkListener.java +++ b/mappingservice/neutron/src/main/java/org/opendaylight/lispflowmapping/neutron/NetworkListener.java @@ -7,9 +7,9 @@ */ package org.opendaylight.lispflowmapping.neutron; -import org.opendaylight.controller.md.sal.binding.api.DataBroker; -import org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier; -import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; +import org.opendaylight.mdsal.binding.api.DataBroker; +import org.opendaylight.mdsal.binding.api.DataTreeIdentifier; +import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.networks.rev150712.networks.attributes.Networks; import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.networks.rev150712.networks.attributes.networks.Network; import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.rev150712.Neutron; @@ -22,7 +22,7 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; public class NetworkListener extends DelegatingDataTreeListener { private static final DataTreeIdentifier IDENTIFIER = - new DataTreeIdentifier<>(LogicalDatastoreType.CONFIGURATION, + DataTreeIdentifier.create(LogicalDatastoreType.CONFIGURATION, InstanceIdentifier.create(Neutron.class).child(Networks.class).child(Network.class)); public NetworkListener(DataProcessor dataProcessor, DataBroker dataBroker) { diff --git a/mappingservice/neutron/src/main/java/org/opendaylight/lispflowmapping/neutron/PortListener.java b/mappingservice/neutron/src/main/java/org/opendaylight/lispflowmapping/neutron/PortListener.java index 0120b72bf..723e69621 100644 --- a/mappingservice/neutron/src/main/java/org/opendaylight/lispflowmapping/neutron/PortListener.java +++ b/mappingservice/neutron/src/main/java/org/opendaylight/lispflowmapping/neutron/PortListener.java @@ -7,9 +7,9 @@ */ package org.opendaylight.lispflowmapping.neutron; -import org.opendaylight.controller.md.sal.binding.api.DataBroker; -import org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier; -import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; +import org.opendaylight.mdsal.binding.api.DataBroker; +import org.opendaylight.mdsal.binding.api.DataTreeIdentifier; +import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.ports.rev150712.ports.attributes.Ports; import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.ports.rev150712.ports.attributes.ports.Port; import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.rev150712.Neutron; @@ -21,7 +21,7 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; public class PortListener extends DelegatingDataTreeListener { private static final DataTreeIdentifier IDENTIFIER = - new DataTreeIdentifier<>(LogicalDatastoreType.CONFIGURATION, + DataTreeIdentifier.create(LogicalDatastoreType.CONFIGURATION, InstanceIdentifier.create(Neutron.class).child(Ports.class).child(Port.class)); public PortListener(DataProcessor dataProcessor, DataBroker dataBroker) { diff --git a/mappingservice/neutron/src/main/java/org/opendaylight/lispflowmapping/neutron/SubnetListener.java b/mappingservice/neutron/src/main/java/org/opendaylight/lispflowmapping/neutron/SubnetListener.java index c7f77a4c9..449499559 100644 --- a/mappingservice/neutron/src/main/java/org/opendaylight/lispflowmapping/neutron/SubnetListener.java +++ b/mappingservice/neutron/src/main/java/org/opendaylight/lispflowmapping/neutron/SubnetListener.java @@ -7,9 +7,9 @@ */ package org.opendaylight.lispflowmapping.neutron; -import org.opendaylight.controller.md.sal.binding.api.DataBroker; -import org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier; -import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; +import org.opendaylight.mdsal.binding.api.DataBroker; +import org.opendaylight.mdsal.binding.api.DataTreeIdentifier; +import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.rev150712.Neutron; import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.subnets.rev150712.subnets.attributes.Subnets; import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.subnets.rev150712.subnets.attributes.subnets.Subnet; @@ -21,7 +21,7 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; public class SubnetListener extends DelegatingDataTreeListener { private static final DataTreeIdentifier IDENTIFIER = - new DataTreeIdentifier<>(LogicalDatastoreType.CONFIGURATION, + DataTreeIdentifier.create(LogicalDatastoreType.CONFIGURATION, InstanceIdentifier.create(Neutron.class).child(Subnets.class).child(Subnet.class)); public SubnetListener(DataProcessor dataProcessor, DataBroker dataBroker) { diff --git a/mappingservice/neutron/src/main/java/org/opendaylight/lispflowmapping/neutron/intenthandler/GroupBasedPolicyNeutronIntentHandlerBean.java b/mappingservice/neutron/src/main/java/org/opendaylight/lispflowmapping/neutron/intenthandler/GroupBasedPolicyNeutronIntentHandlerBean.java index 84252d1af..cb8b17dec 100644 --- a/mappingservice/neutron/src/main/java/org/opendaylight/lispflowmapping/neutron/intenthandler/GroupBasedPolicyNeutronIntentHandlerBean.java +++ b/mappingservice/neutron/src/main/java/org/opendaylight/lispflowmapping/neutron/intenthandler/GroupBasedPolicyNeutronIntentHandlerBean.java @@ -7,9 +7,9 @@ */ package org.opendaylight.lispflowmapping.neutron.intenthandler; -import org.opendaylight.controller.md.sal.binding.api.DataBroker; -import org.opendaylight.controller.md.sal.binding.api.MountPointService; import org.opendaylight.lispflowmapping.neutron.intenthandler.listener.service.VbridgeTopologyListenerService; +import org.opendaylight.mdsal.binding.api.DataBroker; +import org.opendaylight.mdsal.binding.api.MountPointService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/mappingservice/neutron/src/main/java/org/opendaylight/lispflowmapping/neutron/intenthandler/listener/VbridgeTopologyListener.java b/mappingservice/neutron/src/main/java/org/opendaylight/lispflowmapping/neutron/intenthandler/listener/VbridgeTopologyListener.java index ba37815ef..ce9c89eac 100644 --- a/mappingservice/neutron/src/main/java/org/opendaylight/lispflowmapping/neutron/intenthandler/listener/VbridgeTopologyListener.java +++ b/mappingservice/neutron/src/main/java/org/opendaylight/lispflowmapping/neutron/intenthandler/listener/VbridgeTopologyListener.java @@ -8,18 +8,16 @@ package org.opendaylight.lispflowmapping.neutron.intenthandler.listener; import com.google.common.base.Preconditions; - import java.util.Collection; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import javax.annotation.Nonnull; - import org.checkerframework.checker.lock.qual.GuardedBy; -import org.opendaylight.controller.md.sal.binding.api.ClusteredDataTreeChangeListener; -import org.opendaylight.controller.md.sal.binding.api.DataBroker; -import org.opendaylight.controller.md.sal.binding.api.DataObjectModification; -import org.opendaylight.controller.md.sal.binding.api.DataTreeModification; -import org.opendaylight.controller.md.sal.binding.api.MountPointService; +import org.opendaylight.mdsal.binding.api.ClusteredDataTreeChangeListener; +import org.opendaylight.mdsal.binding.api.DataBroker; +import org.opendaylight.mdsal.binding.api.DataObjectModification; +import org.opendaylight.mdsal.binding.api.DataTreeModification; +import org.opendaylight.mdsal.binding.api.MountPointService; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vbridge.topology.rev160129.network.topology.topology.topology.types.VbridgeTopology; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.TopologyKey; @@ -33,8 +31,8 @@ import org.slf4j.LoggerFactory; public class VbridgeTopologyListener implements ClusteredDataTreeChangeListener, AutoCloseable { private static final Logger LOG = LoggerFactory.getLogger(VbridgeTopologyListener.class); - private DataBroker dataBroker; - private MountPointService mountPointService; + private final DataBroker dataBroker; + private final MountPointService mountPointService; @GuardedBy("this") private final Map domains = new ConcurrentHashMap<>(); diff --git a/mappingservice/neutron/src/main/java/org/opendaylight/lispflowmapping/neutron/intenthandler/listener/VppEndpointListener.java b/mappingservice/neutron/src/main/java/org/opendaylight/lispflowmapping/neutron/intenthandler/listener/VppEndpointListener.java index 67b55fb9c..aa259826e 100644 --- a/mappingservice/neutron/src/main/java/org/opendaylight/lispflowmapping/neutron/intenthandler/listener/VppEndpointListener.java +++ b/mappingservice/neutron/src/main/java/org/opendaylight/lispflowmapping/neutron/intenthandler/listener/VppEndpointListener.java @@ -15,7 +15,6 @@ import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; import com.google.common.util.concurrent.ListeningExecutorService; import com.google.common.util.concurrent.MoreExecutors; - import java.util.ArrayList; import java.util.Collection; import java.util.List; @@ -23,19 +22,18 @@ import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeoutException; import javax.annotation.Nonnull; import javax.annotation.Nullable; - -import org.opendaylight.controller.md.sal.binding.api.ClusteredDataTreeChangeListener; -import org.opendaylight.controller.md.sal.binding.api.DataBroker; -import org.opendaylight.controller.md.sal.binding.api.DataObjectModification; -import org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier; -import org.opendaylight.controller.md.sal.binding.api.DataTreeModification; -import org.opendaylight.controller.md.sal.binding.api.MountPointService; -import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; import org.opendaylight.lispflowmapping.lisp.util.LispAddressUtil; import org.opendaylight.lispflowmapping.neutron.intenthandler.IntentHandlerAsyncExecutorProvider; import org.opendaylight.lispflowmapping.neutron.intenthandler.util.VppNetconfConnectionProbe; import org.opendaylight.lispflowmapping.neutron.intenthandler.util.VppNodeReader; import org.opendaylight.lispflowmapping.neutron.mappingmanager.HostInformationManager; +import org.opendaylight.mdsal.binding.api.ClusteredDataTreeChangeListener; +import org.opendaylight.mdsal.binding.api.DataBroker; +import org.opendaylight.mdsal.binding.api.DataObjectModification; +import org.opendaylight.mdsal.binding.api.DataTreeIdentifier; +import org.opendaylight.mdsal.binding.api.DataTreeModification; +import org.opendaylight.mdsal.binding.api.MountPointService; +import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.TopologyId; @@ -81,7 +79,7 @@ public class VppEndpointListener implements AutoCloseable, ClusteredDataTreeChan hostInformationManager = HostInformationManager.getInstance(); reg = dataBroker.registerDataTreeChangeListener( - new DataTreeIdentifier<>(LogicalDatastoreType.CONFIGURATION, topologyII), this); + DataTreeIdentifier.create(LogicalDatastoreType.CONFIGURATION, topologyII), this); executorService = IntentHandlerAsyncExecutorProvider.getInstace().getExecutor(); } diff --git a/mappingservice/neutron/src/main/java/org/opendaylight/lispflowmapping/neutron/intenthandler/listener/service/VbridgeTopologyListenerService.java b/mappingservice/neutron/src/main/java/org/opendaylight/lispflowmapping/neutron/intenthandler/listener/service/VbridgeTopologyListenerService.java index 1c7f09009..13ae40a18 100644 --- a/mappingservice/neutron/src/main/java/org/opendaylight/lispflowmapping/neutron/intenthandler/listener/service/VbridgeTopologyListenerService.java +++ b/mappingservice/neutron/src/main/java/org/opendaylight/lispflowmapping/neutron/intenthandler/listener/service/VbridgeTopologyListenerService.java @@ -8,12 +8,11 @@ package org.opendaylight.lispflowmapping.neutron.intenthandler.listener.service; import javax.annotation.Nonnull; - -import org.opendaylight.controller.md.sal.binding.api.DataBroker; -import org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier; -import org.opendaylight.controller.md.sal.binding.api.MountPointService; -import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; import org.opendaylight.lispflowmapping.neutron.intenthandler.listener.VbridgeTopologyListener; +import org.opendaylight.mdsal.binding.api.DataBroker; +import org.opendaylight.mdsal.binding.api.DataTreeIdentifier; +import org.opendaylight.mdsal.binding.api.MountPointService; +import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vbridge.topology.rev160129.TopologyTypesVbridgeAugment; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vbridge.topology.rev160129.network.topology.topology.topology.types.VbridgeTopology; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology; @@ -35,7 +34,7 @@ public class VbridgeTopologyListenerService implements AutoCloseable { private boolean closed; private static final DataTreeIdentifier TREE_LISTENER_IDENTIFIER = - new DataTreeIdentifier<>( + DataTreeIdentifier.create( LogicalDatastoreType.OPERATIONAL, InstanceIdentifier.builder(NetworkTopology.class) .child(Topology.class) diff --git a/mappingservice/neutron/src/main/java/org/opendaylight/lispflowmapping/neutron/intenthandler/util/LispNeutronUtil.java b/mappingservice/neutron/src/main/java/org/opendaylight/lispflowmapping/neutron/intenthandler/util/LispNeutronUtil.java index b4b96c081..f82e0ccf3 100644 --- a/mappingservice/neutron/src/main/java/org/opendaylight/lispflowmapping/neutron/intenthandler/util/LispNeutronUtil.java +++ b/mappingservice/neutron/src/main/java/org/opendaylight/lispflowmapping/neutron/intenthandler/util/LispNeutronUtil.java @@ -7,10 +7,10 @@ */ package org.opendaylight.lispflowmapping.neutron.intenthandler.util; -import com.google.common.base.Optional; -import org.opendaylight.controller.md.sal.binding.api.DataBroker; -import org.opendaylight.controller.md.sal.binding.api.MountPoint; -import org.opendaylight.controller.md.sal.binding.api.MountPointService; +import java.util.Optional; +import org.opendaylight.mdsal.binding.api.DataBroker; +import org.opendaylight.mdsal.binding.api.MountPoint; +import org.opendaylight.mdsal.binding.api.MountPointService; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; diff --git a/mappingservice/neutron/src/main/java/org/opendaylight/lispflowmapping/neutron/intenthandler/util/VppNetconfConnectionProbe.java b/mappingservice/neutron/src/main/java/org/opendaylight/lispflowmapping/neutron/intenthandler/util/VppNetconfConnectionProbe.java index 83f284076..08bb09ea9 100644 --- a/mappingservice/neutron/src/main/java/org/opendaylight/lispflowmapping/neutron/intenthandler/util/VppNetconfConnectionProbe.java +++ b/mappingservice/neutron/src/main/java/org/opendaylight/lispflowmapping/neutron/intenthandler/util/VppNetconfConnectionProbe.java @@ -15,19 +15,17 @@ import static org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topolog import static org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNodeConnectionStatus.ConnectionStatus.Connecting; import com.google.common.util.concurrent.SettableFuture; - import java.util.Collection; import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; import javax.annotation.Nonnull; - -import org.opendaylight.controller.md.sal.binding.api.ClusteredDataTreeChangeListener; -import org.opendaylight.controller.md.sal.binding.api.DataBroker; -import org.opendaylight.controller.md.sal.binding.api.DataObjectModification; -import org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier; -import org.opendaylight.controller.md.sal.binding.api.DataTreeModification; -import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; +import org.opendaylight.mdsal.binding.api.ClusteredDataTreeChangeListener; +import org.opendaylight.mdsal.binding.api.DataBroker; +import org.opendaylight.mdsal.binding.api.DataObjectModification; +import org.opendaylight.mdsal.binding.api.DataTreeIdentifier; +import org.opendaylight.mdsal.binding.api.DataTreeModification; +import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNode; import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNodeConnectionStatus; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology; @@ -58,7 +56,7 @@ public class VppNetconfConnectionProbe implements ClusteredDataTreeChangeListene public static final int NODE_CONNECTION_TIMER = 60; private final DataBroker dataBroker; private ListenerRegistration registeredListener; - private SettableFuture connectionStatusFuture = SettableFuture.create(); + private final SettableFuture connectionStatusFuture = SettableFuture.create(); private static final String TOPOLOGY_IDENTIFIER = "topology-netconf"; @@ -71,7 +69,7 @@ public class VppNetconfConnectionProbe implements ClusteredDataTreeChangeListene .child(Node.class, new NodeKey(nodeId)) .build(); - path = new DataTreeIdentifier<>(LogicalDatastoreType.OPERATIONAL, nodeIid); + path = DataTreeIdentifier.create(LogicalDatastoreType.OPERATIONAL, nodeIid); } public boolean startProbing() throws ExecutionException, InterruptedException, TimeoutException { diff --git a/mappingservice/neutron/src/main/java/org/opendaylight/lispflowmapping/neutron/intenthandler/util/VppNetconfTrasaction.java b/mappingservice/neutron/src/main/java/org/opendaylight/lispflowmapping/neutron/intenthandler/util/VppNetconfTrasaction.java index bd7b51b2a..9ce9f5c37 100644 --- a/mappingservice/neutron/src/main/java/org/opendaylight/lispflowmapping/neutron/intenthandler/util/VppNetconfTrasaction.java +++ b/mappingservice/neutron/src/main/java/org/opendaylight/lispflowmapping/neutron/intenthandler/util/VppNetconfTrasaction.java @@ -7,16 +7,12 @@ */ package org.opendaylight.lispflowmapping.neutron.intenthandler.util; -import com.google.common.base.Optional; import com.google.common.base.Preconditions; -import com.google.common.util.concurrent.CheckedFuture; - +import java.util.Optional; import java.util.concurrent.ExecutionException; - -import org.opendaylight.controller.md.sal.binding.api.DataBroker; -import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction; -import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; -import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException; +import org.opendaylight.mdsal.binding.api.DataBroker; +import org.opendaylight.mdsal.binding.api.ReadTransaction; +import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.yangtools.yang.binding.DataObject; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; @@ -44,7 +40,7 @@ public final class VppNetconfTrasaction { int retryCounter = RETRY_COUNT; while (retryCounter > 0) { - ReadOnlyTransaction readTransaction = dataBroker.newReadOnlyTransaction(); + ReadTransaction readTransaction = dataBroker.newReadOnlyTransaction(); try { returnData = readTransaction(instanceIdentifier, datastoreType, readTransaction); LOG.trace("Netconf READ transaction SUCCESSFUL. Data present: {}", returnData.isPresent()); @@ -62,17 +58,13 @@ public final class VppNetconfTrasaction { } retryCounter--; } - return Optional.absent(); + return Optional.empty(); } private static Optional readTransaction(InstanceIdentifier instanceIdentifier, LogicalDatastoreType datastoreType, - ReadOnlyTransaction readTransaction) + ReadTransaction readTransaction) throws IllegalStateException, InterruptedException, ExecutionException { - - CheckedFuture, ReadFailedException> futureData = - readTransaction.read(datastoreType, instanceIdentifier); - - return futureData.get(); + return readTransaction.read(datastoreType, instanceIdentifier).get(); } } diff --git a/mappingservice/neutron/src/main/java/org/opendaylight/lispflowmapping/neutron/intenthandler/util/VppNodeReader.java b/mappingservice/neutron/src/main/java/org/opendaylight/lispflowmapping/neutron/intenthandler/util/VppNodeReader.java index 3b55f3778..aad0d57e2 100644 --- a/mappingservice/neutron/src/main/java/org/opendaylight/lispflowmapping/neutron/intenthandler/util/VppNodeReader.java +++ b/mappingservice/neutron/src/main/java/org/opendaylight/lispflowmapping/neutron/intenthandler/util/VppNodeReader.java @@ -7,17 +7,15 @@ */ package org.opendaylight.lispflowmapping.neutron.intenthandler.util; -import com.google.common.base.Optional; import com.google.common.util.concurrent.ListenableFuture; import com.google.common.util.concurrent.SettableFuture; - import java.util.List; +import java.util.Optional; import java.util.concurrent.ExecutionException; - -import org.opendaylight.controller.md.sal.binding.api.DataBroker; -import org.opendaylight.controller.md.sal.binding.api.MountPointService; -import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; import org.opendaylight.lispflowmapping.neutron.intenthandler.exception.RlocNotFoundOnVppNode; +import org.opendaylight.mdsal.binding.api.DataBroker; +import org.opendaylight.mdsal.binding.api.MountPointService; +import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4AddressNoZone; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.InterfacesState; @@ -93,7 +91,7 @@ public class VppNodeReader { } - resultFuture.set(Optional.absent()); + resultFuture.set(Optional.empty()); } else { LOG.debug("Data broker for vpp {} is missing.", instanceIdentifierToVppNode); } @@ -106,26 +104,26 @@ public class VppNodeReader { if (augIntf == null) { LOG.debug("Cannot get Interface2 augmentation for intf {}"); - return Optional.absent(); + return Optional.empty(); } Ipv4 ipv4 = augIntf.getIpv4(); if (ipv4 == null) { LOG.debug("Ipv4 address for interface {} on node {} is null!", augIntf, InfoUtil.node(iiToVpp)); - return Optional.absent(); + return Optional.empty(); } final List
addresses = ipv4.getAddress(); if (addresses == null || addresses.isEmpty()) { LOG.debug("Ipv4 addresses list is empty for interface {} on node {}", augIntf, InfoUtil.node(iiToVpp)); - return Optional.absent(); + return Optional.empty(); } final Ipv4AddressNoZone ip = addresses.iterator().next().getIp(); if (ip == null) { LOG.debug("Ipv4AddressNoZone is null for node {}", InfoUtil.node(iiToVpp)); - return Optional.absent(); + return Optional.empty(); } LOG.debug("Got ip address {} from interface {} on node {}", ip.getValue(), intf.getName(), diff --git a/mappingservice/neutron/src/main/resources/OSGI-INF/blueprint/neutron.xml b/mappingservice/neutron/src/main/resources/OSGI-INF/blueprint/neutron.xml index d31b819b2..50ef04184 100644 --- a/mappingservice/neutron/src/main/resources/OSGI-INF/blueprint/neutron.xml +++ b/mappingservice/neutron/src/main/resources/OSGI-INF/blueprint/neutron.xml @@ -6,9 +6,9 @@ + interface="org.opendaylight.mdsal.binding.api.DataBroker" /> + interface="org.opendaylight.mdsal.binding.api.MountPointService" /> diff --git a/mappingservice/neutron/src/test/java/org/opendaylight/lispflowmapping/neutron/DelegatingDataTreeListenerTest.java b/mappingservice/neutron/src/test/java/org/opendaylight/lispflowmapping/neutron/DelegatingDataTreeListenerTest.java index cfc68047a..7ccdbc60d 100644 --- a/mappingservice/neutron/src/test/java/org/opendaylight/lispflowmapping/neutron/DelegatingDataTreeListenerTest.java +++ b/mappingservice/neutron/src/test/java/org/opendaylight/lispflowmapping/neutron/DelegatingDataTreeListenerTest.java @@ -12,11 +12,11 @@ import static org.junit.Assert.assertTrue; import com.google.common.collect.Lists; import org.junit.Test; import org.mockito.Mockito; -import org.opendaylight.controller.md.sal.binding.api.DataBroker; -import org.opendaylight.controller.md.sal.binding.api.DataObjectModification; -import org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier; -import org.opendaylight.controller.md.sal.binding.api.DataTreeModification; -import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; +import org.opendaylight.mdsal.binding.api.DataBroker; +import org.opendaylight.mdsal.binding.api.DataObjectModification; +import org.opendaylight.mdsal.binding.api.DataTreeIdentifier; +import org.opendaylight.mdsal.binding.api.DataTreeModification; +import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.networks.rev150712.networks.attributes.Networks; import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.networks.rev150712.networks.attributes.networks.Network; import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.ports.rev150712.ports.attributes.ports.Port; @@ -31,7 +31,7 @@ public class DelegatingDataTreeListenerTest { private static ILispNeutronService iLispNeutronServiceMock = Mockito.mock(ILispNeutronService.class); private static DataBroker dataBrokerMock = Mockito.mock(DataBroker.class); private static final DataTreeIdentifier NETWORK_ID = - new DataTreeIdentifier<>(LogicalDatastoreType.CONFIGURATION, InstanceIdentifier.create(Neutron.class) + DataTreeIdentifier.create(LogicalDatastoreType.CONFIGURATION, InstanceIdentifier.create(Neutron.class) .child(Networks.class).child(Network.class)); private final DelegatingDataTreeListener networkDelegatingDataTreeListener = diff --git a/mappingservice/neutron/src/test/java/org/opendaylight/lispflowmapping/neutron/LispNeutronServiceTest.java b/mappingservice/neutron/src/test/java/org/opendaylight/lispflowmapping/neutron/LispNeutronServiceTest.java index fe193d985..d9378fb12 100644 --- a/mappingservice/neutron/src/test/java/org/opendaylight/lispflowmapping/neutron/LispNeutronServiceTest.java +++ b/mappingservice/neutron/src/test/java/org/opendaylight/lispflowmapping/neutron/LispNeutronServiceTest.java @@ -11,8 +11,8 @@ import static org.junit.Assert.assertEquals; import org.junit.Test; import org.mockito.Mockito; -import org.opendaylight.controller.md.sal.binding.api.DataBroker; import org.opendaylight.lispflowmapping.interfaces.lisp.IFlowMapping; +import org.opendaylight.mdsal.binding.api.DataBroker; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mappingservice.rev150906.OdlMappingserviceService; public class LispNeutronServiceTest { diff --git a/mappingservice/neutron/src/test/java/org/opendaylight/lispflowmapping/neutron/ListenerTest.java b/mappingservice/neutron/src/test/java/org/opendaylight/lispflowmapping/neutron/ListenerTest.java index 0d15206fd..5af0a57da 100644 --- a/mappingservice/neutron/src/test/java/org/opendaylight/lispflowmapping/neutron/ListenerTest.java +++ b/mappingservice/neutron/src/test/java/org/opendaylight/lispflowmapping/neutron/ListenerTest.java @@ -11,7 +11,7 @@ import static org.junit.Assert.assertEquals; import org.junit.Test; import org.mockito.Mockito; -import org.opendaylight.controller.md.sal.binding.api.DataBroker; +import org.opendaylight.mdsal.binding.api.DataBroker; import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.networks.rev150712.networks.attributes.networks.Network; import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.ports.rev150712.ports.attributes.ports.Port; import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.subnets.rev150712.subnets.attributes.subnets.Subnet; diff --git a/mappingservice/neutron/src/test/java/org/opendaylight/lispflowmapping/neutron/SubnetDataProcessorTest.java b/mappingservice/neutron/src/test/java/org/opendaylight/lispflowmapping/neutron/SubnetDataProcessorTest.java index dd6bca72d..7449e0974 100644 --- a/mappingservice/neutron/src/test/java/org/opendaylight/lispflowmapping/neutron/SubnetDataProcessorTest.java +++ b/mappingservice/neutron/src/test/java/org/opendaylight/lispflowmapping/neutron/SubnetDataProcessorTest.java @@ -9,9 +9,8 @@ package org.opendaylight.lispflowmapping.neutron; import static org.junit.Assert.assertTrue; -import java.util.concurrent.ExecutionException; - import com.google.common.util.concurrent.ListenableFuture; +import java.util.concurrent.ExecutionException; import org.junit.Before; import org.junit.Test; import org.mockito.Mockito; @@ -47,7 +46,6 @@ public class SubnetDataProcessorTest { private static final IpPrefix IP_PREFIX = new IpPrefix(new Ipv4Prefix(IPV4 + MASK)); @Before - @SuppressWarnings("unchecked") public void init() { odlMappingserviceServiceMock = Mockito.mock(OdlMappingserviceService.class); } diff --git a/mappingservice/southbound/src/main/java/org/opendaylight/lispflowmapping/southbound/LispSouthboundPlugin.java b/mappingservice/southbound/src/main/java/org/opendaylight/lispflowmapping/southbound/LispSouthboundPlugin.java index 229d94c26..289cd9f7c 100644 --- a/mappingservice/southbound/src/main/java/org/opendaylight/lispflowmapping/southbound/LispSouthboundPlugin.java +++ b/mappingservice/southbound/src/main/java/org/opendaylight/lispflowmapping/southbound/LispSouthboundPlugin.java @@ -18,8 +18,6 @@ import io.netty.buffer.ByteBuf; import io.netty.buffer.ByteBufUtil; import io.netty.buffer.PooledByteBufAllocator; import io.netty.channel.Channel; -import io.netty.channel.ChannelFuture; -import io.netty.channel.ChannelFutureListener; import io.netty.channel.ChannelOption; import io.netty.channel.EventLoopGroup; import io.netty.channel.epoll.Epoll; @@ -36,8 +34,6 @@ import java.net.UnknownHostException; import java.nio.ByteBuffer; import java.util.List; import java.util.concurrent.ThreadFactory; -import org.opendaylight.controller.md.sal.binding.api.DataBroker; -import org.opendaylight.controller.md.sal.binding.api.NotificationPublishService; import org.opendaylight.lispflowmapping.dsbackend.DataStoreBackEnd; import org.opendaylight.lispflowmapping.inmemorydb.HashMapDb; import org.opendaylight.lispflowmapping.lisp.type.LispMessage; @@ -48,6 +44,8 @@ import org.opendaylight.lispflowmapping.southbound.lisp.LispSouthboundHandler; import org.opendaylight.lispflowmapping.southbound.lisp.LispXtrSouthboundHandler; import org.opendaylight.lispflowmapping.southbound.lisp.cache.MapRegisterCache; import org.opendaylight.lispflowmapping.type.sbplugin.IConfigLispSouthboundPlugin; +import org.opendaylight.mdsal.binding.api.DataBroker; +import org.opendaylight.mdsal.binding.api.NotificationPublishService; import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonService; import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider; import org.opendaylight.mdsal.singleton.common.api.ServiceGroupIdentifier; @@ -70,7 +68,7 @@ public class LispSouthboundPlugin implements IConfigLispSouthboundPlugin, AutoCl private volatile boolean isMaster = false; private volatile String bindingAddress; private AuthKeyDb akdb; - private MapRegisterCache mapRegisterCache = new MapRegisterCache(); + private final MapRegisterCache mapRegisterCache = new MapRegisterCache(); private boolean mapRegisterCacheEnabled; private long mapRegisterCacheTimeout; @@ -78,19 +76,19 @@ public class LispSouthboundPlugin implements IConfigLispSouthboundPlugin, AutoCl private final ClusterSingletonServiceProvider clusterSingletonService; private LispSouthboundHandler lispSouthboundHandler; private LispXtrSouthboundHandler lispXtrSouthboundHandler; - private NotificationPublishService notificationPublishService; + private final NotificationPublishService notificationPublishService; private int numChannels = 1; - private Channel[] channel; + private final Channel[] channel; private Channel xtrChannel; private Class channelType; private volatile int xtrPort = LispMessage.XTR_PORT_NUM; private volatile boolean listenOnXtrPort = false; - private ConcurrentLispSouthboundStats statistics = new ConcurrentLispSouthboundStats(); - private Bootstrap bootstrap = new Bootstrap(); - private Bootstrap xtrBootstrap = new Bootstrap(); - private ThreadFactory threadFactory = new DefaultThreadFactory("lisp-sb"); + private final ConcurrentLispSouthboundStats statistics = new ConcurrentLispSouthboundStats(); + private final Bootstrap bootstrap = new Bootstrap(); + private final Bootstrap xtrBootstrap = new Bootstrap(); + private final ThreadFactory threadFactory = new DefaultThreadFactory("lisp-sb"); private EventLoopGroup eventLoopGroup; - private DataBroker dataBroker; + private final DataBroker dataBroker; private AuthenticationKeyDataListener authenticationKeyDataListener; private DataStoreBackEnd dsbe; @@ -257,16 +255,13 @@ public class LispSouthboundPlugin implements IConfigLispSouthboundPlugin, AutoCl if (LOG.isTraceEnabled()) { LOG.trace("Buffer:\n{}", ByteBufUtil.prettyHexDump(data)); } - senderChannel.write(packet).addListener(new ChannelFutureListener() { - @Override - public void operationComplete(ChannelFuture future) { - if (future.isSuccess()) { - LOG.trace("Success"); - statistics.incrementTx(packetType.getIntValue()); - } else { - LOG.warn("Failed to send packet"); - statistics.incrementTxErrors(); - } + senderChannel.write(packet).addListener(future -> { + if (future.isSuccess()) { + LOG.trace("Success"); + statistics.incrementTx(packetType.getIntValue()); + } else { + LOG.warn("Failed to send packet"); + statistics.incrementTxErrors(); } }); senderChannel.flush(); diff --git a/mappingservice/southbound/src/main/java/org/opendaylight/lispflowmapping/southbound/lisp/AuthenticationKeyDataListener.java b/mappingservice/southbound/src/main/java/org/opendaylight/lispflowmapping/southbound/lisp/AuthenticationKeyDataListener.java index 95ae64eb6..32c0d2a9a 100644 --- a/mappingservice/southbound/src/main/java/org/opendaylight/lispflowmapping/southbound/lisp/AuthenticationKeyDataListener.java +++ b/mappingservice/southbound/src/main/java/org/opendaylight/lispflowmapping/southbound/lisp/AuthenticationKeyDataListener.java @@ -10,15 +10,15 @@ package org.opendaylight.lispflowmapping.southbound.lisp; import java.util.Collection; import java.util.List; import java.util.concurrent.ConcurrentHashMap; -import org.opendaylight.controller.md.sal.binding.api.ClusteredDataTreeChangeListener; -import org.opendaylight.controller.md.sal.binding.api.DataBroker; -import org.opendaylight.controller.md.sal.binding.api.DataObjectModification; -import org.opendaylight.controller.md.sal.binding.api.DataObjectModification.ModificationType; -import org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier; -import org.opendaylight.controller.md.sal.binding.api.DataTreeModification; -import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; import org.opendaylight.lispflowmapping.lisp.util.LispAddressUtil; import org.opendaylight.lispflowmapping.mapcache.AuthKeyDb; +import org.opendaylight.mdsal.binding.api.ClusteredDataTreeChangeListener; +import org.opendaylight.mdsal.binding.api.DataBroker; +import org.opendaylight.mdsal.binding.api.DataObjectModification; +import org.opendaylight.mdsal.binding.api.DataObjectModification.ModificationType; +import org.opendaylight.mdsal.binding.api.DataTreeIdentifier; +import org.opendaylight.mdsal.binding.api.DataTreeModification; +import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.eid.container.Eid; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.map.register.cache.metadata.container.map.register.cache.metadata.EidLispAddress; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mappingservice.rev150906.MappingDatabase; @@ -40,8 +40,8 @@ public class AuthenticationKeyDataListener implements ClusteredDataTreeChangeLis private final AuthKeyDb akdb; private final DataBroker broker; private final InstanceIdentifier path; - private ListenerRegistration> registration; - private ConcurrentHashMap updatedEntries; + private final ListenerRegistration> registration; + private final ConcurrentHashMap updatedEntries; public AuthenticationKeyDataListener(final DataBroker broker, final AuthKeyDb akdb) { this.broker = broker; @@ -49,7 +49,7 @@ public class AuthenticationKeyDataListener implements ClusteredDataTreeChangeLis this.path = InstanceIdentifier.create(MappingDatabase.class).child(VirtualNetworkIdentifier.class) .child(AuthenticationKey.class); LOG.trace("Registering AuthenticationKey listener."); - final DataTreeIdentifier dataTreeIdentifier = new DataTreeIdentifier<>( + final DataTreeIdentifier dataTreeIdentifier = DataTreeIdentifier.create( LogicalDatastoreType.CONFIGURATION, path); registration = broker.registerDataTreeChangeListener(dataTreeIdentifier, this); this.updatedEntries = new ConcurrentHashMap<>(); diff --git a/mappingservice/southbound/src/main/resources/OSGI-INF/blueprint/mappingservice-southbound.xml b/mappingservice/southbound/src/main/resources/OSGI-INF/blueprint/mappingservice-southbound.xml index 740833c97..c2f2ab1f1 100644 --- a/mappingservice/southbound/src/main/resources/OSGI-INF/blueprint/mappingservice-southbound.xml +++ b/mappingservice/southbound/src/main/resources/OSGI-INF/blueprint/mappingservice-southbound.xml @@ -6,10 +6,9 @@ odl:use-default-for-reference-types="true"> + interface="org.opendaylight.mdsal.binding.api.DataBroker" /> + interface="org.opendaylight.mdsal.binding.api.NotificationPublishService" /> diff --git a/mappingservice/southbound/src/test/java/org/opendaylight/lispflowmapping/southbound/LispSouthboundPluginTest.java b/mappingservice/southbound/src/test/java/org/opendaylight/lispflowmapping/southbound/LispSouthboundPluginTest.java index 40d3af828..754ccbb14 100644 --- a/mappingservice/southbound/src/test/java/org/opendaylight/lispflowmapping/southbound/LispSouthboundPluginTest.java +++ b/mappingservice/southbound/src/test/java/org/opendaylight/lispflowmapping/southbound/LispSouthboundPluginTest.java @@ -26,11 +26,11 @@ import org.junit.Before; import org.junit.Test; import org.mockito.ArgumentCaptor; import org.mockito.Mockito; -import org.opendaylight.controller.md.sal.binding.api.DataBroker; -import org.opendaylight.controller.md.sal.binding.api.NotificationPublishService; import org.opendaylight.lispflowmapping.dsbackend.DataStoreBackEnd; import org.opendaylight.lispflowmapping.lisp.type.LispMessage; import org.opendaylight.lispflowmapping.southbound.lisp.LispSouthboundHandler; +import org.opendaylight.mdsal.binding.api.DataBroker; +import org.opendaylight.mdsal.binding.api.NotificationPublishService; import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.inet.binary.types.rev160303.IpAddressBinary; @@ -183,7 +183,6 @@ public class LispSouthboundPluginTest { * Tests {@link LispSouthboundPlugin#close} method. */ @Test - @SuppressWarnings("unchecked") public void closeTest() throws Exception { EventLoopGroup elgMock = Mockito.mock(EventLoopGroup.class); LispSouthboundPluginTest.injectField("eventLoopGroup", elgMock); diff --git a/mappingservice/southbound/src/test/java/org/opendaylight/lispflowmapping/southbound/lisp/AuthenticationKeyDataListenerTest.java b/mappingservice/southbound/src/test/java/org/opendaylight/lispflowmapping/southbound/lisp/AuthenticationKeyDataListenerTest.java index 1321c8395..f4d3e933c 100644 --- a/mappingservice/southbound/src/test/java/org/opendaylight/lispflowmapping/southbound/lisp/AuthenticationKeyDataListenerTest.java +++ b/mappingservice/southbound/src/test/java/org/opendaylight/lispflowmapping/southbound/lisp/AuthenticationKeyDataListenerTest.java @@ -15,13 +15,13 @@ import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.junit.MockitoJUnitRunner; -import org.opendaylight.controller.md.sal.binding.api.DataBroker; -import org.opendaylight.controller.md.sal.binding.api.DataObjectModification; -import org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier; -import org.opendaylight.controller.md.sal.binding.api.DataTreeModification; -import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; import org.opendaylight.lispflowmapping.lisp.util.LispAddressUtil; import org.opendaylight.lispflowmapping.mapcache.AuthKeyDb; +import org.opendaylight.mdsal.binding.api.DataBroker; +import org.opendaylight.mdsal.binding.api.DataObjectModification; +import org.opendaylight.mdsal.binding.api.DataTreeIdentifier; +import org.opendaylight.mdsal.binding.api.DataTreeModification; +import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.eid.container.Eid; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.mapping.authkey.container.MappingAuthkey; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.mapping.authkey.container.MappingAuthkeyBuilder; @@ -70,7 +70,7 @@ public class AuthenticationKeyDataListenerTest { public void init() { final InstanceIdentifier instanceIdentifierMock = Mockito.mock(InstanceIdentifier.class); final DataTreeIdentifier dataTreeIdentifier = - new DataTreeIdentifier<>(LogicalDatastoreType.CONFIGURATION, instanceIdentifierMock); + DataTreeIdentifier.create(LogicalDatastoreType.CONFIGURATION, instanceIdentifierMock); change_del = Mockito.mock(DataTreeModification.class); change_subtreeModified = Mockito.mock(DataTreeModification.class); @@ -99,7 +99,6 @@ public class AuthenticationKeyDataListenerTest { * Tests {@link AuthenticationKeyDataListener#onDataTreeChanged} method with DELETE mod type, binary eid. */ @Test - @SuppressWarnings("unchecked") public void onDataTreeChangedTest_delete_BinaryEid() { Mockito.when(mod_del.getDataBefore()).thenReturn(AUTHENTICATION_KEY_1); @@ -111,7 +110,6 @@ public class AuthenticationKeyDataListenerTest { * Tests {@link AuthenticationKeyDataListener#onDataTreeChanged} method with DELETE mod type, Ipv4Prefix eid. */ @Test - @SuppressWarnings("unchecked") public void onDataTreeChangedTest_delete_Ipv4PrefixEid() { Mockito.when(mod_del.getDataBefore()).thenReturn(AUTHENTICATION_KEY_PREFIX); @@ -123,7 +121,6 @@ public class AuthenticationKeyDataListenerTest { * Tests {@link AuthenticationKeyDataListener#onDataTreeChanged} method with SUBTREE_MODIFIED mod type. */ @Test - @SuppressWarnings("unchecked") public void onDataTreeChangedTest_subtreeModified() { Mockito.when(mod_subtreeModified.getDataAfter()).thenReturn(AUTHENTICATION_KEY_2); @@ -135,7 +132,6 @@ public class AuthenticationKeyDataListenerTest { * Tests {@link AuthenticationKeyDataListener#onDataTreeChanged} method with WRITE mod type. */ @Test - @SuppressWarnings("unchecked") public void onDataTreeChangedTest_write() { Mockito.when(mod_write.getDataAfter()).thenReturn(AUTHENTICATION_KEY_3); diff --git a/mappingservice/southbound/src/test/java/org/opendaylight/lispflowmapping/southbound/lisp/LispSouthboundHandlerTest.java b/mappingservice/southbound/src/test/java/org/opendaylight/lispflowmapping/southbound/lisp/LispSouthboundHandlerTest.java index 2df6493a3..b188aa015 100644 --- a/mappingservice/southbound/src/test/java/org/opendaylight/lispflowmapping/southbound/lisp/LispSouthboundHandlerTest.java +++ b/mappingservice/southbound/src/test/java/org/opendaylight/lispflowmapping/southbound/lisp/LispSouthboundHandlerTest.java @@ -39,7 +39,6 @@ import org.mockito.ArgumentCaptor; import org.mockito.ArgumentMatchers; import org.mockito.InOrder; import org.mockito.Mockito; -import org.opendaylight.controller.md.sal.binding.api.DataBroker; import org.opendaylight.lispflowmapping.lisp.serializer.MapNotifySerializer; import org.opendaylight.lispflowmapping.lisp.serializer.MapReplySerializer; import org.opendaylight.lispflowmapping.lisp.type.LispMessage; @@ -52,6 +51,7 @@ import org.opendaylight.lispflowmapping.southbound.LispSouthboundPlugin; import org.opendaylight.lispflowmapping.southbound.lisp.cache.MapRegisterCache; import org.opendaylight.lispflowmapping.southbound.lisp.exception.LispMalformedPacketException; import org.opendaylight.lispflowmapping.tools.junit.BaseTestCase; +import org.opendaylight.mdsal.binding.api.DataBroker; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.iana.afn.safi.rev130704.AddressFamily; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.InstanceIdType; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.binary.address.types.rev160504.Ipv4BinaryAfi; @@ -114,7 +114,6 @@ public class LispSouthboundHandlerTest extends BaseTestCase { int LOCATOR = MapReplyIpv4SingleLocatorPos.LOCATOR + FIRST_LOCATOR_IPV4_LENGTH; } - @SuppressWarnings("unchecked") @BeforeClass public static void initTests() { akdb = Mockito.mock(AuthKeyDb.class);