From 356ac60051791b56cd28390356906810c0db6024 Mon Sep 17 00:00:00 2001 From: Tom Pantelis Date: Mon, 5 Mar 2018 21:34:04 -0500 Subject: [PATCH] Fix checkstyle violations in sal-dom-spi Change-Id: Ifc0955a9dcd162879681cb30ef925b05f37a1fd6 Signed-off-by: Tom Pantelis --- .../broker/spi/mount/SimpleDOMMountPoint.java | 16 +++--- .../broker/spi/rpc/RpcRoutingStrategy.java | 11 ++-- ...DOMDataTreeChangeListenerRegistration.java | 3 +- ...tractDOMRpcImplementationRegistration.java | 3 +- .../spi/AbstractDOMRpcProviderService.java | 3 +- .../sal/dom/spi/AbstractRegistrationTree.java | 3 +- .../DOMNotificationSubscriptionListener.java | 6 +- .../ForwardingDOMDataReadOnlyTransaction.java | 9 ++- ...ForwardingDOMDataReadWriteTransaction.java | 15 +++-- .../ForwardingDOMDataWriteTransaction.java | 6 +- ...rwardingDOMNotificationPublishService.java | 3 +- .../spi/ForwardingDOMRpcImplementation.java | 3 +- .../spi/ForwardingDOMRpcProviderService.java | 6 +- .../sal/dom/spi/ForwardingDOMRpcService.java | 3 +- .../controller/sal/core/spi/BrokerModule.java | 3 +- .../spi/data/AbstractDOMStoreTransaction.java | 2 + .../AbstractDOMStoreTreeChangePublisher.java | 55 ++++++++++++------- ...bstractSnapshotBackedTransactionChain.java | 37 ++++++++----- .../sal/core/spi/data/DOMStore.java | 18 +++--- .../spi/data/DOMStoreReadTransaction.java | 9 ++- .../data/DOMStoreThreePhaseCommitCohort.java | 1 + .../core/spi/data/DOMStoreTransaction.java | 10 ++-- .../spi/data/DOMStoreTransactionChain.java | 5 ++ .../spi/data/DOMStoreTransactionFactory.java | 21 +++---- .../spi/data/DOMStoreTreeChangePublisher.java | 8 ++- .../spi/data/DOMStoreWriteTransaction.java | 19 ++----- ...wardingDOMStoreThreePhaseCommitCohort.java | 3 +- .../data/SnapshotBackedReadTransaction.java | 10 ++-- .../SnapshotBackedReadWriteTransaction.java | 8 ++- .../spi/data/SnapshotBackedTransactions.java | 7 ++- .../data/SnapshotBackedWriteTransaction.java | 32 +++++++---- .../data/statistics/DOMStoreStatsTracker.java | 10 ++-- 32 files changed, 198 insertions(+), 150 deletions(-) diff --git a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/md/sal/dom/broker/spi/mount/SimpleDOMMountPoint.java b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/md/sal/dom/broker/spi/mount/SimpleDOMMountPoint.java index f696b20954..11d9cab1b8 100644 --- a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/md/sal/dom/broker/spi/mount/SimpleDOMMountPoint.java +++ b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/md/sal/dom/broker/spi/mount/SimpleDOMMountPoint.java @@ -8,25 +8,27 @@ package org.opendaylight.controller.md.sal.dom.broker.spi.mount; +import com.google.common.base.Optional; +import com.google.common.collect.ClassToInstanceMap; +import com.google.common.collect.ImmutableClassToInstanceMap; import org.opendaylight.controller.md.sal.dom.api.DOMMountPoint; import org.opendaylight.controller.md.sal.dom.api.DOMService; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.model.api.SchemaContext; -import com.google.common.base.Optional; -import com.google.common.collect.ClassToInstanceMap; -import com.google.common.collect.ImmutableClassToInstanceMap; - -public class SimpleDOMMountPoint implements DOMMountPoint { +public final class SimpleDOMMountPoint implements DOMMountPoint { private final YangInstanceIdentifier identifier; private final ClassToInstanceMap services; private final SchemaContext schemaContext; - public static final SimpleDOMMountPoint create(final YangInstanceIdentifier identifier, final ClassToInstanceMap services, final SchemaContext ctx) { + public static SimpleDOMMountPoint create(final YangInstanceIdentifier identifier, + final ClassToInstanceMap services, final SchemaContext ctx) { return new SimpleDOMMountPoint(identifier, services, ctx); } - private SimpleDOMMountPoint(final YangInstanceIdentifier identifier, final ClassToInstanceMap services, final SchemaContext ctx) { + + private SimpleDOMMountPoint(final YangInstanceIdentifier identifier, + final ClassToInstanceMap services, final SchemaContext ctx) { this.identifier = identifier; this.services = ImmutableClassToInstanceMap.copyOf(services); this.schemaContext = ctx; diff --git a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/md/sal/dom/broker/spi/rpc/RpcRoutingStrategy.java b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/md/sal/dom/broker/spi/rpc/RpcRoutingStrategy.java index f17de220d8..9c3191fb18 100644 --- a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/md/sal/dom/broker/spi/rpc/RpcRoutingStrategy.java +++ b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/md/sal/dom/broker/spi/rpc/RpcRoutingStrategy.java @@ -27,21 +27,20 @@ public abstract class RpcRoutingStrategy implements Identifiable { } /** - * Returns leaf QName in which RPC Route is stored - * + * Returns leaf QName in which RPC Route is stored. * * @return leaf QName in which RPC Route is stored * @throws UnsupportedOperationException If RPC is not content routed. - * ({@link #isContextBasedRouted()} returned false) + * ({@link #isContextBasedRouted()} returned false) */ public abstract QName getLeaf(); /** - * Returns identity QName which represents RPC Routing context + * Returns identity QName which represents RPC Routing context. * * @return identity QName which represents RPC Routing context * @throws UnsupportedOperationException If RPC is not content routed. - * ({@link #isContextBasedRouted()} returned false) + * ({@link #isContextBasedRouted()} returned false) */ public abstract QName getContext(); @@ -107,7 +106,7 @@ public abstract class RpcRoutingStrategy implements Identifiable { private static final class GlobalRpcStrategy extends RpcRoutingStrategy { - public GlobalRpcStrategy(final QName identifier) { + GlobalRpcStrategy(final QName identifier) { super(identifier); } diff --git a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/md/sal/dom/spi/AbstractDOMDataTreeChangeListenerRegistration.java b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/md/sal/dom/spi/AbstractDOMDataTreeChangeListenerRegistration.java index 803343802e..d1d4586adb 100644 --- a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/md/sal/dom/spi/AbstractDOMDataTreeChangeListenerRegistration.java +++ b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/md/sal/dom/spi/AbstractDOMDataTreeChangeListenerRegistration.java @@ -16,7 +16,8 @@ import org.opendaylight.yangtools.concepts.AbstractListenerRegistration; * * @param type of listener */ -public abstract class AbstractDOMDataTreeChangeListenerRegistration extends AbstractListenerRegistration { +public abstract class AbstractDOMDataTreeChangeListenerRegistration + extends AbstractListenerRegistration { protected AbstractDOMDataTreeChangeListenerRegistration(final T listener) { super(listener); } diff --git a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/md/sal/dom/spi/AbstractDOMRpcImplementationRegistration.java b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/md/sal/dom/spi/AbstractDOMRpcImplementationRegistration.java index f0ce2b69c7..895509c63f 100644 --- a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/md/sal/dom/spi/AbstractDOMRpcImplementationRegistration.java +++ b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/md/sal/dom/spi/AbstractDOMRpcImplementationRegistration.java @@ -14,7 +14,8 @@ import org.opendaylight.yangtools.concepts.AbstractObjectRegistration; /** * Abstract base class for {@link DOMRpcImplementationRegistration} implementations. */ -public abstract class AbstractDOMRpcImplementationRegistration extends AbstractObjectRegistration implements DOMRpcImplementationRegistration { +public abstract class AbstractDOMRpcImplementationRegistration + extends AbstractObjectRegistration implements DOMRpcImplementationRegistration { protected AbstractDOMRpcImplementationRegistration(final T instance) { super(instance); } diff --git a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/md/sal/dom/spi/AbstractDOMRpcProviderService.java b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/md/sal/dom/spi/AbstractDOMRpcProviderService.java index c1374264cc..31a114bcaa 100644 --- a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/md/sal/dom/spi/AbstractDOMRpcProviderService.java +++ b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/md/sal/dom/spi/AbstractDOMRpcProviderService.java @@ -18,7 +18,8 @@ import org.opendaylight.controller.md.sal.dom.api.DOMRpcProviderService; */ public abstract class AbstractDOMRpcProviderService implements DOMRpcProviderService { @Override - public final DOMRpcImplementationRegistration registerRpcImplementation(final T implementation, final DOMRpcIdentifier... types) { + public final DOMRpcImplementationRegistration registerRpcImplementation( + final T implementation, final DOMRpcIdentifier... types) { return registerRpcImplementation(implementation, ImmutableSet.copyOf(types)); } } diff --git a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/md/sal/dom/spi/AbstractRegistrationTree.java b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/md/sal/dom/spi/AbstractRegistrationTree.java index 0da140ee32..61e8e3a939 100644 --- a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/md/sal/dom/spi/AbstractRegistrationTree.java +++ b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/md/sal/dom/spi/AbstractRegistrationTree.java @@ -77,7 +77,8 @@ public abstract class AbstractRegistrationTree { * @param node Tree node * @param registration Registration instance */ - protected final void removeRegistration(@Nonnull final RegistrationTreeNode node, @Nonnull final T registration) { + protected final void removeRegistration(@Nonnull final RegistrationTreeNode node, + @Nonnull final T registration) { // Take the write lock rwLock.writeLock().lock(); try { diff --git a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/md/sal/dom/spi/DOMNotificationSubscriptionListener.java b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/md/sal/dom/spi/DOMNotificationSubscriptionListener.java index 85369da71a..802bb6f199 100644 --- a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/md/sal/dom/spi/DOMNotificationSubscriptionListener.java +++ b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/md/sal/dom/spi/DOMNotificationSubscriptionListener.java @@ -22,11 +22,9 @@ import org.opendaylight.yangtools.yang.model.api.SchemaPath; public interface DOMNotificationSubscriptionListener extends EventListener { /** - * Invoked when notification subscription changed + * Invoked when notification subscription changed. * - * @param currentTypes Set of notification types - * for which listeners are registered. + * @param currentTypes Set of notification types for which listeners are registered. */ void onSubscriptionChanged(Set currentTypes); - } diff --git a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/md/sal/dom/spi/ForwardingDOMDataReadOnlyTransaction.java b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/md/sal/dom/spi/ForwardingDOMDataReadOnlyTransaction.java index dcec6c3fab..4742099812 100644 --- a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/md/sal/dom/spi/ForwardingDOMDataReadOnlyTransaction.java +++ b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/md/sal/dom/spi/ForwardingDOMDataReadOnlyTransaction.java @@ -21,17 +21,20 @@ import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; * Utility {@link DOMDataReadOnlyTransaction} implementation which forwards all interface * method invocation to a delegate instance. */ -public abstract class ForwardingDOMDataReadOnlyTransaction extends ForwardingObject implements DOMDataReadOnlyTransaction { +public abstract class ForwardingDOMDataReadOnlyTransaction extends ForwardingObject + implements DOMDataReadOnlyTransaction { @Override protected abstract @Nonnull DOMDataReadOnlyTransaction delegate(); @Override - public CheckedFuture>, ReadFailedException> read(final LogicalDatastoreType store, final YangInstanceIdentifier path) { + public CheckedFuture>, ReadFailedException> read(final LogicalDatastoreType store, + final YangInstanceIdentifier path) { return delegate().read(store, path); } @Override - public CheckedFuture exists(final LogicalDatastoreType store, final YangInstanceIdentifier path) { + public CheckedFuture exists(final LogicalDatastoreType store, + final YangInstanceIdentifier path) { return delegate().exists(store, path); } diff --git a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/md/sal/dom/spi/ForwardingDOMDataReadWriteTransaction.java b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/md/sal/dom/spi/ForwardingDOMDataReadWriteTransaction.java index 923bef76f3..7b0bae76f3 100644 --- a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/md/sal/dom/spi/ForwardingDOMDataReadWriteTransaction.java +++ b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/md/sal/dom/spi/ForwardingDOMDataReadWriteTransaction.java @@ -25,17 +25,20 @@ import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; * Utility {@link DOMDataReadWriteTransaction} implementation which forwards all interface * method invocation to a delegate instance. */ -public abstract class ForwardingDOMDataReadWriteTransaction extends ForwardingObject implements DOMDataReadWriteTransaction { +public abstract class ForwardingDOMDataReadWriteTransaction extends ForwardingObject + implements DOMDataReadWriteTransaction { @Override protected abstract @Nonnull DOMDataReadWriteTransaction delegate(); @Override - public CheckedFuture>, ReadFailedException> read(final LogicalDatastoreType store, final YangInstanceIdentifier path) { + public CheckedFuture>, ReadFailedException> read(final LogicalDatastoreType store, + final YangInstanceIdentifier path) { return delegate().read(store, path); } @Override - public CheckedFuture exists(final LogicalDatastoreType store, final YangInstanceIdentifier path) { + public CheckedFuture exists(final LogicalDatastoreType store, + final YangInstanceIdentifier path) { return delegate().exists(store, path); } @@ -45,12 +48,14 @@ public abstract class ForwardingDOMDataReadWriteTransaction extends ForwardingOb } @Override - public void put(final LogicalDatastoreType store, final YangInstanceIdentifier path, final NormalizedNode data) { + public void put(final LogicalDatastoreType store, final YangInstanceIdentifier path, + final NormalizedNode data) { delegate().put(store, path, data); } @Override - public void merge(final LogicalDatastoreType store, final YangInstanceIdentifier path, final NormalizedNode data) { + public void merge(final LogicalDatastoreType store, final YangInstanceIdentifier path, + final NormalizedNode data) { delegate().merge(store, path, data); } diff --git a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/md/sal/dom/spi/ForwardingDOMDataWriteTransaction.java b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/md/sal/dom/spi/ForwardingDOMDataWriteTransaction.java index 2afb4786ce..e544ee8fd0 100644 --- a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/md/sal/dom/spi/ForwardingDOMDataWriteTransaction.java +++ b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/md/sal/dom/spi/ForwardingDOMDataWriteTransaction.java @@ -33,12 +33,14 @@ public abstract class ForwardingDOMDataWriteTransaction extends ForwardingObject } @Override - public void put(final LogicalDatastoreType store, final YangInstanceIdentifier path, final NormalizedNode data) { + public void put(final LogicalDatastoreType store, final YangInstanceIdentifier path, + final NormalizedNode data) { delegate().put(store, path, data); } @Override - public void merge(final LogicalDatastoreType store, final YangInstanceIdentifier path, final NormalizedNode data) { + public void merge(final LogicalDatastoreType store, final YangInstanceIdentifier path, + final NormalizedNode data) { delegate().merge(store, path, data); } diff --git a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/md/sal/dom/spi/ForwardingDOMNotificationPublishService.java b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/md/sal/dom/spi/ForwardingDOMNotificationPublishService.java index c9e6bccbd3..351e885722 100644 --- a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/md/sal/dom/spi/ForwardingDOMNotificationPublishService.java +++ b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/md/sal/dom/spi/ForwardingDOMNotificationPublishService.java @@ -17,7 +17,8 @@ import org.opendaylight.controller.md.sal.dom.api.DOMNotificationPublishService; * Utility implementations of {@link DOMNotificationPublishService} which forwards * all requests to a delegate instance. */ -public abstract class ForwardingDOMNotificationPublishService extends ForwardingObject implements DOMNotificationPublishService { +public abstract class ForwardingDOMNotificationPublishService extends ForwardingObject + implements DOMNotificationPublishService { @Override protected abstract DOMNotificationPublishService delegate(); diff --git a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/md/sal/dom/spi/ForwardingDOMRpcImplementation.java b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/md/sal/dom/spi/ForwardingDOMRpcImplementation.java index e93f9417d4..f7a21aaf71 100644 --- a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/md/sal/dom/spi/ForwardingDOMRpcImplementation.java +++ b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/md/sal/dom/spi/ForwardingDOMRpcImplementation.java @@ -25,7 +25,8 @@ public abstract class ForwardingDOMRpcImplementation extends ForwardingObject im protected abstract @Nonnull DOMRpcImplementation delegate(); @Override - public CheckedFuture invokeRpc(final DOMRpcIdentifier type, final NormalizedNode input) { + public CheckedFuture invokeRpc(final DOMRpcIdentifier type, + final NormalizedNode input) { return delegate().invokeRpc(type, input); } } diff --git a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/md/sal/dom/spi/ForwardingDOMRpcProviderService.java b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/md/sal/dom/spi/ForwardingDOMRpcProviderService.java index 99c4cad8a9..3e8b5a6f1d 100644 --- a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/md/sal/dom/spi/ForwardingDOMRpcProviderService.java +++ b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/md/sal/dom/spi/ForwardingDOMRpcProviderService.java @@ -24,12 +24,14 @@ public abstract class ForwardingDOMRpcProviderService extends ForwardingObject i protected abstract @Nonnull DOMRpcProviderService delegate(); @Override - public DOMRpcImplementationRegistration registerRpcImplementation(final T implementation, final DOMRpcIdentifier... types) { + public DOMRpcImplementationRegistration registerRpcImplementation( + final T implementation, final DOMRpcIdentifier... types) { return delegate().registerRpcImplementation(implementation, types); } @Override - public DOMRpcImplementationRegistration registerRpcImplementation(final T implementation, final Set types) { + public DOMRpcImplementationRegistration registerRpcImplementation( + final T implementation, final Set types) { return delegate().registerRpcImplementation(implementation, types); } } diff --git a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/md/sal/dom/spi/ForwardingDOMRpcService.java b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/md/sal/dom/spi/ForwardingDOMRpcService.java index 976d08623b..a9e87d05ca 100644 --- a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/md/sal/dom/spi/ForwardingDOMRpcService.java +++ b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/md/sal/dom/spi/ForwardingDOMRpcService.java @@ -26,7 +26,8 @@ public abstract class ForwardingDOMRpcService extends ForwardingObject implement protected abstract @Nonnull DOMRpcService delegate(); @Override - public CheckedFuture invokeRpc(final SchemaPath type, final NormalizedNode input) { + public CheckedFuture invokeRpc(final SchemaPath type, + final NormalizedNode input) { return delegate().invokeRpc(type, input); } diff --git a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/BrokerModule.java b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/BrokerModule.java index 670598d39e..21e41f9218 100644 --- a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/BrokerModule.java +++ b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/BrokerModule.java @@ -8,9 +8,8 @@ package org.opendaylight.controller.sal.core.spi; import java.util.Set; - -import org.opendaylight.controller.sal.core.api.BrokerService; import org.opendaylight.controller.sal.core.api.Broker.ConsumerSession; +import org.opendaylight.controller.sal.core.api.BrokerService; import org.opendaylight.controller.sal.core.api.Consumer.ConsumerFunctionality; import org.opendaylight.controller.sal.core.api.Provider.ProviderFunctionality; diff --git a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/AbstractDOMStoreTransaction.java b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/AbstractDOMStoreTransaction.java index fba643d8f9..4131efc65b 100644 --- a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/AbstractDOMStoreTransaction.java +++ b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/AbstractDOMStoreTransaction.java @@ -17,9 +17,11 @@ import javax.annotation.Nullable; /** * Abstract DOM Store Transaction. * + *

* Convenience super implementation of DOM Store transaction which provides * common implementation of {@link #toString()} and {@link #getIdentifier()}. * + *

* It can optionally capture the context where it was allocated. * * @param identifier type diff --git a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/AbstractDOMStoreTreeChangePublisher.java b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/AbstractDOMStoreTreeChangePublisher.java index 74938efcd7..670cbe8d67 100644 --- a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/AbstractDOMStoreTreeChangePublisher.java +++ b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/AbstractDOMStoreTreeChangePublisher.java @@ -26,22 +26,26 @@ import org.slf4j.LoggerFactory; /** * Abstract base class for {@link DOMStoreTreeChangePublisher} implementations. */ -public abstract class AbstractDOMStoreTreeChangePublisher extends AbstractRegistrationTree> implements DOMStoreTreeChangePublisher { +public abstract class AbstractDOMStoreTreeChangePublisher + extends AbstractRegistrationTree> + implements DOMStoreTreeChangePublisher { private static final Logger LOG = LoggerFactory.getLogger(AbstractDOMStoreTreeChangePublisher.class); /** - * Callback for subclass to notify specified registrations of a candidate at a specified path. This method is guaranteed - * to be only called from within {@link #processCandidateTree(DataTreeCandidate)}. + * Callback for subclass to notify specified registrations of a candidate at a specified path. This method is + * guaranteed to be only called from within {@link #processCandidateTree(DataTreeCandidate)}. * * @param registrations Registrations which are affected by the candidate node * @param path Path of changed candidate node. Guaranteed to match the path specified by the registration * @param node Candidate node */ - protected abstract void notifyListeners(@Nonnull Collection> registrations, @Nonnull YangInstanceIdentifier path, @Nonnull DataTreeCandidateNode node); + protected abstract void notifyListeners(@Nonnull Collection> + registrations, @Nonnull YangInstanceIdentifier path, @Nonnull DataTreeCandidateNode node); /** * Callback notifying the subclass that the specified registration is being closed and it's user no longer - * wishes to receive notifications. This notification is invoked while the {@link org.opendaylight.yangtools.concepts.ListenerRegistration#close()} + * wishes to receive notifications. This notification is invoked while the + * {@link org.opendaylight.yangtools.concepts.ListenerRegistration#close()} * method is executing. Subclasses can use this callback to properly remove any delayed notifications pending * towards the registration. * @@ -61,23 +65,26 @@ public abstract class AbstractDOMStoreTreeChangePublisher extends AbstractRegist return; } - try (final RegistrationTreeSnapshot> snapshot = takeSnapshot()) { + try (RegistrationTreeSnapshot> snapshot = takeSnapshot()) { lookupAndNotify(candidate.getRootPath().getPathArguments(), 0, snapshot.getRootNode(), candidate); } } @Override - public final AbstractDOMDataTreeChangeListenerRegistration registerTreeChangeListener(final YangInstanceIdentifier treeId, final L listener) { + public final AbstractDOMDataTreeChangeListenerRegistration + registerTreeChangeListener(final YangInstanceIdentifier treeId, final L listener) { // Take the write lock takeLock(); try { - final RegistrationTreeNode> node = findNodeFor(treeId.getPathArguments()); - final AbstractDOMDataTreeChangeListenerRegistration reg = new AbstractDOMDataTreeChangeListenerRegistration(listener) { - @Override - protected void removeRegistration() { - AbstractDOMStoreTreeChangePublisher.this.removeRegistration(node, this); - registrationRemoved(this); - } + final RegistrationTreeNode> node = + findNodeFor(treeId.getPathArguments()); + final AbstractDOMDataTreeChangeListenerRegistration reg = + new AbstractDOMDataTreeChangeListenerRegistration(listener) { + @Override + protected void removeRegistration() { + AbstractDOMStoreTreeChangePublisher.this.removeRegistration(node, this); + registrationRemoved(this); + } }; addRegistration(node, reg); @@ -88,16 +95,20 @@ public abstract class AbstractDOMStoreTreeChangePublisher extends AbstractRegist } } - private void lookupAndNotify(final List args, final int offset, final RegistrationTreeNode> node, final DataTreeCandidate candidate) { + private void lookupAndNotify(final List args, final int offset, + final RegistrationTreeNode> node, + final DataTreeCandidate candidate) { if (args.size() != offset) { final PathArgument arg = args.get(offset); - final RegistrationTreeNode> exactChild = node.getExactChild(arg); + final RegistrationTreeNode> exactChild = + node.getExactChild(arg); if (exactChild != null) { lookupAndNotify(args, offset + 1, exactChild, candidate); } - for (RegistrationTreeNode> c : node.getInexactChildren(arg)) { + for (RegistrationTreeNode> c : + node.getInexactChildren(arg)) { lookupAndNotify(args, offset + 1, c, candidate); } } else { @@ -105,7 +116,9 @@ public abstract class AbstractDOMStoreTreeChangePublisher extends AbstractRegist } } - private void notifyNode(final YangInstanceIdentifier path, final RegistrationTreeNode> regNode, final DataTreeCandidateNode candNode) { + private void notifyNode(final YangInstanceIdentifier path, + final RegistrationTreeNode> regNode, + final DataTreeCandidateNode candNode) { if (candNode.getModificationType() == ModificationType.UNMODIFIED) { LOG.debug("Skipping unmodified candidate {}", path); return; @@ -118,12 +131,14 @@ public abstract class AbstractDOMStoreTreeChangePublisher extends AbstractRegist for (DataTreeCandidateNode candChild : candNode.getChildNodes()) { if (candChild.getModificationType() != ModificationType.UNMODIFIED) { - final RegistrationTreeNode> regChild = regNode.getExactChild(candChild.getIdentifier()); + final RegistrationTreeNode> regChild = + regNode.getExactChild(candChild.getIdentifier()); if (regChild != null) { notifyNode(path.node(candChild.getIdentifier()), regChild, candChild); } - for (RegistrationTreeNode> rc : regNode.getInexactChildren(candChild.getIdentifier())) { + for (RegistrationTreeNode> rc : + regNode.getInexactChildren(candChild.getIdentifier())) { notifyNode(path.node(candChild.getIdentifier()), rc, candChild); } } diff --git a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/AbstractSnapshotBackedTransactionChain.java b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/AbstractSnapshotBackedTransactionChain.java index 383a0e5a46..f80c80001f 100644 --- a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/AbstractSnapshotBackedTransactionChain.java +++ b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/AbstractSnapshotBackedTransactionChain.java @@ -19,14 +19,15 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** - * Abstract implementation of the {@link DOMStoreTransactionChain} interface relying on {@link DataTreeSnapshot} supplier - * and backend commit coordinator. + * Abstract implementation of the {@link DOMStoreTransactionChain} interface relying on {@link DataTreeSnapshot} + * supplier and backend commit coordinator. * * @param transaction identifier type */ @Beta -public abstract class AbstractSnapshotBackedTransactionChain extends TransactionReadyPrototype implements DOMStoreTransactionChain { - private static abstract class State { +public abstract class AbstractSnapshotBackedTransactionChain extends TransactionReadyPrototype + implements DOMStoreTransactionChain { + private abstract static class State { /** * Allocate a new snapshot. * @@ -68,14 +69,16 @@ public abstract class AbstractSnapshotBackedTransactionChain extends Transact @Override protected DataTreeSnapshot getSnapshot(Object transactionId) { final DataTreeSnapshot ret = snapshot; - Preconditions.checkState(ret != null, "Could not get snapshot for transaction %s - previous transaction %s is not ready yet", + Preconditions.checkState(ret != null, + "Could not get snapshot for transaction %s - previous transaction %s is not ready yet", transactionId, transaction.getIdentifier()); return ret; } void setSnapshot(final DataTreeSnapshot snapshot) { final boolean success = SNAPSHOT_UPDATER.compareAndSet(this, null, snapshot); - Preconditions.checkState(success, "Transaction %s has already been marked as ready", transaction.getIdentifier()); + Preconditions.checkState(success, "Transaction %s has already been marked as ready", + transaction.getIdentifier()); } } @@ -115,8 +118,8 @@ public abstract class AbstractSnapshotBackedTransactionChain extends Transact } private boolean recordTransaction(final State expected, final DOMStoreWriteTransaction transaction) { - final State state = new Allocated(transaction); - return STATE_UPDATER.compareAndSet(this, expected, state); + final State localState = new Allocated(transaction); + return STATE_UPDATER.compareAndSet(this, expected, localState); } @Override @@ -172,7 +175,8 @@ public abstract class AbstractSnapshotBackedTransactionChain extends Transact if (allocated.getTransaction().equals(tx)) { final boolean success = STATE_UPDATER.compareAndSet(this, localState, idleState); if (!success) { - LOG.warn("Transaction {} aborted, but chain {} state already transitioned from {} to {}, very strange", + LOG.warn( + "Transaction {} aborted, but chain {} state already transitioned from {} to {}, very strange", tx, this, localState, state); } } @@ -190,7 +194,8 @@ public abstract class AbstractSnapshotBackedTransactionChain extends Transact if (localState instanceof Allocated) { final Allocated allocated = (Allocated)localState; final DOMStoreWriteTransaction transaction = allocated.getTransaction(); - Preconditions.checkState(tx.equals(transaction), "Mis-ordered ready transaction %s last allocated was %s", tx, transaction); + Preconditions.checkState(tx.equals(transaction), "Mis-ordered ready transaction %s last allocated was %s", + tx, transaction); allocated.setSnapshot(tree); } else { LOG.debug("Ignoring transaction {} readiness due to state {}", tx, localState); @@ -239,7 +244,8 @@ public abstract class AbstractSnapshotBackedTransactionChain extends Transact } if (!STATE_UPDATER.compareAndSet(this, localState, idleState)) { - LOG.debug("Transaction chain {} has already transitioned from {} to {}, not making it idle", this, localState, state); + LOG.debug("Transaction chain {} has already transitioned from {} to {}, not making it idle", + this, localState, state); } } @@ -249,7 +255,8 @@ public abstract class AbstractSnapshotBackedTransactionChain extends Transact * @param transaction Transaction which failed. * @param cause Failure cause */ - protected final void onTransactionFailed(final SnapshotBackedWriteTransaction transaction, final Throwable cause) { + protected final void onTransactionFailed(final SnapshotBackedWriteTransaction transaction, + final Throwable cause) { LOG.debug("Transaction chain {} failed on transaction {}", this, transaction, cause); state = FAILED; } @@ -283,7 +290,7 @@ public abstract class AbstractSnapshotBackedTransactionChain extends Transact * @param operationError Any previous error that could be reported through three phase commit * @return A {@link DOMStoreThreePhaseCommitCohort} cohort. */ - protected abstract DOMStoreThreePhaseCommitCohort createCohort(final SnapshotBackedWriteTransaction transaction, - final DataTreeModification modification, - final Exception operationError); + protected abstract DOMStoreThreePhaseCommitCohort createCohort(SnapshotBackedWriteTransaction transaction, + DataTreeModification modification, + Exception operationError); } diff --git a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/DOMStore.java b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/DOMStore.java index 7a51df9f56..238aeb9169 100644 --- a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/DOMStore.java +++ b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/DOMStore.java @@ -20,6 +20,7 @@ import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; * DOM Data Store provides transactional tree-like storage for YANG-modeled * entities described by YANG schema and represented by {@link NormalizedNode}. * + *

* Read and write access to stored data is provided only via transactions * created using {@link #newReadOnlyTransaction()}, * {@link #newWriteOnlyTransaction()} and {@link #newReadWriteTransaction()}, or @@ -29,12 +30,13 @@ import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; public interface DOMStore extends DOMStoreTransactionFactory { /** - * Registers {@link org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeListener} for Data Change callbacks which will - * be triggered on the change of provided subpath. What constitutes a change + * Registers {@link org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeListener} for Data Change + * callbacks which will be triggered on the change of provided subpath. What constitutes a change * depends on the @scope parameter. * * Listener upon registration receives an initial callback - * {@link AsyncDataChangeListener#onDataChanged(org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent)} + * {@link AsyncDataChangeListener#onDataChanged(org.opendaylight.controller.md.sal.common.api.data + * .AsyncDataChangeEvent)} * which contains stable view of data tree at the time of registration. * *  @param path Path (subtree identifier) on which client listener will be @@ -48,21 +50,19 @@ public interface DOMStore extends DOMStoreTransactionFactory { * registration / interest on receiving data changes. * */ - >> ListenerRegistration registerChangeListener( - YangInstanceIdentifier path, L listener, DataChangeScope scope); + >> ListenerRegistration + registerChangeListener(YangInstanceIdentifier path, L listener, DataChangeScope scope); /** - * * Creates new transaction chain. * + *

* Transactions in a chain need to be committed in sequence and each * transaction should see the effects of previous transactions as if they * happened. * - * See {@link DOMStoreTransactionChain} for more information. - * + * @see DOMStoreTransactionChain for more information. * @return Newly created transaction chain. */ DOMStoreTransactionChain createTransactionChain(); - } diff --git a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/DOMStoreReadTransaction.java b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/DOMStoreReadTransaction.java index 306891189a..ede5bae35b 100644 --- a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/DOMStoreReadTransaction.java +++ b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/DOMStoreReadTransaction.java @@ -7,17 +7,16 @@ */ package org.opendaylight.controller.sal.core.spi.data; +import com.google.common.base.Optional; +import com.google.common.util.concurrent.CheckedFuture; import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; -import com.google.common.base.Optional; -import com.google.common.util.concurrent.CheckedFuture; - public interface DOMStoreReadTransaction extends DOMStoreTransaction { /** - * Reads data from provided logical data store located at provided path + * Reads data from provided logical data store located at provided path. * * @param path * Path which uniquely identifies subtree which client want to @@ -37,8 +36,8 @@ public interface DOMStoreReadTransaction extends DOMStoreTransaction { /** * Checks if data is available in the logical data store located at provided path. - *

* + *

* Note: a successful result from this method makes no guarantee that a subsequent call to {@link #read} * will succeed. It is possible that the data resides in a data store on a remote node and, if that * node goes down or a network failure occurs, a subsequent read would fail. Another scenario is if diff --git a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/DOMStoreThreePhaseCommitCohort.java b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/DOMStoreThreePhaseCommitCohort.java index ec54e42cd7..db2afd0b06 100644 --- a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/DOMStoreThreePhaseCommitCohort.java +++ b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/DOMStoreThreePhaseCommitCohort.java @@ -36,6 +36,7 @@ public interface DOMStoreThreePhaseCommitCohort { /** * Initiates a pre-commit phase of associated transaction on datastore. * + *

* This message is valid only and only if and only if the participant responded * on {@link #canCommit()} call with positive response. * diff --git a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/DOMStoreTransaction.java b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/DOMStoreTransaction.java index b225576ba7..86679d304d 100644 --- a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/DOMStoreTransaction.java +++ b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/DOMStoreTransaction.java @@ -10,15 +10,15 @@ package org.opendaylight.controller.sal.core.spi.data; import org.opendaylight.yangtools.concepts.Identifiable; /** - * DOM Data Store transaction - * - * See {@link DOMStoreReadTransaction}, {@link DOMStoreWriteTransaction} and {@link DOMStoreReadWriteTransaction} - * for specific transaction types. + * DOM Data Store transaction. * + * @see DOMStoreReadTransaction + * @see DOMStoreWriteTransaction + * @see DOMStoreReadWriteTransaction */ public interface DOMStoreTransaction extends AutoCloseable, Identifiable { /** - * Unique identifier of the transaction + * Unique identifier of the transaction. */ @Override Object getIdentifier(); diff --git a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/DOMStoreTransactionChain.java b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/DOMStoreTransactionChain.java index b916fddca7..dfffd3ef40 100644 --- a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/DOMStoreTransactionChain.java +++ b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/DOMStoreTransactionChain.java @@ -19,10 +19,12 @@ public interface DOMStoreTransactionChain extends DOMStoreTransactionFactory, Au * Create a new read only transaction which will continue the chain. The * previous write transaction has to be either READY or CANCELLED. * + *

* If previous write transaction was already commited to data store, new * read-only transaction is same as obtained via {@link DOMStore#newReadOnlyTransaction()} * and contains merged result of previous one and current state of data store. * + *

* Otherwise read-only transaction presents isolated view as if previous read-write * transaction was successful. State which was introduced by other transactions * outside this transaction chain after creation of previous transaction is not visible. @@ -39,10 +41,12 @@ public interface DOMStoreTransactionChain extends DOMStoreTransactionFactory, Au * Create a new read write transaction which will continue the chain. The * previous read-write transaction has to be either COMMITED or CANCELLED. * + *

* If previous write transaction was already commited to data store, new * read-write transaction is same as obtained via {@link DOMStore#newReadWriteTransaction()} * and contains merged result of previous one and current state of data store. * + *

* Otherwise read-write transaction presents isolated view as if previous read-write * transaction was successful. State which was introduced by other transactions * outside this transaction chain after creation of previous transaction is not visible. @@ -71,6 +75,7 @@ public interface DOMStoreTransactionChain extends DOMStoreTransactionFactory, Au /** * Closes Transaction Chain. * + *

* Close method of transaction chain does not guarantee that * last alocated transaction is ready or was submitted. * diff --git a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/DOMStoreTransactionFactory.java b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/DOMStoreTransactionFactory.java index 433d575cd1..f33c0a4e58 100644 --- a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/DOMStoreTransactionFactory.java +++ b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/DOMStoreTransactionFactory.java @@ -16,8 +16,7 @@ package org.opendaylight.controller.sal.core.spi.data; * Underlying {@link DOMStore} or {@link DOMStoreTransactionChain}. * *

- * See {@link DOMStore} or {@link DOMStoreTransactionChain} for concrete - * variations of this factory. + * See DOMStore, DOMStoreTransactionChain for concrete variations of this factory. * *

* Note: This interface is used only to define common functionality @@ -28,15 +27,13 @@ package org.opendaylight.controller.sal.core.spi.data; public interface DOMStoreTransactionFactory { /** - * - * Creates a read only transaction + * Creates a read only transaction. * *

* Creates a new read-only transaction, which provides read access to * snapshot of current state. * - * See {@link DOMStoreReadTransaction} for more information. - * + * @see DOMStoreReadTransaction for more information. * @return new {@link DOMStoreReadTransaction} * @throws IllegalStateException * If state of factory prevents allocating new transaction. @@ -45,22 +42,18 @@ public interface DOMStoreTransactionFactory { DOMStoreReadTransaction newReadOnlyTransaction(); /** - * Creates write only transaction - * - *

- * See {@link DOMStoreWriteTransaction} for more information. + * Creates write only transaction. * + * @see DOMStoreWriteTransaction for more information. * @return new {@link DOMStoreWriteTransaction} * @throws IllegalStateException If state of factory prevents allocating new transaction. */ DOMStoreWriteTransaction newWriteOnlyTransaction(); /** - * Creates Read-Write transaction - * - *

- * See {@link DOMStoreReadWriteTransaction} for more information. + * Creates Read-Write transaction. * + * @see DOMStoreReadWriteTransaction for more information. * @return new {@link DOMStoreWriteTransaction} * @throws IllegalStateException If state of factory prevents allocating new transaction. */ diff --git a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/DOMStoreTreeChangePublisher.java b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/DOMStoreTreeChangePublisher.java index 5d75f88fb9..78bf7fbfd1 100644 --- a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/DOMStoreTreeChangePublisher.java +++ b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/DOMStoreTreeChangePublisher.java @@ -21,14 +21,16 @@ public interface DOMStoreTreeChangePublisher { * Registers a {@link DOMDataTreeChangeListener} to receive * notifications when data changes under a given path in the conceptual data * tree. + * *

* You are able to register for notifications for any node or subtree * which can be represented using {@link YangInstanceIdentifier}. - *

* + *

* You are able to register for data change notifications for a subtree or leaf * even if it does not exist. You will receive notification once that node is * created. + * *

* If there is any pre-existing data in data tree on path for which you are * registering, you will receive initial data change event, which will @@ -38,6 +40,7 @@ public interface DOMStoreTreeChangePublisher { * This method returns a {@link ListenerRegistration} object. To * "unregister" your listener for changes call the {@link ListenerRegistration#close()} * method on this returned object. + * *

* You MUST explicitly unregister your listener when you no longer want to receive * notifications. This is especially true in OSGi environments, where failure to @@ -52,5 +55,6 @@ public interface DOMStoreTreeChangePublisher { * your listener using {@link ListenerRegistration#close()} to stop * delivery of change events. */ - @Nonnull ListenerRegistration registerTreeChangeListener(@Nonnull YangInstanceIdentifier treeId, @Nonnull L listener); + @Nonnull ListenerRegistration registerTreeChangeListener( + @Nonnull YangInstanceIdentifier treeId, @Nonnull L listener); } diff --git a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/DOMStoreWriteTransaction.java b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/DOMStoreWriteTransaction.java index 1964fd41bd..3aaf006f37 100644 --- a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/DOMStoreWriteTransaction.java +++ b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/DOMStoreWriteTransaction.java @@ -17,14 +17,12 @@ public interface DOMStoreWriteTransaction extends DOMStoreTransaction { * operation, which is to say that whole subtree will be replaced by * specified path. * + *

* If you need add or merge of current object with specified use * {@link #merge(YangInstanceIdentifier, NormalizedNode)}. * - * - * @param path - * @param data - * Data object to be written - * + * @param path the path to write + * @param data data object to be written * @throws IllegalStateException * if the client code already sealed transaction and invoked * {@link #ready()} @@ -36,10 +34,8 @@ public interface DOMStoreWriteTransaction extends DOMStoreTransaction { * operation, which is to say that whole subtree will be replaced by * specified path. * - * @param path - * @param data - * Data object to be written - * + * @param path the path to write + * @param data data object to be written * @throws IllegalStateException * if the client code already sealed transaction and invoked * {@link #ready()} @@ -47,11 +43,9 @@ public interface DOMStoreWriteTransaction extends DOMStoreTransaction { void merge(YangInstanceIdentifier path, NormalizedNode data); /** - * * Deletes data and whole subtree located at provided path. * - * @param path - * Path to delete + * @param path path to delete * @throws IllegalStateException * if the client code already sealed transaction and invoked * {@link #ready()} @@ -59,7 +53,6 @@ public interface DOMStoreWriteTransaction extends DOMStoreTransaction { void delete(YangInstanceIdentifier path); /** - * * Seals transaction, and returns three-phase commit cohort associated * with this transaction and DOM Store to be coordinated by coordinator. * diff --git a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/ForwardingDOMStoreThreePhaseCommitCohort.java b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/ForwardingDOMStoreThreePhaseCommitCohort.java index 4c817dd73d..c6e70feef6 100644 --- a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/ForwardingDOMStoreThreePhaseCommitCohort.java +++ b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/ForwardingDOMStoreThreePhaseCommitCohort.java @@ -16,7 +16,8 @@ import com.google.common.util.concurrent.ListenableFuture; * which forward most of their functionality to a backend {@link #delegate()}. */ @Beta -public abstract class ForwardingDOMStoreThreePhaseCommitCohort extends ForwardingObject implements DOMStoreThreePhaseCommitCohort { +public abstract class ForwardingDOMStoreThreePhaseCommitCohort extends ForwardingObject + implements DOMStoreThreePhaseCommitCohort { @Override protected abstract DOMStoreThreePhaseCommitCohort delegate(); diff --git a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/SnapshotBackedReadTransaction.java b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/SnapshotBackedReadTransaction.java index 8a59149a02..688d1e37e7 100644 --- a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/SnapshotBackedReadTransaction.java +++ b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/SnapshotBackedReadTransaction.java @@ -22,16 +22,17 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** + * Implementation of read-only transaction backed by {@link DataTreeSnapshot}. * - * Implementation of read-only transaction backed by {@link DataTreeSnapshot} - * + *

* Implementation of read-only transaction backed by {@link DataTreeSnapshot} * which delegates most of its calls to similar methods provided by underlying snapshot. * * @param identifier type */ @Beta -public final class SnapshotBackedReadTransaction extends AbstractDOMStoreTransaction implements DOMStoreReadTransaction { +public final class SnapshotBackedReadTransaction extends AbstractDOMStoreTransaction + implements DOMStoreReadTransaction { private static final Logger LOG = LoggerFactory.getLogger(SnapshotBackedReadTransaction.class); private volatile DataTreeSnapshot stableSnapshot; @@ -55,6 +56,7 @@ public final class SnapshotBackedReadTransaction extends AbstractDOMStoreTran } @Override + @SuppressWarnings("checkstyle:IllegalCatch") public CheckedFuture>, ReadFailedException> read(final YangInstanceIdentifier path) { LOG.debug("Tx: {} Read: {}", getIdentifier(), path); checkNotNull(path, "Path must not be null."); @@ -66,7 +68,7 @@ public final class SnapshotBackedReadTransaction extends AbstractDOMStoreTran try { return Futures.immediateCheckedFuture(Optional.fromJavaUtil(snapshot.readNode(path))); - } catch (Exception e) { + } catch (RuntimeException e) { LOG.error("Tx: {} Failed Read of {}", getIdentifier(), path, e); return Futures.immediateFailedCheckedFuture(new ReadFailedException("Read failed",e)); } diff --git a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/SnapshotBackedReadWriteTransaction.java b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/SnapshotBackedReadWriteTransaction.java index 30abf878b3..2d938fee60 100644 --- a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/SnapshotBackedReadWriteTransaction.java +++ b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/SnapshotBackedReadWriteTransaction.java @@ -8,12 +8,12 @@ package org.opendaylight.controller.sal.core.spi.data; import static com.google.common.base.Preconditions.checkNotNull; + import com.google.common.annotations.Beta; import com.google.common.base.Optional; import com.google.common.util.concurrent.CheckedFuture; import com.google.common.util.concurrent.Futures; import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException; -import org.opendaylight.controller.sal.core.spi.data.SnapshotBackedWriteTransaction.TransactionReadyPrototype; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeSnapshot; @@ -27,7 +27,8 @@ import org.slf4j.LoggerFactory; * @param identifier type */ @Beta -public final class SnapshotBackedReadWriteTransaction extends SnapshotBackedWriteTransaction implements DOMStoreReadWriteTransaction { +public final class SnapshotBackedReadWriteTransaction extends SnapshotBackedWriteTransaction + implements DOMStoreReadWriteTransaction { private static final Logger LOG = LoggerFactory.getLogger(SnapshotBackedReadWriteTransaction.class); SnapshotBackedReadWriteTransaction(final T identifier, final boolean debug, @@ -36,6 +37,7 @@ public final class SnapshotBackedReadWriteTransaction extends SnapshotBackedW } @Override + @SuppressWarnings("checkstyle:IllegalCatch") public CheckedFuture>, ReadFailedException> read(final YangInstanceIdentifier path) { LOG.debug("Tx: {} Read: {}", getIdentifier(), path); checkNotNull(path, "Path must not be null."); @@ -43,7 +45,7 @@ public final class SnapshotBackedReadWriteTransaction extends SnapshotBackedW final Optional> result; try { result = readSnapshotNode(path); - } catch (Exception e) { + } catch (RuntimeException e) { LOG.error("Tx: {} Failed Read of {}", getIdentifier(), path, e); return Futures.immediateFailedCheckedFuture(new ReadFailedException("Read failed", e)); } diff --git a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/SnapshotBackedTransactions.java b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/SnapshotBackedTransactions.java index 927e224cec..a82a65ea7e 100644 --- a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/SnapshotBackedTransactions.java +++ b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/SnapshotBackedTransactions.java @@ -27,7 +27,8 @@ public final class SnapshotBackedTransactions { * @param debug Enable transaction debugging * @param snapshot Snapshot which will be modified. */ - public static SnapshotBackedReadTransaction newReadTransaction(final T identifier, final boolean debug, final DataTreeSnapshot snapshot) { + public static SnapshotBackedReadTransaction newReadTransaction(final T identifier, final boolean debug, + final DataTreeSnapshot snapshot) { return new SnapshotBackedReadTransaction<>(identifier, debug, snapshot); } @@ -39,8 +40,8 @@ public final class SnapshotBackedTransactions { * @param snapshot Snapshot which will be modified. * @param readyImpl Implementation of ready method. */ - public static SnapshotBackedReadWriteTransaction newReadWriteTransaction(final T identifier, final boolean debug, - final DataTreeSnapshot snapshot, final TransactionReadyPrototype readyImpl) { + public static SnapshotBackedReadWriteTransaction newReadWriteTransaction(final T identifier, + final boolean debug, final DataTreeSnapshot snapshot, final TransactionReadyPrototype readyImpl) { return new SnapshotBackedReadWriteTransaction<>(identifier, debug, snapshot, readyImpl); } diff --git a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/SnapshotBackedWriteTransaction.java b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/SnapshotBackedWriteTransaction.java index eaabb3a21f..b5afe6a80b 100644 --- a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/SnapshotBackedWriteTransaction.java +++ b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/SnapshotBackedWriteTransaction.java @@ -31,14 +31,17 @@ import org.slf4j.LoggerFactory; * @param Identifier type */ @Beta -public class SnapshotBackedWriteTransaction extends AbstractDOMStoreTransaction implements DOMStoreWriteTransaction { +public class SnapshotBackedWriteTransaction extends AbstractDOMStoreTransaction + implements DOMStoreWriteTransaction { private static final Logger LOG = LoggerFactory.getLogger(SnapshotBackedWriteTransaction.class); @SuppressWarnings("rawtypes") - private static final AtomicReferenceFieldUpdater READY_UPDATER = - AtomicReferenceFieldUpdater.newUpdater(SnapshotBackedWriteTransaction.class, TransactionReadyPrototype.class, "readyImpl"); + private static final AtomicReferenceFieldUpdater + READY_UPDATER = AtomicReferenceFieldUpdater.newUpdater(SnapshotBackedWriteTransaction.class, + TransactionReadyPrototype.class, "readyImpl"); @SuppressWarnings("rawtypes") - private static final AtomicReferenceFieldUpdater TREE_UPDATER = - AtomicReferenceFieldUpdater.newUpdater(SnapshotBackedWriteTransaction.class, DataTreeModification.class, "mutableTree"); + private static final AtomicReferenceFieldUpdater + TREE_UPDATER = AtomicReferenceFieldUpdater.newUpdater(SnapshotBackedWriteTransaction.class, + DataTreeModification.class, "mutableTree"); // non-null when not ready private volatile TransactionReadyPrototype readyImpl; @@ -54,6 +57,7 @@ public class SnapshotBackedWriteTransaction extends AbstractDOMStoreTransacti } @Override + @SuppressWarnings("checkstyle:IllegalCatch") public void write(final YangInstanceIdentifier path, final NormalizedNode data) { checkNotReady(); @@ -63,7 +67,7 @@ public class SnapshotBackedWriteTransaction extends AbstractDOMStoreTransacti try { tree.write(path, data); // FIXME: Add checked exception - } catch (Exception e) { + } catch (RuntimeException e) { LOG.error("Tx: {}, failed to write {}:{} in {}", getIdentifier(), path, data, tree, e); // Rethrow original ones if they are subclasses of RuntimeException // or Error @@ -74,6 +78,7 @@ public class SnapshotBackedWriteTransaction extends AbstractDOMStoreTransacti } @Override + @SuppressWarnings("checkstyle:IllegalCatch") public void merge(final YangInstanceIdentifier path, final NormalizedNode data) { checkNotReady(); @@ -83,7 +88,7 @@ public class SnapshotBackedWriteTransaction extends AbstractDOMStoreTransacti try { tree.merge(path, data); // FIXME: Add checked exception - } catch (Exception e) { + } catch (RuntimeException e) { LOG.error("Tx: {}, failed to write {}:{} in {}", getIdentifier(), path, data, tree, e); // Rethrow original ones if they are subclasses of RuntimeException // or Error @@ -94,6 +99,7 @@ public class SnapshotBackedWriteTransaction extends AbstractDOMStoreTransacti } @Override + @SuppressWarnings("checkstyle:IllegalCatch") public void delete(final YangInstanceIdentifier path) { checkNotReady(); @@ -103,7 +109,7 @@ public class SnapshotBackedWriteTransaction extends AbstractDOMStoreTransacti try { tree.delete(path); // FIXME: Add checked exception - } catch (Exception e) { + } catch (RuntimeException e) { LOG.error("Tx: {}, failed to delete {} in {}", getIdentifier(), path, tree, e); // Rethrow original ones if they are subclasses of RuntimeException // or Error @@ -124,12 +130,13 @@ public class SnapshotBackedWriteTransaction extends AbstractDOMStoreTransacti return readyImpl == null ? null : Optional.fromJavaUtil(mutableTree.readNode(path)); } - private final void checkNotReady() { + private void checkNotReady() { checkState(readyImpl != null, "Transaction %s is no longer open. No further modifications allowed.", getIdentifier()); } @Override + @SuppressWarnings("checkstyle:IllegalCatch") public DOMStoreThreePhaseCommitCohort ready() { @SuppressWarnings("unchecked") final TransactionReadyPrototype wasReady = READY_UPDATER.getAndSet(this, null); @@ -167,8 +174,8 @@ public class SnapshotBackedWriteTransaction extends AbstractDOMStoreTransacti } /** - * This class is intended to be implemented by Transaction factories - * responsible for allocation of {@link org.opendaylight.controller.sal.core.spi.data.SnapshotBackedWriteTransaction} and + * This class is intended to be implemented by Transaction factories responsible for allocation of + * {@link org.opendaylight.controller.sal.core.spi.data.SnapshotBackedWriteTransaction} and * providing underlying logic for applying implementation. * * @param identifier type @@ -180,11 +187,12 @@ public class SnapshotBackedWriteTransaction extends AbstractDOMStoreTransacti * * @param tx Transaction which got aborted. */ - protected abstract void transactionAborted(final SnapshotBackedWriteTransaction tx); + protected abstract void transactionAborted(SnapshotBackedWriteTransaction tx); /** * Returns a commit coordinator associated with supplied transactions. * + *

* This call must not fail. * * @param tx diff --git a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/statistics/DOMStoreStatsTracker.java b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/statistics/DOMStoreStatsTracker.java index 12713b2f45..44961070a5 100644 --- a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/statistics/DOMStoreStatsTracker.java +++ b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/statistics/DOMStoreStatsTracker.java @@ -9,9 +9,7 @@ package org.opendaylight.controller.sal.core.spi.data.statistics; import java.util.concurrent.ExecutorService; - import javax.annotation.Nonnull; - import org.opendaylight.yangtools.util.concurrent.QueuedNotificationManager; /** @@ -26,19 +24,19 @@ public interface DOMStoreStatsTracker { * * @param dclExecutor the executor */ - void setDataChangeListenerExecutor( @Nonnull ExecutorService dclExecutor ); + void setDataChangeListenerExecutor(@Nonnull ExecutorService dclExecutor); /** * Sets the executor used internally by the data store. * * @param dsExecutor the executor */ - void setDataStoreExecutor( @Nonnull ExecutorService dsExecutor ); + void setDataStoreExecutor(@Nonnull ExecutorService dsExecutor); /** - * Sets the QueuedNotificationManager use for DataChangeListener notifications, + * Sets the QueuedNotificationManager use for DataChangeListener notifications. * * @param manager the manager */ - void setNotificationManager( @Nonnull QueuedNotificationManager manager ); + void setNotificationManager(@Nonnull QueuedNotificationManager manager); } -- 2.36.6