Fix checkstyle violations 53/113953/1
authorRobert Varga <robert.varga@pantheon.tech>
Fri, 11 Oct 2024 14:53:02 +0000 (16:53 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Fri, 11 Oct 2024 15:36:33 +0000 (17:36 +0200)
Upgraded checkstyle is finding these, fix them up.

Change-Id: I5688232baf2b6ba5c19ef6784cb856522cce9ec6
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
76 files changed:
atomix-storage/src/main/java/io/atomix/storage/journal/Journal.java
atomix-storage/src/main/java/io/atomix/storage/journal/JournalSegmentDescriptor.java
atomix-storage/src/main/java/io/atomix/storage/journal/JournalSerdes.java
atomix-storage/src/main/java/io/atomix/storage/journal/SegmentedByteBufJournal.java
atomix-storage/src/main/java/io/atomix/storage/journal/SegmentedByteBufReader.java
opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/AbstractReadPathTransactionRequest.java
opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/AbstractReadTransactionRequest.java
opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ConnectClientRequest.java
opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/SkipTransactionsRequest.java
opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/concepts/Message.java
opendaylight/md-sal/cds-access-client/src/main/java/org/opendaylight/controller/cluster/access/client/AbstractClientConnection.java
opendaylight/md-sal/cds-access-client/src/main/java/org/opendaylight/controller/cluster/access/client/AbstractReceivingClientConnection.java
opendaylight/md-sal/cds-access-client/src/main/java/org/opendaylight/controller/cluster/access/client/AveragingProgressTracker.java
opendaylight/md-sal/cds-access-client/src/main/java/org/opendaylight/controller/cluster/access/client/BackendInfo.java
opendaylight/md-sal/cds-access-client/src/main/java/org/opendaylight/controller/cluster/access/client/BackendInfoResolver.java
opendaylight/md-sal/cds-access-client/src/main/java/org/opendaylight/controller/cluster/access/client/ClientActorBehavior.java
opendaylight/md-sal/cds-access-client/src/main/java/org/opendaylight/controller/cluster/access/client/ClientActorContext.java
opendaylight/md-sal/cds-access-client/src/main/java/org/opendaylight/controller/cluster/access/client/TransmitQueue.java
opendaylight/md-sal/eos-dom-akka/src/main/java/org/opendaylight/controller/eos/akka/DataCenterControl.java
opendaylight/md-sal/sal-akka-raft-example/src/main/java/org/opendaylight/controller/cluster/example/ExampleRoleChangeListener.java
opendaylight/md-sal/sal-akka-raft-example/src/main/java/org/opendaylight/controller/cluster/example/TestDriver.java
opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/DefaultConfigParamsImpl.java
opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/ElectionTerm.java
opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/RaftActor.java
opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/RaftActorLeadershipTransferCohort.java
opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/ReplicatedLog.java
opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/TimedRunnable.java
opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/behaviors/AbstractLeader.java
opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/behaviors/Candidate.java
opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/behaviors/IsolatedLeader.java
opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/behaviors/Leader.java
opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/behaviors/PreLeader.java
opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/client/messages/FindLeader.java
opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/client/messages/FindLeaderReply.java
opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/messages/Payload.java
opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/policy/RaftPolicy.java
opendaylight/md-sal/sal-akka-segmented-journal/src/main/java/org/opendaylight/controller/akka/segjournal/DataJournalEntrySerdes.java
opendaylight/md-sal/sal-akka-segmented-journal/src/main/java/org/opendaylight/controller/akka/segjournal/SegmentedJournalActor.java
opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/common/actor/MessageTracker.java
opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/common/actor/MeteringBehavior.java
opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/common/actor/UnifiedConfig.java
opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/io/ChunkedOutputStream.java
opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/messaging/SliceOptions.java
opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/notifications/RoleChangeNotifier.java
opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/reporting/MetricsReporter.java
opendaylight/md-sal/sal-common-util/src/main/java/org/opendaylight/controller/md/sal/common/util/jmx/AbstractMXBean.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/AbstractDataStoreClientBehavior.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/AbstractProxyTransaction.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/AbstractShardBackendResolver.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/ClientLocalHistory.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/ClientTransaction.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/DataStoreClient.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/EmptyTransactionCommitCohort.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/LocalAbortable.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/LocalProxyTransaction.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/LocalReadWriteProxyTransaction.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/ModuleShardBackendResolver.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/RemoteProxyTransaction.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/VotingFuture.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/AbstractShardDataTreeTransaction.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/Shard.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTree.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/modification/CompositeModification.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/modification/Modification.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/AbstractIdentifiablePayload.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/PayloadVersion.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/ShardDataTreeSnapshotMetadata.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/shardstrategy/ShardStrategy.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/utils/UnsignedLongBitmap.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/utils/UnsignedLongSet.java
opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/OpsInvoker.java
opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/registry/ActionRegistry.java
opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/registry/RpcRegistry.java
opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/registry/gossip/BucketStoreActor.java
opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/registry/gossip/Gossiper.java
raft-journal/src/main/java/org/opendaylight/controller/raft/journal/RaftJournal.java

index 996c0832030844610067a71e6ad129b98642f74d..867497c3444d2ca25dd71dbb07a4dc703ce3ef65 100644 (file)
@@ -64,10 +64,7 @@ public interface Journal<E> extends AutoCloseable {
     JournalReader<E> openReader(long index, Mode mode);
 
     /**
-     * Compacts the journal up to the given index.
-     *
-     * <p>
-     * The semantics of compaction are not specified by this interface.
+     * Compacts the journal up to the given index. The semantics of compaction are not specified by this interface.
      *
      * @param index The index up to which to compact the journal.
      */
index 74fae698726e1b59beb125ab4f1b3392b9b86276..b7f8949af527f5b02af8657fee6c0862ef731e7d 100644 (file)
@@ -23,11 +23,9 @@ import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.jdt.annotation.Nullable;
 
 /**
- * Stores information about a {@link JournalSegment} of the log.
- *
- * <p>
- * The segment descriptor manages metadata related to a single segment of the log. Descriptors are stored within the
- * first {@code 64} bytes of each segment in the following order:
+ * Stores information about a {@link JournalSegment} of the log. The segment descriptor manages metadata related to a
+ * single segment of the log. Descriptors are stored within the first {@code 64} bytes of each segment in the following
+ * order:
  * <ul>
  *   <li>{@code id} (64-bit signed integer) - A unique segment identifier. This is a monotonically increasing number
  *       within each log. Segments with in-sequence identifiers should contain in-sequence indexes.</li>
@@ -93,10 +91,7 @@ public record JournalSegmentDescriptor(
     }
 
     /**
-     * Returns the segment version.
-     *
-     * <p>
-     * Versions are monotonically increasing starting at {@code 1}.
+     * Returns the segment version. Versions are monotonically increasing starting at {@code 1}.
      *
      * @return The segment version.
      */
@@ -105,11 +100,8 @@ public record JournalSegmentDescriptor(
     }
 
     /**
-     * Returns the segment identifier.
-     *
-     * <p>
-     * The segment ID is a monotonically increasing number within each log. Segments with in-sequence identifiers should
-     * contain in-sequence indexes.
+     * Returns the segment identifier. The segment ID is a monotonically increasing number within each log. Segments
+     * with in-sequence identifiers should contain in-sequence indexes.
      *
      * @return The segment identifier.
      */
@@ -118,11 +110,8 @@ public record JournalSegmentDescriptor(
     }
 
     /**
-     * Returns the segment index.
-     *
-     * <p>
-     * The index indicates the index at which the first entry should be written to the segment. Indexes are
-     * monotonically increasing thereafter.
+     * Returns the segment index. The index indicates the index at which the first entry should be written to the
+     * segment. Indexes are monotonically increasing thereafter.
      *
      * @return The segment index.
      */
@@ -151,8 +140,7 @@ public record JournalSegmentDescriptor(
     /**
      * Returns last time the segment was updated.
      *
-     * <p>
-     * When the segment is first constructed, the {@code updated} time is {@code 0}. Once all entries in the segment
+     * <p>When the segment is first constructed, the {@code updated} time is {@code 0}. Once all entries in the segment
      * have been committed, the {@code updated} time should be set to the current time. Log compaction should not result
      * in a change to {@code updated}.
      *
@@ -181,10 +169,8 @@ public record JournalSegmentDescriptor(
     }
 
     /**
-     * Returns a descriptor builder.
-     *
-     * <p>
-     * The descriptor builder will write segment metadata to a {@code 48} byte in-memory buffer.
+     * Returns a descriptor builder. The descriptor builder will write segment metadata to a {@code 48} byte in-memory
+     * buffer.
      *
      * @return The descriptor builder.
      */
index cb9d3614bd1f48834f966ec9c4f5229b36b9f618..180decf34f33df276b43f9b465dd4c414300c4c6 100644 (file)
@@ -192,8 +192,7 @@ public interface JournalSerdes {
         /**
          * Registers serializer for the given set of classes.
          *
-         * <p>
-         * When multiple classes are registered with an explicitly provided serializer, the namespace guarantees
+         * <p>When multiple classes are registered with an explicitly provided serializer, the namespace guarantees
          * all instances will be serialized with the same type ID.
          *
          * @param classes list of classes to register
index ad4b1801e10669ae93df6b78a9eb23974842c4cd..0e1484177081925f7557ad81881875267c976cb9 100644 (file)
@@ -566,13 +566,11 @@ public final class SegmentedByteBufJournal implements RaftJournal {
         /**
          * Sets the maximum number of allows entries per segment, returning the builder for method chaining.
          *
-         * <p>
-         * The maximum entry count dictates when logs should roll over to new segments. As entries are written to a
+         * <p>The maximum entry count dictates when logs should roll over to new segments. As entries are written to a
          * segment of the log, if the entry count in that segment meets the configured maximum entry count, the log will
          * create a new segment and append new entries to that segment.
          *
-         * <p>
-         * By default, the maximum entries per segment is {@code 1024 * 1024}.
+         * <p>By default, the maximum entries per segment is {@code 1024 * 1024}.
          *
          * @param maxEntriesPerSegment The maximum number of entries allowed per segment.
          * @return The storage builder.
@@ -593,8 +591,7 @@ public final class SegmentedByteBufJournal implements RaftJournal {
         /**
          * Sets the journal index density.
          *
-         * <p>
-         * The index density is the frequency at which the position of entries written to the journal will be
+         * <p>The index density is the frequency at which the position of entries written to the journal will be
          * recorded in an in-memory index for faster seeking.
          *
          * @param indexDensity the index density
@@ -611,8 +608,7 @@ public final class SegmentedByteBufJournal implements RaftJournal {
         /**
          * Enables flushing buffers to disk when entries are committed to a segment.
          *
-         * <p>
-         * When flush-on-commit is enabled, log entry buffers will be automatically flushed to disk each time
+         * <p>When flush-on-commit is enabled, log entry buffers will be automatically flushed to disk each time
          * an entry is committed in a given segment.
          *
          * @return The builder instance
@@ -624,8 +620,7 @@ public final class SegmentedByteBufJournal implements RaftJournal {
         /**
          * Sets whether to flush buffers to disk when entries are committed to a segment.
          *
-         * <p>
-         * When flush-on-commit is enabled, log entry buffers will be automatically flushed to disk each time
+         * <p>When flush-on-commit is enabled, log entry buffers will be automatically flushed to disk each time
          * an entry is committed in a given segment.
          *
          * @param flushOnCommit Whether to flush buffers to disk when entries are committed to a segment.
index 7f7a903f57a4aa3a8a39f9f6039c4f3516f66ea0..9fc5f3e63cdc75ebd3eb52c920022fdcb42eb666 100644 (file)
@@ -112,8 +112,7 @@ sealed class SegmentedByteBufReader implements EntryReader permits SegmentedComm
      * Attempt to read the next entry. {@code index} here is really {@code nextIndex} passed by callers, which already
      * check it for invariants. If non-null is returned, {@code nextIndex} has already been set to {@code index + 1}.
      *
-     * <p>
-     * This method is shared between 'all entries' and 'committed entries only' variants. The distinction is made by
+     * <p>This method is shared between 'all entries' and 'committed entries only' variants. The distinction is made by
      * an additional check in {@link SegmentedCommitsByteBufReader#tryAdvance(long)}.
      *
      * @param index next index
index 2b4ee0e7e8dd2ef8ffaa7a2e9b69a1783668b257..3d5d45e1b3310af20e7a053d110bee6aebaedce4 100644 (file)
@@ -24,9 +24,8 @@ import org.opendaylight.yangtools.yang.data.codec.binfmt.NormalizedNodeDataInput
  * Abstract base class for {@link TransactionRequest}s accessing data as visible in the isolated context of a particular
  * transaction. The path of the data being accessed is returned via {@link #getPath()}.
  *
- * <p>
- * This class is visible outside of this package for the purpose of allowing common instanceof checks
- * and simplified codepaths.
+ * <p>This class is visible outside of this package for the purpose of allowing common instanceof checks and simplified
+ * codepaths.
  *
  * @param <T> Message type
  */
index 23fdd85140db711919672496df7cb10745af7c4a..44533eb36e06180ec7aeccc88ad1b1eea1970bdd 100644 (file)
@@ -19,9 +19,8 @@ import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier
 /**
  * Abstract base class for {@link TransactionRequest}s accessing transaction state without modifying it.
  *
- * <p>
- * This class is visible outside of this package for the purpose of allowing common instanceof checks
- * and simplified codepaths.
+ * <p>This class is visible outside of this package for the purpose of allowing common instanceof checks and simplified
+ * codepaths.
  *
  * @param <T> Message type
  */
index 953fafefa89078871c7c207100199f5779af6f22..c5f3153c3794d7b91b0c32f4448fbb70fc0cc6f5 100644 (file)
@@ -22,12 +22,13 @@ import org.opendaylight.controller.cluster.access.concepts.RequestException;
 
 /**
  * Request to connect a frontend instance to the backend. It carries basic information about the frontend:
- * - its coordinates in {@link #getReplyTo()}.
- * - its minimum supported ABI version
- * - its maximum supported ABI version
+ * <ul>
+ *   <li>its coordinates in {@link #getReplyTo()}</li>
+ *   <li>its minimum supported ABI version</li>
+ *   <li>its maximum supported ABI version</li>
+ * </ul>
  *
- * <p>
- * It also includes request stream sequencing information.
+ * <p>It also includes request stream sequencing information.
  */
 public final class ConnectClientRequest extends Request<ClientIdentifier, ConnectClientRequest> {
     interface SerialForm extends Request.SerialForm<ClientIdentifier, ConnectClientRequest> {
index a2c037f784753ca19babfad0e6416888c3f8248c..63e5cc43b6267c25b02e80c40ead98aa3d983e46 100644 (file)
@@ -26,8 +26,7 @@ import org.opendaylight.yangtools.concepts.WritableObjects;
  * equivalent to {@link TransactionPurgeRequest} for {@link #getTarget()}, but also carries additional sibling
  * {@link TransactionIdentifier}s in {@link #getOthers()}.
  *
- * <p>
- * This request is sent by the frontend to inform the backend that a set of {@link TransactionIdentifier}s are
+ * <p>This request is sent by the frontend to inform the backend that a set of {@link TransactionIdentifier}s are
  * explicitly retired and are guaranteed to never be used by the frontend.
  */
 public final class SkipTransactionsRequest extends TransactionRequest<SkipTransactionsRequest> {
index 9748264e7fc0144bd2e9780599418600f2c28ae3..b57dc96fb8d6c23bdc08a137de42ea2478c428a4 100644 (file)
@@ -33,28 +33,23 @@ import org.opendaylight.yangtools.concepts.WritableObjects;
  * An abstract concept of a Message. This class cannot be instantiated directly, use its specializations {@link Request}
  * and {@link Response}.
  *
- * <p>
- * Messages have a target and a sequence number. Sequence numbers are expected to be assigned monotonically on a
+ * <p>Messages have a target and a sequence number. Sequence numbers are expected to be assigned monotonically on a
  * per-target basis, hence two targets can observe the same sequence number.
  *
- * <p>
- * This class includes explicit versioning for forward- and backward- compatibility of serialization format. This is
+ * <p>This class includes explicit versioning for forward- and backward- compatibility of serialization format. This is
  * achieved by using the serialization proxy pattern. Subclasses are in complete control of what proxy is used to
  * serialize a particular object on the wire. This class can serve as an explicit version marker, hence no further
  * action is necessary in the deserialization path.
  *
- * <p>
- * For the serialization path an explicit call from the user is required to select the appropriate serialization
+ * <p>For the serialization path an explicit call from the user is required to select the appropriate serialization
  * version. This is done via {@link #toVersion(ABIVersion)} method, which should return a copy of this object with
  * the requested ABI version recorded and should return the appropriate serialization proxy.
  *
- * <p>
- * This workflow allows least disturbance across ABI versions, as all messages not affected by a ABI version bump
+ * <p>This workflow allows least disturbance across ABI versions, as all messages not affected by a ABI version bump
  * will remain working with the same serialization format for the new ABI version.
  *
- * <p>
- * Note that this class specifies the {@link Immutable} contract, which means that all subclasses must follow this API
- * contract.
+ * <p>Note that this class specifies the {@link Immutable} contract, which means that all subclasses must follow this
+ * API contract.
  *
  * @param <T> Target identifier type
  * @param <C> Message type
index 9b82d3cb250411e6903c2c993e476e0d42d18f76..4c875c1acb597bc2deafdaadb0327761d858b8cf 100644 (file)
@@ -162,8 +162,7 @@ public abstract sealed class AbstractClientConnection<T extends BackendInfo>
      * Send a request to the backend and invoke a specified callback when it finishes. This method is safe to invoke
      * from any thread.
      *
-     * <p>
-     * Note that unlike {@link #sendRequest(Request, Consumer)}, this method does not exert backpressure, hence it
+     * <p>Note that unlike {@link #sendRequest(Request, Consumer)}, this method does not exert backpressure, hence it
      * should never be called from an application thread and serves mostly for moving requests between queues.
      *
      * @param request Request to send
index ff4f0147883e60d54cdc73e5a02799a137959c0a..e63a784b939689e458757c1f964eb745a0bb6d6e 100644 (file)
@@ -28,8 +28,7 @@ abstract sealed class AbstractReceivingClientConnection<T extends BackendInfo> e
      * rate-limiting strategy in {@link AveragingProgressTracker} does not penalize threads as long as we have not
      * reached half of the target.
      *
-     * <p>
-     * By multiplying the advertised maximum by four, our queue steady-state should end up with:
+     * <p>By multiplying the advertised maximum by four, our queue steady-state should end up with:
      * - the backend pipeline being full,
      * - another full batch of messages being in the queue while not paying any throttling cost
      * - another 2 full batches of messages with incremental throttling cost
index 965fad150df1fb8b091c2257bce122ae4bb3ce57..1c701c8a62042b547f1e796558ce13c1661d8aa7 100644 (file)
@@ -5,7 +5,6 @@
  * 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.controller.cluster.access.client;
 
 import java.util.concurrent.TimeUnit;
@@ -23,8 +22,7 @@ import java.util.concurrent.TimeUnit;
  * <p>On the other hand, there is no delay when number of open tasks is half the limit or less,
  * in order to prevent backend from running out of tasks while there may be waiting frontend threads.
  *
- * <p>
- * This class is NOT thread-safe.
+ * <p>This class is NOT thread-safe.
  *
  * @author Vratko Polak
  */
index 891de52fb5a48ecf9b132f7d55c80ced68b6b047..2264a8d25d50f2a4bef4b11d5272c306f1df2fa6 100644 (file)
@@ -19,12 +19,9 @@ import org.opendaylight.controller.cluster.access.ABIVersion;
  * Basic information about how to talk to the backend. ClientActorBehavior uses this information to dispatch requests
  * to the backend.
  *
- * <p>
- * This class is not final so concrete actor behavior implementations may subclass it and track more information about
- * the backend. The {@link #hashCode()} and {@link #equals(Object)} methods are made final to ensure subclasses compare
- * on object identity.
- *
- * @author Robert Varga
+ * <p>This class is not final so concrete actor behavior implementations may subclass it and track more information
+ * about the backend. The {@link #hashCode()} and {@link #equals(Object)} methods are made final to ensure subclasses
+ * compare on object identity.
  */
 public class BackendInfo {
     private final ABIVersion version;
index 5c5cda5bae0b8f7eb2e4bb02bd827e47c234c07b..1f53bf361d97de30f1085e56bbb04b552814b044 100644 (file)
@@ -19,14 +19,11 @@ import org.opendaylight.yangtools.concepts.Registration;
  * by either the client actor (when a message timeout is detected) and by the specific frontend (on explicit
  * invalidation or when updated information becomes available).
  *
- * <p>
- * If the completion stage returned by this interface's methods fails with a
+ * <p>If the completion stage returned by this interface's methods fails with a
  * {@link org.opendaylight.controller.cluster.access.concepts.RequestException}, it will be forwarded to all
  * outstanding requests towards the leader. If it fails with a {@link java.util.concurrent.TimeoutException},
  * resolution process will be retried. If it fails with any other cause, it will we wrapped as a
  * {@link org.opendaylight.controller.cluster.access.concepts.RuntimeRequestException} wrapping that cause.
- *
- * @author Robert Varga
  */
 public abstract class BackendInfoResolver<T extends BackendInfo> implements AutoCloseable {
     /**
@@ -61,5 +58,6 @@ public abstract class BackendInfoResolver<T extends BackendInfo> implements Auto
 
     @Override
     public void close() {
+        // No-op by default
     }
 }
index 9d5b6dac5cc914ab2f28c84fb9fe677e49f82ff8..3881661e640d138e91e2c60fa9b139e7516c8b4c 100644 (file)
@@ -70,8 +70,7 @@ public abstract class ClientActorBehavior<T extends BackendInfo> extends
      * during connection transitions. Optimistic read-side of the lock is taken when new connections are introduced
      * into the map.
      *
-     * <p>
-     * The lock detects potential AB/BA deadlock scenarios and will force the reader side out by throwing
+     * <p>The lock detects potential AB/BA deadlock scenarios and will force the reader side out by throwing
      * a {@link InversibleLockException} -- which must be propagated up, releasing locks as it propagates. The initial
      * entry point causing the the conflicting lookup must then call {@link InversibleLockException#awaitResolution()}
      * before retrying the operation.
index abebf02197965fc7b46ccca446009ec208e8b655..f35f5efd2ddb3537d3de25bcee76d7e68065fa2a 100644 (file)
@@ -27,8 +27,7 @@ import scala.concurrent.duration.FiniteDuration;
 /**
  * An actor context associated with this {@link AbstractClientActor}.
  *
- * <p>
- * Time-keeping in a client actor is based on monotonic time. The precision of this time can be expected to be the
+ * <p>Time-keeping in a client actor is based on monotonic time. The precision of this time can be expected to be the
  * same as {@link System#nanoTime()}, but it is not tied to that particular clock. Actor clock is exposed as
  * a {@link Ticker}, which can be obtained via {@link #ticker()}. This class is thread-safe.
  */
index cc3da1e4503118ed5a064ceeb60fd34c4fe9e12d..1a811406915c76d8f40b6d3265ba19c71a541c5d 100644 (file)
@@ -36,23 +36,19 @@ import org.slf4j.LoggerFactory;
  * This queue is internally split into two queues for performance reasons, both memory efficiency and copy
  * operations.
  *
- * <p>
- * Entries are always appended to the end, but then they are transmitted to the remote end and do not necessarily
- * complete in the order in which they were sent -- hence the head of the queue does not increase linearly,
- * but can involve spurious removals of non-head entries.
+ * <p>Entries are always appended to the end, but then they are transmitted to the remote end and do not necessarily
+ * complete in the order in which they were sent -- hence the head of the queue does not increase linearly, but can
+ * involve spurious removals of non-head entries.
  *
- * <p>
- * For memory efficiency we want to pre-allocate both queues -- which points to ArrayDeque, but that is very
- * inefficient when entries are removed from the middle. In the typical case we expect the number of in-flight
- * entries to be an order of magnitude lower than the number of enqueued entries, hence the split.
+ * <p>For memory efficiency we want to pre-allocate both queues -- which points to ArrayDeque, but that is very
+ * inefficient when entries are removed from the middle. In the typical case we expect the number of in-flight entries
+ * to be an order of magnitude lower than the number of enqueued entries, hence the split.
  *
- * <p>
- * Note that in transient case of reconnect, when the backend gives us a lower number of maximum in-flight entries
+ * <p>Note that in transient case of reconnect, when the backend gives us a lower number of maximum in-flight entries
  * than the previous incarnation, we may end up still moving the pending queue -- but that is a very exceptional
  * scenario, hence we consciously ignore it to keep the design relatively simple.
  *
- * <p>
- * This class is not thread-safe, as it is expected to be guarded by {@link AbstractClientConnection}.
+ * <p>This class is not thread-safe, as it is expected to be guarded by {@link AbstractClientConnection}.
  */
 abstract sealed class TransmitQueue {
     static final class Halted extends TransmitQueue {
index f70abc9a860690846fb01f4cbdaf9ff50c612e68..3055a80dba5a682aec14bdfff318983fd8a7ecaf 100644 (file)
@@ -12,15 +12,14 @@ import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.common.Empty;
 
 /**
- * Service used to bring up/down the Entity Ownership Service service in individual datacenters.
- * Active datacenter in native eos terms means that the candidates from this datacenter can become owners of entities.
- * Additionally the singleton component makings ownership decisions, runs only in an active datacenter.
+ * Service used to bring up/down the Entity Ownership Service service in individual datacenters. Active datacenter
+ * in native eos terms means that the candidates from this datacenter can become owners of entities. Additionally
+ * the singleton component makings ownership decisions, runs only in an active datacenter.
  *
- * <p>
- * Caller must make sure that only one datacenter is active at a time, otherwise the singleton actors
- * in each datacenter will interfere with each other. The methods provided byt this service can be called
- * on any node from the datacenter to be activated. Datacenters only need to brought up when using non-default
- * datacenter or multiple datacenters.
+ * <p>Caller must make sure that only one datacenter is active at a time, otherwise the singleton actors in each
+ * datacenter will interfere with each other. The methods provided byt this service can be called on any node from
+ * the datacenter to be activated. Datacenters only need to brought up when using non-default datacenter or multiple
+ * datacenters.
  */
 public interface DataCenterControl {
     /**
index 6b4c17addc4b202cf262f6bc30999158e7d606f7..a600fe3c1df66c1ef086bd66fd271ff4dac9af79 100644 (file)
@@ -26,15 +26,12 @@ import scala.concurrent.duration.FiniteDuration;
  * This is a sample implementation of a Role Change Listener which is an actor, which registers itself
  * to the ClusterRoleChangeNotifier.
  *
- * <p>
- * The Role Change listener receives a SetNotifiers message with the notifiers to register itself with.
+ * <p>The Role Change listener receives a SetNotifiers message with the notifiers to register itself with.
  *
- * <p>
- * It kicks of a scheduler which sends registration messages to the notifiers, till it gets a
+ * <p>It kicks of a scheduler which sends registration messages to the notifiers, till it gets a
  *  RegisterRoleChangeListenerReply.
  *
- * <p>
- * If all the notifiers have been regsitered with, then it cancels the scheduler.
+ * <p>If all the notifiers have been regsitered with, then it cancels the scheduler.
  * It starts the scheduler again when it receives a new registration
  */
 public class ExampleRoleChangeListener extends AbstractUntypedActor implements AutoCloseable {
index b8be5d368012d53721c2e981ac5a5c4f6e2b0352..f448da12beba0ee133a5ae324cd321fa66f2e08b 100644 (file)
@@ -57,10 +57,9 @@ public class TestDriver {
      *  printNodes
      *  printState
      *
-     * <p>
-     *  Note: when run on IDE and on debug log level, the debug logs in
-     *  AbstractUptypedActor and AbstractUptypedPersistentActor would need to be commented out.
-     *  Also RaftActor handleCommand(), debug log which prints for every command other than AE/AER
+     * <p>Note: when run on IDE and on debug log level, the debug logs in AbstractUptypedActor and
+     * AbstractUptypedPersistentActor would need to be commented out.
+     * Also RaftActor handleCommand(), debug log which prints for every command other than AE/AER
      */
     public static void main(final String[] args) throws Exception {
 
index c83f90ec430e9d4ec0228b53e65b4cd9d9d726b4..2f9f05a5967a1d63b6291d4adebc644bbb4ac2f0 100644 (file)
@@ -45,12 +45,9 @@ public class DefaultConfigParamsImpl implements ConfigParams {
 
 
     /**
-     * The interval at which a heart beat message will be sent to the remote
-     * RaftActor.
+     * The interval at which a heart beat message will be sent to the remote RaftActor.
      *
-     * <p>
-     * Since this is set to 100 milliseconds the Election timeout should be
-     * at least 200 milliseconds
+     * <p>Since this is set to 100 milliseconds the Election timeout should be at least 200 milliseconds.
      */
     public static final FiniteDuration HEART_BEAT_INTERVAL =
         new FiniteDuration(100, TimeUnit.MILLISECONDS);
index 61aafef51354e88ab678dcfeb4f43970e308e636..61827b896adc278e1ec78d73d84e8f9b7d43bb4a 100644 (file)
@@ -10,14 +10,10 @@ package org.opendaylight.controller.cluster.raft;
 import org.eclipse.jdt.annotation.Nullable;
 
 /**
- * ElectionTerm contains information about a RaftActors election term.
+ * ElectionTerm contains information about a RaftActors election term. This information includes the last known current
+ * term of the RaftActor and which candidate was voted for by the RaftActor in that term.
  *
- * <p>
- * This information includes the last known current term of the RaftActor
- * and which candidate was voted for by the RaftActor in that term.
- *
- * <p>
- * This class ensures that election term information is persisted.
+ * <p>This class ensures that election term information is persisted.
  */
 public interface ElectionTerm {
     /**
index db35a15c0de7c1b41ff76aae232fc45bcda945dc..6bc7c7b2226e314e87443d49256f976f0b6b0465 100644 (file)
@@ -61,39 +61,31 @@ import org.opendaylight.yangtools.concepts.Identifier;
 import org.opendaylight.yangtools.concepts.Immutable;
 
 /**
- * RaftActor encapsulates a state machine that needs to be kept synchronized
- * in a cluster. It implements the RAFT algorithm as described in the paper
+ * RaftActor encapsulates a state machine that needs to be kept synchronized in a cluster. It implements the RAFT
+ * algorithm as described in the paper
  * <a href='https://ramcloud.stanford.edu/wiki/download/attachments/11370504/raft.pdf'>
  * In Search of an Understandable Consensus Algorithm</a>
  *
- * <p>
- * RaftActor has 3 states and each state has a certain behavior associated
- * with it. A Raft actor can behave as,
+ * <p>RaftActor has 3 states and each state has a certain behavior associated with it. A Raft actor can behave as,
  * <ul>
  * <li> A Leader </li>
  * <li> A Follower (or) </li>
  * <li> A Candidate </li>
  * </ul>
  *
- * <p>
- * A RaftActor MUST be a Leader in order to accept requests from clients to
- * change the state of it's encapsulated state machine. Once a RaftActor becomes
- * a Leader it is also responsible for ensuring that all followers ultimately
+ * <p>A RaftActor MUST be a Leader in order to accept requests from clients to change the state of it's encapsulated
+ * state machine. Once a RaftActor becomes a Leader it is also responsible for ensuring that all followers ultimately
  * have the same log and therefore the same state machine as itself.
  *
- * <p>
- * The current behavior of a RaftActor determines how election for leadership
- * is initiated and how peer RaftActors react to request for votes.
+ * <p>The current behavior of a RaftActor determines how election for leadership is initiated and how peer RaftActors
+ * react to request for votes.
  *
- * <p>
- * Each RaftActor also needs to know the current election term. It uses this
- * information for a couple of things. One is to simply figure out who it
- * voted for in the last election. Another is to figure out if the message
- * it received to update it's state is stale.
+ * <p>Each RaftActor also needs to know the current election term. It uses this information for a couple of things.
+ * One is to simply figure out who it voted for in the last election. Another is to figure out if the message it
+ * received to update it's state is stale.
  *
- * <p>
- * The RaftActor uses akka-persistence to store it's replicated log.
- * Furthermore through it's behaviors a Raft Actor determines
+ * <p>The RaftActor uses akka-persistence to store it's replicated log. Furthermore through it's behaviors a Raft Actor
+ * determines
  * <ul>
  * <li> when a log entry should be persisted </li>
  * <li> when a log entry should be applied to the state machine (and) </li>
@@ -773,14 +765,12 @@ public abstract class RaftActor extends AbstractUntypedPersistentActor {
     /**
      * setPeerAddress sets the address of a known peer at a later time.
      *
-     * <p>
-     * This is to account for situations where a we know that a peer
+     * <p>This is to account for situations where a we know that a peer
      * exists but we do not know an address up-front. This may also be used in
      * situations where a known peer starts off in a different location and we
      * need to change it's address
      *
-     * <p>
-     * Note that if the peerId does not match the list of peers passed to
+     * <p>Note that if the peerId does not match the list of peers passed to
      * this actor during construction an IllegalStateException will be thrown.
      */
     protected void setPeerAddress(final String peerId, final String peerAddress) {
@@ -848,8 +838,7 @@ public abstract class RaftActor extends AbstractUntypedPersistentActor {
      * given Runnable to proceed with the given operation. <b>Important:</b> the run method must be called on
      * this actor's thread dispatcher as as it modifies internal state.
      *
-     * <p>
-     * The default implementation immediately runs the operation.
+     * <p>The default implementation immediately runs the operation.
      *
      * @param operation the operation to run
      */
@@ -861,8 +850,8 @@ public abstract class RaftActor extends AbstractUntypedPersistentActor {
      * This method is invoked when the actions hooked to the leader becoming paused failed to execute and the leader
      * should resume normal operations.
      *
-     * <p>
-     * Note this method can be invoked even before the operation supplied to {@link #pauseLeader(Runnable)} is invoked.
+     * <p>Note this method can be invoked even before the operation supplied to {@link #pauseLeader(Runnable)} is
+     * invoked.
      */
     protected void unpauseLeader() {
 
index 3aeaff6d89f95876db6cbc365b39b017bcc134ef..7c6c6ca372f31a6451f69b5ee53dcb61f61f422f 100644 (file)
@@ -28,8 +28,7 @@ import scala.concurrent.duration.FiniteDuration;
  * A raft actor support class that participates in leadership transfer. An instance is created upon
  * initialization of leadership transfer.
  *
- * <p>
- * The transfer process is as follows:
+ * <p>The transfer process is as follows:
  * <ol>
  * <li>Send a LeaderStateChanged message with a null leader Id to the local RoleChangeNotifier to notify
  *     clients that we no longer have a working leader.</li>
@@ -45,8 +44,7 @@ import scala.concurrent.duration.FiniteDuration;
  * <li>On notification of the new leader from the RaftActor or on time out, notify {@link OnComplete} callbacks.</li>
  * </ol>
  *
- * <p>
- * NOTE: All methods on this class must be called on the actor's thread dispatcher as they may access/modify
+ * <p>NOTE: All methods on this class must be called on the actor's thread dispatcher as they may access/modify
  * internal state.
  *
  * @author Thomas Pantelis
index 1ee047962b4f22ca83a7517a12fd51d4d84963ef..76905ad9e934450f99b23359e89728c8ca00195d 100644 (file)
@@ -79,9 +79,8 @@ public interface ReplicatedLog {
     /**
      * Removes entries from the in-memory log and the persisted log starting at the given index.
      *
-     * <p>
-     * The persisted information would then be used during recovery to properly
-     * reconstruct the state of the in-memory replicated log
+     * <p>The persisted information would then be used during recovery to properly reconstruct the state
+     * of the in-memory replicated log
      *
      * @param index the index of the first log entry to remove
      * @return true if entries were removed, false otherwise
index 93b5f04df33d8ee92ccef6c6b4a007ad56189859..cff2696e02fc8b9ed39cf6845c00779ae0373adc 100644 (file)
@@ -14,13 +14,12 @@ import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import scala.concurrent.duration.FiniteDuration;
 
 /**
- * An abstract class that implements a Runnable operation with a timer such that if the run method isn't
- * invoked within a timeout period, the operation is cancelled via {@link #doCancel}.
+ * An abstract class that implements a Runnable operation with a timer such that if the run method is not invoked within
+ * a timeout period, the operation is cancelled via {@link #doCancel}.
  *
- * <p>
- * <b>Note:</b> this class is not thread safe and is intended for use only within the context of the same
- * actor that's passed on construction. The run method must be called on this actor's thread dispatcher as it
- * modifies internal state.
+ * <p><b>Note:</b> this class is not thread safe and is intended for use only within the context of the same actor that
+ * is passed on construction. The run method must be called on this actor's thread dispatcher as it modifies internal
+ * state.
  *
  * @author Thomas Pantelis
  */
index 7fdb73dc0fde2d4a135bae9c7cbbac9cb585cfd2..dcfa5c1303490f30cd3c5c5f8091f9cd450e7d5f 100644 (file)
@@ -60,8 +60,7 @@ import scala.concurrent.duration.FiniteDuration;
 /**
  * The behavior of a RaftActor when it is in the Leader state.
  *
- * <p>
- * Leaders:
+ * <p>Leaders:
  * <ul>
  * <li> Upon election: send initial empty AppendEntries RPCs
  * (heartbeat) to each server; repeat during idle periods to
@@ -872,20 +871,19 @@ public abstract class AbstractLeader extends AbstractRaftActorBehavior {
     }
 
     /**
-     * Initiates a snapshot capture to install on a follower.
-     *
-     * <p>
-     * Install Snapshot works as follows
-     *   1. Leader initiates the capture snapshot by calling createSnapshot on the RaftActor.
-     *   2. On receipt of the CaptureSnapshotReply message, the RaftActor persists the snapshot and makes a call to
-     *      the Leader's handleMessage with a SendInstallSnapshot message.
-     *   3. The Leader obtains and stores the Snapshot from the SendInstallSnapshot message and sends it in chunks to
-     *      the Follower via InstallSnapshot messages.
-     *   4. For each chunk, the Follower sends back an InstallSnapshotReply.
-     *   5. On receipt of the InstallSnapshotReply for the last chunk, the Leader marks the install complete for that
-     *      follower.
-     *   6. If another follower requires a snapshot and a snapshot has been collected (via SendInstallSnapshot)
-     *      then send the existing snapshot in chunks to the follower.
+     * Initiates a snapshot capture to install on a follower. Install Snapshot works as follows:
+     * <ol>
+     *   <li>Leader initiates the capture snapshot by calling createSnapshot on the RaftActor.</li>
+     *   <li>On receipt of the CaptureSnapshotReply message, the RaftActor persists the snapshot and makes a call to
+     *       the Leader's handleMessage with a SendInstallSnapshot message.</li>
+     *   <li>The Leader obtains and stores the Snapshot from the SendInstallSnapshot message and sends it in chunks to
+     *       the Follower via InstallSnapshot messages.</li>
+     *   <li>For each chunk, the Follower sends back an InstallSnapshotReply.</li>
+     *   <li>On receipt of the InstallSnapshotReply for the last chunk, the Leader marks the install complete for that
+     *       follower.</li>
+     *   <li>If another follower requires a snapshot and a snapshot has been collected (via SendInstallSnapshot)
+     *       then send the existing snapshot in chunks to the follower.</li>
+     * </ol>
      *
      * @param followerId the id of the follower.
      * @return true if capture was initiated, false otherwise.
index 77f7a06c49dffe75557e6544e2deba03f16f5614..5ca030da69a7f4bd20ab92c25004110ba9f594f6 100644 (file)
@@ -26,8 +26,7 @@ import scala.concurrent.duration.FiniteDuration;
 /**
  * The behavior of a RaftActor when it is in the Candidate raft state.
  *
- * <p>
- * Candidates (§5.2):
+ * <p>Candidates (§5.2):
  * <ul>
  * <li> On conversion to candidate, start election:
  * <ul>
index 17e42208850b5ce16a766819336f42213fc73662..e07a9723fc43af48755846d68479d090b61f230f 100644 (file)
@@ -16,16 +16,13 @@ import org.opendaylight.controller.cluster.raft.messages.AppendEntriesReply;
 /**
  * Leader which is termed as isolated.
  *
- * <p>
- * If the reply from the majority of the followers  is not received then the leader changes its behavior
+ * <p>If the reply from the majority of the followers is not received then the leader changes its behavior
  * to IsolatedLeader. An isolated leader may have followers and they would continue to receive replicated messages.
  *
- * <p>
- * A schedule is run, at an interval of (10 * Heartbeat-time-interval),  in the Leader
+ * <p>A schedule is run, at an interval of (10 * Heartbeat-time-interval), in the Leader
  * to check if its isolated or not.
  *
- * <p>
- * In the Isolated Leader , on every AppendEntriesReply, we aggressively check if the leader is isolated.
+ * <p>In the Isolated Leader , on every AppendEntriesReply, we aggressively check if the leader is isolated.
  * If no, then the state is switched back to Leader.
  */
 public class IsolatedLeader extends AbstractLeader {
index 0e293520523c39c2e8a7e70f0d924373b90a67a5..873d23c51e2347dbaf561ea380b633aa312635fb 100644 (file)
@@ -27,8 +27,7 @@ import org.opendaylight.controller.cluster.raft.messages.AppendEntriesReply;
 /**
  * The behavior of a RaftActor when it is in the Leader state.
  *
- * <p>
- * Leaders:
+ * <p>Leaders:
  * <ul>
  * <li> Upon election: send initial empty AppendEntries RPCs
  * (heartbeat) to each server; repeat during idle periods to
index 6d2f429de278d2f3ad47d671c582847fc81e8320..e94cff91540a727c910f7fe111053520e5530c6b 100644 (file)
@@ -23,14 +23,12 @@ import org.opendaylight.controller.cluster.raft.persisted.NoopPayload;
  * indirectly. Once all entries are committed, ie commitIndex matches the last log index, it switches to the
  * normal Leader state.
  *
- * <p>
- * The use of a no-op entry in this manner is outlined in the last paragraph in Â§8 of the
+ * <p>The use of a no-op entry in this manner is outlined in the last paragraph in Â§8 of the
  * <a href="https://raft.github.io/raft.pdf">extended raft version</a>.
  *
  * @author Thomas Pantelis
  */
 public class PreLeader extends AbstractLeader {
-
     public PreLeader(RaftActorContext context) {
         super(context, RaftState.PreLeader);
 
index 945ace7410749b48bc9eb3be0ecf0e60b21f3b83..2809cb787f2d5111d095d1c6c549206f1b32af8e 100644 (file)
@@ -5,7 +5,6 @@
  * 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.controller.cluster.raft.client.messages;
 
 import com.google.common.annotations.VisibleForTesting;
@@ -16,8 +15,7 @@ import java.io.Serializable;
  * respond with a {@link FindLeaderReply} containing the address of the leader, as it is known to that particular
  * actor.
  *
- * <p>
- * This message is intended for testing purposes only.
+ * <p>This message is intended for testing purposes only.
  */
 @VisibleForTesting
 public final class FindLeader implements Serializable {
index b4b34437e844e7d160fbc7e4e7c77388172d334c..5401a3d58882ada8f4e4a3ac586c87ab8cecbd94 100644 (file)
@@ -17,8 +17,7 @@ import org.eclipse.jdt.annotation.Nullable;
  * sent the message. If the responding actor does not have knowledge of the leader, {@link #getLeaderActor()} will
  * return {@link Optional#empty()}.
  *
- * <p>
- * This message is intended for testing purposes only.
+ * <p>This message is intended for testing purposes only.
  */
 @VisibleForTesting
 public final class FindLeaderReply implements Serializable {
index c75385ab1ea4f83e298d0ac1b6289b7f691a877e..5ca4613d825bf21e6f55e0e839294744d5b14d18 100644 (file)
@@ -12,9 +12,9 @@ import java.io.Serializable;
 /**
  * An instance of a {@link Payload} class is meant to be used as the Payload for {@link AppendEntries}.
  *
- * <p>
- * When an actor which is derived from RaftActor attempts to persistData it must pass an instance of the Payload class.
- * Similarly when state needs to be applied to the derived RaftActor it will be passed an instance of the Payload class.
+ * <p>When an actor which is derived from RaftActor attempts to persistData it must pass an instance of the Payload
+ * class. Similarly when state needs to be applied to the derived RaftActor it will be passed an instance of the
+ * Payload class.
  */
 public abstract class Payload implements Serializable {
     @java.io.Serial
index 183e3400e6379db1e7aa66407cafc2c4a323301e..a4dad8bc2d257695a8a72dbaab9ca07dd72ece4a 100644 (file)
@@ -5,20 +5,18 @@
  * 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.controller.cluster.raft.policy;
 
 /**
- * The RaftPolicy is intended to change the default behavior of Raft. For example
- * we may want to be able to determine which Raft replica should become the leader - with Raft elections are
- * randomized so it is not possible to specify which replica should be the leader. The ability to specify
- * the leader would be quite useful when testing a raft cluster.
+ * The RaftPolicy is intended to change the default behavior of Raft. For example we may want to be able to determine
+ * which Raft replica should become the leader - with Raft elections are randomized so it is not possible to specify
+ * which replica should be the leader. The ability to specify the leader would be quite useful when testing a raft
+ * cluster.
  *
- * <p>
- * Similarly we may want to customize when exactly we apply a modification to the state - with Raft a modification
- * is only applied to the state when the modification is replicated to a majority of the replicas. The ability to
- * apply a modification to the state before consensus would be useful in scenarios where you have only 2 nodes
- * in a Raft cluster and one of them is down but you still want the RaftActor to apply a modification to the state.
+ * <p>Similarly we may want to customize when exactly we apply a modification to the state - with Raft a modification
+ * is only applied to the state when the modification is replicated to a majority of the replicas. The ability to apply
+ * a modification to the state before consensus would be useful in scenarios where you have only 2 nodes in a Raft
+ * cluster and one of them is down but you still want the RaftActor to apply a modification to the state.
  */
 public interface RaftPolicy {
     /**
index e0d7be18e1c67e1f31eabf57bedd3f46f576bee3..763479cf92de10549b217111c090a9cfe8186be4 100644 (file)
@@ -26,8 +26,7 @@ import org.opendaylight.controller.akka.segjournal.DataJournalEntry.ToPersistenc
  * Kryo serializer for {@link DataJournalEntry}. Each {@link SegmentedJournalActor} has its own instance, as well as
  * a nested JavaSerializer to handle the payload.
  *
- * <p>
- * Since we are persisting only parts of {@link PersistentRepr}, this class asymmetric by design:
+ * <p>Since we are persisting only parts of {@link PersistentRepr}, this class asymmetric by design:
  * {@link #write(EntryOutput, DataJournalEntry)} only accepts {@link ToPersistence} subclass, which is a wrapper
  * around a {@link PersistentRepr}, while {@link #read(EntryInput)} produces an {@link FromPersistence}, which
  * needs further processing to reconstruct a {@link PersistentRepr}.
index 0b7808391162327188cc871c69caf75422b88c4c..b9aac225c544833ef64ab7e8da079e04a333f74d 100644 (file)
@@ -51,8 +51,7 @@ import scala.concurrent.Promise;
  *     <li>A simple file journal, containing sequence numbers of last deleted entry</li>
  * </ul>
  *
- * <p>
- * This is a conscious design decision to minimize the amount of data that is being stored in the data journal while
+ * <p>This is a conscious design decision to minimize the amount of data that is being stored in the data journal while
  * speeding up normal operations. Since the SegmentedJournal is an append-only linear log and Akka requires the ability
  * to delete persistence entries, we need ability to mark a subset of a SegmentedJournal as deleted. While we could
  * treat such delete requests as normal events, this leads to a mismatch between SegmentedJournal indices (as exposed by
@@ -60,9 +59,9 @@ import scala.concurrent.Promise;
  * index corresponding to a particular sequence number, or maintain moderately-complex logic and data structures to
  * perform that mapping in sub-linear time complexity.
  *
- * <p>
- * Split-file approach allows us to treat sequence numbers and indices as equivalent, without maintaining any explicit
- * mapping information. The only additional information we need to maintain is the last deleted sequence number.
+ * <p>Split-file approach allows us to treat sequence numbers and indices as equivalent, without maintaining any
+ * explicit mapping information. The only additional information we need to maintain is the last deleted sequence
+ * number.
  */
 abstract sealed class SegmentedJournalActor extends AbstractActor {
     abstract static sealed class AsyncMessage<T> {
@@ -171,19 +170,16 @@ abstract sealed class SegmentedJournalActor extends AbstractActor {
      * A {@link SegmentedJournalActor} which delays issuing a flush operation until a watermark is reached or when the
      * queue is empty.
      *
-     * <p>
-     * The problem we are addressing is that there is a queue sitting in from of the actor, which we have no direct
+     * <p>The problem we are addressing is that there is a queue sitting in from of the actor, which we have no direct
      * access to. Since a flush involves committing data to durable storage, that operation can easily end up dominating
      * workloads.
      *
-     * <p>
-     * We solve this by having an additional queue in which we track which messages were written and trigger a flush
+     * <p>We solve this by having an additional queue in which we track which messages were written and trigger a flush
      * only when the number of bytes we have written exceeds specified limit. The other part is that each time this
      * queue becomes non-empty, we send a dedicated message to self. This acts as a actor queue probe -- when we receive
      * it, we know we have processed all messages that were in the queue when we first delayed the write.
      *
-     * <p>
-     * The combination of these mechanisms ensure we use a minimal delay while also ensuring we take advantage of
+     * <p>The combination of these mechanisms ensure we use a minimal delay while also ensuring we take advantage of
      * batching opportunities.
      */
     private static final class Delayed extends SegmentedJournalActor {
index 1ba5ac6bdeb485a53fee0948df88b824a4b32ba6..35433f1506c94b3d38287fbc4f7c52ba14838845 100644 (file)
@@ -54,8 +54,7 @@ import org.slf4j.LoggerFactory;
  *
  * </pre>
  *
- * <p>
- * This class is NOT thread-safe.
+ * <p>This class is NOT thread-safe.
  */
 @Beta
 public final class MessageTracker {
index 30331930d6b8f882a9fab12835c5ea20da0bc6fd..4b65ad9453e86310421bf04a9199166e582631ac 100644 (file)
@@ -16,10 +16,8 @@ import scala.runtime.AbstractPartialFunction;
 import scala.runtime.BoxedUnit;
 
 /**
- * Represents behaviour that can be exhibited by actors of type {@link AbstractActor}
- *
- * <p>
- * This behaviour meters actor's default behaviour. It captures 2 metrics:
+ * Represents behaviour that can be exhibited by actors of type {@link AbstractActor}. This behaviour meters actor's
+ * default behaviour. It captures 2 metrics:
  * <ul>
  *     <li>message processing rate of actor's receive block</li>
  *     <li>message processing rate by message type</li>
@@ -65,13 +63,11 @@ public class MeteringBehavior extends AbstractPartialFunction<Object, BoxedUnit>
      * Uses 2 timers to measure message processing rate. One for overall message processing rate and
      * another to measure rate by message type. The timers are re-used if they were previously created.
      *
-     * <p>
-     * {@link com.codahale.metrics.MetricRegistry} maintains a reservoir for different timers where
+     * <p>{@link com.codahale.metrics.MetricRegistry} maintains a reservoir for different timers where
      * collected timings are kept. It exposes various metrics for each timer based on collected
      * data. Eg: count of messages, 99, 95, 50... percentiles, max, mean etc.
      *
-     * <p>
-     * These metrics are exposed as JMX bean.
+     * <p>These metrics are exposed as JMX bean.
      *
      * @see <a href="http://dropwizard.github.io/metrics/manual/core/#timers">
      *     http://dropwizard.github.io/metrics/manual/core/#timers</a>
index d14f3a7f33df2201c5a5a15252076962f32c4714..a655d9289a684b00b8d53d21b4e5184ffe0f16e1 100644 (file)
@@ -10,10 +10,7 @@ package org.opendaylight.controller.cluster.common.actor;
 import com.typesafe.config.Config;
 
 /**
- * Represents a unified view of configuration.
- *
- * <p>
- * It merges configuration from:
+ * Represents a unified view of configuration. It merges configuration from:
  * <ul>
  *     <li>Config subsystem</li>
  *     <li>Akka configuration files</li>
@@ -21,7 +18,6 @@ import com.typesafe.config.Config;
  * Configurations defined in config subsystem takes precedence.
  */
 public interface UnifiedConfig {
-
     /**
      * Returns an immutable instance of unified configuration.
      *
index 1376c6771490aeaec4adbd2085ad5b005cb92301..043c7399c4ce4bf92758bb66c66136e498ff3bd9 100644 (file)
@@ -31,9 +31,8 @@ import org.opendaylight.yangtools.concepts.Either;
  * a fixed maximum size. This is generally preferable to {@link ByteArrayOutputStream}, as that can result in huge
  * byte arrays -- which can create unnecessary pressure on the GC (as well as lot of copying).
  *
- * <p>
- * This class takes a different approach: it recognizes that result of buffering will be collected at some point, when
- * the stream is already closed (and thus unmodifiable). Thus it splits the process into two steps:
+ * <p>This class takes a different approach: it recognizes that result of buffering will be collected at some point,
+ * when the stream is already closed (and thus unmodifiable). Thus it splits the process into two steps:
  * <ul>
  *   <li>Data acquisition, during which we start with an initial (power-of-two) size and proceed to fill it up. Once the
  *       buffer is full, we stash it, allocate a new buffer twice its size and repeat the process. Once we hit
@@ -43,8 +42,7 @@ import org.opendaylight.yangtools.concepts.Either;
  *       final collection of buffers.</li>
  * </ul>
  *
- * <p>
- * The data acquisition strategy results in predictably-sized buffers, which are growing exponentially in size until
+ * <p>The data acquisition strategy results in predictably-sized buffers, which are growing exponentially in size until
  * they hit maximum size. Intrinsic property here is that the total capacity of chunks created during the ramp up is
  * guaranteed to fit into {@code maxChunkSize}, hence they can readily be compacted into a single buffer, which replaces
  * them. Combined with the requirement to trim the last buffer to have accurate length, this algorithm guarantees total
index 9ba69fb65580fdf4da1960960dbdb9031baa4669..b5129ee812b805c646507f7d9bdd69cd24df7ded 100644 (file)
@@ -106,8 +106,7 @@ public final class SliceOptions {
          * message doesn't need to be sliced, ie its serialized size is less than the maximum message slice size, then
          * the original message is sent. Otherwise the first message slice is sent.
          *
-         * <p>
-         * <b>Note:</b> a {@link FileBackedOutputStreamFactory} must be set in the {@link MessageSlicer}.
+         * <p><b>Note:</b> a {@link FileBackedOutputStreamFactory} must be set in the {@link MessageSlicer}.
          *
          * @param newMessage the message
          * @param <T> the Serializable message type
index ed0c10a7172b8edeb759819f8ddf1dc861b87ea1..4447f9041d3c1299cd868e939eb94574c8590a04 100644 (file)
@@ -19,13 +19,12 @@ import org.opendaylight.controller.cluster.common.actor.AbstractUntypedActor;
  * The RoleChangeNotifier is responsible for receiving Raft role and leader state change messages and notifying
  * the listeners (within the same node), which are registered with it.
  *
- * <p>
- * The RoleChangeNotifier is instantiated by the Shard and injected into the RaftActor.
+ * <p>The RoleChangeNotifier is instantiated by the Shard and injected into the RaftActor.
  */
 public class RoleChangeNotifier extends AbstractUntypedActor implements AutoCloseable {
-
-    private final String memberId;
     private final Map<ActorPath, ActorRef> registeredListeners = new HashMap<>();
+    private final String memberId;
+
     private RoleChangeNotification latestRoleChangeNotification = null;
     private LeaderStateChanged latestLeaderStateChanged;
 
index a488342abaa2b9efeacbd52c9eefb69ba0f82e71..932e503763e1887e43389b5a2cabc3799c349fc9 100644 (file)
@@ -14,13 +14,11 @@ import com.google.common.cache.CacheLoader;
 import com.google.common.cache.LoadingCache;
 
 /**
- * Maintains metrics registry that is provided to reporters.
- * At the moment only one reporter exists {@code JmxReporter}.
+ * Maintains metrics registry that is provided to reporters. At the moment only one reporter exists {@code JmxReporter}.
  * More reporters can be added.
  *
- * <p>
- * The consumers of this class will only be interested in {@code MetricsRegistry}
- * where metrics for that consumer gets stored.
+ * <p>The consumers of this class will only be interested in {@code MetricsRegistry} where metrics for that consumer
+ * gets stored.
  */
 public class MetricsReporter implements AutoCloseable {
 
index 53d7a2f22a95b65d003a4a2d7e836bc100162143..8fd236d5665ba80c9e4ed0e9b8af690529c96f37 100644 (file)
@@ -21,13 +21,9 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 /**
- * Abstract base for an MXBean implementation class.
- *
- * <p>
- * This class is not intended for use outside of MD-SAL and its part of private
- * implementation (still exported as public to be reused across MD-SAL implementation
- * components) and may be removed in subsequent
- * releases.
+ * Abstract base for an MXBean implementation class. This class is not intended for use outside of MD-SAL and its part
+ * of private implementation (still exported as public to be reused across MD-SAL implementation components) and may be
+ * removed in subsequent releases.
  *
  * @author Thomas Pantelis
  */
index 82567c40d930c2300407eb710cbe1d40b89fa022..e7a30ffadf1973f02dac29bd655cd0db030ebacc 100644 (file)
@@ -33,32 +33,25 @@ import org.slf4j.LoggerFactory;
  * {@link ClientActorBehavior} acting as an intermediary between the backend actors and the DistributedDataStore
  * frontend.
  *
- * <p>
- * This class is not visible outside of this package because it breaks the actor containment. Services provided to
+ * <p>This class is not visible outside of this package because it breaks the actor containment. Services provided to
  * Java world outside of actor containment are captured in {@link DataStoreClient}.
  *
- * <p>
- * IMPORTANT: this class breaks actor containment via methods implementing {@link DataStoreClient} contract.
- *            When touching internal state, be mindful of the execution context from which execution context, Actor
- *            or POJO, is the state being accessed or modified.
+ * <p>IMPORTANT: this class breaks actor containment via methods implementing {@link DataStoreClient} contract.
+ *               When touching internal state, be mindful of the execution context from which execution context, Actor
+ *               or POJO, is the state being accessed or modified.
  *
- * <p>
- * THREAD SAFETY: this class must always be kept thread-safe, so that both the Actor System thread and the application
- *                threads can run concurrently. All state transitions must be made in a thread-safe manner. When in
- *                doubt, feel free to synchronize on this object.
+ * <p>THREAD SAFETY: this class must always be kept thread-safe, so that both the Actor System thread and the
+ *                   application threads can run concurrently. All state transitions must be made in a thread-safe
+ *                   manner. When in doubt, feel free to synchronize on this object.
  *
- * <p>
- * PERFORMANCE: this class lies in a performance-critical fast path. All code needs to be concise and efficient, but
- *              performance must not come at the price of correctness. Any optimizations need to be carefully analyzed
- *              for correctness and performance impact.
+ * <p>PERFORMANCE: this class lies in a performance-critical fast path. All code needs to be concise and efficient, but
+ *                 performance must not come at the price of correctness. Any optimizations need to be carefully
+ *                 analyzed for correctness and performance impact.
  *
- * <p>
- * TRADE-OFFS: part of the functionality runs in application threads without switching contexts, which makes it ideal
- *             for performing work and charging applications for it. That has two positive effects:
- *             - CPU usage is distributed across applications, minimizing work done in the actor thread
- *             - CPU usage provides back-pressure towards the application.
- *
- * @author Robert Varga
+ * <p>TRADE-OFFS: part of the functionality runs in application threads without switching contexts, which makes it ideal
+ *                for performing work and charging applications for it. That has two positive effects:
+ *                - CPU usage is distributed across applications, minimizing work done in the actor thread
+ *                - CPU usage provides back-pressure towards the application.
  */
 abstract class AbstractDataStoreClientBehavior extends ClientActorBehavior<ShardBackendInfo>
         implements DataStoreClient {
index 14ad54699161a60719ea846d353c46e73fb4adea..f0d30f3aa17d249034a2147bb8ab160da6bbd242 100644 (file)
@@ -58,13 +58,11 @@ import org.slf4j.LoggerFactory;
 /**
  * Class translating transaction operations towards a particular backend shard.
  *
- * <p>
- * This class is not safe to access from multiple application threads, as is usual for transactions. Internal state
+ * <p>This class is not safe to access from multiple application threads, as is usual for transactions. Internal state
  * transitions coming from interactions with backend are expected to be thread-safe.
  *
- * <p>
- * This class interacts with the queueing mechanism in ClientActorBehavior, hence once we arrive at a decision
- * to use either a local or remote implementation, we are stuck with it. We can re-evaluate on the next transaction.
+ * <p>This class interacts with the queueing mechanism in ClientActorBehavior, hence once we arrive at a decision to use
+ * either a local or remote implementation, we are stuck with it. We can re-evaluate on the next transaction.
  */
 abstract sealed class AbstractProxyTransaction implements Identifiable<TransactionIdentifier>
         permits LocalProxyTransaction, RemoteProxyTransaction {
@@ -116,8 +114,7 @@ abstract sealed class AbstractProxyTransaction implements Identifiable<Transacti
      * between the old connection (potentially being accessed by the user) and the new connection (being cleaned up
      * by the actor.
      *
-     * <p>
-     * When a user operation encounters this state, it synchronizes on the it and wait until reconnection completes,
+     * <p>When a user operation encounters this state, it synchronizes on the it and wait until reconnection completes,
      * at which point the request is routed to the successor transaction. This is a relatively heavy-weight solution
      * to the problem of state transfer, but the user will observe it only if the race condition is hit.
      */
@@ -195,8 +192,7 @@ abstract sealed class AbstractProxyTransaction implements Identifiable<Transacti
      * Transaction has been sealed by the user, but it has not completed flushing to the backed, yet. This is
      * a transition state, as we are waiting for the user to initiate commit procedures.
      *
-     * <p>
-     * Since the reconnect mechanics relies on state replay for transactions, this state needs to be flushed into the
+     * <p>Since the reconnect mechanics relies on state replay for transactions, this state needs to be flushed into the
      * queue to re-create state in successor transaction (which may be based on different messages as locality may have
      * changed). Hence the transition to {@link #FLUSHED} state needs to be handled in a thread-safe manner.
      */
@@ -207,8 +203,7 @@ abstract sealed class AbstractProxyTransaction implements Identifiable<Transacti
      * the backend. At this point the transaction does not hold any state besides successful requests, all other state
      * is held either in the connection's queue or the successor object.
      *
-     * <p>
-     * Transition to this state indicates we have all input from the user we need to initiate the correct commit
+     * <p>Transition to this state indicates we have all input from the user we need to initiate the correct commit
      * protocol.
      */
     private static final State FLUSHED = new State("FLUSHED");
@@ -745,8 +740,7 @@ abstract sealed class AbstractProxyTransaction implements Identifiable<Transacti
      * Invoked from {@link #replayMessages(AbstractProxyTransaction, Iterable)} to have successor adopt an in-flight
      * request.
      *
-     * <p>
-     * Note: this method is invoked by the predecessor on the successor.
+     * <p>Note: this method is invoked by the predecessor on the successor.
      *
      * @param request Request which needs to be forwarded
      * @param callback Callback to be invoked once the request completes
@@ -831,8 +825,7 @@ abstract sealed class AbstractProxyTransaction implements Identifiable<Transacti
     /**
      * Invoked from {@link LocalProxyTransaction} when it replays its successful requests to its successor.
      *
-     * <p>
-     * Note: this method is invoked by the predecessor on the successor.
+     * <p>Note: this method is invoked by the predecessor on the successor.
      *
      * @param request Request which needs to be forwarded
      * @param callback Callback to be invoked once the request completes
@@ -844,8 +837,7 @@ abstract sealed class AbstractProxyTransaction implements Identifiable<Transacti
     /**
      * Invoked from {@link RemoteProxyTransaction} when it replays its successful requests to its successor.
      *
-     * <p>
-     * Note: this method is invoked by the predecessor on the successor.
+     * <p>Note: this method is invoked by the predecessor on the successor.
      *
      * @param request Request which needs to be forwarded
      * @param callback Callback to be invoked once the request completes
index 5a436a53d3b2978ac3c1d4585220d3a2fbf44a58..c3dcef811b688874595a2fcfd2bd1400e8a1cc8a 100644 (file)
@@ -48,10 +48,7 @@ import scala.compat.java8.FutureConverters;
  * shard is assigned a single cookie and this mapping is stored in a bidirectional map. Information about corresponding
  * shard leader is resolved via {@link ActorUtils}. The product of resolution is {@link ShardBackendInfo}.
  *
- * <p>
- * This class is thread-safe.
- *
- * @author Robert Varga
+ * <p>This class is thread-safe.
  */
 abstract class AbstractShardBackendResolver extends BackendInfoResolver<ShardBackendInfo> {
     static final class ShardState {
index 493eb4089eb86cf9f119bfdf5589f780404b3715..aa27b52a37796da15e9afc1660804c12773fbaba 100644 (file)
@@ -17,12 +17,9 @@ import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier
  * Client-side view of a local history. This class tracks all state related to a particular history and routes
  * frontend requests towards the backend.
  *
- * <p>
- * This interface is used by the world outside of the actor system and in the actor system it is manifested via
- * its client actor. That requires some state transfer with {@link AbstractDataStoreClientBehavior}. In order to
- * reduce request latency, all messages are carbon-copied (and enqueued first) to the client actor.
- *
- * @author Robert Varga
+ * <p>This interface is used by the world outside of the actor system and in the actor system it is manifested via its
+ * client actor. That requires some state transfer with {@link AbstractDataStoreClientBehavior}. In order to reduce
+ * request latency, all messages are carbon-copied (and enqueued first) to the client actor.
  */
 @Beta
 public class ClientLocalHistory extends AbstractClientHistory implements AutoCloseable {
index b2ff5d5184d58753fa76bf90df457abfe6e685f0..f4f57436678180c4ca5374e3acbb51647577c111 100644 (file)
@@ -26,32 +26,25 @@ import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
 /**
  * Client-side view of a transaction.
  *
- * <p>
- * This interface is used by the world outside of the actor system and in the actor system it is manifested via
+ * <p>This interface is used by the world outside of the actor system and in the actor system it is manifested via
  * its client actor. That requires some state transfer with {@link DistributedDataStoreClientBehavior}. In order to
  * reduce request latency, all messages are carbon-copied (and enqueued first) to the client actor.
  *
- * <p>
- * It is internally composed of multiple {@link RemoteProxyTransaction}s, each responsible for a component shard.
+ * <p>It is internally composed of multiple {@link RemoteProxyTransaction}s, each responsible for a component shard.
  *
- * <p>
- * Implementation is quite a bit complex, and involves cooperation with {@link AbstractClientHistory} for tracking
+ * <p>Implementation is quite a bit complex, and involves cooperation with {@link AbstractClientHistory} for tracking
  * gaps in transaction identifiers seen by backends.
  *
- * <p>
- * These gaps need to be accounted for in the transaction setup message sent to a particular backend, so it can verify
- * that the requested transaction is in-sequence. This is critical in ensuring that transactions (which are independent
- * entities from message queueing perspective) do not get reodered -- thus allowing multiple in-flight transactions.
+ * <p>These gaps need to be accounted for in the transaction setup message sent to a particular backend, so it can
+ * verify that the requested transaction is in-sequence. This is critical in ensuring that transactions (which are
+ * independent entities from message queueing perspective) do not get reodered -- thus allowing multiple in-flight
+ * transactions.
  *
- * <p>
- * Alternative would be to force visibility by sending an abort request to all potential backends, but that would mean
- * that even empty transactions increase load on all shards -- which would be a scalability issue.
+ * <p>Alternative would be to force visibility by sending an abort request to all potential backends, but that would
+ * mean that even empty transactions increase load on all shards -- which would be a scalability issue.
  *
- * <p>
- * Yet another alternative would be to introduce inter-transaction dependencies to the queueing layer in client actor,
- * but that would require additional indirection and complexity.
- *
- * @author Robert Varga
+ * <p>Yet another alternative would be to introduce inter-transaction dependencies to the queueing layer in client
+ * actor, but that would require additional indirection and complexity.
  */
 @Beta
 public class ClientTransaction extends AbstractClientHandle<AbstractProxyTransaction> {
index e3dc91cbaea2b5228ad11e91aa0ab04594dc438d..1a12755529243868db9ccfc70a2f62d70dd439fc 100644 (file)
@@ -16,10 +16,8 @@ import org.opendaylight.yangtools.concepts.Identifiable;
  * Client interface for interacting with the frontend actor. This interface is the primary access point through
  * which the DistributedDataStore frontend interacts with backend Shards.
  *
- * <p>
- * Keep this interface as clean as possible, as it needs to be implemented in thread-safe and highly-efficient manner.
- *
- * @author Robert Varga
+ * <p>Keep this interface as clean as possible, as it needs to be implemented in thread-safe and highly-efficient
+ * manner.
  */
 @Beta
 @NonNullByDefault
index 5b11d8679e31ba9801a10638228f0bb58504ee15..fe0d9fe278028ea216f2f19919b91a59cc8567b4 100644 (file)
@@ -16,10 +16,7 @@ import org.opendaylight.yangtools.yang.common.Empty;
  * An {@link AbstractTransactionCommitCohort} for use with empty transactions. This relies on the fact that no backends
  * have been touched, hence all state book-keeping needs to happen only locally and shares fate with the coordinator.
  *
- * <p>
- * Therefore all methods can finish immediately without any effects.
- *
- * @author Robert Varga
+ * <p>Therefore all methods can finish immediately without any effects.
  */
 final class EmptyTransactionCommitCohort extends AbstractTransactionCommitCohort {
     EmptyTransactionCommitCohort(final AbstractClientHistory parent, final TransactionIdentifier txId) {
index a6d86de0147cc4bb5a347670fe53041443e3c24d..a56f3b0084192cdea4fad823a2bb96ef4f39fa13 100644 (file)
@@ -11,11 +11,8 @@ package org.opendaylight.controller.cluster.databroker.actors.dds;
  * Common interface for client histories and client transactions, which can be aborted immediately without replicating
  * the effect to the backend. This is needed for abrupt shutdowns.
  *
- * <p>
- * Since classes which need to expose this functionality do not need a base class, this is an abstract class and not
+ * <p>Since classes which need to expose this functionality do not need a base class, this is an abstract class and not
  * an interface -- which allows us to not leak the {@link #localAbort(Throwable)} method.
- *
- * @author Robert Varga
  */
 abstract class LocalAbortable {
     /**
index 6c4006e93f0a2197937ce7ff90b3b7c5a3e8b00a..6fb52af035bee22cf5083f1474bf9d6e22f1a97b 100644 (file)
@@ -43,13 +43,11 @@ import org.slf4j.LoggerFactory;
  * An {@link AbstractProxyTransaction} for dispatching a transaction towards a shard leader which is co-located with
  * the client instance. This class is NOT thread-safe.
  *
- * <p>
- * It requires a {@link DataTreeSnapshot}, which is used to instantiated a new {@link DataTreeModification}. Operations
- * are then performed on this modification and once the transaction is submitted, the modification is sent to the shard
- * leader.
+ * <p>It requires a {@link DataTreeSnapshot}, which is used to instantiated a new {@link DataTreeModification}.
+ * Operations are then performed on this modification and once the transaction is submitted, the modification is sent
+ * to the shard leader.
  *
- * <p>
- * This class is not thread-safe as usual with transactions. Since it does not interact with the backend until the
+ * <p>This class is not thread-safe as usual with transactions. Since it does not interact with the backend until the
  * transaction is submitted, at which point this class gets out of the picture, this is not a cause for concern.
  */
 abstract sealed class LocalProxyTransaction extends AbstractProxyTransaction
index 47ae6a2bc7a27ae60fc1a8b094411c65c03d4a21..3dea5fb5cb263bf5fb3bc23cd8f4c5498e5dc077 100644 (file)
@@ -57,13 +57,11 @@ import org.slf4j.LoggerFactory;
  * An {@link AbstractProxyTransaction} for dispatching a transaction towards a shard leader which is co-located with
  * the client instance. This class is NOT thread-safe.
  *
- * <p>
- * It requires a {@link DataTreeSnapshot}, which is used to instantiated a new {@link DataTreeModification}. Operations
- * are then performed on this modification and once the transaction is submitted, the modification is sent to the shard
- * leader.
+ * <p>It requires a {@link DataTreeSnapshot}, which is used to instantiated a new {@link DataTreeModification}.
+ * Operations are then performed on this modification and once the transaction is submitted, the modification is sent
+ * to the shard leader.
  *
- * <p>
- * This class is not thread-safe as usual with transactions. Since it does not interact with the backend until the
+ * <p>This class is not thread-safe as usual with transactions. Since it does not interact with the backend until the
  * transaction is submitted, at which point this class gets out of the picture, this is not a cause for concern.
  *
  * @author Robert Varga
@@ -86,8 +84,7 @@ final class LocalReadWriteProxyTransaction extends LocalProxyTransaction {
      * offending call site, but that exposes inconsistency in behavior during initial connection, when we go through
      * {@link RemoteProxyTransaction}, which detects this sort of issues at canCommit/directCommit time on the backend.
      *
-     * <p>
-     * We therefore do not report incurred exceptions directly, but report them once the user attempts to commit
+     * <p>We therefore do not report incurred exceptions directly, but report them once the user attempts to commit
      * this transaction.
      */
     private Exception recordedFailure;
index 6ab566e2fafc186fb6257ebd98606e3f36c9470c..322e01f2d0fef14563b38b44553a1c5c920d3a44 100644 (file)
@@ -37,10 +37,7 @@ import scala.concurrent.Future;
  * shard is assigned a single cookie and this mapping is stored in a bidirectional map. Information about corresponding
  * shard leader is resolved via {@link ActorUtils}. The product of resolution is {@link ShardBackendInfo}.
  *
- * <p>
- * This class is thread-safe.
- *
- * @author Robert Varga
+ * <p>This class is thread-safe.
  */
 final class ModuleShardBackendResolver extends AbstractShardBackendResolver {
     private static final Logger LOG = LoggerFactory.getLogger(ModuleShardBackendResolver.class);
index 946e3341fd8f7778fdbf940299deb72112a61284..8637dea34c104cb88c9a8e61475f226cd15f56f8 100644 (file)
@@ -57,13 +57,11 @@ import org.slf4j.LoggerFactory;
  * An {@link AbstractProxyTransaction} for dispatching a transaction towards a shard leader whose location is currently
  * not known or is known to be not co-located with the client.
  *
- * <p>
- * It packages operations and sends them via the client actor queue to the shard leader. That queue is responsible for
- * maintaining any submitted operations until the leader is discovered.
+ * <p>It packages operations and sends them via the client actor queue to the shard leader. That queue is responsible
+ * for maintaining any submitted operations until the leader is discovered.
  *
- * <p>
- * This class is not safe to access from multiple application threads, as is usual for transactions. Its internal state
- * transitions based on backend responses are thread-safe.
+ * <p>This class is not safe to access from multiple application threads, as is usual for transactions. Its internal
+ * state transitions based on backend responses are thread-safe.
  */
 final class RemoteProxyTransaction extends AbstractProxyTransaction {
     private static final Logger LOG = LoggerFactory.getLogger(RemoteProxyTransaction.class);
index 6433b6b5878be65d11507dbfd14d25d73fbe7eb5..96af0aa2cbe99b8c161c9ecf3233e52a832dae11 100644 (file)
@@ -25,12 +25,9 @@ import org.checkerframework.checker.lock.qual.Holding;
  * an exception. This exception corresponds to the cause reported by the first 'no' vote, with all subsequent votes
  * added as suppressed exceptions.
  *
- * <p>
- * Implementation is geared toward positive votes. Negative votes have to synchronize and therefore are more likely
+ * <p>Implementation is geared toward positive votes. Negative votes have to synchronize and therefore are more likely
  * to see contention.
  *
- * @author Robert Varga
- *
  * @param <T> Type of value returned on success
  */
 class VotingFuture<T> extends AbstractFuture<T> {
index e559ff12498be15eb9f85d4be8ce3adfec5064bf..1205f6dc6aa9ec5a3cf50e6effcd591876fb11aa 100644 (file)
@@ -76,9 +76,8 @@ abstract class AbstractShardDataTreeTransaction<T extends DataTreeSnapshot>
      * This method is exposed for sake of {@link ShardTransaction}, which is an actor. We need to ensure that
      * the parent is updated to reflect the transaction has been closed, but no journal actions may be invoked.
      *
-     * <p>
-     * ShardTransaction is responsible for additionally sending a request to persist an {@link AbortTransactionPayload}
-     * via a message to the Shard actor.
+     * <p>ShardTransaction is responsible for additionally sending a request to persist an
+     * {@link AbortTransactionPayload} via a message to the Shard actor.
      */
     final void abortFromTransactionActor() {
         if (close()) {
index 1fcaa9d64d6b4a9eaee3377aa4fbcaea5ab5ebc4..b4ed4ba0d9bba7cdde9729215bc47e7e4bc63ac8 100644 (file)
@@ -120,8 +120,7 @@ import scala.concurrent.duration.FiniteDuration;
 /**
  * A Shard represents a portion of the logical data tree.
  *
- * <p>
- * Our Shard uses InMemoryDataTree as it's internal representation and delegates all requests it
+ * <p>Our Shard uses InMemoryDataTree as its internal representation and delegates all requests it
  */
 // FIXME: non-final for testing?
 public class Shard extends RaftActor {
index 205061e475752a7b4d79236f520b389b69dffff2..f5e3d527b45d03507fb118d9bafe999db8b8f8ce 100644 (file)
@@ -100,8 +100,7 @@ import scala.concurrent.duration.FiniteDuration;
  * Internal shard state, similar to a DOMStore, but optimized for use in the actor system, e.g. it does not expose
  * public interfaces and assumes it is only ever called from a single thread.
  *
- * <p>
- * This class is not part of the API contract and is subject to change at any time. It is NOT thread-safe.
+ * <p>This class is not part of the API contract and is subject to change at any time. It is NOT thread-safe.
  */
 @VisibleForTesting
 // non-final for mocking
index 3705707de296aac34104683243d81bcc1b0d39ba..00337578b22b4fba9e9836f00ea8f18e3af06979 100644 (file)
@@ -12,8 +12,7 @@ import java.util.List;
 /**
  * CompositeModification contains a list of modifications that need to be applied to the DOMStore.
  *
- * <p>
- * A CompositeModification gets stored in the transaction log for a Shard. During recovery when the transaction log
+ * <p>A CompositeModification gets stored in the transaction log for a Shard. During recovery when the transaction log
  * is being replayed a DOMStoreWriteTransaction could be created and a CompositeModification could be applied to it.
  */
 @Deprecated(since = "9.0.0", forRemoval = true)
index e7757f36fcdbe214d5a8a793e0057d878c6a03e3..4a83103d2ab71c4400d572b2c4f28f1790664cfc 100644 (file)
@@ -18,16 +18,14 @@ import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModification;
 /**
  * Represents a modification to the data store.
  *
- * <p>
- * Simple modifications can be of type,
+ * <p>Simple modifications can be of type,
  * <ul>
  * <li> {@link org.opendaylight.controller.cluster.datastore.modification.WriteModification}
  * <li> {@link org.opendaylight.controller.cluster.datastore.modification.MergeModification}
  * <li> {@link org.opendaylight.controller.cluster.datastore.modification.DeleteModification}
  * </ul>
  *
- * <p>
- * Modifications can in turn be lumped into a single
+ * <p>Modifications can in turn be lumped into a single
  * {@link org.opendaylight.controller.cluster.datastore.modification.CompositeModification}
  * which can then be applied to a write transaction.
  */
index 885b6c5336dc4999075f33b01bf4e19bfbe1af4a..37cb6143289fb5ab8fac6dd03f52d53eea47c0f7 100644 (file)
@@ -57,8 +57,7 @@ public abstract class AbstractIdentifiablePayload<T extends Identifier> extends
         /**
          * {@inheritDoc}
          *
-         * <p>
-         * The default implementation is canonical and should never be overridden.
+         * <p>The default implementation is canonical and should never be overridden.
          */
         @Override
         default void readExternal(final ObjectInput in) throws IOException {
@@ -70,8 +69,7 @@ public abstract class AbstractIdentifiablePayload<T extends Identifier> extends
         /**
          * {@inheritDoc}
          *
-         * <p>
-         * The default implementation is canonical and should never be overridden.
+         * <p>The default implementation is canonical and should never be overridden.
          */
         @Override
         default void writeExternal(final ObjectOutput out) throws IOException {
index 298f835c5c85c1cc71db2bdb2b9b5834b6629b4a..5e1c79aeb363b0fd3b037ec89b4ff77a7a5e3af1 100644 (file)
@@ -26,8 +26,7 @@ import org.opendaylight.yangtools.yang.data.codec.binfmt.NormalizedNodeStreamVer
  * <li>serialization format is changed</li>
  * </ul>
  *
- * <p>
- * This version effectively defines the protocol version between actors participating on a particular shard. A shard
+ * <p>This version effectively defines the protocol version between actors participating on a particular shard. A shard
  * participant instance should oppose RAFT candidates which produce persistence of an unsupported version. If a follower
  * encounters an unsupported version it must not become fully-operational, as it does not have an accurate view
  * of shard state.
index 98302ee503710f9a95cf75b31f69bea6dc5ceefd..16ffc0a0110063f105984817350e7e9f6c633e5d 100644 (file)
@@ -19,16 +19,12 @@ import org.eclipse.jdt.annotation.NonNull;
  * we need to force {@link #writeReplace()} to be abstract. We do that by making it final and exposing a protected
  * {@link #externalizableProxy()} method.
  *
- * <p>
- * All concrete subclasses of this class should be final so as to form a distinct set of possible metadata. Since
+ * <p>All concrete subclasses of this class should be final so as to form a distinct set of possible metadata. Since
  * metadata is serialized along with {@link MetadataShardDataTreeSnapshot}, this set is part of the serialization format
  * guarded by {@link PayloadVersion}.
  *
- * <p>
- * If a new metadata type is introduced or a type is removed, {@link PayloadVersion} needs to be bumped to ensure
+ * <p>If a new metadata type is introduced or a type is removed, {@link PayloadVersion} needs to be bumped to ensure
  * compatibility.
- *
- * @author Robert Varga
  */
 public abstract class ShardDataTreeSnapshotMetadata<T extends ShardDataTreeSnapshotMetadata<T>>
         implements Serializable {
index 496069d0a198b354ca8a671000366a229209ab97..b63b050e09f78a421f37220114aab5aad357245e 100644 (file)
@@ -5,7 +5,6 @@
  * 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.controller.cluster.datastore.shardstrategy;
 
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
@@ -17,9 +16,7 @@ public interface ShardStrategy {
     /**
      * Find the name of the shard in which the data pointed to by the specified path belongs in.
      *
-     * <p>
-     * Should return the name of the default shard DefaultShardStrategy.DEFAULT_SHARD
-     * if no matching shard was found
+     * <p>Should return the name of the default shard DefaultShardStrategy.DEFAULT_SHARD if no matching shard was found
      *
      * @param path the location of the data in the logical tree
      * @return the corresponding shard name.
index ffef55d4d901c3fd6041ecd71fb3be971e43fd09..4979fa9956a1d04c4b4aca8980366da90950a776 100644 (file)
@@ -247,8 +247,7 @@ public abstract class UnsignedLongBitmap implements Immutable {
     /**
      * {@inheritDoc}
      *
-     * <p>
-     * Implementations of this method return a deterministic value.
+     * <p>Implementations of this method return a deterministic value.
      */
     @Override
     public abstract int hashCode();
index 59393a3ee0c4699e06093a2e3750170625a01257..87c1c153b1f031c20965da47fd2e0031ed931531 100644 (file)
@@ -27,11 +27,8 @@ import org.opendaylight.yangtools.concepts.WritableObjects;
  * A class holding an equivalent of {@code Set<UnsignedLong>}. It is geared towards efficiently tracking ranges of
  * objects, similar to what a {@link RangeSet} would do.
  *
- * <p>
- * Unlike a {@code RangeSet}, though, this class takes advantage of knowing that an unsigned long is a discrete unit
+ * <p>Unlike a {@code RangeSet}, though, this class takes advantage of knowing that an unsigned long is a discrete unit
  * and can be stored in a simple {@code long}.
- *
- * @author Robert Varga
  */
 abstract class UnsignedLongSet {
     @Beta
index 2d2bd7933830178e05dc996b29420504bb5114af..3851213184bef390ceb0130e36f219e7c8823594 100644 (file)
@@ -39,8 +39,7 @@ import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absol
  * {@link DOMRpcService#invokeRpc(SchemaPath, NormalizedNode)} and
  * {@link DOMActionService#invokeAction(SchemaPath, DOMDataTreeIdentifier, ContainerNode)}.
  *
- * <p>
- * Note that while the two interfaces are very similar, invocation strategies are slightly different due to historic
+ * <p>Note that while the two interfaces are very similar, invocation strategies are slightly different due to historic
  * behavior of RPCs:
  * <ul>
  *   <li>RPCs allow both null input and output, and this is passed to the infrastructure. Furthermore any invocation
index 2a91b5ab614c84fb8c1c8c37771513fa82b8af51..84b2452e46e720050e974108b2bfe9019000d722 100644 (file)
@@ -31,9 +31,8 @@ import org.opendaylight.mdsal.dom.api.DOMActionInstance;
 /**
  * Registry to look up cluster nodes that have registered for a given Action.
  *
- * <p>
- * It uses {@link org.opendaylight.controller.remote.rpc.registry.gossip.BucketStoreActor} to maintain this
- * cluster wide information.
+ * <p>It uses {@link org.opendaylight.controller.remote.rpc.registry.gossip.BucketStoreActor} to maintain this
+ * cluster-wide information.
  */
 public class ActionRegistry extends BucketStoreActor<ActionRoutingTable> {
     private final ActorRef rpcRegistrar;
index 8d66ed8ccb163abc56891009bfe09cfdae29add6..5dc6ba3eb6ea533d1dc10f326ed5aed5c729b9b8 100644 (file)
@@ -36,9 +36,8 @@ import org.opendaylight.mdsal.dom.api.DOMRpcIdentifier;
 /**
  * Registry to look up cluster nodes that have registered for a given RPC.
  *
- * <p>
- * It uses {@link org.opendaylight.controller.remote.rpc.registry.gossip.BucketStoreActor} to maintain this
- * cluster wide information.
+ * <p>It uses {@link org.opendaylight.controller.remote.rpc.registry.gossip.BucketStoreActor} to maintain this
+ * cluster-wide information.
  */
 public class RpcRegistry extends BucketStoreActor<RoutingTable> {
     private final ActorRef rpcRegistrar;
index bf6cf0ba6e63f1f859d7837c639f0be29f062826..d7204f32676e9ae09babb2e71cc203a71825b9b0 100644 (file)
@@ -43,8 +43,7 @@ import org.opendaylight.controller.remote.rpc.RemoteOpsProviderConfig;
  * It maintains a {@link org.opendaylight.controller.remote.rpc.registry.gossip.Bucket} per node. Buckets are versioned.
  * A node can write ONLY to its bucket. This way, write conflicts are avoided.
  *
- * <p>
- * Buckets are sync'ed across nodes using Gossip protocol (http://en.wikipedia.org/wiki/Gossip_protocol).
+ * <p>Buckets are sync'ed across nodes using Gossip protocol (http://en.wikipedia.org/wiki/Gossip_protocol).
  * This store uses a {@link org.opendaylight.controller.remote.rpc.registry.gossip.Gossiper}.
  */
 public abstract class BucketStoreActor<T extends BucketData<T>> extends
index 40be108b2e40a5ae821b24bbd50f11c8f04654ed..4eb49dbb4c46d927e5426bd3568658f39c5bdf5e 100644 (file)
@@ -38,19 +38,16 @@ import scala.concurrent.duration.FiniteDuration;
 /**
  * Gossiper that syncs bucket store across nodes in the cluster.
  *
- * <p>
- * It keeps a local scheduler that periodically sends Gossip ticks to
+ * <p>It keeps a local scheduler that periodically sends Gossip ticks to
  * itself to send bucket store's bucket versions to a randomly selected remote
  * gossiper.
  *
- * <p>
- * When bucket versions are received from a remote gossiper, it is compared
+ * <p>When bucket versions are received from a remote gossiper, it is compared
  * with bucket store's bucket versions. Which ever buckets are newer
  * locally, are sent to remote gossiper. If any bucket is older in bucket store,
  * a gossip status is sent to remote gossiper so that it can send the newer buckets.
  *
- * <p>
- * When a bucket is received from a remote gossiper, its sent to the bucket store
+ * <p>When a bucket is received from a remote gossiper, its sent to the bucket store
  * for update.
  */
 public class Gossiper extends AbstractUntypedActorWithMetering {
index e02b399208190cc7177461ee9954f25528510bc5..5d975c3cd1bbce7aa5ac157f6063342dd6a133ab 100644 (file)
@@ -61,10 +61,7 @@ public interface RaftJournal extends AutoCloseable {
     EntryReader openCommitsReader(long index);
 
     /**
-     * Compacts the journal up to the given index.
-     *
-     * <p>
-     * The semantics of compaction are not specified by this interface.
+     * Compacts the journal up to the given index. The semantics of compaction are not specified by this interface.
      *
      * @param index The index up to which to compact the journal.
      */