Update examples build and dependencies (#84)

* Use latest Apache parent pom (24)
* Use Console instead of JLine to simplify things, since JLine isn't
  needed
* Use Accumulo parent POM for version resolution
* Update sortpom, impsort, and formatter
* Remove malformed javadocs
* Suppress deprecation warnings to reduce noise for examples of
  deprecated code
* Remove unused variables (static log objects)
diff --git a/pom.xml b/pom.xml
index f47110c..6f85a88 100644
--- a/pom.xml
+++ b/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache</groupId>
     <artifactId>apache</artifactId>
-    <version>23</version>
+    <version>24</version>
   </parent>
   <groupId>org.apache.accumulo</groupId>
   <artifactId>accumulo-examples</artifactId>
@@ -33,18 +33,28 @@
     <hadoop.version>3.3.0</hadoop.version>
     <htrace.hadoop.version>4.1.0-incubating</htrace.hadoop.version>
     <htrace.version>3.2.0-incubating</htrace.version>
-    <log4j.version>2.14.0</log4j.version>
     <maven.compiler.release>11</maven.compiler.release>
     <maven.compiler.source>11</maven.compiler.source>
     <maven.compiler.target>11</maven.compiler.target>
+    <minimalJavaBuildVersion>11</minimalJavaBuildVersion>
+    <minimalMavenBuildVersion>3.5.0</minimalMavenBuildVersion>
+    <!-- timestamp for reproducible outputs, updated on release by the release plugin -->
+    <project.build.outputTimestamp>2020-12-17T22:06:50Z</project.build.outputTimestamp>
     <zookeeper.version>3.5.9</zookeeper.version>
   </properties>
   <dependencyManagement>
     <dependencies>
       <dependency>
-        <groupId>com.google.guava</groupId>
-        <artifactId>guava</artifactId>
-        <version>29.0-jre</version>
+        <groupId>org.apache.accumulo</groupId>
+        <artifactId>accumulo-project</artifactId>
+        <version>${accumulo.version}</version>
+        <type>pom</type>
+        <scope>import</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.htrace</groupId>
+        <artifactId>htrace-core</artifactId>
+        <version>${htrace.version}</version>
       </dependency>
     </dependencies>
   </dependencyManagement>
@@ -52,89 +62,65 @@
     <dependency>
       <groupId>com.beust</groupId>
       <artifactId>jcommander</artifactId>
-      <version>1.72</version>
     </dependency>
     <dependency>
       <groupId>com.google.guava</groupId>
       <artifactId>guava</artifactId>
     </dependency>
     <dependency>
-      <groupId>commons-configuration</groupId>
-      <artifactId>commons-configuration</artifactId>
-      <version>1.10</version>
-    </dependency>
-    <dependency>
-      <groupId>jline</groupId>
-      <artifactId>jline</artifactId>
-      <version>2.14.6</version>
-    </dependency>
-    <dependency>
       <groupId>org.apache.accumulo</groupId>
       <artifactId>accumulo-core</artifactId>
-      <version>${accumulo.version}</version>
     </dependency>
     <dependency>
       <groupId>org.apache.accumulo</groupId>
       <artifactId>accumulo-hadoop-mapreduce</artifactId>
-      <version>${accumulo.version}</version>
     </dependency>
     <dependency>
       <groupId>org.apache.accumulo</groupId>
       <artifactId>accumulo-tracer</artifactId>
-      <version>${accumulo.version}</version>
     </dependency>
     <dependency>
       <groupId>org.apache.hadoop</groupId>
       <artifactId>hadoop-client</artifactId>
-      <version>${hadoop.version}</version>
     </dependency>
     <dependency>
       <groupId>org.apache.htrace</groupId>
       <artifactId>htrace-core</artifactId>
-      <version>${htrace.version}</version>
     </dependency>
     <dependency>
       <groupId>org.apache.htrace</groupId>
       <artifactId>htrace-core4</artifactId>
-      <version>${htrace.hadoop.version}</version>
     </dependency>
     <dependency>
       <groupId>org.apache.logging.log4j</groupId>
       <artifactId>log4j-api</artifactId>
-      <version>${log4j.version}</version>
     </dependency>
     <dependency>
       <groupId>org.apache.logging.log4j</groupId>
       <artifactId>log4j-core</artifactId>
-      <version>${log4j.version}</version>
     </dependency>
     <dependency>
       <groupId>org.apache.logging.log4j</groupId>
       <artifactId>log4j-slf4j-impl</artifactId>
-      <version>${log4j.version}</version>
     </dependency>
     <dependency>
       <groupId>org.apache.zookeeper</groupId>
       <artifactId>zookeeper</artifactId>
-      <version>${zookeeper.version}</version>
     </dependency>
     <!-- Test dependencies -->
     <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
-      <version>4.13.1</version>
       <scope>test</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.accumulo</groupId>
       <artifactId>accumulo-minicluster</artifactId>
-      <version>${accumulo.version}</version>
       <scope>test</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.accumulo</groupId>
       <artifactId>accumulo-test</artifactId>
-      <version>${accumulo.version}</version>
       <scope>test</scope>
     </dependency>
   </dependencies>
@@ -145,7 +131,6 @@
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-compiler-plugin</artifactId>
-          <version>3.8.1</version>
           <configuration>
             <optimize>true</optimize>
           </configuration>
@@ -153,15 +138,17 @@
         <plugin>
           <groupId>com.github.ekryd.sortpom</groupId>
           <artifactId>sortpom-maven-plugin</artifactId>
-          <version>2.10.0</version>
+          <version>3.0.0</version>
           <configuration>
-            <predefinedSortOrder>recommended_2008_06</predefinedSortOrder>
             <createBackupFile>false</createBackupFile>
-            <lineSeparator>\n</lineSeparator>
             <expandEmptyElements>false</expandEmptyElements>
+            <keepBlankLines>false</keepBlankLines>
+            <lineSeparator>\n</lineSeparator>
             <nrOfIndentSpace>2</nrOfIndentSpace>
+            <predefinedSortOrder>recommended_2008_06</predefinedSortOrder>
             <sortDependencies>scope,groupId,artifactId</sortDependencies>
             <sortProperties>true</sortProperties>
+            <spaceBeforeCloseEmptyElement>true</spaceBeforeCloseEmptyElement>
             <verifyFail>Stop</verifyFail>
           </configuration>
         </plugin>
@@ -175,30 +162,6 @@
     <plugins>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-enforcer-plugin</artifactId>
-        <executions>
-          <execution>
-            <!-- must be same id as in the apache parent pom, to override the version -->
-            <id>enforce-maven-version</id>
-            <goals>
-              <goal>enforce</goal>
-            </goals>
-            <phase>validate</phase>
-            <configuration>
-              <rules>
-                <requireMavenVersion>
-                  <version>[3.5.0,)</version>
-                </requireMavenVersion>
-                <requireJavaVersion>
-                  <version>[11,)</version>
-                </requireJavaVersion>
-              </rules>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-failsafe-plugin</artifactId>
         <executions>
           <execution>
@@ -214,7 +177,7 @@
         <!-- This was added to ensure project only uses public API -->
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-checkstyle-plugin</artifactId>
-        <version>3.1.0</version>
+        <version>3.1.2</version>
         <configuration>
           <configLocation>contrib/checkstyle.xml</configLocation>
         </configuration>
@@ -222,7 +185,7 @@
           <dependency>
             <groupId>com.puppycrawl.tools</groupId>
             <artifactId>checkstyle</artifactId>
-            <version>8.29</version>
+            <version>9.1</version>
           </dependency>
         </dependencies>
         <executions>
@@ -237,7 +200,7 @@
       <plugin>
         <groupId>net.revelc.code</groupId>
         <artifactId>impsort-maven-plugin</artifactId>
-        <version>1.3.0</version>
+        <version>1.6.2</version>
         <configuration>
           <removeUnused>true</removeUnused>
           <groups>java.,javax.,org.,com.</groups>
@@ -275,19 +238,20 @@
       <plugin>
         <groupId>net.revelc.code.formatter</groupId>
         <artifactId>formatter-maven-plugin</artifactId>
-        <version>2.10.0</version>
+        <version>2.17.1</version>
         <configuration>
-          <configFile>${eclipseFormatterStyle}</configFile>
           <compilerCompliance>${maven.compiler.source}</compilerCompliance>
           <compilerSource>${maven.compiler.source}</compilerSource>
           <compilerTargetPlatform>${maven.compiler.target}</compilerTargetPlatform>
+          <configFile>${eclipseFormatterStyle}</configFile>
           <lineEnding>LF</lineEnding>
           <overrideConfigCompilerVersion>true</overrideConfigCompilerVersion>
-          <skipJsFormatting>true</skipJsFormatting>
-          <skipHtmlFormatting>true</skipHtmlFormatting>
-          <skipXmlFormatting>true</skipXmlFormatting>
-          <skipJsonFormatting>true</skipJsonFormatting>
+          <removeTrailingWhitespace>true</removeTrailingWhitespace>
           <skipCssFormatting>true</skipCssFormatting>
+          <skipHtmlFormatting>true</skipHtmlFormatting>
+          <skipJsFormatting>true</skipJsFormatting>
+          <skipJsonFormatting>true</skipJsonFormatting>
+          <skipXmlFormatting>true</skipXmlFormatting>
         </configuration>
         <executions>
           <execution>
diff --git a/src/main/java/org/apache/accumulo/examples/Common.java b/src/main/java/org/apache/accumulo/examples/Common.java
index 69d1043..5fb99df 100644
--- a/src/main/java/org/apache/accumulo/examples/Common.java
+++ b/src/main/java/org/apache/accumulo/examples/Common.java
@@ -29,8 +29,6 @@
    *          AccumuloClient instance
    * @param table
    *          The name of the table to be created
-   * @throws AccumuloException
-   * @throws AccumuloSecurityException
    */
   public static void createTableWithNamespace(final AccumuloClient client, final String table)
       throws AccumuloException, AccumuloSecurityException {
diff --git a/src/main/java/org/apache/accumulo/examples/client/TracingExample.java b/src/main/java/org/apache/accumulo/examples/client/TracingExample.java
index 5891b96..77c04ea 100644
--- a/src/main/java/org/apache/accumulo/examples/client/TracingExample.java
+++ b/src/main/java/org/apache/accumulo/examples/client/TracingExample.java
@@ -119,6 +119,7 @@
     scope.close();
   }
 
+  @SuppressWarnings("deprecation")
   private void readEntries(Opts opts) throws TableNotFoundException {
 
     Scanner scanner = client.createScanner(opts.getTableName(), opts.auths);
diff --git a/src/main/java/org/apache/accumulo/examples/filedata/CharacterHistogram.java b/src/main/java/org/apache/accumulo/examples/filedata/CharacterHistogram.java
index 26bc73e..01c08bc 100644
--- a/src/main/java/org/apache/accumulo/examples/filedata/CharacterHistogram.java
+++ b/src/main/java/org/apache/accumulo/examples/filedata/CharacterHistogram.java
@@ -79,6 +79,7 @@
     String visibilities = "";
   }
 
+  @SuppressWarnings("deprecation")
   public static void main(String[] args) throws Exception {
     Opts opts = new Opts();
     opts.parseArgs(CharacterHistogram.class.getName(), args);
diff --git a/src/main/java/org/apache/accumulo/examples/filedata/ChunkInputFormat.java b/src/main/java/org/apache/accumulo/examples/filedata/ChunkInputFormat.java
index 3a29f8d..914375f 100644
--- a/src/main/java/org/apache/accumulo/examples/filedata/ChunkInputFormat.java
+++ b/src/main/java/org/apache/accumulo/examples/filedata/ChunkInputFormat.java
@@ -22,7 +22,6 @@
 import java.util.List;
 import java.util.Map.Entry;
 
-import org.apache.accumulo.core.client.mapreduce.InputFormatBase;
 import org.apache.accumulo.core.data.Key;
 import org.apache.accumulo.core.data.Value;
 import org.apache.accumulo.examples.util.FormatUtil;
@@ -37,7 +36,9 @@
  * An InputFormat that turns the file data ingested with {@link FileDataIngest} into an InputStream
  * using {@link ChunkInputStream}. Mappers used with this InputFormat must close the InputStream.
  */
-public class ChunkInputFormat extends InputFormatBase<List<Entry<Key,Value>>,InputStream> {
+@SuppressWarnings("deprecation")
+public class ChunkInputFormat extends
+    org.apache.accumulo.core.client.mapreduce.InputFormatBase<List<Entry<Key,Value>>,InputStream> {
   @Override
   public RecordReader<List<Entry<Key,Value>>,InputStream> createRecordReader(InputSplit split,
       TaskAttemptContext context) {
diff --git a/src/main/java/org/apache/accumulo/examples/filedata/FileDataIngest.java b/src/main/java/org/apache/accumulo/examples/filedata/FileDataIngest.java
index d649ac8..4249bcd 100644
--- a/src/main/java/org/apache/accumulo/examples/filedata/FileDataIngest.java
+++ b/src/main/java/org/apache/accumulo/examples/filedata/FileDataIngest.java
@@ -37,8 +37,6 @@
 import org.apache.accumulo.examples.cli.BatchWriterOpts;
 import org.apache.accumulo.examples.cli.ClientOnRequiredTable;
 import org.apache.hadoop.io.Text;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import com.beust.jcommander.Parameter;
 
@@ -47,8 +45,6 @@
  */
 public class FileDataIngest {
 
-  private static final Logger log = LoggerFactory.getLogger(FileDataIngest.class);
-
   public static final Text CHUNK_CF = new Text("~chunk");
   public static final Text REFS_CF = new Text("refs");
   public static final String REFS_ORIG_FILE = "name";
diff --git a/src/main/java/org/apache/accumulo/examples/mapreduce/bulk/BulkIngestExample.java b/src/main/java/org/apache/accumulo/examples/mapreduce/bulk/BulkIngestExample.java
index 0225731..aa163aa 100644
--- a/src/main/java/org/apache/accumulo/examples/mapreduce/bulk/BulkIngestExample.java
+++ b/src/main/java/org/apache/accumulo/examples/mapreduce/bulk/BulkIngestExample.java
@@ -37,8 +37,6 @@
 import org.apache.hadoop.mapreduce.Mapper;
 import org.apache.hadoop.mapreduce.Reducer;
 import org.apache.hadoop.mapreduce.lib.input.TextInputFormat;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 /**
  * Example map reduce job that bulk ingest data into an accumulo table. The expected input is text
@@ -46,8 +44,6 @@
  */
 public final class BulkIngestExample {
 
-  private static final Logger log = LoggerFactory.getLogger(BulkIngestExample.class);
-
   static final String workDir = "tmp/bulkWork";
   static final String inputDir = "bulk";
   static final String outputFile = "bulk/test_1.txt";
diff --git a/src/main/java/org/apache/accumulo/examples/reservations/ARS.java b/src/main/java/org/apache/accumulo/examples/reservations/ARS.java
index 572487b..852cb26 100644
--- a/src/main/java/org/apache/accumulo/examples/reservations/ARS.java
+++ b/src/main/java/org/apache/accumulo/examples/reservations/ARS.java
@@ -37,8 +37,6 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import jline.console.ConsoleReader;
-
 /**
  * Accumulo Reservation System : An example reservation system using Accumulo. Supports atomic
  * reservations of a resource at a date. Wait list are also supported. In order to keep the example
@@ -250,11 +248,12 @@
   }
 
   public static void main(String[] args) throws Exception {
-    final ConsoleReader reader = new ConsoleReader();
+    var console = System.console();
+    var out = System.out;
     ARS ars = null;
 
     while (true) {
-      String line = reader.readLine(">");
+      String line = console.readLine(">");
       if (line == null)
         break;
 
@@ -272,7 +271,7 @@
             @Override
             public void run() {
               try {
-                reader.println("  " + String.format("%20s", tokens[whoIndex]) + " : "
+                out.println("  " + String.format("%20s", tokens[whoIndex]) + " : "
                     + fars.reserve(tokens[1], tokens[2], tokens[whoIndex]));
               } catch (Exception e) {
                 log.warn("Could not write to the ConsoleReader.", e);
@@ -294,9 +293,9 @@
       } else if (tokens[0].equals("list") && tokens.length == 3 && ars != null) {
         List<String> reservations = ars.list(tokens[1], tokens[2]);
         if (reservations.size() > 0) {
-          reader.println("  Reservation holder : " + reservations.get(0));
+          out.println("  Reservation holder : " + reservations.get(0));
           if (reservations.size() > 1)
-            reader.println("  Wait list : " + reservations.subList(1, reservations.size()));
+            out.println("  Wait list : " + reservations.subList(1, reservations.size()));
         }
       } else if (tokens[0].equals("quit") && tokens.length == 1) {
         break;
@@ -307,18 +306,18 @@
             .as(tokens[3], tokens[4]).build();
         if (client.tableOperations().exists(tokens[5])) {
           ars = new ARS(client, tokens[5]);
-          reader.println("  connected");
+          out.println("  connected");
         } else {
-          reader.println("  No Such Table");
+          out.println("  No Such Table");
         }
       } else {
         System.out.println("  Commands : ");
         if (ars == null) {
-          reader.println("    connect <instance> <zookeepers> <user> <pass> <table>");
+          out.println("    connect <instance> <zookeepers> <user> <pass> <table>");
         } else {
-          reader.println("    reserve <what> <when> <who> {who}");
-          reader.println("    cancel <what> <when> <who>");
-          reader.println("    list <what> <when>");
+          out.println("    reserve <what> <when> <who> {who}");
+          out.println("    cancel <what> <when> <who>");
+          out.println("    list <what> <when>");
         }
       }
     }
diff --git a/src/main/java/org/apache/accumulo/examples/sample/SampleExample.java b/src/main/java/org/apache/accumulo/examples/sample/SampleExample.java
index 304f33a..5845fa3 100644
--- a/src/main/java/org/apache/accumulo/examples/sample/SampleExample.java
+++ b/src/main/java/org/apache/accumulo/examples/sample/SampleExample.java
@@ -26,7 +26,6 @@
 import org.apache.accumulo.core.client.Scanner;
 import org.apache.accumulo.core.client.TableExistsException;
 import org.apache.accumulo.core.client.admin.CompactionConfig;
-import org.apache.accumulo.core.client.admin.CompactionStrategyConfig;
 import org.apache.accumulo.core.client.sample.RowSampler;
 import org.apache.accumulo.core.client.sample.SamplerConfiguration;
 import org.apache.accumulo.core.data.Key;
@@ -37,8 +36,6 @@
 import org.apache.accumulo.examples.cli.ClientOnDefaultTable;
 import org.apache.accumulo.examples.client.RandomBatchWriter;
 import org.apache.accumulo.examples.shard.CutoffIntersectingIterator;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import com.google.common.collect.ImmutableMap;
 
@@ -49,11 +46,10 @@
  */
 public class SampleExample {
 
-  private static final Logger log = LoggerFactory.getLogger(SampleExample.class);
-
   // a compaction strategy that only selects files for compaction that have no sample data or sample
   // data created in a different way than the tables
-  static final CompactionStrategyConfig NO_SAMPLE_STRATEGY = new CompactionStrategyConfig(
+  @SuppressWarnings("removal")
+  static final org.apache.accumulo.core.client.admin.CompactionStrategyConfig NO_SAMPLE_STRATEGY = new org.apache.accumulo.core.client.admin.CompactionStrategyConfig(
       "org.apache.accumulo.tserver.compaction.strategies.ConfigurableCompactionStrategy")
           .setOptions(Collections.singletonMap("SF_NO_SAMPLE", ""));
 
@@ -63,6 +59,7 @@
     }
   }
 
+  @SuppressWarnings("removal")
   public static void main(String[] args) throws Exception {
     Opts opts = new Opts();
     BatchWriterOpts bwOpts = new BatchWriterOpts();
diff --git a/src/test/java/org/apache/accumulo/examples/filedata/ChunkInputFormatIT.java b/src/test/java/org/apache/accumulo/examples/filedata/ChunkInputFormatIT.java
index 5756493..ee0900a 100644
--- a/src/test/java/org/apache/accumulo/examples/filedata/ChunkInputFormatIT.java
+++ b/src/test/java/org/apache/accumulo/examples/filedata/ChunkInputFormatIT.java
@@ -239,6 +239,7 @@
       }
     }
 
+    @SuppressWarnings("deprecation")
     @Override
     public int run(String[] args) throws Exception {
       if (args.length != 2) {