You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@accumulo.apache.org by ct...@apache.org on 2020/07/16 17:07:30 UTC

[accumulo] branch master updated (d879f58 -> 287f9b3)

This is an automated email from the ASF dual-hosted git repository.

ctubbsii pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/accumulo.git.


    from d879f58  Merge branch '1.9'
     new ac479ba  Rename yield method (future restricted identifier)
     new 1b2946f  Close unclosed Scanners
     new 1caf7c7  Merge branch '1.9'
     new 0fda74c  Numerous warnings cleanup
     new 287f9b3  Update deprecations with since version information

The 5 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../accumulo/core/client/ClientConfiguration.java  |  2 +-
 .../org/apache/accumulo/core/client/Connector.java |  8 +--
 .../org/apache/accumulo/core/client/Instance.java  |  8 +--
 .../core/client/MutationsRejectedException.java    |  2 +-
 .../core/client/TableOfflineException.java         |  2 +-
 .../accumulo/core/client/ZooKeeperInstance.java    |  2 +-
 .../core/client/admin/CompactionConfig.java        |  5 +-
 .../core/client/admin/TableOperations.java         | 12 ++--
 .../core/client/mapred/AbstractInputFormat.java    |  6 +-
 .../client/mapred/AccumuloFileOutputFormat.java    |  2 +-
 .../core/client/mapred/AccumuloInputFormat.java    |  2 +-
 .../mapred/AccumuloMultiTableInputFormat.java      |  2 +-
 .../core/client/mapred/AccumuloOutputFormat.java   |  8 +--
 .../core/client/mapred/AccumuloRowInputFormat.java |  2 +-
 .../core/client/mapred/InputFormatBase.java        |  8 +--
 .../core/client/mapred/RangeInputSplit.java        |  2 +-
 .../core/client/mapreduce/AbstractInputFormat.java | 10 +--
 .../client/mapreduce/AccumuloFileOutputFormat.java |  2 +-
 .../core/client/mapreduce/AccumuloInputFormat.java |  2 +-
 .../mapreduce/AccumuloMultiTableInputFormat.java   |  2 +-
 .../client/mapreduce/AccumuloOutputFormat.java     |  8 +--
 .../client/mapreduce/AccumuloRowInputFormat.java   |  2 +-
 .../core/client/mapreduce/InputFormatBase.java     |  8 +--
 .../core/client/mapreduce/InputTableConfig.java    |  2 +-
 .../core/client/mapreduce/RangeInputSplit.java     |  8 +--
 .../lib/partition/KeyRangePartitioner.java         |  2 +-
 .../mapreduce/lib/partition/RangePartitioner.java  |  2 +-
 .../accumulo/core/clientImpl/ClientContext.java    |  2 +-
 .../accumulo/core/clientImpl/ConnectorImpl.java    |  3 +-
 .../accumulo/core/clientImpl/OfflineIterator.java  |  4 +-
 .../core/clientImpl/TableOperationsImpl.java       |  4 +-
 .../core/clientImpl/mapred/BatchInputSplit.java    |  2 +-
 .../core/clientImpl/mapreduce/BatchInputSplit.java |  2 +-
 .../clientImpl/mapreduce/DelegationTokenStub.java  |  2 +-
 .../core/clientImpl/mapreduce/SplitUtils.java      |  2 +-
 .../org/apache/accumulo/core/conf/Property.java    | 20 +++---
 .../core/iterators/IteratorEnvironment.java        |  8 +--
 .../apache/accumulo/core/logging/TabletLogger.java |  2 -
 .../accumulo/core/spi/compaction/package-info.java | 27 ++++----
 .../accumulo/core/spi/scan/ScanDispatcher.java     |  4 +-
 .../org/apache/accumulo/core/util/CleanUp.java     |  2 +-
 .../accumulo/core/util/format/BinaryFormatter.java |  2 +-
 .../core/util/format/DateStringFormatter.java      |  2 +-
 .../accumulo/core/volume/VolumeConfiguration.java  |  2 +-
 .../core/client/ZooKeeperInstanceTest.java         |  2 +-
 .../mapred/AccumuloFileOutputFormatTest.java       |  5 +-
 .../client/mapred/AccumuloInputFormatTest.java     |  5 +-
 .../mapred/AccumuloMultiTableInputFormatTest.java  |  5 +-
 .../client/mapred/AccumuloOutputFormatTest.java    |  5 +-
 .../core/client/mapred/RangeInputSplitTest.java    |  5 +-
 .../mapreduce/AccumuloFileOutputFormatTest.java    |  5 +-
 .../client/mapreduce/AccumuloInputFormatTest.java  |  5 +-
 .../AccumuloMultiTableInputFormatTest.java         |  5 +-
 .../client/mapreduce/AccumuloOutputFormatTest.java |  5 +-
 .../client/mapreduce/InputTableConfigTest.java     |  5 +-
 .../core/client/mapreduce/RangeInputSplitTest.java |  5 +-
 .../lib/partition/RangePartitionerTest.java        |  5 +-
 .../core/clientImpl/TableOperationsHelperTest.java |  2 +-
 .../clientImpl/mapreduce/BatchInputSplitTest.java  |  5 +-
 .../core/iterators/DefaultIteratorEnvironment.java |  2 +-
 .../apache/accumulo/cluster/AccumuloCluster.java   |  2 +-
 .../standalone/StandaloneAccumuloCluster.java      |  2 +-
 .../accumulo/minicluster/MiniAccumuloCluster.java  |  4 +-
 .../accumulo/minicluster/MiniAccumuloInstance.java |  2 +-
 .../apache/accumulo/server/fs/VolumeChooser.java   |  2 +-
 .../server/master/balancer/TabletBalancer.java     |  2 +-
 .../server/security/SystemCredentialsTest.java     |  2 +-
 .../tserver/TabletIteratorEnvironment.java         |  8 +--
 .../tserver/compaction/CompactionPlan.java         |  5 +-
 .../tserver/compaction/CompactionStrategy.java     |  3 +
 .../compaction/EverythingCompactionStrategy.java   |  3 +
 .../tserver/compaction/MajorCompactionRequest.java |  3 +
 .../compaction/SizeLimitCompactionStrategy.java    |  3 +
 .../tserver/compaction/WriteParameters.java        |  2 +-
 .../strategies/BasicCompactionStrategy.java        |  3 +
 .../TooManyDeletesCompactionStrategy.java          |  3 +
 .../accumulo/shell/commands/CompactCommand.java    |  7 +-
 .../accumulo/shell/commands/DebugCommand.java      |  2 +-
 .../org/apache/accumulo/test/ShellServerIT.java    |  2 +-
 .../accumulo/test/functional/AccumuloClientIT.java |  3 +-
 .../accumulo/test/functional/CloneTestIT.java      |  6 +-
 .../test/functional/ConfigurableCompactionIT.java  | 14 ++--
 .../apache/accumulo/test/functional/SummaryIT.java | 20 +++---
 .../test/mapred/AccumuloFileOutputFormatIT.java    |  2 +-
 .../test/mapred/AccumuloInputFormatIT.java         |  2 +-
 .../mapred/AccumuloMultiTableInputFormatIT.java    |  2 +-
 .../test/mapred/AccumuloOutputFormatIT.java        |  2 +-
 .../test/mapred/AccumuloRowInputFormatIT.java      |  2 +-
 .../apache/accumulo/test/mapred/TokenFileIT.java   |  2 +-
 .../test/mapreduce/AccumuloFileOutputFormatIT.java |  2 +-
 .../test/mapreduce/AccumuloInputFormatIT.java      |  2 +-
 .../mapreduce/AccumuloMultiTableInputFormatIT.java |  2 +-
 .../test/mapreduce/AccumuloOutputFormatIT.java     |  2 +-
 .../test/mapreduce/AccumuloRowInputFormatIT.java   |  2 +-
 .../accumulo/test/mapreduce/MapReduceIT.java       |  2 +-
 .../apache/accumulo/test/mapreduce/RowHash.java    |  2 +-
 .../accumulo/test/mapreduce/TokenFileIT.java       |  2 +-
 .../test/replication/KerberosReplicationIT.java    | 12 ++--
 .../replication/MultiInstanceReplicationIT.java    | 74 +++++++++++++---------
 .../UnorderedWorkAssignerReplicationIT.java        | 55 +++++++++-------
 100 files changed, 274 insertions(+), 280 deletions(-)


[accumulo] 03/03: Update deprecations with since version information

Posted by ct...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ctubbsii pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/accumulo.git

commit 287f9b399d485adfff99580823c753a3069f5c4f
Author: Christopher Tubbs <ct...@apache.org>
AuthorDate: Thu Jul 16 13:03:46 2020 -0400

    Update deprecations with since version information
    
    Add since = "version" where missing in `@Deprecated` annotations, and
    add mandatory warnings suppressions for use of terminally deprecated
    elements (when forRemoval is true) that generate warnings when used
    inside other deprecated code. For ordinary deprecations, the compiler
    would typically not warn, but for terminally deprecated elements, the
    compiler warns unless explicitly suppressed.
---
 .../accumulo/core/client/ClientConfiguration.java    |  2 +-
 .../org/apache/accumulo/core/client/Connector.java   |  8 ++++----
 .../org/apache/accumulo/core/client/Instance.java    |  8 ++++----
 .../core/client/MutationsRejectedException.java      |  2 +-
 .../accumulo/core/client/TableOfflineException.java  |  2 +-
 .../accumulo/core/client/ZooKeeperInstance.java      |  2 +-
 .../accumulo/core/client/admin/CompactionConfig.java |  5 +----
 .../accumulo/core/client/admin/TableOperations.java  | 12 ++++++------
 .../core/client/mapred/AbstractInputFormat.java      |  6 +++---
 .../core/client/mapred/AccumuloFileOutputFormat.java |  2 +-
 .../core/client/mapred/AccumuloInputFormat.java      |  2 +-
 .../client/mapred/AccumuloMultiTableInputFormat.java |  2 +-
 .../core/client/mapred/AccumuloOutputFormat.java     |  8 ++++----
 .../core/client/mapred/AccumuloRowInputFormat.java   |  2 +-
 .../accumulo/core/client/mapred/InputFormatBase.java |  8 ++++----
 .../accumulo/core/client/mapred/RangeInputSplit.java |  2 +-
 .../core/client/mapreduce/AbstractInputFormat.java   | 10 +++++-----
 .../client/mapreduce/AccumuloFileOutputFormat.java   |  2 +-
 .../core/client/mapreduce/AccumuloInputFormat.java   |  2 +-
 .../mapreduce/AccumuloMultiTableInputFormat.java     |  2 +-
 .../core/client/mapreduce/AccumuloOutputFormat.java  |  8 ++++----
 .../client/mapreduce/AccumuloRowInputFormat.java     |  2 +-
 .../core/client/mapreduce/InputFormatBase.java       |  8 ++++----
 .../core/client/mapreduce/InputTableConfig.java      |  2 +-
 .../core/client/mapreduce/RangeInputSplit.java       |  8 ++++----
 .../mapreduce/lib/partition/KeyRangePartitioner.java |  2 +-
 .../mapreduce/lib/partition/RangePartitioner.java    |  2 +-
 .../accumulo/core/clientImpl/ClientContext.java      |  2 +-
 .../accumulo/core/clientImpl/ConnectorImpl.java      |  3 +--
 .../accumulo/core/clientImpl/OfflineIterator.java    |  4 ++--
 .../core/clientImpl/TableOperationsImpl.java         |  4 ++--
 .../core/clientImpl/mapred/BatchInputSplit.java      |  2 +-
 .../core/clientImpl/mapreduce/BatchInputSplit.java   |  2 +-
 .../clientImpl/mapreduce/DelegationTokenStub.java    |  2 +-
 .../core/clientImpl/mapreduce/SplitUtils.java        |  2 +-
 .../java/org/apache/accumulo/core/conf/Property.java | 20 ++++++++++----------
 .../accumulo/core/iterators/IteratorEnvironment.java |  8 ++++----
 .../accumulo/core/spi/scan/ScanDispatcher.java       |  4 ++--
 .../java/org/apache/accumulo/core/util/CleanUp.java  |  2 +-
 .../accumulo/core/util/format/BinaryFormatter.java   |  2 +-
 .../core/util/format/DateStringFormatter.java        |  2 +-
 .../accumulo/core/volume/VolumeConfiguration.java    |  2 +-
 .../accumulo/core/client/ZooKeeperInstanceTest.java  |  2 +-
 .../client/mapred/AccumuloFileOutputFormatTest.java  |  5 +----
 .../core/client/mapred/AccumuloInputFormatTest.java  |  5 +----
 .../mapred/AccumuloMultiTableInputFormatTest.java    |  5 +----
 .../core/client/mapred/AccumuloOutputFormatTest.java |  5 +----
 .../core/client/mapred/RangeInputSplitTest.java      |  5 +----
 .../mapreduce/AccumuloFileOutputFormatTest.java      |  5 +----
 .../client/mapreduce/AccumuloInputFormatTest.java    |  5 +----
 .../mapreduce/AccumuloMultiTableInputFormatTest.java |  5 +----
 .../client/mapreduce/AccumuloOutputFormatTest.java   |  5 +----
 .../core/client/mapreduce/InputTableConfigTest.java  |  5 +----
 .../core/client/mapreduce/RangeInputSplitTest.java   |  5 +----
 .../lib/partition/RangePartitionerTest.java          |  5 +----
 .../core/clientImpl/TableOperationsHelperTest.java   |  2 +-
 .../clientImpl/mapreduce/BatchInputSplitTest.java    |  5 +----
 .../core/iterators/DefaultIteratorEnvironment.java   |  2 +-
 .../org/apache/accumulo/cluster/AccumuloCluster.java |  2 +-
 .../standalone/StandaloneAccumuloCluster.java        |  2 +-
 .../accumulo/minicluster/MiniAccumuloCluster.java    |  4 ++--
 .../accumulo/minicluster/MiniAccumuloInstance.java   |  2 +-
 .../org/apache/accumulo/server/fs/VolumeChooser.java |  2 +-
 .../server/master/balancer/TabletBalancer.java       |  2 +-
 .../server/security/SystemCredentialsTest.java       |  2 +-
 .../accumulo/tserver/TabletIteratorEnvironment.java  |  8 ++++----
 .../accumulo/tserver/compaction/CompactionPlan.java  |  5 ++++-
 .../tserver/compaction/CompactionStrategy.java       |  3 +++
 .../compaction/EverythingCompactionStrategy.java     |  3 +++
 .../tserver/compaction/MajorCompactionRequest.java   |  3 +++
 .../compaction/SizeLimitCompactionStrategy.java      |  3 +++
 .../accumulo/tserver/compaction/WriteParameters.java |  2 +-
 .../strategies/BasicCompactionStrategy.java          |  3 +++
 .../strategies/TooManyDeletesCompactionStrategy.java |  3 +++
 .../apache/accumulo/shell/commands/DebugCommand.java |  2 +-
 .../java/org/apache/accumulo/test/ShellServerIT.java |  2 +-
 .../test/mapred/AccumuloFileOutputFormatIT.java      |  2 +-
 .../accumulo/test/mapred/AccumuloInputFormatIT.java  |  2 +-
 .../test/mapred/AccumuloMultiTableInputFormatIT.java |  2 +-
 .../accumulo/test/mapred/AccumuloOutputFormatIT.java |  2 +-
 .../test/mapred/AccumuloRowInputFormatIT.java        |  2 +-
 .../org/apache/accumulo/test/mapred/TokenFileIT.java |  2 +-
 .../test/mapreduce/AccumuloFileOutputFormatIT.java   |  2 +-
 .../test/mapreduce/AccumuloInputFormatIT.java        |  2 +-
 .../mapreduce/AccumuloMultiTableInputFormatIT.java   |  2 +-
 .../test/mapreduce/AccumuloOutputFormatIT.java       |  2 +-
 .../test/mapreduce/AccumuloRowInputFormatIT.java     |  2 +-
 .../apache/accumulo/test/mapreduce/MapReduceIT.java  |  2 +-
 .../org/apache/accumulo/test/mapreduce/RowHash.java  |  2 +-
 .../apache/accumulo/test/mapreduce/TokenFileIT.java  |  2 +-
 90 files changed, 156 insertions(+), 178 deletions(-)

diff --git a/core/src/main/java/org/apache/accumulo/core/client/ClientConfiguration.java b/core/src/main/java/org/apache/accumulo/core/client/ClientConfiguration.java
index 63c213d..71ea06d 100644
--- a/core/src/main/java/org/apache/accumulo/core/client/ClientConfiguration.java
+++ b/core/src/main/java/org/apache/accumulo/core/client/ClientConfiguration.java
@@ -53,7 +53,7 @@ import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
  * @since 1.6.0
  * @deprecated since 2.0.0, replaced by {@link Accumulo#newClient()}
  */
-@Deprecated
+@Deprecated(since = "2.0.0")
 public class ClientConfiguration {
   private static final Logger log = LoggerFactory.getLogger(ClientConfiguration.class);
 
diff --git a/core/src/main/java/org/apache/accumulo/core/client/Connector.java b/core/src/main/java/org/apache/accumulo/core/client/Connector.java
index fa30e62..8c3fafe 100644
--- a/core/src/main/java/org/apache/accumulo/core/client/Connector.java
+++ b/core/src/main/java/org/apache/accumulo/core/client/Connector.java
@@ -37,7 +37,7 @@ import org.apache.accumulo.core.security.Authorizations;
  * @deprecated since 2.0.0. Use {@link AccumuloClient} for writing new code. Connector is available
  *             for existing code. Use {@link #from(AccumuloClient)} as a bridge between the two.
  */
-@Deprecated
+@Deprecated(since = "2.0.0")
 public abstract class Connector {
 
   /**
@@ -87,7 +87,7 @@ public abstract class Connector {
    *             {@link #createBatchDeleter(String, Authorizations, int, BatchWriterConfig)}
    *             instead.
    */
-  @Deprecated
+  @Deprecated(since = "1.5.0")
   public abstract BatchDeleter createBatchDeleter(String tableName, Authorizations authorizations,
       int numQueryThreads, long maxMemory, long maxLatency, int maxWriteThreads)
       throws TableNotFoundException;
@@ -132,7 +132,7 @@ public abstract class Connector {
    *           when the specified table doesn't exist
    * @deprecated since 1.5.0; Use {@link #createBatchWriter(String, BatchWriterConfig)} instead.
    */
-  @Deprecated
+  @Deprecated(since = "1.5.0")
   public abstract BatchWriter createBatchWriter(String tableName, long maxMemory, long maxLatency,
       int maxWriteThreads) throws TableNotFoundException;
 
@@ -167,7 +167,7 @@ public abstract class Connector {
    * @return MultiTableBatchWriter object for configuring and writing data to
    * @deprecated since 1.5.0; Use {@link #createMultiTableBatchWriter(BatchWriterConfig)} instead.
    */
-  @Deprecated
+  @Deprecated(since = "1.5.0")
   public abstract MultiTableBatchWriter createMultiTableBatchWriter(long maxMemory, long maxLatency,
       int maxWriteThreads);
 
diff --git a/core/src/main/java/org/apache/accumulo/core/client/Instance.java b/core/src/main/java/org/apache/accumulo/core/client/Instance.java
index b5b1ac4..fe8c0df 100644
--- a/core/src/main/java/org/apache/accumulo/core/client/Instance.java
+++ b/core/src/main/java/org/apache/accumulo/core/client/Instance.java
@@ -31,7 +31,7 @@ import org.apache.accumulo.core.client.security.tokens.PasswordToken;
  * @deprecated since 2.0.0, use {@link Accumulo#newClient()} and {@link java.util.Properties}
  *             instead
  */
-@Deprecated
+@Deprecated(since = "2.0.0")
 public interface Instance {
   /**
    * Returns the location of the tablet server that is serving the root tablet.
@@ -90,7 +90,7 @@ public interface Instance {
    * @deprecated since 1.5, use {@link #getConnector(String, AuthenticationToken)} with
    *             {@link PasswordToken}
    */
-  @Deprecated
+  @Deprecated(since = "1.5.0")
   default Connector getConnector(String user, byte[] pass)
       throws AccumuloException, AccumuloSecurityException {
     return getConnector(user, new PasswordToken(pass));
@@ -111,7 +111,7 @@ public interface Instance {
    * @deprecated since 1.5, use {@link #getConnector(String, AuthenticationToken)} with
    *             {@link PasswordToken}
    */
-  @Deprecated
+  @Deprecated(since = "1.5.0")
   default Connector getConnector(String user, ByteBuffer pass)
       throws AccumuloException, AccumuloSecurityException {
     return getConnector(user, new PasswordToken(pass));
@@ -132,7 +132,7 @@ public interface Instance {
    * @deprecated since 1.5, use {@link #getConnector(String, AuthenticationToken)} with
    *             {@link PasswordToken}
    */
-  @Deprecated
+  @Deprecated(since = "1.5.0")
   default Connector getConnector(String user, CharSequence pass)
       throws AccumuloException, AccumuloSecurityException {
     return getConnector(user, new PasswordToken(pass));
diff --git a/core/src/main/java/org/apache/accumulo/core/client/MutationsRejectedException.java b/core/src/main/java/org/apache/accumulo/core/client/MutationsRejectedException.java
index d074cd0..84e24f9 100644
--- a/core/src/main/java/org/apache/accumulo/core/client/MutationsRejectedException.java
+++ b/core/src/main/java/org/apache/accumulo/core/client/MutationsRejectedException.java
@@ -59,7 +59,7 @@ public class MutationsRejectedException extends AccumuloException {
    * @deprecated since 2.0.0, replaced by
    *             {@link #MutationsRejectedException(AccumuloClient, List, Map, Collection, int, Throwable)}
    */
-  @Deprecated
+  @Deprecated(since = "2.0.0")
   public MutationsRejectedException(Instance instance, List<ConstraintViolationSummary> cvsList,
       Map<TabletId,Set<SecurityErrorCode>> hashMap, Collection<String> serverSideErrors,
       int unknownErrors, Throwable cause) {
diff --git a/core/src/main/java/org/apache/accumulo/core/client/TableOfflineException.java b/core/src/main/java/org/apache/accumulo/core/client/TableOfflineException.java
index 4e5a133..2a8d8dd 100644
--- a/core/src/main/java/org/apache/accumulo/core/client/TableOfflineException.java
+++ b/core/src/main/java/org/apache/accumulo/core/client/TableOfflineException.java
@@ -25,7 +25,7 @@ public class TableOfflineException extends RuntimeException {
   /**
    * @deprecated since 2.0.0, replaced by {@link #TableOfflineException(String)}
    */
-  @Deprecated
+  @Deprecated(since = "2.0.0")
   public TableOfflineException(Instance instance, String tableId) {
     super("Table with ID (" + tableId + ") is offline");
   }
diff --git a/core/src/main/java/org/apache/accumulo/core/client/ZooKeeperInstance.java b/core/src/main/java/org/apache/accumulo/core/client/ZooKeeperInstance.java
index a477d87..f671767 100644
--- a/core/src/main/java/org/apache/accumulo/core/client/ZooKeeperInstance.java
+++ b/core/src/main/java/org/apache/accumulo/core/client/ZooKeeperInstance.java
@@ -64,7 +64,7 @@ import org.slf4j.LoggerFactory;
  *
  * @deprecated since 2.0.0, Use {@link Accumulo#newClient()} instead
  */
-@Deprecated
+@Deprecated(since = "2.0.0")
 public class ZooKeeperInstance implements Instance {
 
   private static final Logger log = LoggerFactory.getLogger(ZooKeeperInstance.class);
diff --git a/core/src/main/java/org/apache/accumulo/core/client/admin/CompactionConfig.java b/core/src/main/java/org/apache/accumulo/core/client/admin/CompactionConfig.java
index 2ac65f9..a064939 100644
--- a/core/src/main/java/org/apache/accumulo/core/client/admin/CompactionConfig.java
+++ b/core/src/main/java/org/apache/accumulo/core/client/admin/CompactionConfig.java
@@ -40,6 +40,7 @@ import com.google.common.base.Preconditions;
  *
  * @since 1.7.0
  */
+@SuppressWarnings("removal")
 public class CompactionConfig {
 
   private Text start = null;
@@ -47,7 +48,6 @@ public class CompactionConfig {
   private boolean flush = true;
   private boolean wait = true;
   private List<IteratorSetting> iterators = Collections.emptyList();
-  @SuppressWarnings("removal")
   private CompactionStrategyConfig compactionStrategy = DEFAULT_STRATEGY;
   private Map<String,String> hints = Map.of();
   private PluginConfig selectorConfig = UserCompactionUtils.DEFAULT_SELECTOR;
@@ -185,7 +185,6 @@ public class CompactionConfig {
    * @return this;
    * @since 2.1.0
    */
-  @SuppressWarnings("removal")
   public CompactionConfig setSelector(PluginConfig selectorConfig) {
     Preconditions.checkState(compactionStrategy.getClassName().isEmpty());
     Preconditions.checkArgument(!selectorConfig.getClassName().isBlank());
@@ -203,7 +202,6 @@ public class CompactionConfig {
   /**
    * @since 2.1.0
    */
-  @SuppressWarnings("removal")
   public CompactionConfig setExecutionHints(Map<String,String> hints) {
     if (!hints.isEmpty())
       Preconditions.checkState(compactionStrategy.getClassName().isEmpty());
@@ -224,7 +222,6 @@ public class CompactionConfig {
    *
    * @since 2.1.0
    */
-  @SuppressWarnings("removal")
   public CompactionConfig setConfigurer(PluginConfig configurerConfig) {
     Preconditions.checkState(compactionStrategy.getClassName().isEmpty());
     this.configurerConfig = configurerConfig;
diff --git a/core/src/main/java/org/apache/accumulo/core/client/admin/TableOperations.java b/core/src/main/java/org/apache/accumulo/core/client/admin/TableOperations.java
index 02b3422..38f0ebf 100644
--- a/core/src/main/java/org/apache/accumulo/core/client/admin/TableOperations.java
+++ b/core/src/main/java/org/apache/accumulo/core/client/admin/TableOperations.java
@@ -105,7 +105,7 @@ public interface TableOperations {
    *           if the table already exists
    * @deprecated since 1.7.0; use {@link #create(String, NewTableConfiguration)} instead.
    */
-  @Deprecated
+  @Deprecated(since = "1.7.0")
   default void create(String tableName, boolean limitVersion)
       throws AccumuloException, AccumuloSecurityException, TableExistsException {
     if (limitVersion)
@@ -130,7 +130,7 @@ public interface TableOperations {
    *           if the table already exists
    * @deprecated since 1.7.0; use {@link #create(String, NewTableConfiguration)} instead.
    */
-  @Deprecated
+  @Deprecated(since = "1.7.0")
   default void create(String tableName, boolean versioningIter, TimeType timeType)
       throws AccumuloException, AccumuloSecurityException, TableExistsException {
     NewTableConfiguration ntc = new NewTableConfiguration().setTimeType(timeType);
@@ -257,7 +257,7 @@ public interface TableOperations {
    *           if the table does not exist
    * @deprecated since 1.5.0; use {@link #listSplits(String)} instead.
    */
-  @Deprecated
+  @Deprecated(since = "1.5.0")
   default Collection<Text> getSplits(String tableName) throws TableNotFoundException {
     try {
       return listSplits(tableName);
@@ -290,7 +290,7 @@ public interface TableOperations {
    *         fewer splits so as not to exceed maxSplits
    * @deprecated since 1.5.0; use {@link #listSplits(String, int)} instead.
    */
-  @Deprecated
+  @Deprecated(since = "1.5.0")
   default Collection<Text> getSplits(String tableName, int maxSplits)
       throws TableNotFoundException {
     try {
@@ -696,7 +696,7 @@ public interface TableOperations {
    *
    * @deprecated since 2.0.0 use {@link #importDirectory(String)} instead.
    */
-  @Deprecated
+  @Deprecated(since = "2.0.0")
   void importDirectory(String tableName, String dir, String failureDir, boolean setTime)
       throws TableNotFoundException, IOException, AccumuloException, AccumuloSecurityException;
 
@@ -734,7 +734,7 @@ public interface TableOperations {
      * This is the default number of threads used to determine where to load files. A suffix of
      * {@code C} means to multiply by the number of cores.
      */
-    public static final String BULK_LOAD_THREADS_DEFAULT = "8C";
+    String BULK_LOAD_THREADS_DEFAULT = "8C";
 
     /**
      * Load files in the directory to the row ranges specified in the plan. The plan should contain
diff --git a/core/src/main/java/org/apache/accumulo/core/client/mapred/AbstractInputFormat.java b/core/src/main/java/org/apache/accumulo/core/client/mapred/AbstractInputFormat.java
index 271295d..44ab6ae 100644
--- a/core/src/main/java/org/apache/accumulo/core/client/mapred/AbstractInputFormat.java
+++ b/core/src/main/java/org/apache/accumulo/core/client/mapred/AbstractInputFormat.java
@@ -84,7 +84,7 @@ import org.apache.log4j.Logger;
  * @deprecated since 2.0.0; Use org.apache.accumulo.hadoop.mapred instead from the
  *             accumulo-hadoop-mapreduce.jar
  */
-@Deprecated
+@Deprecated(since = "2.0.0")
 public abstract class AbstractInputFormat<K,V> implements InputFormat<K,V> {
 
   protected static final Class<?> CLASS = AccumuloInputFormat.class;
@@ -240,7 +240,7 @@ public abstract class AbstractInputFormat<K,V> implements InputFormat<K,V> {
    *             {@link #setZooKeeperInstance(JobConf, org.apache.accumulo.core.client.ClientConfiguration)}
    *             instead.
    */
-  @Deprecated
+  @Deprecated(since = "1.6.0")
   public static void setZooKeeperInstance(JobConf job, String instanceName, String zooKeepers) {
     setZooKeeperInstance(job, org.apache.accumulo.core.client.ClientConfiguration.create()
         .withInstance(instanceName).withZkHosts(zooKeepers));
@@ -460,7 +460,7 @@ public abstract class AbstractInputFormat<K,V> implements InputFormat<K,V> {
      * @since 1.6.0
      * @deprecated since 1.7.0; Use {@link #jobIterators} instead.
      */
-    @Deprecated
+    @Deprecated(since = "1.7.0")
     protected void setupIterators(JobConf job, Scanner scanner, String tableName,
         RangeInputSplit split) {
       setupIterators(job, (ScannerBase) scanner, tableName, split);
diff --git a/core/src/main/java/org/apache/accumulo/core/client/mapred/AccumuloFileOutputFormat.java b/core/src/main/java/org/apache/accumulo/core/client/mapred/AccumuloFileOutputFormat.java
index 76b8991..4599340 100644
--- a/core/src/main/java/org/apache/accumulo/core/client/mapred/AccumuloFileOutputFormat.java
+++ b/core/src/main/java/org/apache/accumulo/core/client/mapred/AccumuloFileOutputFormat.java
@@ -54,7 +54,7 @@ import org.apache.log4j.Logger;
  * @deprecated since 2.0.0; Use org.apache.accumulo.hadoop.mapred instead from the
  *             accumulo-hadoop-mapreduce.jar
  */
-@Deprecated
+@Deprecated(since = "2.0.0")
 public class AccumuloFileOutputFormat extends FileOutputFormat<Key,Value> {
 
   private static final Class<?> CLASS = AccumuloFileOutputFormat.class;
diff --git a/core/src/main/java/org/apache/accumulo/core/client/mapred/AccumuloInputFormat.java b/core/src/main/java/org/apache/accumulo/core/client/mapred/AccumuloInputFormat.java
index 798d2e7..4d99114 100644
--- a/core/src/main/java/org/apache/accumulo/core/client/mapred/AccumuloInputFormat.java
+++ b/core/src/main/java/org/apache/accumulo/core/client/mapred/AccumuloInputFormat.java
@@ -52,7 +52,7 @@ import org.apache.log4j.Level;
  * @deprecated since 2.0.0; Use org.apache.accumulo.hadoop.mapred instead from the
  *             accumulo-hadoop-mapreduce.jar
  */
-@Deprecated
+@Deprecated(since = "2.0.0")
 public class AccumuloInputFormat extends InputFormatBase<Key,Value> {
 
   @Override
diff --git a/core/src/main/java/org/apache/accumulo/core/client/mapred/AccumuloMultiTableInputFormat.java b/core/src/main/java/org/apache/accumulo/core/client/mapred/AccumuloMultiTableInputFormat.java
index b9e8e3a..7bd94ea 100644
--- a/core/src/main/java/org/apache/accumulo/core/client/mapred/AccumuloMultiTableInputFormat.java
+++ b/core/src/main/java/org/apache/accumulo/core/client/mapred/AccumuloMultiTableInputFormat.java
@@ -51,7 +51,7 @@ import org.apache.hadoop.mapred.Reporter;
  * @deprecated since 2.0.0; Use org.apache.accumulo.hadoop.mapred instead from the
  *             accumulo-hadoop-mapreduce.jar
  */
-@Deprecated
+@Deprecated(since = "2.0.0")
 public class AccumuloMultiTableInputFormat extends AbstractInputFormat<Key,Value> {
 
   /**
diff --git a/core/src/main/java/org/apache/accumulo/core/client/mapred/AccumuloOutputFormat.java b/core/src/main/java/org/apache/accumulo/core/client/mapred/AccumuloOutputFormat.java
index 252c114..c5b8885 100644
--- a/core/src/main/java/org/apache/accumulo/core/client/mapred/AccumuloOutputFormat.java
+++ b/core/src/main/java/org/apache/accumulo/core/client/mapred/AccumuloOutputFormat.java
@@ -76,7 +76,7 @@ import org.apache.log4j.Logger;
  * @deprecated since 2.0.0; Use org.apache.accumulo.hadoop.mapred instead from the
  *             accumulo-hadoop-mapreduce.jar
  */
-@Deprecated
+@Deprecated(since = "2.0.0")
 public class AccumuloOutputFormat implements OutputFormat<Text,Mutation> {
 
   private static final Class<?> CLASS = AccumuloOutputFormat.class;
@@ -185,7 +185,7 @@ public class AccumuloOutputFormat implements OutputFormat<Text,Mutation> {
    * @since 1.5.0
    * @deprecated since 1.6.0; Use {@link #getAuthenticationToken(JobConf)} instead.
    */
-  @Deprecated
+  @Deprecated(since = "1.6.0")
   protected static String getTokenClass(JobConf job) {
     return getAuthenticationToken(job).getClass().getName();
   }
@@ -196,7 +196,7 @@ public class AccumuloOutputFormat implements OutputFormat<Text,Mutation> {
    * @since 1.5.0
    * @deprecated since 1.6.0; Use {@link #getAuthenticationToken(JobConf)} instead.
    */
-  @Deprecated
+  @Deprecated(since = "1.6.0")
   protected static byte[] getToken(JobConf job) {
     return AuthenticationTokenSerializer.serialize(getAuthenticationToken(job));
   }
@@ -231,7 +231,7 @@ public class AccumuloOutputFormat implements OutputFormat<Text,Mutation> {
    *             {@link #setZooKeeperInstance(JobConf, org.apache.accumulo.core.client.ClientConfiguration)}
    *             instead.
    */
-  @Deprecated
+  @Deprecated(since = "1.6.0")
   public static void setZooKeeperInstance(JobConf job, String instanceName, String zooKeepers) {
     setZooKeeperInstance(job, org.apache.accumulo.core.client.ClientConfiguration.create()
         .withInstance(instanceName).withZkHosts(zooKeepers));
diff --git a/core/src/main/java/org/apache/accumulo/core/client/mapred/AccumuloRowInputFormat.java b/core/src/main/java/org/apache/accumulo/core/client/mapred/AccumuloRowInputFormat.java
index e5222fa..c46cd58 100644
--- a/core/src/main/java/org/apache/accumulo/core/client/mapred/AccumuloRowInputFormat.java
+++ b/core/src/main/java/org/apache/accumulo/core/client/mapred/AccumuloRowInputFormat.java
@@ -54,7 +54,7 @@ import org.apache.hadoop.mapred.Reporter;
  * @deprecated since 2.0.0; Use org.apache.accumulo.hadoop.mapred instead from the
  *             accumulo-hadoop-mapreduce.jar
  */
-@Deprecated
+@Deprecated(since = "2.0.0")
 public class AccumuloRowInputFormat
     extends InputFormatBase<Text,PeekingIterator<Entry<Key,Value>>> {
   @Override
diff --git a/core/src/main/java/org/apache/accumulo/core/client/mapred/InputFormatBase.java b/core/src/main/java/org/apache/accumulo/core/client/mapred/InputFormatBase.java
index 16e0ca9..7daa7b7 100644
--- a/core/src/main/java/org/apache/accumulo/core/client/mapred/InputFormatBase.java
+++ b/core/src/main/java/org/apache/accumulo/core/client/mapred/InputFormatBase.java
@@ -59,7 +59,7 @@ import org.apache.hadoop.mapred.Reporter;
  * @deprecated since 2.0.0; Use org.apache.accumulo.hadoop.mapred instead from the
  *             accumulo-hadoop-mapreduce.jar
  */
-@Deprecated
+@Deprecated(since = "2.0.0")
 public abstract class InputFormatBase<K,V> extends AbstractInputFormat<K,V> {
 
   /**
@@ -384,7 +384,7 @@ public abstract class InputFormatBase<K,V> extends AbstractInputFormat<K,V> {
   protected abstract static class RecordReaderBase<K,V> extends AbstractRecordReader<K,V> {
 
     @Override
-    @Deprecated
+    @Deprecated(since = "2.0.0")
     protected List<IteratorSetting> jobIterators(JobConf job, String tableName) {
       return getIterators(job);
     }
@@ -398,7 +398,7 @@ public abstract class InputFormatBase<K,V> extends AbstractInputFormat<K,V> {
      *          the scanner to configure
      * @deprecated since 1.7.0; Use {@link #jobIterators} instead.
      */
-    @Deprecated
+    @Deprecated(since = "1.7.0")
     protected void setupIterators(List<IteratorSetting> iterators, Scanner scanner) {
       for (IteratorSetting iterator : iterators) {
         scanner.addScanIterator(iterator);
@@ -413,7 +413,7 @@ public abstract class InputFormatBase<K,V> extends AbstractInputFormat<K,V> {
      * @param scanner
      *          the scanner to configure
      */
-    @Deprecated
+    @Deprecated(since = "1.7.0")
     protected void setupIterators(JobConf job, Scanner scanner) {
       setupIterators(getIterators(job), scanner);
     }
diff --git a/core/src/main/java/org/apache/accumulo/core/client/mapred/RangeInputSplit.java b/core/src/main/java/org/apache/accumulo/core/client/mapred/RangeInputSplit.java
index 09a7dcc..768aae4 100644
--- a/core/src/main/java/org/apache/accumulo/core/client/mapred/RangeInputSplit.java
+++ b/core/src/main/java/org/apache/accumulo/core/client/mapred/RangeInputSplit.java
@@ -31,7 +31,7 @@ import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
  * @deprecated since 2.0.0; Use org.apache.accumulo.hadoop.mapred instead from the
  *             accumulo-hadoop-mapreduce.jar
  */
-@Deprecated
+@Deprecated(since = "2.0.0")
 @SuppressFBWarnings(value = "NM_SAME_SIMPLE_NAME_AS_SUPERCLASS",
     justification = "Intended to share code between mapred and mapreduce")
 public class RangeInputSplit extends org.apache.accumulo.core.client.mapreduce.RangeInputSplit
diff --git a/core/src/main/java/org/apache/accumulo/core/client/mapreduce/AbstractInputFormat.java b/core/src/main/java/org/apache/accumulo/core/client/mapreduce/AbstractInputFormat.java
index c4969a0..d9ff2de 100644
--- a/core/src/main/java/org/apache/accumulo/core/client/mapreduce/AbstractInputFormat.java
+++ b/core/src/main/java/org/apache/accumulo/core/client/mapreduce/AbstractInputFormat.java
@@ -86,7 +86,7 @@ import org.apache.log4j.Logger;
  * @deprecated since 2.0.0; Use org.apache.accumulo.hadoop.mapreduce instead from the
  *             accumulo-hadoop-mapreduce.jar
  */
-@Deprecated
+@Deprecated(since = "2.0.0")
 public abstract class AbstractInputFormat<K,V> extends InputFormat<K,V> {
 
   protected static final Class<?> CLASS = AccumuloInputFormat.class;
@@ -218,7 +218,7 @@ public abstract class AbstractInputFormat<K,V> extends InputFormat<K,V> {
    * @since 1.5.0
    * @deprecated since 1.6.0; Use {@link #getAuthenticationToken(JobContext)} instead.
    */
-  @Deprecated
+  @Deprecated(since = "1.6.0")
   protected static String getTokenClass(JobContext job) {
     return getAuthenticationToken(job).getClass().getName();
   }
@@ -229,7 +229,7 @@ public abstract class AbstractInputFormat<K,V> extends InputFormat<K,V> {
    * @since 1.5.0
    * @deprecated since 1.6.0; Use {@link #getAuthenticationToken(JobContext)} instead.
    */
-  @Deprecated
+  @Deprecated(since = "1.6.0")
   protected static byte[] getToken(JobContext job) {
     return AuthenticationToken.AuthenticationTokenSerializer.serialize(getAuthenticationToken(job));
   }
@@ -263,7 +263,7 @@ public abstract class AbstractInputFormat<K,V> extends InputFormat<K,V> {
    * @since 1.5.0
    * @deprecated since 1.6.0
    */
-  @Deprecated
+  @Deprecated(since = "1.6.0")
   public static void setZooKeeperInstance(Job job, String instanceName, String zooKeepers) {
     setZooKeeperInstance(job, org.apache.accumulo.core.client.ClientConfiguration.create()
         .withInstance(instanceName).withZkHosts(zooKeepers));
@@ -482,7 +482,7 @@ public abstract class AbstractInputFormat<K,V> extends InputFormat<K,V> {
      * @since 1.6.0
      * @deprecated since 1.7.0; Use {@link #contextIterators} instead.
      */
-    @Deprecated
+    @Deprecated(since = "1.7.0")
     protected void setupIterators(TaskAttemptContext context, Scanner scanner, String tableName,
         RangeInputSplit split) {
       setupIterators(context, (ScannerBase) scanner, tableName, split);
diff --git a/core/src/main/java/org/apache/accumulo/core/client/mapreduce/AccumuloFileOutputFormat.java b/core/src/main/java/org/apache/accumulo/core/client/mapreduce/AccumuloFileOutputFormat.java
index 90a692a..abf73ce 100644
--- a/core/src/main/java/org/apache/accumulo/core/client/mapreduce/AccumuloFileOutputFormat.java
+++ b/core/src/main/java/org/apache/accumulo/core/client/mapreduce/AccumuloFileOutputFormat.java
@@ -52,7 +52,7 @@ import org.apache.log4j.Logger;
  * @deprecated since 2.0.0; Use org.apache.accumulo.hadoop.mapreduce instead from the
  *             accumulo-hadoop-mapreduce.jar
  */
-@Deprecated
+@Deprecated(since = "2.0.0")
 public class AccumuloFileOutputFormat extends FileOutputFormat<Key,Value> {
 
   private static final Class<?> CLASS = AccumuloFileOutputFormat.class;
diff --git a/core/src/main/java/org/apache/accumulo/core/client/mapreduce/AccumuloInputFormat.java b/core/src/main/java/org/apache/accumulo/core/client/mapreduce/AccumuloInputFormat.java
index 85ae210..e4865a8 100644
--- a/core/src/main/java/org/apache/accumulo/core/client/mapreduce/AccumuloInputFormat.java
+++ b/core/src/main/java/org/apache/accumulo/core/client/mapreduce/AccumuloInputFormat.java
@@ -51,7 +51,7 @@ import org.apache.log4j.Level;
  * @deprecated since 2.0.0; Use org.apache.accumulo.hadoop.mapreduce instead from the
  *             accumulo-hadoop-mapreduce.jar
  */
-@Deprecated
+@Deprecated(since = "2.0.0")
 public class AccumuloInputFormat extends InputFormatBase<Key,Value> {
 
   @Override
diff --git a/core/src/main/java/org/apache/accumulo/core/client/mapreduce/AccumuloMultiTableInputFormat.java b/core/src/main/java/org/apache/accumulo/core/client/mapreduce/AccumuloMultiTableInputFormat.java
index 3e45e32..5679591 100644
--- a/core/src/main/java/org/apache/accumulo/core/client/mapreduce/AccumuloMultiTableInputFormat.java
+++ b/core/src/main/java/org/apache/accumulo/core/client/mapreduce/AccumuloMultiTableInputFormat.java
@@ -54,7 +54,7 @@ import org.apache.hadoop.mapreduce.TaskAttemptContext;
  * @deprecated since 2.0.0; Use org.apache.accumulo.hadoop.mapreduce instead from the
  *             accumulo-hadoop-mapreduce.jar
  */
-@Deprecated
+@Deprecated(since = "2.0.0")
 public class AccumuloMultiTableInputFormat extends AbstractInputFormat<Key,Value> {
 
   /**
diff --git a/core/src/main/java/org/apache/accumulo/core/client/mapreduce/AccumuloOutputFormat.java b/core/src/main/java/org/apache/accumulo/core/client/mapreduce/AccumuloOutputFormat.java
index ba99fcc..43937b8 100644
--- a/core/src/main/java/org/apache/accumulo/core/client/mapreduce/AccumuloOutputFormat.java
+++ b/core/src/main/java/org/apache/accumulo/core/client/mapreduce/AccumuloOutputFormat.java
@@ -77,7 +77,7 @@ import org.apache.log4j.Logger;
  * @deprecated since 2.0.0; Use org.apache.accumulo.hadoop.mapreduce instead from the
  *             accumulo-hadoop-mapreduce.jar
  */
-@Deprecated
+@Deprecated(since = "2.0.0")
 public class AccumuloOutputFormat extends OutputFormat<Text,Mutation> {
 
   private static final Class<?> CLASS = AccumuloOutputFormat.class;
@@ -186,7 +186,7 @@ public class AccumuloOutputFormat extends OutputFormat<Text,Mutation> {
    * @since 1.5.0
    * @deprecated since 1.6.0; Use {@link #getAuthenticationToken(JobContext)} instead.
    */
-  @Deprecated
+  @Deprecated(since = "1.6.0")
   protected static String getTokenClass(JobContext context) {
     return getAuthenticationToken(context).getClass().getName();
   }
@@ -197,7 +197,7 @@ public class AccumuloOutputFormat extends OutputFormat<Text,Mutation> {
    * @since 1.5.0
    * @deprecated since 1.6.0; Use {@link #getAuthenticationToken(JobContext)} instead.
    */
-  @Deprecated
+  @Deprecated(since = "1.6.0")
   protected static byte[] getToken(JobContext context) {
     return AuthenticationTokenSerializer.serialize(getAuthenticationToken(context));
   }
@@ -233,7 +233,7 @@ public class AccumuloOutputFormat extends OutputFormat<Text,Mutation> {
    *             {@link #setZooKeeperInstance(Job, org.apache.accumulo.core.client.ClientConfiguration)}
    *             instead.
    */
-  @Deprecated
+  @Deprecated(since = "1.6.0")
   public static void setZooKeeperInstance(Job job, String instanceName, String zooKeepers) {
     setZooKeeperInstance(job, org.apache.accumulo.core.client.ClientConfiguration.create()
         .withInstance(instanceName).withZkHosts(zooKeepers));
diff --git a/core/src/main/java/org/apache/accumulo/core/client/mapreduce/AccumuloRowInputFormat.java b/core/src/main/java/org/apache/accumulo/core/client/mapreduce/AccumuloRowInputFormat.java
index 147bb0d..7e06510 100644
--- a/core/src/main/java/org/apache/accumulo/core/client/mapreduce/AccumuloRowInputFormat.java
+++ b/core/src/main/java/org/apache/accumulo/core/client/mapreduce/AccumuloRowInputFormat.java
@@ -54,7 +54,7 @@ import org.apache.hadoop.mapreduce.TaskAttemptContext;
  * @deprecated since 2.0.0; Use org.apache.accumulo.hadoop.mapreduce instead from the
  *             accumulo-hadoop-mapreduce.jar
  */
-@Deprecated
+@Deprecated(since = "2.0.0")
 public class AccumuloRowInputFormat
     extends InputFormatBase<Text,PeekingIterator<Entry<Key,Value>>> {
   @Override
diff --git a/core/src/main/java/org/apache/accumulo/core/client/mapreduce/InputFormatBase.java b/core/src/main/java/org/apache/accumulo/core/client/mapreduce/InputFormatBase.java
index 0192e76..9b00c86 100644
--- a/core/src/main/java/org/apache/accumulo/core/client/mapreduce/InputFormatBase.java
+++ b/core/src/main/java/org/apache/accumulo/core/client/mapreduce/InputFormatBase.java
@@ -60,7 +60,7 @@ import org.apache.hadoop.mapreduce.TaskAttemptContext;
  * @deprecated since 2.0.0; Use org.apache.accumulo.hadoop.mapreduce instead from the
  *             accumulo-hadoop-mapreduce.jar
  */
-@Deprecated
+@Deprecated(since = "2.0.0")
 public abstract class InputFormatBase<K,V> extends AbstractInputFormat<K,V> {
 
   /**
@@ -383,7 +383,7 @@ public abstract class InputFormatBase<K,V> extends AbstractInputFormat<K,V> {
   protected abstract static class RecordReaderBase<K,V> extends AbstractRecordReader<K,V> {
 
     @Override
-    @Deprecated
+    @Deprecated(since = "2.0.0")
     protected List<IteratorSetting> contextIterators(TaskAttemptContext context, String tableName) {
       return getIterators(context);
     }
@@ -397,7 +397,7 @@ public abstract class InputFormatBase<K,V> extends AbstractInputFormat<K,V> {
      *          the scanner to configure
      * @deprecated since 1.7.0; Use {@link #contextIterators} instead.
      */
-    @Deprecated
+    @Deprecated(since = "1.7.0")
     protected void setupIterators(TaskAttemptContext context, Scanner scanner) {
       // tableName is given as null as it will be ignored in eventual call to #contextIterators
       setupIterators(context, scanner, null, null);
@@ -408,7 +408,7 @@ public abstract class InputFormatBase<K,V> extends AbstractInputFormat<K,V> {
      *
      * @deprecated since 1.7.0; Use {@link #contextIterators} instead.
      */
-    @Deprecated
+    @Deprecated(since = "1.7.0")
     protected void setupIterators(TaskAttemptContext context, Scanner scanner,
         org.apache.accumulo.core.client.mapreduce.RangeInputSplit split) {
       setupIterators(context, scanner, null, split);
diff --git a/core/src/main/java/org/apache/accumulo/core/client/mapreduce/InputTableConfig.java b/core/src/main/java/org/apache/accumulo/core/client/mapreduce/InputTableConfig.java
index 45661ef..4cc19d9 100644
--- a/core/src/main/java/org/apache/accumulo/core/client/mapreduce/InputTableConfig.java
+++ b/core/src/main/java/org/apache/accumulo/core/client/mapreduce/InputTableConfig.java
@@ -45,7 +45,7 @@ import org.apache.hadoop.io.Writable;
  * @deprecated since 2.0.0; Use org.apache.accumulo.hadoop.mapreduce instead from the
  *             accumulo-hadoop-mapreduce.jar
  */
-@Deprecated
+@Deprecated(since = "2.0.0")
 public class InputTableConfig implements Writable {
 
   private List<IteratorSetting> iterators;
diff --git a/core/src/main/java/org/apache/accumulo/core/client/mapreduce/RangeInputSplit.java b/core/src/main/java/org/apache/accumulo/core/client/mapreduce/RangeInputSplit.java
index d8451db..3aafe91 100644
--- a/core/src/main/java/org/apache/accumulo/core/client/mapreduce/RangeInputSplit.java
+++ b/core/src/main/java/org/apache/accumulo/core/client/mapreduce/RangeInputSplit.java
@@ -53,7 +53,7 @@ import org.apache.log4j.Level;
  * @deprecated since 2.0.0; Use org.apache.accumulo.hadoop.mapreduce instead from the
  *             accumulo-hadoop-mapreduce.jar
  */
-@Deprecated
+@Deprecated(since = "2.0.0")
 public class RangeInputSplit extends InputSplit implements Writable {
   private Range range;
   private String[] locations;
@@ -322,7 +322,7 @@ public class RangeInputSplit extends InputSplit implements Writable {
    *
    * @deprecated since 1.6.1, use getTableName() instead.
    */
-  @Deprecated
+  @Deprecated(since = "1.6.1")
   public String getTable() {
     return getTableName();
   }
@@ -336,7 +336,7 @@ public class RangeInputSplit extends InputSplit implements Writable {
    *
    * @deprecated since 1.6.1, use setTableName() instead.
    */
-  @Deprecated
+  @Deprecated(since = "1.6.1")
   public void setTable(String table) {
     setTableName(table);
   }
@@ -357,7 +357,7 @@ public class RangeInputSplit extends InputSplit implements Writable {
    * @see #getInstance(org.apache.accumulo.core.client.ClientConfiguration)
    * @deprecated since 1.7.0, use getInstance(ClientConfiguration) instead.
    */
-  @Deprecated
+  @Deprecated(since = "1.7.0")
   public org.apache.accumulo.core.client.Instance getInstance() {
     return getInstance(org.apache.accumulo.core.client.ClientConfiguration.loadDefault());
   }
diff --git a/core/src/main/java/org/apache/accumulo/core/client/mapreduce/lib/partition/KeyRangePartitioner.java b/core/src/main/java/org/apache/accumulo/core/client/mapreduce/lib/partition/KeyRangePartitioner.java
index 63c318d..8db39a9 100644
--- a/core/src/main/java/org/apache/accumulo/core/client/mapreduce/lib/partition/KeyRangePartitioner.java
+++ b/core/src/main/java/org/apache/accumulo/core/client/mapreduce/lib/partition/KeyRangePartitioner.java
@@ -31,7 +31,7 @@ import org.apache.hadoop.mapreduce.Partitioner;
  * @deprecated since 2.0.0; Use org.apache.accumulo.hadoop.mapreduce.partition instead from the
  *             accumulo-hadoop-mapreduce.jar
  */
-@Deprecated
+@Deprecated(since = "2.0.0")
 public class KeyRangePartitioner extends Partitioner<Key,Writable> implements Configurable {
   private RangePartitioner rp = new RangePartitioner();
 
diff --git a/core/src/main/java/org/apache/accumulo/core/client/mapreduce/lib/partition/RangePartitioner.java b/core/src/main/java/org/apache/accumulo/core/client/mapreduce/lib/partition/RangePartitioner.java
index 0731a67..e67733d 100644
--- a/core/src/main/java/org/apache/accumulo/core/client/mapreduce/lib/partition/RangePartitioner.java
+++ b/core/src/main/java/org/apache/accumulo/core/client/mapreduce/lib/partition/RangePartitioner.java
@@ -41,7 +41,7 @@ import org.apache.hadoop.mapreduce.Partitioner;
  * @deprecated since 2.0.0; Use org.apache.accumulo.hadoop.mapreduce.partition instead from the
  *             accumulo-hadoop-mapreduce.jar
  */
-@Deprecated
+@Deprecated(since = "2.0.0")
 public class RangePartitioner extends Partitioner<Text,Writable> implements Configurable {
   private static final String PREFIX = RangePartitioner.class.getName();
   private static final String CUTFILE_KEY = PREFIX + ".cutFile";
diff --git a/core/src/main/java/org/apache/accumulo/core/clientImpl/ClientContext.java b/core/src/main/java/org/apache/accumulo/core/clientImpl/ClientContext.java
index 39239a0..2c8ab60 100644
--- a/core/src/main/java/org/apache/accumulo/core/clientImpl/ClientContext.java
+++ b/core/src/main/java/org/apache/accumulo/core/clientImpl/ClientContext.java
@@ -156,7 +156,7 @@ public class ClientContext implements AccumuloClient {
    *
    * @deprecated since 2.0.0
    */
-  @Deprecated
+  @Deprecated(since = "2.0.0")
   public org.apache.accumulo.core.client.Instance getDeprecatedInstance() {
     final ClientContext context = this;
     return new org.apache.accumulo.core.client.Instance() {
diff --git a/core/src/main/java/org/apache/accumulo/core/clientImpl/ConnectorImpl.java b/core/src/main/java/org/apache/accumulo/core/clientImpl/ConnectorImpl.java
index 3d410bb..b609611 100644
--- a/core/src/main/java/org/apache/accumulo/core/clientImpl/ConnectorImpl.java
+++ b/core/src/main/java/org/apache/accumulo/core/clientImpl/ConnectorImpl.java
@@ -48,7 +48,7 @@ import org.apache.accumulo.core.trace.TraceUtil;
  * This class now delegates to {@link ClientContext}, except for the methods which were not copied
  * over to that.
  */
-@Deprecated
+@Deprecated(since = "2.0.0")
 public class ConnectorImpl extends org.apache.accumulo.core.client.Connector {
 
   private static final String SYSTEM_TOKEN_NAME =
@@ -78,7 +78,6 @@ public class ConnectorImpl extends org.apache.accumulo.core.client.Connector {
   }
 
   @Override
-  @Deprecated
   public org.apache.accumulo.core.client.Instance getInstance() {
     return context.getDeprecatedInstance();
   }
diff --git a/core/src/main/java/org/apache/accumulo/core/clientImpl/OfflineIterator.java b/core/src/main/java/org/apache/accumulo/core/clientImpl/OfflineIterator.java
index 243ff76..2e54329 100644
--- a/core/src/main/java/org/apache/accumulo/core/clientImpl/OfflineIterator.java
+++ b/core/src/main/java/org/apache/accumulo/core/clientImpl/OfflineIterator.java
@@ -88,7 +88,7 @@ class OfflineIterator implements Iterator<Entry<Key,Value>> {
       this.sampleConf = samplerConf;
     }
 
-    @Deprecated
+    @Deprecated(since = "2.0.0")
     @Override
     public AccumuloConfiguration getConfig() {
       return conf;
@@ -111,7 +111,7 @@ class OfflineIterator implements Iterator<Entry<Key,Value>> {
 
     private ArrayList<SortedKeyValueIterator<Key,Value>> topLevelIterators = new ArrayList<>();
 
-    @Deprecated
+    @Deprecated(since = "2.0.0")
     @Override
     public void registerSideChannel(SortedKeyValueIterator<Key,Value> iter) {
       topLevelIterators.add(iter);
diff --git a/core/src/main/java/org/apache/accumulo/core/clientImpl/TableOperationsImpl.java b/core/src/main/java/org/apache/accumulo/core/clientImpl/TableOperationsImpl.java
index 46dada5..87aa64b 100644
--- a/core/src/main/java/org/apache/accumulo/core/clientImpl/TableOperationsImpl.java
+++ b/core/src/main/java/org/apache/accumulo/core/clientImpl/TableOperationsImpl.java
@@ -1232,7 +1232,7 @@ public class TableOperationsImpl extends TableOperationsHelper {
   }
 
   @Override
-  @Deprecated
+  @Deprecated(since = "2.0.0")
   public void importDirectory(String tableName, String dir, String failureDir, boolean setTime)
       throws IOException, AccumuloSecurityException, TableNotFoundException, AccumuloException {
     checkArgument(tableName != null, "tableName is null");
@@ -1570,7 +1570,7 @@ public class TableOperationsImpl extends TableOperationsHelper {
     checkArgument(tableName.length() <= MAX_TABLE_NAME_LEN,
         "Table name is longer than " + MAX_TABLE_NAME_LEN + " characters");
 
-    Set<String> checkedImportDirs = new HashSet<String>();
+    Set<String> checkedImportDirs = new HashSet<>();
     try {
       for (String s : importDirs) {
         checkedImportDirs.add(checkPath(s, "Table", "").toString());
diff --git a/core/src/main/java/org/apache/accumulo/core/clientImpl/mapred/BatchInputSplit.java b/core/src/main/java/org/apache/accumulo/core/clientImpl/mapred/BatchInputSplit.java
index e019b2e..baf7db0 100644
--- a/core/src/main/java/org/apache/accumulo/core/clientImpl/mapred/BatchInputSplit.java
+++ b/core/src/main/java/org/apache/accumulo/core/clientImpl/mapred/BatchInputSplit.java
@@ -35,7 +35,7 @@ import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
  */
 @SuppressFBWarnings(value = "NM_SAME_SIMPLE_NAME_AS_SUPERCLASS",
     justification = "Intended to share code between mapred and mapreduce")
-@Deprecated
+@Deprecated(since = "2.0.0")
 public class BatchInputSplit extends org.apache.accumulo.core.clientImpl.mapreduce.BatchInputSplit
     implements InputSplit {
 
diff --git a/core/src/main/java/org/apache/accumulo/core/clientImpl/mapreduce/BatchInputSplit.java b/core/src/main/java/org/apache/accumulo/core/clientImpl/mapreduce/BatchInputSplit.java
index db91c06..a31b756 100644
--- a/core/src/main/java/org/apache/accumulo/core/clientImpl/mapreduce/BatchInputSplit.java
+++ b/core/src/main/java/org/apache/accumulo/core/clientImpl/mapreduce/BatchInputSplit.java
@@ -37,7 +37,7 @@ import org.apache.accumulo.core.data.TableId;
  *
  * @deprecated since 2.0.0
  */
-@Deprecated
+@Deprecated(since = "2.0.0")
 public class BatchInputSplit extends org.apache.accumulo.core.client.mapreduce.RangeInputSplit {
   private Collection<Range> ranges;
   private float[] rangeProgress = null;
diff --git a/core/src/main/java/org/apache/accumulo/core/clientImpl/mapreduce/DelegationTokenStub.java b/core/src/main/java/org/apache/accumulo/core/clientImpl/mapreduce/DelegationTokenStub.java
index ace759a..21325b4 100644
--- a/core/src/main/java/org/apache/accumulo/core/clientImpl/mapreduce/DelegationTokenStub.java
+++ b/core/src/main/java/org/apache/accumulo/core/clientImpl/mapreduce/DelegationTokenStub.java
@@ -32,7 +32,7 @@ import org.apache.accumulo.core.client.security.tokens.AuthenticationToken;
  *
  * @deprecated since 2.0.0
  */
-@Deprecated
+@Deprecated(since = "2.0.0")
 public class DelegationTokenStub implements AuthenticationToken {
 
   private String serviceName;
diff --git a/core/src/main/java/org/apache/accumulo/core/clientImpl/mapreduce/SplitUtils.java b/core/src/main/java/org/apache/accumulo/core/clientImpl/mapreduce/SplitUtils.java
index 44ad773..99dc5ae 100644
--- a/core/src/main/java/org/apache/accumulo/core/clientImpl/mapreduce/SplitUtils.java
+++ b/core/src/main/java/org/apache/accumulo/core/clientImpl/mapreduce/SplitUtils.java
@@ -28,7 +28,7 @@ import org.apache.log4j.Level;
 /**
  * @deprecated since 2.0.0
  */
-@Deprecated
+@Deprecated(since = "2.0.0")
 public class SplitUtils {
 
   /**
diff --git a/core/src/main/java/org/apache/accumulo/core/conf/Property.java b/core/src/main/java/org/apache/accumulo/core/conf/Property.java
index 1defd73..0f453dc 100644
--- a/core/src/main/java/org/apache/accumulo/core/conf/Property.java
+++ b/core/src/main/java/org/apache/accumulo/core/conf/Property.java
@@ -180,7 +180,7 @@ public enum Property {
   GENERAL_PREFIX("general.", null, PropertyType.PREFIX,
       "Properties in this category affect the behavior of accumulo overall, but"
           + " do not have to be consistent throughout a cloud."),
-  @Deprecated
+  @Deprecated(since = "2.0.0")
   GENERAL_DYNAMIC_CLASSPATHS(AccumuloVFSClassLoader.DYNAMIC_CLASSPATH_PROPERTY_NAME,
       AccumuloVFSClassLoader.DEFAULT_DYNAMIC_CLASSPATH_VALUE, PropertyType.STRING,
       "This property is deprecated since 2.0.0. A list of all of the places where changes "
@@ -254,7 +254,7 @@ public enum Property {
       "The time to wait for a tablet server to process a bulk import request"),
   MASTER_RENAME_THREADS("master.rename.threadpool.size", "20", PropertyType.COUNT,
       "The number of threads to use when renaming user files during table import or bulk ingest."),
-  @Deprecated
+  @Deprecated(since = "2.1.0")
   @ReplacedBy(property = MASTER_RENAME_THREADS)
   MASTER_BULK_RENAME_THREADS("master.bulk.rename.threadpool.size", "20", PropertyType.COUNT,
       "This property is deprecated since 2.1.0. The number of threads to use when moving user files to bulk ingest "
@@ -688,7 +688,7 @@ public enum Property {
       "A tablet is split when the combined size of RFiles exceeds this amount."),
   TABLE_MAX_END_ROW_SIZE("table.split.endrow.size.max", "10K", PropertyType.BYTES,
       "Maximum size of end row"),
-  @Deprecated
+  @Deprecated(since = "2.0.0")
   @ReplacedBy(property = Property.TSERV_WALOG_MAX_REFERENCED)
   TABLE_MINC_LOGS_MAX("table.compaction.minor.logs.threshold", "3", PropertyType.COUNT,
       "This property is deprecated since 2.0.0."),
@@ -982,7 +982,7 @@ public enum Property {
       "Amount of time for a single replication RPC call to last before failing"
           + " the attempt. See replication.work.attempts."),
   // deprecated properties grouped at the end to reference property that replaces them
-  @Deprecated
+  @Deprecated(since = "1.6.0")
   @ReplacedBy(property = INSTANCE_VOLUMES)
   INSTANCE_DFS_URI("instance.dfs.uri", "", PropertyType.URI,
       "This property is deprecated since 1.6.0. "
@@ -993,35 +993,35 @@ public enum Property {
           + " reference files. Files created before a 1.6.0 upgrade are referenced via"
           + " relative paths. Relative paths will always be resolved using this config"
           + " (if empty using the hadoop config)."),
-  @Deprecated
+  @Deprecated(since = "1.6.0")
   @ReplacedBy(property = INSTANCE_VOLUMES)
   INSTANCE_DFS_DIR("instance.dfs.dir", "/accumulo", PropertyType.ABSOLUTEPATH,
       "This property is deprecated since 1.6.0. "
           + "HDFS directory in which accumulo instance will run. "
           + "Do not change after accumulo is initialized."),
-  @Deprecated
+  @Deprecated(since = "2.0.0")
   GENERAL_CLASSPATHS(AccumuloClassLoader.GENERAL_CLASSPATHS, "", PropertyType.STRING,
       "This property is deprecated since 2.0.0. The class path should instead be configured"
           + " by the launch environment (for example, accumulo-env.sh). A list of all"
           + " of the places to look for a class. Order does matter, as it will look for"
           + " the jar starting in the first location to the last. Supports full regex"
           + " on filename alone."),
-  @Deprecated
+  @Deprecated(since = "1.7.0")
   @ReplacedBy(property = TABLE_DURABILITY)
   TSERV_WAL_SYNC_METHOD("tserver.wal.sync.method", "hsync", PropertyType.STRING,
       "This property is deprecated since 1.7.0. Use table.durability instead."),
-  @Deprecated
+  @Deprecated(since = "1.7.0")
   @ReplacedBy(property = TABLE_DURABILITY)
   TABLE_WALOG_ENABLED("table.walog.enabled", "true", PropertyType.BOOLEAN,
       "This setting is deprecated since 1.7.0. Use table.durability=none instead."),
-  @Deprecated
+  @Deprecated(since = "2.0.0")
   @ReplacedBy(property = TSERV_SCAN_EXECUTORS_DEFAULT_THREADS)
   TSERV_READ_AHEAD_MAXCONCURRENT("tserver.readahead.concurrent.max", "16", PropertyType.COUNT,
       "This property is deprecated since 2.0.0, use tserver.scan.executors.default.threads "
           + "instead. The maximum number of concurrent read ahead that will execute. This "
           + "effectively limits the number of long running scans that can run concurrently "
           + "per tserver.\""),
-  @Deprecated
+  @Deprecated(since = "2.0.0")
   @ReplacedBy(property = TSERV_SCAN_EXECUTORS_META_THREADS)
   TSERV_METADATA_READ_AHEAD_MAXCONCURRENT("tserver.metadata.readahead.concurrent.max", "8",
       PropertyType.COUNT,
diff --git a/core/src/main/java/org/apache/accumulo/core/iterators/IteratorEnvironment.java b/core/src/main/java/org/apache/accumulo/core/iterators/IteratorEnvironment.java
index f99b4a1..6881040 100644
--- a/core/src/main/java/org/apache/accumulo/core/iterators/IteratorEnvironment.java
+++ b/core/src/main/java/org/apache/accumulo/core/iterators/IteratorEnvironment.java
@@ -36,7 +36,7 @@ public interface IteratorEnvironment {
   /**
    * @deprecated since 2.0.0. This is a legacy method used for internal backwards compatibility.
    */
-  @Deprecated
+  @Deprecated(since = "2.0.0")
   default SortedKeyValueIterator<Key,Value> reserveMapFileReader(String mapFileName)
       throws IOException {
     throw new UnsupportedOperationException();
@@ -46,7 +46,7 @@ public interface IteratorEnvironment {
    * @deprecated since 2.0.0. This method was using an unstable non public type. Use
    *             {@link #getPluginEnv()}
    */
-  @Deprecated
+  @Deprecated(since = "2.0.0")
   default AccumuloConfiguration getConfig() {
     throw new UnsupportedOperationException();
   }
@@ -70,7 +70,7 @@ public interface IteratorEnvironment {
   /**
    * @deprecated since 2.0.0. This was an experimental feature and was never tested or documented.
    */
-  @Deprecated
+  @Deprecated(since = "2.0.0")
   default void registerSideChannel(SortedKeyValueIterator<Key,Value> iter) {
     throw new UnsupportedOperationException();
   }
@@ -161,7 +161,7 @@ public interface IteratorEnvironment {
    * @deprecated since 2.1.0. This method was using a non public API type. Use
    *             {@link #getPluginEnv()} instead because it has better stability guarantees.
    */
-  @Deprecated
+  @Deprecated(since = "2.1.0")
   default ServiceEnvironment getServiceEnv() {
     throw new UnsupportedOperationException();
   }
diff --git a/core/src/main/java/org/apache/accumulo/core/spi/scan/ScanDispatcher.java b/core/src/main/java/org/apache/accumulo/core/spi/scan/ScanDispatcher.java
index 8806b82..1d233f1 100644
--- a/core/src/main/java/org/apache/accumulo/core/spi/scan/ScanDispatcher.java
+++ b/core/src/main/java/org/apache/accumulo/core/spi/scan/ScanDispatcher.java
@@ -72,7 +72,7 @@ public interface ScanDispatcher {
    * @deprecated since 2.1.0 replaced by {@link DispatchParameters} and
    *             {@link ScanDispatcher#dispatch(DispatchParameters)}
    */
-  @Deprecated
+  @Deprecated(since = "2.1.0")
   public interface DispatchParmaters extends DispatchParameters {}
 
   /**
@@ -83,7 +83,7 @@ public interface ScanDispatcher {
    *             never call this. However the default implementation of
    *             {@link #dispatch(DispatchParameters)} calls this method.
    */
-  @Deprecated
+  @Deprecated(since = "2.1.0")
   default String dispatch(DispatchParmaters params) {
     throw new UnsupportedOperationException();
   }
diff --git a/core/src/main/java/org/apache/accumulo/core/util/CleanUp.java b/core/src/main/java/org/apache/accumulo/core/util/CleanUp.java
index 2839025..af83fa9 100644
--- a/core/src/main/java/org/apache/accumulo/core/util/CleanUp.java
+++ b/core/src/main/java/org/apache/accumulo/core/util/CleanUp.java
@@ -39,7 +39,7 @@ import org.slf4j.LoggerFactory;
  * @deprecated since 2.0.0 Use only {@link AccumuloClient} instead. Also, make sure you close the
  *             AccumuloClient instances.
  */
-@Deprecated
+@Deprecated(since = "2.0.0")
 public class CleanUp {
 
   private static final Logger log = LoggerFactory.getLogger(CleanUp.class);
diff --git a/core/src/main/java/org/apache/accumulo/core/util/format/BinaryFormatter.java b/core/src/main/java/org/apache/accumulo/core/util/format/BinaryFormatter.java
index b7261b5..7b154b3 100644
--- a/core/src/main/java/org/apache/accumulo/core/util/format/BinaryFormatter.java
+++ b/core/src/main/java/org/apache/accumulo/core/util/format/BinaryFormatter.java
@@ -28,7 +28,7 @@ import org.apache.accumulo.core.security.ColumnVisibility;
  * @deprecated since 1.8.0; Use {@link DefaultFormatter} providing showLength and printTimestamps
  *             via {@link FormatterConfig}.
  */
-@Deprecated
+@Deprecated(since = "1.8.0")
 public class BinaryFormatter extends DefaultFormatter {
   // this class can probably be replaced by DefaultFormatter since DefaultFormatter has the max
   // length stuff
diff --git a/core/src/main/java/org/apache/accumulo/core/util/format/DateStringFormatter.java b/core/src/main/java/org/apache/accumulo/core/util/format/DateStringFormatter.java
index 53dc886..60f3959 100644
--- a/core/src/main/java/org/apache/accumulo/core/util/format/DateStringFormatter.java
+++ b/core/src/main/java/org/apache/accumulo/core/util/format/DateStringFormatter.java
@@ -42,7 +42,7 @@ import org.apache.accumulo.core.data.Value;
  *
  * @deprecated since 1.8.0
  */
-@Deprecated
+@Deprecated(since = "1.8.0")
 public class DateStringFormatter implements Formatter {
 
   private DefaultFormatter defaultFormatter;
diff --git a/core/src/main/java/org/apache/accumulo/core/volume/VolumeConfiguration.java b/core/src/main/java/org/apache/accumulo/core/volume/VolumeConfiguration.java
index 7872b7f..b5e0438 100644
--- a/core/src/main/java/org/apache/accumulo/core/volume/VolumeConfiguration.java
+++ b/core/src/main/java/org/apache/accumulo/core/volume/VolumeConfiguration.java
@@ -67,7 +67,7 @@ public class VolumeConfiguration {
   /**
    * @see org.apache.accumulo.core.volume.VolumeConfiguration#getVolumeUris(AccumuloConfiguration,Configuration)
    */
-  @Deprecated
+  @Deprecated(since = "1.3.0")
   public static String getConfiguredBaseDir(AccumuloConfiguration conf,
       Configuration hadoopConfig) {
     String singleNamespace = conf.get(Property.INSTANCE_DFS_DIR);
diff --git a/core/src/test/java/org/apache/accumulo/core/client/ZooKeeperInstanceTest.java b/core/src/test/java/org/apache/accumulo/core/client/ZooKeeperInstanceTest.java
index 341acbf..1c28d9c 100644
--- a/core/src/test/java/org/apache/accumulo/core/client/ZooKeeperInstanceTest.java
+++ b/core/src/test/java/org/apache/accumulo/core/client/ZooKeeperInstanceTest.java
@@ -34,7 +34,7 @@ import org.easymock.EasyMock;
 import org.junit.Before;
 import org.junit.Test;
 
-@Deprecated
+@Deprecated(since = "2.0.0")
 public class ZooKeeperInstanceTest {
   private static final UUID IID = UUID.randomUUID();
   private static final String IID_STRING = IID.toString();
diff --git a/core/src/test/java/org/apache/accumulo/core/client/mapred/AccumuloFileOutputFormatTest.java b/core/src/test/java/org/apache/accumulo/core/client/mapred/AccumuloFileOutputFormatTest.java
index 1decdc6..d7134e7 100644
--- a/core/src/test/java/org/apache/accumulo/core/client/mapred/AccumuloFileOutputFormatTest.java
+++ b/core/src/test/java/org/apache/accumulo/core/client/mapred/AccumuloFileOutputFormatTest.java
@@ -28,10 +28,7 @@ import org.apache.accumulo.core.sample.impl.SamplerConfigurationImpl;
 import org.apache.hadoop.mapred.JobConf;
 import org.junit.Test;
 
-/**
- * @deprecated since 2.0.0
- */
-@Deprecated
+@Deprecated(since = "2.0.0")
 public class AccumuloFileOutputFormatTest {
 
   @Test
diff --git a/core/src/test/java/org/apache/accumulo/core/client/mapred/AccumuloInputFormatTest.java b/core/src/test/java/org/apache/accumulo/core/client/mapred/AccumuloInputFormatTest.java
index 0dcb639..fb6e686 100644
--- a/core/src/test/java/org/apache/accumulo/core/client/mapred/AccumuloInputFormatTest.java
+++ b/core/src/test/java/org/apache/accumulo/core/client/mapred/AccumuloInputFormatTest.java
@@ -35,10 +35,7 @@ import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.TestName;
 
-/**
- * @deprecated since 2.0.0
- */
-@Deprecated
+@Deprecated(since = "2.0.0")
 public class AccumuloInputFormatTest {
 
   private JobConf job;
diff --git a/core/src/test/java/org/apache/accumulo/core/client/mapred/AccumuloMultiTableInputFormatTest.java b/core/src/test/java/org/apache/accumulo/core/client/mapred/AccumuloMultiTableInputFormatTest.java
index 85c8892..934b51c 100644
--- a/core/src/test/java/org/apache/accumulo/core/client/mapred/AccumuloMultiTableInputFormatTest.java
+++ b/core/src/test/java/org/apache/accumulo/core/client/mapred/AccumuloMultiTableInputFormatTest.java
@@ -33,10 +33,7 @@ import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.TestName;
 
-/**
- * @deprecated since 2.0.0
- */
-@Deprecated
+@Deprecated(since = "2.0.0")
 public class AccumuloMultiTableInputFormatTest {
 
   @Rule
diff --git a/core/src/test/java/org/apache/accumulo/core/client/mapred/AccumuloOutputFormatTest.java b/core/src/test/java/org/apache/accumulo/core/client/mapred/AccumuloOutputFormatTest.java
index be3143b..d510a2e 100644
--- a/core/src/test/java/org/apache/accumulo/core/client/mapred/AccumuloOutputFormatTest.java
+++ b/core/src/test/java/org/apache/accumulo/core/client/mapred/AccumuloOutputFormatTest.java
@@ -29,10 +29,7 @@ import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.mapred.JobConf;
 import org.junit.Test;
 
-/**
- * @deprecated since 2.0.0
- */
-@Deprecated
+@Deprecated(since = "2.0.0")
 public class AccumuloOutputFormatTest {
 
   @Test
diff --git a/core/src/test/java/org/apache/accumulo/core/client/mapred/RangeInputSplitTest.java b/core/src/test/java/org/apache/accumulo/core/client/mapred/RangeInputSplitTest.java
index b429f62..2992967 100644
--- a/core/src/test/java/org/apache/accumulo/core/client/mapred/RangeInputSplitTest.java
+++ b/core/src/test/java/org/apache/accumulo/core/client/mapred/RangeInputSplitTest.java
@@ -42,10 +42,7 @@ import org.apache.hadoop.io.Text;
 import org.apache.log4j.Level;
 import org.junit.Test;
 
-/**
- * @deprecated since 2.0.0
- */
-@Deprecated
+@Deprecated(since = "2.0.0")
 public class RangeInputSplitTest {
 
   @Test
diff --git a/core/src/test/java/org/apache/accumulo/core/client/mapreduce/AccumuloFileOutputFormatTest.java b/core/src/test/java/org/apache/accumulo/core/client/mapreduce/AccumuloFileOutputFormatTest.java
index 1fb1585..6987fd4 100644
--- a/core/src/test/java/org/apache/accumulo/core/client/mapreduce/AccumuloFileOutputFormatTest.java
+++ b/core/src/test/java/org/apache/accumulo/core/client/mapreduce/AccumuloFileOutputFormatTest.java
@@ -30,10 +30,7 @@ import org.apache.accumulo.core.sample.impl.SamplerConfigurationImpl;
 import org.apache.hadoop.mapreduce.Job;
 import org.junit.Test;
 
-/**
- * @deprecated since 2.0.0
- */
-@Deprecated
+@Deprecated(since = "2.0.0")
 public class AccumuloFileOutputFormatTest {
 
   @Test
diff --git a/core/src/test/java/org/apache/accumulo/core/client/mapreduce/AccumuloInputFormatTest.java b/core/src/test/java/org/apache/accumulo/core/client/mapreduce/AccumuloInputFormatTest.java
index 0599d7e..bb8c33b 100644
--- a/core/src/test/java/org/apache/accumulo/core/client/mapreduce/AccumuloInputFormatTest.java
+++ b/core/src/test/java/org/apache/accumulo/core/client/mapreduce/AccumuloInputFormatTest.java
@@ -37,10 +37,7 @@ import org.apache.hadoop.io.Text;
 import org.apache.hadoop.mapreduce.Job;
 import org.junit.Test;
 
-/**
- * @deprecated since 2.0.0
- */
-@Deprecated
+@Deprecated(since = "2.0.0")
 public class AccumuloInputFormatTest {
 
   /**
diff --git a/core/src/test/java/org/apache/accumulo/core/client/mapreduce/AccumuloMultiTableInputFormatTest.java b/core/src/test/java/org/apache/accumulo/core/client/mapreduce/AccumuloMultiTableInputFormatTest.java
index 5afb3f5..7b86f4c 100644
--- a/core/src/test/java/org/apache/accumulo/core/client/mapreduce/AccumuloMultiTableInputFormatTest.java
+++ b/core/src/test/java/org/apache/accumulo/core/client/mapreduce/AccumuloMultiTableInputFormatTest.java
@@ -34,10 +34,7 @@ import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.TestName;
 
-/**
- * @deprecated since 2.0.0
- */
-@Deprecated
+@Deprecated(since = "2.0.0")
 public class AccumuloMultiTableInputFormatTest {
 
   @Rule
diff --git a/core/src/test/java/org/apache/accumulo/core/client/mapreduce/AccumuloOutputFormatTest.java b/core/src/test/java/org/apache/accumulo/core/client/mapreduce/AccumuloOutputFormatTest.java
index b54f22c..d398474 100644
--- a/core/src/test/java/org/apache/accumulo/core/client/mapreduce/AccumuloOutputFormatTest.java
+++ b/core/src/test/java/org/apache/accumulo/core/client/mapreduce/AccumuloOutputFormatTest.java
@@ -29,10 +29,7 @@ import org.apache.hadoop.mapreduce.Job;
 import org.apache.hadoop.mapreduce.JobContext;
 import org.junit.Test;
 
-/**
- * @deprecated since 2.0.0
- */
-@Deprecated
+@Deprecated(since = "2.0.0")
 public class AccumuloOutputFormatTest {
 
   @Test
diff --git a/core/src/test/java/org/apache/accumulo/core/client/mapreduce/InputTableConfigTest.java b/core/src/test/java/org/apache/accumulo/core/client/mapreduce/InputTableConfigTest.java
index 53c2d28..a5f3cc9 100644
--- a/core/src/test/java/org/apache/accumulo/core/client/mapreduce/InputTableConfigTest.java
+++ b/core/src/test/java/org/apache/accumulo/core/client/mapreduce/InputTableConfigTest.java
@@ -38,10 +38,7 @@ import org.apache.hadoop.io.Text;
 import org.junit.Before;
 import org.junit.Test;
 
-/**
- * @deprecated since 2.0.0
- */
-@Deprecated
+@Deprecated(since = "2.0.0")
 public class InputTableConfigTest {
 
   private InputTableConfig tableQueryConfig;
diff --git a/core/src/test/java/org/apache/accumulo/core/client/mapreduce/RangeInputSplitTest.java b/core/src/test/java/org/apache/accumulo/core/client/mapreduce/RangeInputSplitTest.java
index b1f2aef..8500699 100644
--- a/core/src/test/java/org/apache/accumulo/core/client/mapreduce/RangeInputSplitTest.java
+++ b/core/src/test/java/org/apache/accumulo/core/client/mapreduce/RangeInputSplitTest.java
@@ -42,10 +42,7 @@ import org.apache.hadoop.io.Text;
 import org.apache.log4j.Level;
 import org.junit.Test;
 
-/**
- * @deprecated since 2.0.0
- */
-@Deprecated
+@Deprecated(since = "2.0.0")
 public class RangeInputSplitTest {
 
   @Test
diff --git a/core/src/test/java/org/apache/accumulo/core/client/mapreduce/lib/partition/RangePartitionerTest.java b/core/src/test/java/org/apache/accumulo/core/client/mapreduce/lib/partition/RangePartitionerTest.java
index 2d537ff..4b57e51 100644
--- a/core/src/test/java/org/apache/accumulo/core/client/mapreduce/lib/partition/RangePartitionerTest.java
+++ b/core/src/test/java/org/apache/accumulo/core/client/mapreduce/lib/partition/RangePartitionerTest.java
@@ -27,10 +27,7 @@ import org.apache.hadoop.io.Text;
 import org.apache.hadoop.mapreduce.Job;
 import org.junit.Test;
 
-/**
- * @deprecated since 2.0.0
- */
-@Deprecated
+@Deprecated(since = "2.0.0")
 public class RangePartitionerTest {
 
   private static Text[] cutArray = {new Text("A"), new Text("B"), new Text("C")};
diff --git a/core/src/test/java/org/apache/accumulo/core/clientImpl/TableOperationsHelperTest.java b/core/src/test/java/org/apache/accumulo/core/clientImpl/TableOperationsHelperTest.java
index 9e553f5..e79359d 100644
--- a/core/src/test/java/org/apache/accumulo/core/clientImpl/TableOperationsHelperTest.java
+++ b/core/src/test/java/org/apache/accumulo/core/clientImpl/TableOperationsHelperTest.java
@@ -164,7 +164,7 @@ public class TableOperationsHelperTest {
     }
 
     @Override
-    @Deprecated
+    @Deprecated(since = "2.0.0")
     public void importDirectory(String tableName, String dir, String failureDir, boolean setTime) {}
 
     @Override
diff --git a/core/src/test/java/org/apache/accumulo/core/clientImpl/mapreduce/BatchInputSplitTest.java b/core/src/test/java/org/apache/accumulo/core/clientImpl/mapreduce/BatchInputSplitTest.java
index 10b1fff..11f9dc8 100644
--- a/core/src/test/java/org/apache/accumulo/core/clientImpl/mapreduce/BatchInputSplitTest.java
+++ b/core/src/test/java/org/apache/accumulo/core/clientImpl/mapreduce/BatchInputSplitTest.java
@@ -45,10 +45,7 @@ import org.apache.hadoop.io.Text;
 import org.apache.log4j.Level;
 import org.junit.Test;
 
-/**
- * @deprecated since 2.0.0
- */
-@Deprecated
+@Deprecated(since = "2.0.0")
 public class BatchInputSplitTest {
 
   @Test
diff --git a/core/src/test/java/org/apache/accumulo/core/iterators/DefaultIteratorEnvironment.java b/core/src/test/java/org/apache/accumulo/core/iterators/DefaultIteratorEnvironment.java
index 656cd0e..e5ab387 100644
--- a/core/src/test/java/org/apache/accumulo/core/iterators/DefaultIteratorEnvironment.java
+++ b/core/src/test/java/org/apache/accumulo/core/iterators/DefaultIteratorEnvironment.java
@@ -41,7 +41,7 @@ public class DefaultIteratorEnvironment implements IteratorEnvironment {
     this.conf = DefaultConfiguration.getInstance();
   }
 
-  @Deprecated
+  @Deprecated(since = "2.0.0")
   @Override
   public SortedKeyValueIterator<Key,Value> reserveMapFileReader(String mapFileName)
       throws IOException {
diff --git a/minicluster/src/main/java/org/apache/accumulo/cluster/AccumuloCluster.java b/minicluster/src/main/java/org/apache/accumulo/cluster/AccumuloCluster.java
index e4a93d9..49fd665 100644
--- a/minicluster/src/main/java/org/apache/accumulo/cluster/AccumuloCluster.java
+++ b/minicluster/src/main/java/org/apache/accumulo/cluster/AccumuloCluster.java
@@ -63,7 +63,7 @@ public interface AccumuloCluster {
    *
    * @deprecated since 2.0.0, replaced by {@link #getClientProperties()}}
    */
-  @Deprecated
+  @Deprecated(since = "2.0.0")
   org.apache.accumulo.core.client.ClientConfiguration getClientConfig();
 
   /**
diff --git a/minicluster/src/main/java/org/apache/accumulo/cluster/standalone/StandaloneAccumuloCluster.java b/minicluster/src/main/java/org/apache/accumulo/cluster/standalone/StandaloneAccumuloCluster.java
index 4bf0efb..1e476f53 100644
--- a/minicluster/src/main/java/org/apache/accumulo/cluster/standalone/StandaloneAccumuloCluster.java
+++ b/minicluster/src/main/java/org/apache/accumulo/cluster/standalone/StandaloneAccumuloCluster.java
@@ -147,7 +147,7 @@ public class StandaloneAccumuloCluster implements AccumuloCluster {
   }
 
   @Override
-  @Deprecated
+  @Deprecated(since = "2.0.0")
   public org.apache.accumulo.core.client.ClientConfiguration getClientConfig() {
     return ClientConfConverter.toClientConf(info.getProperties());
   }
diff --git a/minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloCluster.java b/minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloCluster.java
index fd133da..bc9fa92 100644
--- a/minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloCluster.java
+++ b/minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloCluster.java
@@ -122,7 +122,7 @@ public class MiniAccumuloCluster {
    * @since 1.6.0
    * @deprecated since 2.0.0, replaced by {@link #createAccumuloClient(String, AuthenticationToken)}
    */
-  @Deprecated
+  @Deprecated(since = "2.0.0")
   public org.apache.accumulo.core.client.Connector getConnector(String user, String passwd)
       throws AccumuloException, AccumuloSecurityException {
     return org.apache.accumulo.core.client.Connector
@@ -143,7 +143,7 @@ public class MiniAccumuloCluster {
    * @since 1.6.0
    * @deprecated since 2.0.0, replaced by {@link #getClientProperties()}
    */
-  @Deprecated
+  @Deprecated(since = "2.0.0")
   public org.apache.accumulo.core.client.ClientConfiguration getClientConfig() {
     return impl.getClientConfig();
   }
diff --git a/minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloInstance.java b/minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloInstance.java
index 16c15ed..71ab374 100644
--- a/minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloInstance.java
+++ b/minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloInstance.java
@@ -28,7 +28,7 @@ import org.apache.accumulo.core.conf.SiteConfiguration;
  * @since 1.6.0
  * @deprecated since 2.0.0, Use {@link MiniAccumuloCluster#getClientProperties(File)} instead
  */
-@Deprecated
+@Deprecated(since = "2.0.0")
 public class MiniAccumuloInstance extends org.apache.accumulo.core.client.ZooKeeperInstance {
 
   /**
diff --git a/server/base/src/main/java/org/apache/accumulo/server/fs/VolumeChooser.java b/server/base/src/main/java/org/apache/accumulo/server/fs/VolumeChooser.java
index f3abd73..072b082 100644
--- a/server/base/src/main/java/org/apache/accumulo/server/fs/VolumeChooser.java
+++ b/server/base/src/main/java/org/apache/accumulo/server/fs/VolumeChooser.java
@@ -48,7 +48,7 @@ public interface VolumeChooser {
    * @deprecated since 2.1.0; override {@link #choose(VolumeChooserEnvironment, Set)} instead. This
    *             method will be removed in 3.0
    */
-  @Deprecated
+  @Deprecated(since = "2.1.0")
   default String choose(VolumeChooserEnvironment env, String[] options)
       throws VolumeChooserException {
     throw new UnsupportedOperationException("This method will be removed in 3.0");
diff --git a/server/base/src/main/java/org/apache/accumulo/server/master/balancer/TabletBalancer.java b/server/base/src/main/java/org/apache/accumulo/server/master/balancer/TabletBalancer.java
index 34ea618..dff4c7f 100644
--- a/server/base/src/main/java/org/apache/accumulo/server/master/balancer/TabletBalancer.java
+++ b/server/base/src/main/java/org/apache/accumulo/server/master/balancer/TabletBalancer.java
@@ -69,7 +69,7 @@ public abstract class TabletBalancer {
    *
    * @deprecated since 2.0.0; use {@link #init(ServerContext)} instead.
    */
-  @Deprecated
+  @Deprecated(since = "2.0.0")
   public void init(ServerConfigurationFactory conf) {
     init(conf.getServerContext());
   }
diff --git a/server/base/src/test/java/org/apache/accumulo/server/security/SystemCredentialsTest.java b/server/base/src/test/java/org/apache/accumulo/server/security/SystemCredentialsTest.java
index 9fa3032..f18fb13 100644
--- a/server/base/src/test/java/org/apache/accumulo/server/security/SystemCredentialsTest.java
+++ b/server/base/src/test/java/org/apache/accumulo/server/security/SystemCredentialsTest.java
@@ -74,7 +74,7 @@ public class SystemCredentialsTest {
    *
    * @deprecated This check will not be needed after Connector is removed
    */
-  @Deprecated
+  @Deprecated(since = "2.0.0")
   @Test
   public void testSystemToken() {
     assertEquals("org.apache.accumulo.server.security.SystemCredentials$SystemToken",
diff --git a/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletIteratorEnvironment.java b/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletIteratorEnvironment.java
index 47e35fa..87c9844 100644
--- a/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletIteratorEnvironment.java
+++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletIteratorEnvironment.java
@@ -124,7 +124,7 @@ public class TabletIteratorEnvironment implements SystemIteratorEnvironment {
     this.topLevelIterators = new ArrayList<>();
   }
 
-  @Deprecated
+  @Deprecated(since = "2.0.0")
   @Override
   public AccumuloConfiguration getConfig() {
     return tableConfig;
@@ -150,7 +150,7 @@ public class TabletIteratorEnvironment implements SystemIteratorEnvironment {
     return userCompaction;
   }
 
-  @Deprecated
+  @Deprecated(since = "2.0.0")
   @Override
   public SortedKeyValueIterator<Key,Value> reserveMapFileReader(String mapFileName)
       throws IOException {
@@ -158,7 +158,7 @@ public class TabletIteratorEnvironment implements SystemIteratorEnvironment {
     return trm.openFiles(Collections.singletonMap(ref, files.get(ref)), false, null).get(0);
   }
 
-  @Deprecated
+  @Deprecated(since = "2.0.0")
   @Override
   public void registerSideChannel(SortedKeyValueIterator<Key,Value> iter) {
     topLevelIterators.add(iter);
@@ -219,7 +219,7 @@ public class TabletIteratorEnvironment implements SystemIteratorEnvironment {
     return context;
   }
 
-  @Deprecated
+  @Deprecated(since = "2.1.0")
   @Override
   public ServiceEnvironment getServiceEnv() {
     return serviceEnvironment;
diff --git a/server/tserver/src/main/java/org/apache/accumulo/tserver/compaction/CompactionPlan.java b/server/tserver/src/main/java/org/apache/accumulo/tserver/compaction/CompactionPlan.java
index c270644..529bb2d 100644
--- a/server/tserver/src/main/java/org/apache/accumulo/tserver/compaction/CompactionPlan.java
+++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/compaction/CompactionPlan.java
@@ -33,7 +33,10 @@ import com.google.common.collect.Sets;
  * A plan for a compaction: the input files, the files that are *not* inputs to a compaction that
  * should simply be deleted, and the optional parameters used to create the resulting output file.
  */
-@Deprecated(forRemoval = true, since = "2.1.0")
+// Eclipse might show @SuppressWarnings("removal") as unnecessary.
+// Eclipse is wrong. See https://bugs.eclipse.org/bugs/show_bug.cgi?id=565271
+@SuppressWarnings("removal")
+@Deprecated(since = "2.1.0", forRemoval = true)
 public class CompactionPlan {
   public final List<StoredTabletFile> inputFiles = new ArrayList<>();
   public final List<StoredTabletFile> deleteFiles = new ArrayList<>();
diff --git a/server/tserver/src/main/java/org/apache/accumulo/tserver/compaction/CompactionStrategy.java b/server/tserver/src/main/java/org/apache/accumulo/tserver/compaction/CompactionStrategy.java
index d67dd5d..0352223 100644
--- a/server/tserver/src/main/java/org/apache/accumulo/tserver/compaction/CompactionStrategy.java
+++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/compaction/CompactionStrategy.java
@@ -47,6 +47,9 @@ import org.apache.accumulo.core.spi.compaction.CompactionPlanner;
  *             information about why this was deprecated.
  * @see org.apache.accumulo.core.spi.compaction
  */
+// Eclipse might show @SuppressWarnings("removal") as unnecessary.
+// Eclipse is wrong. See https://bugs.eclipse.org/bugs/show_bug.cgi?id=565271
+@SuppressWarnings("removal")
 @Deprecated(since = "2.1.0", forRemoval = true)
 public abstract class CompactionStrategy {
   /**
diff --git a/server/tserver/src/main/java/org/apache/accumulo/tserver/compaction/EverythingCompactionStrategy.java b/server/tserver/src/main/java/org/apache/accumulo/tserver/compaction/EverythingCompactionStrategy.java
index bd476c8..8e3a1a6 100644
--- a/server/tserver/src/main/java/org/apache/accumulo/tserver/compaction/EverythingCompactionStrategy.java
+++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/compaction/EverythingCompactionStrategy.java
@@ -22,6 +22,9 @@ package org.apache.accumulo.tserver.compaction;
  * The default compaction strategy for user initiated compactions. This strategy will always select
  * all files.
  */
+// Eclipse might show @SuppressWarnings("removal") as unnecessary.
+// Eclipse is wrong. See https://bugs.eclipse.org/bugs/show_bug.cgi?id=565271
+@SuppressWarnings("removal")
 @Deprecated(since = "2.1.0", forRemoval = true)
 public class EverythingCompactionStrategy extends CompactionStrategy {
 
diff --git a/server/tserver/src/main/java/org/apache/accumulo/tserver/compaction/MajorCompactionRequest.java b/server/tserver/src/main/java/org/apache/accumulo/tserver/compaction/MajorCompactionRequest.java
index d910805..d07d675 100644
--- a/server/tserver/src/main/java/org/apache/accumulo/tserver/compaction/MajorCompactionRequest.java
+++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/compaction/MajorCompactionRequest.java
@@ -60,6 +60,9 @@ import com.google.common.cache.Cache;
 /**
  * Information that can be used to determine how a tablet is to be major compacted, if needed.
  */
+// Eclipse might show @SuppressWarnings("removal") as unnecessary.
+// Eclipse is wrong. See https://bugs.eclipse.org/bugs/show_bug.cgi?id=565271
+@SuppressWarnings("removal")
 @Deprecated(since = "2.1.0", forRemoval = true)
 public class MajorCompactionRequest implements Cloneable {
   private final KeyExtent extent;
diff --git a/server/tserver/src/main/java/org/apache/accumulo/tserver/compaction/SizeLimitCompactionStrategy.java b/server/tserver/src/main/java/org/apache/accumulo/tserver/compaction/SizeLimitCompactionStrategy.java
index f563ae5..7b75759 100644
--- a/server/tserver/src/main/java/org/apache/accumulo/tserver/compaction/SizeLimitCompactionStrategy.java
+++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/compaction/SizeLimitCompactionStrategy.java
@@ -31,6 +31,9 @@ import org.apache.accumulo.tserver.compaction.strategies.BasicCompactionStrategy
 /**
  * {@link BasicCompactionStrategy} offer the same functionality as this class and more.
  */
+// Eclipse might show @SuppressWarnings("removal") as unnecessary.
+// Eclipse is wrong. See https://bugs.eclipse.org/bugs/show_bug.cgi?id=565271
+@SuppressWarnings("removal")
 @Deprecated(since = "2.1.0", forRemoval = true)
 public class SizeLimitCompactionStrategy extends DefaultCompactionStrategy {
   public static final String SIZE_LIMIT_OPT = "sizeLimit";
diff --git a/server/tserver/src/main/java/org/apache/accumulo/tserver/compaction/WriteParameters.java b/server/tserver/src/main/java/org/apache/accumulo/tserver/compaction/WriteParameters.java
index 3425ab0..49613ac 100644
--- a/server/tserver/src/main/java/org/apache/accumulo/tserver/compaction/WriteParameters.java
+++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/compaction/WriteParameters.java
@@ -20,7 +20,7 @@ package org.apache.accumulo.tserver.compaction;
 
 import static com.google.common.base.Preconditions.checkArgument;
 
-@Deprecated(forRemoval = true, since = "2.1.0")
+@Deprecated(since = "2.1.0", forRemoval = true)
 public class WriteParameters {
   private String compressType = null;
   private long hdfsBlockSize = 0;
diff --git a/server/tserver/src/main/java/org/apache/accumulo/tserver/compaction/strategies/BasicCompactionStrategy.java b/server/tserver/src/main/java/org/apache/accumulo/tserver/compaction/strategies/BasicCompactionStrategy.java
index 8550a6a..a0f7a4f 100644
--- a/server/tserver/src/main/java/org/apache/accumulo/tserver/compaction/strategies/BasicCompactionStrategy.java
+++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/compaction/strategies/BasicCompactionStrategy.java
@@ -68,6 +68,9 @@ import org.slf4j.LoggerFactory;
  *             2.1.0 have the ability to avoid compacting files over a certain size. See
  *             {@link DefaultCompactionPlanner}
  */
+// Eclipse might show @SuppressWarnings("removal") as unnecessary.
+// Eclipse is wrong. See https://bugs.eclipse.org/bugs/show_bug.cgi?id=565271
+@SuppressWarnings("removal")
 @Deprecated(since = "2.1.0", forRemoval = true)
 public class BasicCompactionStrategy extends DefaultCompactionStrategy {
 
diff --git a/server/tserver/src/main/java/org/apache/accumulo/tserver/compaction/strategies/TooManyDeletesCompactionStrategy.java b/server/tserver/src/main/java/org/apache/accumulo/tserver/compaction/strategies/TooManyDeletesCompactionStrategy.java
index 80f6c28..5f22a13 100644
--- a/server/tserver/src/main/java/org/apache/accumulo/tserver/compaction/strategies/TooManyDeletesCompactionStrategy.java
+++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/compaction/strategies/TooManyDeletesCompactionStrategy.java
@@ -81,6 +81,9 @@ import org.apache.accumulo.tserver.compaction.MajorCompactionRequest;
  * @since 2.0.0
  * @deprecated since 2.1.0 use {@link TooManyDeletesSelector} instead
  */
+// Eclipse might show @SuppressWarnings("removal") as unnecessary.
+// Eclipse is wrong. See https://bugs.eclipse.org/bugs/show_bug.cgi?id=565271
+@SuppressWarnings("removal")
 @Deprecated(since = "2.1.0", forRemoval = true)
 public class TooManyDeletesCompactionStrategy extends DefaultCompactionStrategy {
 
diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/DebugCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/DebugCommand.java
index cca936b..3298d63 100644
--- a/shell/src/main/java/org/apache/accumulo/shell/commands/DebugCommand.java
+++ b/shell/src/main/java/org/apache/accumulo/shell/commands/DebugCommand.java
@@ -26,7 +26,7 @@ import org.apache.commons.cli.CommandLine;
  * @deprecated since 2.0; this command shouldn't be used; users should configure debug logging with
  *             their log configuration file instead
  */
-@Deprecated
+@Deprecated(since = "2.0.0")
 public class DebugCommand extends Command {
   @Override
   public int execute(final String fullCommand, final CommandLine cl, final Shell shellState) {
diff --git a/test/src/main/java/org/apache/accumulo/test/ShellServerIT.java b/test/src/main/java/org/apache/accumulo/test/ShellServerIT.java
index 7539699..0ae210f 100644
--- a/test/src/main/java/org/apache/accumulo/test/ShellServerIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/ShellServerIT.java
@@ -506,7 +506,7 @@ public class ShellServerIT extends SharedMiniClusterBase {
   /*
    * This test should be deleted when the debug command is removed
    */
-  @Deprecated
+  @Deprecated(since = "2.0.0")
   @Test
   public void debug() throws Exception {
     String expectMsg = "The debug command is deprecated";
diff --git a/test/src/main/java/org/apache/accumulo/test/mapred/AccumuloFileOutputFormatIT.java b/test/src/main/java/org/apache/accumulo/test/mapred/AccumuloFileOutputFormatIT.java
index 56bde1c..cbc6bf7 100644
--- a/test/src/main/java/org/apache/accumulo/test/mapred/AccumuloFileOutputFormatIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/mapred/AccumuloFileOutputFormatIT.java
@@ -62,7 +62,7 @@ import org.slf4j.LoggerFactory;
 /**
  * This tests deprecated mapreduce code in core jar
  */
-@Deprecated
+@Deprecated(since = "2.0.0")
 public class AccumuloFileOutputFormatIT extends AccumuloClusterHarness {
   private static final Logger log = LoggerFactory.getLogger(AccumuloFileOutputFormatIT.class);
   private static final int JOB_VISIBILITY_CACHE_SIZE = 3000;
diff --git a/test/src/main/java/org/apache/accumulo/test/mapred/AccumuloInputFormatIT.java b/test/src/main/java/org/apache/accumulo/test/mapred/AccumuloInputFormatIT.java
index 70c2b13..85d0ab0 100644
--- a/test/src/main/java/org/apache/accumulo/test/mapred/AccumuloInputFormatIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/mapred/AccumuloInputFormatIT.java
@@ -57,7 +57,7 @@ import org.junit.Test;
 /**
  * This tests deprecated mapreduce code in core jar
  */
-@Deprecated
+@Deprecated(since = "2.0.0")
 public class AccumuloInputFormatIT extends AccumuloClusterHarness {
 
   @BeforeClass
diff --git a/test/src/main/java/org/apache/accumulo/test/mapred/AccumuloMultiTableInputFormatIT.java b/test/src/main/java/org/apache/accumulo/test/mapred/AccumuloMultiTableInputFormatIT.java
index 20251dd..ed9cafb 100644
--- a/test/src/main/java/org/apache/accumulo/test/mapred/AccumuloMultiTableInputFormatIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/mapred/AccumuloMultiTableInputFormatIT.java
@@ -49,7 +49,7 @@ import org.junit.Test;
 /**
  * This tests deprecated mapreduce code in core jar
  */
-@Deprecated
+@Deprecated(since = "2.0.0")
 public class AccumuloMultiTableInputFormatIT extends AccumuloClusterHarness {
 
   private static AssertionError e1 = null;
diff --git a/test/src/main/java/org/apache/accumulo/test/mapred/AccumuloOutputFormatIT.java b/test/src/main/java/org/apache/accumulo/test/mapred/AccumuloOutputFormatIT.java
index cefbfb2..263d58a 100644
--- a/test/src/main/java/org/apache/accumulo/test/mapred/AccumuloOutputFormatIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/mapred/AccumuloOutputFormatIT.java
@@ -62,7 +62,7 @@ import org.junit.Test;
 /**
  * This tests deprecated mapreduce code in core jar
  */
-@Deprecated
+@Deprecated(since = "2.0.0")
 public class AccumuloOutputFormatIT extends ConfigurableMacBase {
 
   @Override
diff --git a/test/src/main/java/org/apache/accumulo/test/mapred/AccumuloRowInputFormatIT.java b/test/src/main/java/org/apache/accumulo/test/mapred/AccumuloRowInputFormatIT.java
index cc0c7a2..5ac1be2 100644
--- a/test/src/main/java/org/apache/accumulo/test/mapred/AccumuloRowInputFormatIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/mapred/AccumuloRowInputFormatIT.java
@@ -57,7 +57,7 @@ import org.junit.Test;
 /**
  * This tests deprecated mapreduce code in core jar
  */
-@Deprecated
+@Deprecated(since = "2.0.0")
 public class AccumuloRowInputFormatIT extends AccumuloClusterHarness {
 
   private static final String ROW1 = "row1";
diff --git a/test/src/main/java/org/apache/accumulo/test/mapred/TokenFileIT.java b/test/src/main/java/org/apache/accumulo/test/mapred/TokenFileIT.java
index 7f0dc13..3a13d70 100644
--- a/test/src/main/java/org/apache/accumulo/test/mapred/TokenFileIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/mapred/TokenFileIT.java
@@ -61,7 +61,7 @@ import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 /**
  * This tests deprecated mapreduce code in core jar
  */
-@Deprecated
+@Deprecated(since = "2.0.0")
 public class TokenFileIT extends AccumuloClusterHarness {
   private static AssertionError e1 = null;
 
diff --git a/test/src/main/java/org/apache/accumulo/test/mapreduce/AccumuloFileOutputFormatIT.java b/test/src/main/java/org/apache/accumulo/test/mapreduce/AccumuloFileOutputFormatIT.java
index 59ea3f7..435ffef 100644
--- a/test/src/main/java/org/apache/accumulo/test/mapreduce/AccumuloFileOutputFormatIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/mapreduce/AccumuloFileOutputFormatIT.java
@@ -59,7 +59,7 @@ import com.google.common.collect.Multimap;
 /**
  * This tests deprecated mapreduce code in core jar
  */
-@Deprecated
+@Deprecated(since = "2.0.0")
 public class AccumuloFileOutputFormatIT extends AccumuloClusterHarness {
 
   private String PREFIX;
diff --git a/test/src/main/java/org/apache/accumulo/test/mapreduce/AccumuloInputFormatIT.java b/test/src/main/java/org/apache/accumulo/test/mapreduce/AccumuloInputFormatIT.java
index 59db1b3..a397c9c 100644
--- a/test/src/main/java/org/apache/accumulo/test/mapreduce/AccumuloInputFormatIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/mapreduce/AccumuloInputFormatIT.java
@@ -72,7 +72,7 @@ import com.google.common.collect.Multimap;
 /**
  * This tests deprecated mapreduce code in core jar
  */
-@Deprecated
+@Deprecated(since = "2.0.0")
 public class AccumuloInputFormatIT extends AccumuloClusterHarness {
 
   org.apache.accumulo.core.client.mapreduce.AccumuloInputFormat inputFormat;
diff --git a/test/src/main/java/org/apache/accumulo/test/mapreduce/AccumuloMultiTableInputFormatIT.java b/test/src/main/java/org/apache/accumulo/test/mapreduce/AccumuloMultiTableInputFormatIT.java
index 031bb2f..fef3ac2 100644
--- a/test/src/main/java/org/apache/accumulo/test/mapreduce/AccumuloMultiTableInputFormatIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/mapreduce/AccumuloMultiTableInputFormatIT.java
@@ -47,7 +47,7 @@ import org.junit.Test;
 /**
  * This tests deprecated mapreduce code in core jar
  */
-@Deprecated
+@Deprecated(since = "2.0.0")
 public class AccumuloMultiTableInputFormatIT extends AccumuloClusterHarness {
 
   private static AssertionError e1 = null;
diff --git a/test/src/main/java/org/apache/accumulo/test/mapreduce/AccumuloOutputFormatIT.java b/test/src/main/java/org/apache/accumulo/test/mapreduce/AccumuloOutputFormatIT.java
index 72d667b..24d1f8a 100644
--- a/test/src/main/java/org/apache/accumulo/test/mapreduce/AccumuloOutputFormatIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/mapreduce/AccumuloOutputFormatIT.java
@@ -52,7 +52,7 @@ import org.junit.Test;
 /**
  * This tests deprecated mapreduce code in core jar
  */
-@Deprecated
+@Deprecated(since = "2.0.0")
 public class AccumuloOutputFormatIT extends AccumuloClusterHarness {
   private static AssertionError e1 = null;
 
diff --git a/test/src/main/java/org/apache/accumulo/test/mapreduce/AccumuloRowInputFormatIT.java b/test/src/main/java/org/apache/accumulo/test/mapreduce/AccumuloRowInputFormatIT.java
index 3f5ad07..3dd921e 100644
--- a/test/src/main/java/org/apache/accumulo/test/mapreduce/AccumuloRowInputFormatIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/mapreduce/AccumuloRowInputFormatIT.java
@@ -55,7 +55,7 @@ import org.junit.Test;
 /**
  * This tests deprecated mapreduce code in core jar
  */
-@Deprecated
+@Deprecated(since = "2.0.0")
 public class AccumuloRowInputFormatIT extends AccumuloClusterHarness {
 
   private static final String ROW1 = "row1";
diff --git a/test/src/main/java/org/apache/accumulo/test/mapreduce/MapReduceIT.java b/test/src/main/java/org/apache/accumulo/test/mapreduce/MapReduceIT.java
index 65452f7..716f06d 100644
--- a/test/src/main/java/org/apache/accumulo/test/mapreduce/MapReduceIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/mapreduce/MapReduceIT.java
@@ -51,7 +51,7 @@ import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 /**
  * This tests deprecated mapreduce code in core jar
  */
-@Deprecated
+@Deprecated(since = "2.0.0")
 public class MapReduceIT extends ConfigurableMacBase {
 
   @Override
diff --git a/test/src/main/java/org/apache/accumulo/test/mapreduce/RowHash.java b/test/src/main/java/org/apache/accumulo/test/mapreduce/RowHash.java
index 702451e..13b53c9 100644
--- a/test/src/main/java/org/apache/accumulo/test/mapreduce/RowHash.java
+++ b/test/src/main/java/org/apache/accumulo/test/mapreduce/RowHash.java
@@ -44,7 +44,7 @@ import com.beust.jcommander.Parameter;
 /**
  * This class supports deprecated mapreduce code in core jar
  */
-@Deprecated
+@Deprecated(since = "2.0.0")
 public class RowHash extends Configured implements Tool {
   /**
    * The Mapper class that given a row number, will generate the appropriate output line.
diff --git a/test/src/main/java/org/apache/accumulo/test/mapreduce/TokenFileIT.java b/test/src/main/java/org/apache/accumulo/test/mapreduce/TokenFileIT.java
index 6ecb674..ebdc75b 100644
--- a/test/src/main/java/org/apache/accumulo/test/mapreduce/TokenFileIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/mapreduce/TokenFileIT.java
@@ -59,7 +59,7 @@ import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 /**
  * This tests deprecated mapreduce code in core jar
  */
-@Deprecated
+@Deprecated(since = "2.0.0")
 public class TokenFileIT extends AccumuloClusterHarness {
   private static AssertionError e1 = null;
 


[accumulo] 02/03: Numerous warnings cleanup

Posted by ct...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ctubbsii pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/accumulo.git

commit 0fda74cfb2bf1fcc9b7ed4de240d285a69ad9fc3
Author: Christopher Tubbs <ct...@apache.org>
AuthorDate: Thu Jul 16 03:14:06 2020 -0400

    Numerous warnings cleanup
---
 .../apache/accumulo/core/logging/TabletLogger.java |  2 --
 .../accumulo/core/spi/compaction/package-info.java | 27 ++++++++++------------
 .../accumulo/shell/commands/CompactCommand.java    |  7 ++----
 .../accumulo/test/functional/AccumuloClientIT.java |  3 +--
 .../test/functional/ConfigurableCompactionIT.java  | 14 +++++------
 .../apache/accumulo/test/functional/SummaryIT.java | 20 ++++++++--------
 6 files changed, 32 insertions(+), 41 deletions(-)

diff --git a/core/src/main/java/org/apache/accumulo/core/logging/TabletLogger.java b/core/src/main/java/org/apache/accumulo/core/logging/TabletLogger.java
index f67a256..b066e0d 100644
--- a/core/src/main/java/org/apache/accumulo/core/logging/TabletLogger.java
+++ b/core/src/main/java/org/apache/accumulo/core/logging/TabletLogger.java
@@ -114,8 +114,6 @@ public class TabletLogger {
   /**
    * Lazily converts TableFile to file names. The lazy part is really important because when it is
    * not called with log.isDebugEnabled().
-   *
-   * @return
    */
   private static Collection<String> asFileNames(Collection<CompactableFile> files) {
     return Collections2.transform(files, CompactableFile::getFileName);
diff --git a/core/src/main/java/org/apache/accumulo/core/spi/compaction/package-info.java b/core/src/main/java/org/apache/accumulo/core/spi/compaction/package-info.java
index 293f990..a26503b 100644
--- a/core/src/main/java/org/apache/accumulo/core/spi/compaction/package-info.java
+++ b/core/src/main/java/org/apache/accumulo/core/spi/compaction/package-info.java
@@ -39,42 +39,39 @@
  * these are created based on user configuration. Users can assign a table to a compaction service.
  * Has a single compaction planner and one ore more compaction executors.
  * <ul>
+ * <li><b>Compaction Executor</b> A non pluggable component that executes compactions using multiple
+ * threads and has a priority queue.
  * <li><b>Compaction Planner</b> A pluggable component that can be configured by users when they
  * configure a compaction service. It makes decisions about which files to compact on which
  * executors. See {@link org.apache.accumulo.core.spi.compaction.CompactionPlanner},
  * {@link org.apache.accumulo.core.spi.compaction.CompactionPlanner#makePlan(org.apache.accumulo.core.spi.compaction.CompactionPlanner.PlanningParameters)},
  * and {@link org.apache.accumulo.core.spi.compaction.DefaultCompactionPlanner}
- * <li><b>Compaction Executor</b> A non pluggable component that executes compactions using multiple
- * threads and has a priority queue.</li>
  * </ul>
- * </li>
+ * </ul>
+ * <ul>
  * <li><b>Compactable</b> A non pluggable component that wraps a Tablet and per table pluggable
  * compaction components. It tracks all information about one or more running compactions that is
  * needed by a compaction service in a thread safe manor. There is a 1 to 1 relationship between
  * compactables and tablets.
  * <ul>
+ * <li><b>Compaction Configurer</b> A pluggable component that can optionally be configured per
+ * table to dynamically configure file output settings. This supports use cases like using snappy
+ * for small files and gzip for large files. See
+ * {@link org.apache.accumulo.core.client.admin.compaction.CompactionConfigurer}
  * <li><b>Compaction Dispatcher</b> A pluggable component component that decides which compaction
  * service a table should use for different kinds of compactions. This is configurable by users per
- * table. See {@link org.apache.accumulo.core.spi.compaction.CompactionDispatcher}</li>
+ * table. See {@link org.apache.accumulo.core.spi.compaction.CompactionDispatcher}
  * <li><b>Compaction Selector</b> A pluggable component that can optionally be configured per table
  * to periodically select files to compact. This supports use cases like periodically compacting all
  * files because there are too many deletes. See
- * {@link org.apache.accumulo.core.client.admin.compaction.CompactionSelector}</li>
- * <li><b>Compaction Configurer</b> A pluggable component that can optionally be configured per
- * table to dynamically configure file output settings. This supports use cases like using snappy
- * for small files and gzip for large files. See
- * {@link org.apache.accumulo.core.client.admin.compaction.CompactionConfigurer}</li>
+ * {@link org.apache.accumulo.core.client.admin.compaction.CompactionSelector}
  * <li><b>Compaction Strategy</b> A deprecated pluggable component replaced by the Selector and
- * Configurer. See {@link org.apache.accumulo.core.client.admin.CompactionStrategyConfig} for more
- * information about why this was deprecated.
+ * Configurer. See {@code org.apache.accumulo.core.client.admin.CompactionStrategyConfig}'s own
+ * documentation for more information about why it was deprecated.
  * </ul>
- * </li>
  * </ul>
- * </li>
  * </ul>
  *
- *
- *
  * @see org.apache.accumulo.core.spi
  */
 package org.apache.accumulo.core.spi.compaction;
diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/CompactCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/CompactCommand.java
index 7133c63..b5d87aa 100644
--- a/shell/src/main/java/org/apache/accumulo/shell/commands/CompactCommand.java
+++ b/shell/src/main/java/org/apache/accumulo/shell/commands/CompactCommand.java
@@ -28,7 +28,6 @@ import org.apache.accumulo.core.client.AccumuloSecurityException;
 import org.apache.accumulo.core.client.IteratorSetting;
 import org.apache.accumulo.core.client.TableNotFoundException;
 import org.apache.accumulo.core.client.admin.CompactionConfig;
-import org.apache.accumulo.core.client.admin.CompactionStrategyConfig;
 import org.apache.accumulo.core.client.admin.PluginConfig;
 import org.apache.accumulo.core.compaction.CompactionSettings;
 import org.apache.accumulo.shell.Shell;
@@ -178,11 +177,9 @@ public class CompactCommand extends TableOperation {
 
   @SuppressWarnings("removal")
   private void configureCompactionStrat(final CommandLine cl) {
-    CompactionStrategyConfig csc =
-        new CompactionStrategyConfig(cl.getOptionValue(strategyOpt.getOpt()));
-
+    var csc = new org.apache.accumulo.core.client.admin.CompactionStrategyConfig(
+        cl.getOptionValue(strategyOpt.getOpt()));
     csc.setOptions(ShellUtil.parseMapOpt(cl, strategyConfigOpt));
-
     compactionConfig.setCompactionStrategy(csc);
   }
 
diff --git a/test/src/main/java/org/apache/accumulo/test/functional/AccumuloClientIT.java b/test/src/main/java/org/apache/accumulo/test/functional/AccumuloClientIT.java
index bd0cbd8..491f438 100644
--- a/test/src/main/java/org/apache/accumulo/test/functional/AccumuloClientIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/functional/AccumuloClientIT.java
@@ -32,7 +32,6 @@ import org.apache.accumulo.core.client.Accumulo;
 import org.apache.accumulo.core.client.AccumuloClient;
 import org.apache.accumulo.core.client.BatchWriter;
 import org.apache.accumulo.core.client.ConditionalWriterConfig;
-import org.apache.accumulo.core.client.Connector;
 import org.apache.accumulo.core.client.Scanner;
 import org.apache.accumulo.core.client.admin.TableOperations;
 import org.apache.accumulo.core.client.security.tokens.PasswordToken;
@@ -105,7 +104,7 @@ public class AccumuloClientIT extends AccumuloClusterHarness {
 
       c.tableOperations().create(tableName);
 
-      try (AccumuloClient client2 = Connector.newClient(c)) {
+      try (AccumuloClient client2 = org.apache.accumulo.core.client.Connector.newClient(c)) {
         assertTrue(client2.tableOperations().list().contains(tableName));
       }
 
diff --git a/test/src/main/java/org/apache/accumulo/test/functional/ConfigurableCompactionIT.java b/test/src/main/java/org/apache/accumulo/test/functional/ConfigurableCompactionIT.java
index 389787a..7aff326 100644
--- a/test/src/main/java/org/apache/accumulo/test/functional/ConfigurableCompactionIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/functional/ConfigurableCompactionIT.java
@@ -43,9 +43,6 @@ import org.apache.accumulo.core.metadata.schema.MetadataSchema;
 import org.apache.accumulo.core.security.Authorizations;
 import org.apache.accumulo.fate.util.UtilWaitThread;
 import org.apache.accumulo.miniclusterImpl.MiniAccumuloConfigImpl;
-import org.apache.accumulo.tserver.compaction.CompactionPlan;
-import org.apache.accumulo.tserver.compaction.CompactionStrategy;
-import org.apache.accumulo.tserver.compaction.MajorCompactionRequest;
 import org.apache.commons.io.FileUtils;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.io.Text;
@@ -68,7 +65,8 @@ public class ConfigurableCompactionIT extends ConfigurableMacBase {
   }
 
   @SuppressWarnings("removal")
-  public static class SimpleCompactionStrategy extends CompactionStrategy {
+  public static class SimpleCompactionStrategy
+      extends org.apache.accumulo.tserver.compaction.CompactionStrategy {
 
     @Override
     public void init(Map<String,String> options) {
@@ -80,14 +78,16 @@ public class ConfigurableCompactionIT extends ConfigurableMacBase {
     int count = 3;
 
     @Override
-    public boolean shouldCompact(MajorCompactionRequest request) {
+    public boolean
+        shouldCompact(org.apache.accumulo.tserver.compaction.MajorCompactionRequest request) {
       return request.getFiles().size() == count;
 
     }
 
     @Override
-    public CompactionPlan getCompactionPlan(MajorCompactionRequest request) {
-      CompactionPlan result = new CompactionPlan();
+    public org.apache.accumulo.tserver.compaction.CompactionPlan
+        getCompactionPlan(org.apache.accumulo.tserver.compaction.MajorCompactionRequest request) {
+      var result = new org.apache.accumulo.tserver.compaction.CompactionPlan();
       result.inputFiles.addAll(request.getFiles().keySet());
       return result;
     }
diff --git a/test/src/main/java/org/apache/accumulo/test/functional/SummaryIT.java b/test/src/main/java/org/apache/accumulo/test/functional/SummaryIT.java
index 9ea90aa..ed77986 100644
--- a/test/src/main/java/org/apache/accumulo/test/functional/SummaryIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/functional/SummaryIT.java
@@ -62,7 +62,6 @@ import org.apache.accumulo.core.client.Scanner;
 import org.apache.accumulo.core.client.TableNotFoundException;
 import org.apache.accumulo.core.client.TableOfflineException;
 import org.apache.accumulo.core.client.admin.CompactionConfig;
-import org.apache.accumulo.core.client.admin.CompactionStrategyConfig;
 import org.apache.accumulo.core.client.admin.NewTableConfiguration;
 import org.apache.accumulo.core.client.admin.PluginConfig;
 import org.apache.accumulo.core.client.admin.compaction.CompactionSelector;
@@ -85,9 +84,6 @@ import org.apache.accumulo.core.security.Authorizations;
 import org.apache.accumulo.core.security.TablePermission;
 import org.apache.accumulo.fate.util.UtilWaitThread;
 import org.apache.accumulo.harness.AccumuloClusterHarness;
-import org.apache.accumulo.tserver.compaction.CompactionPlan;
-import org.apache.accumulo.tserver.compaction.CompactionStrategy;
-import org.apache.accumulo.tserver.compaction.MajorCompactionRequest;
 import org.apache.hadoop.io.Text;
 import org.junit.Test;
 
@@ -471,17 +467,19 @@ public class SummaryIT extends AccumuloClusterHarness {
    * in the data. The {@link FooCounter} summary data is used to make the determination.
    */
   @SuppressWarnings("removal")
-  public static class FooCS extends CompactionStrategy {
+  public static class FooCS extends org.apache.accumulo.tserver.compaction.CompactionStrategy {
 
     private boolean compact = false;
 
     @Override
-    public boolean shouldCompact(MajorCompactionRequest request) {
+    public boolean
+        shouldCompact(org.apache.accumulo.tserver.compaction.MajorCompactionRequest request) {
       return true;
     }
 
     @Override
-    public void gatherInformation(MajorCompactionRequest request) {
+    public void
+        gatherInformation(org.apache.accumulo.tserver.compaction.MajorCompactionRequest request) {
       List<Summary> summaries = request.getSummaries(request.getFiles().keySet(),
           conf -> conf.getClassName().contains("FooCounter"));
       if (summaries.size() == 1) {
@@ -494,9 +492,10 @@ public class SummaryIT extends AccumuloClusterHarness {
     }
 
     @Override
-    public CompactionPlan getCompactionPlan(MajorCompactionRequest request) {
+    public org.apache.accumulo.tserver.compaction.CompactionPlan
+        getCompactionPlan(org.apache.accumulo.tserver.compaction.MajorCompactionRequest request) {
       if (compact) {
-        CompactionPlan cp = new CompactionPlan();
+        var cp = new org.apache.accumulo.tserver.compaction.CompactionPlan();
         cp.inputFiles.addAll(request.getFiles().keySet());
         return cp;
       }
@@ -517,7 +516,8 @@ public class SummaryIT extends AccumuloClusterHarness {
   @SuppressWarnings("removal")
   @Test
   public void compactionStrategyTest() throws Exception {
-    CompactionStrategyConfig csc = new CompactionStrategyConfig(FooCS.class.getName());
+    var csc =
+        new org.apache.accumulo.core.client.admin.CompactionStrategyConfig(FooCS.class.getName());
     CompactionConfig compactConfig = new CompactionConfig().setCompactionStrategy(csc);
     compactionTest(compactConfig);
   }


[accumulo] 01/03: Merge branch '1.9'

Posted by ct...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ctubbsii pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/accumulo.git

commit 1caf7c7927aa12a7d8380f210cca4ab8afb497c8
Merge: d879f58 1b2946f
Author: Christopher Tubbs <ct...@apache.org>
AuthorDate: Thu Jul 16 03:13:28 2020 -0400

    Merge branch '1.9'

 .../accumulo/test/functional/CloneTestIT.java      |  6 +-
 .../test/replication/KerberosReplicationIT.java    | 12 ++--
 .../replication/MultiInstanceReplicationIT.java    | 74 +++++++++++++---------
 .../UnorderedWorkAssignerReplicationIT.java        | 55 +++++++++-------
 4 files changed, 86 insertions(+), 61 deletions(-)

diff --cc test/src/main/java/org/apache/accumulo/test/functional/CloneTestIT.java
index 53db5f4,5201bcf..117367c
--- a/test/src/main/java/org/apache/accumulo/test/functional/CloneTestIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/functional/CloneTestIT.java
@@@ -299,39 -311,40 +299,41 @@@ public class CloneTestIT extends Accumu
  
    @Test
    public void testCloneWithSplits() throws Exception {
 -    Connector conn = getConnector();
 -
 -    List<Mutation> mutations = new ArrayList<>();
 -    TreeSet<Text> splits = new TreeSet<>();
 -    for (int i = 0; i < 10; i++) {
 -      splits.add(new Text(Integer.toString(i)));
 -      Mutation m = new Mutation(Integer.toString(i));
 -      m.put("", "", "");
 -      mutations.add(m);
 -    }
 +    try (AccumuloClient client = Accumulo.newClient().from(getClientProps()).build()) {
 +
 +      List<Mutation> mutations = new ArrayList<>();
 +      TreeSet<Text> splits = new TreeSet<>();
 +      for (int i = 0; i < 10; i++) {
 +        splits.add(new Text(Integer.toString(i)));
 +        Mutation m = new Mutation(Integer.toString(i));
 +        m.put("", "", "");
 +        mutations.add(m);
 +      }
  
 -    String[] tables = getUniqueNames(2);
 +      String[] tables = getUniqueNames(2);
  
 -    conn.tableOperations().create(tables[0]);
 +      client.tableOperations().create(tables[0]);
  
 -    conn.tableOperations().addSplits(tables[0], splits);
 +      client.tableOperations().addSplits(tables[0], splits);
  
 -    BatchWriter bw = conn.createBatchWriter(tables[0], new BatchWriterConfig());
 -    bw.addMutations(mutations);
 -    bw.close();
 +      try (BatchWriter bw = client.createBatchWriter(tables[0])) {
 +        bw.addMutations(mutations);
 +      }
  
 -    conn.tableOperations().clone(tables[0], tables[1], true, null, null);
 +      client.tableOperations().clone(tables[0], tables[1], true, null, null);
  
 -    conn.tableOperations().deleteRows(tables[1], new Text("4"), new Text("8"));
 +      client.tableOperations().deleteRows(tables[1], new Text("4"), new Text("8"));
  
 -    List<String> rows = Arrays.asList("0", "1", "2", "3", "4", "9");
 -    List<String> actualRows = new ArrayList<>();
 -    try (Scanner s = conn.createScanner(tables[1], Authorizations.EMPTY)) {
 -      for (Entry<Key,Value> entry : s) {
 -        actualRows.add(entry.getKey().getRow().toString());
 +      List<String> rows = Arrays.asList("0", "1", "2", "3", "4", "9");
 +      List<String> actualRows = new ArrayList<>();
-       for (Entry<Key,Value> entry : client.createScanner(tables[1], Authorizations.EMPTY)) {
-         actualRows.add(entry.getKey().getRow().toString());
++      try (var scanner = client.createScanner(tables[1], Authorizations.EMPTY)) {
++        for (Entry<Key,Value> entry : scanner) {
++          actualRows.add(entry.getKey().getRow().toString());
++        }
        }
 -    }
  
 -    assertEquals(rows, actualRows);
 +      assertEquals(rows, actualRows);
 +    }
    }
  
    @Test(expected = AccumuloException.class)
diff --cc test/src/main/java/org/apache/accumulo/test/replication/KerberosReplicationIT.java
index 816ffa2,805085e..56a3d92
--- a/test/src/main/java/org/apache/accumulo/test/replication/KerberosReplicationIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/replication/KerberosReplicationIT.java
@@@ -250,13 -243,17 +250,17 @@@ public class KerberosReplicationIT exte
  
          // Wait for both tables to be replicated
          log.info("Waiting for {} for {}", filesFor1, primaryTable1);
 -        primaryConn.replicationOperations().drain(primaryTable1, filesFor1);
 +        primaryclient.replicationOperations().drain(primaryTable1, filesFor1);
  
 -        long countTable = 0l;
 -        try (Scanner s = peerConn.createScanner(peerTable1, Authorizations.EMPTY)) {
 -          for (Entry<Key,Value> entry : s) {
 +        long countTable = 0L;
-         for (Entry<Key,Value> entry : peerclient.createScanner(peerTable1, Authorizations.EMPTY)) {
-           countTable++;
-           assertTrue("Found unexpected key-value" + entry.getKey().toStringNoTruncate() + " "
-               + entry.getValue(), entry.getKey().getRow().toString().startsWith(primaryTable1));
++        try (var scanner = peerclient.createScanner(peerTable1, Authorizations.EMPTY)) {
++          for (Entry<Key,Value> entry : scanner) {
+             countTable++;
+             assertTrue(
+                 "Found unexpected key-value" + entry.getKey().toStringNoTruncate() + " "
+                     + entry.getValue(),
+                 entry.getKey().getRow().toString().startsWith(primaryTable1));
+           }
          }
  
          log.info("Found {} records in {}", countTable, peerTable1);
diff --cc test/src/main/java/org/apache/accumulo/test/replication/MultiInstanceReplicationIT.java
index b77344e,6e22b31..9733308
--- a/test/src/main/java/org/apache/accumulo/test/replication/MultiInstanceReplicationIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/replication/MultiInstanceReplicationIT.java
@@@ -259,29 -255,37 +259,32 @@@ public class MultiInstanceReplicationI
  
        log.info("");
        log.info("Fetching metadata records:");
-       for (Entry<Key,Value> kv : clientMaster.createScanner(MetadataTable.NAME,
-           Authorizations.EMPTY)) {
-         if (ReplicationSection.COLF.equals(kv.getKey().getColumnFamily())) {
-           log.info("{} {}", kv.getKey().toStringNoTruncate(),
-               ProtobufUtil.toString(Status.parseFrom(kv.getValue().get())));
-         } else {
-           log.info("{} {}", kv.getKey().toStringNoTruncate(), kv.getValue());
 -      try (Scanner s = connMaster.createScanner(MetadataTable.NAME, Authorizations.EMPTY)) {
 -        for (Entry<Key,Value> kv : s) {
++      try (var scanner = clientMaster.createScanner(MetadataTable.NAME, Authorizations.EMPTY)) {
++        for (Entry<Key,Value> kv : scanner) {
+           if (ReplicationSection.COLF.equals(kv.getKey().getColumnFamily())) {
 -            log.info(kv.getKey().toStringNoTruncate() + " "
 -                + ProtobufUtil.toString(Status.parseFrom(kv.getValue().get())));
++            log.info("{} {}", kv.getKey().toStringNoTruncate(),
++                ProtobufUtil.toString(Status.parseFrom(kv.getValue().get())));
+           } else {
 -            log.info(kv.getKey().toStringNoTruncate() + " " + kv.getValue());
++            log.info("{} {}", kv.getKey().toStringNoTruncate(), kv.getValue());
+           }
          }
        }
  
        log.info("");
        log.info("Fetching replication records:");
-       for (Entry<Key,Value> kv : ReplicationTable.getScanner(clientMaster)) {
-         log.info("{} {}", kv.getKey().toStringNoTruncate(),
-             ProtobufUtil.toString(Status.parseFrom(kv.getValue().get())));
 -      try (Scanner s = ReplicationTable.getScanner(connMaster)) {
 -        for (Entry<Key,Value> kv : s) {
 -          log.info(kv.getKey().toStringNoTruncate() + " "
 -              + ProtobufUtil.toString(Status.parseFrom(kv.getValue().get())));
++      try (var scanner = ReplicationTable.getScanner(clientMaster)) {
++        for (Entry<Key,Value> kv : scanner) {
++          log.info("{} {}", kv.getKey().toStringNoTruncate(),
++              ProtobufUtil.toString(Status.parseFrom(kv.getValue().get())));
+         }
        }
  
 -      Future<Boolean> future = executor.submit(new Callable<Boolean>() {
 -
 -        @Override
 -        public Boolean call() throws Exception {
 -          long then = System.currentTimeMillis();
 -          connMaster.replicationOperations().drain(masterTable, filesNeedingReplication);
 -          long now = System.currentTimeMillis();
 -          log.info("Drain completed in " + (now - then) + "ms");
 -          return true;
 -        }
 -
 +      Future<Boolean> future = executor.submit(() -> {
 +        long then = System.currentTimeMillis();
 +        clientMaster.replicationOperations().drain(masterTable, filesNeedingReplication);
 +        long now = System.currentTimeMillis();
 +        log.info("Drain completed in " + (now - then) + "ms");
 +        return true;
        });
  
        try {
@@@ -297,42 -301,44 +300,45 @@@
  
        log.info("");
        log.info("Fetching metadata records:");
-       for (Entry<Key,Value> kv : clientMaster.createScanner(MetadataTable.NAME,
-           Authorizations.EMPTY)) {
-         if (ReplicationSection.COLF.equals(kv.getKey().getColumnFamily())) {
-           log.info("{} {}", kv.getKey().toStringNoTruncate(),
-               ProtobufUtil.toString(Status.parseFrom(kv.getValue().get())));
-         } else {
-           log.info("{} {}", kv.getKey().toStringNoTruncate(), kv.getValue());
 -      try (Scanner s = connMaster.createScanner(MetadataTable.NAME, Authorizations.EMPTY)) {
 -        for (Entry<Key,Value> kv : s) {
++      try (var scanner = clientMaster.createScanner(MetadataTable.NAME, Authorizations.EMPTY)) {
++        for (Entry<Key,Value> kv : scanner) {
+           if (ReplicationSection.COLF.equals(kv.getKey().getColumnFamily())) {
 -            log.info(kv.getKey().toStringNoTruncate() + " "
 -                + ProtobufUtil.toString(Status.parseFrom(kv.getValue().get())));
++            log.info("{} {}", kv.getKey().toStringNoTruncate(),
++                ProtobufUtil.toString(Status.parseFrom(kv.getValue().get())));
+           } else {
 -            log.info(kv.getKey().toStringNoTruncate() + " " + kv.getValue());
++            log.info("{} {}", kv.getKey().toStringNoTruncate(), kv.getValue());
+           }
          }
        }
  
        log.info("");
        log.info("Fetching replication records:");
-       for (Entry<Key,Value> kv : ReplicationTable.getScanner(clientMaster)) {
-         log.info("{} {}", kv.getKey().toStringNoTruncate(),
-             ProtobufUtil.toString(Status.parseFrom(kv.getValue().get())));
 -      try (Scanner s = ReplicationTable.getScanner(connMaster)) {
 -        for (Entry<Key,Value> kv : s) {
 -          log.info(kv.getKey().toStringNoTruncate() + " "
 -              + ProtobufUtil.toString(Status.parseFrom(kv.getValue().get())));
++      try (var scanner = ReplicationTable.getScanner(clientMaster)) {
++        for (Entry<Key,Value> kv : scanner) {
++          log.info("{} {}", kv.getKey().toStringNoTruncate(),
++              ProtobufUtil.toString(Status.parseFrom(kv.getValue().get())));
+         }
        }
  
 -      Scanner master = connMaster.createScanner(masterTable, Authorizations.EMPTY),
 -          peer = connPeer.createScanner(peerTable, Authorizations.EMPTY);
 -      Iterator<Entry<Key,Value>> masterIter = master.iterator(), peerIter = peer.iterator();
 -      Entry<Key,Value> masterEntry = null, peerEntry = null;
 -      while (masterIter.hasNext() && peerIter.hasNext()) {
 -        masterEntry = masterIter.next();
 -        peerEntry = peerIter.next();
 -        assertEquals(masterEntry.getKey() + " was not equal to " + peerEntry.getKey(), 0,
 -            masterEntry.getKey().compareTo(peerEntry.getKey(),
 -                PartialKey.ROW_COLFAM_COLQUAL_COLVIS));
 -        assertEquals(masterEntry.getValue(), peerEntry.getValue());
 -      }
 +      try (Scanner master = clientMaster.createScanner(masterTable, Authorizations.EMPTY);
 +          Scanner peer = clientPeer.createScanner(peerTable, Authorizations.EMPTY)) {
 +        Iterator<Entry<Key,Value>> masterIter = master.iterator(), peerIter = peer.iterator();
 +        Entry<Key,Value> masterEntry = null, peerEntry = null;
 +        while (masterIter.hasNext() && peerIter.hasNext()) {
 +          masterEntry = masterIter.next();
 +          peerEntry = peerIter.next();
 +          assertEquals(masterEntry.getKey() + " was not equal to " + peerEntry.getKey(), 0,
 +              masterEntry.getKey().compareTo(peerEntry.getKey(),
 +                  PartialKey.ROW_COLFAM_COLQUAL_COLVIS));
 +          assertEquals(masterEntry.getValue(), peerEntry.getValue());
 +        }
  
 -      log.info("Last master entry: " + masterEntry);
 -      log.info("Last peer entry: " + peerEntry);
 +        log.info("Last master entry: {}", masterEntry);
 +        log.info("Last peer entry: {}", peerEntry);
  
 -      assertFalse("Had more data to read from the master", masterIter.hasNext());
 -      assertFalse("Had more data to read from the peer", peerIter.hasNext());
 +        assertFalse("Had more data to read from the master", masterIter.hasNext());
 +        assertFalse("Had more data to read from the peer", peerIter.hasNext());
 +      }
      } finally {
        peerCluster.stop();
      }
@@@ -464,26 -474,30 +470,30 @@@
  
        // Wait for both tables to be replicated
        log.info("Waiting for {} for {}", filesFor1, masterTable1);
 -      connMaster.replicationOperations().drain(masterTable1, filesFor1);
 +      clientMaster.replicationOperations().drain(masterTable1, filesFor1);
  
        log.info("Waiting for {} for {}", filesFor2, masterTable2);
 -      connMaster.replicationOperations().drain(masterTable2, filesFor2);
 +      clientMaster.replicationOperations().drain(masterTable2, filesFor2);
  
 -      long countTable = 0l;
 -      try (Scanner s = connPeer.createScanner(peerTable1, Authorizations.EMPTY)) {
 -        for (Entry<Key,Value> entry : s) {
 +      long countTable = 0L;
-       for (Entry<Key,Value> entry : clientPeer.createScanner(peerTable1, Authorizations.EMPTY)) {
-         countTable++;
-         assertTrue("Found unexpected key-value" + entry.getKey().toStringNoTruncate() + " "
-             + entry.getValue(), entry.getKey().getRow().toString().startsWith(masterTable1));
++      try (var scanner = clientPeer.createScanner(peerTable1, Authorizations.EMPTY)) {
++        for (Entry<Key,Value> entry : scanner) {
+           countTable++;
+           assertTrue("Found unexpected key-value" + entry.getKey().toStringNoTruncate() + " "
+               + entry.getValue(), entry.getKey().getRow().toString().startsWith(masterTable1));
+         }
        }
  
        log.info("Found {} records in {}", countTable, peerTable1);
        assertEquals(masterTable1Records, countTable);
  
 -      countTable = 0l;
 -      try (Scanner s = connPeer.createScanner(peerTable2, Authorizations.EMPTY)) {
 -        for (Entry<Key,Value> entry : s) {
 +      countTable = 0L;
-       for (Entry<Key,Value> entry : clientPeer.createScanner(peerTable2, Authorizations.EMPTY)) {
-         countTable++;
-         assertTrue("Found unexpected key-value" + entry.getKey().toStringNoTruncate() + " "
-             + entry.getValue(), entry.getKey().getRow().toString().startsWith(masterTable2));
++      try (var scanner = clientPeer.createScanner(peerTable2, Authorizations.EMPTY)) {
++        for (Entry<Key,Value> entry : scanner) {
+           countTable++;
+           assertTrue("Found unexpected key-value" + entry.getKey().toStringNoTruncate() + " "
+               + entry.getValue(), entry.getKey().getRow().toString().startsWith(masterTable2));
+         }
        }
  
        log.info("Found {} records in {}", countTable, peerTable2);
@@@ -509,106 -523,105 +519,108 @@@
  
      peerCluster.start();
  
 -    Connector connMaster = getConnector();
 -    Connector connPeer = peerCluster.getConnector("root", new PasswordToken(ROOT_PASSWORD));
 -
 -    String peerUserName = "repl";
 -    String peerPassword = "passwd";
 -
 -    // Create a user on the peer for replication to use
 -    connPeer.securityOperations().createLocalUser(peerUserName, new PasswordToken(peerPassword));
 -
 -    String peerClusterName = "peer";
 -
 -    // ...peer = AccumuloReplicaSystem,instanceName,zookeepers
 -    connMaster.instanceOperations().setProperty(
 -        Property.REPLICATION_PEERS.getKey() + peerClusterName,
 -        ReplicaSystemFactory.getPeerConfigurationValue(AccumuloReplicaSystem.class,
 -            AccumuloReplicaSystem.buildConfiguration(peerCluster.getInstanceName(),
 -                peerCluster.getZooKeepers())));
 -
 -    // Configure the credentials we should use to authenticate ourselves to the peer for replication
 -    connMaster.instanceOperations()
 -        .setProperty(Property.REPLICATION_PEER_USER.getKey() + peerClusterName, peerUserName);
 -    connMaster.instanceOperations()
 -        .setProperty(Property.REPLICATION_PEER_PASSWORD.getKey() + peerClusterName, peerPassword);
 -
 -    String masterTable = "master", peerTable = "peer";
 -
 -    connMaster.tableOperations().create(masterTable);
 -    String masterTableId = connMaster.tableOperations().tableIdMap().get(masterTable);
 -    assertNotNull(masterTableId);
 -
 -    connPeer.tableOperations().create(peerTable);
 -    String peerTableId = connPeer.tableOperations().tableIdMap().get(peerTable);
 -    assertNotNull(peerTableId);
 -
 -    // Give our replication user the ability to write to the table
 -    connPeer.securityOperations().grantTablePermission(peerUserName, peerTable,
 -        TablePermission.WRITE);
 -
 -    // Replicate this table to the peerClusterName in a table with the peerTableId table id
 -    connMaster.tableOperations().setProperty(masterTable, Property.TABLE_REPLICATION.getKey(),
 -        "true");
 -    connMaster.tableOperations().setProperty(masterTable,
 -        Property.TABLE_REPLICATION_TARGET.getKey() + peerClusterName, peerTableId);
 -
 -    // Write some data to table1
 -    BatchWriter bw = connMaster.createBatchWriter(masterTable, new BatchWriterConfig());
 -    for (int rows = 0; rows < 5000; rows++) {
 -      Mutation m = new Mutation(Integer.toString(rows));
 -      for (int cols = 0; cols < 100; cols++) {
 -        String value = Integer.toString(cols);
 -        m.put(value, "", value);
 -      }
 -      bw.addMutation(m);
 -    }
 +    try (AccumuloClient clientMaster = Accumulo.newClient().from(getClientProperties()).build();
 +        AccumuloClient clientPeer =
 +            peerCluster.createAccumuloClient("root", new PasswordToken(ROOT_PASSWORD))) {
  
 -    bw.close();
 +      String peerUserName = "repl";
 +      String peerPassword = "passwd";
  
 -    log.info("Wrote all data to master cluster");
 +      // Create a user on the peer for replication to use
 +      clientPeer.securityOperations().createLocalUser(peerUserName,
 +          new PasswordToken(peerPassword));
  
 -    Set<String> files = connMaster.replicationOperations().referencedFiles(masterTable);
 +      String peerClusterName = "peer";
  
 -    log.info("Files to replicate:" + files);
 +      // ...peer = AccumuloReplicaSystem,instanceName,zookeepers
 +      clientMaster.instanceOperations().setProperty(
 +          Property.REPLICATION_PEERS.getKey() + peerClusterName,
 +          ReplicaSystemFactory.getPeerConfigurationValue(AccumuloReplicaSystem.class,
 +              AccumuloReplicaSystem.buildConfiguration(peerCluster.getInstanceName(),
 +                  peerCluster.getZooKeepers())));
  
 -    for (ProcessReference proc : cluster.getProcesses().get(ServerType.TABLET_SERVER)) {
 -      cluster.killProcess(ServerType.TABLET_SERVER, proc);
 -    }
 +      // Configure the credentials we should use to authenticate ourselves to the peer for
 +      // replication
 +      clientMaster.instanceOperations()
 +          .setProperty(Property.REPLICATION_PEER_USER.getKey() + peerClusterName, peerUserName);
 +      clientMaster.instanceOperations()
 +          .setProperty(Property.REPLICATION_PEER_PASSWORD.getKey() + peerClusterName, peerPassword);
  
 -    cluster.exec(TabletServer.class);
 +      String masterTable = "master", peerTable = "peer";
 +      clientPeer.tableOperations().create(peerTable, new NewTableConfiguration());
 +      String peerTableId = clientPeer.tableOperations().tableIdMap().get(peerTable);
 +      assertNotNull(peerTableId);
  
 -    while (!ReplicationTable.isOnline(connMaster)) {
 -      log.info("Replication table still offline, waiting");
 -      Thread.sleep(5000);
 -    }
 +      // Give our replication user the ability to write to the table
 +      clientPeer.securityOperations().grantTablePermission(peerUserName, peerTable,
 +          TablePermission.WRITE);
  
 -    Iterators.size(connMaster.createScanner(masterTable, Authorizations.EMPTY).iterator());
 +      Map<String,String> props = new HashMap<>();
 +      props.put(Property.TABLE_REPLICATION.getKey(), "true");
 +      // Replicate this table to the peerClusterName in a table with the peerTableId table id
 +      props.put(Property.TABLE_REPLICATION_TARGET.getKey() + peerClusterName, peerTableId);
 +      clientMaster.tableOperations().create(masterTable,
 +          new NewTableConfiguration().setProperties(props));
 +      String masterTableId = clientMaster.tableOperations().tableIdMap().get(masterTable);
 +      assertNotNull(masterTableId);
  
 -    try (Scanner s = ReplicationTable.getScanner(connMaster)) {
 -      for (Entry<Key,Value> kv : s) {
 -        log.debug(kv.getKey().toStringNoTruncate() + " "
 -            + ProtobufUtil.toString(Status.parseFrom(kv.getValue().get())));
 +      // Write some data to table1
 +      try (BatchWriter bw = clientMaster.createBatchWriter(masterTable)) {
 +        for (int rows = 0; rows < 5000; rows++) {
 +          Mutation m = new Mutation(Integer.toString(rows));
 +          for (int cols = 0; cols < 100; cols++) {
 +            String value = Integer.toString(cols);
 +            m.put(value, "", value);
 +          }
 +          bw.addMutation(m);
 +        }
        }
 -    }
  
 -    connMaster.replicationOperations().drain(masterTable, files);
 +      log.info("Wrote all data to master cluster");
  
 -    Scanner master = connMaster.createScanner(masterTable, Authorizations.EMPTY),
 -        peer = connPeer.createScanner(peerTable, Authorizations.EMPTY);
 -    Iterator<Entry<Key,Value>> masterIter = master.iterator(), peerIter = peer.iterator();
 -    while (masterIter.hasNext() && peerIter.hasNext()) {
 -      Entry<Key,Value> masterEntry = masterIter.next(), peerEntry = peerIter.next();
 -      assertEquals(peerEntry.getKey() + " was not equal to " + peerEntry.getKey(), 0,
 -          masterEntry.getKey().compareTo(peerEntry.getKey(), PartialKey.ROW_COLFAM_COLQUAL_COLVIS));
 -      assertEquals(masterEntry.getValue(), peerEntry.getValue());
 -    }
 +      Set<String> files = clientMaster.replicationOperations().referencedFiles(masterTable);
  
 -    assertFalse("Had more data to read from the master", masterIter.hasNext());
 -    assertFalse("Had more data to read from the peer", peerIter.hasNext());
 +      log.info("Files to replicate:" + files);
  
 -    peerCluster.stop();
 +      for (ProcessReference proc : cluster.getProcesses().get(ServerType.TABLET_SERVER)) {
 +        cluster.killProcess(ServerType.TABLET_SERVER, proc);
 +      }
 +
 +      cluster.exec(TabletServer.class);
 +
 +      while (!ReplicationTable.isOnline(clientMaster)) {
 +        log.info("Replication table still offline, waiting");
 +        Thread.sleep(5000);
 +      }
 +
 +      Iterators.size(clientMaster.createScanner(masterTable, Authorizations.EMPTY).iterator());
 +
-       for (Entry<Key,Value> kv : ReplicationTable.getScanner(clientMaster)) {
-         log.debug("{} {}", kv.getKey().toStringNoTruncate(),
-             ProtobufUtil.toString(Status.parseFrom(kv.getValue().get())));
++      try (var scanner = ReplicationTable.getScanner(clientMaster)) {
++        for (Entry<Key,Value> kv : scanner) {
++          log.debug("{} {}", kv.getKey().toStringNoTruncate(),
++              ProtobufUtil.toString(Status.parseFrom(kv.getValue().get())));
++        }
 +      }
 +
 +      clientMaster.replicationOperations().drain(masterTable, files);
 +
 +      try (Scanner master = clientMaster.createScanner(masterTable, Authorizations.EMPTY);
 +          Scanner peer = clientPeer.createScanner(peerTable, Authorizations.EMPTY)) {
 +        Iterator<Entry<Key,Value>> masterIter = master.iterator(), peerIter = peer.iterator();
 +        while (masterIter.hasNext() && peerIter.hasNext()) {
 +          Entry<Key,Value> masterEntry = masterIter.next(), peerEntry = peerIter.next();
 +          assertEquals(peerEntry.getKey() + " was not equal to " + peerEntry.getKey(), 0,
 +              masterEntry.getKey().compareTo(peerEntry.getKey(),
 +                  PartialKey.ROW_COLFAM_COLQUAL_COLVIS));
 +          assertEquals(masterEntry.getValue(), peerEntry.getValue());
 +        }
 +
 +        assertFalse("Had more data to read from the master", masterIter.hasNext());
 +        assertFalse("Had more data to read from the peer", peerIter.hasNext());
 +      }
 +    } finally {
 +      peerCluster.stop();
 +    }
    }
  
    @Test
diff --cc test/src/main/java/org/apache/accumulo/test/replication/UnorderedWorkAssignerReplicationIT.java
index beb29e4,889334b..62e2567
--- a/test/src/main/java/org/apache/accumulo/test/replication/UnorderedWorkAssignerReplicationIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/replication/UnorderedWorkAssignerReplicationIT.java
@@@ -259,27 -256,35 +259,30 @@@ public class UnorderedWorkAssignerRepli
  
        log.info("");
        log.info("Fetching metadata records:");
-       for (Entry<Key,Value> kv : clientMaster.createScanner(MetadataTable.NAME,
-           Authorizations.EMPTY)) {
-         if (ReplicationSection.COLF.equals(kv.getKey().getColumnFamily())) {
-           log.info("{} {}", kv.getKey().toStringNoTruncate(),
-               ProtobufUtil.toString(Status.parseFrom(kv.getValue().get())));
-         } else {
-           log.info("{} {}", kv.getKey().toStringNoTruncate(), kv.getValue());
 -      try (Scanner s = connMaster.createScanner(MetadataTable.NAME, Authorizations.EMPTY)) {
 -        for (Entry<Key,Value> kv : s) {
++      try (var scanner = clientMaster.createScanner(MetadataTable.NAME, Authorizations.EMPTY)) {
++        for (Entry<Key,Value> kv : scanner) {
+           if (ReplicationSection.COLF.equals(kv.getKey().getColumnFamily())) {
 -            log.info(kv.getKey().toStringNoTruncate() + " "
 -                + ProtobufUtil.toString(Status.parseFrom(kv.getValue().get())));
++            log.info("{} {}", kv.getKey().toStringNoTruncate(),
++                ProtobufUtil.toString(Status.parseFrom(kv.getValue().get())));
+           } else {
 -            log.info(kv.getKey().toStringNoTruncate() + " " + kv.getValue());
++            log.info("{} {}", kv.getKey().toStringNoTruncate(), kv.getValue());
+           }
          }
        }
  
        log.info("");
        log.info("Fetching replication records:");
-       for (Entry<Key,Value> kv : ReplicationTable.getScanner(clientMaster)) {
-         log.info("{} {}", kv.getKey().toStringNoTruncate(),
-             ProtobufUtil.toString(Status.parseFrom(kv.getValue().get())));
 -      try (Scanner s = ReplicationTable.getScanner(connMaster)) {
 -        for (Entry<Key,Value> kv : s) {
 -          log.info(kv.getKey().toStringNoTruncate() + " "
 -              + ProtobufUtil.toString(Status.parseFrom(kv.getValue().get())));
++      try (var scanner = ReplicationTable.getScanner(clientMaster)) {
++        for (Entry<Key,Value> kv : scanner) {
++          log.info("{} {}", kv.getKey().toStringNoTruncate(),
++              ProtobufUtil.toString(Status.parseFrom(kv.getValue().get())));
+         }
        }
  
 -      Future<Boolean> future = executor.submit(new Callable<Boolean>() {
 -
 -        @Override
 -        public Boolean call() throws Exception {
 -          connMaster.replicationOperations().drain(masterTable, filesNeedingReplication);
 -          log.info("Drain completed");
 -          return true;
 -        }
 -
 +      Future<Boolean> future = executor.submit(() -> {
 +        clientMaster.replicationOperations().drain(masterTable, filesNeedingReplication);
 +        log.info("Drain completed");
 +        return true;
        });
  
        long timeoutSeconds = timeoutFactor * 30;
@@@ -294,42 -299,44 +297,45 @@@
  
        log.info("");
        log.info("Fetching metadata records:");
-       for (Entry<Key,Value> kv : clientMaster.createScanner(MetadataTable.NAME,
-           Authorizations.EMPTY)) {
-         if (ReplicationSection.COLF.equals(kv.getKey().getColumnFamily())) {
-           log.info("{} {}", kv.getKey().toStringNoTruncate(),
-               ProtobufUtil.toString(Status.parseFrom(kv.getValue().get())));
-         } else {
-           log.info("{} {}", kv.getKey().toStringNoTruncate(), kv.getValue());
 -      try (Scanner s = connMaster.createScanner(MetadataTable.NAME, Authorizations.EMPTY)) {
 -        for (Entry<Key,Value> kv : s) {
++      try (var scanner = clientMaster.createScanner(MetadataTable.NAME, Authorizations.EMPTY)) {
++        for (Entry<Key,Value> kv : scanner) {
+           if (ReplicationSection.COLF.equals(kv.getKey().getColumnFamily())) {
 -            log.info(kv.getKey().toStringNoTruncate() + " "
 -                + ProtobufUtil.toString(Status.parseFrom(kv.getValue().get())));
++            log.info("{} {}", kv.getKey().toStringNoTruncate(),
++                ProtobufUtil.toString(Status.parseFrom(kv.getValue().get())));
+           } else {
 -            log.info(kv.getKey().toStringNoTruncate() + " " + kv.getValue());
++            log.info("{} {}", kv.getKey().toStringNoTruncate(), kv.getValue());
+           }
          }
        }
  
        log.info("");
        log.info("Fetching replication records:");
-       for (Entry<Key,Value> kv : ReplicationTable.getScanner(clientMaster)) {
-         log.info("{} {}", kv.getKey().toStringNoTruncate(),
-             ProtobufUtil.toString(Status.parseFrom(kv.getValue().get())));
 -      try (Scanner s = ReplicationTable.getScanner(connMaster)) {
 -        for (Entry<Key,Value> kv : s) {
 -          log.info(kv.getKey().toStringNoTruncate() + " "
 -              + ProtobufUtil.toString(Status.parseFrom(kv.getValue().get())));
++      try (var scanner = ReplicationTable.getScanner(clientMaster)) {
++        for (Entry<Key,Value> kv : scanner) {
++          log.info("{} {}", kv.getKey().toStringNoTruncate(),
++              ProtobufUtil.toString(Status.parseFrom(kv.getValue().get())));
+         }
        }
  
 -      Scanner master = connMaster.createScanner(masterTable, Authorizations.EMPTY),
 -          peer = connPeer.createScanner(peerTable, Authorizations.EMPTY);
 -      Iterator<Entry<Key,Value>> masterIter = master.iterator(), peerIter = peer.iterator();
 -      Entry<Key,Value> masterEntry = null, peerEntry = null;
 -      while (masterIter.hasNext() && peerIter.hasNext()) {
 -        masterEntry = masterIter.next();
 -        peerEntry = peerIter.next();
 -        assertEquals(masterEntry.getKey() + " was not equal to " + peerEntry.getKey(), 0,
 -            masterEntry.getKey().compareTo(peerEntry.getKey(),
 -                PartialKey.ROW_COLFAM_COLQUAL_COLVIS));
 -        assertEquals(masterEntry.getValue(), peerEntry.getValue());
 -      }
 +      try (Scanner master = clientMaster.createScanner(masterTable, Authorizations.EMPTY);
 +          Scanner peer = clientPeer.createScanner(peerTable, Authorizations.EMPTY)) {
 +        Iterator<Entry<Key,Value>> masterIter = master.iterator(), peerIter = peer.iterator();
 +        Entry<Key,Value> masterEntry = null, peerEntry = null;
 +        while (masterIter.hasNext() && peerIter.hasNext()) {
 +          masterEntry = masterIter.next();
 +          peerEntry = peerIter.next();
 +          assertEquals(masterEntry.getKey() + " was not equal to " + peerEntry.getKey(), 0,
 +              masterEntry.getKey().compareTo(peerEntry.getKey(),
 +                  PartialKey.ROW_COLFAM_COLQUAL_COLVIS));
 +          assertEquals(masterEntry.getValue(), peerEntry.getValue());
 +        }
  
 -      log.info("Last master entry: " + masterEntry);
 -      log.info("Last peer entry: " + peerEntry);
 +        log.info("Last master entry: {}", masterEntry);
 +        log.info("Last peer entry: {}", peerEntry);
  
 -      assertFalse("Had more data to read from the master", masterIter.hasNext());
 -      assertFalse("Had more data to read from the peer", peerIter.hasNext());
 +        assertFalse("Had more data to read from the master", masterIter.hasNext());
 +        assertFalse("Had more data to read from the peer", peerIter.hasNext());
 +      }
      } finally {
        peerCluster.stop();
      }
@@@ -521,105 -529,103 +527,106 @@@
  
      peerCluster.start();
  
 -    Connector connMaster = getConnector();
 -    Connector connPeer = peerCluster.getConnector("root", new PasswordToken(ROOT_PASSWORD));
 -
 -    String peerUserName = "repl";
 -    String peerPassword = "passwd";
 -
 -    // Create a user on the peer for replication to use
 -    connPeer.securityOperations().createLocalUser(peerUserName, new PasswordToken(peerPassword));
 -
 -    String peerClusterName = "peer";
 -
 -    // ...peer = AccumuloReplicaSystem,instanceName,zookeepers
 -    connMaster.instanceOperations().setProperty(
 -        Property.REPLICATION_PEERS.getKey() + peerClusterName,
 -        ReplicaSystemFactory.getPeerConfigurationValue(AccumuloReplicaSystem.class,
 -            AccumuloReplicaSystem.buildConfiguration(peerCluster.getInstanceName(),
 -                peerCluster.getZooKeepers())));
 -
 -    // Configure the credentials we should use to authenticate ourselves to the peer for replication
 -    connMaster.instanceOperations()
 -        .setProperty(Property.REPLICATION_PEER_USER.getKey() + peerClusterName, peerUserName);
 -    connMaster.instanceOperations()
 -        .setProperty(Property.REPLICATION_PEER_PASSWORD.getKey() + peerClusterName, peerPassword);
 -
 -    String masterTable = "master", peerTable = "peer";
 -
 -    connMaster.tableOperations().create(masterTable);
 -    String masterTableId = connMaster.tableOperations().tableIdMap().get(masterTable);
 -    assertNotNull(masterTableId);
 -
 -    connPeer.tableOperations().create(peerTable);
 -    String peerTableId = connPeer.tableOperations().tableIdMap().get(peerTable);
 -    assertNotNull(peerTableId);
 -
 -    // Give our replication user the ability to write to the table
 -    connPeer.securityOperations().grantTablePermission(peerUserName, peerTable,
 -        TablePermission.WRITE);
 -
 -    // Replicate this table to the peerClusterName in a table with the peerTableId table id
 -    connMaster.tableOperations().setProperty(masterTable, Property.TABLE_REPLICATION.getKey(),
 -        "true");
 -    connMaster.tableOperations().setProperty(masterTable,
 -        Property.TABLE_REPLICATION_TARGET.getKey() + peerClusterName, peerTableId);
 -
 -    // Write some data to table1
 -    BatchWriter bw = connMaster.createBatchWriter(masterTable, new BatchWriterConfig());
 -    for (int rows = 0; rows < 5000; rows++) {
 -      Mutation m = new Mutation(Integer.toString(rows));
 -      for (int cols = 0; cols < 100; cols++) {
 -        String value = Integer.toString(cols);
 -        m.put(value, "", value);
 -      }
 -      bw.addMutation(m);
 -    }
 +    try (AccumuloClient clientMaster = Accumulo.newClient().from(getClientProperties()).build();
 +        AccumuloClient clientPeer =
 +            peerCluster.createAccumuloClient("root", new PasswordToken(ROOT_PASSWORD))) {
  
 -    bw.close();
 +      String peerUserName = "repl";
 +      String peerPassword = "passwd";
  
 -    log.info("Wrote all data to master cluster");
 +      // Create a user on the peer for replication to use
 +      clientPeer.securityOperations().createLocalUser(peerUserName,
 +          new PasswordToken(peerPassword));
  
 -    Set<String> files = connMaster.replicationOperations().referencedFiles(masterTable);
 -    for (String s : files) {
 -      log.info("Found referenced file for " + masterTable + ": " + s);
 -    }
 +      String peerClusterName = "peer";
  
 -    for (ProcessReference proc : cluster.getProcesses().get(ServerType.TABLET_SERVER)) {
 -      cluster.killProcess(ServerType.TABLET_SERVER, proc);
 -    }
 +      // ...peer = AccumuloReplicaSystem,instanceName,zookeepers
 +      clientMaster.instanceOperations().setProperty(
 +          Property.REPLICATION_PEERS.getKey() + peerClusterName,
 +          ReplicaSystemFactory.getPeerConfigurationValue(AccumuloReplicaSystem.class,
 +              AccumuloReplicaSystem.buildConfiguration(peerCluster.getInstanceName(),
 +                  peerCluster.getZooKeepers())));
 +
 +      // Configure the credentials we should use to authenticate ourselves to the peer for
 +      // replication
 +      clientMaster.instanceOperations()
 +          .setProperty(Property.REPLICATION_PEER_USER.getKey() + peerClusterName, peerUserName);
 +      clientMaster.instanceOperations()
 +          .setProperty(Property.REPLICATION_PEER_PASSWORD.getKey() + peerClusterName, peerPassword);
 +
 +      String masterTable = "master", peerTable = "peer";
 +
 +      clientPeer.tableOperations().create(peerTable);
 +      String peerTableId = clientPeer.tableOperations().tableIdMap().get(peerTable);
 +      assertNotNull(peerTableId);
 +
 +      Map<String,String> props = new HashMap<>();
 +      props.put(Property.TABLE_REPLICATION.getKey(), "true");
 +      props.put(Property.TABLE_REPLICATION_TARGET.getKey() + peerClusterName, peerTableId);
  
 -    cluster.exec(TabletServer.class);
 +      clientMaster.tableOperations().create(masterTable,
 +          new NewTableConfiguration().setProperties(props));
 +      String masterTableId = clientMaster.tableOperations().tableIdMap().get(masterTable);
 +      assertNotNull(masterTableId);
  
 -    Iterators.size(connMaster.createScanner(masterTable, Authorizations.EMPTY).iterator());
 +      // Give our replication user the ability to write to the table
 +      clientPeer.securityOperations().grantTablePermission(peerUserName, peerTable,
 +          TablePermission.WRITE);
  
 -    try (Scanner s = connMaster.createScanner(ReplicationTable.NAME, Authorizations.EMPTY)) {
 -      for (Entry<Key,Value> kv : s) {
 -        log.debug(kv.getKey().toStringNoTruncate() + " "
 -            + ProtobufUtil.toString(Status.parseFrom(kv.getValue().get())));
 +      // Write some data to table1
 +      try (BatchWriter bw = clientMaster.createBatchWriter(masterTable)) {
 +        for (int rows = 0; rows < 5000; rows++) {
 +          Mutation m = new Mutation(Integer.toString(rows));
 +          for (int cols = 0; cols < 100; cols++) {
 +            String value = Integer.toString(cols);
 +            m.put(value, "", value);
 +          }
 +          bw.addMutation(m);
 +        }
        }
 -    }
  
 -    connMaster.replicationOperations().drain(masterTable, files);
 -
 -    Scanner master = connMaster.createScanner(masterTable, Authorizations.EMPTY),
 -        peer = connPeer.createScanner(peerTable, Authorizations.EMPTY);
 -    Iterator<Entry<Key,Value>> masterIter = master.iterator(), peerIter = peer.iterator();
 -    assertTrue("No data in master table", masterIter.hasNext());
 -    assertTrue("No data in peer table", peerIter.hasNext());
 -    while (masterIter.hasNext() && peerIter.hasNext()) {
 -      Entry<Key,Value> masterEntry = masterIter.next(), peerEntry = peerIter.next();
 -      assertEquals(peerEntry.getKey() + " was not equal to " + peerEntry.getKey(), 0,
 -          masterEntry.getKey().compareTo(peerEntry.getKey(), PartialKey.ROW_COLFAM_COLQUAL_COLVIS));
 -      assertEquals(masterEntry.getValue(), peerEntry.getValue());
 -    }
 +      log.info("Wrote all data to master cluster");
 +
 +      Set<String> files = clientMaster.replicationOperations().referencedFiles(masterTable);
 +      for (String s : files) {
 +        log.info("Found referenced file for {}: {}", masterTable, s);
 +      }
  
 -    assertFalse("Had more data to read from the master", masterIter.hasNext());
 -    assertFalse("Had more data to read from the peer", peerIter.hasNext());
 +      for (ProcessReference proc : cluster.getProcesses().get(ServerType.TABLET_SERVER)) {
 +        cluster.killProcess(ServerType.TABLET_SERVER, proc);
 +      }
  
 -    peerCluster.stop();
 +      cluster.exec(TabletServer.class);
 +
 +      Iterators.size(clientMaster.createScanner(masterTable, Authorizations.EMPTY).iterator());
 +
-       for (Entry<Key,Value> kv : clientMaster.createScanner(ReplicationTable.NAME,
-           Authorizations.EMPTY)) {
-         log.debug("{} {}", kv.getKey().toStringNoTruncate(),
-             ProtobufUtil.toString(Status.parseFrom(kv.getValue().get())));
++      try (var scanner = clientMaster.createScanner(ReplicationTable.NAME, Authorizations.EMPTY)) {
++        for (Entry<Key,Value> kv : scanner) {
++          log.debug("{} {}", kv.getKey().toStringNoTruncate(),
++              ProtobufUtil.toString(Status.parseFrom(kv.getValue().get())));
++        }
 +      }
 +
 +      clientMaster.replicationOperations().drain(masterTable, files);
 +
 +      try (Scanner master = clientMaster.createScanner(masterTable, Authorizations.EMPTY);
 +          Scanner peer = clientPeer.createScanner(peerTable, Authorizations.EMPTY)) {
 +        Iterator<Entry<Key,Value>> masterIter = master.iterator(), peerIter = peer.iterator();
 +        assertTrue("No data in master table", masterIter.hasNext());
 +        assertTrue("No data in peer table", peerIter.hasNext());
 +        while (masterIter.hasNext() && peerIter.hasNext()) {
 +          Entry<Key,Value> masterEntry = masterIter.next(), peerEntry = peerIter.next();
 +          assertEquals(peerEntry.getKey() + " was not equal to " + peerEntry.getKey(), 0,
 +              masterEntry.getKey().compareTo(peerEntry.getKey(),
 +                  PartialKey.ROW_COLFAM_COLQUAL_COLVIS));
 +          assertEquals(masterEntry.getValue(), peerEntry.getValue());
 +        }
 +
 +        assertFalse("Had more data to read from the master", masterIter.hasNext());
 +        assertFalse("Had more data to read from the peer", peerIter.hasNext());
 +      }
 +      peerCluster.stop();
 +    }
    }
  
    @Test