Build Java 9 artifacts with third party JDK9.

Change-Id: Ib7d046077c1e0444eb72f272e576d6f702d88865
diff --git a/build.gradle b/build.gradle
index 066d00a..f9e5f2d 100644
--- a/build.gradle
+++ b/build.gradle
@@ -73,13 +73,6 @@
             ]
         }
     }
-    java11 {
-        java {
-            srcDirs = [
-                    'src/test/examplesJava11'
-            ]
-        }
-    }
     apiUsageSample {
         java {
             srcDirs = ['src/test/apiUsageSample', 'src/main/java']
@@ -120,6 +113,20 @@
         }
         output.resourcesDir = 'build/classes/examples'
     }
+    examplesJava9 {
+        java {
+            srcDirs = [
+                    'src/test/examplesJava9'
+            ]
+        }
+    }
+    examplesJava11 {
+        java {
+            srcDirs = [
+                    'src/test/examplesJava11'
+            ]
+        }
+    }
     examplesKotlin {
         java {
             srcDirs = ['src/test/examplesKotlin']
@@ -489,15 +496,31 @@
     }
 }
 
-tasks.named(sourceSets.java11.compileJavaTaskName).get().configure {
+tasks.named(sourceSets.examplesJava9.compileJavaTaskName).get().configure {
+    def jdkDir = 'third_party/openjdk/openjdk-9.0.4/'
     options.fork = true
     options.forkOptions.jvmArgs = []
     if (OperatingSystem.current().isLinux()) {
-        options.forkOptions.javaHome = file('third_party/openjdk/jdk-11/Linux')
+        options.forkOptions.javaHome = file(jdkDir + 'linux')
     } else if (OperatingSystem.current().isMacOsX()) {
-        options.forkOptions.javaHome = file('third_party/openjdk/jdk-11/Mac')
+        options.forkOptions.javaHome = file(jdkDir + 'osx')
     } else {
-        options.forkOptions.javaHome = file('third_party/openjdk/jdk-11/Windows')
+        options.forkOptions.javaHome = file(jdkDir + 'windows')
+    }
+    sourceCompatibility = JavaVersion.VERSION_1_9
+    targetCompatibility = JavaVersion.VERSION_1_9
+}
+
+tasks.named(sourceSets.examplesJava11.compileJavaTaskName).get().configure {
+    def jdkDir = 'third_party/openjdk/jdk-11/'
+    options.fork = true
+    options.forkOptions.jvmArgs = []
+    if (OperatingSystem.current().isLinux()) {
+        options.forkOptions.javaHome = file(jdkDir + 'Linux')
+    } else if (OperatingSystem.current().isMacOsX()) {
+        options.forkOptions.javaHome = file(jdkDir + 'Mac')
+    } else {
+        options.forkOptions.javaHome = file(jdkDir + 'Windows')
     }
     sourceCompatibility = JavaVersion.VERSION_11
     targetCompatibility = JavaVersion.VERSION_11
@@ -1289,7 +1312,7 @@
         task "jar_examplesJava9_${name}"(type: Jar) {
             archiveName = jarName
             destinationDir = exampleOutputDir
-            from "src/test/examplesJava9"  // Java 1.9 classes
+            from sourceSets.examplesJava9.output
             include "**/" + name + "/**/*.class"
         }
     }
@@ -1305,7 +1328,7 @@
         task "jar_examplesJava11_${name}"(type: Jar) {
             archiveName = jarName
             destinationDir = exampleOutputDir
-            from sourceSets.java11.output
+            from sourceSets.examplesJava11.output
             include "**/" + name + "/**/*.class"
         }
     }
@@ -2075,51 +2098,3 @@
         }
     }
 }
-
-
-
-
-// This task allows to build class files from Java 9 source in order to use them as inputs of
-// D8/R8 tests. Class files are generated in the same place than source files and must be commited
-// to the D8 repository because there is no way to generate them on all computers due to the need of
-// Java 9.
-// Use the following command to rebuild class files of tests:
-// ./tools/gradle.py -Pjava9Home=<java 9 home> buildJava9Tests
-task buildJava9Tests {
-    def javacOutputFolder = getTemporaryDir();
-    def examplesDir = file("src/test/examplesJava9")
-
-    task "compile_Java9examples"(type: JavaCompile) {
-        doFirst {
-            if (!project.hasProperty('java9Home') || project.property('java9Home').isEmpty()) {
-                throw new GradleException("Set java9Home property.")
-            }
-        }
-
-        source = fileTree(dir: examplesDir, include: '**/*.java')
-        destinationDir = javacOutputFolder
-        classpath = sourceSets.main.compileClasspath
-        options.compilerArgs += ["-Xlint:-options"]
-        sourceCompatibility = JavaVersion.VERSION_1_9
-        targetCompatibility = JavaVersion.VERSION_1_9
-        options.fork = true
-
-        if (project.hasProperty('java9Home')) {
-            options.forkOptions.javaHome = file(getProperty('java9Home'))
-        }
-
-        doLast {
-            def classfileFrom = copySpec {
-                from javacOutputFolder
-                include "**/*.class"
-            }
-            copy {
-                into examplesDir
-                with classfileFrom
-            }
-            delete javacOutputFolder
-        }
-    }
-
-    dependsOn compile_Java9examples
-}
diff --git a/src/test/examplesJava9/privateinterfacemethods/C.class b/src/test/examplesJava9/privateinterfacemethods/C.class
deleted file mode 100644
index 430b6c1..0000000
--- a/src/test/examplesJava9/privateinterfacemethods/C.class
+++ /dev/null
Binary files differ
diff --git a/src/test/examplesJava9/privateinterfacemethods/I$1.class b/src/test/examplesJava9/privateinterfacemethods/I$1.class
deleted file mode 100644
index 29644e6..0000000
--- a/src/test/examplesJava9/privateinterfacemethods/I$1.class
+++ /dev/null
Binary files differ
diff --git a/src/test/examplesJava9/privateinterfacemethods/I$2.class b/src/test/examplesJava9/privateinterfacemethods/I$2.class
deleted file mode 100644
index 243b0af..0000000
--- a/src/test/examplesJava9/privateinterfacemethods/I$2.class
+++ /dev/null
Binary files differ
diff --git a/src/test/examplesJava9/privateinterfacemethods/I.class b/src/test/examplesJava9/privateinterfacemethods/I.class
deleted file mode 100644
index 893ed9e..0000000
--- a/src/test/examplesJava9/privateinterfacemethods/I.class
+++ /dev/null
Binary files differ
diff --git a/src/test/examplesJava9/privateinterfacemethods/IB.class b/src/test/examplesJava9/privateinterfacemethods/IB.class
deleted file mode 100644
index e670d08..0000000
--- a/src/test/examplesJava9/privateinterfacemethods/IB.class
+++ /dev/null
Binary files differ
diff --git a/src/test/examplesJava9/privateinterfacemethods/PrivateInterfaceMethods.class b/src/test/examplesJava9/privateinterfacemethods/PrivateInterfaceMethods.class
deleted file mode 100644
index dd3615b..0000000
--- a/src/test/examplesJava9/privateinterfacemethods/PrivateInterfaceMethods.class
+++ /dev/null
Binary files differ
diff --git a/src/test/examplesJava9/twrcloseresource/Iface.class b/src/test/examplesJava9/twrcloseresource/Iface.class
deleted file mode 100644
index c27b3ee..0000000
--- a/src/test/examplesJava9/twrcloseresource/Iface.class
+++ /dev/null
Binary files differ
diff --git a/src/test/examplesJava9/twrcloseresource/TwrCloseResourceTest.class b/src/test/examplesJava9/twrcloseresource/TwrCloseResourceTest.class
deleted file mode 100644
index 8d6979d..0000000
--- a/src/test/examplesJava9/twrcloseresource/TwrCloseResourceTest.class
+++ /dev/null
Binary files differ
diff --git a/src/test/examplesJava9/varhandle/VarHandleTests.class b/src/test/examplesJava9/varhandle/VarHandleTests.class
deleted file mode 100644
index 91e078c..0000000
--- a/src/test/examplesJava9/varhandle/VarHandleTests.class
+++ /dev/null
Binary files differ