From: Robert Varga Date: Sun, 11 Feb 2024 23:46:37 +0000 (+0100) Subject: Bump upstreams X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=lispflowmapping.git;a=commitdiff_plain;h=e6633a31621315c04c9e344ba54dca96236ad892 Bump upstreams Adopt: - yangtools-13.0.1 - mdsal-13.0.0 - controller-9.0.0 - aaa-0.19.1 - netconf-7.0.0 Change-Id: Ib107ffb24768c9192caf8024c48ecf9f671c947d Signed-off-by: Robert Varga --- diff --git a/commons/parent/pom.xml b/commons/parent/pom.xml index b3e267f06..700172b96 100644 --- a/commons/parent/pom.xml +++ b/commons/parent/pom.xml @@ -45,14 +45,14 @@ org.opendaylight.mdsal mdsal-artifacts - 12.0.4 + 13.0.0 pom import org.opendaylight.controller controller-artifacts - 8.0.4 + 9.0.0 pom import diff --git a/features/odl-lispflowmapping-inmemorydb/pom.xml b/features/odl-lispflowmapping-inmemorydb/pom.xml index 031411a5c..ee89eb513 100644 --- a/features/odl-lispflowmapping-inmemorydb/pom.xml +++ b/features/odl-lispflowmapping-inmemorydb/pom.xml @@ -29,7 +29,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller controller-artifacts - 8.0.4 + 9.0.0 pom import diff --git a/features/odl-lispflowmapping-inmemorydb/src/main/feature/feature.xml b/features/odl-lispflowmapping-inmemorydb/src/main/feature/feature.xml index d79193711..6de7bc5f6 100644 --- a/features/odl-lispflowmapping-inmemorydb/src/main/feature/feature.xml +++ b/features/odl-lispflowmapping-inmemorydb/src/main/feature/feature.xml @@ -8,6 +8,6 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL --> - odl-mdsal-broker + odl-mdsal-broker diff --git a/features/odl-lispflowmapping-mappingservice/pom.xml b/features/odl-lispflowmapping-mappingservice/pom.xml index b3ada5930..3378760a1 100644 --- a/features/odl-lispflowmapping-mappingservice/pom.xml +++ b/features/odl-lispflowmapping-mappingservice/pom.xml @@ -29,7 +29,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.netconf netconf-artifacts - 6.0.6 + 7.0.0 import pom diff --git a/features/odl-lispflowmapping-mappingservice/src/main/feature/feature.xml b/features/odl-lispflowmapping-mappingservice/src/main/feature/feature.xml index a323182c6..2ae6a076a 100644 --- a/features/odl-lispflowmapping-mappingservice/src/main/feature/feature.xml +++ b/features/odl-lispflowmapping-mappingservice/src/main/feature/feature.xml @@ -8,6 +8,6 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL --> - odl-restconf + odl-restconf diff --git a/features/odl-lispflowmapping-models/pom.xml b/features/odl-lispflowmapping-models/pom.xml index 5fd5d8030..d73bc7c9d 100644 --- a/features/odl-lispflowmapping-models/pom.xml +++ b/features/odl-lispflowmapping-models/pom.xml @@ -29,7 +29,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.mdsal mdsal-artifacts - 12.0.4 + 13.0.0 pom import diff --git a/features/odl-lispflowmapping-models/src/main/feature/feature.xml b/features/odl-lispflowmapping-models/src/main/feature/feature.xml index 844fd9083..1e00b109c 100644 --- a/features/odl-lispflowmapping-models/src/main/feature/feature.xml +++ b/features/odl-lispflowmapping-models/src/main/feature/feature.xml @@ -9,6 +9,6 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL odl-apache-commons-lang3 - odl-mdsal-model-rfc6991 + odl-mdsal-model-rfc6991 diff --git a/features/odl-lispflowmapping-southbound/pom.xml b/features/odl-lispflowmapping-southbound/pom.xml index 1a488c9d9..9782bb063 100644 --- a/features/odl-lispflowmapping-southbound/pom.xml +++ b/features/odl-lispflowmapping-southbound/pom.xml @@ -29,14 +29,14 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller controller-artifacts - 8.0.4 + 9.0.0 import pom org.opendaylight.netconf netconf-artifacts - 6.0.6 + 7.0.0 import pom diff --git a/features/odl-lispflowmapping-southbound/src/main/feature/feature.xml b/features/odl-lispflowmapping-southbound/src/main/feature/feature.xml index c436ceccd..75a9f1454 100644 --- a/features/odl-lispflowmapping-southbound/src/main/feature/feature.xml +++ b/features/odl-lispflowmapping-southbound/src/main/feature/feature.xml @@ -9,7 +9,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL odl-netty-4 - odl-mdsal-broker - odl-restconf + odl-mdsal-broker + odl-restconf diff --git a/integrationtest/pom.xml b/integrationtest/pom.xml index 384f185e9..110b90c9c 100644 --- a/integrationtest/pom.xml +++ b/integrationtest/pom.xml @@ -11,7 +11,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller mdsal-it-parent - 8.0.4 + 9.0.0 diff --git a/mappingservice/api/pom.xml b/mappingservice/api/pom.xml index b42563704..3a696d57e 100644 --- a/mappingservice/api/pom.xml +++ b/mappingservice/api/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.mdsal binding-parent - 12.0.4 + 13.0.0 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 93375c4cd..e02a61e8e 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 @@ -9,6 +9,7 @@ package org.opendaylight.lispflowmapping.dsbackend; import static java.util.Objects.requireNonNull; +import com.google.common.annotations.VisibleForTesting; import com.google.common.util.concurrent.FutureCallback; import com.google.common.util.concurrent.ListenableFuture; import com.google.common.util.concurrent.MoreExecutors; @@ -21,9 +22,7 @@ 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; @@ -36,7 +35,9 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mappingservice.rev15090 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mappingservice.rev150906.mapping.database.LastUpdated; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mappingservice.rev150906.mapping.database.LastUpdatedBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mappingservice.rev150906.mapping.database.VirtualNetworkIdentifier; +import org.opendaylight.yangtools.yang.binding.DataObject; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.yang.common.Empty; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -45,7 +46,7 @@ import org.slf4j.LoggerFactory; * * @author Lorand Jakab */ -public class DataStoreBackEnd implements TransactionChainListener { +public class DataStoreBackEnd { private static final Logger LOG = LoggerFactory.getLogger(DataStoreBackEnd.class); private static final InstanceIdentifier DATABASE_ROOT = InstanceIdentifier.create(MappingDatabase.class); @@ -58,8 +59,30 @@ public class DataStoreBackEnd implements TransactionChainListener { @SuppressFBWarnings(value = "MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR", justification = "Non-final for mocking") public DataStoreBackEnd(DataBroker broker) { LOG.debug("Creating DataStoreBackEnd transaction chain..."); - configTxChain = broker.createMergingTransactionChain(this); - operTxChain = broker.createMergingTransactionChain(this); + configTxChain = broker.createMergingTransactionChain(); + operTxChain = broker.createMergingTransactionChain(); + configTxChain.addCallback(new FutureCallback() { + @Override + public void onSuccess(Empty result) { + onTransactionChainSuccessful(configTxChain); + } + + @Override + public void onFailure(Throwable cause) { + onTransactionChainFailed(configTxChain, cause); + } + }); + operTxChain.addCallback(new FutureCallback() { + @Override + public void onSuccess(Empty result) { + onTransactionChainSuccessful(operTxChain); + } + + @Override + public void onFailure(Throwable cause) { + onTransactionChainFailed(operTxChain, cause); + } + }); } public void addAuthenticationKey(AuthenticationKey authenticationKey) { @@ -223,7 +246,7 @@ public class DataStoreBackEnd implements TransactionChainListener { public void saveLastUpdateTimestamp() { Long timestamp = System.currentTimeMillis(); - LOG.debug("MD-SAL: Saving last update timestamp to operational datastore: {}", new Date(timestamp).toString()); + LOG.debug("MD-SAL: Saving last update timestamp to operational datastore: {}", new Date(timestamp)); writePutTransaction(LAST_UPDATED, new LastUpdatedBuilder().setLastUpdated(timestamp).build(), LogicalDatastoreType.OPERATIONAL, "Couldn't save last update timestamp to operational datastore"); } @@ -259,15 +282,15 @@ public class DataStoreBackEnd implements TransactionChainListener { }; } - private void writePutTransaction( - InstanceIdentifier addIID, U data, LogicalDatastoreType logicalDatastoreType, String errMsg) { + private void writePutTransaction(InstanceIdentifier addIID, U data, + LogicalDatastoreType logicalDatastoreType, String errMsg) { WriteTransaction writeTx = getChain(logicalDatastoreType).newWriteOnlyTransaction(); // TODO: is is a utility method, hence we do not have enough lifecycle knowledge to use plain put() writeTx.mergeParentStructurePut(logicalDatastoreType, addIID, data); writeTx.commit().addCallback(new FutureCallback() { - @Override public void onSuccess(CommitInfo result) { + // No-op } @Override @@ -277,8 +300,8 @@ public class DataStoreBackEnd implements TransactionChainListener { }, MoreExecutors.directExecutor()); } - private U readTransaction( - InstanceIdentifier readIID, LogicalDatastoreType logicalDatastoreType) { + private U readTransaction(InstanceIdentifier readIID, + LogicalDatastoreType logicalDatastoreType) { final ListenableFuture> readFuture; try (ReadTransaction readTx = getChain(logicalDatastoreType).newReadOnlyTransaction()) { readFuture = readTx.read(logicalDatastoreType, readIID); @@ -296,8 +319,8 @@ public class DataStoreBackEnd implements TransactionChainListener { return null; } - private void deleteTransaction( - InstanceIdentifier deleteIID, LogicalDatastoreType logicalDatastoreType, String errMsg) { + private void deleteTransaction(InstanceIdentifier deleteIID, + LogicalDatastoreType logicalDatastoreType, String errMsg) { WriteTransaction writeTx = getChain(logicalDatastoreType).newWriteOnlyTransaction(); writeTx.delete(logicalDatastoreType, deleteIID); writeTx.commit().addCallback(new FutureCallback() { @@ -312,14 +335,13 @@ public class DataStoreBackEnd implements TransactionChainListener { }, MoreExecutors.directExecutor()); } - @Override - public void onTransactionChainFailed(TransactionChain chain, Transaction transaction, Throwable cause) { - LOG.error("Broken chain {} in DataStoreBackEnd, transaction {}, cause {}", chain, transaction.getIdentifier(), - cause.getMessage()); + @VisibleForTesting + void onTransactionChainFailed(TransactionChain chain, Throwable cause) { + LOG.error("Broken chain {} in DataStoreBackEnd, cause {}", chain, cause.getMessage()); } - @Override - public void onTransactionChainSuccessful(TransactionChain chain) { + @VisibleForTesting + 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 4a1e71fe9..69b9a430d 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 @@ -27,7 +27,6 @@ import org.opendaylight.lispflowmapping.lisp.util.LispAddressStringifier; 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; @@ -100,7 +99,7 @@ public class DataStoreBackEndTest { PowerMockito.when(LoggerFactory.getLogger(DataStoreBackEnd.class)) .thenReturn(logMock); Mockito.when(logMock.isDebugEnabled()).thenReturn(true); - Mockito.when(brokerMock.createMergingTransactionChain(Mockito.any(DataStoreBackEnd.class))) + Mockito.when(brokerMock.createMergingTransactionChain()) .thenReturn(txChainMock); dataStoreBackEnd = PowerMockito.spy(new DataStoreBackEnd(brokerMock)); @@ -306,10 +305,7 @@ public class DataStoreBackEndTest { */ @Test public void onTransactionChainFailedTest() { - Transaction asyncTransactionMock = Mockito.mock(Transaction.class); - Mockito.when(asyncTransactionMock.getIdentifier()).thenReturn(new Object()); - dataStoreBackEnd.onTransactionChainFailed(Mockito.mock(TransactionChain.class), asyncTransactionMock, - Mockito.mock(Throwable.class)); + dataStoreBackEnd.onTransactionChainFailed(Mockito.mock(TransactionChain.class), Mockito.mock(Throwable.class)); } /** diff --git a/mappingservice/implementation/pom.xml b/mappingservice/implementation/pom.xml index 55bc216f0..2692504cb 100644 --- a/mappingservice/implementation/pom.xml +++ b/mappingservice/implementation/pom.xml @@ -84,11 +84,11 @@ org.opendaylight.mdsal - mdsal-singleton-common-api + mdsal-singleton-api org.opendaylight.mdsal - mdsal-singleton-dom-impl + mdsal-singleton-impl 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 c9b289944..aeaa3f4d1 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 @@ -31,10 +31,10 @@ 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.binding.api.NotificationService.CompositeListener; -import org.opendaylight.mdsal.binding.api.RpcConsumerRegistry; -import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonService; -import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider; -import org.opendaylight.mdsal.singleton.common.api.ServiceGroupIdentifier; +import org.opendaylight.mdsal.binding.api.RpcService; +import org.opendaylight.mdsal.singleton.api.ClusterSingletonService; +import org.opendaylight.mdsal.singleton.api.ClusterSingletonServiceProvider; +import org.opendaylight.mdsal.singleton.api.ServiceGroupIdentifier; 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.lisp.proto.rev151105.AddMapping; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.GotMapNotify; @@ -76,9 +76,8 @@ import org.slf4j.LoggerFactory; immediate = true, property = "type=default") public class LispMappingService implements IFlowMapping, IMapRequestResultHandler, IMapNotifyHandler, AutoCloseable, ClusterSingletonService { - private static final String LISPFLOWMAPPING_ENTITY_NAME = "lispflowmapping"; - private static final ServiceGroupIdentifier SERVICE_GROUP_IDENTIFIER = ServiceGroupIdentifier.create( - LISPFLOWMAPPING_ENTITY_NAME); + private static final ServiceGroupIdentifier SERVICE_GROUP_IDENTIFIER = + new ServiceGroupIdentifier("lispflowmapping"); private static final Logger LOG = LoggerFactory.getLogger(LispMappingService.class); @@ -104,7 +103,7 @@ public class LispMappingService implements IFlowMapping, IMapRequestResultHandle @Activate public LispMappingService(@Reference final IMappingService mappingService, @Reference final ClusterSingletonServiceProvider clusterSingletonService, - @Reference final RpcConsumerRegistry rpcService, @Reference final NotificationService notificationService) { + @Reference final RpcService rpcService, @Reference final NotificationService notificationService) { this.mapService = mappingService; sendMapRequest = rpcService.getRpc(SendMapRequest.class); sendMapReply = rpcService.getRpc(SendMapReply.class); 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 40ba2704f..88ef3aeea 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,11 +7,11 @@ */ package org.opendaylight.lispflowmapping.implementation.mdsal; -import org.opendaylight.mdsal.binding.api.ClusteredDataTreeChangeListener; import org.opendaylight.mdsal.binding.api.DataBroker; +import org.opendaylight.mdsal.binding.api.DataTreeChangeListener; import org.opendaylight.mdsal.binding.api.DataTreeIdentifier; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; -import org.opendaylight.yangtools.concepts.ListenerRegistration; +import org.opendaylight.yangtools.concepts.Registration; import org.opendaylight.yangtools.yang.binding.DataObject; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; @@ -19,20 +19,17 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; * The superclass for the different MD-SAL data change event listeners. * */ -public abstract class AbstractDataListener implements ClusteredDataTreeChangeListener { +public abstract class AbstractDataListener implements DataTreeChangeListener { private DataBroker broker; private InstanceIdentifier path; - private ListenerRegistration> configRegistration; - private ListenerRegistration> operRegistration; + private Registration configRegistration; + private Registration operRegistration; void registerDataChangeListener() { - final DataTreeIdentifier configDataTreeIdentifier = DataTreeIdentifier.create( - LogicalDatastoreType.CONFIGURATION, path); - final DataTreeIdentifier operDataTreeIdentifier = DataTreeIdentifier.create( - LogicalDatastoreType.OPERATIONAL, path); - - configRegistration = broker.registerDataTreeChangeListener(configDataTreeIdentifier, this); - operRegistration = broker.registerDataTreeChangeListener(operDataTreeIdentifier, this); + configRegistration = broker.registerTreeChangeListener( + DataTreeIdentifier.of(LogicalDatastoreType.CONFIGURATION, path), this); + operRegistration = broker.registerTreeChangeListener( + DataTreeIdentifier.of(LogicalDatastoreType.OPERATIONAL, path), this); } public void closeDataChangeListener() { @@ -47,5 +44,4 @@ public abstract class AbstractDataListener implements Clus void setPath(InstanceIdentifier path) { this.path = path; } - } 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 17a8c21ee..941d001d8 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 @@ -7,7 +7,7 @@ */ package org.opendaylight.lispflowmapping.implementation.mdsal; -import java.util.Collection; +import java.util.List; import org.opendaylight.lispflowmapping.interfaces.mapcache.IMappingSystem; import org.opendaylight.lispflowmapping.lisp.util.LispAddressUtil; import org.opendaylight.mdsal.binding.api.DataBroker; @@ -43,38 +43,38 @@ public class AuthenticationKeyDataListener extends AbstractDataListener> changes) { + public void onDataTreeChanged(List> changes) { for (DataTreeModification change : changes) { final DataObjectModification mod = change.getRootNode(); - if (ModificationType.DELETE == mod.getModificationType()) { - final AuthenticationKey authKey = mod.getDataBefore(); + if (ModificationType.DELETE == mod.modificationType()) { + final AuthenticationKey authKey = mod.dataBefore(); LOG.trace("Received deleted data"); - LOG.trace("Key: {}", change.getRootPath().getRootIdentifier()); + LOG.trace("Key: {}", change.getRootPath().path()); LOG.trace("Value: {}", authKey); final AuthenticationKey convertedAuthKey = convertToBinaryIfNecessary(authKey); mapSystem.removeAuthenticationKey(convertedAuthKey.getEid()); - } else if (ModificationType.WRITE == mod.getModificationType() || ModificationType.SUBTREE_MODIFIED == mod - .getModificationType()) { - if (ModificationType.WRITE == mod.getModificationType()) { + } else if (ModificationType.WRITE == mod.modificationType() + || ModificationType.SUBTREE_MODIFIED == mod.modificationType()) { + if (ModificationType.WRITE == mod.modificationType()) { LOG.trace("Received created data"); } else { LOG.trace("Received updated data"); } // Process newly created or updated authentication keys - final AuthenticationKey authKey = mod.getDataAfter(); + final AuthenticationKey authKey = mod.dataAfter(); - LOG.trace("Key: {}", change.getRootPath().getRootIdentifier()); + LOG.trace("Key: {}", change.getRootPath().path()); LOG.trace("Value: {}", authKey); final AuthenticationKey convertedAuthKey = convertToBinaryIfNecessary(authKey); mapSystem.addAuthenticationKey(convertedAuthKey.getEid(), convertedAuthKey.getMappingAuthkey()); } else { - LOG.warn("Ignoring unhandled modification type {}", mod.getModificationType()); + LOG.warn("Ignoring unhandled modification type {}", mod.modificationType()); } } } @@ -90,6 +90,6 @@ public class AuthenticationKeyDataListener extends AbstractDataListener { } @Override - public void onDataTreeChanged(Collection> changes) { + public void onDataTreeChanged(List> changes) { for (DataTreeModification change : changes) { final DataObjectModification mod = change.getRootNode(); - if (ModificationType.DELETE == mod.getModificationType()) { + if (ModificationType.DELETE == mod.modificationType()) { // Process deleted mappings - final Mapping mapping = mod.getDataBefore(); + final Mapping mapping = mod.dataBefore(); // Only treat mapping changes caused by Northbound, since Southbound changes are already handled // before being persisted, except for cluster slaves @@ -80,16 +79,16 @@ public class MappingDataListener extends AbstractDataListener { } LOG.trace("Received deleted data"); - LOG.trace("Key: {}", change.getRootPath().getRootIdentifier()); + LOG.trace("Key: {}", change.getRootPath().path()); LOG.trace("Value: {}", mapping); final Mapping convertedMapping = convertToBinaryIfNecessary(mapping); mapSystem.removeMapping(convertedMapping.getOrigin(), convertedMapping.getMappingRecord().getEid()); - } else if (ModificationType.SUBTREE_MODIFIED == mod.getModificationType() || ModificationType.WRITE == mod - .getModificationType()) { - final Mapping mapping = mod.getDataAfter(); + } else if (ModificationType.SUBTREE_MODIFIED == mod.modificationType() + || ModificationType.WRITE == mod.modificationType()) { + final Mapping mapping = mod.dataAfter(); // Only treat mapping changes caused by Northbound, since Southbound changes are already handled // before being persisted, except for cluster slaves XXX separate NB and SB to avoid ignoring @@ -101,21 +100,21 @@ public class MappingDataListener extends AbstractDataListener { final Mapping convertedMapping = convertToBinaryIfNecessary(mapping); Eid convertedEid = convertedMapping.getMappingRecord().getEid(); - if (ModificationType.SUBTREE_MODIFIED == mod.getModificationType()) { + if (ModificationType.SUBTREE_MODIFIED == mod.modificationType()) { LOG.trace("Received update data"); - LOG.trace("Key: {}", change.getRootPath().getRootIdentifier()); + LOG.trace("Key: {}", change.getRootPath().path()); LOG.trace("Value: {}", mapping); mapSystem.updateMapping(convertedMapping.getOrigin(), convertedEid, new MappingData(convertedMapping.getMappingRecord())); } else { LOG.trace("Received write data"); - LOG.trace("Key: {}", change.getRootPath().getRootIdentifier()); + LOG.trace("Key: {}", change.getRootPath().path()); LOG.trace("Value: {}", mapping); mapSystem.addMapping(convertedMapping.getOrigin(), convertedEid, new MappingData(convertedMapping.getMappingRecord())); } } else { - LOG.warn("Ignoring unhandled modification type {}", mod.getModificationType()); + LOG.warn("Ignoring unhandled modification type {}", mod.modificationType()); } } } 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 711f2ae6b..49ef8f72f 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 @@ -30,8 +30,8 @@ import org.opendaylight.lispflowmapping.interfaces.mappingservice.IMappingServic 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.binding.api.RpcConsumerRegistry; -import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider; +import org.opendaylight.mdsal.binding.api.RpcService; +import org.opendaylight.mdsal.singleton.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; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.inet.binary.types.rev160303.Ipv4AddressBinary; @@ -87,7 +87,7 @@ public class LispMappingServiceTest { @Mock(name = "sendMapNotify") private static SendMapNotify sendMapNotify; private final NotificationService notificationService = Mockito.mock(NotificationService.class); - private final RpcConsumerRegistry rpcService = Mockito.mock(RpcConsumerRegistry.class); + private final RpcService rpcService = Mockito.mock(RpcService.class); private final IMappingService mappingService = Mockito.mock(IMappingService.class); private final ClusterSingletonServiceProvider clusterSingletonService = Mockito.mock( ClusterSingletonServiceProvider.class); 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 de55207a0..269cb58ab 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 @@ -7,7 +7,6 @@ */ package org.opendaylight.lispflowmapping.implementation.mdsal; -import com.google.common.collect.Lists; import java.util.List; import org.junit.Before; import org.junit.Test; @@ -23,9 +22,11 @@ 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.EidUri; +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; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mappingservice.rev150906.db.instance.AuthenticationKeyBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mappingservice.rev150906.db.instance.AuthenticationKeyKey; +import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mappingservice.rev150906.mapping.database.VirtualNetworkIdentifier; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.opendaylight.yangtools.yang.common.Uint16; @@ -58,9 +59,10 @@ public class AuthenticationKeyDataListenerTest { iMappingSystemMock = Mockito.mock(IMappingSystem.class); authenticationKeyDataListener = new AuthenticationKeyDataListener(dataBrokerMock, iMappingSystemMock); - final InstanceIdentifier instanceIdentifierMock = Mockito.mock(InstanceIdentifier.class); - final DataTreeIdentifier dataTreeIdentifier = - DataTreeIdentifier.create(LogicalDatastoreType.CONFIGURATION, instanceIdentifierMock); + final DataTreeIdentifier dataTreeIdentifier = DataTreeIdentifier.of( + LogicalDatastoreType.CONFIGURATION, + InstanceIdentifier.create(MappingDatabase.class).child(VirtualNetworkIdentifier.class) + .child(AuthenticationKey.class)); change_del = Mockito.mock(DataTreeModification.class); change_subtreeModified = Mockito.mock(DataTreeModification.class); @@ -75,9 +77,9 @@ public class AuthenticationKeyDataListenerTest { Mockito.when(change_subtreeModified.getRootNode()).thenReturn(mod_subtreeModified); Mockito.when(change_write.getRootPath()).thenReturn(dataTreeIdentifier); Mockito.when(change_write.getRootNode()).thenReturn(mod_write); - Mockito.when(mod_del.getModificationType()).thenReturn(ModificationType.DELETE); - Mockito.when(mod_subtreeModified.getModificationType()).thenReturn(ModificationType.SUBTREE_MODIFIED); - Mockito.when(mod_write.getModificationType()).thenReturn(ModificationType.WRITE); + Mockito.when(mod_del.modificationType()).thenReturn(ModificationType.DELETE); + Mockito.when(mod_subtreeModified.modificationType()).thenReturn(ModificationType.SUBTREE_MODIFIED); + Mockito.when(mod_write.modificationType()).thenReturn(ModificationType.WRITE); } /** @@ -85,10 +87,9 @@ public class AuthenticationKeyDataListenerTest { */ @Test public void onDataTreeChangedTest_delete() { - final List> changes = Lists.newArrayList(change_del); - Mockito.when(mod_del.getDataBefore()).thenReturn(AUTHENTICATION_KEY_1); + Mockito.when(mod_del.dataBefore()).thenReturn(AUTHENTICATION_KEY_1); - authenticationKeyDataListener.onDataTreeChanged(changes); + authenticationKeyDataListener.onDataTreeChanged(List.of(change_del)); Mockito.verify(iMappingSystemMock).removeAuthenticationKey(IPV4_EID_1); } @@ -97,10 +98,9 @@ public class AuthenticationKeyDataListenerTest { */ @Test public void onDataTreeChangedTest_write() { - final List> changes = Lists.newArrayList(change_write); - Mockito.when(mod_write.getDataAfter()).thenReturn(AUTHENTICATION_KEY_2); + Mockito.when(mod_write.dataAfter()).thenReturn(AUTHENTICATION_KEY_2); - authenticationKeyDataListener.onDataTreeChanged(changes); + authenticationKeyDataListener.onDataTreeChanged(List.of(change_write)); Mockito.verify(iMappingSystemMock).addAuthenticationKey(IPV4_EID_2, AUTHENTICATION_KEY_2.getMappingAuthkey()); } @@ -109,10 +109,9 @@ public class AuthenticationKeyDataListenerTest { */ @Test public void onDataTreeChangedTest_subtreeModified() { - final List> changes = Lists.newArrayList(change_subtreeModified); - Mockito.when(mod_subtreeModified.getDataAfter()).thenReturn(AUTHENTICATION_KEY_3); + Mockito.when(mod_subtreeModified.dataAfter()).thenReturn(AUTHENTICATION_KEY_3); - authenticationKeyDataListener.onDataTreeChanged(changes); + authenticationKeyDataListener.onDataTreeChanged(List.of(change_subtreeModified)); Mockito.verify(iMappingSystemMock).addAuthenticationKey(IPV4_EID_3, AUTHENTICATION_KEY_3.getMappingAuthkey()); } @@ -121,14 +120,11 @@ public class AuthenticationKeyDataListenerTest { */ @Test public void onDataTreeChangedTest_multipleModTypes() { - final List> changes = - Lists.newArrayList(change_del, change_write, change_subtreeModified); + Mockito.when(mod_del.dataBefore()).thenReturn(AUTHENTICATION_KEY_1); + Mockito.when(mod_write.dataAfter()).thenReturn(AUTHENTICATION_KEY_2); + Mockito.when(mod_subtreeModified.dataAfter()).thenReturn(AUTHENTICATION_KEY_3); - Mockito.when(mod_del.getDataBefore()).thenReturn(AUTHENTICATION_KEY_1); - Mockito.when(mod_write.getDataAfter()).thenReturn(AUTHENTICATION_KEY_2); - Mockito.when(mod_subtreeModified.getDataAfter()).thenReturn(AUTHENTICATION_KEY_3); - - authenticationKeyDataListener.onDataTreeChanged(changes); + authenticationKeyDataListener.onDataTreeChanged(List.of(change_del, change_write, change_subtreeModified)); Mockito.verify(iMappingSystemMock).removeAuthenticationKey(IPV4_EID_1); Mockito.verify(iMappingSystemMock).addAuthenticationKey(IPV4_EID_2, AUTHENTICATION_KEY_2.getMappingAuthkey()); Mockito.verify(iMappingSystemMock).addAuthenticationKey(IPV4_EID_3, AUTHENTICATION_KEY_3.getMappingAuthkey()); @@ -142,12 +138,11 @@ public class AuthenticationKeyDataListenerTest { public void onDataTreeChangedTest_noModType() { final DataTreeModification changeNoModType = Mockito.mock(DataTreeModification.class); final DataObjectModification modNoType = Mockito.mock(DataObjectModification.class); - final List> changes = Lists.newArrayList(changeNoModType); Mockito.when(changeNoModType.getRootNode()).thenReturn(modNoType); - Mockito.when(modNoType.getModificationType()).thenReturn(null); + Mockito.when(modNoType.modificationType()).thenReturn(null); - authenticationKeyDataListener.onDataTreeChanged(changes); + authenticationKeyDataListener.onDataTreeChanged(List.of(changeNoModType)); Mockito.verifyZeroInteractions(iMappingSystemMock); } 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 dbe7807bc..8e5558f64 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 @@ -34,14 +34,15 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.ma import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mappingservice.rev150906.EidUri; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mappingservice.rev150906.MappingChange; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mappingservice.rev150906.MappingChanged; +import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mappingservice.rev150906.MappingDatabase; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mappingservice.rev150906.MappingOrigin; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mappingservice.rev150906.db.instance.Mapping; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mappingservice.rev150906.db.instance.MappingBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mappingservice.rev150906.db.instance.MappingKey; +import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mappingservice.rev150906.mapping.database.VirtualNetworkIdentifier; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; public class MappingDataListenerTest { - private static IMappingSystem iMappingSystemMock; private static NotificationPublishService notificationPublishServiceMock; @@ -77,9 +78,11 @@ public class MappingDataListenerTest { mappingDataListener = new MappingDataListener(dataBrokerMock, iMappingSystemMock, notificationPublishServiceMock); - final InstanceIdentifier instanceIdentifierMock = Mockito.mock(InstanceIdentifier.class); - final DataTreeIdentifier dataTreeIdentifier = - DataTreeIdentifier.create(LogicalDatastoreType.CONFIGURATION, instanceIdentifierMock); + final DataTreeIdentifier dataTreeIdentifier = DataTreeIdentifier.of( + LogicalDatastoreType.CONFIGURATION, + InstanceIdentifier.create(MappingDatabase.class) + .child(VirtualNetworkIdentifier.class) + .child(Mapping.class)); change_del = Mockito.mock(DataTreeModification.class); change_subtreeModified = Mockito.mock(DataTreeModification.class); @@ -94,9 +97,9 @@ public class MappingDataListenerTest { Mockito.when(change_subtreeModified.getRootNode()).thenReturn(mod_subtreeModified); Mockito.when(change_write.getRootPath()).thenReturn(dataTreeIdentifier); Mockito.when(change_write.getRootNode()).thenReturn(mod_write); - Mockito.when(mod_del.getModificationType()).thenReturn(ModificationType.DELETE); - Mockito.when(mod_subtreeModified.getModificationType()).thenReturn(ModificationType.SUBTREE_MODIFIED); - Mockito.when(mod_write.getModificationType()).thenReturn(ModificationType.WRITE); + Mockito.when(mod_del.modificationType()).thenReturn(ModificationType.DELETE); + Mockito.when(mod_subtreeModified.modificationType()).thenReturn(ModificationType.SUBTREE_MODIFIED); + Mockito.when(mod_write.modificationType()).thenReturn(ModificationType.WRITE); Mockito.when(iMappingSystemMock.isMaster()).thenReturn(true); } @@ -106,7 +109,7 @@ public class MappingDataListenerTest { @Test public void onDataTreeChangedTest_delete_NB() throws InterruptedException { final List> changes = Lists.newArrayList(change_del); - Mockito.when(mod_del.getDataBefore()).thenReturn(MAPPING_EID_1_NB); + Mockito.when(mod_del.dataBefore()).thenReturn(MAPPING_EID_1_NB); mappingDataListener.onDataTreeChanged(changes); Mockito.verify(iMappingSystemMock).removeMapping(MappingOrigin.Northbound, IPV4_EID_1); @@ -118,7 +121,7 @@ public class MappingDataListenerTest { @Test public void onDataTreeChangedTest_delete_SB() { final List> changes = Lists.newArrayList(change_del); - Mockito.when(mod_del.getDataBefore()).thenReturn(MAPPING_EID_1_SB); + Mockito.when(mod_del.dataBefore()).thenReturn(MAPPING_EID_1_SB); mappingDataListener.onDataTreeChanged(changes); //Mockito.verifyZeroInteractions(iMappingSystemMock); @@ -135,7 +138,7 @@ public class MappingDataListenerTest { final List> changes = Lists.newArrayList(change_subtreeModified); final MappingChanged mapChanged = MSNotificationInputUtil.toMappingChanged( MAPPING_EID_2_NB.getMappingRecord(), null, null, null, MappingChange.Updated); - Mockito.when(mod_subtreeModified.getDataAfter()).thenReturn(MAPPING_EID_2_NB); + Mockito.when(mod_subtreeModified.dataAfter()).thenReturn(MAPPING_EID_2_NB); mappingDataListener.onDataTreeChanged(changes); final ArgumentCaptor captor = ArgumentCaptor.forClass(MappingData.class); @@ -152,7 +155,7 @@ public class MappingDataListenerTest { @Test public void onDataTreeChangedTest_subtreeModified_SB() { final List> changes = Lists.newArrayList(change_subtreeModified); - Mockito.when(mod_subtreeModified.getDataAfter()).thenReturn(MAPPING_EID_2_SB); + Mockito.when(mod_subtreeModified.dataAfter()).thenReturn(MAPPING_EID_2_SB); mappingDataListener.onDataTreeChanged(changes); //Mockito.verifyZeroInteractions(iMappingSystemMock); @@ -168,7 +171,7 @@ public class MappingDataListenerTest { final List> changes = Lists.newArrayList(change_write); final MappingChanged mapChanged = MSNotificationInputUtil.toMappingChanged( MAPPING_EID_3_NB.getMappingRecord(), null, null, null, MappingChange.Created); - Mockito.when(mod_write.getDataAfter()).thenReturn(MAPPING_EID_3_NB); + Mockito.when(mod_write.dataAfter()).thenReturn(MAPPING_EID_3_NB); mappingDataListener.onDataTreeChanged(changes); final ArgumentCaptor captor = ArgumentCaptor.forClass(MappingData.class); @@ -184,7 +187,7 @@ public class MappingDataListenerTest { @Test public void onDataTreeChangedTest_write_SB() { final List> changes = Lists.newArrayList(change_write); - Mockito.when(mod_write.getDataAfter()).thenReturn(MAPPING_EID_3_SB); + Mockito.when(mod_write.dataAfter()).thenReturn(MAPPING_EID_3_SB); mappingDataListener.onDataTreeChanged(changes); //Mockito.verifyZeroInteractions(iMappingSystemMock); @@ -202,9 +205,9 @@ public class MappingDataListenerTest { final MappingChanged mapChangedSubtreeMod = MSNotificationInputUtil.toMappingChanged( MAPPING_EID_2_NB.getMappingRecord(), null, null, null, MappingChange.Updated); - Mockito.when(mod_del.getDataBefore()).thenReturn(MAPPING_EID_1_NB); - Mockito.when(mod_subtreeModified.getDataAfter()).thenReturn(MAPPING_EID_2_NB); - Mockito.when(mod_write.getDataAfter()).thenReturn(MAPPING_EID_3_SB); + Mockito.when(mod_del.dataBefore()).thenReturn(MAPPING_EID_1_NB); + Mockito.when(mod_subtreeModified.dataAfter()).thenReturn(MAPPING_EID_2_NB); + Mockito.when(mod_write.dataAfter()).thenReturn(MAPPING_EID_3_SB); mappingDataListener.onDataTreeChanged(changes); final ArgumentCaptor captor = ArgumentCaptor.forClass(MappingData.class); @@ -228,7 +231,7 @@ public class MappingDataListenerTest { final List> changes = Lists.newArrayList(changeNoModType); Mockito.when(changeNoModType.getRootNode()).thenReturn(modNoType); - Mockito.when(modNoType.getModificationType()).thenReturn(null); + Mockito.when(modNoType.modificationType()).thenReturn(null); mappingDataListener.onDataTreeChanged(changes); @@ -236,7 +239,6 @@ public class MappingDataListenerTest { Mockito.verifyZeroInteractions(notificationPublishServiceMock); } - private static Mapping getDefaultMapping(Eid eid, MappingOrigin origin) { final MappingRecord record = new MappingRecordBuilder().setEid(eid).build(); return new MappingBuilder() diff --git a/mappingservice/lisp-proto/pom.xml b/mappingservice/lisp-proto/pom.xml index d5d2708ca..e1bdc8ea3 100644 --- a/mappingservice/lisp-proto/pom.xml +++ b/mappingservice/lisp-proto/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.mdsal binding-parent - 12.0.4 + 13.0.0 diff --git a/mappingservice/pom.xml b/mappingservice/pom.xml index 93f152879..3395f56ca 100644 --- a/mappingservice/pom.xml +++ b/mappingservice/pom.xml @@ -38,7 +38,7 @@ org.opendaylight.mdsal mdsal-artifacts - 12.0.4 + 13.0.0 pom import diff --git a/mappingservice/southbound/pom.xml b/mappingservice/southbound/pom.xml index 2db47b713..91ef7ee84 100644 --- a/mappingservice/southbound/pom.xml +++ b/mappingservice/southbound/pom.xml @@ -74,11 +74,11 @@ org.opendaylight.mdsal - mdsal-singleton-common-api + mdsal-singleton-api org.opendaylight.mdsal - mdsal-singleton-dom-impl + mdsal-singleton-impl 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 e481fc0f9..662030455 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 @@ -50,9 +50,9 @@ 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; +import org.opendaylight.mdsal.singleton.api.ClusterSingletonService; +import org.opendaylight.mdsal.singleton.api.ClusterSingletonServiceProvider; +import org.opendaylight.mdsal.singleton.api.ServiceGroupIdentifier; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.inet.binary.types.rev160303.IpAddressBinary; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.MessageType; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.eid.container.Eid; @@ -91,7 +91,7 @@ public class LispSouthboundPlugin implements IConfigLispSouthboundPlugin, AutoCl protected static final Logger LOG = LoggerFactory.getLogger(LispSouthboundPlugin.class); public static final String LISPFLOWMAPPING_ENTITY_NAME = "lispflowmapping"; public static final ServiceGroupIdentifier SERVICE_GROUP_IDENTIFIER = - ServiceGroupIdentifier.create(LISPFLOWMAPPING_ENTITY_NAME); + new ServiceGroupIdentifier(LISPFLOWMAPPING_ENTITY_NAME); private static final String DEFAULT_BINDING_ADDRESS = "0.0.0.0"; private static final long DEFAULT_MAP_REGISTER_CACHE_TIMEOUT = 90000; 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 8da1c3e51..e5bf1bd37 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 @@ -7,15 +7,15 @@ */ package org.opendaylight.lispflowmapping.southbound.lisp; -import java.util.Collection; +import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; 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.DataTreeChangeListener; import org.opendaylight.mdsal.binding.api.DataTreeIdentifier; import org.opendaylight.mdsal.binding.api.DataTreeModification; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; @@ -26,7 +26,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.AuthenticationKey; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mappingservice.rev150906.db.instance.AuthenticationKeyBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mappingservice.rev150906.mapping.database.VirtualNetworkIdentifier; -import org.opendaylight.yangtools.concepts.ListenerRegistration; +import org.opendaylight.yangtools.concepts.Registration; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -35,25 +35,22 @@ import org.slf4j.LoggerFactory; * DataListener for all AuthenticationKey modification events. * */ -public class AuthenticationKeyDataListener implements ClusteredDataTreeChangeListener { +public class AuthenticationKeyDataListener implements DataTreeChangeListener { private static final Logger LOG = LoggerFactory.getLogger(AuthenticationKeyDataListener.class); private final AuthKeyDb akdb; - private final DataBroker broker; private final InstanceIdentifier path; - private final ListenerRegistration> registration; + private final Registration registration; private final ConcurrentHashMap updatedEntries; public AuthenticationKeyDataListener(final DataBroker broker, final AuthKeyDb akdb) { - this.broker = broker; this.akdb = akdb; - this.path = InstanceIdentifier.create(MappingDatabase.class).child(VirtualNetworkIdentifier.class) + path = InstanceIdentifier.create(MappingDatabase.class).child(VirtualNetworkIdentifier.class) .child(AuthenticationKey.class); LOG.trace("Registering AuthenticationKey listener."); - final DataTreeIdentifier dataTreeIdentifier = DataTreeIdentifier.create( - LogicalDatastoreType.CONFIGURATION, path); - registration = broker.registerDataTreeChangeListener(dataTreeIdentifier, this); - this.updatedEntries = new ConcurrentHashMap<>(); + registration = broker.registerTreeChangeListener( + DataTreeIdentifier.of(LogicalDatastoreType.CONFIGURATION, path), this); + updatedEntries = new ConcurrentHashMap<>(); } public void closeDataChangeListener() { @@ -61,32 +58,32 @@ public class AuthenticationKeyDataListener implements ClusteredDataTreeChangeLis } @Override - public synchronized void onDataTreeChanged(Collection> changes) { + public synchronized void onDataTreeChanged(final List> changes) { for (DataTreeModification change : changes) { final DataObjectModification mod = change.getRootNode(); - if (ModificationType.DELETE == mod.getModificationType()) { - final AuthenticationKey authKey = mod.getDataBefore(); + if (ModificationType.DELETE == mod.modificationType()) { + final AuthenticationKey authKey = mod.dataBefore(); LOG.trace("Received deleted data"); - LOG.trace("Key: {}", change.getRootPath().getRootIdentifier()); + LOG.trace("Key: {}", change.getRootPath().path()); LOG.trace("Value: {}", authKey); final AuthenticationKey convertedAuthKey = convertToBinaryIfNecessary(authKey); akdb.removeAuthenticationKey(convertedAuthKey.getEid()); updatedEntries.put(convertedAuthKey.getEid(), System.currentTimeMillis()); - } else if (ModificationType.WRITE == mod.getModificationType() || ModificationType.SUBTREE_MODIFIED == mod - .getModificationType()) { - if (ModificationType.WRITE == mod.getModificationType()) { + } else if (ModificationType.WRITE == mod.modificationType() + || ModificationType.SUBTREE_MODIFIED == mod.modificationType()) { + if (ModificationType.WRITE == mod.modificationType()) { LOG.trace("Received created data"); } else { LOG.trace("Received updated data"); } // Process newly created or updated authentication keys - final AuthenticationKey authKey = mod.getDataAfter(); + final AuthenticationKey authKey = mod.dataAfter(); - LOG.trace("Key: {}", change.getRootPath().getRootIdentifier()); + LOG.trace("Key: {}", change.getRootPath().path()); LOG.trace("Value: {}", authKey); final AuthenticationKey convertedAuthKey = convertToBinaryIfNecessary(authKey); @@ -94,7 +91,7 @@ public class AuthenticationKeyDataListener implements ClusteredDataTreeChangeLis akdb.addAuthenticationKey(convertedAuthKey.getEid(), convertedAuthKey.getMappingAuthkey()); updatedEntries.put(convertedAuthKey.getEid(), System.currentTimeMillis()); } else { - LOG.warn("Ignoring unhandled modification type {}", mod.getModificationType()); + LOG.warn("Ignoring unhandled modification type {}", mod.modificationType()); } } } @@ -112,7 +109,8 @@ public class AuthenticationKeyDataListener implements ClusteredDataTreeChangeLis * @param timeout MapRegister cache timeout value * @return false if any of the EIDs in the eids list was updated in the last timout period, true otherwise */ - public synchronized boolean authKeysForEidsUnchanged(Map eids, long timeout) { + public synchronized boolean authKeysForEidsUnchanged(final Map eids, + final long timeout) { boolean result = true; Long currentTime = System.currentTimeMillis(); for (EidLispAddress eidLispAddress : eids.values()) { @@ -127,7 +125,7 @@ public class AuthenticationKeyDataListener implements ClusteredDataTreeChangeLis return result; } - private static AuthenticationKey convertToBinaryIfNecessary(AuthenticationKey authKey) { + private static AuthenticationKey convertToBinaryIfNecessary(final AuthenticationKey authKey) { Eid originalEid = authKey.getEid(); if (LispAddressUtil.addressNeedsConversionToBinary(originalEid.getAddress())) { AuthenticationKeyBuilder akb = new AuthenticationKeyBuilder(authKey); 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 1f55e415d..3b0a7ab32 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 @@ -31,7 +31,7 @@ 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.mdsal.singleton.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; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.inet.binary.types.rev160303.Ipv4AddressBinary; 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 18bd462ee..c51a657ae 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 @@ -29,7 +29,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.AuthenticationKey; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mappingservice.rev150906.db.instance.AuthenticationKeyBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mappingservice.rev150906.db.instance.AuthenticationKeyKey; -import org.opendaylight.yangtools.concepts.ListenerRegistration; +import org.opendaylight.yangtools.concepts.Registration; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.opendaylight.yangtools.yang.common.Uint16; @@ -38,8 +38,7 @@ public class AuthenticationKeyDataListenerTest { @Mock(name = "akdb") private static AuthKeyDb akdbMock; @Mock(name = "broker") private static DataBroker brokerMock; - @Mock(name = "registration") private static ListenerRegistration - registrationMock; + @Mock(name = "registration") private static Registration registrationMock; @InjectMocks private static AuthenticationKeyDataListener authenticationKeyDataListener; private static DataTreeModification change_del; @@ -73,7 +72,7 @@ public class AuthenticationKeyDataListenerTest { public void init() { final InstanceIdentifier instanceIdentifierMock = Mockito.mock(InstanceIdentifier.class); final DataTreeIdentifier dataTreeIdentifier = - DataTreeIdentifier.create(LogicalDatastoreType.CONFIGURATION, instanceIdentifierMock); + DataTreeIdentifier.of(LogicalDatastoreType.CONFIGURATION, instanceIdentifierMock); change_del = Mockito.mock(DataTreeModification.class); change_subtreeModified = Mockito.mock(DataTreeModification.class); @@ -88,12 +87,12 @@ public class AuthenticationKeyDataListenerTest { Mockito.when(change_subtreeModified.getRootNode()).thenReturn(mod_subtreeModified); Mockito.when(change_write.getRootPath()).thenReturn(dataTreeIdentifier); Mockito.when(change_write.getRootNode()).thenReturn(mod_write); - Mockito.when(mod_del.getModificationType()).thenReturn(DataObjectModification.ModificationType.DELETE); - Mockito.when(mod_subtreeModified.getModificationType()) + Mockito.when(mod_del.modificationType()).thenReturn(DataObjectModification.ModificationType.DELETE); + Mockito.when(mod_subtreeModified.modificationType()) .thenReturn(DataObjectModification.ModificationType.SUBTREE_MODIFIED); - Mockito.when(mod_write.getModificationType()).thenReturn(DataObjectModification.ModificationType.WRITE); + Mockito.when(mod_write.modificationType()).thenReturn(DataObjectModification.ModificationType.WRITE); - Mockito.when(brokerMock.registerDataTreeChangeListener(Mockito.any(DataTreeIdentifier.class), + Mockito.when(brokerMock.registerTreeChangeListener(Mockito.any(DataTreeIdentifier.class), Mockito.any(AuthenticationKeyDataListener.class))).thenReturn(registrationMock); authenticationKeyDataListener = new AuthenticationKeyDataListener(brokerMock, akdbMock); } @@ -103,7 +102,7 @@ public class AuthenticationKeyDataListenerTest { */ @Test public void onDataTreeChangedTest_delete_BinaryEid() { - Mockito.when(mod_del.getDataBefore()).thenReturn(AUTHENTICATION_KEY_1); + Mockito.when(mod_del.dataBefore()).thenReturn(AUTHENTICATION_KEY_1); authenticationKeyDataListener.onDataTreeChanged(Lists.newArrayList(change_del)); Mockito.verify(akdbMock).removeAuthenticationKey(IPV4_BINARY_EID_1); @@ -114,7 +113,7 @@ public class AuthenticationKeyDataListenerTest { */ @Test public void onDataTreeChangedTest_delete_Ipv4PrefixEid() { - Mockito.when(mod_del.getDataBefore()).thenReturn(AUTHENTICATION_KEY_PREFIX); + Mockito.when(mod_del.dataBefore()).thenReturn(AUTHENTICATION_KEY_PREFIX); authenticationKeyDataListener.onDataTreeChanged(Lists.newArrayList(change_del)); Mockito.verify(akdbMock).removeAuthenticationKey(IPV4_PREFIX_BINARY_EID); @@ -125,7 +124,7 @@ public class AuthenticationKeyDataListenerTest { */ @Test public void onDataTreeChangedTest_subtreeModified() { - Mockito.when(mod_subtreeModified.getDataAfter()).thenReturn(AUTHENTICATION_KEY_2); + Mockito.when(mod_subtreeModified.dataAfter()).thenReturn(AUTHENTICATION_KEY_2); authenticationKeyDataListener.onDataTreeChanged(Lists.newArrayList(change_subtreeModified)); Mockito.verify(akdbMock).addAuthenticationKey(IPV4_BINARY_EID_2, MAPPING_AUTHKEY); @@ -136,7 +135,7 @@ public class AuthenticationKeyDataListenerTest { */ @Test public void onDataTreeChangedTest_write() { - Mockito.when(mod_write.getDataAfter()).thenReturn(AUTHENTICATION_KEY_3); + Mockito.when(mod_write.dataAfter()).thenReturn(AUTHENTICATION_KEY_3); authenticationKeyDataListener.onDataTreeChanged(Lists.newArrayList(change_write)); Mockito.verify(akdbMock).addAuthenticationKey(IPV4_BINARY_EID_3, MAPPING_AUTHKEY); @@ -151,7 +150,7 @@ public class AuthenticationKeyDataListenerTest { final DataTreeModification change_nullModType = Mockito.mock(DataTreeModification.class); final DataObjectModification mod_nullModType = Mockito.mock(DataObjectModification.class); Mockito.when(change_nullModType.getRootNode()).thenReturn(mod_nullModType); - Mockito.when(mod_nullModType.getModificationType()).thenReturn(null); + Mockito.when(mod_nullModType.modificationType()).thenReturn(null); authenticationKeyDataListener.onDataTreeChanged(Lists.newArrayList(change_nullModType)); Mockito.verifyNoInteractions(akdbMock); @@ -166,7 +165,7 @@ public class AuthenticationKeyDataListenerTest { Mockito.verify(registrationMock).close(); } - private static AuthenticationKey getAuthenticationKey(Eid eid) { + private static AuthenticationKey getAuthenticationKey(final Eid eid) { return new AuthenticationKeyBuilder() .withKey(new AuthenticationKeyKey(new EidUri("uri-1"))) .setEid(eid)