GPLv2 + Classpath exception compliance: ship the source of checker_framework

Also add missing dependencie on the javacutil tooling.

--
Change-Id: Idba4ddc2e79da4916925327e2f15337e86658a5d
Reviewed-on: https://bazel-review.googlesource.com/#/c/3915
MOS_MIGRATED_REVID=126298979
diff --git a/third_party/BUILD b/third_party/BUILD
index d4afc7f..ec5cbcb 100644
--- a/third_party/BUILD
+++ b/third_party/BUILD
@@ -16,6 +16,8 @@
         "//third_party/java/jdk/langtools:srcs",
         "//third_party/java/jdk/javabuilder:srcs",
         "//third_party/javascript/bootstrap:srcs",
+        "//third_party/checker_framework_dataflow:srcs",
+        "//third_party/checker_framework_javacutil:srcs",
         "//third_party/jformatstring:srcs",
         "//third_party/protobuf:srcs",
         "//third_party/py/concurrent:srcs",
@@ -32,6 +34,8 @@
 filegroup(
     name = "gpl-srcs",
     srcs = [
+        "//third_party/checker_framework_dataflow:srcs",
+        "//third_party/checker_framework_javacutil:srcs",
         "//third_party/jformatstring:srcs",
     ],
 )
@@ -282,11 +286,11 @@
         "error_prone/error_prone_annotation-2.0.9-20160129.jar",
     ],
     exports = [
-        ":checker_framework_dataflow",
         ":guava",
         ":jcip_annotations",
         ":jsr305",
         ":pcollections",
+        "//third_party/checker_framework_dataflow",
         "//third_party/jformatstring",
     ],
 )
@@ -305,18 +309,10 @@
     ],
 )
 
-java_import(
-    name = "checker_framework_dataflow",
-    jars = [
-        "checker_framework_dataflow/dataflow-1.8.10.jar",
-    ],
-)
-
 # For bootstrapping JavaBuilder
 filegroup(
     name = "error_prone-jars",
     srcs = [
-        "checker_framework_dataflow/dataflow-1.8.10.jar",
         "error_prone/error_prone_annotation-2.0.9-20160129.jar",
         "error_prone/error_prone_annotations-2.0.9-20160129.jar",
         "error_prone/error_prone_core-2.0.9-20160129.jar",
@@ -324,6 +320,7 @@
         "jcip_annotations/jcip-annotations-1.0-1.jar",
         "jsr305/jsr-305.jar",
         "pcollections/pcollections-2.1.2.jar",
+        "//third_party/checker_framework_dataflow:bootstrap",
         "//third_party/jformatstring:bootstrap",
     ],
 )
diff --git a/third_party/README.md b/third_party/README.md
index 6ce99af..a10cc2c 100644
--- a/third_party/README.md
+++ b/third_party/README.md
@@ -118,6 +118,11 @@
 * Version: 1.8.10
 * License: GNU GPL v2 with Classpath exception, portions MIT
 
+## [Checker Framework Javacutil](http://code.google.com/p/checker-framework/)
+
+* Version: 1.8.10
+* License: GNU GPL v2 with Classpath exception, portions MIT
+
 ## [Buck (iOS support)](http://facebook.github.io/buck/)
 
 * Version: commit id 2ff4f45a971776afcfbe88333d78c4ca6bf03df9
diff --git a/third_party/checker_framework_dataflow/BUILD b/third_party/checker_framework_dataflow/BUILD
new file mode 100644
index 0000000..5bcebeb
--- /dev/null
+++ b/third_party/checker_framework_dataflow/BUILD
@@ -0,0 +1,25 @@
+package(default_visibility = ["//visibility:public"])
+
+licenses(["restricted"])  # GNU GPL v2 with Classpath exception
+
+filegroup(
+    name = "srcs",
+    srcs = glob(["**"]),
+)
+
+java_library(
+    name = "checker_framework_dataflow",
+    srcs = glob(["java/**"]),
+    deps = [
+        "//third_party/checker_framework_javacutil",
+        "@local_jdk//:langtools-neverlink",
+    ],
+)
+
+load("//tools/build_rules:java_rules_skylark.bzl", "bootstrap_java_library")
+
+bootstrap_java_library(
+    name = "bootstrap",
+    srcs = glob(["java/**"]),
+    deps = ["//third_party/checker_framework_javacutil:bootstrap"],
+)
diff --git a/third_party/checker_framework_javacutil/BUILD b/third_party/checker_framework_javacutil/BUILD
new file mode 100644
index 0000000..cc18ab2
--- /dev/null
+++ b/third_party/checker_framework_javacutil/BUILD
@@ -0,0 +1,22 @@
+package(default_visibility = ["//visibility:public"])
+
+licenses(["restricted"])  # GNU GPL v2 with Classpath exception
+
+filegroup(
+    name = "srcs",
+    srcs = glob(["**"]),
+)
+
+java_library(
+    name = "checker_framework_javacutil",
+    srcs = glob(["java/**"]),
+    deps = ["@local_jdk//:langtools-neverlink"],
+)
+
+load("//tools/build_rules:java_rules_skylark.bzl", "bootstrap_java_library")
+
+bootstrap_java_library(
+    name = "bootstrap",
+    srcs = glob(["java/**"]),
+    neverlink_jars = ["@local_jdk//:langtools"],
+)