From 8b04107a13996bf1e59a45839df9b2c46d00b4e7 Mon Sep 17 00:00:00 2001 From: aditya-aggarwal Date: Mon, 18 Mar 2024 12:00:14 +0530 Subject: [PATCH] Add support for add-opens and add-exports --- springboot/default_bazelrun_script.sh | 10 +++++++++- springboot/springboot.bzl | 4 ++++ springboot/write_bazelrun_env.sh | 6 +++++- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/springboot/default_bazelrun_script.sh b/springboot/default_bazelrun_script.sh index 43e2865..060f23f 100755 --- a/springboot/default_bazelrun_script.sh +++ b/springboot/default_bazelrun_script.sh @@ -55,6 +55,14 @@ echo "" echo "Using JAVA_OPTS from the environment: ${JAVA_OPTS}" echo "Using bazelrun_jvm_flags from the BUILD file: ${JVM_FLAGS}" +if [ -f "${ADD_EXPORTS}" ]; then + echo "Using ADD_EXPORTS from the environment: ${ADD_EXPORTS}" +fi + +if [ -f "${ADD_OPENS}" ]; then + echo "Using ADD_OPENS from the environment: ${ADD_OPENS}" +fi + # main args main_args="$@" @@ -64,7 +72,7 @@ jar=${SPRINGBOOTJAR_FILENAME} # assemble the command # use exec so that we can pass signals to the underlying process (https://github.com/salesforce/rules_spring/issues/91) -cmd="exec ${java_cmd} ${JVM_FLAGS} ${JAVA_OPTS} -jar ${path}${jar} ${main_args}" +cmd="exec ${java_cmd} ${JVM_FLAGS} ${JAVA_OPTS} ${ADD_EXPORTS} ${ADD_OPENS} -jar ${path}${jar} ${main_args}" echo "Running ${cmd}" echo "In directory $(pwd)" diff --git a/springboot/springboot.bzl b/springboot/springboot.bzl index ff3af1a..0e4173a 100644 --- a/springboot/springboot.bzl +++ b/springboot/springboot.bzl @@ -386,6 +386,8 @@ def springboot( tags = [], testonly = False, visibility = None, + bazelrun_addopens = [], + bazelrun_addexports = [], exclude = [], # deprecated classpath_index = "@rules_spring//springboot:empty.txt", # deprecated use_build_dependency_order = True, # deprecated @@ -585,6 +587,8 @@ def springboot( name = genbazelrunenv_rule, cmd = "$(location @rules_spring//springboot:write_bazelrun_env.sh) " + name + " " + _get_springboot_jar_file_name(name) + " " + _get_relative_package_path() + " $@ " + _convert_starlarkbool_to_bashbool(bazelrun_background) + + " " + " ".join(["--add-exports=" + element for element in bazelrun_addexports]) + + " " + " ".join(["--add-opens=" + element for element in bazelrun_addopens]) + " " + bazelrun_jvm_flags, # message = "SpringBoot rule is writing the bazel run launcher env...", tools = ["@rules_spring//springboot:write_bazelrun_env.sh"], diff --git a/springboot/write_bazelrun_env.sh b/springboot/write_bazelrun_env.sh index ba501bc..607db19 100755 --- a/springboot/write_bazelrun_env.sh +++ b/springboot/write_bazelrun_env.sh @@ -17,7 +17,9 @@ SPRINGBOOTJAR_FILENAME=${2} LABEL_PATH=${3} OUTPUTFILE_PATH=${4} DO_BACKGROUND=${5} -FIRST_JVMFLAG_ARG=6 +ADD_EXPORTS=${6} +ADD_OPENS=${7} +FIRST_JVMFLAG_ARG=8 if [ "$LABEL_PATH" == "root" ]; then # token that indicates that the target is in the root path, which for the @@ -43,4 +45,6 @@ echo "export RULE_NAME=$RULE_NAME" > $OUTPUTFILE_PATH echo "export LABEL_PATH=$LABEL_PATH" >> $OUTPUTFILE_PATH echo "export SPRINGBOOTJAR_FILENAME=$SPRINGBOOTJAR_FILENAME" >> $OUTPUTFILE_PATH echo "export DO_BACKGROUND=$DO_BACKGROUND" >> $OUTPUTFILE_PATH +echo "export ADD_EXPORTS=$ADD_EXPORTS" >> $OUTPUTFILE_PATH +echo "export ADD_OPENS=$ADD_OPENS" >> $OUTPUTFILE_PATH echo "export JVM_FLAGS=\"$JVM_FLAGS\"" >> $OUTPUTFILE_PATH