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/08/20 19:47:29 UTC

[accumulo] branch 1.10 updated: Fix issues in prep for 1.10 release (#1688)

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

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


The following commit(s) were added to refs/heads/1.10 by this push:
     new dab5b80  Fix issues in prep for 1.10 release (#1688)
dab5b80 is described below

commit dab5b80155835d2793b542aa4fcc382c189f9fbe
Author: Christopher Tubbs <ct...@apache.org>
AuthorDate: Thu Aug 20 15:47:19 2020 -0400

    Fix issues in prep for 1.10 release (#1688)
    
    * Bump snapshot versions to 1.10.0-SNAPSHOT
    * Converge the Hadoop 2 and Hadoop 3 assemblies, so only one is
      necessary (tested both on Hadoop 2.6.5, 3.0.3, and 3.3.0 using
      fluo-uno)
    * Bumped plugin versions and added timestamp flag for increased build
      reproducibility; timestamp should automatically update during release
      process; verified the built jars differ only in the contents of the
      generated META-INF/DEPENDENCIES file when building with the Hadoop2
      vs. the Hadoop3 profiles, and since this file doesn't matter, they are
      now provably equivalent builds
    * Fixed some Hadoop profile issues, and updated Hadoop versions to
      latest patch version in the minor release lines we had previously been
      building with as our minimum supported versions
    * Update Guava-related code to work with both Hadoop 2 and 3;
      suppress warnings or migrate code to avoid code paths that won't work
      across Guava versions, for fewer class path surprises related to
      Guava
    * Update asciidoc plugin, and fix various doc build issues warned about
      by the plugin
    * Use last commons-io that doesn't break vfs2
    * Make Guava version configurable at build time, so it's easier to build a
      package that contains a version of guava suitable for Hadoop 3.1 and later.
---
 assemble/pom.xml                                   | 114 +++------
 .../src/main/assemblies/binary-release-hadoop3.xml |  27 --
 assemble/src/main/assemblies/component-hadoop3.xml | 283 ---------------------
 assemble/src/main/assemblies/component.xml         |   7 +
 core/pom.xml                                       |   2 +-
 .../core/client/sample/AbstractHashSampler.java    |   8 +-
 .../core/sample/impl/DataoutputHasher.java         |   9 +-
 .../apache/accumulo/core/file/rfile/RFileTest.java |   4 +-
 docs/pom.xml                                       |   2 +-
 .../main/asciidoc/accumulo_user_manual.asciidoc    |   5 +-
 docs/src/main/asciidoc/chapters/design.txt         |   4 +-
 examples/simple/pom.xml                            |   2 +-
 fate/pom.xml                                       |   2 +-
 iterator-test-harness/pom.xml                      |   2 +-
 maven-plugin/pom.xml                               |   2 +-
 minicluster/pom.xml                                |   2 +-
 pom.xml                                            |  65 ++---
 proxy/pom.xml                                      |   2 +-
 server/base/pom.xml                                |   2 +-
 server/gc/pom.xml                                  |   2 +-
 .../replication/CloseWriteAheadLogReferences.java  |  24 +-
 server/master/pom.xml                              |   2 +-
 .../RemoveCompleteReplicationRecords.java          |  12 +-
 server/monitor/pom.xml                             |   2 +-
 server/native/pom.xml                              |   2 +-
 server/tracer/pom.xml                              |   2 +-
 server/tserver/pom.xml                             |   2 +-
 shell/pom.xml                                      |   2 +-
 start/pom.xml                                      |   2 +-
 test/pom.xml                                       |   2 +-
 .../apache/accumulo/test/functional/ScannerIT.java |  35 +--
 trace/pom.xml                                      |   2 +-
 32 files changed, 132 insertions(+), 503 deletions(-)

diff --git a/assemble/pom.xml b/assemble/pom.xml
index 2da82a7..810a406 100644
--- a/assemble/pom.xml
+++ b/assemble/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.accumulo</groupId>
     <artifactId>accumulo-project</artifactId>
-    <version>1.9.4-SNAPSHOT</version>
+    <version>1.10.0-SNAPSHOT</version>
   </parent>
   <artifactId>accumulo</artifactId>
   <packaging>pom</packaging>
@@ -48,11 +48,41 @@
       <optional>true</optional>
     </dependency>
     <dependency>
+      <groupId>commons-cli</groupId>
+      <artifactId>commons-cli</artifactId>
+      <optional>true</optional>
+    </dependency>
+    <dependency>
+      <groupId>commons-codec</groupId>
+      <artifactId>commons-codec</artifactId>
+      <optional>true</optional>
+    </dependency>
+    <dependency>
+      <groupId>commons-collections</groupId>
+      <artifactId>commons-collections</artifactId>
+      <optional>true</optional>
+    </dependency>
+    <dependency>
       <groupId>commons-configuration</groupId>
       <artifactId>commons-configuration</artifactId>
       <optional>true</optional>
     </dependency>
     <dependency>
+      <groupId>commons-io</groupId>
+      <artifactId>commons-io</artifactId>
+      <optional>true</optional>
+    </dependency>
+    <dependency>
+      <groupId>commons-lang</groupId>
+      <artifactId>commons-lang</artifactId>
+      <optional>true</optional>
+    </dependency>
+    <dependency>
+      <groupId>commons-logging</groupId>
+      <artifactId>commons-logging</artifactId>
+      <optional>true</optional>
+    </dependency>
+    <dependency>
       <groupId>javax.servlet</groupId>
       <artifactId>javax.servlet-api</artifactId>
       <optional>true</optional>
@@ -166,6 +196,11 @@
       <optional>true</optional>
     </dependency>
     <dependency>
+      <groupId>org.apache.htrace</groupId>
+      <artifactId>htrace-core4</artifactId>
+      <optional>true</optional>
+    </dependency>
+    <dependency>
       <groupId>org.apache.thrift</groupId>
       <artifactId>libthrift</artifactId>
       <optional>true</optional>
@@ -228,8 +263,8 @@
               <outputFile>${project.build.directory}/dependencies.raw.txt</outputFile>
               <outputScope>false</outputScope>
               <sort>true</sort>
-              <!-- this list should match that in src/main/assemblies/component.xml -->
-              <includeArtifactIds>${artifactList}</includeArtifactIds>
+              <excludeArtifactIds>modernizer-maven-annotations</excludeArtifactIds>
+              <excludeGroupIds>${project.groupId}</excludeGroupIds>
               <excludeTransitive>true</excludeTransitive>
             </configuration>
           </execution>
@@ -273,7 +308,7 @@
             <phase>package</phase>
             <configuration>
               <descriptors>
-                <descriptor>${assemblyDescriptor}</descriptor>
+                <descriptor>src/main/assemblies/binary-release.xml</descriptor>
               </descriptors>
             </configuration>
           </execution>
@@ -328,76 +363,5 @@
         </dependency>
       </dependencies>
     </profile>
-    <profile>
-      <id>hadoop-default</id>
-      <activation>
-        <property>
-          <name>!hadoop.profile</name>
-        </property>
-      </activation>
-      <properties>
-        <artifactList>commons-configuration,commons-math3,commons-vfs2,gson,guava,htrace-core,javax.servlet-api,jcommander,jetty-http,jetty-io,jetty-security,jetty-server,jetty-servlet,jetty-util,jline,libthrift,protobuf-java,slf4j-api,slf4j-log4j12</artifactList>
-        <assemblyDescriptor>src/main/assemblies/binary-release.xml</assemblyDescriptor>
-        <hadoop.profile>2</hadoop.profile>
-      </properties>
-    </profile>
-    <profile>
-      <id>hadoop2</id>
-      <activation>
-        <property>
-          <name>hadoop.profile</name>
-          <value>2</value>
-        </property>
-      </activation>
-      <properties>
-        <artifactList>commons-configuration,commons-math3,commons-vfs2,gson,guava,htrace-core,javax.servlet-api,jcommander,jetty-http,jetty-io,jetty-security,jetty-server,jetty-servlet,jetty-util,jline,libthrift,protobuf-java,slf4j-api,slf4j-log4j12</artifactList>
-        <assemblyDescriptor>src/main/assemblies/binary-release.xml</assemblyDescriptor>
-      </properties>
-    </profile>
-    <profile>
-      <id>hadoop3</id>
-      <activation>
-        <property>
-          <name>hadoop.profile</name>
-          <value>3</value>
-        </property>
-      </activation>
-      <properties>
-        <artifactList>commons-cli,commons-codec,commons-collections,commons-configuration,commons-io,commons-lang,commons-logging,commons-math3,commons-vfs2,gson,guava,htrace-core,htrace-core4,javax.servlet-api,jcommander,jetty-http,jetty-io,jetty-security,jetty-server,jetty-servlet,jetty-util,jline,libthrift,protobuf-java,slf4j-api,slf4j-log4j12</artifactList>
-        <assemblyDescriptor>src/main/assemblies/binary-release-hadoop3.xml</assemblyDescriptor>
-      </properties>
-      <!-- When using Hadoop 3 with the shaded jars, we need to provide
- 					 the jars we need instead of relying on them externally. -->
-      <dependencies>
-        <dependency>
-          <groupId>commons-cli</groupId>
-          <artifactId>commons-cli</artifactId>
-        </dependency>
-        <dependency>
-          <groupId>commons-codec</groupId>
-          <artifactId>commons-codec</artifactId>
-        </dependency>
-        <dependency>
-          <groupId>commons-collections</groupId>
-          <artifactId>commons-collections</artifactId>
-        </dependency>
-        <dependency>
-          <groupId>commons-io</groupId>
-          <artifactId>commons-io</artifactId>
-        </dependency>
-        <dependency>
-          <groupId>commons-lang</groupId>
-          <artifactId>commons-lang</artifactId>
-        </dependency>
-        <dependency>
-          <groupId>commons-logging</groupId>
-          <artifactId>commons-logging</artifactId>
-        </dependency>
-        <dependency>
-          <groupId>org.apache.htrace</groupId>
-          <artifactId>htrace-core4</artifactId>
-        </dependency>
-      </dependencies>
-    </profile>
   </profiles>
 </project>
diff --git a/assemble/src/main/assemblies/binary-release-hadoop3.xml b/assemble/src/main/assemblies/binary-release-hadoop3.xml
deleted file mode 100644
index c21f5da..0000000
--- a/assemble/src/main/assemblies/binary-release-hadoop3.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one or more
-  contributor license agreements.  See the NOTICE file distributed with
-  this work for additional information regarding copyright ownership.
-  The ASF licenses this file to You under the Apache License, Version 2.0
-  (the "License"); you may not use this file except in compliance with
-  the License.  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
--->
-<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
-  <id>bin</id>
-  <formats>
-    <format>tar.gz</format>
-  </formats>
-  <componentDescriptors>
-    <componentDescriptor>src/main/assemblies/component-hadoop3.xml</componentDescriptor>
-  </componentDescriptors>
-</assembly>
diff --git a/assemble/src/main/assemblies/component-hadoop3.xml b/assemble/src/main/assemblies/component-hadoop3.xml
deleted file mode 100644
index e5a83ea..0000000
--- a/assemble/src/main/assemblies/component-hadoop3.xml
+++ /dev/null
@@ -1,283 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one or more
-  contributor license agreements.  See the NOTICE file distributed with
-  this work for additional information regarding copyright ownership.
-  The ASF licenses this file to You under the Apache License, Version 2.0
-  (the "License"); you may not use this file except in compliance with
-  the License.  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
--->
-<component xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/component/1.1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/component/1.1.2 http://maven.apache.org/xsd/component-1.1.2.xsd">
-  <dependencySets>
-    <dependencySet>
-      <outputDirectory>lib</outputDirectory>
-      <directoryMode>0755</directoryMode>
-      <fileMode>0644</fileMode>
-      <useProjectArtifact>false</useProjectArtifact>
-      <outputFileNameMapping>${artifact.artifactId}${dashClassifier?}.${artifact.extension}</outputFileNameMapping>
-      <useTransitiveDependencies>false</useTransitiveDependencies>
-      <includes>
-        <!-- if you update this list, you should also update the assembly
-        pom.xml section which executes the maven-dependency-plugin to generate a
-        version listing for packaged artifacts -->
-        <include>${groupId}:${artifactId}-*</include>
-        <include>com.beust:jcommander</include>
-        <include>com.google.code.gson:gson</include>
-        <include>com.google.guava:guava</include>
-        <include>com.google.protobuf:protobuf-java</include>
-        <include>commons-cli:commons-cli</include>
-        <include>commons-codec:commons-codec</include>
-        <include>commons-collections:commons-collections</include>
-        <include>commons-configuration:commons-configuration</include>
-        <include>commons-io:commons-io</include>
-        <include>commons-lang:commons-lang</include>
-        <include>commons-logging:commons-logging</include>
-        <include>javax.servlet:javax.servlet-api</include>
-        <include>jline:jline</include>
-        <include>org.apache.commons:commons-math3</include>
-        <include>org.apache.commons:commons-vfs2</include>
-        <include>org.apache.htrace:htrace-core4</include>
-        <include>org.apache.htrace:htrace-core</include>
-        <include>org.apache.thrift:libthrift</include>
-        <include>org.eclipse.jetty:jetty-http</include>
-        <include>org.eclipse.jetty:jetty-io</include>
-        <include>org.eclipse.jetty:jetty-security</include>
-        <include>org.eclipse.jetty:jetty-server</include>
-        <include>org.eclipse.jetty:jetty-servlet</include>
-        <include>org.eclipse.jetty:jetty-util</include>
-        <include>org.slf4j:slf4j-api</include>
-        <include>org.slf4j:slf4j-log4j12</include>
-      </includes>
-      <excludes>
-        <exclude>${groupId}:${artifactId}-docs</exclude>
-      </excludes>
-    </dependencySet>
-    <dependencySet>
-      <outputDirectory>docs</outputDirectory>
-      <directoryMode>0755</directoryMode>
-      <fileMode>0644</fileMode>
-      <useProjectArtifact>false</useProjectArtifact>
-      <outputFileNameMapping>${artifactId}_user_manual.${artifact.extension}</outputFileNameMapping>
-      <useTransitiveDependencies>false</useTransitiveDependencies>
-      <includes>
-        <include>${groupId}:${artifactId}-docs:html:user-manual</include>
-      </includes>
-    </dependencySet>
-  </dependencySets>
-  <fileSets>
-    <fileSet>
-      <directory>bin</directory>
-      <directoryMode>0755</directoryMode>
-      <fileMode>0755</fileMode>
-    </fileSet>
-    <fileSet>
-      <directory>../examples/simple</directory>
-      <outputDirectory>examples/simple</outputDirectory>
-      <directoryMode>0755</directoryMode>
-      <fileMode>0644</fileMode>
-      <includes>
-        <include>src/main/**</include>
-      </includes>
-    </fileSet>
-    <fileSet>
-      <directory>./</directory>
-      <outputDirectory>lib/ext</outputDirectory>
-      <directoryMode>0755</directoryMode>
-      <excludes>
-        <exclude>*/**</exclude>
-      </excludes>
-    </fileSet>
-    <fileSet>
-      <directory>./</directory>
-      <outputDirectory>logs</outputDirectory>
-      <directoryMode>0700</directoryMode>
-      <excludes>
-        <exclude>*/**</exclude>
-      </excludes>
-    </fileSet>
-    <fileSet>
-      <directory>../docs/src/main/resources</directory>
-      <outputDirectory>docs</outputDirectory>
-      <directoryMode>0755</directoryMode>
-      <fileMode>0644</fileMode>
-      <includes>
-        <include>*.html</include>
-        <include>*.css</include>
-        <include>examples/*</include>
-      </includes>
-    </fileSet>
-    <fileSet>
-      <directory>../docs/target</directory>
-      <outputDirectory>docs</outputDirectory>
-      <directoryMode>0755</directoryMode>
-      <fileMode>0644</fileMode>
-      <includes>
-        <include>config.html</include>
-      </includes>
-    </fileSet>
-    <fileSet>
-      <directory>conf</directory>
-      <directoryMode>0755</directoryMode>
-      <fileMode>0755</fileMode>
-      <includes>
-        <include>**/*.sh</include>
-      </includes>
-    </fileSet>
-    <fileSet>
-      <directory>conf</directory>
-      <directoryMode>0755</directoryMode>
-      <fileMode>0644</fileMode>
-      <excludes>
-        <exclude>**/*.sh</exclude>
-      </excludes>
-    </fileSet>
-    <fileSet>
-      <!-- preserve old behavior of extra copy in conf -->
-      <directory>conf/templates</directory>
-      <outputDirectory>conf</outputDirectory>
-      <directoryMode>0755</directoryMode>
-      <fileMode>0644</fileMode>
-      <includes>
-        <include>accumulo.policy.example</include>
-      </includes>
-    </fileSet>
-    <fileSet>
-      <directory>target/example-configs</directory>
-      <outputDirectory>conf/examples</outputDirectory>
-      <directoryMode>0755</directoryMode>
-      <fileMode>0755</fileMode>
-      <includes>
-        <include>**/*.sh</include>
-      </includes>
-    </fileSet>
-    <fileSet>
-      <directory>target/example-configs</directory>
-      <outputDirectory>conf/examples</outputDirectory>
-      <directoryMode>0755</directoryMode>
-      <fileMode>0644</fileMode>
-      <excludes>
-        <exclude>**/*.sh</exclude>
-      </excludes>
-    </fileSet>
-    <fileSet>
-      <directory>../test</directory>
-      <directoryMode>0755</directoryMode>
-      <fileMode>0755</fileMode>
-      <includes>
-        <include>**/*.sh</include>
-        <include>**/*.py</include>
-        <include>**/*.pl</include>
-      </includes>
-      <excludes>
-        <exclude>src/**</exclude>
-        <exclude>target/**</exclude>
-        <exclude>**/continuous-env.sh</exclude>
-      </excludes>
-    </fileSet>
-    <fileSet>
-      <directory>../test</directory>
-      <directoryMode>0755</directoryMode>
-      <fileMode>0644</fileMode>
-      <excludes>
-        <exclude>**/.*/**</exclude>
-        <exclude>pom.xml</exclude>
-        <exclude>src/**</exclude>
-        <exclude>target/**</exclude>
-        <exclude>**/*.sh</exclude>
-        <exclude>**/*.py</exclude>
-        <exclude>**/*.pl</exclude>
-        <exclude>**/*.pyc</exclude>
-        <exclude>**/*.pyo</exclude>
-        <exclude>**/walkers.txt</exclude>
-        <exclude>**/ingesters.txt</exclude>
-        <exclude>**/randomwalk/conf/logger.xml</exclude>
-        <exclude>**/randomwalk/conf/randomwalk.conf</exclude>
-        <exclude>**/randomwalk/conf/walkers</exclude>
-      </excludes>
-    </fileSet>
-    <!-- Lift generated thrift proxy code into its own directory -->
-    <fileSet>
-      <directory>../proxy/target</directory>
-      <directoryMode>0755</directoryMode>
-      <fileMode>0644</fileMode>
-      <outputDirectory>proxy/thrift</outputDirectory>
-      <includes>
-        <include>gen-cpp/**</include>
-        <include>gen-py/**</include>
-        <include>gen-rb/**</include>
-      </includes>
-    </fileSet>
-    <fileSet>
-      <directory>../proxy</directory>
-      <directoryMode>0755</directoryMode>
-      <fileMode>0644</fileMode>
-      <includes>
-        <include>README</include>
-        <include>proxy.properties</include>
-      </includes>
-    </fileSet>
-    <fileSet>
-      <directory>../proxy/examples</directory>
-      <directoryMode>0755</directoryMode>
-      <fileMode>0755</fileMode>
-      <includes>
-        <include>**/*.py</include>
-        <include>**/*.rb</include>
-      </includes>
-    </fileSet>
-    <fileSet>
-      <directory>../proxy/examples</directory>
-      <directoryMode>0755</directoryMode>
-      <fileMode>0644</fileMode>
-      <excludes>
-        <exclude>**/*.py</exclude>
-        <exclude>**/*.rb</exclude>
-      </excludes>
-    </fileSet>
-    <fileSet>
-      <directory>../proxy/src/main/thrift</directory>
-      <directoryMode>0755</directoryMode>
-      <fileMode>0644</fileMode>
-      <outputDirectory>proxy/thrift</outputDirectory>
-      <includes>
-        <include>*.thrift</include>
-      </includes>
-    </fileSet>
-    <fileSet>
-      <directory>../</directory>
-      <fileMode>0644</fileMode>
-      <includes>
-        <include>README.md</include>
-        <include>INSTALL.md</include>
-        <include>BUILD.md</include>
-      </includes>
-    </fileSet>
-    <fileSet>
-      <directory>target</directory>
-      <outputDirectory>lib</outputDirectory>
-      <fileMode>0644</fileMode>
-      <includes>
-        <include>VERSIONS</include>
-      </includes>
-    </fileSet>
-    <fileSet>
-      <directory>src/main/resources</directory>
-      <directoryMode>0755</directoryMode>
-      <fileMode>0644</fileMode>
-      <outputDirectory>.</outputDirectory>
-      <includes>
-        <include>LICENSE</include>
-        <include>NOTICE</include>
-      </includes>
-    </fileSet>
-  </fileSets>
-</component>
diff --git a/assemble/src/main/assemblies/component.xml b/assemble/src/main/assemblies/component.xml
index c63c482..e5a83ea 100644
--- a/assemble/src/main/assemblies/component.xml
+++ b/assemble/src/main/assemblies/component.xml
@@ -34,11 +34,18 @@
         <include>com.google.code.gson:gson</include>
         <include>com.google.guava:guava</include>
         <include>com.google.protobuf:protobuf-java</include>
+        <include>commons-cli:commons-cli</include>
+        <include>commons-codec:commons-codec</include>
+        <include>commons-collections:commons-collections</include>
         <include>commons-configuration:commons-configuration</include>
+        <include>commons-io:commons-io</include>
+        <include>commons-lang:commons-lang</include>
+        <include>commons-logging:commons-logging</include>
         <include>javax.servlet:javax.servlet-api</include>
         <include>jline:jline</include>
         <include>org.apache.commons:commons-math3</include>
         <include>org.apache.commons:commons-vfs2</include>
+        <include>org.apache.htrace:htrace-core4</include>
         <include>org.apache.htrace:htrace-core</include>
         <include>org.apache.thrift:libthrift</include>
         <include>org.eclipse.jetty:jetty-http</include>
diff --git a/core/pom.xml b/core/pom.xml
index 46aabce..ab1e9d4 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.accumulo</groupId>
     <artifactId>accumulo-project</artifactId>
-    <version>1.9.4-SNAPSHOT</version>
+    <version>1.10.0-SNAPSHOT</version>
   </parent>
   <artifactId>accumulo-core</artifactId>
   <name>Apache Accumulo Core</name>
diff --git a/core/src/main/java/org/apache/accumulo/core/client/sample/AbstractHashSampler.java b/core/src/main/java/org/apache/accumulo/core/client/sample/AbstractHashSampler.java
index ad78149..faaef29 100644
--- a/core/src/main/java/org/apache/accumulo/core/client/sample/AbstractHashSampler.java
+++ b/core/src/main/java/org/apache/accumulo/core/client/sample/AbstractHashSampler.java
@@ -87,10 +87,14 @@ public abstract class AbstractHashSampler implements Sampler {
         hashFunction = Hashing.murmur3_32();
         break;
       case "md5":
-        hashFunction = Hashing.md5();
+        @SuppressWarnings("deprecation")
+        HashFunction deprecatedMd5 = Hashing.md5();
+        hashFunction = deprecatedMd5;
         break;
       case "sha1":
-        hashFunction = Hashing.sha1();
+        @SuppressWarnings("deprecation")
+        HashFunction deprecatedSha1 = Hashing.sha1();
+        hashFunction = deprecatedSha1;
         break;
       default:
         throw new IllegalArgumentException("Uknown hahser " + hasherOpt);
diff --git a/core/src/main/java/org/apache/accumulo/core/sample/impl/DataoutputHasher.java b/core/src/main/java/org/apache/accumulo/core/sample/impl/DataoutputHasher.java
index d243dfe..e1d71ca 100644
--- a/core/src/main/java/org/apache/accumulo/core/sample/impl/DataoutputHasher.java
+++ b/core/src/main/java/org/apache/accumulo/core/sample/impl/DataoutputHasher.java
@@ -96,8 +96,13 @@ public class DataoutputHasher implements DataOutput {
 
   @Override
   public void writeChars(String s) throws IOException {
-    hasher.putString(s);
-
+    // use loop here instead of built-in hasher.putUnencodedChars (formerly hasher.putString) so
+    // that way it will work across the different Guava versions that could be on the class path due
+    // to differences between Hadoop 2 and 3.
+    int len = s.length();
+    for (int i = 0; i < len; i++) {
+      hasher.putChar(s.charAt(i));
+    }
   }
 
   @Override
diff --git a/core/src/test/java/org/apache/accumulo/core/file/rfile/RFileTest.java b/core/src/test/java/org/apache/accumulo/core/file/rfile/RFileTest.java
index d669743..f724898 100644
--- a/core/src/test/java/org/apache/accumulo/core/file/rfile/RFileTest.java
+++ b/core/src/test/java/org/apache/accumulo/core/file/rfile/RFileTest.java
@@ -2004,7 +2004,7 @@ public class RFileTest {
       RFile.setSampleBufferSize(sampleBufferSize);
 
       for (int modulus : new int[] {19, 103, 1019}) {
-        Hasher dataHasher = Hashing.md5().newHasher();
+        Hasher dataHasher = Hashing.sha512().newHasher();
         List<Entry<Key,Value>> sampleData = new ArrayList<>();
 
         ConfigurationCopy sampleConf = new ConfigurationCopy(
@@ -2069,7 +2069,7 @@ public class RFileTest {
   }
 
   private HashCode hash(SortedKeyValueIterator<Key,Value> iter) throws IOException {
-    Hasher dataHasher = Hashing.md5().newHasher();
+    Hasher dataHasher = Hashing.sha512().newHasher();
     iter.seek(new Range(), EMPTY_COL_FAMS, false);
     while (iter.hasTop()) {
       hash(dataHasher, iter.getTopKey(), iter.getTopValue());
diff --git a/docs/pom.xml b/docs/pom.xml
index 6817280..3130056 100644
--- a/docs/pom.xml
+++ b/docs/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.accumulo</groupId>
     <artifactId>accumulo-project</artifactId>
-    <version>1.9.4-SNAPSHOT</version>
+    <version>1.10.0-SNAPSHOT</version>
   </parent>
   <artifactId>accumulo-docs</artifactId>
   <packaging>pom</packaging>
diff --git a/docs/src/main/asciidoc/accumulo_user_manual.asciidoc b/docs/src/main/asciidoc/accumulo_user_manual.asciidoc
index 5145684..2f2e850 100644
--- a/docs/src/main/asciidoc/accumulo_user_manual.asciidoc
+++ b/docs/src/main/asciidoc/accumulo_user_manual.asciidoc
@@ -13,8 +13,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-Apache Accumulo® User Manual Version ${parsedVersion.majorVersion}.${parsedVersion.minorVersion}
-=======================================
+= Apache Accumulo® User Manual Version ${parsedVersion.majorVersion}.${parsedVersion.minorVersion}
 :author: Apache Accumulo Project
 :email: dev@accumulo.apache.org
 :toc2:
@@ -23,7 +22,7 @@ Apache Accumulo® User Manual Version ${parsedVersion.majorVersion}.${parsedVers
 :numbered:
 :website: https://accumulo.apache.org/
 
-image::accumulo-logo.png[]
+image::images/accumulo-logo.png[]
 
 Copyright © 2011-2020 The Apache Software Foundation, Licensed under the Apache
 License, Version 2.0.  Apache Accumulo, Accumulo, Apache, and the Apache
diff --git a/docs/src/main/asciidoc/chapters/design.txt b/docs/src/main/asciidoc/chapters/design.txt
index 6c77cb6..c067e16 100644
--- a/docs/src/main/asciidoc/chapters/design.txt
+++ b/docs/src/main/asciidoc/chapters/design.txt
@@ -117,7 +117,7 @@ clients insert and query data, and as machines are added and removed from the
 cluster, the Master migrates tablets to ensure they remain available and that the
 ingest and query load is balanced across the cluster.
 
-image::data_distribution.png[width=500]
+image::images/data_distribution.png[width=500]
 
 === Tablet Service
 
@@ -177,4 +177,4 @@ that are destined for the tablets they have now been assigned.
 TabletServer failures are noted on the Master's monitor page, accessible via
 +http://master-address:9995/monitor+.
 
-image::failure_handling.png[width=500]
+image::images/failure_handling.png[width=500]
diff --git a/examples/simple/pom.xml b/examples/simple/pom.xml
index 679367e..3ce69e3 100644
--- a/examples/simple/pom.xml
+++ b/examples/simple/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.accumulo</groupId>
     <artifactId>accumulo-project</artifactId>
-    <version>1.9.4-SNAPSHOT</version>
+    <version>1.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <artifactId>accumulo-examples-simple</artifactId>
diff --git a/fate/pom.xml b/fate/pom.xml
index ae547b0..bd9a3bf 100644
--- a/fate/pom.xml
+++ b/fate/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.accumulo</groupId>
     <artifactId>accumulo-project</artifactId>
-    <version>1.9.4-SNAPSHOT</version>
+    <version>1.10.0-SNAPSHOT</version>
   </parent>
   <artifactId>accumulo-fate</artifactId>
   <name>Apache Accumulo Fate</name>
diff --git a/iterator-test-harness/pom.xml b/iterator-test-harness/pom.xml
index 97ba97b..4e5cc66 100644
--- a/iterator-test-harness/pom.xml
+++ b/iterator-test-harness/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.accumulo</groupId>
     <artifactId>accumulo-project</artifactId>
-    <version>1.9.4-SNAPSHOT</version>
+    <version>1.10.0-SNAPSHOT</version>
   </parent>
   <artifactId>accumulo-iterator-test-harness</artifactId>
   <name>Apache Accumulo Iterator Test Harness</name>
diff --git a/maven-plugin/pom.xml b/maven-plugin/pom.xml
index b5108e4..1ba1e04 100644
--- a/maven-plugin/pom.xml
+++ b/maven-plugin/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.accumulo</groupId>
     <artifactId>accumulo-project</artifactId>
-    <version>1.9.4-SNAPSHOT</version>
+    <version>1.10.0-SNAPSHOT</version>
   </parent>
   <artifactId>accumulo-maven-plugin</artifactId>
   <packaging>maven-plugin</packaging>
diff --git a/minicluster/pom.xml b/minicluster/pom.xml
index 4e0382c..c3218de 100644
--- a/minicluster/pom.xml
+++ b/minicluster/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.accumulo</groupId>
     <artifactId>accumulo-project</artifactId>
-    <version>1.9.4-SNAPSHOT</version>
+    <version>1.10.0-SNAPSHOT</version>
   </parent>
   <artifactId>accumulo-minicluster</artifactId>
   <name>Apache Accumulo MiniCluster</name>
diff --git a/pom.xml b/pom.xml
index 3b30cd8..5f1fae3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -20,11 +20,11 @@
   <parent>
     <groupId>org.apache</groupId>
     <artifactId>apache</artifactId>
-    <version>21</version>
+    <version>23</version>
   </parent>
   <groupId>org.apache.accumulo</groupId>
   <artifactId>accumulo-project</artifactId>
-  <version>1.9.4-SNAPSHOT</version>
+  <version>1.10.0-SNAPSHOT</version>
   <packaging>pom</packaging>
   <name>Apache Accumulo Project</name>
   <description>Apache Accumulo is a sorted, distributed key/value store based
@@ -127,6 +127,8 @@
     <failsafe.groups />
     <!-- surefire/failsafe plugin option -->
     <forkCount>1</forkCount>
+    <!-- version that works when building with Hadoop 2 or 3.0; use 27.0-jre for 3.1 and later -->
+    <guava.version>14.0.1</guava.version>
     <hadoop.version>2.6.5</hadoop.version>
     <htrace.hadoop.version>4.1.0-incubating</htrace.hadoop.version>
     <htrace.version>3.1.0-incubating</htrace.version>
@@ -136,10 +138,12 @@
     <maven.compiler.release>8</maven.compiler.release>
     <maven.compiler.source>1.8</maven.compiler.source>
     <maven.compiler.target>1.8</maven.compiler.target>
-    <maven.plugin-version>3.0.5</maven.plugin-version>
+    <maven.plugin-version>3.5.0</maven.plugin-version>
     <!-- surefire/failsafe plugin option -->
     <maven.test.redirectTestOutputToFile>true</maven.test.redirectTestOutputToFile>
     <powermock.version>2.0.2</powermock.version>
+    <!-- timestamp for reproducible outputs, updated on release by the release plugin -->
+    <project.build.outputTimestamp>2020-08-18T00:00:00Z</project.build.outputTimestamp>
     <!-- surefire/failsafe plugin option -->
     <reuseForks>false</reuseForks>
     <slf4j.version>1.7.25</slf4j.version>
@@ -163,7 +167,7 @@
       <dependency>
         <groupId>com.google.auto.service</groupId>
         <artifactId>auto-service</artifactId>
-        <!-- rc4 and higher require Java 8 -->
+        <!-- newer auto-service requires newer guava -->
         <version>1.0-rc3</version>
       </dependency>
       <dependency>
@@ -174,8 +178,7 @@
       <dependency>
         <groupId>com.google.guava</groupId>
         <artifactId>guava</artifactId>
-        <!-- version known to work on at least some Hadoop versions -->
-        <version>14.0.1</version>
+        <version>${guava.version}</version>
       </dependency>
       <dependency>
         <groupId>com.google.protobuf</groupId>
@@ -205,7 +208,8 @@
       <dependency>
         <groupId>commons-io</groupId>
         <artifactId>commons-io</artifactId>
-        <version>2.7</version>
+        <!-- this version is needed for commons-vfs2 2.3 -->
+        <version>2.6</version>
       </dependency>
       <dependency>
         <groupId>commons-lang</groupId>
@@ -369,6 +373,7 @@
       <dependency>
         <groupId>org.apache.commons</groupId>
         <artifactId>commons-vfs2</artifactId>
+        <!-- version that works when building with Hadoop 2 or 3 -->
         <version>2.3</version>
       </dependency>
       <dependency>
@@ -592,11 +597,6 @@
         </plugin>
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-invoker-plugin</artifactId>
-          <version>3.2.0</version>
-        </plugin>
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-checkstyle-plugin</artifactId>
           <version>3.1.0</version>
         </plugin>
@@ -641,7 +641,6 @@
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-compiler-plugin</artifactId>
-          <version>3.8.1</version>
           <configuration>
             <optimize>true</optimize>
             <showDeprecation>true</showDeprecation>
@@ -669,7 +668,7 @@
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-javadoc-plugin</artifactId>
-          <version>3.1.1</version>
+          <version>3.2.0</version>
           <configuration>
             <quiet>true</quiet>
             <additionalJOption>-J-Xmx512m</additionalJOption>
@@ -701,7 +700,6 @@
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-surefire-plugin</artifactId>
-          <version>${surefire.version}</version>
           <configuration>
             <excludedGroups>${surefire.excludedGroups}</excludedGroups>
             <groups>${surefire.groups}</groups>
@@ -714,7 +712,6 @@
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-failsafe-plugin</artifactId>
-          <version>${surefire.version}</version>
           <configuration>
             <excludedGroups>${failsafe.excludedGroups}</excludedGroups>
             <groups>${failsafe.groups}</groups>
@@ -727,7 +724,7 @@
         <plugin>
           <groupId>org.asciidoctor</groupId>
           <artifactId>asciidoctor-maven-plugin</artifactId>
-          <version>1.6.0</version>
+          <version>2.0.0</version>
         </plugin>
         <plugin>
           <groupId>org.codehaus.mojo</groupId>
@@ -741,12 +738,6 @@
           <version>1.5.0</version>
         </plugin>
         <plugin>
-          <!-- Allows us to get the apache-ds bundle artifacts -->
-          <groupId>org.apache.felix</groupId>
-          <artifactId>maven-bundle-plugin</artifactId>
-          <version>4.2.0</version>
-        </plugin>
-        <plugin>
           <groupId>net.revelc.code</groupId>
           <artifactId>apilyzer-maven-plugin</artifactId>
           <version>1.2.0</version>
@@ -754,7 +745,7 @@
         <plugin>
           <groupId>net.revelc.code.formatter</groupId>
           <artifactId>formatter-maven-plugin</artifactId>
-          <version>2.10.0</version>
+          <version>2.11.0</version>
           <configuration>
             <configFile>${eclipseFormatterStyle}</configFile>
             <compilerCompliance>${maven.compiler.source}</compilerCompliance>
@@ -793,7 +784,7 @@
         <plugin>
           <groupId>net.revelc.code</groupId>
           <artifactId>impsort-maven-plugin</artifactId>
-          <version>1.3.0</version>
+          <version>1.4.1</version>
           <configuration>
             <removeUnused>true</removeUnused>
             <groups>java.,javax.,org.,com.</groups>
@@ -850,7 +841,6 @@
             <configuration>
               <rules>
                 <requireMavenVersion>
-                  <!-- org.apache.felix:maven-bundle-plugin declares that it needs 3.5.0 -->
                   <version>[3.5.0,)</version>
                 </requireMavenVersion>
                 <requireJavaVersion>
@@ -1053,13 +1043,6 @@
           </execution>
         </executions>
       </plugin>
-      <plugin>
-        <!-- Allows us to get the apache-ds bundle artifacts -->
-        <groupId>org.apache.felix</groupId>
-        <artifactId>maven-bundle-plugin</artifactId>
-        <extensions>true</extensions>
-        <inherited>true</inherited>
-      </plugin>
     </plugins>
   </build>
   <profiles>
@@ -1389,20 +1372,6 @@
       </activation>
       <properties>
         <hadoop.profile>2</hadoop.profile>
-        <hadoop.version>2.6.4</hadoop.version>
-      </properties>
-    </profile>
-    <!-- Build against hadoop 2 explicitly -->
-    <profile>
-      <id>hadoop2</id>
-      <activation>
-        <property>
-          <name>hadoop.profile</name>
-          <value>2</value>
-        </property>
-      </activation>
-      <properties>
-        <hadoop.version>2.6.4</hadoop.version>
       </properties>
     </profile>
     <!-- Build against hadoop 3 explicitly -->
@@ -1415,7 +1384,7 @@
         </property>
       </activation>
       <properties>
-        <hadoop.version>3.0.0</hadoop.version>
+        <hadoop.version>3.0.3</hadoop.version>
       </properties>
     </profile>
   </profiles>
diff --git a/proxy/pom.xml b/proxy/pom.xml
index 804d0ac..72c1810 100644
--- a/proxy/pom.xml
+++ b/proxy/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.accumulo</groupId>
     <artifactId>accumulo-project</artifactId>
-    <version>1.9.4-SNAPSHOT</version>
+    <version>1.10.0-SNAPSHOT</version>
   </parent>
   <artifactId>accumulo-proxy</artifactId>
   <name>Apache Accumulo Proxy</name>
diff --git a/server/base/pom.xml b/server/base/pom.xml
index 7be1c0c..e5518ff 100644
--- a/server/base/pom.xml
+++ b/server/base/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.accumulo</groupId>
     <artifactId>accumulo-project</artifactId>
-    <version>1.9.4-SNAPSHOT</version>
+    <version>1.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <artifactId>accumulo-server-base</artifactId>
diff --git a/server/gc/pom.xml b/server/gc/pom.xml
index c6cbb8d..820a2df 100644
--- a/server/gc/pom.xml
+++ b/server/gc/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.accumulo</groupId>
     <artifactId>accumulo-project</artifactId>
-    <version>1.9.4-SNAPSHOT</version>
+    <version>1.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <artifactId>accumulo-gc</artifactId>
diff --git a/server/gc/src/main/java/org/apache/accumulo/gc/replication/CloseWriteAheadLogReferences.java b/server/gc/src/main/java/org/apache/accumulo/gc/replication/CloseWriteAheadLogReferences.java
index a375952..5dd25a1 100644
--- a/server/gc/src/main/java/org/apache/accumulo/gc/replication/CloseWriteAheadLogReferences.java
+++ b/server/gc/src/main/java/org/apache/accumulo/gc/replication/CloseWriteAheadLogReferences.java
@@ -16,6 +16,7 @@
  */
 package org.apache.accumulo.gc.replication;
 
+import java.time.Duration;
 import java.util.Collections;
 import java.util.HashSet;
 import java.util.List;
@@ -59,7 +60,6 @@ import org.apache.thrift.transport.TTransportException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.google.common.base.Stopwatch;
 import com.google.protobuf.InvalidProtocolBufferException;
 
 /**
@@ -83,10 +83,11 @@ public class CloseWriteAheadLogReferences implements Runnable {
 
   @Override
   public void run() {
-    // As long as we depend on a newer Guava than Hadoop uses, we have to make sure we're compatible
-    // with
-    // what the version they bundle uses.
-    Stopwatch sw = new Stopwatch();
+    // Guava Stopwatch is useful here, for a friendlier toString, but the version of Guava in Hadoop
+    // 2 and 3 are different in incompatible ways, so we avoid it here and use Duration instead, so
+    // there won't be conflicts with the older Guava that ships by default with Hadoop 2.
+    long startTime;
+    Duration duration;
 
     Connector conn;
     try {
@@ -104,28 +105,27 @@ public class CloseWriteAheadLogReferences implements Runnable {
     Span findWalsSpan = Trace.start("findReferencedWals");
     HashSet<String> closed = null;
     try {
-      sw.start();
+      startTime = System.nanoTime();
       closed = getClosedLogs(conn);
+      duration = Duration.ofNanos(System.nanoTime() - startTime);
     } finally {
-      sw.stop();
       findWalsSpan.stop();
     }
 
-    log.info("Found " + closed.size() + " WALs referenced in metadata in " + sw.toString());
-    sw.reset();
+    log.info("Found " + closed.size() + " WALs referenced in metadata in " + duration);
 
     Span updateReplicationSpan = Trace.start("updateReplicationTable");
     long recordsClosed = 0;
     try {
-      sw.start();
+      startTime = System.nanoTime();
       recordsClosed = updateReplicationEntries(conn, closed);
+      duration = Duration.ofNanos(System.nanoTime() - startTime);
     } finally {
-      sw.stop();
       updateReplicationSpan.stop();
     }
 
     log.info("Closed " + recordsClosed + " WAL replication references in replication table in "
-        + sw.toString());
+        + duration);
   }
 
   /**
diff --git a/server/master/pom.xml b/server/master/pom.xml
index 107f126..97c37ed 100644
--- a/server/master/pom.xml
+++ b/server/master/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.accumulo</groupId>
     <artifactId>accumulo-project</artifactId>
-    <version>1.9.4-SNAPSHOT</version>
+    <version>1.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <artifactId>accumulo-master</artifactId>
diff --git a/server/master/src/main/java/org/apache/accumulo/master/replication/RemoveCompleteReplicationRecords.java b/server/master/src/main/java/org/apache/accumulo/master/replication/RemoveCompleteReplicationRecords.java
index aa6cc4d..2d5f431 100644
--- a/server/master/src/main/java/org/apache/accumulo/master/replication/RemoveCompleteReplicationRecords.java
+++ b/server/master/src/main/java/org/apache/accumulo/master/replication/RemoveCompleteReplicationRecords.java
@@ -17,6 +17,7 @@
 package org.apache.accumulo.master.replication;
 
 import java.io.IOException;
+import java.time.Duration;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashMap;
@@ -47,7 +48,6 @@ import org.apache.hadoop.io.Text;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.google.common.base.Stopwatch;
 import com.google.protobuf.InvalidProtocolBufferException;
 
 /**
@@ -85,10 +85,10 @@ public class RemoveCompleteReplicationRecords implements Runnable {
     WorkSection.limit(bs);
     bs.addScanIterator(cfg);
 
-    Stopwatch sw = new Stopwatch();
     long recordsRemoved = 0;
+    long startTime = System.nanoTime();
+    Duration duration;
     try {
-      sw.start();
       recordsRemoved = removeCompleteRecords(conn, bs, bw);
     } finally {
       if (null != bs) {
@@ -102,11 +102,11 @@ public class RemoveCompleteReplicationRecords implements Runnable {
         }
       }
 
-      sw.stop();
+      duration = Duration.ofNanos(System.nanoTime() - startTime);
     }
 
-    log.info("Removed {} complete replication entries from the table {}", recordsRemoved,
-        ReplicationTable.NAME);
+    log.info("Removed {} complete replication entries from the table {} in {}", recordsRemoved,
+        ReplicationTable.NAME, duration);
   }
 
   /**
diff --git a/server/monitor/pom.xml b/server/monitor/pom.xml
index 8effd76..c96eb7c 100644
--- a/server/monitor/pom.xml
+++ b/server/monitor/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.accumulo</groupId>
     <artifactId>accumulo-project</artifactId>
-    <version>1.9.4-SNAPSHOT</version>
+    <version>1.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <artifactId>accumulo-monitor</artifactId>
diff --git a/server/native/pom.xml b/server/native/pom.xml
index f53b330..8b21272 100644
--- a/server/native/pom.xml
+++ b/server/native/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.accumulo</groupId>
     <artifactId>accumulo-project</artifactId>
-    <version>1.9.4-SNAPSHOT</version>
+    <version>1.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <artifactId>accumulo-native</artifactId>
diff --git a/server/tracer/pom.xml b/server/tracer/pom.xml
index 1a75ef2..b092430 100644
--- a/server/tracer/pom.xml
+++ b/server/tracer/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.accumulo</groupId>
     <artifactId>accumulo-project</artifactId>
-    <version>1.9.4-SNAPSHOT</version>
+    <version>1.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <artifactId>accumulo-tracer</artifactId>
diff --git a/server/tserver/pom.xml b/server/tserver/pom.xml
index 76839e3..78c3260 100644
--- a/server/tserver/pom.xml
+++ b/server/tserver/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.accumulo</groupId>
     <artifactId>accumulo-project</artifactId>
-    <version>1.9.4-SNAPSHOT</version>
+    <version>1.10.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
   <artifactId>accumulo-tserver</artifactId>
diff --git a/shell/pom.xml b/shell/pom.xml
index 2d83cb2..8b55e4f 100644
--- a/shell/pom.xml
+++ b/shell/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.accumulo</groupId>
     <artifactId>accumulo-project</artifactId>
-    <version>1.9.4-SNAPSHOT</version>
+    <version>1.10.0-SNAPSHOT</version>
   </parent>
   <artifactId>accumulo-shell</artifactId>
   <name>Apache Accumulo Shell</name>
diff --git a/start/pom.xml b/start/pom.xml
index 6c269c1..f0c6a1a 100644
--- a/start/pom.xml
+++ b/start/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.accumulo</groupId>
     <artifactId>accumulo-project</artifactId>
-    <version>1.9.4-SNAPSHOT</version>
+    <version>1.10.0-SNAPSHOT</version>
   </parent>
   <artifactId>accumulo-start</artifactId>
   <name>Apache Accumulo Start</name>
diff --git a/test/pom.xml b/test/pom.xml
index dc4451f..8718998 100644
--- a/test/pom.xml
+++ b/test/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.accumulo</groupId>
     <artifactId>accumulo-project</artifactId>
-    <version>1.9.4-SNAPSHOT</version>
+    <version>1.10.0-SNAPSHOT</version>
   </parent>
   <artifactId>accumulo-test</artifactId>
   <name>Apache Accumulo Testing</name>
diff --git a/test/src/main/java/org/apache/accumulo/test/functional/ScannerIT.java b/test/src/main/java/org/apache/accumulo/test/functional/ScannerIT.java
index febfb40..d3ba259 100644
--- a/test/src/main/java/org/apache/accumulo/test/functional/ScannerIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/functional/ScannerIT.java
@@ -20,7 +20,6 @@ import static org.junit.Assert.assertTrue;
 
 import java.util.Iterator;
 import java.util.Map.Entry;
-import java.util.concurrent.TimeUnit;
 
 import org.apache.accumulo.core.client.BatchWriter;
 import org.apache.accumulo.core.client.BatchWriterConfig;
@@ -36,8 +35,6 @@ import org.apache.accumulo.fate.util.UtilWaitThread;
 import org.apache.accumulo.harness.AccumuloClusterHarness;
 import org.junit.Test;
 
-import com.google.common.base.Stopwatch;
-
 /**
  *
  */
@@ -76,21 +73,18 @@ public class ScannerIT extends AccumuloClusterHarness {
     s.setBatchSize(1);
     s.setRange(new Range());
 
-    Stopwatch sw = new Stopwatch();
     Iterator<Entry<Key,Value>> iterator = s.iterator();
-
-    sw.start();
+    long nanosWithWait = 0;
+    long startTime = System.nanoTime();
     while (iterator.hasNext()) {
-      sw.stop();
+      nanosWithWait += System.nanoTime() - startTime;
 
       // While we "do work" in the client, we should be fetching the next result
       UtilWaitThread.sleep(100l);
       iterator.next();
-      sw.start();
+      startTime = System.nanoTime();
     }
-    sw.stop();
-
-    long millisWithWait = sw.elapsed(TimeUnit.MILLISECONDS);
+    nanosWithWait += System.nanoTime() - startTime;
 
     s = c.createScanner(table, new Authorizations());
     s.addScanIterator(cfg);
@@ -98,27 +92,24 @@ public class ScannerIT extends AccumuloClusterHarness {
     s.setBatchSize(1);
     s.setReadaheadThreshold(0l);
 
-    sw = new Stopwatch();
     iterator = s.iterator();
-
-    sw.start();
+    long nanosWithNoWait = 0;
+    startTime = System.nanoTime();
     while (iterator.hasNext()) {
-      sw.stop();
+      nanosWithNoWait += System.nanoTime() - startTime;
 
       // While we "do work" in the client, we should be fetching the next result
       UtilWaitThread.sleep(100l);
       iterator.next();
-      sw.start();
+      startTime = System.nanoTime();
     }
-    sw.stop();
-
-    long millisWithNoWait = sw.elapsed(TimeUnit.MILLISECONDS);
+    nanosWithNoWait += System.nanoTime() - startTime;
 
     // The "no-wait" time should be much less than the "wait-time"
     assertTrue(
-        "Expected less time to be taken with immediate readahead (" + millisWithNoWait
-            + ") than without immediate readahead (" + millisWithWait + ")",
-        millisWithNoWait < millisWithWait);
+        "Expected less time to be taken with immediate readahead (" + nanosWithNoWait
+            + ") than without immediate readahead (" + nanosWithWait + ")",
+        nanosWithNoWait < nanosWithWait);
   }
 
 }
diff --git a/trace/pom.xml b/trace/pom.xml
index ed6310d..cfe8536 100644
--- a/trace/pom.xml
+++ b/trace/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.accumulo</groupId>
     <artifactId>accumulo-project</artifactId>
-    <version>1.9.4-SNAPSHOT</version>
+    <version>1.10.0-SNAPSHOT</version>
   </parent>
   <artifactId>accumulo-trace</artifactId>
   <name>Apache Accumulo Trace</name>