diff --git a/.github/workflows/aws-lambda-java-tests.yml b/.github/workflows/aws-lambda-java-tests.yml
index 324c44514..e651c0239 100644
--- a/.github/workflows/aws-lambda-java-tests.yml
+++ b/.github/workflows/aws-lambda-java-tests.yml
@@ -11,14 +11,15 @@ on:
- 'aws-lambda-java-tests/**'
- 'aws-lambda-java-events/**'
- 'aws-lambda-java-serialization/**'
+ - 'aws-lambda-java-runtime-interface-client/**'
pull_request:
branches: [ '*' ]
paths:
- 'aws-lambda-java-tests/**'
- 'aws-lambda-java-events/**'
- 'aws-lambda-java-serialization/**'
+ - 'aws-lambda-java-runtime-interface-client/**'
- '.github/workflows/aws-lambda-java-tests.yml'
-
permissions:
contents: read
diff --git a/.github/workflows/runtime-interface-client_pr.yml b/.github/workflows/runtime-interface-client_pr.yml
index a0d8c6cc8..183549ec6 100644
--- a/.github/workflows/runtime-interface-client_pr.yml
+++ b/.github/workflows/runtime-interface-client_pr.yml
@@ -21,13 +21,16 @@ jobs:
smoke-test:
runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ java-version: [8, 11, 17, 21, 25]
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- - name: Set up JDK 1.8
+ - name: Set up JDK ${{ matrix.java-version }}
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with:
- java-version: 8
+ java-version: ${{ matrix.java-version }}
distribution: corretto
cache: maven
@@ -43,7 +46,7 @@ jobs:
working-directory: ./aws-lambda-java-runtime-interface-client
run: make pr
env:
- IS_JAVA_8: true
+ IS_JAVA_8: ${{ matrix.java-version == 8 }}
build:
runs-on: ubuntu-latest
diff --git a/.gitignore b/.gitignore
index 5a277e5d6..ded8a5fee 100644
--- a/.gitignore
+++ b/.gitignore
@@ -22,6 +22,7 @@ dependency-reduced-pom.xml
.settings
.classpath
.project
+.factorypath
# OSX
.DS_Store
@@ -38,4 +39,16 @@ experimental/aws-lambda-java-profiler/integration_tests/helloworld/bin
.vscode
.kiro
build
+
+# Logs
+*.log
+
+# Maven flatten plugin
+.flattened-pom.xml
+
+# Vim swap files
+*.swp
+*.swo
+
+# Tool version manager
mise.toml
diff --git a/aws-lambda-java-events-sdk-transformer/pom.xml b/aws-lambda-java-events-sdk-transformer/pom.xml
index 6de599ef7..a02a80f14 100644
--- a/aws-lambda-java-events-sdk-transformer/pom.xml
+++ b/aws-lambda-java-events-sdk-transformer/pom.xml
@@ -38,8 +38,9 @@
1.8
1.11.914
2.15.40
- 5.12.2
+ 5.14.3
3.5.4
+
diff --git a/aws-lambda-java-events/pom.xml b/aws-lambda-java-events/pom.xml
index c8c40e0c7..ba93601dc 100644
--- a/aws-lambda-java-events/pom.xml
+++ b/aws-lambda-java-events/pom.xml
@@ -39,7 +39,7 @@
UTF-8
2.20.1
2.40.1
- 5.12.2
+ 5.14.3
diff --git a/aws-lambda-java-runtime-interface-client/Makefile b/aws-lambda-java-runtime-interface-client/Makefile
index 6c3a268fb..78cfa11a6 100644
--- a/aws-lambda-java-runtime-interface-client/Makefile
+++ b/aws-lambda-java-runtime-interface-client/Makefile
@@ -15,57 +15,63 @@ endif
# making it possible to publish resulting artifacts to a codeartifact maven repository
-include ric-dev-environment/codeartifact-repo.mk
-.PHONY: target
+
target:
$(info ${HELP_MESSAGE})
@exit 0
-.PHONY: test
+
test:
mvn test $(EXTRA_LOAD_ARG)
-.PHONY: setup-codebuild-agent
+
setup-codebuild-agent:
docker build -t codebuild-agent \
--build-arg ARCHITECTURE=$(ARCHITECTURE_ALIAS) \
- < test/integration/codebuild-local/Dockerfile.agent
-.PHONY: test-smoke
+
test-smoke: setup-codebuild-agent
CODEBUILD_IMAGE_TAG=codebuild-agent test/integration/codebuild-local/test_one.sh test/integration/codebuild/buildspec.os.alpine.yml alpine 3.15 corretto11 linux/amd64
CODEBUILD_IMAGE_TAG=codebuild-agent test/integration/codebuild-local/test_one.sh test/integration/codebuild/buildspec.os.alpine.yml alpine 3.15 corretto11 linux/arm64/v8
CODEBUILD_IMAGE_TAG=codebuild-agent test/integration/codebuild-local/test_one.sh test/integration/codebuild/buildspec.os.amazoncorretto.yml amazoncorretto amazoncorretto 11 linux/amd64
CODEBUILD_IMAGE_TAG=codebuild-agent test/integration/codebuild-local/test_one.sh test/integration/codebuild/buildspec.os.amazoncorretto.yml amazoncorretto amazoncorretto 11 linux/arm64/v8
-.PHONY: test-integ
+
test-integ: setup-codebuild-agent
CODEBUILD_IMAGE_TAG=codebuild-agent test/integration/codebuild-local/test_all.sh test/integration/codebuild
# Command to run everytime you make changes to verify everything works
-.PHONY: dev
+
dev: test
# Verifications to run before sending a pull request
-.PHONY: pr
+
pr: test test-smoke
-.PHONY: build
+
+# The default `mvn clean install` builds all 4 native .so variants (x86_64/aarch64 × glibc/musl)
+# and bundles them into a single jar (see build-jni-lib.sh), runs the tests for the host
+# environment, and updates coverage data. This is sufficient for what we want to do here.
+#
+# Running profile-specific builds (e.g., `mvn install -P linux-aarch64`) does NOT test the
+# cross-compiled .so — JniHelper.load() tries each .so in order and always loads the first
+# one matching the host platform (linux-x86_64 on GitHub Actions runners), so the other
+# variants are never exercised.
+#
+# Platform-specific tests are run through test-smoke via codebuild containers.
+
build:
- mvn clean install $(EXTRA_LOAD_ARG)
- mvn install -P linux-x86_64 $(EXTRA_LOAD_ARG)
- mvn install -P linux_musl-x86_64 $(EXTRA_LOAD_ARG)
- mvn install -P linux-aarch64 $(EXTRA_LOAD_ARG)
- mvn install -P linux_musl-aarch64 $(EXTRA_LOAD_ARG)
+ mvn clean install $(EXTRA_LOAD_ARG)
-.PHONY: publish
publish:
./ric-dev-environment/publish_snapshot.sh
-.PHONY: publish
+
test-publish:
./ric-dev-environment/test-platform-specific-jar-snapshot.sh
-.PHONY: test-rie
+
test-rie:
./scripts/test-rie.sh "EchoHandler::handleRequest"
@@ -80,3 +86,5 @@ TARGETS
test Run the Unit tests.
test-rie Build and test RIC locally with Lambda Runtime Interface Emulator. (Requires building the project first)
endef
+
+.PHONY: target test setup-codebuild-agent test-smoke test-integ dev pr build publish publish test-rie
\ No newline at end of file
diff --git a/aws-lambda-java-runtime-interface-client/pom.xml b/aws-lambda-java-runtime-interface-client/pom.xml
index a09fd3df7..c7e1225ae 100644
--- a/aws-lambda-java-runtime-interface-client/pom.xml
+++ b/aws-lambda-java-runtime-interface-client/pom.xml
@@ -37,7 +37,7 @@
0.8.12
2.4
3.1.1
- 5.12.2
+ 5.14.3
3.4.0
3.5.4
- 5.9.2
+ 5.14.3
0.8.7
1.4.0
3.16.1
diff --git a/experimental/aws-lambda-java-profiler/examples/cdk/pom.xml b/experimental/aws-lambda-java-profiler/examples/cdk/pom.xml
index 4b46f4e2b..d84b2bd1e 100644
--- a/experimental/aws-lambda-java-profiler/examples/cdk/pom.xml
+++ b/experimental/aws-lambda-java-profiler/examples/cdk/pom.xml
@@ -11,7 +11,7 @@
UTF-8
2.155.0
[10.0.0,11.0.0)
- 5.12.2
+ 5.14.3
diff --git a/samples/kinesis-firehose-event-handler/pom.xml b/samples/kinesis-firehose-event-handler/pom.xml
index 0db8ed83a..4b51c34c9 100644
--- a/samples/kinesis-firehose-event-handler/pom.xml
+++ b/samples/kinesis-firehose-event-handler/pom.xml
@@ -35,9 +35,7 @@
1.8
1.8
UTF-8
- 5.12.2
- 3.5.4
-
+ 5.14.3