blob: dd32e5fd12ce9bec7963ec787e4e701da551e96a [file]
diff --git a/private/rules/jvm_import.bzl b/private/rules/jvm_import.bzl
index 0fbbd10..de36b90 100644
--- a/private/rules/jvm_import.bzl
+++ b/private/rules/jvm_import.bzl
@@ -7,7 +7,7 @@
# [0]: https://github.com/square/bazel_maven_repository/pull/48
# [1]: https://github.com/bazelbuild/bazel/issues/4549
-load("@rules_java//java:defs.bzl", "JavaInfo")
+load("@rules_java//java:defs.bzl", "JavaInfo", "java_common")
load("@rules_license//rules:providers.bzl", "PackageInfo")
load("//private/lib:coordinates.bzl", "to_external_form", "to_purl", "unpack_coordinates")
load("//private/lib:urls.bzl", "scheme_and_host")
@@ -26,6 +26,8 @@ def _jvm_import_impl(ctx):
if not ctx.attr.jar:
print(ctx.attr.name, "The `jars` attribute is deprecated and will be removed in `rules_jvm_external` 7.0. Please use the `jar` attribute instead.")
+ java_runtime = ctx.attr._java_runtime[java_common.JavaRuntimeInfo]
+ add_jar_manifest_entry = ctx.file._add_jar_manifest_entry
injar = ctx.file.jar if ctx.attr.jar else ctx.files.jars[0]
if ctx.attr._stamp_manifest[StampManifestProvider].stamp_enabled:
@@ -33,11 +35,15 @@ def _jvm_import_impl(ctx):
args = ctx.actions.args()
args.add_all(["--source", injar, "--output", outjar])
args.add("--manifest-entry", ctx.label, format = "Target-Label:%s")
+ java_args = ctx.actions.args()
+ java_args.add_all(["-jar", add_jar_manifest_entry])
ctx.actions.run(
- executable = ctx.executable._add_jar_manifest_entry,
- arguments = [args],
+ executable = java_runtime.java_executable_exec_path,
+ arguments = [java_args, args],
inputs = [injar],
outputs = [outjar],
+ env = {"LC_CTYPE": "C.UTF-8"},
+ tools = [add_jar_manifest_entry, java_runtime.files],
mnemonic = "StampJarManifest",
progress_message = "Stamping the manifest of %{label}",
)
@@ -59,13 +65,17 @@ def _jvm_import_impl(ctx):
# Make sure the compile jar is safe to compile with
args.add("--make-safe")
+ java_args = ctx.actions.args()
+ java_args.add_all(["-jar", add_jar_manifest_entry])
ctx.actions.run(
- executable = ctx.executable._add_jar_manifest_entry,
- arguments = [args],
+ executable = java_runtime.java_executable_exec_path,
+ arguments = [java_args, args],
inputs = [outjar],
outputs = [compilejar],
+ env = {"LC_CTYPE": "C.UTF-8"},
+ tools = [add_jar_manifest_entry, java_runtime.files],
mnemonic = "CreateCompileJar",
- progress_message = "Creating compile jar for %s" % ctx.label,
+ progress_message = "Creating compile jar for %{label}",
)
additional_providers = []
@@ -129,9 +139,14 @@ jvm_import = rule(
doc = "URL from where `jar` will be downloaded from.",
),
"_add_jar_manifest_entry": attr.label(
- executable = True,
+ allow_single_file = True,
+ cfg = "exec",
+ default = "//private/tools/java/com/github/bazelbuild/rules_jvm_external/jar:AddJarManifestEntry_deploy.jar",
+ ),
+ "_java_runtime": attr.label(
+ default = "@rules_java//toolchains:current_java_runtime",
+ providers = [java_common.JavaRuntimeInfo],
cfg = "exec",
- default = "//private/tools/java/com/github/bazelbuild/rules_jvm_external/jar:AddJarManifestEntry",
),
"_stamp_manifest": attr.label(
default = "@rules_jvm_external//settings:stamp_manifest",