diff --git a/tools/build_rules/java_rules_skylark.bzl b/tools/build_rules/java_rules_skylark.bzl
index d384175..f99449f 100644
--- a/tools/build_rules/java_rules_skylark.bzl
+++ b/tools/build_rules/java_rules_skylark.bzl
@@ -84,10 +84,12 @@
     runfiles = ctx.runfiles(collect_data = True)
 
     return struct(
-        files = depset([class_jar]),
         compile_time_jars = compile_time_jars + [class_jar],
         runtime_jars = runtime_jars + [class_jar],
-        runfiles = runfiles,
+        providers = [DefaultInfo(
+            files = depset([class_jar]),
+            runfiles = runfiles,
+        )],
     )
 
 def java_binary_impl(ctx):
@@ -168,9 +170,9 @@
 
     runfiles = ctx.runfiles(files = [deploy_jar, executable] + ctx.files._jdk, collect_data = True)
     files_to_build = depset([deploy_jar, manifest, executable])
-    files_to_build += library_result.files
+    files_to_build += library_result.providers[0].files
 
-    return struct(files = files_to_build, runfiles = runfiles)
+    return [DefaultInfo(files = files_to_build, runfiles = runfiles)]
 
 def java_import_impl(ctx):
     # TODO(bazel-team): Why do we need to filter here? The attribute
@@ -179,10 +181,9 @@
     neverlink_jars = depset(ctx.files.neverlink_jars)
     runfiles = ctx.runfiles(collect_data = True)
     return struct(
-        files = jars,
         compile_time_jars = jars + neverlink_jars,
         runtime_jars = jars,
-        runfiles = runfiles,
+        providers = [DefaultInfo(files = jars, runfiles = runfiles)],
     )
 
 java_library_attrs = {
diff --git a/tools/build_rules/test_rules.bzl b/tools/build_rules/test_rules.bzl
index 791bb67..57526f9 100644
--- a/tools/build_rules/test_rules.bzl
+++ b/tools/build_rules/test_rules.bzl
@@ -41,7 +41,7 @@
         content = "cat " + dat.path + " ; echo",
         is_executable = True,
     )
-    return struct(runfiles = ctx.runfiles([exe, dat]))
+    return [DefaultInfo(runfiles = ctx.runfiles([exe, dat]))]
 
 def _successful_test_impl(ctx):
     return success_target(ctx, ctx.attr.msg)
@@ -79,7 +79,7 @@
         content = "(cat " + dat.short_path + " ; echo ) >&2 ; exit 1",
         is_executable = True,
     )
-    return struct(runfiles = ctx.runfiles([exe, dat]))
+    return [DefaultInfo(runfiles = ctx.runfiles([exe, dat]))]
 
 def _failed_test_impl(ctx):
     return failure_target(ctx, ctx.attr.msg)
@@ -250,7 +250,7 @@
             ctx.actions.write(output = file_, content = v)
         script = "\n".join(commands + ["true"])
         ctx.actions.write(output = exe, content = script, is_executable = True)
-        return struct(runfiles = ctx.runfiles([exe] + files))
+        return [DefaultInfo(runfiles = ctx.runfiles([exe] + files))]
     else:
         return success_target(ctx, "success")
 
@@ -287,7 +287,7 @@
             content = "diff -u %s %s" % (dat.short_path, file_.short_path),
             is_executable = True,
         )
-        return struct(runfiles = ctx.runfiles([exe, dat, file_]))
+        return [DefaultInfo(runfiles = ctx.runfiles([exe, dat, file_]))]
     if matches != -1:
         script = "[ %s == $(grep -c %s %s) ]" % (
             matches,
@@ -301,7 +301,7 @@
         content = script,
         is_executable = True,
     )
-    return struct(runfiles = ctx.runfiles([exe, file_]))
+    return [DefaultInfo(runfiles = ctx.runfiles([exe, file_]))]
 
 file_test = rule(
     attrs = {
