From 9a5a654be068a0793c7734b2a8a57470cf8aa7cf Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Sun, 11 Feb 2024 18:35:31 +0100 Subject: [PATCH 1/3] Move TransactionChainManagerTest Tests should really be co-located with what they are testing. Move TransactionChainManagerTest to openflowplugin-common. Change-Id: Id3e89709431001148236d339f8e5de3e4a6d67e8 Signed-off-by: Robert Varga --- openflowplugin-common/pom.xml | 4 +- .../txchain/TransactionChainManager.java | 64 +++++++++---------- .../txchain}/TransactionChainManagerTest.java | 9 +-- 3 files changed, 34 insertions(+), 43 deletions(-) rename {openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/device => openflowplugin-common/src/test/java/org/opendaylight/openflowplugin/common/txchain}/TransactionChainManagerTest.java (95%) diff --git a/openflowplugin-common/pom.xml b/openflowplugin-common/pom.xml index 8ea474cf1..19a77f660 100644 --- a/openflowplugin-common/pom.xml +++ b/openflowplugin-common/pom.xml @@ -23,8 +23,8 @@ - org.slf4j - slf4j-simple + org.opendaylight.openflowplugin.model + model-inventory test diff --git a/openflowplugin-common/src/main/java/org/opendaylight/openflowplugin/common/txchain/TransactionChainManager.java b/openflowplugin-common/src/main/java/org/opendaylight/openflowplugin/common/txchain/TransactionChainManager.java index 2b18d3ba3..ba3fcda84 100755 --- a/openflowplugin-common/src/main/java/org/opendaylight/openflowplugin/common/txchain/TransactionChainManager.java +++ b/openflowplugin-common/src/main/java/org/opendaylight/openflowplugin/common/txchain/TransactionChainManager.java @@ -7,6 +7,8 @@ */ package org.opendaylight.openflowplugin.common.txchain; +import static java.util.Objects.requireNonNull; + import com.google.common.base.Preconditions; import com.google.common.util.concurrent.FluentFuture; import com.google.common.util.concurrent.FutureCallback; @@ -20,7 +22,6 @@ import java.util.concurrent.locks.ReadWriteLock; import java.util.concurrent.locks.ReentrantReadWriteLock; import org.checkerframework.checker.lock.qual.GuardedBy; import org.checkerframework.checker.lock.qual.Holding; -import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.mdsal.binding.api.DataBroker; import org.opendaylight.mdsal.binding.api.ReadWriteTransaction; import org.opendaylight.mdsal.binding.api.Transaction; @@ -48,6 +49,7 @@ public class TransactionChainManager implements TransactionChainListener, AutoCl private static final Logger LOG = LoggerFactory.getLogger(TransactionChainManager.class); private static final String CANNOT_WRITE_INTO_TRANSACTION = "Cannot write into transaction."; + private final ReadWriteLock readWriteTransactionLock = new ReentrantReadWriteLock(); private final Object txLock = new Object(); private final DataBroker dataBroker; private final String nodeId; @@ -59,19 +61,15 @@ public class TransactionChainManager implements TransactionChainListener, AutoCl @GuardedBy("txLock") private boolean submitIsEnabled; @GuardedBy("txLock") - private FluentFuture lastSubmittedFuture; - - private volatile boolean initCommit; - + private FluentFuture lastSubmittedFuture = CommitInfo.emptyFluentFuture(); @GuardedBy("txLock") private TransactionChainManagerStatus transactionChainManagerStatus = TransactionChainManagerStatus.SLEEPING; - private ReadWriteLock readWriteTransactionLock = new ReentrantReadWriteLock(); - public TransactionChainManager(@NonNull final DataBroker dataBroker, - @NonNull final String deviceIdentifier) { - this.dataBroker = dataBroker; - this.nodeId = deviceIdentifier; - this.lastSubmittedFuture = CommitInfo.emptyFluentFuture(); + private volatile boolean initCommit; + + public TransactionChainManager(final DataBroker dataBroker, final String nodeId) { + this.dataBroker = requireNonNull(dataBroker); + this.nodeId = requireNonNull(nodeId); } @Holding("txLock") @@ -96,7 +94,7 @@ public class TransactionChainManager implements TransactionChainListener, AutoCl public void activateTransactionManager() { if (LOG.isDebugEnabled()) { LOG.debug("activateTransactionManager for node {} transaction submit is set to {}", - this.nodeId, submitIsEnabled); + nodeId, submitIsEnabled); } synchronized (txLock) { if (TransactionChainManagerStatus.SLEEPING == transactionChainManagerStatus) { @@ -104,9 +102,9 @@ public class TransactionChainManager implements TransactionChainListener, AutoCl "TxChainFactory survive last close."); Preconditions.checkState(writeTx == null, "We have some unexpected WriteTransaction."); - this.transactionChainManagerStatus = TransactionChainManagerStatus.WORKING; - this.submitIsEnabled = false; - this.initCommit = true; + transactionChainManagerStatus = TransactionChainManagerStatus.WORKING; + submitIsEnabled = false; + initCommit = true; createTxChain(); } } @@ -120,7 +118,7 @@ public class TransactionChainManager implements TransactionChainListener, AutoCl */ public FluentFuture deactivateTransactionManager() { if (LOG.isDebugEnabled()) { - LOG.debug("deactivateTransactionManager for node {}", this.nodeId); + LOG.debug("deactivateTransactionManager for node {}", nodeId); } final FluentFuture future; synchronized (txLock) { @@ -136,7 +134,7 @@ public class TransactionChainManager implements TransactionChainListener, AutoCl } @Override - public void onFailure(@NonNull final Throwable throwable) { + public void onFailure(final Throwable throwable) { closeTransactionChain(); } }, MoreExecutors.directExecutor()); @@ -166,7 +164,7 @@ public class TransactionChainManager implements TransactionChainListener, AutoCl @GuardedBy("txLock") @SuppressWarnings("checkstyle:IllegalCatch") - public boolean submitTransaction(boolean doSync) { + public boolean submitTransaction(final boolean doSync) { synchronized (txLock) { if (!submitIsEnabled) { LOG.trace("transaction not committed - submit block issued"); @@ -178,7 +176,7 @@ public class TransactionChainManager implements TransactionChainListener, AutoCl } Preconditions.checkState(TransactionChainManagerStatus.WORKING == transactionChainManagerStatus, "we have here Uncompleted Transaction for node {} and we are not MASTER", - this.nodeId); + nodeId); final FluentFuture submitFuture = writeTx.commit(); lastSubmittedFuture = submitFuture; writeTx = null; @@ -206,13 +204,11 @@ public class TransactionChainManager implements TransactionChainListener, AutoCl public void onFailure(final Throwable throwable) { if (throwable instanceof InterruptedException || throwable instanceof ExecutionException) { LOG.error("Transaction commit failed. ", throwable); + } else if (throwable instanceof CancellationException) { + LOG.warn("Submit task was canceled"); + LOG.trace("Submit exception: ", throwable); } else { - if (throwable instanceof CancellationException) { - LOG.warn("Submit task was canceled"); - LOG.trace("Submit exception: ", throwable); - } else { - LOG.error("Exception during transaction submitting. ", throwable); - } + LOG.error("Exception during transaction submitting. ", throwable); } } }, MoreExecutors.directExecutor()); @@ -225,7 +221,7 @@ public class TransactionChainManager implements TransactionChainListener, AutoCl synchronized (txLock) { ensureTransaction(); if (writeTx == null) { - LOG.debug("WriteTx is null for node {}. Delete {} was not realized.", this.nodeId, path); + LOG.debug("WriteTx is null for node {}. Delete {} was not realized.", nodeId, path); throw new TransactionChainClosedException(CANNOT_WRITE_INTO_TRANSACTION); } @@ -240,7 +236,7 @@ public class TransactionChainManager implements TransactionChainListener, AutoCl synchronized (txLock) { ensureTransaction(); if (writeTx == null) { - LOG.debug("WriteTx is null for node {}. Write data for {} was not realized.", this.nodeId, path); + LOG.debug("WriteTx is null for node {}. Write data for {} was not realized.", nodeId, path); throw new TransactionChainClosedException(CANNOT_WRITE_INTO_TRANSACTION); } @@ -259,7 +255,7 @@ public class TransactionChainManager implements TransactionChainListener, AutoCl synchronized (txLock) { ensureTransaction(); if (writeTx == null) { - LOG.debug("WriteTx is null for node {}. Merge data for {} was not realized.", this.nodeId, path); + LOG.debug("WriteTx is null for node {}. Merge data for {} was not realized.", nodeId, path); throw new TransactionChainClosedException(CANNOT_WRITE_INTO_TRANSACTION); } @@ -276,7 +272,7 @@ public class TransactionChainManager implements TransactionChainListener, AutoCl synchronized (txLock) { ensureTransaction(); if (writeTx == null) { - LOG.debug("WriteTx is null for node {}. Read data for {} was not realized.", this.nodeId, path); + LOG.debug("WriteTx is null for node {}. Read data for {} was not realized.", nodeId, path); throw new TransactionChainClosedException(CANNOT_WRITE_INTO_TRANSACTION); } @@ -289,7 +285,7 @@ public class TransactionChainManager implements TransactionChainListener, AutoCl final Transaction transaction, final Throwable cause) { synchronized (txLock) { if (TransactionChainManagerStatus.WORKING == transactionChainManagerStatus - && chain.equals(this.transactionChain)) { + && chain.equals(transactionChain)) { LOG.warn("Transaction chain failed, recreating chain due to ", cause); closeTransactionChain(); createTxChain(); @@ -320,10 +316,10 @@ public class TransactionChainManager implements TransactionChainListener, AutoCl public FluentFuture shuttingDown() { if (LOG.isDebugEnabled()) { - LOG.debug("TxManager is going SHUTTING_DOWN for node {}", this.nodeId); + LOG.debug("TxManager is going SHUTTING_DOWN for node {}", nodeId); } synchronized (txLock) { - this.transactionChainManagerStatus = TransactionChainManagerStatus.SHUTTING_DOWN; + transactionChainManagerStatus = TransactionChainManagerStatus.SHUTTING_DOWN; return txChainShuttingDown(); } } @@ -347,7 +343,7 @@ public class TransactionChainManager implements TransactionChainListener, AutoCl future = lastSubmittedFuture; } else { if (LOG.isDebugEnabled()) { - LOG.debug("Submitting all transactions for Node {}", this.nodeId); + LOG.debug("Submitting all transactions for Node {}", nodeId); } // hijack md-sal thread future = writeTx.commit(); @@ -360,7 +356,7 @@ public class TransactionChainManager implements TransactionChainListener, AutoCl @Override public void close() { if (LOG.isDebugEnabled()) { - LOG.debug("Setting transactionChainManagerStatus to SHUTTING_DOWN for {}", this.nodeId); + LOG.debug("Setting transactionChainManagerStatus to SHUTTING_DOWN for {}", nodeId); } synchronized (txLock) { closeTransactionChain(); diff --git a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/device/TransactionChainManagerTest.java b/openflowplugin-common/src/test/java/org/opendaylight/openflowplugin/common/txchain/TransactionChainManagerTest.java similarity index 95% rename from openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/device/TransactionChainManagerTest.java rename to openflowplugin-common/src/test/java/org/opendaylight/openflowplugin/common/txchain/TransactionChainManagerTest.java index d6d77acab..776813c9a 100644 --- a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/device/TransactionChainManagerTest.java +++ b/openflowplugin-common/src/test/java/org/opendaylight/openflowplugin/common/txchain/TransactionChainManagerTest.java @@ -5,7 +5,7 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.openflowplugin.impl.device; +package org.opendaylight.openflowplugin.common.txchain; import static org.mockito.ArgumentMatchers.any; @@ -25,9 +25,6 @@ import org.opendaylight.mdsal.binding.api.TransactionChain; import org.opendaylight.mdsal.binding.api.TransactionChainListener; import org.opendaylight.mdsal.common.api.CommitInfo; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; -import org.opendaylight.openflowplugin.api.openflow.device.DeviceInfo; -import org.opendaylight.openflowplugin.common.txchain.TransactionChainManager; -import org.opendaylight.openflowplugin.impl.util.DeviceStateUtil; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node; @@ -48,8 +45,6 @@ public class TransactionChainManagerTest { private ReadWriteTransaction writeTx; @Mock private TransactionChain transactionChain; - @Mock - DeviceInfo deviceInfo; @Mock private KeyedInstanceIdentifier nodeKeyIdent; @@ -64,7 +59,7 @@ public class TransactionChainManagerTest { Mockito.when(dataBroker.createTransactionChain(any(TransactionChainListener.class))) .thenReturn(txChain); nodeId = new NodeId("h2g2:42"); - nodeKeyIdent = DeviceStateUtil.createNodeInstanceIdentifier(nodeId); + nodeKeyIdent = InstanceIdentifier.create(Nodes.class).child(Node.class, new NodeKey(nodeId)); txChainManager = new TransactionChainManager(dataBroker, nodeId.getValue()); Mockito.when(txChain.newReadWriteTransaction()).thenReturn(writeTx); -- 2.43.0 From c0348969a1bad6c197b5ab3d8e676022f4689916 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Mon, 5 Feb 2024 12:59:44 +0100 Subject: [PATCH 2/3] WIP: Bump upstreams Adopt: - yangtools-13.0.1 - mdsal-13.0.0 - controller-9.0.0 - aaa-0.19.1 - netconf-7.0.0-SNAPSHOT Change-Id: Id7893692f463b1841c8a051e11737bddd54163bc Signed-off-by: Robert Varga --- .../ArbitratorReconciliationManagerImpl.java | 4 +- .../bulk/o/matic/FlowWriterTxChain.java | 44 +++++---- .../bulk/o/matic/SalBulkFlowRpcs.java | 4 +- .../bulk/o/matic/FlowWriterTxChainTest.java | 3 +- .../bulk/o/matic/SalBulkFlowRpcsTest.java | 4 +- .../impl/DeviceOwnershipServiceImpl.java | 16 ++-- applications/forwardingrules-manager/pom.xml | 7 +- .../frm/impl/AbstractListeningCommiter.java | 13 ++- .../impl/AbstractNodeConnectorCommitter.java | 4 +- .../frm/impl/DeviceMastership.java | 6 +- .../frm/impl/DeviceMastershipManager.java | 4 +- .../frm/impl/ForwardingRulesManagerImpl.java | 4 +- .../frm/impl/ListenerRegistrationHelper.java | 6 +- .../impl/ListenerRegistrationHelperImpl.java | 4 +- .../frm/impl/AbstractFRMTest.java | 4 +- .../frm/impl/DeviceMastershipManagerTest.java | 6 +- applications/forwardingrules-sync/pom.xml | 2 +- .../frsync/impl/AbstractFrmSyncListener.java | 4 +- .../impl/ForwardingRulesSyncProvider.java | 14 +-- .../frsync/impl/SimplifiedConfigListener.java | 4 +- .../impl/SimplifiedOperationalListener.java | 4 +- .../impl/clustering/DeviceMastership.java | 12 +-- .../clustering/DeviceMastershipManager.java | 2 +- .../frsync/impl/strategy/GroupForwarder.java | 4 +- .../frsync/impl/strategy/MeterForwarder.java | 4 +- .../impl/ForwardingRulesSyncProviderTest.java | 6 +- .../impl/SimplifiedConfigListenerTest.java | 10 +-- .../SimplifiedOperationalListenerTest.java | 24 ++--- .../DeviceMastershipManagerTest.java | 6 +- .../impl/clustering/DeviceMastershipTest.java | 2 +- .../impl/strategy/GroupForwarderTest.java | 4 +- .../impl/strategy/MeterForwarderTest.java | 4 +- .../applications/lldpspeaker/LLDPSpeaker.java | 6 +- ...NodeConnectorInventoryEventTranslator.java | 36 ++++---- .../lldpspeaker/LLDPSpeakerTest.java | 4 +- ...ConnectorInventoryEventTranslatorTest.java | 6 +- .../ofswitch/config/DefaultConfigPusher.java | 24 +++-- .../config/DefaultConfigPusherTest.java | 14 +-- .../LLDPPacketPuntEnforcer.java | 16 ++-- .../LLDPDataTreeChangeListenerTest.java | 8 +- applications/topology-lldp-discovery/pom.xml | 5 ++ .../topology/lldp/LLDPLinkAger.java | 18 ++-- applications/topology-manager/pom.xml | 2 +- .../manager/DataTreeChangeListenerImpl.java | 6 +- .../manager/FlowCapableTopologyProvider.java | 11 ++- .../manager/NodeChangeListenerImpl.java | 12 +-- .../TerminationPointChangeListenerImpl.java | 15 ++-- .../manager/DataTreeChangeListenerBase.java | 10 +-- .../FlowCapableTopologyExporterTest.java | 5 +- .../manager/NodeChangeListenerImplTest.java | 10 +-- ...erminationPointChangeListenerImplTest.java | 15 ++-- .../openflowjava-extension-nicira/pom.xml | 26 +++--- .../openflowplugin/extension/test/Test.java | 5 +- .../pom.xml | 2 +- .../src/main/feature/feature.xml | 2 +- .../odl-openflowplugin-nsf-model/pom.xml | 4 +- .../src/main/feature/feature.xml | 4 +- .../odl-openflowplugin-southbound/pom.xml | 2 +- .../src/main/feature/feature.xml | 2 +- .../odl-openflowjava-protocol/pom.xml | 4 +- .../src/main/feature/feature.xml | 4 +- openflowplugin-api/pom.xml | 2 +- .../api/openflow/OFPContext.java | 4 +- .../api/openflow/device/DeviceInfo.java | 2 +- .../api/openflow/lifecycle/ContextChain.java | 6 +- .../txchain/TransactionChainManager.java | 75 ++++++++-------- .../txchain/TransactionChainManagerTest.java | 90 +++++++++---------- .../impl/ForwardingPingPongDataBroker.java | 15 ++-- .../impl/OpenFlowPluginProviderImpl.java | 2 +- .../connection/ConnectionContextImpl.java | 4 +- .../connection/ConnectionManagerImpl.java | 18 ++-- .../impl/device/DeviceContextImpl.java | 2 +- .../lifecycle/ContextChainHolderImpl.java | 29 +++--- .../impl/lifecycle/ContextChainImpl.java | 4 +- .../impl/lifecycle/GuardedContextImpl.java | 2 +- .../impl/role/RoleContextImpl.java | 3 +- .../impl/rpc/RpcContextImpl.java | 2 +- .../statistics/StatisticsContextImpl.java | 22 ++--- .../openflowplugin/impl/util/BarrierUtil.java | 3 +- .../impl/OpenFlowPluginProviderImplTest.java | 6 +- .../impl/device/DeviceContextImplTest.java | 4 +- .../lifecycle/ContextChainHolderImplTest.java | 26 ++---- .../impl/lifecycle/ContextChainImplTest.java | 11 ++- .../impl/rpc/RpcContextImplTest.java | 5 +- .../sal/convertor/PacketOutConvertor.java | 31 ++++--- parent/pom.xml | 4 +- ...aTreeChangeListenerRegistrationHolder.java | 6 +- .../LearningSwitchManagerSimpleImpl.java | 12 ++- .../learningswitch/WakeupOnNode.java | 10 +-- .../multi/LearningSwitchManagerMultiImpl.java | 14 ++- .../SampleFlowCapableNodeListener.java | 11 ++- .../samples/consumer/SimpleDropFirewall.java | 4 +- .../testcommon/DropTestRpcSender.java | 4 +- 93 files changed, 453 insertions(+), 497 deletions(-) diff --git a/applications/arbitratorreconciliation/impl/src/main/java/org/opendaylight/openflowplugin/applications/arbitratorreconciliation/impl/ArbitratorReconciliationManagerImpl.java b/applications/arbitratorreconciliation/impl/src/main/java/org/opendaylight/openflowplugin/applications/arbitratorreconciliation/impl/ArbitratorReconciliationManagerImpl.java index b8e605c3e..0b6c59de7 100644 --- a/applications/arbitratorreconciliation/impl/src/main/java/org/opendaylight/openflowplugin/applications/arbitratorreconciliation/impl/ArbitratorReconciliationManagerImpl.java +++ b/applications/arbitratorreconciliation/impl/src/main/java/org/opendaylight/openflowplugin/applications/arbitratorreconciliation/impl/ArbitratorReconciliationManagerImpl.java @@ -30,8 +30,8 @@ import javax.annotation.PreDestroy; import javax.inject.Inject; import javax.inject.Singleton; import org.eclipse.jdt.annotation.NonNullByDefault; -import org.opendaylight.mdsal.binding.api.RpcConsumerRegistry; import org.opendaylight.mdsal.binding.api.RpcProviderService; +import org.opendaylight.mdsal.binding.api.RpcService; import org.opendaylight.openflowplugin.api.OFConstants; import org.opendaylight.openflowplugin.api.openflow.device.DeviceInfo; import org.opendaylight.openflowplugin.applications.reconciliation.NotificationRegistration; @@ -129,7 +129,7 @@ public final class ArbitratorReconciliationManagerImpl implements Reconciliation @Inject @Activate public ArbitratorReconciliationManagerImpl(@Reference final ReconciliationManager reconciliationManager, - @Reference final RpcProviderService rpcProviderService, @Reference final RpcConsumerRegistry rpcService, + @Reference final RpcProviderService rpcProviderService, @Reference final RpcService rpcService, @Reference final UpgradeState upgradeState) { this.rpcProviderService = requireNonNull(rpcProviderService); this.upgradeState = requireNonNull(upgradeState); diff --git a/applications/bulk-o-matic/src/main/java/org/opendaylight/openflowplugin/applications/bulk/o/matic/FlowWriterTxChain.java b/applications/bulk-o-matic/src/main/java/org/opendaylight/openflowplugin/applications/bulk/o/matic/FlowWriterTxChain.java index 91dbcaa47..067b6d343 100644 --- a/applications/bulk-o-matic/src/main/java/org/opendaylight/openflowplugin/applications/bulk/o/matic/FlowWriterTxChain.java +++ b/applications/bulk-o-matic/src/main/java/org/opendaylight/openflowplugin/applications/bulk/o/matic/FlowWriterTxChain.java @@ -13,14 +13,13 @@ import java.util.concurrent.ExecutorService; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicLong; import org.opendaylight.mdsal.binding.api.DataBroker; -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.LogicalDatastoreType; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.table.Flow; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.Match; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.yang.common.Empty; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -33,14 +32,14 @@ public class FlowWriterTxChain implements FlowCounterMBean { private final AtomicInteger countDpnWriteCompletion = new AtomicInteger(); private final AtomicLong taskCompletionTime = new AtomicLong(); - public FlowWriterTxChain(final DataBroker dataBroker, ExecutorService flowPusher) { + public FlowWriterTxChain(final DataBroker dataBroker, final ExecutorService flowPusher) { this.dataBroker = dataBroker; this.flowPusher = flowPusher; LOG.info("Using Ping Pong Flow Tester Impl"); } - public void addFlows(Integer dpnCount, Integer flowsPerDPN, int batchSize, int sleepMillis, int sleepAfter, - short startTableId, short endTableId, boolean isCreateParents) { + public void addFlows(final Integer dpnCount, final Integer flowsPerDPN, final int batchSize, final int sleepMillis, + final int sleepAfter, final short startTableId, final short endTableId, final boolean isCreateParents) { LOG.info("Using Transaction Chain Flow Writer Impl"); countDpnWriteCompletion.set(dpnCount); startTime = System.nanoTime(); @@ -51,8 +50,8 @@ public class FlowWriterTxChain implements FlowCounterMBean { } } - public void deleteFlows(Integer dpnCount, Integer flowsPerDPN, int batchSize, short startTableId, - short endTableId) { + public void deleteFlows(final Integer dpnCount, final Integer flowsPerDPN, final int batchSize, + final short startTableId, final short endTableId) { LOG.info("Using Transaction Chain Flow Writer Impl"); countDpnWriteCompletion.set(dpnCount); for (int i = 1; i <= dpnCount; i++) { @@ -72,7 +71,7 @@ public class FlowWriterTxChain implements FlowCounterMBean { return taskCompletionTime.get(); } - private class FlowHandlerTask implements Runnable, TransactionChainListener { + private class FlowHandlerTask implements Runnable, FutureCallback { private final String dpId; private final boolean add; private final int flowsPerDpn; @@ -84,7 +83,7 @@ public class FlowWriterTxChain implements FlowCounterMBean { private final boolean isCreateParents; private final AtomicInteger remainingTxReturn = new AtomicInteger(0); - private TransactionChain txChain; + private TransactionChain txChain = null; FlowHandlerTask(final String dpId, final int flowsPerDpn, @@ -116,7 +115,8 @@ public class FlowWriterTxChain implements FlowCounterMBean { int newBatchSize = batchSize; LOG.info("Number of Txn for dpId: {} is: {}", dpId, numSubmits); - txChain = dataBroker.createMergingTransactionChain(this); + txChain = dataBroker.createMergingTransactionChain(); + txChain.addCallback(this); LOG.info("Creating new txChain: {} for dpid: {}", txChain, dpId); for (int i = 1; i <= numSubmits; i++) { @@ -160,20 +160,18 @@ public class FlowWriterTxChain implements FlowCounterMBean { } @Override - public void onTransactionChainFailed(TransactionChain transactionChain, - Transaction asyncTransaction, Throwable throwable) { - LOG.error("Transaction chain: {} FAILED at asyncTransaction: {} due to: ", transactionChain, - asyncTransaction.getIdentifier(), throwable); - transactionChain.close(); + public void onFailure(final Throwable throwable) { + LOG.error("Transaction chain: {} FAILED due to: ", txChain, throwable); + txChain.close(); } @Override - public void onTransactionChainSuccessful(TransactionChain transactionChain) { - LOG.info("Transaction chain: {} closed successfully.", transactionChain); + public void onSuccess(final Empty result) { + LOG.info("Transaction chain: {} closed successfully.", txChain); } - private void writeTxToDs(WriteTransaction writeTransaction, String flowId, InstanceIdentifier flowIid, - Flow flow, Integer sourceIp, Short tableId) { + private void writeTxToDs(final WriteTransaction writeTransaction, final String flowId, + final InstanceIdentifier flowIid, final Flow flow, final Integer sourceIp, final Short tableId) { if (add) { LOG.trace("Adding flow for flowId: {}, flowIid: {}", flowId, flowIid); if (isCreateParents) { @@ -194,8 +192,8 @@ public class FlowWriterTxChain implements FlowCounterMBean { private final short beginTableId; private final TransactionChain txChain; - DsCallBack(String dpId, short beginTableId, short endTableId, int sourceIp, - TransactionChain txChain) { + DsCallBack(final String dpId, final short beginTableId, final short endTableId, final int sourceIp, + final TransactionChain txChain) { this.dpId = dpId; this.sourceIp = sourceIp; this.endTableId = endTableId; @@ -204,7 +202,7 @@ public class FlowWriterTxChain implements FlowCounterMBean { } @Override - public void onSuccess(Object notUsed) { + public void onSuccess(final Object notUsed) { if (remainingTxReturn.decrementAndGet() <= 0) { long dur = System.nanoTime() - startTime; LOG.info("Completed all flows installation for: dpid: {} in {}ns", dpId, dur); @@ -218,7 +216,7 @@ public class FlowWriterTxChain implements FlowCounterMBean { } @Override - public void onFailure(Throwable error) { + public void onFailure(final Throwable error) { if (remainingTxReturn.decrementAndGet() <= 0) { long dur = System.nanoTime() - startTime; LOG.info("Completed all flows installation for: dpid: {} in {}ns", dpId, dur); diff --git a/applications/bulk-o-matic/src/main/java/org/opendaylight/openflowplugin/applications/bulk/o/matic/SalBulkFlowRpcs.java b/applications/bulk-o-matic/src/main/java/org/opendaylight/openflowplugin/applications/bulk/o/matic/SalBulkFlowRpcs.java index 2ae748b89..22aa5d4a5 100644 --- a/applications/bulk-o-matic/src/main/java/org/opendaylight/openflowplugin/applications/bulk/o/matic/SalBulkFlowRpcs.java +++ b/applications/bulk-o-matic/src/main/java/org/opendaylight/openflowplugin/applications/bulk/o/matic/SalBulkFlowRpcs.java @@ -36,8 +36,8 @@ import javax.management.NotCompliantMBeanException; import javax.management.ObjectName; import org.opendaylight.infrautils.utils.concurrent.LoggingFutures; import org.opendaylight.mdsal.binding.api.DataBroker; -import org.opendaylight.mdsal.binding.api.RpcConsumerRegistry; import org.opendaylight.mdsal.binding.api.RpcProviderService; +import org.opendaylight.mdsal.binding.api.RpcService; import org.opendaylight.mdsal.binding.api.WriteTransaction; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.yang.gen.v1.urn.opendaylight.bulk.flow.service.rev150608.AddFlowsDs; @@ -117,7 +117,7 @@ public final class SalBulkFlowRpcs implements AutoCloseable { @Inject @Activate - public SalBulkFlowRpcs(@Reference final DataBroker dataBroker, @Reference final RpcConsumerRegistry rpcService, + public SalBulkFlowRpcs(@Reference final DataBroker dataBroker, @Reference final RpcService rpcService, @Reference final RpcProviderService rpcProviderService) { this.dataBroker = requireNonNull(dataBroker); addFlow = rpcService.getRpc(AddFlow.class); diff --git a/applications/bulk-o-matic/src/test/java/org/opendaylight/openflowplugin/applications/bulk/o/matic/FlowWriterTxChainTest.java b/applications/bulk-o-matic/src/test/java/org/opendaylight/openflowplugin/applications/bulk/o/matic/FlowWriterTxChainTest.java index 5ed37cb01..882ee60d3 100644 --- a/applications/bulk-o-matic/src/test/java/org/opendaylight/openflowplugin/applications/bulk/o/matic/FlowWriterTxChainTest.java +++ b/applications/bulk-o-matic/src/test/java/org/opendaylight/openflowplugin/applications/bulk/o/matic/FlowWriterTxChainTest.java @@ -53,8 +53,7 @@ public class FlowWriterTxChainTest { final TransactionChain mockedTxChain = mock(TransactionChain.class); when(mockedTxChain.newWriteOnlyTransaction()).thenReturn(writeTransaction); - doReturn(mockedTxChain).when(mockDataBroker) - .createMergingTransactionChain(ArgumentMatchers.any()); + doReturn(mockedTxChain).when(mockDataBroker).createMergingTransactionChain(); doReturn(CommitInfo.emptyFluentFuture()).when(writeTransaction).commit(); diff --git a/applications/bulk-o-matic/src/test/java/org/opendaylight/openflowplugin/applications/bulk/o/matic/SalBulkFlowRpcsTest.java b/applications/bulk-o-matic/src/test/java/org/opendaylight/openflowplugin/applications/bulk/o/matic/SalBulkFlowRpcsTest.java index 5abbb0076..3de08eed6 100644 --- a/applications/bulk-o-matic/src/test/java/org/opendaylight/openflowplugin/applications/bulk/o/matic/SalBulkFlowRpcsTest.java +++ b/applications/bulk-o-matic/src/test/java/org/opendaylight/openflowplugin/applications/bulk/o/matic/SalBulkFlowRpcsTest.java @@ -30,8 +30,8 @@ import org.mockito.Mockito; import org.mockito.junit.MockitoJUnitRunner; import org.opendaylight.mdsal.binding.api.DataBroker; import org.opendaylight.mdsal.binding.api.ReadTransaction; -import org.opendaylight.mdsal.binding.api.RpcConsumerRegistry; import org.opendaylight.mdsal.binding.api.RpcProviderService; +import org.opendaylight.mdsal.binding.api.RpcService; import org.opendaylight.mdsal.binding.api.WriteTransaction; import org.opendaylight.mdsal.common.api.CommitInfo; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; @@ -84,7 +84,7 @@ public class SalBulkFlowRpcsTest { @Mock private DataBroker mockDataBroker; @Mock - private RpcConsumerRegistry mockRpcService; + private RpcService mockRpcService; @Mock private RpcProviderService mockRpcProviderService; @Mock diff --git a/applications/device-ownership-service/src/main/java/org/opendaylight/openflowplugin/applications/deviceownershipservice/impl/DeviceOwnershipServiceImpl.java b/applications/device-ownership-service/src/main/java/org/opendaylight/openflowplugin/applications/deviceownershipservice/impl/DeviceOwnershipServiceImpl.java index 9133fd71a..892b2d33b 100644 --- a/applications/device-ownership-service/src/main/java/org/opendaylight/openflowplugin/applications/deviceownershipservice/impl/DeviceOwnershipServiceImpl.java +++ b/applications/device-ownership-service/src/main/java/org/opendaylight/openflowplugin/applications/deviceownershipservice/impl/DeviceOwnershipServiceImpl.java @@ -16,10 +16,10 @@ import java.util.regex.Pattern; import javax.annotation.PreDestroy; import javax.inject.Inject; import javax.inject.Singleton; -import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipChange; import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipListener; import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipService; import org.opendaylight.mdsal.eos.common.api.EntityOwnershipState; +import org.opendaylight.mdsal.eos.common.api.EntityOwnershipStateChange; import org.opendaylight.openflowplugin.applications.deviceownershipservice.DeviceOwnershipService; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.mdsal.core.general.entity.rev150930.Entity; import org.opendaylight.yangtools.concepts.Registration; @@ -75,17 +75,17 @@ public final class DeviceOwnershipServiceImpl } @Override - public void ownershipChanged(final EntityOwnershipChange ownershipChange) { - final String entityName = ownershipChange.getEntity().getIdentifier().firstKeyOf(Entity.class).getName(); + public void ownershipChanged(final org.opendaylight.mdsal.eos.binding.api.Entity entity, + final EntityOwnershipStateChange change, final boolean inJeopardy) { + final String entityName = entity.getIdentifier().firstKeyOf(Entity.class).getName(); if (entityName != null && isOpenFlowEntity(entityName)) { - LOG.info("Entity ownership change received for node : {} : {}", entityName, ownershipChange); - if (!ownershipChange.getState().isOwner() && !ownershipChange.getState().hasOwner() - && !ownershipChange.inJeopardy()) { + LOG.info("Entity ownership change received for node : {} : {}", entityName, change); + if (!change.isOwner() && !change.hasOwner() && !inJeopardy) { LOG.debug("Entity for node {} is unregistered.", entityName); ownershipStateCache.remove(entityName); - } else if (!ownershipChange.getState().isOwner() && ownershipChange.getState().hasOwner()) { + } else if (!change.isOwner() && change.hasOwner()) { ownershipStateCache.put(entityName, EntityOwnershipState.OWNED_BY_OTHER); - } else if (ownershipChange.getState().isOwner()) { + } else if (change.isOwner()) { LOG.trace("Entity for node : {} is registered", entityName); ownershipStateCache.put(entityName, EntityOwnershipState.IS_OWNER); } diff --git a/applications/forwardingrules-manager/pom.xml b/applications/forwardingrules-manager/pom.xml index dad42d742..75c6f9204 100644 --- a/applications/forwardingrules-manager/pom.xml +++ b/applications/forwardingrules-manager/pom.xml @@ -13,6 +13,11 @@ bundle + + com.github.spotbugs + spotbugs-annotations + true + com.guicedee.services javax.inject @@ -41,7 +46,7 @@ org.opendaylight.mdsal - mdsal-singleton-common-api + mdsal-singleton-api org.opendaylight.openflowplugin diff --git a/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/impl/AbstractListeningCommiter.java b/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/impl/AbstractListeningCommiter.java index a7eea7b85..7634e13a4 100644 --- a/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/impl/AbstractListeningCommiter.java +++ b/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/impl/AbstractListeningCommiter.java @@ -13,7 +13,7 @@ import com.google.common.util.concurrent.FutureCallback; import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.MoreExecutors; import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; -import java.util.Collection; +import java.util.List; import org.opendaylight.mdsal.binding.api.DataBroker; import org.opendaylight.mdsal.binding.api.DataObjectModification; import org.opendaylight.mdsal.binding.api.DataTreeIdentifier; @@ -24,7 +24,6 @@ import org.opendaylight.openflowplugin.applications.frm.ForwardingRulesManager; import org.opendaylight.openflowplugin.applications.frm.NodeConfigurator; import org.opendaylight.serviceutils.srm.RecoverableListener; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNode; -import org.opendaylight.yangtools.concepts.ObjectRegistration; import org.opendaylight.yangtools.concepts.Registration; import org.opendaylight.yangtools.yang.binding.DataObject; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; @@ -61,7 +60,7 @@ public abstract class AbstractListeningCommiter @SuppressWarnings("checkstyle:IllegalCatch") @Override - public void onDataTreeChanged(final Collection> changes) { + public void onDataTreeChanged(final List> changes) { LOG.trace("Received data changes :{}", requireNonNull(changes, "Changes may not be null!")); for (DataTreeModification change : changes) { @@ -113,11 +112,11 @@ public abstract class AbstractListeningCommiter @Override public final void registerListener() { Futures.addCallback(registrationHelper.checkedRegisterListener( - DataTreeIdentifier.create(LogicalDatastoreType.CONFIGURATION, getWildCardPath()), this), - new FutureCallback<>() { + DataTreeIdentifier.of(LogicalDatastoreType.CONFIGURATION, getWildCardPath()), this), + new FutureCallback() { @Override - public void onSuccess(final ObjectRegistration flowListenerRegistration) { - LOG.info("{} registered successfully", flowListenerRegistration.getInstance()); + public void onSuccess(final Registration flowListenerRegistration) { + LOG.info("{} registered successfully", this); listenerRegistration = flowListenerRegistration; } diff --git a/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/impl/AbstractNodeConnectorCommitter.java b/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/impl/AbstractNodeConnectorCommitter.java index b693452f6..1f4145cba 100644 --- a/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/impl/AbstractNodeConnectorCommitter.java +++ b/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/impl/AbstractNodeConnectorCommitter.java @@ -9,7 +9,7 @@ package org.opendaylight.openflowplugin.applications.frm.impl; import static java.util.Objects.requireNonNull; -import java.util.Collection; +import java.util.List; import org.opendaylight.mdsal.binding.api.DataObjectModification; import org.opendaylight.mdsal.binding.api.DataTreeModification; import org.opendaylight.openflowplugin.applications.frm.FlowCapableNodeConnectorCommitter; @@ -21,7 +21,7 @@ public abstract class AbstractNodeConnectorCommitter implements FlowCapableNodeConnectorCommitter { @Override - public void onDataTreeChanged(final Collection> changes) { + public void onDataTreeChanged(final List> changes) { requireNonNull(changes, "Changes may not be null!"); for (DataTreeModification change : changes) { diff --git a/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/impl/DeviceMastership.java b/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/impl/DeviceMastership.java index 6aa463b3a..e860de0d4 100644 --- a/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/impl/DeviceMastership.java +++ b/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/impl/DeviceMastership.java @@ -12,8 +12,8 @@ import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; import java.util.concurrent.atomic.AtomicBoolean; import org.opendaylight.mdsal.binding.api.RpcProviderService; -import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonService; -import org.opendaylight.mdsal.singleton.common.api.ServiceGroupIdentifier; +import org.opendaylight.mdsal.singleton.api.ClusterSingletonService; +import org.opendaylight.mdsal.singleton.api.ServiceGroupIdentifier; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNode; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes; @@ -42,7 +42,7 @@ public class DeviceMastership implements ClusterSingletonService, AutoCloseable public DeviceMastership(final NodeId nodeId) { this.nodeId = nodeId; - identifier = ServiceGroupIdentifier.create(nodeId.getValue()); + identifier = new ServiceGroupIdentifier(nodeId.getValue()); fcnIID = InstanceIdentifier.create(Nodes.class).child(Node.class, new NodeKey(nodeId)) .augmentation(FlowCapableNode.class); path = InstanceIdentifier.create(Nodes.class).child(Node.class, new NodeKey(nodeId)); diff --git a/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/impl/DeviceMastershipManager.java b/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/impl/DeviceMastershipManager.java index 329904333..35c764223 100644 --- a/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/impl/DeviceMastershipManager.java +++ b/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/impl/DeviceMastershipManager.java @@ -15,7 +15,7 @@ import com.google.common.util.concurrent.ListenableFuture; import com.google.common.util.concurrent.MoreExecutors; import com.google.common.util.concurrent.SettableFuture; import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; -import java.util.Collection; +import java.util.List; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.locks.ReentrantLock; @@ -97,7 +97,7 @@ public class DeviceMastershipManager implements ClusteredDataTreeChangeListener< } @Override - public void onDataTreeChanged(@NonNull final Collection> changes) { + public void onDataTreeChanged(final List> changes) { for (DataTreeModification change : changes) { final InstanceIdentifier key = change.getRootPath().getRootIdentifier(); final DataObjectModification mod = change.getRootNode(); diff --git a/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/impl/ForwardingRulesManagerImpl.java b/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/impl/ForwardingRulesManagerImpl.java index b7b180848..38ae60307 100644 --- a/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/impl/ForwardingRulesManagerImpl.java +++ b/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/impl/ForwardingRulesManagerImpl.java @@ -18,8 +18,8 @@ import javax.inject.Singleton; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.mdsal.binding.api.DataBroker; import org.opendaylight.mdsal.binding.api.ReadTransaction; -import org.opendaylight.mdsal.binding.api.RpcConsumerRegistry; import org.opendaylight.mdsal.binding.api.RpcProviderService; +import org.opendaylight.mdsal.binding.api.RpcService; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.openflowplugin.api.openflow.FlowGroupCacheManager; import org.opendaylight.openflowplugin.api.openflow.configuration.ConfigurationService; @@ -110,7 +110,7 @@ public final class ForwardingRulesManagerImpl implements ForwardingRulesManager, @Inject public ForwardingRulesManagerImpl(final DataBroker dataBroker, - final RpcConsumerRegistry rpcRegistry, + final RpcService rpcRegistry, final RpcProviderService rpcProviderService, final ForwardingRulesManagerConfig config, final MastershipChangeServiceManager mastershipChangeServiceManager, diff --git a/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/impl/ListenerRegistrationHelper.java b/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/impl/ListenerRegistrationHelper.java index 9b3b98928..ba11fc359 100644 --- a/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/impl/ListenerRegistrationHelper.java +++ b/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/impl/ListenerRegistrationHelper.java @@ -11,12 +11,12 @@ import com.google.common.util.concurrent.ListenableFuture; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.mdsal.binding.api.ClusteredDataTreeChangeListener; import org.opendaylight.mdsal.binding.api.DataTreeIdentifier; -import org.opendaylight.yangtools.concepts.ObjectRegistration; +import org.opendaylight.yangtools.concepts.Registration; import org.opendaylight.yangtools.yang.binding.DataObject; // Needed only for BluePrint coexistence public interface ListenerRegistrationHelper { - @NonNull ListenableFuture> checkedRegisterListener( - DataTreeIdentifier treeId, ClusteredDataTreeChangeListener listener); + @NonNull ListenableFuture checkedRegisterListener(DataTreeIdentifier treeId, + ClusteredDataTreeChangeListener listener); } \ No newline at end of file diff --git a/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/impl/ListenerRegistrationHelperImpl.java b/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/impl/ListenerRegistrationHelperImpl.java index c00dff38a..f222771e6 100644 --- a/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/impl/ListenerRegistrationHelperImpl.java +++ b/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/impl/ListenerRegistrationHelperImpl.java @@ -26,7 +26,7 @@ import javax.inject.Singleton; import org.opendaylight.mdsal.binding.api.ClusteredDataTreeChangeListener; import org.opendaylight.mdsal.binding.api.DataBroker; import org.opendaylight.mdsal.binding.api.DataTreeIdentifier; -import org.opendaylight.yangtools.concepts.ObjectRegistration; +import org.opendaylight.yangtools.concepts.Registration; import org.opendaylight.yangtools.yang.binding.DataObject; import org.osgi.service.component.annotations.Activate; import org.osgi.service.component.annotations.Component; @@ -62,7 +62,7 @@ public final class ListenerRegistrationHelperImpl implements AutoCloseable, List } @Override - public ListenableFuture> checkedRegisterListener( + public ListenableFuture checkedRegisterListener( final DataTreeIdentifier treeId, final ClusteredDataTreeChangeListener listener) { return Futures.submit(() -> { while (!getInventoryConfigDataStoreStatus().equals("OPERATIONAL")) { diff --git a/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/AbstractFRMTest.java b/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/AbstractFRMTest.java index d2d694419..e1b2ff5cb 100644 --- a/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/AbstractFRMTest.java +++ b/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/AbstractFRMTest.java @@ -14,8 +14,8 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import org.mockito.Mock; -import org.opendaylight.mdsal.binding.api.RpcConsumerRegistry; import org.opendaylight.mdsal.binding.api.RpcProviderService; +import org.opendaylight.mdsal.binding.api.RpcService; import org.opendaylight.mdsal.binding.api.WriteTransaction; import org.opendaylight.mdsal.binding.dom.adapter.test.AbstractDataBrokerTest; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; @@ -54,7 +54,7 @@ public abstract class AbstractFRMTest extends AbstractDataBrokerTest { private ForwardingRulesManagerImpl forwardingRulesManager; @Mock - private RpcConsumerRegistry rpcConsumerRegistry; + private RpcService rpcConsumerRegistry; @Mock private RpcProviderService rpcProviderService; @Mock diff --git a/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/DeviceMastershipManagerTest.java b/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/DeviceMastershipManagerTest.java index aefeff030..e3efc8e07 100644 --- a/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/DeviceMastershipManagerTest.java +++ b/applications/forwardingrules-manager/src/test/java/org/opendaylight/openflowplugin/applications/frm/impl/DeviceMastershipManagerTest.java @@ -17,12 +17,12 @@ import org.mockito.Mockito; import org.mockito.junit.MockitoJUnitRunner; import org.opendaylight.mdsal.binding.api.DataBroker; import org.opendaylight.mdsal.binding.api.RpcProviderService; -import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider; -import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceRegistration; +import org.opendaylight.mdsal.singleton.api.ClusterSingletonServiceProvider; import org.opendaylight.openflowplugin.api.openflow.device.DeviceInfo; import org.opendaylight.openflowplugin.api.openflow.mastership.MastershipChangeServiceManager; import org.opendaylight.openflowplugin.applications.frm.FlowNodeReconciliation; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId; +import org.opendaylight.yangtools.concepts.Registration; /** * Test for {@link DeviceMastershipManager}. @@ -31,7 +31,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId; public class DeviceMastershipManagerTest { private DeviceMastershipManager deviceMastershipManager; @Mock - private ClusterSingletonServiceRegistration registration; + private Registration registration; @Mock private ClusterSingletonServiceProvider clusterSingletonService; @Mock diff --git a/applications/forwardingrules-sync/pom.xml b/applications/forwardingrules-sync/pom.xml index 5266aa91f..2f8923bfc 100644 --- a/applications/forwardingrules-sync/pom.xml +++ b/applications/forwardingrules-sync/pom.xml @@ -33,7 +33,7 @@ org.opendaylight.mdsal - mdsal-singleton-common-api + mdsal-singleton-api org.opendaylight.openflowplugin.model diff --git a/applications/forwardingrules-sync/src/main/java/org/opendaylight/openflowplugin/applications/frsync/impl/AbstractFrmSyncListener.java b/applications/forwardingrules-sync/src/main/java/org/opendaylight/openflowplugin/applications/frsync/impl/AbstractFrmSyncListener.java index 54fc53345..6c2e8f3fd 100644 --- a/applications/forwardingrules-sync/src/main/java/org/opendaylight/openflowplugin/applications/frsync/impl/AbstractFrmSyncListener.java +++ b/applications/forwardingrules-sync/src/main/java/org/opendaylight/openflowplugin/applications/frsync/impl/AbstractFrmSyncListener.java @@ -8,7 +8,7 @@ package org.opendaylight.openflowplugin.applications.frsync.impl; import com.google.common.util.concurrent.ListenableFuture; -import java.util.Collection; +import java.util.List; import java.util.Optional; import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; @@ -29,7 +29,7 @@ public abstract class AbstractFrmSyncListener implements N private static final Logger LOG = LoggerFactory.getLogger(AbstractFrmSyncListener.class); @Override - public void onDataTreeChanged(final Collection> modifications) { + public void onDataTreeChanged(final List> modifications) { for (DataTreeModification modification : modifications) { final NodeId nodeId = PathUtil.digNodeId(modification.getRootPath().getRootIdentifier()); if (LOG.isTraceEnabled()) { diff --git a/applications/forwardingrules-sync/src/main/java/org/opendaylight/openflowplugin/applications/frsync/impl/ForwardingRulesSyncProvider.java b/applications/forwardingrules-sync/src/main/java/org/opendaylight/openflowplugin/applications/frsync/impl/ForwardingRulesSyncProvider.java index b4db87d40..dc1e1c47d 100644 --- a/applications/forwardingrules-sync/src/main/java/org/opendaylight/openflowplugin/applications/frsync/impl/ForwardingRulesSyncProvider.java +++ b/applications/forwardingrules-sync/src/main/java/org/opendaylight/openflowplugin/applications/frsync/impl/ForwardingRulesSyncProvider.java @@ -17,9 +17,9 @@ import javax.inject.Inject; import javax.inject.Singleton; import org.opendaylight.mdsal.binding.api.DataBroker; import org.opendaylight.mdsal.binding.api.DataTreeIdentifier; -import org.opendaylight.mdsal.binding.api.RpcConsumerRegistry; +import org.opendaylight.mdsal.binding.api.RpcService; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; -import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider; +import org.opendaylight.mdsal.singleton.api.ClusterSingletonServiceProvider; import org.opendaylight.openflowplugin.applications.frsync.NodeListener; import org.opendaylight.openflowplugin.applications.frsync.dao.FlowCapableNodeCachedDao; import org.opendaylight.openflowplugin.applications.frsync.dao.FlowCapableNodeOdlDao; @@ -32,7 +32,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.Fl import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node; import org.opendaylight.yang.gen.v1.urn.opendaylight.table.service.rev131026.UpdateTable; -import org.opendaylight.yangtools.concepts.ListenerRegistration; +import org.opendaylight.yangtools.concepts.Registration; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.osgi.service.component.annotations.Activate; import org.osgi.service.component.annotations.Component; @@ -65,17 +65,17 @@ public class ForwardingRulesSyncProvider implements AutoCloseable { private final DataTreeIdentifier nodeConfigDataTreePath; private final DataTreeIdentifier nodeOperationalDataTreePath; - private ListenerRegistration dataTreeConfigChangeListener; - private ListenerRegistration dataTreeOperationalChangeListener; + private Registration dataTreeConfigChangeListener; + private Registration dataTreeOperationalChangeListener; private final ExecutorService syncThreadPool; @Inject @Activate public ForwardingRulesSyncProvider(@Reference final DataBroker dataBroker, - @Reference final RpcConsumerRegistry rpcRegistry, + @Reference final RpcService rpcRegistry, @Reference final ClusterSingletonServiceProvider clusterSingletonService) { - requireNonNull(rpcRegistry, "RpcConsumerRegistry can not be null!"); + requireNonNull(rpcRegistry, "RpcService can not be null!"); dataService = requireNonNull(dataBroker, "DataBroker can not be null!"); this.clusterSingletonService = requireNonNull(clusterSingletonService, "ClusterSingletonServiceProvider can not be null!"); diff --git a/applications/forwardingrules-sync/src/main/java/org/opendaylight/openflowplugin/applications/frsync/impl/SimplifiedConfigListener.java b/applications/forwardingrules-sync/src/main/java/org/opendaylight/openflowplugin/applications/frsync/impl/SimplifiedConfigListener.java index ef4de28ce..a8246111e 100644 --- a/applications/forwardingrules-sync/src/main/java/org/opendaylight/openflowplugin/applications/frsync/impl/SimplifiedConfigListener.java +++ b/applications/forwardingrules-sync/src/main/java/org/opendaylight/openflowplugin/applications/frsync/impl/SimplifiedConfigListener.java @@ -8,7 +8,7 @@ package org.opendaylight.openflowplugin.applications.frsync.impl; import com.google.common.util.concurrent.ListenableFuture; -import java.util.Collection; +import java.util.List; import java.util.Optional; import org.opendaylight.mdsal.binding.api.DataObjectModification; import org.opendaylight.mdsal.binding.api.DataTreeModification; @@ -43,7 +43,7 @@ public class SimplifiedConfigListener extends AbstractFrmSyncListener> modifications) { + public void onDataTreeChanged(final List> modifications) { super.onDataTreeChanged(modifications); } diff --git a/applications/forwardingrules-sync/src/main/java/org/opendaylight/openflowplugin/applications/frsync/impl/SimplifiedOperationalListener.java b/applications/forwardingrules-sync/src/main/java/org/opendaylight/openflowplugin/applications/frsync/impl/SimplifiedOperationalListener.java index 6152d3795..4e74e244e 100644 --- a/applications/forwardingrules-sync/src/main/java/org/opendaylight/openflowplugin/applications/frsync/impl/SimplifiedOperationalListener.java +++ b/applications/forwardingrules-sync/src/main/java/org/opendaylight/openflowplugin/applications/frsync/impl/SimplifiedOperationalListener.java @@ -10,8 +10,8 @@ package org.opendaylight.openflowplugin.applications.frsync.impl; import com.google.common.util.concurrent.ListenableFuture; import java.text.ParseException; import java.text.SimpleDateFormat; -import java.util.Collection; import java.util.Date; +import java.util.List; import java.util.Map; import java.util.Optional; import org.opendaylight.mdsal.binding.api.DataObjectModification; @@ -64,7 +64,7 @@ public class SimplifiedOperationalListener extends AbstractFrmSyncListener } @Override - public void onDataTreeChanged(final Collection> modifications) { + public void onDataTreeChanged(final List> modifications) { super.onDataTreeChanged(modifications); } diff --git a/applications/forwardingrules-sync/src/main/java/org/opendaylight/openflowplugin/applications/frsync/impl/clustering/DeviceMastership.java b/applications/forwardingrules-sync/src/main/java/org/opendaylight/openflowplugin/applications/frsync/impl/clustering/DeviceMastership.java index 49c15ca01..9e84f575f 100644 --- a/applications/forwardingrules-sync/src/main/java/org/opendaylight/openflowplugin/applications/frsync/impl/clustering/DeviceMastership.java +++ b/applications/forwardingrules-sync/src/main/java/org/opendaylight/openflowplugin/applications/frsync/impl/clustering/DeviceMastership.java @@ -9,12 +9,12 @@ package org.opendaylight.openflowplugin.applications.frsync.impl.clustering; import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; -import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonService; -import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider; -import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceRegistration; -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.openflowplugin.applications.frsync.util.ReconciliationRegistry; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId; +import org.opendaylight.yangtools.concepts.Registration; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -26,14 +26,14 @@ public final class DeviceMastership implements ClusterSingletonService, AutoClos private final NodeId nodeId; private final ServiceGroupIdentifier identifier; private final ReconciliationRegistry reconciliationRegistry; - private final ClusterSingletonServiceRegistration clusterSingletonServiceRegistration; + private final Registration clusterSingletonServiceRegistration; private boolean deviceMastered; public DeviceMastership(final NodeId nodeId, final ReconciliationRegistry reconciliationRegistry, final ClusterSingletonServiceProvider clusterSingletonService) { this.nodeId = nodeId; - identifier = ServiceGroupIdentifier.create(nodeId.getValue()); + identifier = new ServiceGroupIdentifier(nodeId.getValue()); this.reconciliationRegistry = reconciliationRegistry; deviceMastered = false; clusterSingletonServiceRegistration = clusterSingletonService.registerClusterSingletonService(this); diff --git a/applications/forwardingrules-sync/src/main/java/org/opendaylight/openflowplugin/applications/frsync/impl/clustering/DeviceMastershipManager.java b/applications/forwardingrules-sync/src/main/java/org/opendaylight/openflowplugin/applications/frsync/impl/clustering/DeviceMastershipManager.java index b9f05ffe8..555e5c203 100644 --- a/applications/forwardingrules-sync/src/main/java/org/opendaylight/openflowplugin/applications/frsync/impl/clustering/DeviceMastershipManager.java +++ b/applications/forwardingrules-sync/src/main/java/org/opendaylight/openflowplugin/applications/frsync/impl/clustering/DeviceMastershipManager.java @@ -9,7 +9,7 @@ package org.opendaylight.openflowplugin.applications.frsync.impl.clustering; import com.google.common.annotations.VisibleForTesting; import java.util.concurrent.ConcurrentHashMap; -import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider; +import org.opendaylight.mdsal.singleton.api.ClusterSingletonServiceProvider; import org.opendaylight.openflowplugin.applications.frsync.util.ReconciliationRegistry; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId; import org.slf4j.Logger; diff --git a/applications/forwardingrules-sync/src/main/java/org/opendaylight/openflowplugin/applications/frsync/impl/strategy/GroupForwarder.java b/applications/forwardingrules-sync/src/main/java/org/opendaylight/openflowplugin/applications/frsync/impl/strategy/GroupForwarder.java index 5db595e67..7c86643be 100644 --- a/applications/forwardingrules-sync/src/main/java/org/opendaylight/openflowplugin/applications/frsync/impl/strategy/GroupForwarder.java +++ b/applications/forwardingrules-sync/src/main/java/org/opendaylight/openflowplugin/applications/frsync/impl/strategy/GroupForwarder.java @@ -8,7 +8,7 @@ package org.opendaylight.openflowplugin.applications.frsync.impl.strategy; import com.google.common.util.concurrent.ListenableFuture; -import org.opendaylight.mdsal.binding.api.RpcConsumerRegistry; +import org.opendaylight.mdsal.binding.api.RpcService; import org.opendaylight.openflowplugin.applications.frsync.ForwardingRulesCommitter; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNode; import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.AddGroup; @@ -42,7 +42,7 @@ public class GroupForwarder private final UpdateGroup updateGroupRpc; private final RemoveGroup removeGroupRpc; - public GroupForwarder(final RpcConsumerRegistry rpcConsumerRegistry) { + public GroupForwarder(final RpcService rpcConsumerRegistry) { addGroupRpc = rpcConsumerRegistry.getRpc(AddGroup.class); updateGroupRpc = rpcConsumerRegistry.getRpc(UpdateGroup.class); removeGroupRpc = rpcConsumerRegistry.getRpc(RemoveGroup.class); diff --git a/applications/forwardingrules-sync/src/main/java/org/opendaylight/openflowplugin/applications/frsync/impl/strategy/MeterForwarder.java b/applications/forwardingrules-sync/src/main/java/org/opendaylight/openflowplugin/applications/frsync/impl/strategy/MeterForwarder.java index 6ea8a43b1..f62c82942 100644 --- a/applications/forwardingrules-sync/src/main/java/org/opendaylight/openflowplugin/applications/frsync/impl/strategy/MeterForwarder.java +++ b/applications/forwardingrules-sync/src/main/java/org/opendaylight/openflowplugin/applications/frsync/impl/strategy/MeterForwarder.java @@ -8,7 +8,7 @@ package org.opendaylight.openflowplugin.applications.frsync.impl.strategy; import com.google.common.util.concurrent.ListenableFuture; -import org.opendaylight.mdsal.binding.api.RpcConsumerRegistry; +import org.opendaylight.mdsal.binding.api.RpcService; import org.opendaylight.openflowplugin.applications.frsync.ForwardingRulesCommitter; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNode; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.meters.Meter; @@ -42,7 +42,7 @@ public class MeterForwarder private final AddMeter addMeter; private final UpdateMeter updateMeter; - public MeterForwarder(final RpcConsumerRegistry rpcConsumerRegistry) { + public MeterForwarder(final RpcService rpcConsumerRegistry) { addMeter = rpcConsumerRegistry.getRpc(AddMeter.class); removeMeter = rpcConsumerRegistry.getRpc(RemoveMeter.class); updateMeter = rpcConsumerRegistry.getRpc(UpdateMeter.class); diff --git a/applications/forwardingrules-sync/src/test/java/org/opendaylight/openflowplugin/applications/frsync/impl/ForwardingRulesSyncProviderTest.java b/applications/forwardingrules-sync/src/test/java/org/opendaylight/openflowplugin/applications/frsync/impl/ForwardingRulesSyncProviderTest.java index 5f953be95..30697cdf4 100644 --- a/applications/forwardingrules-sync/src/test/java/org/opendaylight/openflowplugin/applications/frsync/impl/ForwardingRulesSyncProviderTest.java +++ b/applications/forwardingrules-sync/src/test/java/org/opendaylight/openflowplugin/applications/frsync/impl/ForwardingRulesSyncProviderTest.java @@ -18,8 +18,8 @@ import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; import org.opendaylight.mdsal.binding.api.DataBroker; -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.opendaylight.flat.batch.service.rev160321.ProcessFlatBatch; import org.opendaylight.yang.gen.v1.urn.opendaylight.table.service.rev131026.UpdateTable; @@ -31,7 +31,7 @@ public class ForwardingRulesSyncProviderTest { @Mock private DataBroker dataBroker; @Mock - private RpcConsumerRegistry rpcRegistry; + private RpcService rpcRegistry; @Mock private ClusterSingletonServiceProvider clusterSingletonService; diff --git a/applications/forwardingrules-sync/src/test/java/org/opendaylight/openflowplugin/applications/frsync/impl/SimplifiedConfigListenerTest.java b/applications/forwardingrules-sync/src/test/java/org/opendaylight/openflowplugin/applications/frsync/impl/SimplifiedConfigListenerTest.java index 044d5f05f..fe31d1ff9 100644 --- a/applications/forwardingrules-sync/src/test/java/org/opendaylight/openflowplugin/applications/frsync/impl/SimplifiedConfigListenerTest.java +++ b/applications/forwardingrules-sync/src/test/java/org/opendaylight/openflowplugin/applications/frsync/impl/SimplifiedConfigListenerTest.java @@ -8,7 +8,7 @@ package org.opendaylight.openflowplugin.applications.frsync.impl; import com.google.common.util.concurrent.Futures; -import java.util.Collections; +import java.util.List; import java.util.Optional; import org.junit.Assert; import org.junit.Before; @@ -95,7 +95,7 @@ public class SimplifiedConfigListenerTest { final SyncupEntry syncupEntry = loadOperationalDSAndPrepareSyncupEntry(dataAfter, confgDS, dataBefore, operationalDS); - nodeListenerConfig.onDataTreeChanged(Collections.singleton(dataTreeModification)); + nodeListenerConfig.onDataTreeChanged(List.of(dataTreeModification)); Mockito.verify(reactor).syncup(fcNodePath, syncupEntry); Mockito.verifyNoMoreInteractions(reactor); @@ -108,7 +108,7 @@ public class SimplifiedConfigListenerTest { Mockito.when(configModification.getDataAfter()).thenReturn(dataAfter); final SyncupEntry syncupEntry = loadOperationalDSAndPrepareSyncupEntry(dataAfter, confgDS, dataBefore, confgDS); - nodeListenerConfig.onDataTreeChanged(Collections.singleton(dataTreeModification)); + nodeListenerConfig.onDataTreeChanged(List.of(dataTreeModification)); Mockito.verify(reactor).syncup(fcNodePath, syncupEntry); Mockito.verifyNoMoreInteractions(reactor); @@ -121,7 +121,7 @@ public class SimplifiedConfigListenerTest { Mockito.when(configModification.getDataAfter()).thenReturn(null); final SyncupEntry syncupEntry = loadOperationalDSAndPrepareSyncupEntry(null, confgDS, dataBefore, confgDS); - nodeListenerConfig.onDataTreeChanged(Collections.singleton(dataTreeModification)); + nodeListenerConfig.onDataTreeChanged(List.of(dataTreeModification)); Mockito.verify(reactor).syncup(fcNodePath, syncupEntry); Mockito.verifyNoMoreInteractions(reactor); @@ -133,7 +133,7 @@ public class SimplifiedConfigListenerTest { Mockito.doReturn(FluentFutures.immediateFluentFuture(Optional.empty())).when(roTx) .read(LogicalDatastoreType.OPERATIONAL, fcNodePath); - nodeListenerConfig.onDataTreeChanged(Collections.singleton(dataTreeModification)); + nodeListenerConfig.onDataTreeChanged(List.of(dataTreeModification)); Mockito.verifyNoMoreInteractions(reactor); Mockito.verify(roTx).close(); diff --git a/applications/forwardingrules-sync/src/test/java/org/opendaylight/openflowplugin/applications/frsync/impl/SimplifiedOperationalListenerTest.java b/applications/forwardingrules-sync/src/test/java/org/opendaylight/openflowplugin/applications/frsync/impl/SimplifiedOperationalListenerTest.java index be4a21de5..b33ebecc1 100644 --- a/applications/forwardingrules-sync/src/test/java/org/opendaylight/openflowplugin/applications/frsync/impl/SimplifiedOperationalListenerTest.java +++ b/applications/forwardingrules-sync/src/test/java/org/opendaylight/openflowplugin/applications/frsync/impl/SimplifiedOperationalListenerTest.java @@ -10,7 +10,7 @@ package org.opendaylight.openflowplugin.applications.frsync.impl; import com.google.common.util.concurrent.Futures; import java.text.ParseException; import java.text.SimpleDateFormat; -import java.util.Collections; +import java.util.List; import java.util.Map; import java.util.Optional; import org.junit.Assert; @@ -121,7 +121,7 @@ public class SimplifiedOperationalListenerTest { @Test public void testOnDataTreeChangedAddPhysical() { operationalAdd(); - nodeListenerOperational.onDataTreeChanged(Collections.singleton(dataTreeModification)); + nodeListenerOperational.onDataTreeChanged(List.of(dataTreeModification)); Mockito.verify(deviceMastershipManager).onDeviceConnected(NODE_ID); Mockito.verifyNoMoreInteractions(reactor); } @@ -131,7 +131,7 @@ public class SimplifiedOperationalListenerTest { Mockito.when(operationalModification.getDataBefore()).thenReturn(operationalNode); Mockito.when(operationalModification.getDataAfter()).thenReturn(null); - nodeListenerOperational.onDataTreeChanged(Collections.singleton(dataTreeModification)); + nodeListenerOperational.onDataTreeChanged(List.of(dataTreeModification)); Mockito.verify(deviceMastershipManager).onDeviceDisconnected(NODE_ID); Mockito.verifyNoMoreInteractions(reactor); @@ -145,7 +145,7 @@ public class SimplifiedOperationalListenerTest { Mockito.when(operationalModification.getDataAfter()).thenReturn(operationalNodeEmpty); Mockito.when(operationalNodeEmpty.getNodeConnector()).thenReturn(null); - nodeListenerOperational.onDataTreeChanged(Collections.singleton(dataTreeModification)); + nodeListenerOperational.onDataTreeChanged(List.of(dataTreeModification)); Mockito.verify(deviceMastershipManager).onDeviceDisconnected(NODE_ID); Mockito.verifyNoMoreInteractions(reactor); @@ -156,7 +156,7 @@ public class SimplifiedOperationalListenerTest { Mockito.when(reconciliationRegistry.isRegistered(NODE_ID)).thenReturn(false); operationalUpdate(); - nodeListenerOperational.onDataTreeChanged(Collections.singleton(dataTreeModification)); + nodeListenerOperational.onDataTreeChanged(List.of(dataTreeModification)); Mockito.verifyNoMoreInteractions(reactor); } @@ -167,7 +167,7 @@ public class SimplifiedOperationalListenerTest { operationalUpdate(); Mockito.when(operationalNode.augmentation(FlowCapableStatisticsGatheringStatus.class)).thenReturn(null); - nodeListenerOperational.onDataTreeChanged(Collections.singleton(dataTreeModification)); + nodeListenerOperational.onDataTreeChanged(List.of(dataTreeModification)); Mockito.verifyNoMoreInteractions(reactor); } @@ -180,7 +180,7 @@ public class SimplifiedOperationalListenerTest { .thenReturn(statisticsGatheringStatus); Mockito.when(statisticsGatheringStatus.getSnapshotGatheringStatusEnd()).thenReturn(null); - nodeListenerOperational.onDataTreeChanged(Collections.singleton(dataTreeModification)); + nodeListenerOperational.onDataTreeChanged(List.of(dataTreeModification)); Mockito.verifyNoMoreInteractions(reactor); } @@ -194,7 +194,7 @@ public class SimplifiedOperationalListenerTest { Mockito.when(statisticsGatheringStatus.getSnapshotGatheringStatusEnd()).thenReturn(snapshotGatheringStatusEnd); Mockito.when(snapshotGatheringStatusEnd.getSucceeded()).thenReturn(false); - nodeListenerOperational.onDataTreeChanged(Collections.singleton(dataTreeModification)); + nodeListenerOperational.onDataTreeChanged(List.of(dataTreeModification)); Mockito.verifyNoMoreInteractions(reactor); } @@ -205,7 +205,7 @@ public class SimplifiedOperationalListenerTest { operationalUpdate(); prepareFreshOperational(false); - nodeListenerOperational.onDataTreeChanged(Collections.singleton(dataTreeModification)); + nodeListenerOperational.onDataTreeChanged(List.of(dataTreeModification)); Mockito.verifyNoMoreInteractions(reactor); } @@ -218,7 +218,7 @@ public class SimplifiedOperationalListenerTest { final SyncupEntry syncupEntry = loadConfigDSAndPrepareSyncupEntry( configNode, configDS, fcOperationalNode, operationalDS); - nodeListenerOperational.onDataTreeChanged(Collections.singleton(dataTreeModification)); + nodeListenerOperational.onDataTreeChanged(List.of(dataTreeModification)); Mockito.verify(reactor).syncup(fcNodePath, syncupEntry); Mockito.verify(roTx).close(); @@ -233,7 +233,7 @@ public class SimplifiedOperationalListenerTest { final SyncupEntry syncupEntry = loadConfigDSAndPrepareSyncupEntry( configNode, configDS, fcOperationalNode, operationalDS); - nodeListenerOperational.onDataTreeChanged(Collections.singleton(dataTreeModification)); + nodeListenerOperational.onDataTreeChanged(List.of(dataTreeModification)); Mockito.verify(reactor).syncup(fcNodePath, syncupEntry); Mockito.verify(roTx).close(); @@ -249,7 +249,7 @@ public class SimplifiedOperationalListenerTest { Mockito.doReturn(FluentFutures.immediateFluentFuture(Optional.empty())).when(roTx) .read(LogicalDatastoreType.CONFIGURATION, fcNodePath); - nodeListenerOperational.onDataTreeChanged(Collections.singleton(dataTreeModification)); + nodeListenerOperational.onDataTreeChanged(List.of(dataTreeModification)); Mockito.verify(reconciliationRegistry).unregisterIfRegistered(NODE_ID); Mockito.verifyNoMoreInteractions(reactor); diff --git a/applications/forwardingrules-sync/src/test/java/org/opendaylight/openflowplugin/applications/frsync/impl/clustering/DeviceMastershipManagerTest.java b/applications/forwardingrules-sync/src/test/java/org/opendaylight/openflowplugin/applications/frsync/impl/clustering/DeviceMastershipManagerTest.java index 5ab167b6c..5a6e10552 100644 --- a/applications/forwardingrules-sync/src/test/java/org/opendaylight/openflowplugin/applications/frsync/impl/clustering/DeviceMastershipManagerTest.java +++ b/applications/forwardingrules-sync/src/test/java/org/opendaylight/openflowplugin/applications/frsync/impl/clustering/DeviceMastershipManagerTest.java @@ -15,10 +15,10 @@ import org.mockito.ArgumentMatchers; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.junit.MockitoJUnitRunner; -import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider; -import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceRegistration; +import org.opendaylight.mdsal.singleton.api.ClusterSingletonServiceProvider; import org.opendaylight.openflowplugin.applications.frsync.util.ReconciliationRegistry; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId; +import org.opendaylight.yangtools.concepts.Registration; /** * Test for {@link DeviceMastershipManager}. @@ -28,7 +28,7 @@ public class DeviceMastershipManagerTest { private static final NodeId NODE_ID = new NodeId("testNode"); private DeviceMastershipManager deviceMastershipManager; @Mock - private ClusterSingletonServiceRegistration registration; + private Registration registration; @Mock private ClusterSingletonServiceProvider clusterSingletonService; diff --git a/applications/forwardingrules-sync/src/test/java/org/opendaylight/openflowplugin/applications/frsync/impl/clustering/DeviceMastershipTest.java b/applications/forwardingrules-sync/src/test/java/org/opendaylight/openflowplugin/applications/frsync/impl/clustering/DeviceMastershipTest.java index fae363e2d..bec197dcf 100644 --- a/applications/forwardingrules-sync/src/test/java/org/opendaylight/openflowplugin/applications/frsync/impl/clustering/DeviceMastershipTest.java +++ b/applications/forwardingrules-sync/src/test/java/org/opendaylight/openflowplugin/applications/frsync/impl/clustering/DeviceMastershipTest.java @@ -14,7 +14,7 @@ import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.junit.MockitoJUnitRunner; -import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider; +import org.opendaylight.mdsal.singleton.api.ClusterSingletonServiceProvider; import org.opendaylight.openflowplugin.applications.frsync.util.ReconciliationRegistry; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId; diff --git a/applications/forwardingrules-sync/src/test/java/org/opendaylight/openflowplugin/applications/frsync/impl/strategy/GroupForwarderTest.java b/applications/forwardingrules-sync/src/test/java/org/opendaylight/openflowplugin/applications/frsync/impl/strategy/GroupForwarderTest.java index ad33b0ed8..128af47e9 100644 --- a/applications/forwardingrules-sync/src/test/java/org/opendaylight/openflowplugin/applications/frsync/impl/strategy/GroupForwarderTest.java +++ b/applications/forwardingrules-sync/src/test/java/org/opendaylight/openflowplugin/applications/frsync/impl/strategy/GroupForwarderTest.java @@ -19,7 +19,7 @@ import org.mockito.Captor; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.junit.MockitoJUnitRunner; -import org.opendaylight.mdsal.binding.api.RpcConsumerRegistry; +import org.opendaylight.mdsal.binding.api.RpcService; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNode; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.transaction.rev150304.TransactionId; import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.AddGroup; @@ -72,7 +72,7 @@ public class GroupForwarderTest { private final InstanceIdentifier groupPath = flowCapableNodePath.child(Group.class, groupKey); @Mock - private RpcConsumerRegistry rpcConsumerRegistry; + private RpcService rpcConsumerRegistry; @Mock private AddGroup addGroup; @Mock diff --git a/applications/forwardingrules-sync/src/test/java/org/opendaylight/openflowplugin/applications/frsync/impl/strategy/MeterForwarderTest.java b/applications/forwardingrules-sync/src/test/java/org/opendaylight/openflowplugin/applications/frsync/impl/strategy/MeterForwarderTest.java index d043b74f3..8a7af3807 100644 --- a/applications/forwardingrules-sync/src/test/java/org/opendaylight/openflowplugin/applications/frsync/impl/strategy/MeterForwarderTest.java +++ b/applications/forwardingrules-sync/src/test/java/org/opendaylight/openflowplugin/applications/frsync/impl/strategy/MeterForwarderTest.java @@ -19,7 +19,7 @@ import org.mockito.Captor; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.junit.MockitoJUnitRunner; -import org.opendaylight.mdsal.binding.api.RpcConsumerRegistry; +import org.opendaylight.mdsal.binding.api.RpcService; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNode; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.meters.Meter; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.meters.MeterBuilder; @@ -70,7 +70,7 @@ public class MeterForwarderTest { private final InstanceIdentifier meterPath = flowCapableNodePath.child(Meter.class, meterKey); @Mock - private RpcConsumerRegistry rpcRegistry; + private RpcService rpcRegistry; @Mock private AddMeter addMeter; @Mock diff --git a/applications/lldp-speaker/src/main/java/org/opendaylight/openflowplugin/applications/lldpspeaker/LLDPSpeaker.java b/applications/lldp-speaker/src/main/java/org/opendaylight/openflowplugin/applications/lldpspeaker/LLDPSpeaker.java index d3a353796..635fdd32a 100644 --- a/applications/lldp-speaker/src/main/java/org/opendaylight/openflowplugin/applications/lldpspeaker/LLDPSpeaker.java +++ b/applications/lldp-speaker/src/main/java/org/opendaylight/openflowplugin/applications/lldpspeaker/LLDPSpeaker.java @@ -22,8 +22,8 @@ import java.util.concurrent.ScheduledFuture; import java.util.concurrent.ThreadFactory; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; -import org.opendaylight.mdsal.binding.api.RpcConsumerRegistry; import org.opendaylight.mdsal.binding.api.RpcProviderService; +import org.opendaylight.mdsal.binding.api.RpcService; import org.opendaylight.openflowplugin.applications.deviceownershipservice.DeviceOwnershipService; import org.opendaylight.openflowplugin.libraries.liblldp.PacketException; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.MacAddress; @@ -87,7 +87,7 @@ public final class LLDPSpeaker implements NodeConnectorEventsObserver, Runnable, private volatile OperStatus operationalStatus = OperStatus.RUN; - public LLDPSpeaker(final DeviceOwnershipService deviceOwnershipService, final RpcConsumerRegistry rpcService, + public LLDPSpeaker(final DeviceOwnershipService deviceOwnershipService, final RpcService rpcService, final RpcProviderService rpcProviderService, final LldpSpeakerConfig config) { this(Executors.newSingleThreadScheduledExecutor(THREAD_FACTORY), deviceOwnershipService, rpcService, rpcProviderService, config.getAddressDestination()); @@ -95,7 +95,7 @@ public final class LLDPSpeaker implements NodeConnectorEventsObserver, Runnable, @VisibleForTesting LLDPSpeaker(final ScheduledExecutorService scheduledExecutorService, - final DeviceOwnershipService deviceOwnershipService, final RpcConsumerRegistry rpcService, + final DeviceOwnershipService deviceOwnershipService, final RpcService rpcService, final RpcProviderService rpcProviderService, final MacAddress addressDestination) { this.scheduledExecutorService = requireNonNull(scheduledExecutorService); this.deviceOwnershipService = requireNonNull(deviceOwnershipService); diff --git a/applications/lldp-speaker/src/main/java/org/opendaylight/openflowplugin/applications/lldpspeaker/NodeConnectorInventoryEventTranslator.java b/applications/lldp-speaker/src/main/java/org/opendaylight/openflowplugin/applications/lldpspeaker/NodeConnectorInventoryEventTranslator.java index 4a0f6fbf0..c1c351d8d 100644 --- a/applications/lldp-speaker/src/main/java/org/opendaylight/openflowplugin/applications/lldpspeaker/NodeConnectorInventoryEventTranslator.java +++ b/applications/lldp-speaker/src/main/java/org/opendaylight/openflowplugin/applications/lldpspeaker/NodeConnectorInventoryEventTranslator.java @@ -9,13 +9,13 @@ package org.opendaylight.openflowplugin.applications.lldpspeaker; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Iterables; -import java.util.Collection; import java.util.HashMap; +import java.util.List; import java.util.Map; import java.util.Set; import org.eclipse.jdt.annotation.NonNull; -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.binding.api.DataTreeModification; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; @@ -38,7 +38,7 @@ import org.slf4j.LoggerFactory; * and update LLDPSpeaker and topology. */ public final class NodeConnectorInventoryEventTranslator - implements ClusteredDataTreeChangeListener, AutoCloseable { + implements DataTreeChangeListener, AutoCloseable { private static final Logger LOG = LoggerFactory.getLogger(NodeConnectorInventoryEventTranslator.class); private static final InstanceIdentifier II_TO_FLOW_CAPABLE_NODE_CONNECTOR = InstanceIdentifier.builder(Nodes.class) @@ -58,12 +58,12 @@ public final class NodeConnectorInventoryEventTranslator final NodeConnectorEventsObserver... observers) { this.observers = ImmutableSet.copyOf(observers); - final DataTreeIdentifier dtiToNodeConnector = DataTreeIdentifier.create(LogicalDatastoreType.OPERATIONAL, + final DataTreeIdentifier dtiToNodeConnector = DataTreeIdentifier.of(LogicalDatastoreType.OPERATIONAL, II_TO_FLOW_CAPABLE_NODE_CONNECTOR); - final DataTreeIdentifier dtiToNodeConnectorState = DataTreeIdentifier.create(LogicalDatastoreType.OPERATIONAL, + final DataTreeIdentifier dtiToNodeConnectorState = DataTreeIdentifier.of(LogicalDatastoreType.OPERATIONAL, II_TO_STATE); - listenerOnPortRegistration = dataBroker.registerDataTreeChangeListener(dtiToNodeConnector, this); - listenerOnPortStateRegistration = dataBroker.registerDataTreeChangeListener(dtiToNodeConnectorState, this); + listenerOnPortRegistration = dataBroker.registerTreeChangeListener(dtiToNodeConnector, this); + listenerOnPortStateRegistration = dataBroker.registerTreeChangeListener(dtiToNodeConnectorState, this); LOG.info("NodeConnectorInventoryEventTranslator has started."); } @@ -78,10 +78,10 @@ public final class NodeConnectorInventoryEventTranslator } @Override - public void onDataTreeChanged(@NonNull final Collection> modifications) { - for (DataTreeModification modification : modifications) { - LOG.trace("Node connectors in inventory changed -> {}", modification.getRootNode().getModificationType()); - switch (modification.getRootNode().getModificationType()) { + public void onDataTreeChanged(@NonNull final List> modifications) { + for (var modification : modifications) { + LOG.trace("Node connectors in inventory changed -> {}", modification.getRootNode().modificationType()); + switch (modification.getRootNode().modificationType()) { case WRITE: processAddedConnector(modification); break; @@ -93,17 +93,17 @@ public final class NodeConnectorInventoryEventTranslator break; default: throw new IllegalArgumentException( - "Unhandled modification type: {}" + modification.getRootNode().getModificationType()); + "Unhandled modification type: " + modification.getRootNode().modificationType()); } } } private void processAddedConnector(final DataTreeModification modification) { - final InstanceIdentifier identifier = modification.getRootPath().getRootIdentifier(); + final InstanceIdentifier identifier = modification.getRootPath().path(); InstanceIdentifier nodeConnectorInstanceId = identifier.firstIdentifierOf(NodeConnector.class); if (compareIITail(identifier, II_TO_FLOW_CAPABLE_NODE_CONNECTOR)) { FlowCapableNodeConnector flowConnector = (FlowCapableNodeConnector) modification.getRootNode() - .getDataAfter(); + .dataAfter(); if (!isPortDown(flowConnector)) { notifyNodeConnectorAppeared(nodeConnectorInstanceId, flowConnector); } else { @@ -113,11 +113,11 @@ public final class NodeConnectorInventoryEventTranslator } private void processUpdatedConnector(final DataTreeModification modification) { - final InstanceIdentifier identifier = modification.getRootPath().getRootIdentifier(); + final InstanceIdentifier identifier = modification.getRootPath().path(); InstanceIdentifier nodeConnectorInstanceId = identifier.firstIdentifierOf(NodeConnector.class); if (compareIITail(identifier, II_TO_FLOW_CAPABLE_NODE_CONNECTOR)) { FlowCapableNodeConnector flowConnector = (FlowCapableNodeConnector) modification.getRootNode() - .getDataAfter(); + .dataAfter(); if (isPortDown(flowConnector)) { notifyNodeConnectorDisappeared(nodeConnectorInstanceId); } else { @@ -126,7 +126,7 @@ public final class NodeConnectorInventoryEventTranslator } else if (compareIITail(identifier, II_TO_STATE)) { FlowCapableNodeConnector flowNodeConnector = iiToDownFlowCapableNodeConnectors.get(nodeConnectorInstanceId); if (flowNodeConnector != null) { - State state = (State) modification.getRootNode().getDataAfter(); + State state = (State) modification.getRootNode().dataAfter(); if (!state.getLinkDown()) { FlowCapableNodeConnectorBuilder flowCapableNodeConnectorBuilder = new FlowCapableNodeConnectorBuilder(flowNodeConnector); @@ -139,7 +139,7 @@ public final class NodeConnectorInventoryEventTranslator } private void processRemovedConnector(final DataTreeModification modification) { - final InstanceIdentifier identifier = modification.getRootPath().getRootIdentifier(); + final InstanceIdentifier identifier = modification.getRootPath().path(); if (compareIITail(identifier, II_TO_FLOW_CAPABLE_NODE_CONNECTOR)) { InstanceIdentifier nodeConnectorInstanceId = identifier .firstIdentifierOf(NodeConnector.class); diff --git a/applications/lldp-speaker/src/test/java/org/opendaylight/openflowplugin/applications/lldpspeaker/LLDPSpeakerTest.java b/applications/lldp-speaker/src/test/java/org/opendaylight/openflowplugin/applications/lldpspeaker/LLDPSpeakerTest.java index de41bcf65..6b034de02 100644 --- a/applications/lldp-speaker/src/test/java/org/opendaylight/openflowplugin/applications/lldpspeaker/LLDPSpeakerTest.java +++ b/applications/lldp-speaker/src/test/java/org/opendaylight/openflowplugin/applications/lldpspeaker/LLDPSpeakerTest.java @@ -26,8 +26,8 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; -import org.opendaylight.mdsal.binding.api.RpcConsumerRegistry; import org.opendaylight.mdsal.binding.api.RpcProviderService; +import org.opendaylight.mdsal.binding.api.RpcService; import org.opendaylight.openflowplugin.applications.deviceownershipservice.DeviceOwnershipService; import org.opendaylight.openflowplugin.libraries.liblldp.PacketException; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.MacAddress; @@ -68,7 +68,7 @@ public class LLDPSpeakerTest { @Mock private DeviceOwnershipService deviceOwnershipService; @Mock - private RpcConsumerRegistry rpcService; + private RpcService rpcService; @Mock private RpcProviderService rpcProviderService; diff --git a/applications/lldp-speaker/src/test/java/org/opendaylight/openflowplugin/applications/lldpspeaker/NodeConnectorInventoryEventTranslatorTest.java b/applications/lldp-speaker/src/test/java/org/opendaylight/openflowplugin/applications/lldpspeaker/NodeConnectorInventoryEventTranslatorTest.java index 7d5508084..9db3e2fe7 100644 --- a/applications/lldp-speaker/src/test/java/org/opendaylight/openflowplugin/applications/lldpspeaker/NodeConnectorInventoryEventTranslatorTest.java +++ b/applications/lldp-speaker/src/test/java/org/opendaylight/openflowplugin/applications/lldpspeaker/NodeConnectorInventoryEventTranslatorTest.java @@ -176,10 +176,10 @@ public class NodeConnectorInventoryEventTranslatorTest { final InstanceIdentifier ii, final FlowCapableNodeConnector connector) { final DataTreeModification dataTreeModification = mock(DataTreeModification.class); when(dataTreeModification.getRootNode()).thenReturn(mock(DataObjectModification.class)); - DataTreeIdentifier identifier = DataTreeIdentifier.create(LogicalDatastoreType.OPERATIONAL, ii); - when(dataTreeModification.getRootNode().getModificationType()).thenReturn(type); + DataTreeIdentifier identifier = DataTreeIdentifier.of(LogicalDatastoreType.OPERATIONAL, ii); + when(dataTreeModification.getRootNode().modificationType()).thenReturn(type); when(dataTreeModification.getRootPath()).thenReturn(identifier); - when(dataTreeModification.getRootNode().getDataAfter()).thenReturn(connector); + when(dataTreeModification.getRootNode().dataAfter()).thenReturn(connector); return dataTreeModification; } } diff --git a/applications/of-switch-config-pusher/src/main/java/org/opendaylight/openflowplugin/openflow/ofswitch/config/DefaultConfigPusher.java b/applications/of-switch-config-pusher/src/main/java/org/opendaylight/openflowplugin/openflow/ofswitch/config/DefaultConfigPusher.java index 7e307c18e..5ae80a8e3 100644 --- a/applications/of-switch-config-pusher/src/main/java/org/opendaylight/openflowplugin/openflow/ofswitch/config/DefaultConfigPusher.java +++ b/applications/of-switch-config-pusher/src/main/java/org/opendaylight/openflowplugin/openflow/ofswitch/config/DefaultConfigPusher.java @@ -9,17 +9,17 @@ package org.opendaylight.openflowplugin.openflow.ofswitch.config; import static java.util.Objects.requireNonNull; -import java.util.Collection; +import java.util.List; import javax.annotation.PreDestroy; import javax.inject.Inject; import javax.inject.Singleton; import org.opendaylight.infrautils.utils.concurrent.LoggingFutures; -import org.opendaylight.mdsal.binding.api.ClusteredDataTreeChangeListener; import org.opendaylight.mdsal.binding.api.DataBroker; 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.binding.api.RpcConsumerRegistry; +import org.opendaylight.mdsal.binding.api.RpcService; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.openflowplugin.api.OFConstants; import org.opendaylight.openflowplugin.applications.deviceownershipservice.DeviceOwnershipService; @@ -41,7 +41,7 @@ import org.slf4j.LoggerFactory; @Singleton @Component(service = { }) -public final class DefaultConfigPusher implements AutoCloseable, ClusteredDataTreeChangeListener { +public final class DefaultConfigPusher implements AutoCloseable, DataTreeChangeListener { private static final Logger LOG = LoggerFactory.getLogger(DefaultConfigPusher.class); private final DeviceOwnershipService deviceOwnershipService; @@ -50,12 +50,12 @@ public final class DefaultConfigPusher implements AutoCloseable, ClusteredDataTr @Inject @Activate - public DefaultConfigPusher(@Reference final DataBroker dataBroker, @Reference final RpcConsumerRegistry rpcService, + public DefaultConfigPusher(@Reference final DataBroker dataBroker, @Reference final RpcService rpcService, @Reference final DeviceOwnershipService deviceOwnershipService) { this.deviceOwnershipService = requireNonNull(deviceOwnershipService); setConfig = rpcService.getRpc(SetConfig.class); - reg = dataBroker.registerDataTreeChangeListener( - DataTreeIdentifier.create(LogicalDatastoreType.OPERATIONAL, + reg = dataBroker.registerTreeChangeListener( + DataTreeIdentifier.of(LogicalDatastoreType.OPERATIONAL, InstanceIdentifier.create(Nodes.class).child(Node.class).augmentation(FlowCapableNode.class)), this); LOG.info("DefaultConfigPusher has started."); } @@ -68,17 +68,15 @@ public final class DefaultConfigPusher implements AutoCloseable, ClusteredDataTr } @Override - public void onDataTreeChanged(final Collection> modifications) { + public void onDataTreeChanged(final List> modifications) { for (var modification : modifications) { - if (modification.getRootNode().getModificationType() == ModificationType.WRITE) { - final var nodeId = modification.getRootPath().getRootIdentifier().firstKeyOf(Node.class) - .getId().getValue(); + if (modification.getRootNode().modificationType() == ModificationType.WRITE) { + final var nodeId = modification.getRootPath().path().firstKeyOf(Node.class).getId().getValue(); if (deviceOwnershipService.isEntityOwned(nodeId)) { LoggingFutures.addErrorLogging(setConfig.invoke(new SetConfigInputBuilder() .setFlag(SwitchConfigFlag.FRAGNORMAL.toString()) .setMissSearchLength(OFConstants.OFPCML_NO_BUFFER) - .setNode(new NodeRef( - modification.getRootPath().getRootIdentifier().firstIdentifierOf(Node.class))) + .setNode(new NodeRef(modification.getRootPath().path().firstIdentifierOf(Node.class))) .build()), LOG, "addFlow"); } else { LOG.debug("Node {} is not owned by this controller, so skip setting config", nodeId); diff --git a/applications/of-switch-config-pusher/src/test/java/org/opendaylight/openflowplugin/openflow/ofswitch/config/DefaultConfigPusherTest.java b/applications/of-switch-config-pusher/src/test/java/org/opendaylight/openflowplugin/openflow/ofswitch/config/DefaultConfigPusherTest.java index 68a312adc..4d032569c 100644 --- a/applications/of-switch-config-pusher/src/test/java/org/opendaylight/openflowplugin/openflow/ofswitch/config/DefaultConfigPusherTest.java +++ b/applications/of-switch-config-pusher/src/test/java/org/opendaylight/openflowplugin/openflow/ofswitch/config/DefaultConfigPusherTest.java @@ -28,7 +28,7 @@ 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.RpcConsumerRegistry; +import org.opendaylight.mdsal.binding.api.RpcService; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.openflowplugin.api.OFConstants; import org.opendaylight.openflowplugin.applications.deviceownershipservice.DeviceOwnershipService; @@ -40,7 +40,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.N import org.opendaylight.yang.gen.v1.urn.opendaylight.module.config.rev141015.SetConfig; import org.opendaylight.yang.gen.v1.urn.opendaylight.module.config.rev141015.SetConfigInput; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.SwitchConfigFlag; -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.RpcResultBuilder; @@ -55,7 +55,7 @@ public class DefaultConfigPusherTest { @Mock private DataBroker dataBroker; @Mock - private RpcConsumerRegistry rpcService; + private RpcService rpcService; @Mock private SetConfig setConfig; @Mock @@ -67,21 +67,21 @@ public class DefaultConfigPusherTest { @Mock private DeviceOwnershipService deviceOwnershipService; @Mock - private ListenerRegistration reg; + private Registration reg; @Captor private ArgumentCaptor setConfigInputCaptor; @Before public void setUp() { doReturn(RpcResultBuilder.success().buildFuture()).when(setConfig).invoke(any()); - doReturn(reg).when(dataBroker).registerDataTreeChangeListener(any(), any()); + doReturn(reg).when(dataBroker).registerTreeChangeListener(any(), any()); doReturn(setConfig).when(rpcService).getRpc(any()); defaultConfigPusher = new DefaultConfigPusher(dataBroker, rpcService, deviceOwnershipService); - final var identifier = DataTreeIdentifier.create(LogicalDatastoreType.OPERATIONAL, + final var identifier = DataTreeIdentifier.of(LogicalDatastoreType.OPERATIONAL, NODE_IID.augmentation(FlowCapableNode.class)); when(dataTreeModification.getRootPath()).thenReturn(identifier); when(dataTreeModification.getRootNode()).thenReturn(dataObjectModification); - when(dataTreeModification.getRootNode().getModificationType()).thenReturn(ModificationType.WRITE); + when(dataTreeModification.getRootNode().modificationType()).thenReturn(ModificationType.WRITE); when(deviceOwnershipService.isEntityOwned(any())).thenReturn(true); } diff --git a/applications/table-miss-enforcer/src/main/java/org/opendaylight/openflowplugin/applications/tablemissenforcer/LLDPPacketPuntEnforcer.java b/applications/table-miss-enforcer/src/main/java/org/opendaylight/openflowplugin/applications/tablemissenforcer/LLDPPacketPuntEnforcer.java index f628621cd..0ff33f476 100644 --- a/applications/table-miss-enforcer/src/main/java/org/opendaylight/openflowplugin/applications/tablemissenforcer/LLDPPacketPuntEnforcer.java +++ b/applications/table-miss-enforcer/src/main/java/org/opendaylight/openflowplugin/applications/tablemissenforcer/LLDPPacketPuntEnforcer.java @@ -9,7 +9,7 @@ package org.opendaylight.openflowplugin.applications.tablemissenforcer; import static java.util.Objects.requireNonNull; -import java.util.Collection; +import java.util.List; import javax.annotation.PreDestroy; import javax.inject.Inject; import javax.inject.Singleton; @@ -19,7 +19,7 @@ import org.opendaylight.mdsal.binding.api.DataBroker; 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.RpcConsumerRegistry; +import org.opendaylight.mdsal.binding.api.RpcService; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.openflowplugin.api.OFConstants; import org.opendaylight.openflowplugin.applications.deviceownershipservice.DeviceOwnershipService; @@ -74,7 +74,7 @@ public final class LLDPPacketPuntEnforcer implements AutoCloseable, ClusteredDat @Activate public LLDPPacketPuntEnforcer(@Reference final DataBroker dataBroker, @Reference final DeviceOwnershipService deviceOwnershipService, - @Reference final RpcConsumerRegistry rpcService) { + @Reference final RpcService rpcService) { this.deviceOwnershipService = requireNonNull(deviceOwnershipService); addFlow = rpcService.getRpc(AddFlow.class); listenerRegistration = dataBroker.registerDataTreeChangeListener( @@ -91,15 +91,13 @@ public final class LLDPPacketPuntEnforcer implements AutoCloseable, ClusteredDat } @Override - public void onDataTreeChanged(final Collection> modifications) { + public void onDataTreeChanged(final List> modifications) { for (var modification : modifications) { - if (modification.getRootNode().getModificationType() == ModificationType.WRITE) { - final var nodeId = modification.getRootPath().getRootIdentifier() - .firstKeyOf(Node.class).getId().getValue(); + if (modification.getRootNode().modificationType() == ModificationType.WRITE) { + final var nodeId = modification.getRootPath().path().firstKeyOf(Node.class).getId().getValue(); if (deviceOwnershipService.isEntityOwned(nodeId)) { LoggingFutures.addErrorLogging(addFlow.invoke(new AddFlowInputBuilder(createFlow()) - .setNode(new NodeRef(modification.getRootPath() - .getRootIdentifier().firstIdentifierOf(Node.class))) + .setNode(new NodeRef(modification.getRootPath().path().firstIdentifierOf(Node.class))) .build()), LOG, "addFlow"); } else { LOG.debug("Node {} is not owned by this controller, so skip adding LLDP table miss flow", nodeId); diff --git a/applications/table-miss-enforcer/src/test/java/org/opendaylight/openflowplugin/applications/tablemissenforcer/LLDPDataTreeChangeListenerTest.java b/applications/table-miss-enforcer/src/test/java/org/opendaylight/openflowplugin/applications/tablemissenforcer/LLDPDataTreeChangeListenerTest.java index 5507eea97..a981c0deb 100644 --- a/applications/table-miss-enforcer/src/test/java/org/opendaylight/openflowplugin/applications/tablemissenforcer/LLDPDataTreeChangeListenerTest.java +++ b/applications/table-miss-enforcer/src/test/java/org/opendaylight/openflowplugin/applications/tablemissenforcer/LLDPDataTreeChangeListenerTest.java @@ -17,7 +17,7 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -import java.util.Collections; +import java.util.List; import java.util.Map; import org.junit.After; import org.junit.Before; @@ -32,7 +32,7 @@ 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.RpcConsumerRegistry; +import org.opendaylight.mdsal.binding.api.RpcService; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.openflowplugin.applications.deviceownershipservice.DeviceOwnershipService; import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.Action; @@ -66,7 +66,7 @@ public class LLDPDataTreeChangeListenerTest { @Mock private ListenerRegistration reg; @Mock - private RpcConsumerRegistry rpcService; + private RpcService rpcService; @Mock private AddFlow addFlow; @Mock @@ -99,7 +99,7 @@ public class LLDPDataTreeChangeListenerTest { @Test public void testOnDataTreeChanged() { - lldpPacketPuntEnforcer.onDataTreeChanged(Collections.singleton(dataTreeModification)); + lldpPacketPuntEnforcer.onDataTreeChanged(List.of(dataTreeModification)); verify(addFlow).invoke(addFlowInputCaptor.capture()); AddFlowInput captured = addFlowInputCaptor.getValue(); assertEquals(NODE_IID, captured.getNode().getValue()); diff --git a/applications/topology-lldp-discovery/pom.xml b/applications/topology-lldp-discovery/pom.xml index ed96629bc..a8989e9c5 100644 --- a/applications/topology-lldp-discovery/pom.xml +++ b/applications/topology-lldp-discovery/pom.xml @@ -13,6 +13,11 @@ bundle + + com.github.spotbugs + spotbugs-annotations + true + com.google.guava guava diff --git a/applications/topology-lldp-discovery/src/main/java/org/opendaylight/openflowplugin/applications/topology/lldp/LLDPLinkAger.java b/applications/topology-lldp-discovery/src/main/java/org/opendaylight/openflowplugin/applications/topology/lldp/LLDPLinkAger.java index bb8c47440..c4a67e029 100644 --- a/applications/topology-lldp-discovery/src/main/java/org/opendaylight/openflowplugin/applications/topology/lldp/LLDPLinkAger.java +++ b/applications/topology-lldp-discovery/src/main/java/org/opendaylight/openflowplugin/applications/topology/lldp/LLDPLinkAger.java @@ -8,8 +8,8 @@ package org.opendaylight.openflowplugin.applications.topology.lldp; import com.google.common.annotations.VisibleForTesting; -import java.util.Collection; import java.util.Date; +import java.util.List; import java.util.Map.Entry; import java.util.Timer; import java.util.TimerTask; @@ -41,7 +41,7 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology. 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; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Link; -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; @@ -60,7 +60,7 @@ public final class LLDPLinkAger implements ConfigurationListener, ClusteredDataT private final NotificationPublishService notificationService; private final AutoCloseable configurationServiceRegistration; private final EntityOwnershipService eos; - private ListenerRegistration listenerRegistration; + private Registration listenerRegistration; /** * default ctor - start timer. @@ -76,7 +76,7 @@ public final class LLDPLinkAger implements ConfigurationListener, ClusteredDataT this.notificationService = notificationService; configurationServiceRegistration = configurationService.registerListener(this); eos = entityOwnershipService; - final DataTreeIdentifier dtiToNodeConnector = DataTreeIdentifier.create(LogicalDatastoreType.OPERATIONAL, + final DataTreeIdentifier dtiToNodeConnector = DataTreeIdentifier.of(LogicalDatastoreType.OPERATIONAL, II_TO_LINK); try { listenerRegistration = dataBroker.registerDataTreeChangeListener(dtiToNodeConnector, LLDPLinkAger.this); @@ -88,7 +88,7 @@ public final class LLDPLinkAger implements ConfigurationListener, ClusteredDataT topologyLldpDiscoveryConfig.getTopologyLldpInterval().getValue().toJava()); } - public void put(LinkDiscovered link) { + public void put(final LinkDiscovered link) { Date expires = new Date(); expires.setTime(expires.getTime() + linkExpirationTime); linkToDate.put(link, expires); @@ -107,9 +107,9 @@ public final class LLDPLinkAger implements ConfigurationListener, ClusteredDataT } @Override - public void onDataTreeChanged(@NonNull Collection> changes) { + public void onDataTreeChanged(final List> changes) { for (DataTreeModification modification : changes) { - switch (modification.getRootNode().getModificationType()) { + switch (modification.getRootNode().modificationType()) { case WRITE: break; case SUBTREE_MODIFIED: @@ -119,7 +119,7 @@ public final class LLDPLinkAger implements ConfigurationListener, ClusteredDataT processLinkDeleted(modification.getRootNode()); break; default: - LOG.error("Unhandled modification type: {}", modification.getRootNode().getModificationType()); + LOG.error("Unhandled modification type: {}", modification.getRootNode().modificationType()); } } } @@ -151,7 +151,7 @@ public final class LLDPLinkAger implements ConfigurationListener, ClusteredDataT return linkToDate.containsKey(linkDiscovered); } - private void processLinkDeleted(DataObjectModification rootNode) { + private void processLinkDeleted(final DataObjectModification rootNode) { Link link = rootNode.getDataBefore(); LOG.trace("Removing link {} from linkToDate cache", link); LinkDiscovered linkDiscovered = LLDPDiscoveryUtils.toLLDPLinkDiscovered(link); diff --git a/applications/topology-manager/pom.xml b/applications/topology-manager/pom.xml index fc93660fd..5b97421b8 100644 --- a/applications/topology-manager/pom.xml +++ b/applications/topology-manager/pom.xml @@ -23,7 +23,7 @@ org.opendaylight.mdsal - mdsal-singleton-common-api + mdsal-singleton-api org.opendaylight.openflowplugin.model diff --git a/applications/topology-manager/src/main/java/org/opendaylight/openflowplugin/applications/topology/manager/DataTreeChangeListenerImpl.java b/applications/topology-manager/src/main/java/org/opendaylight/openflowplugin/applications/topology/manager/DataTreeChangeListenerImpl.java index 46f70c3a8..7842195a8 100644 --- a/applications/topology-manager/src/main/java/org/opendaylight/openflowplugin/applications/topology/manager/DataTreeChangeListenerImpl.java +++ b/applications/topology-manager/src/main/java/org/opendaylight/openflowplugin/applications/topology/manager/DataTreeChangeListenerImpl.java @@ -19,7 +19,7 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology. import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.TopologyId; 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; -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; @@ -28,7 +28,7 @@ public abstract class DataTreeChangeListenerImpl implement static final InstanceIdentifier II_TO_TOPOLOGY = InstanceIdentifier.create(NetworkTopology.class) .child(Topology.class, new TopologyKey(new TopologyId(FlowCapableTopologyProvider.TOPOLOGY_ID))); - protected final ListenerRegistration listenerRegistration; + protected final Registration listenerRegistration; protected OperationProcessor operationProcessor; @SuppressFBWarnings(value = "MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR", @@ -36,7 +36,7 @@ public abstract class DataTreeChangeListenerImpl implement public DataTreeChangeListenerImpl(final OperationProcessor operationProcessor, final DataBroker dataBroker, final InstanceIdentifier ii) { listenerRegistration = dataBroker.registerDataTreeChangeListener( - DataTreeIdentifier.create(LogicalDatastoreType.OPERATIONAL, ii), this); + DataTreeIdentifier.of(LogicalDatastoreType.OPERATIONAL, ii), this); this.operationProcessor = operationProcessor; } diff --git a/applications/topology-manager/src/main/java/org/opendaylight/openflowplugin/applications/topology/manager/FlowCapableTopologyProvider.java b/applications/topology-manager/src/main/java/org/opendaylight/openflowplugin/applications/topology/manager/FlowCapableTopologyProvider.java index 35bdd55f8..69fdf303f 100644 --- a/applications/topology-manager/src/main/java/org/opendaylight/openflowplugin/applications/topology/manager/FlowCapableTopologyProvider.java +++ b/applications/topology-manager/src/main/java/org/opendaylight/openflowplugin/applications/topology/manager/FlowCapableTopologyProvider.java @@ -18,10 +18,9 @@ import javax.inject.Singleton; import org.opendaylight.mdsal.binding.api.DataBroker; import org.opendaylight.mdsal.binding.api.NotificationService; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; -import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonService; -import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider; -import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceRegistration; -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.openflowplugin.common.txchain.TransactionChainManager; 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.TopologyId; @@ -47,7 +46,7 @@ public class FlowCapableTopologyProvider implements ClusterSingletonService, Aut private InstanceIdentifier topologyPathIID; private TransactionChainManager transactionChainManager = null; private Registration listenerRegistration; - private ClusterSingletonServiceRegistration singletonServiceRegistration; + private Registration singletonServiceRegistration; @Inject public FlowCapableTopologyProvider(final DataBroker dataBroker, @@ -113,7 +112,7 @@ public class FlowCapableTopologyProvider implements ClusterSingletonService, Aut @Override public ServiceGroupIdentifier getIdentifier() { - return ServiceGroupIdentifier.create(TOPOLOGY_PROVIDER); + return new ServiceGroupIdentifier(TOPOLOGY_PROVIDER); } private boolean isFlowTopologyExist(final InstanceIdentifier path) { diff --git a/applications/topology-manager/src/main/java/org/opendaylight/openflowplugin/applications/topology/manager/NodeChangeListenerImpl.java b/applications/topology-manager/src/main/java/org/opendaylight/openflowplugin/applications/topology/manager/NodeChangeListenerImpl.java index 18a5766f3..e2aec6fdc 100644 --- a/applications/topology-manager/src/main/java/org/opendaylight/openflowplugin/applications/topology/manager/NodeChangeListenerImpl.java +++ b/applications/topology-manager/src/main/java/org/opendaylight/openflowplugin/applications/topology/manager/NodeChangeListenerImpl.java @@ -7,7 +7,7 @@ */ package org.opendaylight.openflowplugin.applications.topology.manager; -import java.util.Collection; +import java.util.List; import javax.annotation.PreDestroy; import javax.inject.Inject; import javax.inject.Singleton; @@ -38,9 +38,9 @@ public class NodeChangeListenerImpl extends DataTreeChangeListenerImpl> modifications) { + public void onDataTreeChanged(final List> modifications) { for (DataTreeModification modification : modifications) { - switch (modification.getRootNode().getModificationType()) { + switch (modification.getRootNode().modificationType()) { case WRITE: processAddedNode(modification); break; @@ -52,7 +52,7 @@ public class NodeChangeListenerImpl extends DataTreeChangeListenerImpl modification) { - final InstanceIdentifier iiToNodeInInventory = modification.getRootPath().getRootIdentifier(); + final InstanceIdentifier iiToNodeInInventory = modification.getRootPath().path(); final NodeId nodeId = provideTopologyNodeId(iiToNodeInInventory); final InstanceIdentifier @@ -80,7 +80,7 @@ public class NodeChangeListenerImpl extends DataTreeChangeListenerImpl modification) { - final InstanceIdentifier iiToNodeInInventory = modification.getRootPath().getRootIdentifier(); + final InstanceIdentifier iiToNodeInInventory = modification.getRootPath().path(); final NodeId nodeIdInTopology = provideTopologyNodeId(iiToNodeInInventory); if (nodeIdInTopology != null) { final InstanceIdentifier> modifications) { + public void onDataTreeChanged(final List> modifications) { for (DataTreeModification modification : modifications) { - switch (modification.getRootNode().getModificationType()) { + switch (modification.getRootNode().modificationType()) { case WRITE: processAddedTerminationPoints(modification); break; @@ -60,7 +60,7 @@ public class TerminationPointChangeListenerImpl extends DataTreeChangeListenerIm break; default: throw new IllegalArgumentException( - "Unhandled modification type: {}" + modification.getRootNode().getModificationType()); + "Unhandled modification type: {}" + modification.getRootNode().modificationType()); } } } @@ -72,7 +72,7 @@ public class TerminationPointChangeListenerImpl extends DataTreeChangeListenerIm } private void processRemovedTerminationPoints(final DataTreeModification modification) { - final InstanceIdentifier removedNode = modification.getRootPath().getRootIdentifier(); + final InstanceIdentifier removedNode = modification.getRootPath().path(); final TpId terminationPointId = provideTopologyTerminationPointId(removedNode); final InstanceIdentifier iiToTopologyTerminationPoint = provideIIToTopologyTerminationPoint( terminationPointId, removedNode); @@ -110,15 +110,14 @@ public class TerminationPointChangeListenerImpl extends DataTreeChangeListenerIm } private void processAddedTerminationPoints(final DataTreeModification modification) { - final InstanceIdentifier iiToNodeInInventory = modification.getRootPath() - .getRootIdentifier(); + final InstanceIdentifier iiToNodeInInventory = modification.getRootPath().path(); TpId terminationPointIdInTopology = provideTopologyTerminationPointId(iiToNodeInInventory); if (terminationPointIdInTopology != null) { InstanceIdentifier iiToTopologyTerminationPoint = provideIIToTopologyTerminationPoint( terminationPointIdInTopology, iiToNodeInInventory); TerminationPoint point = prepareTopologyTerminationPoint(terminationPointIdInTopology, iiToNodeInInventory); sendToTransactionChain(point, iiToTopologyTerminationPoint); - removeLinks(modification.getRootNode().getDataAfter(), point); + removeLinks(modification.getRootNode().dataAfter(), point); } else { LOG.debug("Inventory node connector key is null. Data can't be written to topology termination point"); } diff --git a/applications/topology-manager/src/test/java/org/opendaylight/openflowplugin/applications/topology/manager/DataTreeChangeListenerBase.java b/applications/topology-manager/src/test/java/org/opendaylight/openflowplugin/applications/topology/manager/DataTreeChangeListenerBase.java index 256aaada0..6baf89023 100644 --- a/applications/topology-manager/src/test/java/org/opendaylight/openflowplugin/applications/topology/manager/DataTreeChangeListenerBase.java +++ b/applications/topology-manager/src/test/java/org/opendaylight/openflowplugin/applications/topology/manager/DataTreeChangeListenerBase.java @@ -7,7 +7,6 @@ */ package org.opendaylight.openflowplugin.applications.topology.manager; -import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @@ -25,7 +24,6 @@ import org.opendaylight.mdsal.binding.api.DataObjectModification.ModificationTyp import org.opendaylight.mdsal.binding.api.DataTreeIdentifier; import org.opendaylight.mdsal.binding.api.DataTreeModification; import org.opendaylight.mdsal.binding.api.TransactionChain; -import org.opendaylight.mdsal.binding.api.TransactionChainListener; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNodeConnector; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNodeConnectorBuilder; @@ -54,7 +52,7 @@ public abstract class DataTreeChangeListenerBase { @Before public void setUp() { - doReturn(mockTxChain).when(mockDataBroker).createTransactionChain(any(TransactionChainListener.class)); + doReturn(mockTxChain).when(mockDataBroker).createTransactionChain(); processor = new OperationProcessor(mockDataBroker); @@ -83,12 +81,12 @@ public abstract class DataTreeChangeListenerBase { final InstanceIdentifier ii, final boolean getDataAfter) { final DataTreeModification dataTreeModification = mock(DataTreeModification.class); - final DataTreeIdentifier identifier = DataTreeIdentifier.create(LogicalDatastoreType.OPERATIONAL, ii); + final DataTreeIdentifier identifier = DataTreeIdentifier.of(LogicalDatastoreType.OPERATIONAL, ii); when(dataTreeModification.getRootNode()).thenReturn(mock(DataObjectModification.class)); - when(dataTreeModification.getRootNode().getModificationType()).thenReturn(type); + when(dataTreeModification.getRootNode().modificationType()).thenReturn(type); when(dataTreeModification.getRootPath()).thenReturn(identifier); if (getDataAfter) { - when(dataTreeModification.getRootNode().getDataAfter()).thenReturn(mock(FlowCapableNodeConnector.class)); + when(dataTreeModification.getRootNode().dataAfter()).thenReturn(mock(FlowCapableNodeConnector.class)); } return dataTreeModification; } diff --git a/applications/topology-manager/src/test/java/org/opendaylight/openflowplugin/applications/topology/manager/FlowCapableTopologyExporterTest.java b/applications/topology-manager/src/test/java/org/opendaylight/openflowplugin/applications/topology/manager/FlowCapableTopologyExporterTest.java index 344473aa2..c2b1c18ba 100644 --- a/applications/topology-manager/src/test/java/org/opendaylight/openflowplugin/applications/topology/manager/FlowCapableTopologyExporterTest.java +++ b/applications/topology-manager/src/test/java/org/opendaylight/openflowplugin/applications/topology/manager/FlowCapableTopologyExporterTest.java @@ -8,7 +8,6 @@ package org.opendaylight.openflowplugin.applications.topology.manager; import static org.junit.Assert.assertEquals; -import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; @@ -37,7 +36,6 @@ import org.mockito.junit.MockitoJUnitRunner; import org.opendaylight.mdsal.binding.api.DataBroker; import org.opendaylight.mdsal.binding.api.ReadWriteTransaction; import org.opendaylight.mdsal.binding.api.TransactionChain; -import org.opendaylight.mdsal.binding.api.TransactionChainListener; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.topology.discovery.rev130819.LinkDiscoveredBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.topology.discovery.rev130819.LinkRemovedBuilder; @@ -66,8 +64,7 @@ public class FlowCapableTopologyExporterTest { @Before public void setUp() { - doReturn(mockTxChain).when(mockDataBroker) - .createTransactionChain(any(TransactionChainListener.class)); + doReturn(mockTxChain).when(mockDataBroker).createTransactionChain(); processor = new OperationProcessor(mockDataBroker); diff --git a/applications/topology-manager/src/test/java/org/opendaylight/openflowplugin/applications/topology/manager/NodeChangeListenerImplTest.java b/applications/topology-manager/src/test/java/org/opendaylight/openflowplugin/applications/topology/manager/NodeChangeListenerImplTest.java index 6ad359e5c..16bb5e388 100644 --- a/applications/topology-manager/src/test/java/org/opendaylight/openflowplugin/applications/topology/manager/NodeChangeListenerImplTest.java +++ b/applications/topology-manager/src/test/java/org/opendaylight/openflowplugin/applications/topology/manager/NodeChangeListenerImplTest.java @@ -30,7 +30,6 @@ import static org.opendaylight.openflowplugin.applications.topology.manager.Test import com.google.common.util.concurrent.FluentFuture; import com.google.common.util.concurrent.SettableFuture; import java.util.Arrays; -import java.util.Collections; import java.util.List; import java.util.Optional; import java.util.concurrent.CountDownLatch; @@ -93,14 +92,13 @@ public class NodeChangeListenerImplTest extends DataTreeChangeListenerBase { int expDeleteCalls = expDeletedIIDs.length; CountDownLatch deleteLatch = new CountDownLatch(expDeleteCalls); - ArgumentCaptor deletedLinkIDs = - ArgumentCaptor.forClass(InstanceIdentifier.class); + ArgumentCaptor deletedLinkIDs = ArgumentCaptor.forClass(InstanceIdentifier.class); setupStubbedDeletes(mockTx1, deletedLinkIDs, deleteLatch); doReturn(mockTx1).when(mockTxChain).newReadWriteTransaction(); DataTreeModification dataTreeModification = setupDataTreeChange(DELETE, invNodeID, false); - nodeChangeListener.onDataTreeChanged(Collections.singleton(dataTreeModification)); + nodeChangeListener.onDataTreeChanged(List.of(dataTreeModification)); waitForSubmit(submitLatch1); @@ -144,7 +142,7 @@ public class NodeChangeListenerImplTest extends DataTreeChangeListenerBase { doReturn(mockTx).when(mockTxChain).newReadWriteTransaction(); DataTreeModification dataTreeModification = setupDataTreeChange(DELETE, invNodeID, false); - nodeChangeListener.onDataTreeChanged(Collections.singleton(dataTreeModification)); + nodeChangeListener.onDataTreeChanged(List.of(dataTreeModification)); waitForSubmit(submitLatch); @@ -167,7 +165,7 @@ public class NodeChangeListenerImplTest extends DataTreeChangeListenerBase { doReturn(mockTx).when(mockTxChain).newReadWriteTransaction(); DataTreeModification dataTreeModification = setupDataTreeChange(WRITE, invNodeID, false); - nodeChangeListener.onDataTreeChanged(Collections.singleton(dataTreeModification)); + nodeChangeListener.onDataTreeChanged(List.of(dataTreeModification)); waitForSubmit(submitLatch); diff --git a/applications/topology-manager/src/test/java/org/opendaylight/openflowplugin/applications/topology/manager/TerminationPointChangeListenerImplTest.java b/applications/topology-manager/src/test/java/org/opendaylight/openflowplugin/applications/topology/manager/TerminationPointChangeListenerImplTest.java index 776424266..5e699cf79 100644 --- a/applications/topology-manager/src/test/java/org/opendaylight/openflowplugin/applications/topology/manager/TerminationPointChangeListenerImplTest.java +++ b/applications/topology-manager/src/test/java/org/opendaylight/openflowplugin/applications/topology/manager/TerminationPointChangeListenerImplTest.java @@ -34,7 +34,6 @@ import static org.opendaylight.openflowplugin.applications.topology.manager.Test import com.google.common.util.concurrent.FluentFuture; import com.google.common.util.concurrent.SettableFuture; import java.util.Arrays; -import java.util.Collections; import java.util.List; import java.util.Optional; import java.util.concurrent.CountDownLatch; @@ -113,7 +112,7 @@ public class TerminationPointChangeListenerImplTest extends DataTreeChangeListen doReturn(mockTx1).when(mockTxChain).newReadWriteTransaction(); DataTreeModification dataTreeModification = setupDataTreeChange(DELETE, invNodeConnID, false); - terminationPointListener.onDataTreeChanged(Collections.singleton(dataTreeModification)); + terminationPointListener.onDataTreeChanged(List.of(dataTreeModification)); waitForSubmit(submitLatch1); @@ -165,7 +164,7 @@ public class TerminationPointChangeListenerImplTest extends DataTreeChangeListen doReturn(mockTx).when(mockTxChain).newReadWriteTransaction(); DataTreeModification dataTreeModification = setupDataTreeChange(DELETE, invNodeConnID, false); - terminationPointListener.onDataTreeChanged(Collections.singleton(dataTreeModification)); + terminationPointListener.onDataTreeChanged(List.of(dataTreeModification)); waitForSubmit(submitLatch); @@ -190,7 +189,7 @@ public class TerminationPointChangeListenerImplTest extends DataTreeChangeListen doReturn(mockTx).when(mockTxChain).newReadWriteTransaction(); DataTreeModification dataTreeModification = setupDataTreeChange(WRITE, invNodeConnID, true); - terminationPointListener.onDataTreeChanged(Collections.singleton(dataTreeModification)); + terminationPointListener.onDataTreeChanged(List.of(dataTreeModification)); waitForSubmit(submitLatch); @@ -240,9 +239,9 @@ public class TerminationPointChangeListenerImplTest extends DataTreeChangeListen doReturn(mockTx).when(mockTxChain).newReadWriteTransaction(); DataTreeModification dataTreeModification = setupDataTreeChange(WRITE, invNodeConnID, false); - when(dataTreeModification.getRootNode().getDataAfter()) + when(dataTreeModification.getRootNode().dataAfter()) .thenReturn(provideFlowCapableNodeConnector(true, false)); - terminationPointListener.onDataTreeChanged(Collections.singleton(dataTreeModification)); + terminationPointListener.onDataTreeChanged(List.of(dataTreeModification)); waitForDeletes(1, deleteLatch); @@ -287,9 +286,9 @@ public class TerminationPointChangeListenerImplTest extends DataTreeChangeListen doReturn(mockTx).when(mockTxChain).newReadWriteTransaction(); DataTreeModification dataTreeModification = setupDataTreeChange(WRITE, invNodeConnID, false); - when(dataTreeModification.getRootNode().getDataAfter()) + when(dataTreeModification.getRootNode().dataAfter()) .thenReturn(provideFlowCapableNodeConnector(false, true)); - terminationPointListener.onDataTreeChanged(Collections.singleton(dataTreeModification)); + terminationPointListener.onDataTreeChanged(List.of(dataTreeModification)); waitForDeletes(1, deleteLatch); diff --git a/extension/openflowjava-extension-nicira/pom.xml b/extension/openflowjava-extension-nicira/pom.xml index 15fb4e7e8..367dec3d4 100644 --- a/extension/openflowjava-extension-nicira/pom.xml +++ b/extension/openflowjava-extension-nicira/pom.xml @@ -12,33 +12,33 @@ - ${project.groupId}.openflowjava + com.github.spotbugs + spotbugs-annotations + true + + + io.netty + netty-buffer + + + org.opendaylight.openflowplugin.openflowjava openflow-protocol-api - ${project.groupId}.openflowjava + org.opendaylight.openflowplugin.openflowjava openflow-protocol-spi - ${project.groupId}.openflowjava + org.opendaylight.openflowplugin.openflowjava openflowjava-util - ${project.groupId} + org.opendaylight.openflowplugin openflowjava-extension-nicira-api - - io.netty - netty-buffer - org.opendaylight.yangtools yang-common-netty - - org.slf4j - slf4j-simple - test - diff --git a/extension/test-extension/src/main/java/org/opendaylight/openflowplugin/extension/test/Test.java b/extension/test-extension/src/main/java/org/opendaylight/openflowplugin/extension/test/Test.java index 696afcc33..5d9f7496a 100644 --- a/extension/test-extension/src/main/java/org/opendaylight/openflowplugin/extension/test/Test.java +++ b/extension/test-extension/src/main/java/org/opendaylight/openflowplugin/extension/test/Test.java @@ -13,8 +13,8 @@ import javax.annotation.PreDestroy; import javax.inject.Inject; import javax.inject.Singleton; import org.opendaylight.infrautils.utils.concurrent.LoggingFutures; -import org.opendaylight.mdsal.binding.api.RpcConsumerRegistry; import org.opendaylight.mdsal.binding.api.RpcProviderService; +import org.opendaylight.mdsal.binding.api.RpcService; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Prefix; import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.DecNwTtlCaseBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.dec.nw.ttl._case.DecNwTtlBuilder; @@ -77,8 +77,7 @@ public final class Test implements TestFlow, AutoCloseable { @Inject @Activate - public Test(@Reference final RpcConsumerRegistry rpcService, - @Reference final RpcProviderService rpcProviderService) { + public Test(@Reference final RpcService rpcService, @Reference final RpcProviderService rpcProviderService) { addFlow = rpcService.getRpc(AddFlow.class); reg = rpcProviderService.registerRpcImplementation(this); } diff --git a/features-aggregator/odl-openflowplugin-flow-services-rest/pom.xml b/features-aggregator/odl-openflowplugin-flow-services-rest/pom.xml index fbbbd30d6..9acc185d2 100644 --- a/features-aggregator/odl-openflowplugin-flow-services-rest/pom.xml +++ b/features-aggregator/odl-openflowplugin-flow-services-rest/pom.xml @@ -21,7 +21,7 @@ org.opendaylight.netconf netconf-artifacts - 6.0.6 + 7.0.0-SNAPSHOT import pom diff --git a/features-aggregator/odl-openflowplugin-flow-services-rest/src/main/feature/feature.xml b/features-aggregator/odl-openflowplugin-flow-services-rest/src/main/feature/feature.xml index ada7d8e21..19c6f1dd1 100644 --- a/features-aggregator/odl-openflowplugin-flow-services-rest/src/main/feature/feature.xml +++ b/features-aggregator/odl-openflowplugin-flow-services-rest/src/main/feature/feature.xml @@ -1,6 +1,6 @@ - odl-restconf + odl-restconf diff --git a/features-aggregator/odl-openflowplugin-nsf-model/pom.xml b/features-aggregator/odl-openflowplugin-nsf-model/pom.xml index 43b83a29d..064356eb0 100644 --- a/features-aggregator/odl-openflowplugin-nsf-model/pom.xml +++ b/features-aggregator/odl-openflowplugin-nsf-model/pom.xml @@ -21,7 +21,7 @@ org.opendaylight.mdsal mdsal-artifacts - 12.0.4 + 13.0.0 import pom @@ -30,7 +30,7 @@ org.opendaylight.controller controller-artifacts - 8.0.4 + 9.0.0 import pom diff --git a/features-aggregator/odl-openflowplugin-nsf-model/src/main/feature/feature.xml b/features-aggregator/odl-openflowplugin-nsf-model/src/main/feature/feature.xml index 08fba54e1..92b039a34 100644 --- a/features-aggregator/odl-openflowplugin-nsf-model/src/main/feature/feature.xml +++ b/features-aggregator/odl-openflowplugin-nsf-model/src/main/feature/feature.xml @@ -1,7 +1,7 @@ - odl-mdsal-model-draft-clemm-netmod-yang-network-topo-01-minimal - odl-mdsal-model-odl-l2-types + odl-mdsal-model-draft-clemm-netmod-yang-network-topo-01-minimal + odl-mdsal-model-odl-l2-types diff --git a/features-aggregator/odl-openflowplugin-southbound/pom.xml b/features-aggregator/odl-openflowplugin-southbound/pom.xml index cd2f9dbd3..b80a76498 100644 --- a/features-aggregator/odl-openflowplugin-southbound/pom.xml +++ b/features-aggregator/odl-openflowplugin-southbound/pom.xml @@ -29,7 +29,7 @@ org.opendaylight.controller controller-artifacts - 8.0.4 + 9.0.0 import pom diff --git a/features-aggregator/odl-openflowplugin-southbound/src/main/feature/feature.xml b/features-aggregator/odl-openflowplugin-southbound/src/main/feature/feature.xml index d09aad690..25fde0585 100644 --- a/features-aggregator/odl-openflowplugin-southbound/src/main/feature/feature.xml +++ b/features-aggregator/odl-openflowplugin-southbound/src/main/feature/feature.xml @@ -2,7 +2,7 @@ mvn:org.opendaylight.openflowplugin/openflowplugin-blueprint-config/${project.version}/cfg/config - odl-mdsal-broker + odl-mdsal-broker odl-infrautils-diagstatus diff --git a/openflowjava/features-openflowjava-aggregator/odl-openflowjava-protocol/pom.xml b/openflowjava/features-openflowjava-aggregator/odl-openflowjava-protocol/pom.xml index 45bc304fc..84e5abfe3 100644 --- a/openflowjava/features-openflowjava-aggregator/odl-openflowjava-protocol/pom.xml +++ b/openflowjava/features-openflowjava-aggregator/odl-openflowjava-protocol/pom.xml @@ -42,7 +42,7 @@ org.opendaylight.yangtools yangtools-artifacts - 11.0.5 + 13.0.1 import pom @@ -51,7 +51,7 @@ org.opendaylight.mdsal mdsal-artifacts - 12.0.4 + 13.0.0 import pom diff --git a/openflowjava/features-openflowjava-aggregator/odl-openflowjava-protocol/src/main/feature/feature.xml b/openflowjava/features-openflowjava-aggregator/odl-openflowjava-protocol/src/main/feature/feature.xml index 687ffb891..fdd305b81 100644 --- a/openflowjava/features-openflowjava-aggregator/odl-openflowjava-protocol/src/main/feature/feature.xml +++ b/openflowjava/features-openflowjava-aggregator/odl-openflowjava-protocol/src/main/feature/feature.xml @@ -4,8 +4,8 @@ mvn:org.opendaylight.openflowplugin.openflowjava/openflowjava-blueprint-config/${project.version}/xml/config mvn:org.opendaylight.openflowplugin.openflowjava/openflowjava-blueprint-config/${project.version}/xml/legacyConfig - odl-yangtools-netty - odl-mdsal-model-rfc6991 + odl-yangtools-netty + odl-mdsal-model-rfc6991 odl-infrautils-diagstatus diff --git a/openflowplugin-api/pom.xml b/openflowplugin-api/pom.xml index b31b0725f..ae32af498 100644 --- a/openflowplugin-api/pom.xml +++ b/openflowplugin-api/pom.xml @@ -27,7 +27,7 @@ org.opendaylight.mdsal - mdsal-singleton-common-api + mdsal-singleton-api org.opendaylight.mdsal diff --git a/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/OFPContext.java b/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/OFPContext.java index 855114d94..bc770d2db 100644 --- a/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/OFPContext.java +++ b/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/OFPContext.java @@ -8,7 +8,7 @@ package org.opendaylight.openflowplugin.api.openflow; import org.eclipse.jdt.annotation.NonNull; -import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonService; +import org.opendaylight.mdsal.singleton.api.ClusterSingletonService; import org.opendaylight.openflowplugin.api.openflow.device.DeviceInfo; import org.opendaylight.openflowplugin.api.openflow.lifecycle.ContextChainMastershipWatcher; @@ -30,4 +30,4 @@ public interface OFPContext extends AutoCloseable, ClusterSingletonService { @Override void close(); -} \ No newline at end of file +} diff --git a/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/device/DeviceInfo.java b/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/device/DeviceInfo.java index f9a59868a..c2def9e68 100644 --- a/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/device/DeviceInfo.java +++ b/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/device/DeviceInfo.java @@ -8,7 +8,7 @@ package org.opendaylight.openflowplugin.api.openflow.device; import org.eclipse.jdt.annotation.NonNull; -import org.opendaylight.mdsal.singleton.common.api.ServiceGroupIdentifier; +import org.opendaylight.mdsal.singleton.api.ServiceGroupIdentifier; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeKey; diff --git a/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/lifecycle/ContextChain.java b/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/lifecycle/ContextChain.java index d48af6f50..1955a4e5e 100644 --- a/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/lifecycle/ContextChain.java +++ b/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/lifecycle/ContextChain.java @@ -8,8 +8,8 @@ package org.opendaylight.openflowplugin.api.openflow.lifecycle; import org.eclipse.jdt.annotation.NonNull; -import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonService; -import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider; +import org.opendaylight.mdsal.singleton.api.ClusterSingletonService; +import org.opendaylight.mdsal.singleton.api.ClusterSingletonServiceProvider; import org.opendaylight.openflowplugin.api.openflow.OFPContext; import org.opendaylight.openflowplugin.api.openflow.connection.ConnectionContext; import org.opendaylight.openflowplugin.api.openflow.device.handlers.DeviceRemovedHandler; @@ -79,4 +79,4 @@ public interface ContextChain extends ClusterSingletonService, AutoCloseable, Re * @param deviceRemovedHandler device removed handler */ void registerDeviceRemovedHandler(@NonNull DeviceRemovedHandler deviceRemovedHandler); -} \ No newline at end of file +} diff --git a/openflowplugin-common/src/main/java/org/opendaylight/openflowplugin/common/txchain/TransactionChainManager.java b/openflowplugin-common/src/main/java/org/opendaylight/openflowplugin/common/txchain/TransactionChainManager.java index ba3fcda84..1e45dee0f 100755 --- a/openflowplugin-common/src/main/java/org/opendaylight/openflowplugin/common/txchain/TransactionChainManager.java +++ b/openflowplugin-common/src/main/java/org/opendaylight/openflowplugin/common/txchain/TransactionChainManager.java @@ -9,6 +9,7 @@ package org.opendaylight.openflowplugin.common.txchain; import static java.util.Objects.requireNonNull; +import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Preconditions; import com.google.common.util.concurrent.FluentFuture; import com.google.common.util.concurrent.FutureCallback; @@ -24,28 +25,26 @@ import org.checkerframework.checker.lock.qual.GuardedBy; import org.checkerframework.checker.lock.qual.Holding; import org.opendaylight.mdsal.binding.api.DataBroker; import org.opendaylight.mdsal.binding.api.ReadWriteTransaction; -import org.opendaylight.mdsal.binding.api.Transaction; import org.opendaylight.mdsal.binding.api.TransactionChain; import org.opendaylight.mdsal.binding.api.TransactionChainClosedException; -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.openflowplugin.common.wait.SimpleTaskRetryLooper; 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; /** * The openflowplugin-impl.org.opendaylight.openflowplugin.impl.device - * package protected class for controlling {@link WriteTransaction} life cycle. It is - * a {@link TransactionChainListener} and provide package protected methods for writeToTransaction + * package protected class for controlling {@link WriteTransaction} life cycle. It listens on chains and provides + * package-protected methods for writeToTransaction * method (wrapped {@link WriteTransaction#put(LogicalDatastoreType, InstanceIdentifier, DataObject)}) * and submitTransaction method (wrapped {@link WriteTransaction#commit()}). */ -public class TransactionChainManager implements TransactionChainListener, AutoCloseable { - +public class TransactionChainManager implements AutoCloseable { private static final Logger LOG = LoggerFactory.getLogger(TransactionChainManager.class); private static final String CANNOT_WRITE_INTO_TRANSACTION = "Cannot write into transaction."; @@ -74,11 +73,23 @@ public class TransactionChainManager implements TransactionChainListener, AutoCl @Holding("txLock") private void createTxChain() { - TransactionChain txChainFactoryTemp = transactionChain; - transactionChain = dataBroker.createTransactionChain(TransactionChainManager.this); - if (txChainFactoryTemp != null) { - txChainFactoryTemp.close(); + final var prev = transactionChain; + final var next = dataBroker.createTransactionChain(); + transactionChain = next; + if (prev != null) { + prev.close(); } + next.addCallback(new FutureCallback() { + @Override + public void onSuccess(final Empty result) { + // No-op + } + + @Override + public void onFailure(final Throwable cause) { + onTransactionChainFailed(next, cause); + } + }); } public boolean initialSubmitWriteTransaction() { @@ -87,21 +98,16 @@ public class TransactionChainManager implements TransactionChainListener, AutoCl } /** - * Method change status for TxChainManager to WORKING and it has to make - * registration for this class instance as {@link TransactionChainListener} to provide possibility a make DS - * transactions. Call this method for MASTER role only. + * Method change status for TxChainManager to WORKING and it has to make registration for this instance as + * a {@link TransactionChain} callback to provide possibility a make DS transactions. Call this method for MASTER + * role only. */ public void activateTransactionManager() { - if (LOG.isDebugEnabled()) { - LOG.debug("activateTransactionManager for node {} transaction submit is set to {}", - nodeId, submitIsEnabled); - } + LOG.debug("activateTransactionManager for node {} transaction submit is set to {}", nodeId, submitIsEnabled); synchronized (txLock) { if (TransactionChainManagerStatus.SLEEPING == transactionChainManagerStatus) { - Preconditions.checkState(transactionChain == null, - "TxChainFactory survive last close."); - Preconditions.checkState(writeTx == null, - "We have some unexpected WriteTransaction."); + Preconditions.checkState(transactionChain == null, "TxChainFactory survive last close."); + Preconditions.checkState(writeTx == null, "We have some unexpected WriteTransaction."); transactionChainManagerStatus = TransactionChainManagerStatus.WORKING; submitIsEnabled = false; initCommit = true; @@ -111,22 +117,19 @@ public class TransactionChainManager implements TransactionChainListener, AutoCl } /** - * Method change status for TxChainManger to SLEEPING and it unregisters - * this class instance as {@link TransactionChainListener} so it broke a possibility to write something to DS. - * Call this method for SLAVE only. - * @return Future + * Method change status for TxChainManger to SLEEPING and it unregisters this instance so it broke a possibility to + * write something to DS. Call this method for SLAVE only. + * + * @return Future competing when deactivation completes */ public FluentFuture deactivateTransactionManager() { - if (LOG.isDebugEnabled()) { - LOG.debug("deactivateTransactionManager for node {}", nodeId); - } + LOG.debug("deactivateTransactionManager for node {}", nodeId); final FluentFuture future; synchronized (txLock) { if (TransactionChainManagerStatus.WORKING == transactionChainManagerStatus) { transactionChainManagerStatus = TransactionChainManagerStatus.SLEEPING; - future = txChainShuttingDown(); - Preconditions.checkState(writeTx == null, - "We have some unexpected WriteTransaction."); + future = txChainShuttingDown(); + Preconditions.checkState(writeTx == null, "We have some unexpected WriteTransaction."); future.addCallback(new FutureCallback() { @Override public void onSuccess(final CommitInfo result) { @@ -280,9 +283,8 @@ public class TransactionChainManager implements TransactionChainListener, AutoCl } } - @Override - public void onTransactionChainFailed(final TransactionChain chain, - final Transaction transaction, final Throwable cause) { + @VisibleForTesting + void onTransactionChainFailed(final TransactionChain chain, final Throwable cause) { synchronized (txLock) { if (TransactionChainManagerStatus.WORKING == transactionChainManagerStatus && chain.equals(transactionChain)) { @@ -294,11 +296,6 @@ public class TransactionChainManager implements TransactionChainListener, AutoCl } } - @Override - public void onTransactionChainSuccessful(final TransactionChain chain) { - // NOOP - } - @Holding("txLock") private void ensureTransaction() { if (writeTx == null && TransactionChainManagerStatus.WORKING == transactionChainManagerStatus diff --git a/openflowplugin-common/src/test/java/org/opendaylight/openflowplugin/common/txchain/TransactionChainManagerTest.java b/openflowplugin-common/src/test/java/org/opendaylight/openflowplugin/common/txchain/TransactionChainManagerTest.java index 776813c9a..1180e9688 100644 --- a/openflowplugin-common/src/test/java/org/opendaylight/openflowplugin/common/txchain/TransactionChainManagerTest.java +++ b/openflowplugin-common/src/test/java/org/opendaylight/openflowplugin/common/txchain/TransactionChainManagerTest.java @@ -7,7 +7,13 @@ */ package org.opendaylight.openflowplugin.common.txchain; -import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.never; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.verifyNoMoreInteractions; +import static org.mockito.Mockito.when; import java.util.concurrent.ExecutionException; import org.junit.After; @@ -15,14 +21,11 @@ import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; -import org.mockito.Mockito; import org.mockito.junit.MockitoJUnitRunner; import org.opendaylight.mdsal.binding.api.DataBroker; import org.opendaylight.mdsal.binding.api.ReadTransaction; import org.opendaylight.mdsal.binding.api.ReadWriteTransaction; -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.common.api.CommitInfo; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId; @@ -55,22 +58,21 @@ public class TransactionChainManagerTest { @Before public void setUp() { - final ReadTransaction readOnlyTx = Mockito.mock(ReadTransaction.class); - Mockito.when(dataBroker.createTransactionChain(any(TransactionChainListener.class))) - .thenReturn(txChain); + final ReadTransaction readOnlyTx = mock(ReadTransaction.class); + when(dataBroker.createTransactionChain()).thenReturn(txChain); nodeId = new NodeId("h2g2:42"); nodeKeyIdent = InstanceIdentifier.create(Nodes.class).child(Node.class, new NodeKey(nodeId)); txChainManager = new TransactionChainManager(dataBroker, nodeId.getValue()); - Mockito.when(txChain.newReadWriteTransaction()).thenReturn(writeTx); + when(txChain.newReadWriteTransaction()).thenReturn(writeTx); path = InstanceIdentifier.create(Nodes.class).child(Node.class, new NodeKey(nodeId)); - Mockito.doReturn(CommitInfo.emptyFluentFuture()).when(writeTx).commit(); + doReturn(CommitInfo.emptyFluentFuture()).when(writeTx).commit(); txChainManager.activateTransactionManager(); } @After public void tearDown() { - Mockito.verifyNoMoreInteractions(txChain, writeTx); + verifyNoMoreInteractions(txChain, writeTx); } @Test @@ -78,8 +80,8 @@ public class TransactionChainManagerTest { final Node data = new NodeBuilder().setId(nodeId).build(); txChainManager.writeToTransaction(LogicalDatastoreType.CONFIGURATION, path, data, false); - Mockito.verify(txChain).newReadWriteTransaction(); - Mockito.verify(writeTx).put(LogicalDatastoreType.CONFIGURATION, path, data); + verify(txChain).newReadWriteTransaction(); + verify(writeTx).put(LogicalDatastoreType.CONFIGURATION, path, data); } /** @@ -92,9 +94,9 @@ public class TransactionChainManagerTest { txChainManager.writeToTransaction(LogicalDatastoreType.CONFIGURATION, path, data, false); txChainManager.submitTransaction(); - Mockito.verify(txChain).newReadWriteTransaction(); - Mockito.verify(writeTx).put(LogicalDatastoreType.CONFIGURATION, path, data); - Mockito.verify(writeTx).commit(); + verify(txChain).newReadWriteTransaction(); + verify(writeTx).put(LogicalDatastoreType.CONFIGURATION, path, data); + verify(writeTx).commit(); } /** @@ -106,23 +108,23 @@ public class TransactionChainManagerTest { txChainManager.writeToTransaction(LogicalDatastoreType.CONFIGURATION, path, data, false); txChainManager.submitTransaction(); - Mockito.verify(txChain).newReadWriteTransaction(); - Mockito.verify(writeTx).put(LogicalDatastoreType.CONFIGURATION, path, data); - Mockito.verify(writeTx, Mockito.never()).commit(); + verify(txChain).newReadWriteTransaction(); + verify(writeTx).put(LogicalDatastoreType.CONFIGURATION, path, data); + verify(writeTx, never()).commit(); } @Test public void testSubmitTransactionFailed() { - Mockito.doReturn(FluentFutures.immediateFailedFluentFuture(new ExecutionException(new Throwable("mock")))) + doReturn(FluentFutures.immediateFailedFluentFuture(new ExecutionException(new Throwable("mock")))) .when(writeTx).commit(); final Node data = new NodeBuilder().setId(nodeId).build(); txChainManager.initialSubmitWriteTransaction(); txChainManager.writeToTransaction(LogicalDatastoreType.CONFIGURATION, path, data, false); txChainManager.submitTransaction(); - Mockito.verify(txChain).newReadWriteTransaction(); - Mockito.verify(writeTx).put(LogicalDatastoreType.CONFIGURATION, path, data); - Mockito.verify(writeTx).commit(); + verify(txChain).newReadWriteTransaction(); + verify(writeTx).put(LogicalDatastoreType.CONFIGURATION, path, data); + verify(writeTx).commit(); } /** @@ -134,39 +136,31 @@ public class TransactionChainManagerTest { txChainManager.writeToTransaction(LogicalDatastoreType.CONFIGURATION, path, data, false); txChainManager.writeToTransaction(LogicalDatastoreType.CONFIGURATION, path, data, false); - Mockito.verify(txChain).newReadWriteTransaction(); - Mockito.verify(writeTx, Mockito.times(2)).put(LogicalDatastoreType.CONFIGURATION, path, data); - Mockito.verify(writeTx, Mockito.never()).commit(); + verify(txChain).newReadWriteTransaction(); + verify(writeTx, times(2)).put(LogicalDatastoreType.CONFIGURATION, path, data); + verify(writeTx, never()).commit(); } @Test public void testOnTransactionChainFailed() { - txChainManager.onTransactionChainFailed(txChain, Mockito.mock(Transaction.class), - Mockito.mock(Throwable.class)); - Mockito.verify(txChain).close(); - Mockito.verify(dataBroker, Mockito.times(2)).createTransactionChain(txChainManager); - } - - @Test - public void testOnTransactionChainSuccessful() { - txChainManager.onTransactionChainSuccessful(transactionChain); - // NOOP - Mockito.verifyNoInteractions(transactionChain); + txChainManager.onTransactionChainFailed(txChain, mock(Throwable.class)); + verify(txChain).close(); + verify(dataBroker, times(2)).createTransactionChain(); } @Test public void testAddDeleteOperationTotTxChain() { txChainManager.addDeleteOperationToTxChain(LogicalDatastoreType.CONFIGURATION, path); - Mockito.verify(txChain).newReadWriteTransaction(); - Mockito.verify(writeTx).delete(LogicalDatastoreType.CONFIGURATION, path); + verify(txChain).newReadWriteTransaction(); + verify(writeTx).delete(LogicalDatastoreType.CONFIGURATION, path); } @Test public void testDeactivateTransactionChainManager() { txChainManager.deactivateTransactionManager(); - Mockito.verify(txChain).close(); + verify(txChain).close(); } @Test @@ -176,11 +170,11 @@ public class TransactionChainManagerTest { txChainManager.deactivateTransactionManager(); - Mockito.verify(txChain).newReadWriteTransaction(); - Mockito.verify(writeTx).put(LogicalDatastoreType.CONFIGURATION, path, data); - Mockito.verify(writeTx, Mockito.never()).commit(); - Mockito.verify(writeTx).cancel(); - Mockito.verify(txChain).close(); + verify(txChain).newReadWriteTransaction(); + verify(writeTx).put(LogicalDatastoreType.CONFIGURATION, path, data); + verify(writeTx, never()).commit(); + verify(writeTx).cancel(); + verify(txChain).close(); } @Test @@ -190,15 +184,15 @@ public class TransactionChainManagerTest { txChainManager.writeToTransaction(LogicalDatastoreType.CONFIGURATION, path, data, false); txChainManager.shuttingDown(); - Mockito.verify(txChain).newReadWriteTransaction(); - Mockito.verify(writeTx).put(LogicalDatastoreType.CONFIGURATION, path, data); - Mockito.verify(writeTx).commit(); + verify(txChain).newReadWriteTransaction(); + verify(writeTx).put(LogicalDatastoreType.CONFIGURATION, path, data); + verify(writeTx).commit(); } @Test public void testClose() { txChainManager.shuttingDown(); txChainManager.close(); - Mockito.verify(txChain).close(); + verify(txChain).close(); } } diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/ForwardingPingPongDataBroker.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/ForwardingPingPongDataBroker.java index d3baa88ed..e6e30a0bc 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/ForwardingPingPongDataBroker.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/ForwardingPingPongDataBroker.java @@ -7,9 +7,11 @@ */ package org.opendaylight.openflowplugin.impl; +import static java.util.Objects.requireNonNull; + +import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.mdsal.binding.api.DataBroker; import org.opendaylight.mdsal.binding.api.TransactionChain; -import org.opendaylight.mdsal.binding.api.TransactionChainListener; import org.opendaylight.mdsal.binding.spi.ForwardingDataBroker; /** @@ -20,11 +22,10 @@ import org.opendaylight.mdsal.binding.spi.ForwardingDataBroker; */ // FIXME: this should not be necessary public class ForwardingPingPongDataBroker extends ForwardingDataBroker implements PingPongDataBroker { + private final @NonNull DataBroker delegate; - private final DataBroker delegate; - - public ForwardingPingPongDataBroker(DataBroker delegate) { - this.delegate = delegate; + public ForwardingPingPongDataBroker(final DataBroker delegate) { + this.delegate = requireNonNull(delegate); } @Override @@ -33,7 +34,7 @@ public class ForwardingPingPongDataBroker extends ForwardingDataBroker implement } @Override - public TransactionChain createTransactionChain(final TransactionChainListener listener) { - return delegate().createMergingTransactionChain(listener); + public TransactionChain createTransactionChain() { + return delegate().createMergingTransactionChain(); } } diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/OpenFlowPluginProviderImpl.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/OpenFlowPluginProviderImpl.java index 6890f0378..f5b4afd14 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/OpenFlowPluginProviderImpl.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/OpenFlowPluginProviderImpl.java @@ -44,7 +44,7 @@ import org.opendaylight.mdsal.binding.api.DataBroker; import org.opendaylight.mdsal.binding.api.NotificationPublishService; import org.opendaylight.mdsal.binding.api.RpcProviderService; import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipService; -import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider; +import org.opendaylight.mdsal.singleton.api.ClusterSingletonServiceProvider; import org.opendaylight.openflowjava.protocol.spi.connection.SwitchConnectionProvider; import org.opendaylight.openflowjava.protocol.spi.connection.SwitchConnectionProviderList; import org.opendaylight.openflowplugin.api.openflow.FlowGroupInfoHistories; diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/connection/ConnectionContextImpl.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/connection/ConnectionContextImpl.java index e4834f2ad..439aa10cc 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/connection/ConnectionContextImpl.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/connection/ConnectionContextImpl.java @@ -13,7 +13,7 @@ import static java.util.Objects.requireNonNullElse; import java.util.ArrayList; import java.util.Collections; import java.util.List; -import org.opendaylight.mdsal.singleton.common.api.ServiceGroupIdentifier; +import org.opendaylight.mdsal.singleton.api.ServiceGroupIdentifier; import org.opendaylight.openflowjava.protocol.api.connection.ConnectionAdapter; import org.opendaylight.openflowjava.protocol.api.connection.OutboundQueue; import org.opendaylight.openflowjava.protocol.api.connection.OutboundQueueHandlerRegistration; @@ -313,7 +313,7 @@ public class ConnectionContextImpl implements ConnectionContext { this.version = requireNonNull(version); this.datapathId = datapathId; this.outboundQueueProvider = outboundQueueProvider; - serviceGroupIdentifier = ServiceGroupIdentifier.create(this.nodeId.getValue()); + serviceGroupIdentifier = new ServiceGroupIdentifier(this.nodeId.getValue()); } @Override diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/connection/ConnectionManagerImpl.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/connection/ConnectionManagerImpl.java index 3810f3e08..d08c12547 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/connection/ConnectionManagerImpl.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/connection/ConnectionManagerImpl.java @@ -14,16 +14,16 @@ import com.google.common.util.concurrent.ThreadFactoryBuilder; import java.math.BigInteger; import java.net.InetAddress; import java.time.LocalDateTime; -import java.util.Collection; +import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.ThreadFactory; import org.eclipse.jdt.annotation.NonNull; -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.DataTreeChangeListener; import org.opendaylight.mdsal.binding.api.DataTreeIdentifier; import org.opendaylight.mdsal.binding.api.DataTreeModification; import org.opendaylight.mdsal.binding.api.NotificationPublishService; @@ -47,7 +47,7 @@ import org.opendaylight.openflowplugin.impl.connection.listener.SystemNotificati import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.openflow.provider.config.rev160510.OpenflowProviderConfig; -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; @@ -160,19 +160,17 @@ public class ConnectionManagerImpl implements ConnectionManager { } } - class DeviceConnectionStatusProviderImpl implements DeviceConnectionStatusProvider, - ClusteredDataTreeChangeListener { + class DeviceConnectionStatusProviderImpl implements DeviceConnectionStatusProvider, DataTreeChangeListener { private final Map deviceConnectionMap = new ConcurrentHashMap<>(); - private ListenerRegistration listenerRegistration; + private Registration listenerRegistration; @Override @SuppressWarnings({"checkstyle:IllegalCatch"}) public void init() { - DataTreeIdentifier treeId = DataTreeIdentifier.create(LogicalDatastoreType.OPERATIONAL, - getWildCardPath()); + final var treeId = DataTreeIdentifier.of(LogicalDatastoreType.OPERATIONAL, getWildCardPath()); try { - listenerRegistration = dataBroker.registerDataTreeChangeListener(treeId, this); + listenerRegistration = dataBroker.registerTreeChangeListener(treeId, this); } catch (Exception e) { LOG.error("DeviceConnectionStatusProvider listener registration failed", e); } @@ -194,7 +192,7 @@ public class ConnectionManagerImpl implements ConnectionManager { } @Override - public void onDataTreeChanged(@NonNull final Collection> changes) { + public void onDataTreeChanged(final List> changes) { requireNonNull(changes, "Changes must not be null!"); for (DataTreeModification change : changes) { final DataObjectModification mod = change.getRootNode(); diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/device/DeviceContextImpl.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/device/DeviceContextImpl.java index fe4d4a482..5b99babd3 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/device/DeviceContextImpl.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/device/DeviceContextImpl.java @@ -29,7 +29,7 @@ import org.opendaylight.mdsal.binding.api.DataBroker; import org.opendaylight.mdsal.binding.api.NotificationPublishService; import org.opendaylight.mdsal.binding.api.ReadTransaction; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; -import org.opendaylight.mdsal.singleton.common.api.ServiceGroupIdentifier; +import org.opendaylight.mdsal.singleton.api.ServiceGroupIdentifier; import org.opendaylight.openflowjava.protocol.api.connection.ConnectionAdapter; import org.opendaylight.openflowjava.protocol.api.keys.MessageTypeKey; import org.opendaylight.openflowplugin.api.OFConstants; diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/lifecycle/ContextChainHolderImpl.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/lifecycle/ContextChainHolderImpl.java index 4e3deb372..a0606243b 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/lifecycle/ContextChainHolderImpl.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/lifecycle/ContextChainHolderImpl.java @@ -10,7 +10,6 @@ package org.opendaylight.openflowplugin.impl.lifecycle; import com.google.common.annotations.VisibleForTesting; 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 com.google.common.util.concurrent.ThreadFactoryBuilder; import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; @@ -31,11 +30,10 @@ import java.util.concurrent.TimeoutException; import java.util.stream.Collectors; import org.eclipse.jdt.annotation.NonNull; import org.eclipse.jdt.annotation.Nullable; -import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipChange; -import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipListenerRegistration; import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipService; import org.opendaylight.mdsal.eos.common.api.EntityOwnershipState; -import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider; +import org.opendaylight.mdsal.eos.common.api.EntityOwnershipStateChange; +import org.opendaylight.mdsal.singleton.api.ClusterSingletonServiceProvider; import org.opendaylight.openflowplugin.api.openflow.OFPManager; import org.opendaylight.openflowplugin.api.openflow.connection.ConnectionContext; import org.opendaylight.openflowplugin.api.openflow.connection.ConnectionStatus; @@ -61,6 +59,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.mdsal.core.general.entity.rev150930.Entity; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.openflow.provider.config.rev160510.OpenflowProviderConfig; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.openflowplugin.rf.state.rev170713.ResultState; +import org.opendaylight.yangtools.concepts.Registration; import org.opendaylight.yangtools.yang.binding.KeyedInstanceIdentifier; import org.opendaylight.yangtools.yang.common.Uint8; import org.slf4j.Logger; @@ -77,7 +76,7 @@ public final class ContextChainHolderImpl implements ContextChainHolder, MasterC private static final String SEPARATOR = ":"; private final ConcurrentMap contextChainMap = new ConcurrentHashMap<>(); private final ConcurrentMap connectingDevices = new ConcurrentHashMap<>(); - private final EntityOwnershipListenerRegistration eosListenerRegistration; + private final Registration eosListenerRegistration; private final ClusterSingletonServiceProvider singletonServiceProvider; private final Executor executor; private final OwnershipChangeListener ownershipChangeListener; @@ -304,24 +303,21 @@ public final class ContextChainHolderImpl implements ContextChainHolder, MasterC @Override @SuppressFBWarnings("BC_UNCONFIRMED_CAST_OF_RETURN_VALUE") - public void ownershipChanged(final EntityOwnershipChange entityOwnershipChange) { - LOG.info("Entity ownership change received for node : {}", entityOwnershipChange); - if (entityOwnershipChange.inJeopardy()) { - LOG.warn("Controller is in Jeopardy, ignore ownership change notification. {}", entityOwnershipChange); + public void ownershipChanged(final org.opendaylight.mdsal.eos.binding.api.Entity entity, + final EntityOwnershipStateChange change, final boolean inJeopardy) { + LOG.info("Entity ownership change received for node : {}", change); + if (inJeopardy) { + LOG.warn("Controller is in Jeopardy, ignore ownership change notification. {}", change); return; } - if (entityOwnershipChange.getState().hasOwner()) { + if (change.hasOwner()) { return; } // Findbugs flags a false violation for "Unchecked/unconfirmed cast" from GenericEntity to Entity hence the // suppression above. The suppression is temporary until EntityOwnershipChange is modified to eliminate the // violation. - final String entityName = entityOwnershipChange - .getEntity() - .getIdentifier() - .firstKeyOf(Entity.class) - .getName(); + final String entityName = entity.getIdentifier().firstKeyOf(Entity.class).getName(); if (entityName != null && entityName.startsWith("openflow:")) { if (nodeCleanerExecutor.isShutdown()) { @@ -340,8 +336,7 @@ public final class ContextChainHolderImpl implements ContextChainHolder, MasterC DeviceStateUtil.createNodeInstanceIdentifier(new NodeId(entityName)); deviceManager.sendNodeRemovedNotification(nodeInstanceIdentifier); LOG.info("Try to remove device {} from operational DS", entityName); - ListenableFuture future = - deviceManager.removeDeviceFromOperationalDS(nodeInstanceIdentifier); + final var future = deviceManager.removeDeviceFromOperationalDS(nodeInstanceIdentifier); Futures.addCallback(future, new FutureCallback() { @Override public void onSuccess(final Object result) { diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/lifecycle/ContextChainImpl.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/lifecycle/ContextChainImpl.java index c106d7587..06b274527 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/lifecycle/ContextChainImpl.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/lifecycle/ContextChainImpl.java @@ -19,8 +19,8 @@ import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicReference; import java.util.stream.Collectors; import org.eclipse.jdt.annotation.NonNull; -import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider; -import org.opendaylight.mdsal.singleton.common.api.ServiceGroupIdentifier; +import org.opendaylight.mdsal.singleton.api.ClusterSingletonServiceProvider; +import org.opendaylight.mdsal.singleton.api.ServiceGroupIdentifier; import org.opendaylight.openflowplugin.api.openflow.OFPContext; import org.opendaylight.openflowplugin.api.openflow.connection.ConnectionContext; import org.opendaylight.openflowplugin.api.openflow.device.DeviceInfo; diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/lifecycle/GuardedContextImpl.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/lifecycle/GuardedContextImpl.java index 2dc60069a..275471722 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/lifecycle/GuardedContextImpl.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/lifecycle/GuardedContextImpl.java @@ -23,7 +23,7 @@ import com.google.common.util.concurrent.MoreExecutors; import com.google.common.util.concurrent.Service; import java.util.function.Function; import org.eclipse.jdt.annotation.NonNull; -import org.opendaylight.mdsal.singleton.common.api.ServiceGroupIdentifier; +import org.opendaylight.mdsal.singleton.api.ServiceGroupIdentifier; import org.opendaylight.openflowplugin.api.openflow.OFPContext; import org.opendaylight.openflowplugin.api.openflow.device.DeviceInfo; import org.opendaylight.openflowplugin.api.openflow.lifecycle.ContextChainMastershipWatcher; diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/role/RoleContextImpl.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/role/RoleContextImpl.java index 18f3c88b9..0ac594b1c 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/role/RoleContextImpl.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/role/RoleContextImpl.java @@ -20,7 +20,7 @@ import java.util.concurrent.ExecutorService; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicReference; import org.eclipse.jdt.annotation.NonNull; -import org.opendaylight.mdsal.singleton.common.api.ServiceGroupIdentifier; +import org.opendaylight.mdsal.singleton.api.ServiceGroupIdentifier; import org.opendaylight.openflowplugin.api.OFConstants; import org.opendaylight.openflowplugin.api.openflow.device.DeviceInfo; import org.opendaylight.openflowplugin.api.openflow.device.RequestContext; @@ -77,6 +77,7 @@ public class RoleContextImpl implements RoleContext { return deviceInfo; } + @Override public void setRoleRpc(final SetRole setRole) { setRoleRpc = setRole; } diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/rpc/RpcContextImpl.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/rpc/RpcContextImpl.java index bb529cc53..65ba225a4 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/rpc/RpcContextImpl.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/rpc/RpcContextImpl.java @@ -16,7 +16,7 @@ import java.util.concurrent.atomic.AtomicLong; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.mdsal.binding.api.NotificationPublishService; import org.opendaylight.mdsal.binding.api.RpcProviderService; -import org.opendaylight.mdsal.singleton.common.api.ServiceGroupIdentifier; +import org.opendaylight.mdsal.singleton.api.ServiceGroupIdentifier; import org.opendaylight.openflowplugin.api.openflow.device.DeviceContext; import org.opendaylight.openflowplugin.api.openflow.device.DeviceInfo; import org.opendaylight.openflowplugin.api.openflow.device.RequestContext; diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/StatisticsContextImpl.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/StatisticsContextImpl.java index a4db6d138..66fa2f654 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/StatisticsContextImpl.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/StatisticsContextImpl.java @@ -25,7 +25,7 @@ import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicReference; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.mdsal.binding.api.TransactionChainClosedException; -import org.opendaylight.mdsal.singleton.common.api.ServiceGroupIdentifier; +import org.opendaylight.mdsal.singleton.api.ServiceGroupIdentifier; import org.opendaylight.openflowplugin.api.ConnectionException; import org.opendaylight.openflowplugin.api.openflow.connection.ConnectionContext; import org.opendaylight.openflowplugin.api.openflow.device.DeviceContext; @@ -82,14 +82,14 @@ class StatisticsContextImpl implements StatisticsContext, De final boolean isStatisticsPollingOn, final boolean isUsingReconciliationFramework) { this.deviceContext = deviceContext; - this.devState = requireNonNull(deviceContext.getDeviceState()); + devState = requireNonNull(deviceContext.getDeviceState()); this.executorService = executorService; this.isStatisticsPollingOn = isStatisticsPollingOn; this.config = config; this.convertorExecutor = convertorExecutor; - this.deviceInfo = deviceContext.getDeviceInfo(); - this.statisticsPollingInterval = config.getBasicTimerDelay().getValue().toJava(); - this.maximumPollingDelay = config.getMaximumTimerDelay().getValue().toJava(); + deviceInfo = deviceContext.getDeviceInfo(); + statisticsPollingInterval = config.getBasicTimerDelay().getValue().toJava(); + maximumPollingDelay = config.getMaximumTimerDelay().getValue().toJava(); this.statisticsWriterProvider = statisticsWriterProvider; this.isUsingReconciliationFramework = isUsingReconciliationFramework; @@ -101,7 +101,7 @@ class StatisticsContextImpl implements StatisticsContext, De @Override public DeviceInfo getDeviceInfo() { - return this.deviceInfo; + return deviceInfo; } @NonNull @@ -112,7 +112,7 @@ class StatisticsContextImpl implements StatisticsContext, De @Override public void registerMastershipWatcher(@NonNull final ContextChainMastershipWatcher newWatcher) { - this.contextChainMastershipWatcher = newWatcher; + contextChainMastershipWatcher = newWatcher; } @Override @@ -130,12 +130,12 @@ class StatisticsContextImpl implements StatisticsContext, De @Override public void enableGathering() { - this.schedulingEnabled.set(true); + schedulingEnabled.set(true); } @Override public void disableGathering() { - this.schedulingEnabled.set(false); + schedulingEnabled.set(false); } @Override @@ -217,7 +217,7 @@ class StatisticsContextImpl implements StatisticsContext, De return Futures.immediateFuture(Boolean.TRUE); } - return this.lastDataGatheringRef.updateAndGet(future -> { + return lastDataGatheringRef.updateAndGet(future -> { // write start timestamp to state snapshot container StatisticsGatheringUtils.markDeviceStateSnapshotStart(deviceInfo, deviceContext); @@ -291,7 +291,7 @@ class StatisticsContextImpl implements StatisticsContext, De schedulingEnabled.set(true); statisticsPollingService.startAsync(); - this.statisticsPollingServiceRef.set(statisticsPollingService); + statisticsPollingServiceRef.set(statisticsPollingService); } private ListenableFuture stopGatheringData() { diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/util/BarrierUtil.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/util/BarrierUtil.java index 62c14b919..1bdc1025f 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/util/BarrierUtil.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/util/BarrierUtil.java @@ -14,7 +14,6 @@ import com.google.common.util.concurrent.ListenableFuture; import com.google.common.util.concurrent.MoreExecutors; import org.apache.commons.lang3.tuple.MutablePair; import org.apache.commons.lang3.tuple.Pair; -import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.transaction.rev150304.FlowCapableTransactionService; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.transaction.rev150304.SendBarrier; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.transaction.rev150304.SendBarrierInput; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.transaction.rev150304.SendBarrierInputBuilder; @@ -64,7 +63,7 @@ public final class BarrierUtil { * Creates barrier input. * * @param nodeRef rpc routing context - * @return input for {@link FlowCapableTransactionService#sendBarrier(SendBarrierInput)} + * @return input for {@link SendBarrier#invoke(SendBarrierInput)} */ @VisibleForTesting static SendBarrierInput createSendBarrierInput(final NodeRef nodeRef) { diff --git a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/OpenFlowPluginProviderImplTest.java b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/OpenFlowPluginProviderImplTest.java index dda1d864f..0bef9563a 100644 --- a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/OpenFlowPluginProviderImplTest.java +++ b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/OpenFlowPluginProviderImplTest.java @@ -25,14 +25,14 @@ import org.opendaylight.mdsal.binding.api.NotificationPublishService; import org.opendaylight.mdsal.binding.api.RpcProviderService; import org.opendaylight.mdsal.binding.api.WriteTransaction; import org.opendaylight.mdsal.common.api.CommitInfo; -import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipListenerRegistration; import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipService; -import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider; +import org.opendaylight.mdsal.singleton.api.ClusterSingletonServiceProvider; import org.opendaylight.openflowjava.protocol.spi.connection.SwitchConnectionProvider; import org.opendaylight.openflowjava.protocol.spi.connection.SwitchConnectionProviderList; import org.opendaylight.openflowplugin.api.openflow.configuration.ConfigurationProperty; import org.opendaylight.openflowplugin.api.openflow.configuration.ConfigurationService; import org.opendaylight.openflowplugin.api.openflow.mastership.MastershipChangeServiceManager; +import org.opendaylight.yangtools.concepts.Registration; import org.opendaylight.yangtools.yang.common.Uint16; import org.opendaylight.yangtools.yang.common.Uint32; @@ -61,7 +61,7 @@ public class OpenFlowPluginProviderImplTest { EntityOwnershipService entityOwnershipService; @Mock - EntityOwnershipListenerRegistration entityOwnershipListenerRegistration; + Registration entityOwnershipListenerRegistration; @Mock SwitchConnectionProvider switchConnectionProvider; diff --git a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/device/DeviceContextImplTest.java b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/device/DeviceContextImplTest.java index 8d36ae82b..0eccae746 100644 --- a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/device/DeviceContextImplTest.java +++ b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/device/DeviceContextImplTest.java @@ -59,7 +59,6 @@ import org.opendaylight.openflowplugin.api.openflow.registry.flow.FlowRegistryKe import org.opendaylight.openflowplugin.api.openflow.registry.group.DeviceGroupRegistry; import org.opendaylight.openflowplugin.api.openflow.registry.meter.DeviceMeterRegistry; import org.opendaylight.openflowplugin.api.openflow.statistics.ofpspecific.MessageSpy; -import org.opendaylight.openflowplugin.common.txchain.TransactionChainManager; import org.opendaylight.openflowplugin.extension.api.ConvertorMessageFromOFJava; import org.opendaylight.openflowplugin.extension.api.core.extension.ExtensionConverterProvider; import org.opendaylight.openflowplugin.impl.device.initialization.AbstractDeviceInitializer; @@ -194,8 +193,7 @@ public class DeviceContextImplTest { Mockito.lenient().when(readTx.read(LogicalDatastoreType.OPERATIONAL, nodeKeyIdent)) .thenReturn(noExistNodeFuture); Mockito.when(dataBroker.newReadOnlyTransaction()).thenReturn(readTx); - Mockito.when(dataBroker.createTransactionChain(any(TransactionChainManager.class))) - .thenReturn(txChainFactory); + Mockito.when(dataBroker.createTransactionChain()).thenReturn(txChainFactory); Mockito.when(deviceInfo.getNodeInstanceIdentifier()).thenReturn(nodeKeyIdent); Mockito.when(deviceInfo.getNodeId()).thenReturn(nodeId); Mockito.when(deviceInfo.getDatapathId()).thenReturn(Uint64.ONE); diff --git a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/lifecycle/ContextChainHolderImplTest.java b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/lifecycle/ContextChainHolderImplTest.java index 914c94790..240a3e1b3 100644 --- a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/lifecycle/ContextChainHolderImplTest.java +++ b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/lifecycle/ContextChainHolderImplTest.java @@ -17,12 +17,9 @@ import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.junit.MockitoJUnitRunner; import org.opendaylight.mdsal.eos.binding.api.Entity; -import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipChange; -import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipListenerRegistration; import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipService; -import org.opendaylight.mdsal.eos.common.api.EntityOwnershipChangeState; -import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider; -import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceRegistration; +import org.opendaylight.mdsal.eos.common.api.EntityOwnershipStateChange; +import org.opendaylight.mdsal.singleton.api.ClusterSingletonServiceProvider; import org.opendaylight.openflowplugin.api.openflow.connection.ConnectionContext; import org.opendaylight.openflowplugin.api.openflow.connection.ConnectionStatus; import org.opendaylight.openflowplugin.api.openflow.device.DeviceContext; @@ -43,6 +40,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.openflow.provider.config.rev160510.NonZeroUint32Type; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.openflow.provider.config.rev160510.OpenflowProviderConfig; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.openflowplugin.rf.state.rev170713.ResultState; +import org.opendaylight.yangtools.concepts.Registration; import org.opendaylight.yangtools.yang.common.Uint32; import org.opendaylight.yangtools.yang.common.Uint8; @@ -78,11 +76,11 @@ public class ContextChainHolderImplTest { @Mock private ExecutorService executorService; @Mock - private ClusterSingletonServiceRegistration clusterSingletonServiceRegistration; + private Registration clusterSingletonServiceRegistration; @Mock private EntityOwnershipService entityOwnershipService; @Mock - private EntityOwnershipListenerRegistration entityOwnershipListenerRegistration; + private Registration entityOwnershipListenerRegistration; @Mock private ReconciliationFrameworkEvent reconciliationFrameworkEvent; @Mock @@ -262,11 +260,8 @@ public class ContextChainHolderImplTest { contextChainHolder.onMasterRoleAcquired(deviceInfo, ContextChainMastershipState.RPC_REGISTRATION); contextChainHolder.onMasterRoleAcquired(deviceInfo, ContextChainMastershipState.MASTER_ON_DEVICE); contextChainHolder.onMasterRoleAcquired(deviceInfo, ContextChainMastershipState.INITIAL_SUBMIT); - EntityOwnershipChange ownershipChange = new EntityOwnershipChange( - new Entity(ENTITY_TEST, OPENFLOW_TEST), - EntityOwnershipChangeState.LOCAL_OWNERSHIP_LOST_NO_OWNER - ); - contextChainHolder.ownershipChanged(ownershipChange); + contextChainHolder.ownershipChanged(new Entity(ENTITY_TEST, OPENFLOW_TEST), + EntityOwnershipStateChange.LOCAL_OWNERSHIP_LOST_NO_OWNER, true); Mockito.verify(deviceManager, Mockito.timeout(1000)).removeDeviceFromOperationalDS(Mockito.any()); } @@ -277,11 +272,8 @@ public class ContextChainHolderImplTest { contextChainHolder.onMasterRoleAcquired(deviceInfo, ContextChainMastershipState.RPC_REGISTRATION); contextChainHolder.onMasterRoleAcquired(deviceInfo, ContextChainMastershipState.MASTER_ON_DEVICE); contextChainHolder.onMasterRoleAcquired(deviceInfo, ContextChainMastershipState.INITIAL_SUBMIT); - EntityOwnershipChange ownershipChange = new EntityOwnershipChange( - new Entity(ENTITY_TEST, OPENFLOW_TEST), - EntityOwnershipChangeState.LOCAL_OWNERSHIP_LOST_NEW_OWNER - ); - contextChainHolder.ownershipChanged(ownershipChange); + contextChainHolder.ownershipChanged(new Entity(ENTITY_TEST, OPENFLOW_TEST), + EntityOwnershipStateChange.LOCAL_OWNERSHIP_LOST_NEW_OWNER, false); Mockito.verify(deviceManager,Mockito.never()).removeDeviceFromOperationalDS(Mockito.any()); } } diff --git a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/lifecycle/ContextChainImplTest.java b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/lifecycle/ContextChainImplTest.java index 4a9ec9a9f..a27927208 100644 --- a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/lifecycle/ContextChainImplTest.java +++ b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/lifecycle/ContextChainImplTest.java @@ -16,9 +16,8 @@ import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.junit.MockitoJUnitRunner; -import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider; -import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceRegistration; -import org.opendaylight.mdsal.singleton.common.api.ServiceGroupIdentifier; +import org.opendaylight.mdsal.singleton.api.ClusterSingletonServiceProvider; +import org.opendaylight.mdsal.singleton.api.ServiceGroupIdentifier; import org.opendaylight.openflowplugin.api.openflow.connection.ConnectionContext; import org.opendaylight.openflowplugin.api.openflow.device.DeviceContext; import org.opendaylight.openflowplugin.api.openflow.device.DeviceInfo; @@ -27,12 +26,12 @@ import org.opendaylight.openflowplugin.api.openflow.lifecycle.ContextChain; import org.opendaylight.openflowplugin.api.openflow.lifecycle.ContextChainMastershipWatcher; import org.opendaylight.openflowplugin.api.openflow.rpc.RpcContext; import org.opendaylight.openflowplugin.api.openflow.statistics.StatisticsContext; +import org.opendaylight.yangtools.concepts.Registration; @RunWith(MockitoJUnitRunner.class) public class ContextChainImplTest { - private static final String TEST_NODE = "test node"; - private static final ServiceGroupIdentifier SERVICE_GROUP_IDENTIFIER = ServiceGroupIdentifier.create(TEST_NODE); + private static final ServiceGroupIdentifier SERVICE_GROUP_IDENTIFIER = new ServiceGroupIdentifier(TEST_NODE); @Mock private StatisticsContext statisticsContext; @@ -47,7 +46,7 @@ public class ContextChainImplTest { @Mock private ClusterSingletonServiceProvider clusterSingletonServiceProvider; @Mock - private ClusterSingletonServiceRegistration clusterSingletonServiceRegistration; + private Registration clusterSingletonServiceRegistration; @Mock private ContextChainMastershipWatcher contextChainMastershipWatcher; @Mock diff --git a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/rpc/RpcContextImplTest.java b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/rpc/RpcContextImplTest.java index 701a9c00f..796ce7da5 100644 --- a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/rpc/RpcContextImplTest.java +++ b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/rpc/RpcContextImplTest.java @@ -38,11 +38,10 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeKey; -import org.opendaylight.yangtools.concepts.ObjectRegistration; +import org.opendaylight.yangtools.concepts.Registration; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.opendaylight.yangtools.yang.binding.KeyedInstanceIdentifier; import org.opendaylight.yangtools.yang.binding.Rpc; -import org.opendaylight.yangtools.yang.binding.RpcService; import org.opendaylight.yangtools.yang.common.Uint32; import org.opendaylight.yangtools.yang.common.Uint8; @@ -59,7 +58,7 @@ public class RpcContextImplTest { @Mock private ConnectionContext connectionContext; @Mock - private ObjectRegistration registration; + private Registration registration; @Mock private NotificationPublishService notificationPublishService; @Mock diff --git a/openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/PacketOutConvertor.java b/openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/PacketOutConvertor.java index a11138fc2..7eee31f4c 100644 --- a/openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/PacketOutConvertor.java +++ b/openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/PacketOutConvertor.java @@ -7,8 +7,6 @@ */ package org.opendaylight.openflowplugin.openflow.md.core.sal.convertor; -import static com.google.common.base.Preconditions.checkArgument; - import com.google.common.collect.Iterables; import java.util.Collection; import java.util.Collections; @@ -31,8 +29,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev13 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PacketOutInput; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PacketOutInputBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.TransmitPacketInput; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.IdentifiableItem; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.PathArgument; +import org.opendaylight.yangtools.yang.binding.DataObjectStep; +import org.opendaylight.yangtools.yang.binding.KeyStep; import org.opendaylight.yangtools.yang.common.Uint32; import org.opendaylight.yangtools.yang.common.Uint8; import org.slf4j.Logger; @@ -65,20 +63,21 @@ public class PacketOutConvertor extends Convertor step, final Uint8 ofVersion) { + if (!(step instanceof KeyStep keyStep)) { + throw new IllegalArgumentException("Unexpected path argument " + step); + } // FIXME VD P! find InstanceIdentifier helper - final Object key = ((IdentifiableItem) pathArgument).getKey(); - checkArgument(key instanceof NodeConnectorKey, "Unexpected key %s", key); - - return new PortNumber(InventoryDataServiceUtil.portNumberfromNodeConnectorId(OpenflowVersion.get(ofVersion), - ((NodeConnectorKey) key).getId())); + final var key = keyStep.key(); + if (key instanceof NodeConnectorKey nodeConnectorKey) { + return new PortNumber(InventoryDataServiceUtil.portNumberfromNodeConnectorId( + OpenflowVersion.ofVersion(ofVersion), nodeConnectorKey.getId())); + } + throw new IllegalArgumentException("Unexpected key " + key); } @Override @@ -92,7 +91,7 @@ public class PacketOutConvertor extends Convertor inArgs = null; + Iterable> inArgs = null; if (source.getIngress() != null) { inArgs = source.getIngress().getValue().getPathArguments(); @@ -111,7 +110,7 @@ public class PacketOutConvertor extends Convertor outArgs = source.getEgress().getValue().getPathArguments(); + final var outArgs = source.getEgress().getValue().getPathArguments(); if (Iterables.size(outArgs) >= 3) { outPort = getPortNumber(Iterables.get(outArgs, 2), data.getVersion()); } else { diff --git a/parent/pom.xml b/parent/pom.xml index 43a2d141e..c0ec87d43 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.mdsal binding-parent - 12.0.4 + 13.0.0 @@ -41,7 +41,7 @@ org.opendaylight.controller controller-artifacts - 8.0.4 + 9.0.0 pom import diff --git a/samples/learning-switch/src/main/java/org/opendaylight/openflowplugin/learningswitch/DataTreeChangeListenerRegistrationHolder.java b/samples/learning-switch/src/main/java/org/opendaylight/openflowplugin/learningswitch/DataTreeChangeListenerRegistrationHolder.java index 939bc0cf0..9d1687593 100644 --- a/samples/learning-switch/src/main/java/org/opendaylight/openflowplugin/learningswitch/DataTreeChangeListenerRegistrationHolder.java +++ b/samples/learning-switch/src/main/java/org/opendaylight/openflowplugin/learningswitch/DataTreeChangeListenerRegistrationHolder.java @@ -8,16 +8,14 @@ package org.opendaylight.openflowplugin.learningswitch; import org.opendaylight.mdsal.binding.api.DataTreeChangeListener; -import org.opendaylight.yangtools.concepts.ListenerRegistration; +import org.opendaylight.yangtools.concepts.Registration; /** * Holder for {@link DataTreeChangeListener} registration. */ public interface DataTreeChangeListenerRegistrationHolder { - /** * Returns the DataTreeChangeListenerRegistration. */ - ListenerRegistration getDataTreeChangeListenerRegistration(); - + Registration getDataTreeChangeListenerRegistration(); } diff --git a/samples/learning-switch/src/main/java/org/opendaylight/openflowplugin/learningswitch/LearningSwitchManagerSimpleImpl.java b/samples/learning-switch/src/main/java/org/opendaylight/openflowplugin/learningswitch/LearningSwitchManagerSimpleImpl.java index d4d32234e..34267507f 100644 --- a/samples/learning-switch/src/main/java/org/opendaylight/openflowplugin/learningswitch/LearningSwitchManagerSimpleImpl.java +++ b/samples/learning-switch/src/main/java/org/opendaylight/openflowplugin/learningswitch/LearningSwitchManagerSimpleImpl.java @@ -8,10 +8,9 @@ package org.opendaylight.openflowplugin.learningswitch; 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.binding.api.NotificationService; -import org.opendaylight.mdsal.binding.api.RpcConsumerRegistry; +import org.opendaylight.mdsal.binding.api.RpcService; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNode; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.Table; @@ -19,7 +18,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node; import org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.PacketReceived; import org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.TransmitPacket; -import org.opendaylight.yangtools.concepts.ListenerRegistration; import org.opendaylight.yangtools.concepts.Registration; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; @@ -37,11 +35,11 @@ import org.slf4j.LoggerFactory; public final class LearningSwitchManagerSimpleImpl implements DataTreeChangeListenerRegistrationHolder, AutoCloseable { private static final Logger LOG = LoggerFactory.getLogger(LearningSwitchManagerSimpleImpl.class); - private final ListenerRegistration dataTreeChangeListenerRegistration; + private final Registration dataTreeChangeListenerRegistration; private final Registration packetInRegistration; public LearningSwitchManagerSimpleImpl(final DataBroker dataBroker, final NotificationService notificationService, - final RpcConsumerRegistry rpcService) { + final RpcService rpcService) { LOG.debug("start() -->"); final var dataStoreAccessor = new FlowCommitWrapperImpl(dataBroker); @@ -49,7 +47,7 @@ public final class LearningSwitchManagerSimpleImpl implements DataTreeChangeList rpcService.getRpc(TransmitPacket.class), this); packetInRegistration = notificationService.registerListener(PacketReceived.class, learningSwitchHandler); - dataTreeChangeListenerRegistration = dataBroker.registerDataTreeChangeListener(DataTreeIdentifier.create( + dataTreeChangeListenerRegistration = dataBroker.registerDataTreeChangeListener(DataTreeIdentifier.of( LogicalDatastoreType.OPERATIONAL, InstanceIdentifier.create(Nodes.class) .child(Node.class) .augmentation(FlowCapableNode.class) @@ -67,7 +65,7 @@ public final class LearningSwitchManagerSimpleImpl implements DataTreeChangeList } @Override - public ListenerRegistration getDataTreeChangeListenerRegistration() { + public Registration getDataTreeChangeListenerRegistration() { return dataTreeChangeListenerRegistration; } } diff --git a/samples/learning-switch/src/main/java/org/opendaylight/openflowplugin/learningswitch/WakeupOnNode.java b/samples/learning-switch/src/main/java/org/opendaylight/openflowplugin/learningswitch/WakeupOnNode.java index 2c0719a93..55881618f 100644 --- a/samples/learning-switch/src/main/java/org/opendaylight/openflowplugin/learningswitch/WakeupOnNode.java +++ b/samples/learning-switch/src/main/java/org/opendaylight/openflowplugin/learningswitch/WakeupOnNode.java @@ -9,7 +9,7 @@ package org.opendaylight.openflowplugin.learningswitch; import static java.util.Objects.requireNonNull; -import java.util.Collection; +import java.util.List; import org.opendaylight.mdsal.binding.api.DataObjectModification.ModificationType; import org.opendaylight.mdsal.binding.api.DataTreeChangeListener; import org.opendaylight.mdsal.binding.api.DataTreeModification; @@ -28,17 +28,17 @@ public class WakeupOnNode implements DataTreeChangeListener { } @Override - public void onDataTreeChanged(final Collection> modifications) { + public void onDataTreeChanged(final List> modifications) { Uint8 requiredTableId = Uint8.ZERO; // TODO add flow for (var modification : modifications) { - if (modification.getRootNode().getModificationType() == ModificationType.SUBTREE_MODIFIED) { - var table = modification.getRootNode().getDataAfter(); + if (modification.getRootNode().modificationType() == ModificationType.SUBTREE_MODIFIED) { + var table = modification.getRootNode().dataAfter(); if (table != null) { LOG.trace("table: {}", table); if (requiredTableId.equals(table.getId())) { - learningSwitchHandler.onSwitchAppeared(modification.getRootPath().getRootIdentifier()); + learningSwitchHandler.onSwitchAppeared(modification.getRootPath().path()); } } } diff --git a/samples/learning-switch/src/main/java/org/opendaylight/openflowplugin/learningswitch/multi/LearningSwitchManagerMultiImpl.java b/samples/learning-switch/src/main/java/org/opendaylight/openflowplugin/learningswitch/multi/LearningSwitchManagerMultiImpl.java index dfac9825b..273344451 100644 --- a/samples/learning-switch/src/main/java/org/opendaylight/openflowplugin/learningswitch/multi/LearningSwitchManagerMultiImpl.java +++ b/samples/learning-switch/src/main/java/org/opendaylight/openflowplugin/learningswitch/multi/LearningSwitchManagerMultiImpl.java @@ -11,10 +11,9 @@ import javax.annotation.PreDestroy; import javax.inject.Inject; import javax.inject.Singleton; 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.binding.api.NotificationService; -import org.opendaylight.mdsal.binding.api.RpcConsumerRegistry; +import org.opendaylight.mdsal.binding.api.RpcService; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.openflowplugin.learningswitch.DataTreeChangeListenerRegistrationHolder; import org.opendaylight.openflowplugin.learningswitch.FlowCommitWrapperImpl; @@ -25,7 +24,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node; import org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.PacketReceived; import org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.TransmitPacket; -import org.opendaylight.yangtools.concepts.ListenerRegistration; import org.opendaylight.yangtools.concepts.Registration; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.osgi.service.component.annotations.Activate; @@ -49,13 +47,13 @@ import org.slf4j.LoggerFactory; public final class LearningSwitchManagerMultiImpl implements DataTreeChangeListenerRegistrationHolder, AutoCloseable { private static final Logger LOG = LoggerFactory.getLogger(LearningSwitchManagerMultiImpl.class); - private final ListenerRegistration dataTreeChangeListenerRegistration; + private final Registration dataTreeChangeListenerRegistration; private final Registration packetInRegistration; @Inject @Activate public LearningSwitchManagerMultiImpl(@Reference final DataBroker dataBroker, - @Reference final NotificationService notificationService, @Reference final RpcConsumerRegistry rpcService) { + @Reference final NotificationService notificationService, @Reference final RpcService rpcService) { LOG.debug("start() -->"); final var dataStoreAccessor = new FlowCommitWrapperImpl(dataBroker); @@ -65,7 +63,7 @@ public final class LearningSwitchManagerMultiImpl implements DataTreeChangeListe packetInRegistration = notificationService.registerListener(PacketReceived.class, packetInDispatcher); dataTreeChangeListenerRegistration = dataBroker.registerDataTreeChangeListener( - DataTreeIdentifier.create(LogicalDatastoreType.OPERATIONAL, InstanceIdentifier.create(Nodes.class) + DataTreeIdentifier.of(LogicalDatastoreType.OPERATIONAL, InstanceIdentifier.create(Nodes.class) .child(Node.class) .augmentation(FlowCapableNode.class) .child(Table.class)), @@ -84,9 +82,9 @@ public final class LearningSwitchManagerMultiImpl implements DataTreeChangeListe LOG.debug("stop() <--"); } - + // FIXME: why? @Override - public ListenerRegistration getDataTreeChangeListenerRegistration() { + public Registration getDataTreeChangeListenerRegistration() { return dataTreeChangeListenerRegistration; } } diff --git a/samples/sample-bundles/src/main/java/org/opendaylight/openflowplugin/samples/sample/bundles/SampleFlowCapableNodeListener.java b/samples/sample-bundles/src/main/java/org/opendaylight/openflowplugin/samples/sample/bundles/SampleFlowCapableNodeListener.java index c4dfc1692..80da8efcb 100644 --- a/samples/sample-bundles/src/main/java/org/opendaylight/openflowplugin/samples/sample/bundles/SampleFlowCapableNodeListener.java +++ b/samples/sample-bundles/src/main/java/org/opendaylight/openflowplugin/samples/sample/bundles/SampleFlowCapableNodeListener.java @@ -7,7 +7,6 @@ */ package org.opendaylight.openflowplugin.samples.sample.bundles; -import java.util.Collection; import java.util.List; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; @@ -22,7 +21,7 @@ import org.opendaylight.mdsal.binding.api.DataBroker; 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.RpcConsumerRegistry; +import org.opendaylight.mdsal.binding.api.RpcService; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Prefix; import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.GroupActionCaseBuilder; @@ -72,7 +71,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.on import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.rev170124.BundleControlType; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.rev170124.BundleFlags; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.rev170124.BundleId; -import org.opendaylight.yangtools.concepts.ListenerRegistration; +import org.opendaylight.yangtools.concepts.Registration; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.opendaylight.yangtools.yang.binding.util.BindingMap; import org.opendaylight.yangtools.yang.common.Uint16; @@ -101,12 +100,12 @@ public final class SampleFlowCapableNodeListener private final ControlBundle controlBundle; private final AddBundleMessages addBundleMessages; - private final ListenerRegistration listenerReg; + private final Registration listenerReg; @Inject @Activate public SampleFlowCapableNodeListener(@Reference final DataBroker dataBroker, - @Reference final RpcConsumerRegistry rpcService) { + @Reference final RpcService rpcService) { controlBundle = rpcService.getRpc(ControlBundle.class); addBundleMessages = rpcService.getRpc(AddBundleMessages.class); LOG.debug("inSessionInitialized() passing"); @@ -128,7 +127,7 @@ public final class SampleFlowCapableNodeListener } @Override - public void onDataTreeChanged(final Collection> modifications) { + public void onDataTreeChanged(final List> modifications) { for (var modification : modifications) { if (modification.getRootNode().getModificationType() == ModificationType.WRITE) { LOG.info("Node connected: {}", diff --git a/samples/sample-consumer/src/main/java/org/opendaylight/openflowplugin/openflow/samples/consumer/SimpleDropFirewall.java b/samples/sample-consumer/src/main/java/org/opendaylight/openflowplugin/openflow/samples/consumer/SimpleDropFirewall.java index 95a56ab0b..d3a0693a0 100644 --- a/samples/sample-consumer/src/main/java/org/opendaylight/openflowplugin/openflow/samples/consumer/SimpleDropFirewall.java +++ b/samples/sample-consumer/src/main/java/org/opendaylight/openflowplugin/openflow/samples/consumer/SimpleDropFirewall.java @@ -12,7 +12,7 @@ import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; import javax.inject.Inject; import javax.inject.Singleton; -import org.opendaylight.mdsal.binding.api.RpcConsumerRegistry; +import org.opendaylight.mdsal.binding.api.RpcService; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.AddFlow; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.AddFlowInput; import org.osgi.service.component.annotations.Activate; @@ -26,7 +26,7 @@ public final class SimpleDropFirewall { @Inject @Activate - public SimpleDropFirewall(@Reference final RpcConsumerRegistry rpcService) { + public SimpleDropFirewall(@Reference final RpcService rpcService) { addFlow = rpcService.getRpc(AddFlow.class); } diff --git a/test-common/src/main/java/org/opendaylight/openflowplugin/testcommon/DropTestRpcSender.java b/test-common/src/main/java/org/opendaylight/openflowplugin/testcommon/DropTestRpcSender.java index 9b945736d..8b52ba2a6 100644 --- a/test-common/src/main/java/org/opendaylight/openflowplugin/testcommon/DropTestRpcSender.java +++ b/test-common/src/main/java/org/opendaylight/openflowplugin/testcommon/DropTestRpcSender.java @@ -16,7 +16,7 @@ import javax.annotation.PreDestroy; import javax.inject.Inject; import javax.inject.Singleton; import org.opendaylight.mdsal.binding.api.NotificationService; -import org.opendaylight.mdsal.binding.api.RpcConsumerRegistry; +import org.opendaylight.mdsal.binding.api.RpcService; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.AddFlow; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.AddFlowInputBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.AddFlowOutput; @@ -67,7 +67,7 @@ public final class DropTestRpcSender extends AbstractDropTest { @Inject @Activate public DropTestRpcSender(@Reference final NotificationService notificationService, - @Reference final RpcConsumerRegistry rpcService) { + @Reference final RpcService rpcService) { this.notificationService = requireNonNull(notificationService); addFlow = rpcService.getRpc(AddFlow.class); } -- 2.43.0 From 4695b9b65d69ca01d06dc221576f9d3e49519f7a Mon Sep 17 00:00:00 2001 From: jenkins-releng Date: Sun, 11 Feb 2024 17:49:22 +0000 Subject: [PATCH 3/3] Release Validate --- applications/arbitratorreconciliation/api/pom.xml | 2 +- applications/arbitratorreconciliation/impl/pom.xml | 2 +- applications/arbitratorreconciliation/pom.xml | 2 +- applications/bulk-o-matic/pom.xml | 2 +- applications/device-ownership-service/pom.xml | 2 +- applications/forwardingrules-manager/pom.xml | 2 +- applications/forwardingrules-sync/pom.xml | 2 +- applications/lldp-speaker/pom.xml | 2 +- applications/of-switch-config-pusher/pom.xml | 2 +- applications/pom.xml | 2 +- applications/reconciliation-framework/pom.xml | 2 +- applications/southbound-cli/pom.xml | 2 +- applications/table-miss-enforcer/pom.xml | 2 +- applications/topology-lldp-discovery/pom.xml | 4 ++-- applications/topology-manager/pom.xml | 4 ++-- artifacts/pom.xml | 2 +- distribution/karaf/pom.xml | 4 ++-- drop-test-karaf/pom.xml | 2 +- .../features-openflowplugin-extension/pom.xml | 2 +- .../odl-openflowplugin-eric-extensions/pom.xml | 2 +- .../odl-openflowplugin-nxm-extensions/pom.xml | 2 +- .../odl-openflowplugin-onf-extensions/pom.xml | 2 +- extension/features-extension-aggregator/pom.xml | 2 +- extension/openflowjava-extension-eric/pom.xml | 2 +- extension/openflowjava-extension-nicira-api/pom.xml | 2 +- extension/openflowjava-extension-nicira/pom.xml | 2 +- extension/openflowplugin-extension-api/pom.xml | 2 +- extension/openflowplugin-extension-eric/pom.xml | 2 +- extension/openflowplugin-extension-nicira/pom.xml | 2 +- extension/openflowplugin-extension-onf/pom.xml | 2 +- extension/pom.xml | 2 +- extension/test-extension/pom.xml | 2 +- features-aggregator/features-openflowplugin/pom.xml | 2 +- .../odl-openflowplugin-app-arbitratorreconciliation/pom.xml | 2 +- .../odl-openflowplugin-app-bulk-o-matic/pom.xml | 2 +- .../odl-openflowplugin-app-config-pusher/pom.xml | 2 +- .../odl-openflowplugin-app-forwardingrules-manager/pom.xml | 2 +- .../odl-openflowplugin-app-forwardingrules-sync/pom.xml | 2 +- .../odl-openflowplugin-app-lldp-speaker/pom.xml | 2 +- .../odl-openflowplugin-app-reconciliation-framework/pom.xml | 2 +- .../odl-openflowplugin-app-southbound-cli/pom.xml | 2 +- .../odl-openflowplugin-app-table-miss-enforcer/pom.xml | 2 +- .../odl-openflowplugin-app-topology-lldp-discovery/pom.xml | 2 +- .../odl-openflowplugin-app-topology-manager/pom.xml | 2 +- features-aggregator/odl-openflowplugin-app-topology/pom.xml | 2 +- features-aggregator/odl-openflowplugin-drop-test/pom.xml | 2 +- .../odl-openflowplugin-flow-services-rest/pom.xml | 4 ++-- features-aggregator/odl-openflowplugin-flow-services/pom.xml | 2 +- features-aggregator/odl-openflowplugin-libraries/pom.xml | 2 +- features-aggregator/odl-openflowplugin-nsf-model/pom.xml | 2 +- features-aggregator/odl-openflowplugin-southbound/pom.xml | 4 ++-- features-aggregator/pom.xml | 2 +- libraries/liblldp/pom.xml | 2 +- libraries/pom.xml | 2 +- model/model-flow-base/pom.xml | 2 +- model/model-flow-service/pom.xml | 2 +- model/model-flow-statistics/pom.xml | 2 +- model/model-inventory/pom.xml | 2 +- model/model-topology/pom.xml | 2 +- model/pom.xml | 2 +- .../features-openflowjava/pom.xml | 2 +- .../odl-openflowjava-protocol/pom.xml | 2 +- openflowjava/features-openflowjava-aggregator/pom.xml | 2 +- openflowjava/openflow-protocol-api/pom.xml | 4 ++-- openflowjava/openflow-protocol-impl/pom.xml | 2 +- openflowjava/openflow-protocol-it/pom.xml | 2 +- openflowjava/openflow-protocol-spi/pom.xml | 2 +- openflowjava/openflowjava-blueprint-config/pom.xml | 2 +- openflowjava/openflowjava-util/pom.xml | 2 +- openflowjava/pom.xml | 2 +- openflowplugin-api/pom.xml | 2 +- openflowplugin-blueprint-config/pom.xml | 2 +- openflowplugin-common/pom.xml | 2 +- openflowplugin-impl/pom.xml | 2 +- openflowplugin-it/pom.xml | 2 +- openflowplugin/pom.xml | 2 +- parent/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/learning-switch/pom.xml | 2 +- samples/pom.xml | 2 +- samples/sample-bundles/pom.xml | 2 +- samples/sample-consumer/pom.xml | 2 +- samples/simple-client/pom.xml | 2 +- test-common/pom.xml | 2 +- test-provider/pom.xml | 2 +- 85 files changed, 93 insertions(+), 93 deletions(-) diff --git a/applications/arbitratorreconciliation/api/pom.xml b/applications/arbitratorreconciliation/api/pom.xml index 3fb439acb..ab18f4b4f 100644 --- a/applications/arbitratorreconciliation/api/pom.xml +++ b/applications/arbitratorreconciliation/api/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../../../parent diff --git a/applications/arbitratorreconciliation/impl/pom.xml b/applications/arbitratorreconciliation/impl/pom.xml index ef3e845ff..f009c29af 100644 --- a/applications/arbitratorreconciliation/impl/pom.xml +++ b/applications/arbitratorreconciliation/impl/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../../../parent diff --git a/applications/arbitratorreconciliation/pom.xml b/applications/arbitratorreconciliation/pom.xml index c6831ef2e..43b139e1c 100644 --- a/applications/arbitratorreconciliation/pom.xml +++ b/applications/arbitratorreconciliation/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.openflowplugin.applications arbitratorreconciliation-aggregator - 0.18.0-SNAPSHOT + 0.18.0 pom ODL :: openflowplugin :: ${project.artifactId} diff --git a/applications/bulk-o-matic/pom.xml b/applications/bulk-o-matic/pom.xml index 567abedfe..6d65f4e9b 100644 --- a/applications/bulk-o-matic/pom.xml +++ b/applications/bulk-o-matic/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../../parent diff --git a/applications/device-ownership-service/pom.xml b/applications/device-ownership-service/pom.xml index 7028f713e..d81deecf8 100644 --- a/applications/device-ownership-service/pom.xml +++ b/applications/device-ownership-service/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../../parent diff --git a/applications/forwardingrules-manager/pom.xml b/applications/forwardingrules-manager/pom.xml index 75c6f9204..6e9ab2d3c 100644 --- a/applications/forwardingrules-manager/pom.xml +++ b/applications/forwardingrules-manager/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../../parent diff --git a/applications/forwardingrules-sync/pom.xml b/applications/forwardingrules-sync/pom.xml index 2f8923bfc..7c280ffbc 100644 --- a/applications/forwardingrules-sync/pom.xml +++ b/applications/forwardingrules-sync/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../../parent diff --git a/applications/lldp-speaker/pom.xml b/applications/lldp-speaker/pom.xml index 79fdb2466..a6a1f430a 100644 --- a/applications/lldp-speaker/pom.xml +++ b/applications/lldp-speaker/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../../parent diff --git a/applications/of-switch-config-pusher/pom.xml b/applications/of-switch-config-pusher/pom.xml index 0f835e8c1..80992f88c 100644 --- a/applications/of-switch-config-pusher/pom.xml +++ b/applications/of-switch-config-pusher/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../../parent diff --git a/applications/pom.xml b/applications/pom.xml index 1ea659bf9..618df6895 100644 --- a/applications/pom.xml +++ b/applications/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.openflowplugin applications-aggregator - 0.18.0-SNAPSHOT + 0.18.0 pom diff --git a/applications/reconciliation-framework/pom.xml b/applications/reconciliation-framework/pom.xml index fa8b81ba8..0c5544bb7 100644 --- a/applications/reconciliation-framework/pom.xml +++ b/applications/reconciliation-framework/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../../parent diff --git a/applications/southbound-cli/pom.xml b/applications/southbound-cli/pom.xml index cfa72112c..93d85fb8e 100644 --- a/applications/southbound-cli/pom.xml +++ b/applications/southbound-cli/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../../parent diff --git a/applications/table-miss-enforcer/pom.xml b/applications/table-miss-enforcer/pom.xml index d474cf54d..2514de737 100644 --- a/applications/table-miss-enforcer/pom.xml +++ b/applications/table-miss-enforcer/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../../parent diff --git a/applications/topology-lldp-discovery/pom.xml b/applications/topology-lldp-discovery/pom.xml index a8989e9c5..a21d61c6d 100644 --- a/applications/topology-lldp-discovery/pom.xml +++ b/applications/topology-lldp-discovery/pom.xml @@ -4,12 +4,12 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../../parent org.opendaylight.openflowplugin.applications topology-lldp-discovery - 0.18.0-SNAPSHOT + 0.18.0 bundle diff --git a/applications/topology-manager/pom.xml b/applications/topology-manager/pom.xml index 5b97421b8..e13e13be6 100644 --- a/applications/topology-manager/pom.xml +++ b/applications/topology-manager/pom.xml @@ -4,12 +4,12 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../../parent org.opendaylight.openflowplugin.applications topology-manager - 0.18.0-SNAPSHOT + 0.18.0 bundle diff --git a/artifacts/pom.xml b/artifacts/pom.xml index 6c700f2b2..a91907e07 100644 --- a/artifacts/pom.xml +++ b/artifacts/pom.xml @@ -19,7 +19,7 @@ org.opendaylight.openflowplugin openflowplugin-artifacts - 0.18.0-SNAPSHOT + 0.18.0 pom diff --git a/distribution/karaf/pom.xml b/distribution/karaf/pom.xml index b34aef9ed..9ae3e7126 100644 --- a/distribution/karaf/pom.xml +++ b/distribution/karaf/pom.xml @@ -8,11 +8,11 @@ org.opendaylight.openflowplugin openflowplugin-karaf - 0.18.0-SNAPSHOT + 0.18.0 pom - 0.18.0-SNAPSHOT + 0.18.0 diff --git a/drop-test-karaf/pom.xml b/drop-test-karaf/pom.xml index b85c450ab..84c725d16 100644 --- a/drop-test-karaf/pom.xml +++ b/drop-test-karaf/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../parent diff --git a/extension/features-extension-aggregator/features-openflowplugin-extension/pom.xml b/extension/features-extension-aggregator/features-openflowplugin-extension/pom.xml index 0e8da177f..97628ec39 100644 --- a/extension/features-extension-aggregator/features-openflowplugin-extension/pom.xml +++ b/extension/features-extension-aggregator/features-openflowplugin-extension/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.openflowplugin features-openflowplugin-extension feature - 0.18.0-SNAPSHOT + 0.18.0 diff --git a/extension/features-extension-aggregator/odl-openflowplugin-eric-extensions/pom.xml b/extension/features-extension-aggregator/odl-openflowplugin-eric-extensions/pom.xml index cf3f4177d..c5e04ce3c 100644 --- a/extension/features-extension-aggregator/odl-openflowplugin-eric-extensions/pom.xml +++ b/extension/features-extension-aggregator/odl-openflowplugin-eric-extensions/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.openflowplugin odl-openflowplugin-eric-extensions feature - 0.18.0-SNAPSHOT + 0.18.0 OpenDaylight :: Openflow Plugin :: Eric Extensions diff --git a/extension/features-extension-aggregator/odl-openflowplugin-nxm-extensions/pom.xml b/extension/features-extension-aggregator/odl-openflowplugin-nxm-extensions/pom.xml index f15ee468b..96682b972 100644 --- a/extension/features-extension-aggregator/odl-openflowplugin-nxm-extensions/pom.xml +++ b/extension/features-extension-aggregator/odl-openflowplugin-nxm-extensions/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.openflowplugin odl-openflowplugin-nxm-extensions feature - 0.18.0-SNAPSHOT + 0.18.0 OpenDaylight :: Openflow Plugin :: Nicira Extensions diff --git a/extension/features-extension-aggregator/odl-openflowplugin-onf-extensions/pom.xml b/extension/features-extension-aggregator/odl-openflowplugin-onf-extensions/pom.xml index ed4a34b06..f1e267843 100644 --- a/extension/features-extension-aggregator/odl-openflowplugin-onf-extensions/pom.xml +++ b/extension/features-extension-aggregator/odl-openflowplugin-onf-extensions/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.openflowplugin odl-openflowplugin-onf-extensions feature - 0.18.0-SNAPSHOT + 0.18.0 OpenDaylight :: Openflow Plugin :: ONF Extensions diff --git a/extension/features-extension-aggregator/pom.xml b/extension/features-extension-aggregator/pom.xml index d67ab68ed..1ef30f057 100644 --- a/extension/features-extension-aggregator/pom.xml +++ b/extension/features-extension-aggregator/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.openflowplugin features-extension-aggregator pom - 0.18.0-SNAPSHOT + 0.18.0 features-openflowplugin-extension diff --git a/extension/openflowjava-extension-eric/pom.xml b/extension/openflowjava-extension-eric/pom.xml index 7a939a03c..788aa531e 100644 --- a/extension/openflowjava-extension-eric/pom.xml +++ b/extension/openflowjava-extension-eric/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../../parent openflowjava-extension-eric diff --git a/extension/openflowjava-extension-nicira-api/pom.xml b/extension/openflowjava-extension-nicira-api/pom.xml index d22e9fc4e..89d276c55 100644 --- a/extension/openflowjava-extension-nicira-api/pom.xml +++ b/extension/openflowjava-extension-nicira-api/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../../parent openflowjava-extension-nicira-api diff --git a/extension/openflowjava-extension-nicira/pom.xml b/extension/openflowjava-extension-nicira/pom.xml index 367dec3d4..54f650fe6 100644 --- a/extension/openflowjava-extension-nicira/pom.xml +++ b/extension/openflowjava-extension-nicira/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../../parent openflowjava-extension-nicira diff --git a/extension/openflowplugin-extension-api/pom.xml b/extension/openflowplugin-extension-api/pom.xml index 17beb1a18..cfb98c52d 100644 --- a/extension/openflowplugin-extension-api/pom.xml +++ b/extension/openflowplugin-extension-api/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../../parent diff --git a/extension/openflowplugin-extension-eric/pom.xml b/extension/openflowplugin-extension-eric/pom.xml index b745493f7..b8c6f1aac 100644 --- a/extension/openflowplugin-extension-eric/pom.xml +++ b/extension/openflowplugin-extension-eric/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../../parent diff --git a/extension/openflowplugin-extension-nicira/pom.xml b/extension/openflowplugin-extension-nicira/pom.xml index d151e8a7f..f178283a7 100644 --- a/extension/openflowplugin-extension-nicira/pom.xml +++ b/extension/openflowplugin-extension-nicira/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../../parent diff --git a/extension/openflowplugin-extension-onf/pom.xml b/extension/openflowplugin-extension-onf/pom.xml index ae6914313..ee2351400 100644 --- a/extension/openflowplugin-extension-onf/pom.xml +++ b/extension/openflowplugin-extension-onf/pom.xml @@ -10,7 +10,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../../parent diff --git a/extension/pom.xml b/extension/pom.xml index c51cb2069..c87beec90 100644 --- a/extension/pom.xml +++ b/extension/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.openflowplugin openflowplugin-extension-aggregator - 0.18.0-SNAPSHOT + 0.18.0 pom diff --git a/extension/test-extension/pom.xml b/extension/test-extension/pom.xml index 86bbbb677..6a1c9cffd 100644 --- a/extension/test-extension/pom.xml +++ b/extension/test-extension/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../../parent diff --git a/features-aggregator/features-openflowplugin/pom.xml b/features-aggregator/features-openflowplugin/pom.xml index 9e485fa35..3fca1ae43 100644 --- a/features-aggregator/features-openflowplugin/pom.xml +++ b/features-aggregator/features-openflowplugin/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.openflowplugin features-openflowplugin feature - 0.18.0-SNAPSHOT + 0.18.0 diff --git a/features-aggregator/odl-openflowplugin-app-arbitratorreconciliation/pom.xml b/features-aggregator/odl-openflowplugin-app-arbitratorreconciliation/pom.xml index 2e013a559..5b53ea810 100644 --- a/features-aggregator/odl-openflowplugin-app-arbitratorreconciliation/pom.xml +++ b/features-aggregator/odl-openflowplugin-app-arbitratorreconciliation/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.openflowplugin odl-openflowplugin-app-arbitratorreconciliation feature - 0.18.0-SNAPSHOT + 0.18.0 OpenDaylight :: Openflow Plugin :: Application - Arbitrator Reconciliation diff --git a/features-aggregator/odl-openflowplugin-app-bulk-o-matic/pom.xml b/features-aggregator/odl-openflowplugin-app-bulk-o-matic/pom.xml index daee65e42..eb49299c6 100644 --- a/features-aggregator/odl-openflowplugin-app-bulk-o-matic/pom.xml +++ b/features-aggregator/odl-openflowplugin-app-bulk-o-matic/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.openflowplugin odl-openflowplugin-app-bulk-o-matic feature - 0.18.0-SNAPSHOT + 0.18.0 OpenDaylight :: Openflow Plugin :: Application - bulk flow operations support diff --git a/features-aggregator/odl-openflowplugin-app-config-pusher/pom.xml b/features-aggregator/odl-openflowplugin-app-config-pusher/pom.xml index 869c1e1fc..558b5cf29 100644 --- a/features-aggregator/odl-openflowplugin-app-config-pusher/pom.xml +++ b/features-aggregator/odl-openflowplugin-app-config-pusher/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.openflowplugin odl-openflowplugin-app-config-pusher feature - 0.18.0-SNAPSHOT + 0.18.0 OpenDaylight :: Openflow Plugin :: Application - default config-pusher diff --git a/features-aggregator/odl-openflowplugin-app-forwardingrules-manager/pom.xml b/features-aggregator/odl-openflowplugin-app-forwardingrules-manager/pom.xml index a38d8ce01..a6d51267c 100644 --- a/features-aggregator/odl-openflowplugin-app-forwardingrules-manager/pom.xml +++ b/features-aggregator/odl-openflowplugin-app-forwardingrules-manager/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.openflowplugin odl-openflowplugin-app-forwardingrules-manager feature - 0.18.0-SNAPSHOT + 0.18.0 OpenDaylight :: Openflow Plugin :: Application - FRM diff --git a/features-aggregator/odl-openflowplugin-app-forwardingrules-sync/pom.xml b/features-aggregator/odl-openflowplugin-app-forwardingrules-sync/pom.xml index 4b3f8a3de..dc92a7c80 100644 --- a/features-aggregator/odl-openflowplugin-app-forwardingrules-sync/pom.xml +++ b/features-aggregator/odl-openflowplugin-app-forwardingrules-sync/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.openflowplugin odl-openflowplugin-app-forwardingrules-sync feature - 0.18.0-SNAPSHOT + 0.18.0 OpenDaylight :: Openflow Plugin :: Application - FRS diff --git a/features-aggregator/odl-openflowplugin-app-lldp-speaker/pom.xml b/features-aggregator/odl-openflowplugin-app-lldp-speaker/pom.xml index 7dc5869da..a60ef02d5 100644 --- a/features-aggregator/odl-openflowplugin-app-lldp-speaker/pom.xml +++ b/features-aggregator/odl-openflowplugin-app-lldp-speaker/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.openflowplugin odl-openflowplugin-app-lldp-speaker feature - 0.18.0-SNAPSHOT + 0.18.0 OpenDaylight :: Openflow Plugin :: Application - LLDP Speaker diff --git a/features-aggregator/odl-openflowplugin-app-reconciliation-framework/pom.xml b/features-aggregator/odl-openflowplugin-app-reconciliation-framework/pom.xml index be2d50550..2640b4bbd 100644 --- a/features-aggregator/odl-openflowplugin-app-reconciliation-framework/pom.xml +++ b/features-aggregator/odl-openflowplugin-app-reconciliation-framework/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.openflowplugin odl-openflowplugin-app-reconciliation-framework feature -0.18.0-SNAPSHOT +0.18.0 OpenDaylight :: Openflow Plugin :: Application - Reconciliation Framework diff --git a/features-aggregator/odl-openflowplugin-app-southbound-cli/pom.xml b/features-aggregator/odl-openflowplugin-app-southbound-cli/pom.xml index 9af595832..e2a87660a 100644 --- a/features-aggregator/odl-openflowplugin-app-southbound-cli/pom.xml +++ b/features-aggregator/odl-openflowplugin-app-southbound-cli/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.openflowplugin odl-openflowplugin-app-southbound-cli feature - 0.18.0-SNAPSHOT + 0.18.0 OpenDaylight :: Openflow Plugin :: Application - Southbound CLI diff --git a/features-aggregator/odl-openflowplugin-app-table-miss-enforcer/pom.xml b/features-aggregator/odl-openflowplugin-app-table-miss-enforcer/pom.xml index c6f7e36c9..507c1ad7c 100644 --- a/features-aggregator/odl-openflowplugin-app-table-miss-enforcer/pom.xml +++ b/features-aggregator/odl-openflowplugin-app-table-miss-enforcer/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.openflowplugin odl-openflowplugin-app-table-miss-enforcer feature - 0.18.0-SNAPSHOT + 0.18.0 OpenDaylight :: Openflow Plugin :: Application - table-miss-enforcer diff --git a/features-aggregator/odl-openflowplugin-app-topology-lldp-discovery/pom.xml b/features-aggregator/odl-openflowplugin-app-topology-lldp-discovery/pom.xml index 59c0cfbe9..a6470a2c9 100644 --- a/features-aggregator/odl-openflowplugin-app-topology-lldp-discovery/pom.xml +++ b/features-aggregator/odl-openflowplugin-app-topology-lldp-discovery/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.openflowplugin odl-openflowplugin-app-topology-lldp-discovery feature - 0.18.0-SNAPSHOT + 0.18.0 OpenDaylight :: Openflow Plugin :: Application - Topology LLDP Discovery diff --git a/features-aggregator/odl-openflowplugin-app-topology-manager/pom.xml b/features-aggregator/odl-openflowplugin-app-topology-manager/pom.xml index 0b8fc8b77..37906a6e4 100644 --- a/features-aggregator/odl-openflowplugin-app-topology-manager/pom.xml +++ b/features-aggregator/odl-openflowplugin-app-topology-manager/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.openflowplugin odl-openflowplugin-app-topology-manager feature - 0.18.0-SNAPSHOT + 0.18.0 OpenDaylight :: Openflow Plugin :: Application - Topology Manager diff --git a/features-aggregator/odl-openflowplugin-app-topology/pom.xml b/features-aggregator/odl-openflowplugin-app-topology/pom.xml index 6413a9edc..1343982b3 100644 --- a/features-aggregator/odl-openflowplugin-app-topology/pom.xml +++ b/features-aggregator/odl-openflowplugin-app-topology/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.openflowplugin odl-openflowplugin-app-topology feature - 0.18.0-SNAPSHOT + 0.18.0 OpenDaylight :: Openflow Plugin :: Application - topology diff --git a/features-aggregator/odl-openflowplugin-drop-test/pom.xml b/features-aggregator/odl-openflowplugin-drop-test/pom.xml index 7e3e19246..1be6939bb 100644 --- a/features-aggregator/odl-openflowplugin-drop-test/pom.xml +++ b/features-aggregator/odl-openflowplugin-drop-test/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.openflowplugin odl-openflowplugin-drop-test feature - 0.18.0-SNAPSHOT + 0.18.0 OpenDaylight :: Openflow Plugin :: Drop Test diff --git a/features-aggregator/odl-openflowplugin-flow-services-rest/pom.xml b/features-aggregator/odl-openflowplugin-flow-services-rest/pom.xml index 9acc185d2..b726ad289 100644 --- a/features-aggregator/odl-openflowplugin-flow-services-rest/pom.xml +++ b/features-aggregator/odl-openflowplugin-flow-services-rest/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.openflowplugin odl-openflowplugin-flow-services-rest feature - 0.18.0-SNAPSHOT + 0.18.0 OpenDaylight :: Openflow Plugin :: Flow Services :: REST @@ -21,7 +21,7 @@ org.opendaylight.netconf netconf-artifacts - 7.0.0-SNAPSHOT + 7.0.0 import pom diff --git a/features-aggregator/odl-openflowplugin-flow-services/pom.xml b/features-aggregator/odl-openflowplugin-flow-services/pom.xml index 0bf712ff3..ec07e18f6 100644 --- a/features-aggregator/odl-openflowplugin-flow-services/pom.xml +++ b/features-aggregator/odl-openflowplugin-flow-services/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.openflowplugin odl-openflowplugin-flow-services feature - 0.18.0-SNAPSHOT + 0.18.0 OpenDaylight :: Openflow Plugin :: Flow Services diff --git a/features-aggregator/odl-openflowplugin-libraries/pom.xml b/features-aggregator/odl-openflowplugin-libraries/pom.xml index 764585b20..a6cd92f4f 100644 --- a/features-aggregator/odl-openflowplugin-libraries/pom.xml +++ b/features-aggregator/odl-openflowplugin-libraries/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.openflowplugin odl-openflowplugin-libraries feature - 0.18.0-SNAPSHOT + 0.18.0 OpenDaylight :: Openflow Plugin :: Libraries diff --git a/features-aggregator/odl-openflowplugin-nsf-model/pom.xml b/features-aggregator/odl-openflowplugin-nsf-model/pom.xml index 064356eb0..6ab2d7978 100644 --- a/features-aggregator/odl-openflowplugin-nsf-model/pom.xml +++ b/features-aggregator/odl-openflowplugin-nsf-model/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.openflowplugin odl-openflowplugin-nsf-model feature - 0.18.0-SNAPSHOT + 0.18.0 OpenDaylight :: OpenflowPlugin :: NSF :: Model diff --git a/features-aggregator/odl-openflowplugin-southbound/pom.xml b/features-aggregator/odl-openflowplugin-southbound/pom.xml index b80a76498..4c8bf2244 100644 --- a/features-aggregator/odl-openflowplugin-southbound/pom.xml +++ b/features-aggregator/odl-openflowplugin-southbound/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.openflowplugin odl-openflowplugin-southbound feature - 0.18.0-SNAPSHOT + 0.18.0 OpenDaylight :: Openflow Plugin :: Li southbound API implementation @@ -43,7 +43,7 @@ org.opendaylight.serviceutils serviceutils-artifacts - 0.13.0-SNAPSHOT + 0.13.0 import pom diff --git a/features-aggregator/pom.xml b/features-aggregator/pom.xml index 22bb76806..0f412d9f7 100644 --- a/features-aggregator/pom.xml +++ b/features-aggregator/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.openflowplugin features-aggregator pom - 0.18.0-SNAPSHOT + 0.18.0 features-openflowplugin diff --git a/libraries/liblldp/pom.xml b/libraries/liblldp/pom.xml index 1e03a1997..0d6df4196 100644 --- a/libraries/liblldp/pom.xml +++ b/libraries/liblldp/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../../parent diff --git a/libraries/pom.xml b/libraries/pom.xml index c206b7632..9ad24c2f4 100644 --- a/libraries/pom.xml +++ b/libraries/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.openflowplugin libraries-aggregator - 0.18.0-SNAPSHOT + 0.18.0 pom diff --git a/model/model-flow-base/pom.xml b/model/model-flow-base/pom.xml index c4e0f7108..d8fb9bffe 100644 --- a/model/model-flow-base/pom.xml +++ b/model/model-flow-base/pom.xml @@ -6,7 +6,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../../parent diff --git a/model/model-flow-service/pom.xml b/model/model-flow-service/pom.xml index 9a7dcf0e9..b68d84675 100644 --- a/model/model-flow-service/pom.xml +++ b/model/model-flow-service/pom.xml @@ -6,7 +6,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../../parent diff --git a/model/model-flow-statistics/pom.xml b/model/model-flow-statistics/pom.xml index e1c5cf748..538eed2c2 100644 --- a/model/model-flow-statistics/pom.xml +++ b/model/model-flow-statistics/pom.xml @@ -6,7 +6,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../../parent diff --git a/model/model-inventory/pom.xml b/model/model-inventory/pom.xml index cf0305695..2bcdffff1 100644 --- a/model/model-inventory/pom.xml +++ b/model/model-inventory/pom.xml @@ -13,7 +13,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../../parent diff --git a/model/model-topology/pom.xml b/model/model-topology/pom.xml index 25f1950b6..35d4ef690 100644 --- a/model/model-topology/pom.xml +++ b/model/model-topology/pom.xml @@ -13,7 +13,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../../parent diff --git a/model/pom.xml b/model/pom.xml index 9fc75a21f..5613dc5dd 100644 --- a/model/pom.xml +++ b/model/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.openflowplugin.model model-aggregator - 0.18.0-SNAPSHOT + 0.18.0 pom diff --git a/openflowjava/features-openflowjava-aggregator/features-openflowjava/pom.xml b/openflowjava/features-openflowjava-aggregator/features-openflowjava/pom.xml index 262d49387..01f3a2fef 100644 --- a/openflowjava/features-openflowjava-aggregator/features-openflowjava/pom.xml +++ b/openflowjava/features-openflowjava-aggregator/features-openflowjava/pom.xml @@ -10,7 +10,7 @@ org.opendaylight.openflowplugin.openflowjava features-openflowjava - 0.18.0-SNAPSHOT + 0.18.0 feature diff --git a/openflowjava/features-openflowjava-aggregator/odl-openflowjava-protocol/pom.xml b/openflowjava/features-openflowjava-aggregator/odl-openflowjava-protocol/pom.xml index 84e5abfe3..8c67b58a0 100644 --- a/openflowjava/features-openflowjava-aggregator/odl-openflowjava-protocol/pom.xml +++ b/openflowjava/features-openflowjava-aggregator/odl-openflowjava-protocol/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.openflowplugin.openflowjava odl-openflowjava-protocol - 0.18.0-SNAPSHOT + 0.18.0 feature diff --git a/openflowjava/openflow-protocol-api/pom.xml b/openflowjava/openflow-protocol-api/pom.xml index d96f367fe..5a1196006 100644 --- a/openflowjava/openflow-protocol-api/pom.xml +++ b/openflowjava/openflow-protocol-api/pom.xml @@ -4,12 +4,12 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../../parent org.opendaylight.openflowplugin.openflowjava openflow-protocol-api - 0.18.0-SNAPSHOT + 0.18.0 bundle diff --git a/openflowjava/openflow-protocol-impl/pom.xml b/openflowjava/openflow-protocol-impl/pom.xml index b850a1db1..f42cddc4c 100644 --- a/openflowjava/openflow-protocol-impl/pom.xml +++ b/openflowjava/openflow-protocol-impl/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.openflowplugin.openflowjava openflowjava-parent - 0.18.0-SNAPSHOT + 0.18.0 ../ openflow-protocol-impl diff --git a/openflowjava/openflow-protocol-it/pom.xml b/openflowjava/openflow-protocol-it/pom.xml index 84c218bde..e61067966 100644 --- a/openflowjava/openflow-protocol-it/pom.xml +++ b/openflowjava/openflow-protocol-it/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.openflowplugin.openflowjava openflowjava-parent - 0.18.0-SNAPSHOT + 0.18.0 ../ openflow-protocol-it diff --git a/openflowjava/openflow-protocol-spi/pom.xml b/openflowjava/openflow-protocol-spi/pom.xml index ae991e29b..4c81ea3c3 100644 --- a/openflowjava/openflow-protocol-spi/pom.xml +++ b/openflowjava/openflow-protocol-spi/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.openflowplugin.openflowjava openflowjava-parent - 0.18.0-SNAPSHOT + 0.18.0 ../ openflow-protocol-spi diff --git a/openflowjava/openflowjava-blueprint-config/pom.xml b/openflowjava/openflowjava-blueprint-config/pom.xml index f41a5f389..140de8590 100644 --- a/openflowjava/openflowjava-blueprint-config/pom.xml +++ b/openflowjava/openflowjava-blueprint-config/pom.xml @@ -10,7 +10,7 @@ org.opendaylight.openflowplugin.openflowjava openflowjava-parent - 0.18.0-SNAPSHOT + 0.18.0 ../ openflowjava-blueprint-config diff --git a/openflowjava/openflowjava-util/pom.xml b/openflowjava/openflowjava-util/pom.xml index 5bbf72759..a15c63509 100644 --- a/openflowjava/openflowjava-util/pom.xml +++ b/openflowjava/openflowjava-util/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.openflowplugin.openflowjava openflowjava-parent - 0.18.0-SNAPSHOT + 0.18.0 ../ bundle diff --git a/openflowjava/pom.xml b/openflowjava/pom.xml index ceb6605fa..3c48d410e 100644 --- a/openflowjava/pom.xml +++ b/openflowjava/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../parent diff --git a/openflowplugin-api/pom.xml b/openflowplugin-api/pom.xml index ae32af498..5545e059f 100644 --- a/openflowplugin-api/pom.xml +++ b/openflowplugin-api/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../parent diff --git a/openflowplugin-blueprint-config/pom.xml b/openflowplugin-blueprint-config/pom.xml index 23488c3bb..41014f120 100644 --- a/openflowplugin-blueprint-config/pom.xml +++ b/openflowplugin-blueprint-config/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../parent diff --git a/openflowplugin-common/pom.xml b/openflowplugin-common/pom.xml index 19a77f660..51bd7eb3f 100644 --- a/openflowplugin-common/pom.xml +++ b/openflowplugin-common/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../parent diff --git a/openflowplugin-impl/pom.xml b/openflowplugin-impl/pom.xml index b1d656aec..e5b76dd5d 100644 --- a/openflowplugin-impl/pom.xml +++ b/openflowplugin-impl/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../parent diff --git a/openflowplugin-it/pom.xml b/openflowplugin-it/pom.xml index f7ebc5adb..11fdb103a 100644 --- a/openflowplugin-it/pom.xml +++ b/openflowplugin-it/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../parent diff --git a/openflowplugin/pom.xml b/openflowplugin/pom.xml index 28eeb8052..785a2da62 100644 --- a/openflowplugin/pom.xml +++ b/openflowplugin/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../parent diff --git a/parent/pom.xml b/parent/pom.xml index c0ec87d43..bee7d614e 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -19,7 +19,7 @@ 4.0.0 org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 pom @@ -55,7 +55,7 @@ org.opendaylight.serviceutils serviceutils-artifacts - 0.13.0-SNAPSHOT + 0.13.0 pom import diff --git a/pom.xml b/pom.xml index 3e8d9d4bb..ef61f7d58 100644 --- a/pom.xml +++ b/pom.xml @@ -4,12 +4,12 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 parent openflowplugin-aggregator - 0.18.0-SNAPSHOT + 0.18.0 openflowplugin pom diff --git a/samples/learning-switch/pom.xml b/samples/learning-switch/pom.xml index e406627be..0b9c8b6dd 100644 --- a/samples/learning-switch/pom.xml +++ b/samples/learning-switch/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../../parent diff --git a/samples/pom.xml b/samples/pom.xml index 179cebe98..1692b498a 100644 --- a/samples/pom.xml +++ b/samples/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.openflowplugin openflowplugin-samples-aggregator - 0.18.0-SNAPSHOT + 0.18.0 pom diff --git a/samples/sample-bundles/pom.xml b/samples/sample-bundles/pom.xml index dae66491a..7ca12ff42 100644 --- a/samples/sample-bundles/pom.xml +++ b/samples/sample-bundles/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../../parent diff --git a/samples/sample-consumer/pom.xml b/samples/sample-consumer/pom.xml index 654711441..346bcba7d 100644 --- a/samples/sample-consumer/pom.xml +++ b/samples/sample-consumer/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../../parent diff --git a/samples/simple-client/pom.xml b/samples/simple-client/pom.xml index 5bd203886..2acb3bd8e 100644 --- a/samples/simple-client/pom.xml +++ b/samples/simple-client/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../../parent diff --git a/test-common/pom.xml b/test-common/pom.xml index b23e75448..2942a8550 100644 --- a/test-common/pom.xml +++ b/test-common/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../parent test-common diff --git a/test-provider/pom.xml b/test-provider/pom.xml index b8c185457..e8d0d8437 100644 --- a/test-provider/pom.xml +++ b/test-provider/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.openflowplugin openflowplugin-parent - 0.18.0-SNAPSHOT + 0.18.0 ../parent test-provider -- 2.43.0