33# 
44# DOCUMENT THIS 
55# 
6+ load ("@bazel_features//:features.bzl" , "bazel_features" )
67load (
78 "@io_bazel_rules_scala//scala/private:paths.bzl" ,
89 _get_files_with_extension  =  "get_files_with_extension" ,
@@ -298,7 +299,7 @@ def _create_scala_compilation_provider(ctx, ijar, source_jar, deps_providers):
298299 runtime_deps  =  []
299300 if  hasattr (ctx .attr , "runtime_deps" ):
300301 runtime_deps  =  [dep [JavaInfo ] for  dep  in  ctx .attr .runtime_deps ]
301-  return JavaInfo (
302+  kwargs = dict (
302303 output_jar  =  ctx .outputs .jar ,
303304 compile_jar  =  ijar ,
304305 source_jar  =  source_jar ,
@@ -308,6 +309,13 @@ def _create_scala_compilation_provider(ctx, ijar, source_jar, deps_providers):
308309 neverlink  =  ctx .attr .neverlink ,
309310 )
310311
312+  # The JavaInfo constructor's add_exports and add_opens flags were added in Bazel 7: 
313+  # https://github.com/bazelbuild/bazel/issues/20033 
314+  if  bazel_features .java .java_info_constructor_module_flags :
315+  kwargs ["add_exports" ] =  getattr (ctx .attr , "add_exports" , [])
316+  kwargs ["add_opens" ] =  getattr (ctx .attr , "add_opens" , [])
317+  return  JavaInfo (** kwargs )
318+ 311319def  _pack_source_jar (ctx , scala_srcs , input_srcjars ):
312320 # https://github.com/bazelbuild/bazel/blob/ff6c0333e4f957bb9f7ab5401b01dbf3e9b515b1/src/main/java/com/google/devtools/build/lib/rules/java/JavaInfoBuildHelper.java#L180-L183 
313321 # java_common.pack_sources checks for no srcs and only a single input jar 
0 commit comments