Remove tools/jdk/jdk symbolic link creation

Skylark rules now depends completely on the external repository
to access the JDK tooling.

--
Change-Id: I48d461524d63d556bcd4af49f6ba2aecf1ed7068
Reviewed-on: https://bazel-review.googlesource.com/#/c/1500/
MOS_MIGRATED_REVID=95720688
diff --git a/scripts/bootstrap/compile.sh b/scripts/bootstrap/compile.sh
index 6f663b6..25729a4 100755
--- a/scripts/bootstrap/compile.sh
+++ b/scripts/bootstrap/compile.sh
@@ -127,7 +127,6 @@
     || fail "Protobuf compiler not found in ${PROTOC-}"
 
 test -z "$JAVA_HOME" && fail "JDK not found, please set \$JAVA_HOME."
-rm -f tools/jdk/jdk && ln -s "${JAVA_HOME}" tools/jdk/jdk
 
 JAVAC="${JAVA_HOME}/bin/javac"
 
diff --git a/src/main/tools/jdk.BUILD b/src/main/tools/jdk.BUILD
index 9d0979f..871fd9e 100644
--- a/src/main/tools/jdk.BUILD
+++ b/src/main/tools/jdk.BUILD
@@ -25,6 +25,11 @@
     srcs = ["bin/jar"],
 )
 
+filegroup(
+    name = "javac",
+    srcs = ["bin/javac"],
+)
+
 BOOTCLASS_JARS = [
     "rt.jar",
     "resources.jar",
diff --git a/src/main/tools/jdk.WORKSPACE b/src/main/tools/jdk.WORKSPACE
index c26eaa3..5766f2d 100644
--- a/src/main/tools/jdk.WORKSPACE
+++ b/src/main/tools/jdk.WORKSPACE
@@ -48,6 +48,11 @@
 )
 
 bind(
+    name = "javac",
+    actual = "@local-jdk//:javac",
+)
+
+bind(
     name = "jdk-default",
     actual = "@local-jdk//:jdk-default",
 )
diff --git a/src/test/shell/bazel/test-setup.sh b/src/test/shell/bazel/test-setup.sh
index 9e14d00..928b6d2 100755
--- a/src/test/shell/bazel/test-setup.sh
+++ b/src/test/shell/bazel/test-setup.sh
@@ -116,10 +116,6 @@
   ln -s "${singlejar_path}"  tools/jdk/SingleJar_deploy.jar
   ln -s "${ijar_path}" tools/jdk/ijar
 
-  if [[ -d ${jdk_dir} ]] ; then
-    ln -s ${jdk_dir} tools/jdk/jdk
-  fi
-
   touch WORKSPACE
 }
 
diff --git a/tools/build_rules/java_rules_skylark.bzl b/tools/build_rules/java_rules_skylark.bzl
index 16640e9..7ca7047 100644
--- a/tools/build_rules/java_rules_skylark.bzl
+++ b/tools/build_rules/java_rules_skylark.bzl
@@ -16,8 +16,6 @@
 jar_filetype = FileType([".jar"])
 srcjar_filetype = FileType([".jar", ".srcjar"])
 
-JAVA_PATH='tools/jdk/jdk/bin/'
-
 def is_windows(config):
   return config.fragment(cpp).compiler.startswith("windows_")
 
@@ -69,7 +67,7 @@
       cmd += "unzip %s -d %s >/dev/null\n" % (file.path, java_output)
 
   if ctx.files.srcs or ctx.files.srcjars:
-    cmd += JAVA_PATH + "javac"
+    cmd += ctx.file._javac.path
     cmd += " " + " ".join(javac_options)
     if compile_time_jars:
       cmd += " -classpath '" + cmd_helper.join_paths(path_separator(ctx), compile_time_jars) + "'"
@@ -79,7 +77,7 @@
   # stick them in the root of the jar.
   for r in ctx.files.resources:
     cmd += "cp %s %s\n" % (r.path, build_output)
-  cmd += (JAVA_PATH + "jar cf " + class_jar.path + " -C " + build_output + " .\n" +
+  cmd += (ctx.file._jar.path + " cf " + class_jar.path + " -C " + build_output + " .\n" +
          "touch " + build_output + "\n")
   ctx.action(
     inputs = (sources + compile_time_jars_list + [sources_param_file] +
@@ -113,7 +111,7 @@
   cmd = "set -e;rm -rf " + build_output + ";mkdir " + build_output + "\n"
   for jar in library_result.runtime_jars:
     cmd += "unzip -qn " + jar.path + " -d " + build_output + "\n"
-  cmd += (JAVA_PATH + "jar cmf " + manifest.path + " " +
+  cmd += (ctx.file._jar.path + " cmf " + manifest.path + " " +
          deploy_jar.path + " -C " + build_output + " .\n" +
          "touch " + build_output + "\n")
 
@@ -146,7 +144,7 @@
         "fi",
         "",
 
-        "jvm_bin=%s" % (ctx.file.javabin.path),
+        "jvm_bin=%s" % (ctx.file._java.path),
         "if [[ ! -x ${jvm_bin} ]]; then",
         "  jvm_bin=$(which java)",
         "fi",
@@ -190,6 +188,9 @@
 
 
 java_library_attrs = {
+    "_java": attr.label(default=Label("//tools/jdk:java"), single_file=True),
+    "_javac": attr.label(default=Label("//tools/jdk:javac"), single_file=True),
+    "_jar": attr.label(default=Label("//tools/jdk:jar"), single_file=True),
     "data": attr.label_list(allow_files=True, cfg=DATA_CFG),
     "resources": attr.label_list(allow_files=True),
     "srcs": attr.label_list(allow_files=java_filetype),
@@ -219,7 +220,6 @@
 java_binary_attrs_common = java_library_attrs + {
     "jvm_flags": attr.string_list(),
     "jvm": attr.label(default=Label("//tools/jdk:jdk"), allow_files=True),
-    "javabin": attr.label(default=Label("//tools/jdk:java"), single_file=True),
     "args": attr.string_list(),
 }
 
diff --git a/tools/jdk/BUILD b/tools/jdk/BUILD
index 4bc736b..8e898c4 100644
--- a/tools/jdk/BUILD
+++ b/tools/jdk/BUILD
@@ -20,6 +20,16 @@
     srcs = ["//external:java"],
 )
 
+filegroup(
+    name = "jar",
+    srcs = ["//external:jar"],
+)
+
+filegroup(
+    name = "javac",
+    srcs = ["//external:javac"],
+)
+
 BOOTCLASS_JARS = [
     "rt.jar",
     "resources.jar",