Bazel: Add remaining fixes for --incompatible_disallow_legacy_java_provider

The old style string-indexed Starlark 'java' provider was already
replaced with the new style javaInfo in some places by Ibd5217954,
but some were missed.

Add the missing fixes based on Ie5ee9eed6 by David Ostrovsky.

Change-Id: Ie1ff37ca4f9080a7485a6646b982a45182925641
diff --git a/tools/classpath.bzl b/tools/classpath.bzl
index 55479c5..682ee3c 100644
--- a/tools/classpath.bzl
+++ b/tools/classpath.bzl
@@ -1,9 +1,9 @@
 def _classpath_collector(ctx):
     all = []
     for d in ctx.attr.deps:
-        if hasattr(d, "java"):
-            all.append(d.java.transitive_runtime_deps)
-            all.append(d.java.compilation_info.runtime_classpath)
+        if JavaInfo in d:
+            all.append(d[JavaInfo].transitive_runtime_deps)
+            all.append(d[JavaInfo].compilation_info.runtime_classpath)
         elif hasattr(d, "files"):
             all.append(d.files)
 
diff --git a/tools/gwt.bzl b/tools/gwt.bzl
index b6f5a07..aada689 100644
--- a/tools/gwt.bzl
+++ b/tools/gwt.bzl
@@ -192,11 +192,11 @@
 def _get_transitive_closure(ctx):
     deps = []
     for dep in ctx.attr.module_deps:
-        deps.append(dep.java.transitive_runtime_deps)
-        deps.append(dep.java.transitive_source_jars)
+        deps.append(dep[JavaInfo].transitive_runtime_deps)
+        deps.append(dep[JavaInfo].transitive_source_jars)
     for dep in ctx.attr.deps:
-        if hasattr(dep, "java"):
-            deps.append(dep.java.transitive_runtime_deps)
+        if JavaInfo in dep:
+            deps.append(dep[JavaInfo].transitive_runtime_deps)
         elif hasattr(dep, "files"):
             deps.append(dep.files)
 
diff --git a/tools/javadoc.bzl b/tools/javadoc.bzl
index 204f569..97986ff 100644
--- a/tools/javadoc.bzl
+++ b/tools/javadoc.bzl
@@ -17,8 +17,10 @@
 def _impl(ctx):
     zip_output = ctx.outputs.zip
 
-    transitive_jars = depset(transitive = [l.java.transitive_deps for l in ctx.attr.libs])
-    source_jars = depset(transitive = [l.java.source_jars for l in ctx.attr.libs])
+    transitive_jars = depset(transitive = [j[JavaInfo].transitive_deps for j in ctx.attr.libs])
+    # TODO(davido): Remove list to depset conversion on source_jars, when this issue is fixed:
+    # https://github.com/bazelbuild/bazel/issues/4221
+    source_jars = depset(transitive = [depset(j[JavaInfo].source_jars) for j in ctx.attr.libs])
 
     transitive_jar_paths = [j.path for j in transitive_jars.to_list()]
     dir = ctx.outputs.zip.path + ".dir"
diff --git a/tools/pkg_war.bzl b/tools/pkg_war.bzl
index ce094ff..931450b 100644
--- a/tools/pkg_war.bzl
+++ b/tools/pkg_war.bzl
@@ -56,8 +56,8 @@
 
     transitive_libs = []
     for l in ctx.attr.libs:
-        if hasattr(l, "java"):
-            transitive_libs.append(l.java.transitive_runtime_deps)
+        if JavaInfo in l:
+            transitive_libs.append(l[JavaInfo].transitive_runtime_deps)
         elif hasattr(l, "files"):
             transitive_libs.append(l.files)
 
@@ -74,8 +74,8 @@
     transitive_context_libs = []
     if ctx.attr.context:
         for jar in ctx.attr.context:
-            if hasattr(jar, "java"):
-                transitive_context_libs.append(jar.java.transitive_runtime_deps)
+            if JavaInfo in jar:
+                transitive_context_libs.append(jar[JavaInfo].transitive_runtime_deps)
             elif hasattr(jar, "files"):
                 transitive_context_libs.append(jar.files)
     transitive_context_deps = depset(transitive = transitive_context_libs)