From 63c2d096814111818650eafb78e18dcbf2ef7ddf Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Tue, 4 Aug 2020 13:15:45 +0200 Subject: [PATCH] Deprecate ManagedNewTransactionRunner et al. ManagedNewTransactionRunner is exposed from mdsal-binding-util, deprecate its old genius incarnation to guide migration. JIRA: GENIUS-295 Change-Id: I8ed236164469dfeb0be3e295b68f8982c15bb06e Signed-off-by: Robert Varga --- mdsalutil/mdsalutil-api/pom.xml | 4 ++++ .../main/java/org/opendaylight/genius/infra/Datastore.java | 3 +++ .../genius/infra/ManagedNewTransactionRunner.java | 3 +++ .../genius/infra/ManagedNewTransactionRunnerImpl.java | 3 +++ .../opendaylight/genius/infra/ManagedTransactionChain.java | 4 ++++ .../opendaylight/genius/infra/ManagedTransactionFactory.java | 3 +++ .../genius/infra/RetryingManagedNewTransactionRunner.java | 2 ++ .../org/opendaylight/genius/infra/TransactionAdapter.java | 4 +++- .../org/opendaylight/genius/infra/TypedReadTransaction.java | 3 ++- .../opendaylight/genius/infra/TypedReadWriteTransaction.java | 2 ++ .../org/opendaylight/genius/infra/TypedWriteTransaction.java | 2 ++ 11 files changed, 31 insertions(+), 2 deletions(-) diff --git a/mdsalutil/mdsalutil-api/pom.xml b/mdsalutil/mdsalutil-api/pom.xml index cd5615a7a..cd67b202d 100644 --- a/mdsalutil/mdsalutil-api/pom.xml +++ b/mdsalutil/mdsalutil-api/pom.xml @@ -150,6 +150,10 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.mdsal mdsal-binding-spi + + org.opendaylight.mdsal + mdsal-binding-util + com.google.truth truth diff --git a/mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/infra/Datastore.java b/mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/infra/Datastore.java index 847e6d469..f95eef86f 100644 --- a/mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/infra/Datastore.java +++ b/mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/infra/Datastore.java @@ -11,7 +11,10 @@ import org.opendaylight.mdsal.common.api.LogicalDatastoreType; /** * Strongly-typed representation of a datastore (configuration or operational). + * + * @deprecated Use {@link org.opendaylight.mdsal.binding.util.Datastore} instead. */ +@Deprecated(forRemoval = true) public abstract class Datastore { /** Class representing the configuration datastore. */ diff --git a/mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/infra/ManagedNewTransactionRunner.java b/mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/infra/ManagedNewTransactionRunner.java index ded965af3..5c3487d98 100644 --- a/mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/infra/ManagedNewTransactionRunner.java +++ b/mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/infra/ManagedNewTransactionRunner.java @@ -30,8 +30,11 @@ import org.opendaylight.mdsal.binding.api.WriteTransaction; *

This should typically be used (only) directly in code which really must be creating its own new transactions, * such as RPC entry points, or background jobs. Other lower level code "behind" such entry points should * just get handed over the transaction provided by this API. + * + * @deprecated Use {@link org.opendaylight.mdsal.binding.util.ManagedNewTransactionRunner} instead. */ @Beta +@Deprecated(forRemoval = true) public interface ManagedNewTransactionRunner extends ManagedTransactionFactory { /** diff --git a/mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/infra/ManagedNewTransactionRunnerImpl.java b/mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/infra/ManagedNewTransactionRunnerImpl.java index 4fa293a1d..978de5866 100644 --- a/mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/infra/ManagedNewTransactionRunnerImpl.java +++ b/mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/infra/ManagedNewTransactionRunnerImpl.java @@ -31,8 +31,11 @@ import org.slf4j.LoggerFactory; * Implementation of {@link ManagedNewTransactionRunner}. This is based on {@link ManagedTransactionFactoryImpl} but * re-implements operations based on (read-)write transactions to cancel transactions which don't end up making any * changes to the datastore. + * + * @deprecated Use {@link org.opendaylight.mdsal.binding.util.ManagedNewTransactionRunnerImpl} instead. */ @Beta +@Deprecated(forRemoval = true) // Do *NOT* mark this as @Singleton, because users choose Impl; and as long as this in API, because of https://wiki.opendaylight.org/view/BestPractices/DI_Guidelines#Nota_Bene public class ManagedNewTransactionRunnerImpl extends ManagedTransactionFactoryImpl implements ManagedNewTransactionRunner { diff --git a/mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/infra/ManagedTransactionChain.java b/mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/infra/ManagedTransactionChain.java index 00b4e09f3..e77699bca 100644 --- a/mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/infra/ManagedTransactionChain.java +++ b/mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/infra/ManagedTransactionChain.java @@ -10,6 +10,10 @@ package org.opendaylight.genius.infra; /** * Managed transaction chains provide managed semantics around transaction chains, i.e. chains which provide * transactions which are automatically submitted or cancelled. + * + * @deprecated Use {@link org.opendaylight.mdsal.binding.util.ManagedTransactionChain} instead. */ +@Deprecated public interface ManagedTransactionChain extends ManagedTransactionFactory { + } diff --git a/mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/infra/ManagedTransactionFactory.java b/mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/infra/ManagedTransactionFactory.java index 45644ba18..1cf72c58f 100644 --- a/mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/infra/ManagedTransactionFactory.java +++ b/mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/infra/ManagedTransactionFactory.java @@ -24,7 +24,10 @@ import org.opendaylight.mdsal.binding.api.WriteTransaction; /** * Managed transaction factories provide managed transactions, i.e. transactions which are automatically * submitted or cancelled (write) or closed (read). + * + * @deprecated Use {@link org.opendaylight.mdsal.binding.util.ManagedTransactionFactory} instead. */ +@Deprecated(forRemoval = true) public interface ManagedTransactionFactory { /** * Invokes a function with a NEW {@link TypedReadTransaction}, and ensures that that transaction is closed. diff --git a/mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/infra/RetryingManagedNewTransactionRunner.java b/mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/infra/RetryingManagedNewTransactionRunner.java index d2dc96709..7f282206f 100644 --- a/mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/infra/RetryingManagedNewTransactionRunner.java +++ b/mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/infra/RetryingManagedNewTransactionRunner.java @@ -41,8 +41,10 @@ import org.opendaylight.mdsal.common.api.ReadFailedException; * another {@link Executor} to be used for the retries by using the alternative constructor. * * @author Michael Vorburger.ch & Stephen Kitt + * @deprecated Use {@link org.opendaylight.mdsal.binding.util.RetryingManagedNewTransactionRunner} instead. */ @Beta +@Deprecated // Do *NOT* mark this as @Singleton, because users choose Impl; and as long as this in API, because of https://wiki.opendaylight.org/view/BestPractices/DI_Guidelines#Nota_Bene public class RetryingManagedNewTransactionRunner extends RetryingManagedNewTransactionRunnerImpl { diff --git a/mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/infra/TransactionAdapter.java b/mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/infra/TransactionAdapter.java index c3f893d1f..9cb6268b5 100644 --- a/mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/infra/TransactionAdapter.java +++ b/mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/infra/TransactionAdapter.java @@ -24,8 +24,10 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; *

The adapted transactions maintain the following constraints: they cannot be cancelled or * submitted (only the transaction manager can do this), and they cannot access a logical datastore * other than the one they were created for. + * + * @deprecated Use {@link org.opendaylight.mdsal.binding.util.TransactionAdapter} instead. */ -@Deprecated +@Deprecated(forRemoval = true) public final class TransactionAdapter { private TransactionAdapter() { diff --git a/mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/infra/TypedReadTransaction.java b/mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/infra/TypedReadTransaction.java index fce59a627..2097c6537 100644 --- a/mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/infra/TypedReadTransaction.java +++ b/mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/infra/TypedReadTransaction.java @@ -15,7 +15,6 @@ import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.yangtools.yang.binding.DataObject; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; - /** * Read transaction which is specific to a single logical datastore (configuration or operational). Designed for use * with {@link ManagedNewTransactionRunner} (it doesn’t support explicit cancel or commit operations). @@ -23,7 +22,9 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; * @see ReadTransaction * * @param The logical datastore handled by the transaction. + * @deprecated Use {@link org.opendaylight.mdsal.binding.util.TypedReadTransaction} instead. */ +@Deprecated(forRemoval = true) public interface TypedReadTransaction extends Transaction { /** diff --git a/mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/infra/TypedReadWriteTransaction.java b/mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/infra/TypedReadWriteTransaction.java index a3cee1ca3..810daf1a3 100644 --- a/mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/infra/TypedReadWriteTransaction.java +++ b/mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/infra/TypedReadWriteTransaction.java @@ -13,7 +13,9 @@ package org.opendaylight.genius.infra; * * @param The logical datastore handled by the transaction. * @see org.opendaylight.mdsal.binding.api.ReadWriteTransaction + * @deprecated Use {@link org.opendaylight.mdsal.binding.util.TypedReadWriteTransaction} instead. */ +@Deprecated(forRemoval = true) public interface TypedReadWriteTransaction extends TypedReadTransaction, TypedWriteTransaction { } diff --git a/mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/infra/TypedWriteTransaction.java b/mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/infra/TypedWriteTransaction.java index 37a5cfcdb..2c301a28b 100644 --- a/mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/infra/TypedWriteTransaction.java +++ b/mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/infra/TypedWriteTransaction.java @@ -19,7 +19,9 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; * * @param The logical datastore handled by the transaction. * @see WriteTransaction + * @deprecated Use {@link org.opendaylight.mdsal.binding.util.TypedWriteTransaction} instead. */ +@Deprecated(forRemoval = true) public interface TypedWriteTransaction extends Transaction { /** -- 2.36.6