From dab5f20b93acd5ac4a5dab795a642140f5d9d39d Mon Sep 17 00:00:00 2001
From: Kevin Risden <risdenk@users.noreply.github.com>
Date: Sun, 15 Jul 2018 10:37:37 -0400
Subject: [PATCH] Test against JDK 9, 10, 11 (#1186)

---
 .travis.yml            |  4 +++-
 accumulo1.6/pom.xml    |  4 +++-
 accumulo1.7/pom.xml    |  4 +++-
 accumulo1.8/pom.xml    |  4 +++-
 asynchbase/pom.xml     |  3 ++-
 binding-parent/pom.xml | 26 ++++++++++++++++++++++++++
 hbase10/pom.xml        |  3 ++-
 hbase12/pom.xml        |  4 +++-
 ignite/pom.xml         |  2 ++
 orientdb/pom.xml       |  3 ++-
 rest/pom.xml           |  3 ++-
 solr/pom.xml           |  3 ++-
 solr6/pom.xml          |  5 +++--
 13 files changed, 56 insertions(+), 12 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index 5f82a45a..982bf282 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -20,8 +20,10 @@
 language: java
 
 jdk:
-  - oraclejdk9
   - oraclejdk8
+  - oraclejdk9
+  - oraclejdk10
+  - oraclejdk11
 
 addons:
   hosts:
diff --git a/accumulo1.6/pom.xml b/accumulo1.6/pom.xml
index 26859837..f2b1ff4b 100644
--- a/accumulo1.6/pom.xml
+++ b/accumulo1.6/pom.xml
@@ -30,8 +30,10 @@ LICENSE file.
   <properties>
     <!-- This should match up to the one from your Accumulo version -->
     <hadoop.version>2.2.0</hadoop.version>
-    <!-- Tests do not run on jdk9 -->
+
     <skipJDK9Tests>true</skipJDK9Tests>
+    <skipJDK10Tests>true</skipJDK10Tests>
+    <skipJDK11Tests>true</skipJDK11Tests>
   </properties>
   <dependencies>
     <dependency>
diff --git a/accumulo1.7/pom.xml b/accumulo1.7/pom.xml
index fc96333d..e1cd6ba5 100644
--- a/accumulo1.7/pom.xml
+++ b/accumulo1.7/pom.xml
@@ -30,8 +30,10 @@ LICENSE file.
   <properties>
     <!-- This should match up to the one from your Accumulo version -->
     <hadoop.version>2.2.0</hadoop.version>
-    <!-- Tests do not run on jdk9 -->
+
     <skipJDK9Tests>true</skipJDK9Tests>
+    <skipJDK10Tests>true</skipJDK10Tests>
+    <skipJDK11Tests>true</skipJDK11Tests>
   </properties>
   <dependencies>
     <dependency>
diff --git a/accumulo1.8/pom.xml b/accumulo1.8/pom.xml
index 994ca4e4..addddeeb 100644
--- a/accumulo1.8/pom.xml
+++ b/accumulo1.8/pom.xml
@@ -30,8 +30,10 @@ LICENSE file.
   <properties>
     <!-- This should match up to the one from your Accumulo version -->
     <hadoop.version>2.6.4</hadoop.version>
-    <!-- Tests do not run on jdk9 -->
+
     <skipJDK9Tests>true</skipJDK9Tests>
+    <skipJDK10Tests>true</skipJDK10Tests>
+    <skipJDK11Tests>true</skipJDK11Tests>
   </properties>
   <dependencies>
     <dependency>
diff --git a/asynchbase/pom.xml b/asynchbase/pom.xml
index 5aa2d2fe..f011cd63 100644
--- a/asynchbase/pom.xml
+++ b/asynchbase/pom.xml
@@ -26,8 +26,9 @@ LICENSE file.
   <name>AsyncHBase Client Binding for Apache HBase</name>
 
   <properties>
-    <!-- Tests do not run on jdk9 -->
     <skipJDK9Tests>true</skipJDK9Tests>
+    <skipJDK10Tests>true</skipJDK10Tests>
+    <skipJDK11Tests>true</skipJDK11Tests>
   </properties>
 
   <dependencies>
diff --git a/binding-parent/pom.xml b/binding-parent/pom.xml
index d43c5883..ca2a3e87 100644
--- a/binding-parent/pom.xml
+++ b/binding-parent/pom.xml
@@ -40,6 +40,8 @@ LICENSE file.
   <properties>
     <!-- See the test-on-jdk9 profile below. Default to 'jdk9 works' -->
     <skipJDK9Tests>false</skipJDK9Tests>
+    <skipJDK10Tests>false</skipJDK10Tests>
+    <skipJDK11Tests>false</skipJDK11Tests>
   </properties>
 
   <build>
@@ -144,6 +146,30 @@ LICENSE file.
         <skipTests>${skipJDK9Tests}</skipTests>
       </properties>
     </profile>
+    <!-- If the binding doesn't work with jdk10, it should redefine the
+         skipJDK10 property
+      -->
+    <profile>
+      <id>tests-on-jdk10</id>
+      <activation>
+        <jdk>10</jdk>
+      </activation>
+      <properties>
+        <skipTests>${skipJDK10Tests}</skipTests>
+      </properties>
+    </profile>
+    <!-- If the binding doesn't work with jdk11, it should redefine the
+         skipJDK11 property
+      -->
+    <profile>
+      <id>tests-on-jdk11</id>
+      <activation>
+        <jdk>11</jdk>
+      </activation>
+      <properties>
+        <skipTests>${skipJDK11Tests}</skipTests>
+      </properties>
+    </profile>
   </profiles>
 </project>
 
diff --git a/hbase10/pom.xml b/hbase10/pom.xml
index 94c1e55f..17a2f999 100644
--- a/hbase10/pom.xml
+++ b/hbase10/pom.xml
@@ -29,8 +29,9 @@ LICENSE file.
   <name>HBase 1.0 DB Binding</name>
 
   <properties>
-    <!-- Tests do not run on jdk9 -->
     <skipJDK9Tests>true</skipJDK9Tests>
+    <skipJDK10Tests>true</skipJDK10Tests>
+    <skipJDK11Tests>true</skipJDK11Tests>
   </properties>
   <dependencies>
     <dependency>
diff --git a/hbase12/pom.xml b/hbase12/pom.xml
index bea764ae..fc7768da 100644
--- a/hbase12/pom.xml
+++ b/hbase12/pom.xml
@@ -29,8 +29,10 @@ LICENSE file.
   <name>HBase 1.2 DB Binding</name>
 
   <properties>
-    <!-- Tests do not run on jdk9 -->
     <skipJDK9Tests>true</skipJDK9Tests>
+    <skipJDK10Tests>true</skipJDK10Tests>
+    <skipJDK11Tests>true</skipJDK11Tests>
+
     <!-- Tests can't run without a shaded hbase testing util.
          See HBASE-15666, which blocks us.
          For now, we rely on the HBase 1.0 binding and manual testing.
diff --git a/ignite/pom.xml b/ignite/pom.xml
index 959a9c54..76c39130 100644
--- a/ignite/pom.xml
+++ b/ignite/pom.xml
@@ -41,6 +41,8 @@ LICENSE file.
 
   <properties>
     <skipJDK9Tests>true</skipJDK9Tests>
+    <skipJDK10Tests>true</skipJDK10Tests>
+    <skipJDK11Tests>true</skipJDK11Tests>
   </properties>
 
   <dependencies>
diff --git a/orientdb/pom.xml b/orientdb/pom.xml
index 28bd323c..ce4760c8 100644
--- a/orientdb/pom.xml
+++ b/orientdb/pom.xml
@@ -36,8 +36,9 @@ LICENSE file.
     </repository>
   </repositories>
   <properties>
-    <!-- Tests do not run on jdk9 -->
     <skipJDK9Tests>true</skipJDK9Tests>
+    <skipJDK10Tests>true</skipJDK10Tests>
+    <skipJDK11Tests>true</skipJDK11Tests>
   </properties>
   <dependencies>
     <dependency>
diff --git a/rest/pom.xml b/rest/pom.xml
index 6120581f..15691e7f 100644
--- a/rest/pom.xml
+++ b/rest/pom.xml
@@ -23,8 +23,9 @@
   <packaging>jar</packaging>
 
   <properties>
-    <!-- Tests do not run on jdk9 -->
     <skipJDK9Tests>true</skipJDK9Tests>
+    <skipJDK10Tests>true</skipJDK10Tests>
+    <skipJDK11Tests>true</skipJDK11Tests>
 
     <tomcat.version>8.0.28</tomcat.version>
     <jersey.version>2.6</jersey.version>
diff --git a/solr/pom.xml b/solr/pom.xml
index 6087c3e9..79cc21a2 100644
--- a/solr/pom.xml
+++ b/solr/pom.xml
@@ -32,8 +32,9 @@ LICENSE file.
   <packaging>jar</packaging>
 
   <properties>
-    <!-- Tests do not run on jdk9 -->
     <skipJDK9Tests>true</skipJDK9Tests>
+    <skipJDK10Tests>true</skipJDK10Tests>
+    <skipJDK11Tests>true</skipJDK11Tests>
   </properties>
 
   <dependencies>
diff --git a/solr6/pom.xml b/solr6/pom.xml
index be91ae6e..aa3ece54 100644
--- a/solr6/pom.xml
+++ b/solr6/pom.xml
@@ -32,8 +32,9 @@ LICENSE file.
   <packaging>jar</packaging>
 
   <properties>
-    <!-- Skip tests by default. will be activated by jdk8 profile -->
-    <skipTests>true</skipTests>
+    <skipJDK9Tests>true</skipJDK9Tests>
+    <skipJDK10Tests>true</skipJDK10Tests>
+    <skipJDK11Tests>true</skipJDK11Tests>
   </properties>
 
   <dependencies>
-- 
GitLab