8000 Add JRE dependency to Java components by lizard-boy · Pull Request #11 · grepdemos/localstack · GitHub
[go: up one dir, main page]

Skip to content

Add JRE dependency to Java components #11

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 9 commits into
base: master
Choose a base branch
from
Prev Previous commit
Next Next commit
Add Java dependency to KCL utilities
  • Loading branch information
viren-nadkarni committed Sep 12, 2024
commit 7026b8e9ee7c5aa36cd3d93757194fc93e18536f
12 changes: 12 additions & 0 deletions localstack-core/localstack/utils/kinesis/kinesis_connector.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@

from localstack import config
from localstack.constants import LOCALSTACK_ROOT_FOLDER, LOCALSTACK_VENV_FOLDER
from localstack.packages.java import java_package
from localstack.utils.aws import arns
from localstack.utils.files import TMP_FILES, chmod_r, save_file
from localstack.utils.kinesis import kclipy_helper
Expand All @@ -26,6 +27,7 @@

# define Java class names
MULTI_LANG_DAEMON_CLASS = "software.amazon.kinesis.multilang.MultiLangDaemon"
KCL_JAVA_VERSION = "11"

# set up local logger
LOG = logging.getLogger(__name__)
Expand All @@ -38,6 +40,7 @@
CHECKPOINT_SLEEP_SECS = 5
CHECKPOINT_FREQ_SECS = 60


ListenerFunction = Callable[[list], Any]


Expand Down Expand Up @@ -240,12 +243,21 @@ def _start_kcl_client_process(
):
# make sure to convert stream ARN to stream name
stream_name = arns.kinesis_stream_name(stream_name)

# install Java
java_installer = java_package.get_installer(KCL_JAVA_VERSION)
java_installer.install()
java_home = java_installer.get_java_home()
path = f"{java_home}/bin:{os.getenv('PATH')}"

# disable CBOR protocol, enforce use of plain JSON
# TODO evaluate why?
env_vars = {
"AWS_CBOR_DISABLE": "true",
"AWS_ACCESS_KEY_ID": account_id,
"AWS_SECRET_ACCESS_KEY": account_id,
"JAVA_HOME": java_home,
"PATH": path,
}

events_file = os.path.join(tempfile.gettempdir(), f"kclipy.{short_uid()}.fifo")
Expand Down
0