From 3c55f6224fea14d9f2099807f86296ea920003cc Mon Sep 17 00:00:00 2001
From: deki <deki@users.noreply.github.com>
Date: Thu, 20 Jul 2023 12:25:55 +0000
Subject: [PATCH 001/430] chore: release - prepare for next development
 iteration

---
 aws-serverless-java-container-core/pom.xml        | 4 ++--
 aws-serverless-java-container-jersey/pom.xml      | 8 ++++----
 aws-serverless-java-container-spring/pom.xml      | 8 ++++----
 aws-serverless-java-container-springboot3/pom.xml | 8 ++++----
 aws-serverless-jersey-archetype/pom.xml           | 6 +++---
 aws-serverless-spring-archetype/pom.xml           | 6 +++---
 aws-serverless-springboot3-archetype/pom.xml      | 6 +++---
 pom.xml                                           | 4 ++--
 8 files changed, 25 insertions(+), 25 deletions(-)

diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml
index 30b09b0e4..dfffbe606 100644
--- a/aws-serverless-java-container-core/pom.xml
+++ b/aws-serverless-java-container-core/pom.xml
@@ -6,12 +6,12 @@
     <name>AWS Serverless Java container support - Core</name>
     <description>Allows Java applications written for a servlet container to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.0.0-M2</version>
+    <version>2.0.0-SNAPSHOT</version>
 
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.0.0-M2</version>
+        <version>2.0.0-SNAPSHOT</version>
         <relativePath>..</relativePath>
     </parent>
 
diff --git a/aws-serverless-java-container-jersey/pom.xml b/aws-serverless-java-container-jersey/pom.xml
index cb8ee0a00..db3f9dd0c 100644
--- a/aws-serverless-java-container-jersey/pom.xml
+++ b/aws-serverless-java-container-jersey/pom.xml
@@ -6,12 +6,12 @@
     <name>AWS Serverless Java container support - Jersey implementation</name>
     <description>Allows Java applications written for Jersey to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.0.0-M2</version>
+    <version>2.0.0-SNAPSHOT</version>
 
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.0.0-M2</version>
+        <version>2.0.0-SNAPSHOT</version>
         <relativePath>..</relativePath>
     </parent>
 
@@ -24,7 +24,7 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.0.0-M2</version>
+            <version>2.0.0-SNAPSHOT</version>
             <exclusions>
                 <exclusion>
                     <groupId>com.fasterxml.jackson.core</groupId>
@@ -35,7 +35,7 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.0.0-M2</version>
+            <version>2.0.0-SNAPSHOT</version>
             <classifier>tests</classifier>
             <type>test-jar</type>
             <scope>test</scope>
diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml
index e26732426..7d1a9a25b 100644
--- a/aws-serverless-java-container-spring/pom.xml
+++ b/aws-serverless-java-container-spring/pom.xml
@@ -6,12 +6,12 @@
     <name>AWS Serverless Java container support - Spring implementation</name>
     <description>Allows Java applications written for the Spring framework to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.0.0-M2</version>
+    <version>2.0.0-SNAPSHOT</version>
 
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.0.0-M2</version>
+        <version>2.0.0-SNAPSHOT</version>
         <relativePath>..</relativePath>
     </parent>
 
@@ -25,12 +25,12 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.0.0-M2</version>
+            <version>2.0.0-SNAPSHOT</version>
         </dependency>
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.0.0-M2</version>
+            <version>2.0.0-SNAPSHOT</version>
             <classifier>tests</classifier>
             <type>test-jar</type>
             <scope>test</scope>
diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml
index 812ec42ed..b797d89ae 100644
--- a/aws-serverless-java-container-springboot3/pom.xml
+++ b/aws-serverless-java-container-springboot3/pom.xml
@@ -3,7 +3,7 @@
     <parent>
         <artifactId>aws-serverless-java-container</artifactId>
         <groupId>com.amazonaws.serverless</groupId>
-        <version>2.0.0-M2</version>
+        <version>2.0.0-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
@@ -12,7 +12,7 @@
     <name>AWS Serverless Java container support - SpringBoot 3 implementation</name>
     <description>Allows Java applications written for SpringBoot 3 to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.0.0-M2</version>
+    <version>2.0.0-SNAPSHOT</version>
 
     <properties>
         <spring.version>6.0.11</spring.version>
@@ -30,12 +30,12 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.0.0-M2</version>
+            <version>2.0.0-SNAPSHOT</version>
         </dependency>
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.0.0-M2</version>
+            <version>2.0.0-SNAPSHOT</version>
             <classifier>tests</classifier>
             <type>test-jar</type>
             <scope>test</scope>
diff --git a/aws-serverless-jersey-archetype/pom.xml b/aws-serverless-jersey-archetype/pom.xml
index c43f6f2a7..e328fee77 100644
--- a/aws-serverless-jersey-archetype/pom.xml
+++ b/aws-serverless-jersey-archetype/pom.xml
@@ -4,17 +4,17 @@
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.0.0-M2</version>
+        <version>2.0.0-SNAPSHOT</version>
     </parent>
 
     <groupId>com.amazonaws.serverless.archetypes</groupId>
     <artifactId>aws-serverless-jersey-archetype</artifactId>
-    <version>2.0.0-M2</version>
+    <version>2.0.0-SNAPSHOT</version>
     <packaging>maven-archetype</packaging>
 
     <scm>
         <url>https://github.com/awslabs/aws-serverless-java-container.git</url>
-      <tag>aws-serverless-java-container-2.0.0-M2</tag>
+      <tag>HEAD</tag>
   </scm>
 
     <licenses>
diff --git a/aws-serverless-spring-archetype/pom.xml b/aws-serverless-spring-archetype/pom.xml
index d755e5ca2..747ff0838 100644
--- a/aws-serverless-spring-archetype/pom.xml
+++ b/aws-serverless-spring-archetype/pom.xml
@@ -4,17 +4,17 @@
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.0.0-M2</version>
+        <version>2.0.0-SNAPSHOT</version>
     </parent>
 
     <groupId>com.amazonaws.serverless.archetypes</groupId>
     <artifactId>aws-serverless-spring-archetype</artifactId>
-    <version>2.0.0-M2</version>
+    <version>2.0.0-SNAPSHOT</version>
     <packaging>maven-archetype</packaging>
 
     <scm>
         <url>https://github.com/awslabs/aws-serverless-java-container.git</url>
-      <tag>aws-serverless-java-container-2.0.0-M2</tag>
+      <tag>HEAD</tag>
   </scm>
 
     <licenses>
diff --git a/aws-serverless-springboot3-archetype/pom.xml b/aws-serverless-springboot3-archetype/pom.xml
index 504dc334f..8f478b223 100644
--- a/aws-serverless-springboot3-archetype/pom.xml
+++ b/aws-serverless-springboot3-archetype/pom.xml
@@ -4,17 +4,17 @@
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.0.0-M2</version>
+        <version>2.0.0-SNAPSHOT</version>
     </parent>
 
     <groupId>com.amazonaws.serverless.archetypes</groupId>
     <artifactId>aws-serverless-springboot3-archetype</artifactId>
-    <version>2.0.0-M2</version>
+    <version>2.0.0-SNAPSHOT</version>
     <packaging>maven-archetype</packaging>
 
     <scm>
         <url>https://github.com/awslabs/aws-serverless-java-container.git</url>
-      <tag>aws-serverless-java-container-2.0.0-M2</tag>
+      <tag>HEAD</tag>
   </scm>
 
     <licenses>
diff --git a/pom.xml b/pom.xml
index 1dc935729..6eb0965ce 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
     <groupId>com.amazonaws.serverless</groupId>
     <artifactId>aws-serverless-java-container</artifactId>
     <packaging>pom</packaging>
-    <version>2.0.0-M2</version>
+    <version>2.0.0-SNAPSHOT</version>
     <name>AWS Serverless Java container</name>
     <description>A Java framework to run Spring, Spring Boot, Jersey, Spark, and Struts applications inside AWS Lambda</description>
     <url>https://github.com/awslabs/aws-serverless-java-container</url>
@@ -37,7 +37,7 @@
     <scm>
         <url>https://github.com/awslabs/aws-serverless-java-container</url>
         <connection>scm:git:https://github.com/awslabs/aws-serverless-java-container.git</connection>
-      <tag>aws-serverless-java-container-2.0.0-M2</tag>
+      <tag>HEAD</tag>
     </scm>
 
     <repositories>

From af891860d2185c3749f35da23b60d053d08fab38 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Mon, 14 Aug 2023 08:39:39 +0200
Subject: [PATCH 002/430] chore(deps): update JUnit version to 5.10.0

---
 .../src/main/resources/archetype-resources/build.gradle         | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 .../src/main/resources/archetype-resources/build.gradle         | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 .../src/main/resources/archetype-resources/build.gradle         | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 .../src/main/resources/archetype-resources/build.gradle         | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 .../src/main/resources/archetype-resources/build.gradle         | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 pom.xml                                                         | 2 +-
 11 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
index 28c81422b..627cbbd2f 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
@@ -23,7 +23,7 @@ dependencies {
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
   testImplementation("org.apache.httpcomponents.client5:httpclient5:5.2.1")
-  testImplementation(platform("org.junit:junit-bom:5.9.3"))
+  testImplementation(platform("org.junit:junit-bom:5.10.0"))
   testImplementation("org.junit.jupiter:junit-jupiter")
 }
 
diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
index a59bebfbe..3c4149d19 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
@@ -17,7 +17,7 @@
 
         <jersey.version>3.1.2</jersey.version>
         <jackson.version>2.15.2</jackson.version>
-        <junit.version>5.9.3</junit.version>
+        <junit.version>5.10.0</junit.version>
     </properties>
 
     <dependencies>
diff --git a/aws-serverless-spark-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-spark-archetype/src/main/resources/archetype-resources/build.gradle
index d198e93b0..fb1d73c1f 100644
--- a/aws-serverless-spark-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-spark-archetype/src/main/resources/archetype-resources/build.gradle
@@ -14,7 +14,7 @@ dependencies {
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
   testImplementation("org.apache.httpcomponents.client5:httpclient5:5.2.1")
-  testImplementation(platform("org.junit:junit-bom:5.9.3"))
+  testImplementation(platform("org.junit:junit-bom:5.10.0"))
   testImplementation("org.junit.jupiter:junit-jupiter")
 }
 
diff --git a/aws-serverless-spark-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-spark-archetype/src/main/resources/archetype-resources/pom.xml
index 56038d396..cf4f75a7a 100644
--- a/aws-serverless-spark-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-spark-archetype/src/main/resources/archetype-resources/pom.xml
@@ -18,7 +18,7 @@
         <maven.compiler.target>1.8</maven.compiler.target>
         <jackson.version>2.15.2</jackson.version>
         <spark.version>2.9.4</spark.version>
-        <junit.version>5.9.3</junit.version>
+        <junit.version>5.10.0</junit.version>
     </properties>
 
     <dependencies>
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
index c31590715..5d2323018 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
@@ -19,7 +19,7 @@ dependencies {
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
   testImplementation("org.apache.httpcomponents.client5:httpclient5:5.2.1")
-  testImplementation(platform("org.junit:junit-bom:5.9.3"))
+  testImplementation(platform("org.junit:junit-bom:5.10.0"))
   testImplementation("org.junit.jupiter:junit-jupiter")
 }
 
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
index 69927546b..35065eb85 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
@@ -17,7 +17,7 @@
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
         <spring.version>6.0.11</spring.version>
-        <junit.version>5.9.3</junit.version>
+        <junit.version>5.10.0</junit.version>
         <log4j.version>2.20.0</log4j.version>
     </properties>
 
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
index 2d7977bbe..41494fbd9 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
@@ -15,7 +15,7 @@ dependencies {
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
   testImplementation("org.apache.httpcomponents.client5:httpclient5:5.2.1")
-  testImplementation(platform("org.junit:junit-bom:5.9.3"))
+  testImplementation(platform("org.junit:junit-bom:5.10.0"))
   testImplementation("org.junit.jupiter:junit-jupiter")
 }
 
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
index 673cea593..dbdaf330f 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
@@ -21,7 +21,7 @@
 
     <properties>
         <java.version>17</java.version>
-        <junit.version>5.9.3</junit.version>
+        <junit.version>5.10.0</junit.version>
     </properties>
 
     <dependencies>
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
index 5c5dc0db4..a01f0a00d 100644
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
@@ -43,7 +43,7 @@ dependencies {
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
   testImplementation("org.apache.httpcomponents.client5:httpclient5:5.2.1")
-  testImplementation(platform("org.junit:junit-bom:5.9.3"))
+  testImplementation(platform("org.junit:junit-bom:5.10.0"))
   testImplementation("org.junit.jupiter:junit-jupiter")
   testImplementation('org.apache.struts:struts2-junit-plugin:6.1.2.1') {
     exclude group: 'org.apache.struts', module: 'struts2-core'
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
index 8c3d30e7c..a228dd923 100644
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
@@ -17,7 +17,7 @@
         <maven.compiler.target>1.8</maven.compiler.target>
         <struts.version>6.1.2.1</struts.version>
         <jackson.version>2.15.2</jackson.version>
-        <junit.version>5.9.3</junit.version>
+        <junit.version>5.10.0</junit.version>
         <log4j.version>2.20.0</log4j.version>
     </properties>
 
diff --git a/pom.xml b/pom.xml
index 6eb0965ce..219bc2677 100644
--- a/pom.xml
+++ b/pom.xml
@@ -80,7 +80,7 @@
         <dependencyCheck.version>8.3.1</dependencyCheck.version>
         <jackson.version>2.15.2</jackson.version>
         <slf4j.version>2.0.7</slf4j.version>
-        <junit.version>5.9.3</junit.version>
+        <junit.version>5.10.0</junit.version>
         <mockito.version>5.4.0</mockito.version>
         <hamcrest.version>1.3</hamcrest.version>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

From 4dac7d827f981465e8c142fd2d1901ff7f2afecb Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Mon, 14 Aug 2023 09:18:45 +0200
Subject: [PATCH 003/430] chore(deps): update Jersey version to 3.1.3

---
 aws-serverless-java-container-jersey/pom.xml                  | 2 +-
 .../src/main/resources/archetype-resources/build.gradle       | 4 ++--
 .../src/main/resources/archetype-resources/pom.xml            | 2 +-
 samples/jersey/pet-store/build.gradle                         | 4 ++--
 samples/jersey/pet-store/pom.xml                              | 2 +-
 5 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/aws-serverless-java-container-jersey/pom.xml b/aws-serverless-java-container-jersey/pom.xml
index db3f9dd0c..d028bfda7 100644
--- a/aws-serverless-java-container-jersey/pom.xml
+++ b/aws-serverless-java-container-jersey/pom.xml
@@ -16,7 +16,7 @@
     </parent>
 
     <properties>
-        <jersey.version>3.1.2</jersey.version>
+        <jersey.version>3.1.3</jersey.version>
     </properties>
 
     <dependencies>
diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
index 627cbbd2f..5552cbef4 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
@@ -11,13 +11,13 @@ dependencies {
           'com.fasterxml.jackson.core:jackson-databind:2.15.2',
   )
 
-  implementation("org.glassfish.jersey.media:jersey-media-json-jackson:3.1.2") {
+  implementation("org.glassfish.jersey.media:jersey-media-json-jackson:3.1.3") {
     exclude group: 'com.fasterxml.jackson.core', module: "jackson-annotations"
     exclude group: 'com.fasterxml.jackson.core', module: "jackson-databind"
     exclude group: 'com.fasterxml.jackson.core', module: "jackson-core"
   }
 
-  implementation("org.glassfish.jersey.inject:jersey-hk2:3.1.2") {
+  implementation("org.glassfish.jersey.inject:jersey-hk2:3.1.3") {
     exclude group: 'javax.inject', module: "javax.inject"
   }
 
diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
index 3c4149d19..692bb89c7 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
@@ -15,7 +15,7 @@
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
 
-        <jersey.version>3.1.2</jersey.version>
+        <jersey.version>3.1.3</jersey.version>
         <jackson.version>2.15.2</jackson.version>
         <junit.version>5.10.0</junit.version>
     </properties>
diff --git a/samples/jersey/pet-store/build.gradle b/samples/jersey/pet-store/build.gradle
index 3bd7dff51..674394de4 100644
--- a/samples/jersey/pet-store/build.gradle
+++ b/samples/jersey/pet-store/build.gradle
@@ -11,13 +11,13 @@ dependencies {
           'com.fasterxml.jackson.core:jackson-databind:2.15.2',
   )
 
-  implementation("org.glassfish.jersey.media:jersey-media-json-jackson:3.1.2") {
+  implementation("org.glassfish.jersey.media:jersey-media-json-jackson:3.1.3") {
     exclude group: 'com.fasterxml.jackson.core', module: "jackson-annotations"
     exclude group: 'com.fasterxml.jackson.core', module: "jackson-databind"
     exclude group: 'com.fasterxml.jackson.core', module: "jackson-core"
   }
 
-  implementation("org.glassfish.jersey.inject:jersey-hk2:3.1.2") {
+  implementation("org.glassfish.jersey.inject:jersey-hk2:3.1.3") {
     exclude group: 'javax.inject', module: "javax.inject"
   }
 }
diff --git a/samples/jersey/pet-store/pom.xml b/samples/jersey/pet-store/pom.xml
index 786163929..0ed1f95f4 100644
--- a/samples/jersey/pet-store/pom.xml
+++ b/samples/jersey/pet-store/pom.xml
@@ -26,7 +26,7 @@
     <properties>
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
-        <jersey.version>3.1.2</jersey.version>
+        <jersey.version>3.1.3</jersey.version>
         <jackson.version>2.15.2</jackson.version>
     </properties>
 

From 75fe8a91707a393697b6ea3092a53e8b396061c8 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 21 Aug 2023 04:54:14 +0000
Subject: [PATCH 004/430] chore(deps): bump org.owasp:dependency-check-maven
 from 8.3.1 to 8.4.0

Bumps [org.owasp:dependency-check-maven](https://github.com/jeremylong/DependencyCheck) from 8.3.1 to 8.4.0.
- [Release notes](https://github.com/jeremylong/DependencyCheck/releases)
- [Changelog](https://github.com/jeremylong/DependencyCheck/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jeremylong/DependencyCheck/compare/v8.3.1...v8.4.0)

---
updated-dependencies:
- dependency-name: org.owasp:dependency-check-maven
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 219bc2677..2c5c0ed97 100644
--- a/pom.xml
+++ b/pom.xml
@@ -77,7 +77,7 @@
 
     <properties>
         <jacoco.minCoverage>0.7</jacoco.minCoverage>
-        <dependencyCheck.version>8.3.1</dependencyCheck.version>
+        <dependencyCheck.version>8.4.0</dependencyCheck.version>
         <jackson.version>2.15.2</jackson.version>
         <slf4j.version>2.0.7</slf4j.version>
         <junit.version>5.10.0</junit.version>

From 636c483335dadfa56c9e6d9b770c0528ad76d5f8 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 21 Aug 2023 04:54:20 +0000
Subject: [PATCH 005/430] chore(deps): bump com.amazonaws:aws-lambda-java-core
 from 1.2.2 to 1.2.3

Bumps [com.amazonaws:aws-lambda-java-core](https://github.com/aws/aws-lambda-java-libs) from 1.2.2 to 1.2.3.
- [Commits](https://github.com/aws/aws-lambda-java-libs/commits)

---
updated-dependencies:
- dependency-name: com.amazonaws:aws-lambda-java-core
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 aws-serverless-java-container-core/pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml
index dfffbe606..5d0da0c83 100644
--- a/aws-serverless-java-container-core/pom.xml
+++ b/aws-serverless-java-container-core/pom.xml
@@ -24,7 +24,7 @@
         <dependency>
             <groupId>com.amazonaws</groupId>
             <artifactId>aws-lambda-java-core</artifactId>
-            <version>1.2.2</version>
+            <version>1.2.3</version>
         </dependency>
 
         <dependency>

From ae3de8b9367db70f19717d7c8e63e6745a1b90f6 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Thu, 24 Aug 2023 14:28:08 +0200
Subject: [PATCH 006/430] chore(deps): Update Spring dependencies (security to
 6.1.3, boot to 3.1.3)

---
 aws-serverless-java-container-core/pom.xml                    | 2 +-
 aws-serverless-java-container-spring/pom.xml                  | 2 +-
 aws-serverless-java-container-springboot3/pom.xml             | 4 ++--
 .../src/main/resources/archetype-resources/build.gradle       | 2 +-
 .../src/main/resources/archetype-resources/pom.xml            | 2 +-
 samples/springboot3/alt-pet-store/build.gradle                | 2 +-
 samples/springboot3/alt-pet-store/pom.xml                     | 2 +-
 samples/springboot3/pet-store/build.gradle                    | 2 +-
 samples/springboot3/pet-store/pom.xml                         | 2 +-
 9 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml
index 5d0da0c83..5e29578d9 100644
--- a/aws-serverless-java-container-core/pom.xml
+++ b/aws-serverless-java-container-core/pom.xml
@@ -60,7 +60,7 @@
         <dependency>
             <groupId>org.springframework.security</groupId>
             <artifactId>spring-security-web</artifactId>
-            <version>6.1.2</version>
+            <version>6.1.3</version>
             <scope>test</scope>
         </dependency>
     </dependencies>
diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml
index 7d1a9a25b..608270c0c 100644
--- a/aws-serverless-java-container-spring/pom.xml
+++ b/aws-serverless-java-container-spring/pom.xml
@@ -17,7 +17,7 @@
 
     <properties>
         <spring.version>6.0.11</spring.version>
-        <spring-security.version>6.1.2</spring-security.version>
+        <spring-security.version>6.1.3</spring-security.version>
     </properties>
 
     <dependencies>
diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml
index b797d89ae..cc907f952 100644
--- a/aws-serverless-java-container-springboot3/pom.xml
+++ b/aws-serverless-java-container-springboot3/pom.xml
@@ -16,8 +16,8 @@
 
     <properties>
         <spring.version>6.0.11</spring.version>
-        <springboot.version>3.1.2</springboot.version>
-        <springsecurity.version>6.1.2</springsecurity.version>
+        <springboot.version>3.1.3</springboot.version>
+        <springsecurity.version>6.1.3</springsecurity.version>
     </properties>
 
     <dependencies>
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
index 41494fbd9..567aae98c 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
@@ -9,7 +9,7 @@ repositories {
 
 dependencies {
   implementation (
-          'org.springframework.boot:spring-boot-starter-web:3.1.2',
+          'org.springframework.boot:spring-boot-starter-web:3.1.3',
           'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)',
   )
 
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
index dbdaf330f..02693c1bd 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
@@ -16,7 +16,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.1.2</version>
+        <version>3.1.3</version>
     </parent>
 
     <properties>
diff --git a/samples/springboot3/alt-pet-store/build.gradle b/samples/springboot3/alt-pet-store/build.gradle
index d6d2ec61d..8b38f55f8 100644
--- a/samples/springboot3/alt-pet-store/build.gradle
+++ b/samples/springboot3/alt-pet-store/build.gradle
@@ -9,7 +9,7 @@ repositories {
 
 dependencies {
   implementation (
-          implementation('org.springframework.boot:spring-boot-starter-web:3.1.2') {
+          implementation('org.springframework.boot:spring-boot-starter-web:3.1.3') {
             exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat'
           },
           'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)',
diff --git a/samples/springboot3/alt-pet-store/pom.xml b/samples/springboot3/alt-pet-store/pom.xml
index 1e655268a..ba4b2433a 100644
--- a/samples/springboot3/alt-pet-store/pom.xml
+++ b/samples/springboot3/alt-pet-store/pom.xml
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.1.2</version>
+        <version>3.1.3</version>
     </parent>
 
     <licenses>
diff --git a/samples/springboot3/pet-store/build.gradle b/samples/springboot3/pet-store/build.gradle
index d6d2ec61d..8b38f55f8 100644
--- a/samples/springboot3/pet-store/build.gradle
+++ b/samples/springboot3/pet-store/build.gradle
@@ -9,7 +9,7 @@ repositories {
 
 dependencies {
   implementation (
-          implementation('org.springframework.boot:spring-boot-starter-web:3.1.2') {
+          implementation('org.springframework.boot:spring-boot-starter-web:3.1.3') {
             exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat'
           },
           'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)',
diff --git a/samples/springboot3/pet-store/pom.xml b/samples/springboot3/pet-store/pom.xml
index 8a21e0fad..2fdd615eb 100644
--- a/samples/springboot3/pet-store/pom.xml
+++ b/samples/springboot3/pet-store/pom.xml
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.1.2</version>
+        <version>3.1.3</version>
     </parent>
 
     <licenses>

From bf2e36792b0befdf60b97ba17e9d4dddc8f6b9ab Mon Sep 17 00:00:00 2001
From: kibeom lee <lkbest0085@gmail.com>
Date: Sun, 27 Aug 2023 22:50:45 +0900
Subject: [PATCH 007/430] Fix typos in FilterChainManager comments

Fixed minor typographical errors in the Javadoc comments of FilterChainManager.
---
 .../serverless/proxy/internal/servlet/FilterChainManager.java   | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/FilterChainManager.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/FilterChainManager.java
index 835170bb5..4917b4aaa 100644
--- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/FilterChainManager.java
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/FilterChainManager.java
@@ -26,7 +26,7 @@
 import java.util.function.Predicate;
 
 /**
- * This object in in charge of matching a servlet request to a set of filter, creating the filter chain for a request,
+ * This object is in charge of matching a servlet request to a set of filters, creating the filter chain for a request,
  * and cache filter chains that were already loaded for re-use. This object should be used by the framework-specific
  * implementations that use the <code>HttpServletRequest</code> and <code>HttpServletResponse</code> objects.
  *

From 6842d795993c01bcd858fc9253f6a887d0d85f65 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 28 Aug 2023 04:25:02 +0000
Subject: [PATCH 008/430] chore(deps): bump
 org.apache.maven.plugins:maven-enforcer-plugin

Bumps [org.apache.maven.plugins:maven-enforcer-plugin](https://github.com/apache/maven-enforcer) from 3.3.0 to 3.4.0.
- [Release notes](https://github.com/apache/maven-enforcer/releases)
- [Commits](https://github.com/apache/maven-enforcer/compare/enforcer-3.3.0...enforcer-3.4.0)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-enforcer-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 2c5c0ed97..ee2d9eac3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -169,7 +169,7 @@
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-enforcer-plugin</artifactId>
-                    <version>3.3.0</version>
+                    <version>3.4.0</version>
                     <executions>
                         <execution>
                             <id>enforce</id>

From 20a06320b3ad0f9227c9dcdaba61614d1a17e573 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 28 Aug 2023 04:25:11 +0000
Subject: [PATCH 009/430] chore(deps-dev): bump org.mockito:mockito-core from
 5.4.0 to 5.5.0

Bumps [org.mockito:mockito-core](https://github.com/mockito/mockito) from 5.4.0 to 5.5.0.
- [Release notes](https://github.com/mockito/mockito/releases)
- [Commits](https://github.com/mockito/mockito/compare/v5.4.0...v5.5.0)

---
updated-dependencies:
- dependency-name: org.mockito:mockito-core
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 2c5c0ed97..144d4d0f2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -81,7 +81,7 @@
         <jackson.version>2.15.2</jackson.version>
         <slf4j.version>2.0.7</slf4j.version>
         <junit.version>5.10.0</junit.version>
-        <mockito.version>5.4.0</mockito.version>
+        <mockito.version>5.5.0</mockito.version>
         <hamcrest.version>1.3</hamcrest.version>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     </properties>

From 007395460951b8932dde0f60c7d059b213d04313 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 4 Sep 2023 04:51:57 +0000
Subject: [PATCH 010/430] chore(deps): bump slf4j.version from 2.0.7 to 2.0.9

Bumps `slf4j.version` from 2.0.7 to 2.0.9.

Updates `org.slf4j:slf4j-api` from 2.0.7 to 2.0.9

Updates `org.slf4j:slf4j-simple` from 2.0.7 to 2.0.9

---
updated-dependencies:
- dependency-name: org.slf4j:slf4j-api
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.slf4j:slf4j-simple
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 11d59a0a8..7a1d18987 100644
--- a/pom.xml
+++ b/pom.xml
@@ -79,7 +79,7 @@
         <jacoco.minCoverage>0.7</jacoco.minCoverage>
         <dependencyCheck.version>8.4.0</dependencyCheck.version>
         <jackson.version>2.15.2</jackson.version>
-        <slf4j.version>2.0.7</slf4j.version>
+        <slf4j.version>2.0.9</slf4j.version>
         <junit.version>5.10.0</junit.version>
         <mockito.version>5.5.0</mockito.version>
         <hamcrest.version>1.3</hamcrest.version>

From 4019c878e9f6c4722170669def35f1e254335417 Mon Sep 17 00:00:00 2001
From: kibeom lee <70303094+2012160085@users.noreply.github.com>
Date: Thu, 7 Sep 2023 16:05:05 +0900
Subject: [PATCH 011/430] Fix dispatch order issue in async request handling

Ensure post-processing logic is executed before re-dispatching during asynchronous request handling

* SpringBootLambdaContainerHandler
- Added logic within the handleRequest method to reprocess the request in cases where an asynchronous request requires re-dispatching.

* AwsAsyncContext
- Added an isDispatchStarted method that returns whether the dispatch has started or not.
- Removed the part where doFilter is directly called within the dispatch function.
---
 .../internal/servlet/AwsAsyncContext.java     | 21 ++++++++++++-------
 .../SpringBootLambdaContainerHandler.java     | 13 ++++++++++++
 2 files changed, 26 insertions(+), 8 deletions(-)

diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsAsyncContext.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsAsyncContext.java
index 7e3642ef0..0dd115b9a 100644
--- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsAsyncContext.java
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsAsyncContext.java
@@ -37,6 +37,7 @@ public class AwsAsyncContext implements AsyncContext {
     private long timeout;
     private AtomicBoolean dispatched;
     private AtomicBoolean completed;
+    private AtomicBoolean dispatchStarted;
 
     private Logger log = LoggerFactory.getLogger(AwsAsyncContext.class);
 
@@ -49,6 +50,7 @@ public AwsAsyncContext(HttpServletRequest request, HttpServletResponse response,
         timeout = 3000;
         dispatched = new AtomicBoolean(false);
         completed = new AtomicBoolean(false);
+        dispatchStarted = new AtomicBoolean(false);
     }
 
     @Override
@@ -68,16 +70,15 @@ public boolean hasOriginalRequestAndResponse() {
 
     @Override
     public void dispatch() {
-        try {
-            log.debug("Dispatching request");
-            if (dispatched.get()) {
-                throw new IllegalStateException("Dispatching already started");
-            }
+        log.debug("Dispatching request");
+        if (dispatched.get()) {
+            throw new IllegalStateException("Dispatching already started");
+        }
+        if (!dispatchStarted.get()) {
+            dispatchStarted.set(true);
+        } else {
             dispatched.set(true);
-            handler.doFilter(req, res, ((AwsServletContext)req.getServletContext()).getServletForPath(req.getRequestURI()));
             notifyListeners(NotificationType.START_ASYNC, null);
-        } catch (ServletException | IOException e) {
-            notifyListeners(NotificationType.ERROR, e);
         }
     }
 
@@ -154,6 +155,10 @@ public boolean isCompleted() {
         return completed.get();
     }
 
+    public boolean isDispatchStarted() {
+        return dispatchStarted.get();
+    }
+
     private void notifyListeners(NotificationType type, Throwable t) {
         listeners.forEach((h) -> {
             try {
diff --git a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/SpringBootLambdaContainerHandler.java b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/SpringBootLambdaContainerHandler.java
index 1f7719e9a..dd48994a8 100644
--- a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/SpringBootLambdaContainerHandler.java
+++ b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/SpringBootLambdaContainerHandler.java
@@ -22,6 +22,7 @@
 import com.amazonaws.serverless.proxy.spring.embedded.ServerlessReactiveServletEmbeddedServerFactory;
 import com.amazonaws.serverless.proxy.spring.embedded.ServerlessServletEmbeddedServerFactory;
 import com.amazonaws.services.lambda.runtime.Context;
+import jakarta.servlet.AsyncContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.boot.WebApplicationType;
@@ -172,9 +173,21 @@ protected void handleRequest(HttpServletRequest containerRequest, AwsHttpServlet
             ((AwsHttpServletRequest)containerRequest).setResponse(containerResponse);
         }
         doFilter(containerRequest, containerResponse, reqServlet);
+        if(requiresAsyncReDispatch(containerRequest)) {
+            doFilter(containerRequest, containerResponse, reqServlet);
+        }
         Timer.stop("SPRINGBOOT2_HANDLE_REQUEST");
     }
 
+    private boolean requiresAsyncReDispatch(HttpServletRequest request) {
+        if (request.isAsyncStarted()) {
+            AsyncContext asyncContext = request.getAsyncContext();
+            return asyncContext instanceof AwsAsyncContext
+                    && ((AwsAsyncContext) asyncContext).isDispatchStarted();
+        }
+        return false;
+    }
+
 
     @Override
     public void initialize()

From 14ae2607f1370089cb92a40dcd9e37165e3b8ef8 Mon Sep 17 00:00:00 2001
From: kibeom lee <70303094+2012160085@users.noreply.github.com>
Date: Thu, 7 Sep 2023 16:09:13 +0900
Subject: [PATCH 012/430] Disable Servlet mapping tests of AwsAsyncContext

*AwsAsyncContextTest
-Disabled servlet mapping tests as it no longer make servlet requests.
---
 .../serverless/proxy/internal/servlet/AwsAsyncContextTest.java | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsAsyncContextTest.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsAsyncContextTest.java
index 2177fa8bb..e4db0e679 100644
--- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsAsyncContextTest.java
+++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsAsyncContextTest.java
@@ -10,6 +10,7 @@
 import com.amazonaws.serverless.proxy.model.AwsProxyRequest;
 import com.amazonaws.serverless.proxy.model.AwsProxyResponse;
 import com.amazonaws.services.lambda.runtime.Context;
+import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 
 import jakarta.servlet.AsyncContext;
@@ -32,6 +33,7 @@ public class AwsAsyncContextTest {
     private AwsServletContextTest.TestServlet srv2 = new AwsServletContextTest.TestServlet("srv2");
     private AwsServletContext ctx = getCtx();
 
+    @Disabled //AwsAsyncContext does not sends to servlet anymore
     @Test
     void dispatch_sendsToCorrectServlet() {
         AwsProxyHttpServletRequest req = new AwsProxyHttpServletRequest(new AwsProxyRequestBuilder("/srv1/hello", "GET").build(), lambdaCtx, null);
@@ -58,6 +60,7 @@ void dispatch_sendsToCorrectServlet() {
         assertEquals(202, handler.getResponse().getStatus());
     }
 
+    @Disabled //AwsAsyncContext does not sends to servlet anymore
     @Test
     void dispatchNewPath_sendsToCorrectServlet() throws InvalidRequestEventException {
         AwsProxyHttpServletRequest req = (AwsProxyHttpServletRequest)reader.readRequest(new AwsProxyRequestBuilder("/srv1/hello", "GET").build(), null, lambdaCtx, LambdaContainerHandler.getContainerConfig());

From cfcff4c2259d4743d81ee2e44a28a52d03dd3f27 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 11 Sep 2023 04:33:06 +0000
Subject: [PATCH 013/430] chore(deps): bump
 org.apache.maven.plugins:maven-enforcer-plugin

Bumps [org.apache.maven.plugins:maven-enforcer-plugin](https://github.com/apache/maven-enforcer) from 3.4.0 to 3.4.1.
- [Release notes](https://github.com/apache/maven-enforcer/releases)
- [Commits](https://github.com/apache/maven-enforcer/compare/enforcer-3.4.0...enforcer-3.4.1)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-enforcer-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 7a1d18987..e7cabafd3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -169,7 +169,7 @@
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-enforcer-plugin</artifactId>
-                    <version>3.4.0</version>
+                    <version>3.4.1</version>
                     <executions>
                         <execution>
                             <id>enforce</id>

From 096c4819c0e9ee18ec0db86fcd6a427d8f2a7d59 Mon Sep 17 00:00:00 2001
From: kibeom lee <70303094+2012160085@users.noreply.github.com>
Date: Fri, 15 Sep 2023 03:08:57 +0900
Subject: [PATCH 014/430] add tests -Added jpaapp.JpaApplication for H2 and
 Spring Data JPA testing. -Excluded JPA auto-configuration from other test
 apps to prevent interference. -Implemented one async and one sync test case
 in JpaAppTest

---
 .../pom.xml                                   | 40 +++++++++++++
 .../serverless/proxy/spring/JpaAppTest.java   | 52 ++++++++++++++++
 .../proxy/spring/jpaapp/DatabaseConfig.java   | 23 ++++++++
 .../proxy/spring/jpaapp/JpaApplication.java   | 17 ++++++
 .../proxy/spring/jpaapp/LambdaHandler.java    | 59 +++++++++++++++++++
 .../spring/jpaapp/MessageController.java      | 31 ++++++++++
 .../securityapp/SecurityApplication.java      |  5 +-
 .../spring/servletapp/ServletApplication.java |  4 +-
 .../spring/slowapp/SlowTestApplication.java   |  4 +-
 .../webfluxapp/WebFluxTestApplication.java    |  4 +-
 10 files changed, 235 insertions(+), 4 deletions(-)
 create mode 100644 aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/JpaAppTest.java
 create mode 100644 aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/jpaapp/DatabaseConfig.java
 create mode 100644 aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/jpaapp/JpaApplication.java
 create mode 100644 aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/jpaapp/LambdaHandler.java
 create mode 100644 aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/jpaapp/MessageController.java

diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml
index cc907f952..56c617738 100644
--- a/aws-serverless-java-container-springboot3/pom.xml
+++ b/aws-serverless-java-container-springboot3/pom.xml
@@ -191,6 +191,46 @@
             <scope>test</scope>
         </dependency>
 
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-data-jpa</artifactId>
+            <version>3.1.3</version>
+            <scope>test</scope>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.springframework.boot</groupId>
+                    <artifactId>spring-boot-starter-aop</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.springframework.boot</groupId>
+                    <artifactId>spring-boot-starter-web</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.springframework.boot</groupId>
+                    <artifactId>spring-boot-starter-logging</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.springframework.boot</groupId>
+                    <artifactId>spring-boot-starter-tomcat</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.apache.tomcat.embed</groupId>
+                    <artifactId>tomcat-embed-core</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.apache.tomcat.embed</groupId>
+                    <artifactId>tomcat-embed-websocket</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>com.h2database</groupId>
+            <artifactId>h2</artifactId>
+            <version>2.2.222</version>
+            <scope>test</scope>
+        </dependency>
+
+
     </dependencies>
 
     <build>
diff --git a/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/JpaAppTest.java b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/JpaAppTest.java
new file mode 100644
index 000000000..a111e510a
--- /dev/null
+++ b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/JpaAppTest.java
@@ -0,0 +1,52 @@
+package com.amazonaws.serverless.proxy.spring;
+
+import com.amazonaws.serverless.proxy.internal.testutils.AwsProxyRequestBuilder;
+import com.amazonaws.serverless.proxy.internal.testutils.MockLambdaContext;
+import com.amazonaws.serverless.proxy.model.AwsProxyResponse;
+import com.amazonaws.serverless.proxy.spring.jpaapp.LambdaHandler;
+import com.amazonaws.serverless.proxy.spring.jpaapp.MessageController;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.MethodSource;
+
+import java.util.Arrays;
+import java.util.Collection;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+public class JpaAppTest {
+
+    LambdaHandler handler;
+    MockLambdaContext lambdaContext = new MockLambdaContext();
+
+    private String type;
+
+    public static Collection<Object> data() {
+        return Arrays.asList(new Object[]{"API_GW", "ALB", "HTTP_API"});
+    }
+
+    public void initJpaAppTest(String reqType) {
+        type = reqType;
+        handler = new LambdaHandler(type);
+    }
+
+    @MethodSource("data")
+    @ParameterizedTest
+    void asyncRequest(String reqType) {
+        initJpaAppTest(reqType);
+        AwsProxyRequestBuilder req = new AwsProxyRequestBuilder("/async", "POST")
+                .json()
+                .body("{\"name\":\"kong\"}");
+        AwsProxyResponse resp = handler.handleRequest(req, lambdaContext);
+        assertEquals("{\"name\":\"KONG\"}", resp.getBody());
+    }
+
+    @MethodSource("data")
+    @ParameterizedTest
+    void helloRequest_respondsWithSingleMessage(String reqType) {
+        initJpaAppTest(reqType);
+        AwsProxyRequestBuilder req = new AwsProxyRequestBuilder("/hello", "GET");
+        AwsProxyResponse resp = handler.handleRequest(req, lambdaContext);
+        assertEquals(MessageController.HELLO_MESSAGE, resp.getBody());
+    }
+
+}
diff --git a/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/jpaapp/DatabaseConfig.java b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/jpaapp/DatabaseConfig.java
new file mode 100644
index 000000000..aeef7c65e
--- /dev/null
+++ b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/jpaapp/DatabaseConfig.java
@@ -0,0 +1,23 @@
+package com.amazonaws.serverless.proxy.spring.jpaapp;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.jdbc.datasource.DriverManagerDataSource;
+
+import javax.sql.DataSource;
+
+@Configuration
+public class DatabaseConfig {
+
+    @Bean
+    public DataSource dataSource() {
+        DriverManagerDataSource dataSource = new DriverManagerDataSource();
+        dataSource.setDriverClassName("org.h2.Driver");
+        dataSource.setUrl("jdbc:h2:mem:testdb");
+        dataSource.setUsername("sa");
+        dataSource.setPassword("");
+
+        return dataSource;
+    }
+}
+
diff --git a/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/jpaapp/JpaApplication.java b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/jpaapp/JpaApplication.java
new file mode 100644
index 000000000..5aced5e28
--- /dev/null
+++ b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/jpaapp/JpaApplication.java
@@ -0,0 +1,17 @@
+package com.amazonaws.serverless.proxy.spring.jpaapp;
+
+import org.springframework.beans.factory.InitializingBean;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.logging.LogLevel;
+import org.springframework.boot.logging.LoggingSystem;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Import;
+
+@SpringBootApplication(exclude = {
+        org.springframework.boot.autoconfigure.security.reactive.ReactiveUserDetailsServiceAutoConfiguration.class,
+        org.springframework.boot.autoconfigure.security.reactive.ReactiveSecurityAutoConfiguration.class,
+        org.springframework.boot.autoconfigure.security.servlet.UserDetailsServiceAutoConfiguration.class,
+        org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration.class
+})
+@Import(MessageController.class)
+public class JpaApplication {}
diff --git a/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/jpaapp/LambdaHandler.java b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/jpaapp/LambdaHandler.java
new file mode 100644
index 000000000..0cf67c10f
--- /dev/null
+++ b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/jpaapp/LambdaHandler.java
@@ -0,0 +1,59 @@
+package com.amazonaws.serverless.proxy.spring.jpaapp;
+
+import com.amazonaws.serverless.exceptions.ContainerInitializationException;
+import com.amazonaws.serverless.proxy.InitializationWrapper;
+import com.amazonaws.serverless.proxy.internal.testutils.AwsProxyRequestBuilder;
+import com.amazonaws.serverless.proxy.model.AwsProxyRequest;
+import com.amazonaws.serverless.proxy.model.AwsProxyResponse;
+import com.amazonaws.serverless.proxy.model.HttpApiV2ProxyRequest;
+import com.amazonaws.serverless.proxy.spring.SpringBootLambdaContainerHandler;
+import com.amazonaws.serverless.proxy.spring.SpringBootProxyHandlerBuilder;
+import com.amazonaws.services.lambda.runtime.Context;
+import com.amazonaws.services.lambda.runtime.RequestHandler;
+
+public class LambdaHandler implements RequestHandler<AwsProxyRequestBuilder, AwsProxyResponse> {
+    private static SpringBootLambdaContainerHandler<AwsProxyRequest, AwsProxyResponse> handler;
+    private static SpringBootLambdaContainerHandler<HttpApiV2ProxyRequest, AwsProxyResponse> httpApiHandler;
+    private String type;
+
+    public LambdaHandler(String reqType) {
+        type = reqType;
+        try {
+            switch (type) {
+                case "API_GW":
+                case "ALB":
+                    handler = new SpringBootProxyHandlerBuilder<AwsProxyRequest>()
+                                .defaultProxy()
+                                .initializationWrapper(new InitializationWrapper())
+                                .servletApplication()
+                                .springBootApplication(JpaApplication.class)
+                                .buildAndInitialize();
+                    break;
+                case "HTTP_API":
+                    httpApiHandler = new SpringBootProxyHandlerBuilder<HttpApiV2ProxyRequest>()
+                            .defaultHttpApiV2Proxy()
+                            .initializationWrapper(new InitializationWrapper())
+                            .servletApplication()
+                            .springBootApplication(JpaApplication.class)
+                            .buildAndInitialize();
+                    break;
+            }
+        } catch (ContainerInitializationException e) {
+            e.printStackTrace();
+        }
+    }
+
+    @Override
+    public AwsProxyResponse handleRequest(AwsProxyRequestBuilder awsProxyRequest, Context context) {
+        switch (type) {
+            case "API_GW":
+                return handler.proxy(awsProxyRequest.build(), context);
+            case "ALB":
+                return handler.proxy(awsProxyRequest.alb().build(), context);
+            case "HTTP_API":
+                return httpApiHandler.proxy(awsProxyRequest.toHttpApiV2Request(), context);
+            default:
+                throw new RuntimeException("Unknown request type: " + type);
+        }
+    }
+}
diff --git a/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/jpaapp/MessageController.java b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/jpaapp/MessageController.java
new file mode 100644
index 000000000..a85292262
--- /dev/null
+++ b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/jpaapp/MessageController.java
@@ -0,0 +1,31 @@
+package com.amazonaws.serverless.proxy.spring.jpaapp;
+
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.context.request.async.DeferredResult;
+import java.util.Collections;
+import java.util.Map;
+
+@RestController
+public class MessageController {
+
+	public static final String HELLO_MESSAGE = "Hello";
+
+	@RequestMapping(path="/hello", method=RequestMethod.GET, produces = {"text/plain"})
+	public String hello() {
+		return HELLO_MESSAGE;
+	}
+
+    @SuppressWarnings({ "unchecked", "rawtypes" })
+	@RequestMapping(path = "/async", method = RequestMethod.POST)
+	@ResponseBody
+	public DeferredResult<Map<String, String>> asyncResult(@RequestBody Map<String, String> value) {
+		DeferredResult result = new DeferredResult<>();
+		result.setResult(Collections.singletonMap("name", value.get("name").toUpperCase()));
+		return result;
+	}
+
+}
diff --git a/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/securityapp/SecurityApplication.java b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/securityapp/SecurityApplication.java
index cafcd4000..d4036dcfe 100644
--- a/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/securityapp/SecurityApplication.java
+++ b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/securityapp/SecurityApplication.java
@@ -6,7 +6,10 @@
 import org.springframework.security.config.annotation.web.reactive.EnableWebFluxSecurity;
 import org.springframework.web.reactive.config.EnableWebFlux;
 
-@SpringBootApplication
+@SpringBootApplication(exclude = {
+        org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration.class,
+        org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration.class
+})
 @EnableWebFluxSecurity
 @EnableWebFlux
 @Import(SecurityConfig.class)
diff --git a/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/servletapp/ServletApplication.java b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/servletapp/ServletApplication.java
index 07ddbab43..0cb001ed1 100644
--- a/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/servletapp/ServletApplication.java
+++ b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/servletapp/ServletApplication.java
@@ -9,7 +9,9 @@
         org.springframework.boot.autoconfigure.security.reactive.ReactiveUserDetailsServiceAutoConfiguration.class,
         org.springframework.boot.autoconfigure.security.reactive.ReactiveSecurityAutoConfiguration.class,
         org.springframework.boot.autoconfigure.security.servlet.UserDetailsServiceAutoConfiguration.class,
-        org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration.class
+        org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration.class,
+        org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration.class,
+        org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration.class
 })
 @Import(MessageController.class)
 public class ServletApplication {
diff --git a/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/slowapp/SlowTestApplication.java b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/slowapp/SlowTestApplication.java
index b3fe177a1..006e51e45 100644
--- a/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/slowapp/SlowTestApplication.java
+++ b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/slowapp/SlowTestApplication.java
@@ -8,7 +8,9 @@
 
 @SpringBootApplication(exclude = {
         org.springframework.boot.autoconfigure.security.reactive.ReactiveUserDetailsServiceAutoConfiguration.class,
-        org.springframework.boot.autoconfigure.security.reactive.ReactiveSecurityAutoConfiguration.class
+        org.springframework.boot.autoconfigure.security.reactive.ReactiveSecurityAutoConfiguration.class,
+        org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration.class,
+        org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration.class
 })
 public class SlowTestApplication {
 
diff --git a/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/webfluxapp/WebFluxTestApplication.java b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/webfluxapp/WebFluxTestApplication.java
index 70e0c9934..fc6aecd6f 100644
--- a/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/webfluxapp/WebFluxTestApplication.java
+++ b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/webfluxapp/WebFluxTestApplication.java
@@ -13,7 +13,9 @@
         org.springframework.boot.autoconfigure.security.reactive.ReactiveUserDetailsServiceAutoConfiguration.class,
         org.springframework.boot.autoconfigure.security.reactive.ReactiveSecurityAutoConfiguration.class,
         org.springframework.boot.autoconfigure.security.servlet.UserDetailsServiceAutoConfiguration.class,
-        org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration.class
+        org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration.class,
+        org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration.class,
+        org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration.class
 })
 public class WebFluxTestApplication {
 

From 93c03c820a6066ae3a8a51a9be842c9f8973087f Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 18 Sep 2023 04:22:49 +0000
Subject: [PATCH 015/430] chore(deps): bump
 org.apache.maven.plugins:maven-javadoc-plugin

Bumps [org.apache.maven.plugins:maven-javadoc-plugin](https://github.com/apache/maven-javadoc-plugin) from 3.5.0 to 3.6.0.
- [Release notes](https://github.com/apache/maven-javadoc-plugin/releases)
- [Commits](https://github.com/apache/maven-javadoc-plugin/compare/maven-javadoc-plugin-3.5.0...maven-javadoc-plugin-3.6.0)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-javadoc-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index e7cabafd3..1f681d408 100644
--- a/pom.xml
+++ b/pom.xml
@@ -201,7 +201,7 @@
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-javadoc-plugin</artifactId>
-                    <version>3.5.0</version>
+                    <version>3.6.0</version>
                 </plugin>
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>

From 5615394a840f97aff45371693aed90df1af4bfe6 Mon Sep 17 00:00:00 2001
From: kibeom lee <70303094+2012160085@users.noreply.github.com>
Date: Tue, 19 Sep 2023 03:46:53 +0900
Subject: [PATCH 016/430] Add test case for AwsAsyncContext

---
 .../internal/servlet/AwsAsyncContextTest.java  | 18 ++++++++++++++++--
 1 file changed, 16 insertions(+), 2 deletions(-)

diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsAsyncContextTest.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsAsyncContextTest.java
index e4db0e679..dd452dc19 100644
--- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsAsyncContextTest.java
+++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsAsyncContextTest.java
@@ -33,7 +33,21 @@ public class AwsAsyncContextTest {
     private AwsServletContextTest.TestServlet srv2 = new AwsServletContextTest.TestServlet("srv2");
     private AwsServletContext ctx = getCtx();
 
-    @Disabled //AwsAsyncContext does not sends to servlet anymore
+
+    @Test
+    void dispatch_amendsPath() throws InvalidRequestEventException {
+        AwsProxyHttpServletRequest req = (AwsProxyHttpServletRequest)reader.readRequest(new AwsProxyRequestBuilder("/srv1/hello", "GET").build(), null, lambdaCtx, LambdaContainerHandler.getContainerConfig());
+        req.setResponse(handler.getContainerResponse(req, new CountDownLatch(1)));
+        req.setServletContext(ctx);
+        req.setContainerHandler(handler);
+
+        AsyncContext asyncCtx = req.startAsync();
+        handler.setDesiredStatus(301);
+        asyncCtx.dispatch("/srv4/hello");
+        assertEquals("/srv1/hello", req.getRequestURI());
+    }
+
+    @Disabled("AwsAsyncContext does not sends to servlet anymore")
     @Test
     void dispatch_sendsToCorrectServlet() {
         AwsProxyHttpServletRequest req = new AwsProxyHttpServletRequest(new AwsProxyRequestBuilder("/srv1/hello", "GET").build(), lambdaCtx, null);
@@ -60,7 +74,7 @@ void dispatch_sendsToCorrectServlet() {
         assertEquals(202, handler.getResponse().getStatus());
     }
 
-    @Disabled //AwsAsyncContext does not sends to servlet anymore
+    @Disabled("AwsAsyncContext does not sends to servlet anymore")
     @Test
     void dispatchNewPath_sendsToCorrectServlet() throws InvalidRequestEventException {
         AwsProxyHttpServletRequest req = (AwsProxyHttpServletRequest)reader.readRequest(new AwsProxyRequestBuilder("/srv1/hello", "GET").build(), null, lambdaCtx, LambdaContainerHandler.getContainerConfig());

From ab62529c7dd393ed0cb7795693607e3f491b2fc2 Mon Sep 17 00:00:00 2001
From: kibeom lee <70303094+2012160085@users.noreply.github.com>
Date: Tue, 19 Sep 2023 03:57:34 +0900
Subject: [PATCH 017/430] fix handleRequest redispatch -get reqServlet before
 doFilter for redispatch

---
 .../proxy/spring/SpringBootLambdaContainerHandler.java           | 1 +
 1 file changed, 1 insertion(+)

diff --git a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/SpringBootLambdaContainerHandler.java b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/SpringBootLambdaContainerHandler.java
index dd48994a8..752623cdc 100644
--- a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/SpringBootLambdaContainerHandler.java
+++ b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/SpringBootLambdaContainerHandler.java
@@ -174,6 +174,7 @@ protected void handleRequest(HttpServletRequest containerRequest, AwsHttpServlet
         }
         doFilter(containerRequest, containerResponse, reqServlet);
         if(requiresAsyncReDispatch(containerRequest)) {
+            reqServlet = ((AwsServletContext)getServletContext()).getServletForPath(containerRequest.getPathInfo());
             doFilter(containerRequest, containerResponse, reqServlet);
         }
         Timer.stop("SPRINGBOOT2_HANDLE_REQUEST");

From aa203912b9a3f871aa40e08f45506e01ccadd3da Mon Sep 17 00:00:00 2001
From: kibeom lee <70303094+2012160085@users.noreply.github.com>
Date: Tue, 19 Sep 2023 04:04:14 +0900
Subject: [PATCH 018/430] fix handleRequest re-dispatch -Added re-dispatch
 logic inside SpringLambdaContainerHandler's handleRequest

---
 .../proxy/spring/SpringLambdaContainerHandler.java  | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/aws-serverless-java-container-spring/src/main/java/com/amazonaws/serverless/proxy/spring/SpringLambdaContainerHandler.java b/aws-serverless-java-container-spring/src/main/java/com/amazonaws/serverless/proxy/spring/SpringLambdaContainerHandler.java
index 5e56dba62..3c6fcf8b0 100644
--- a/aws-serverless-java-container-spring/src/main/java/com/amazonaws/serverless/proxy/spring/SpringLambdaContainerHandler.java
+++ b/aws-serverless-java-container-spring/src/main/java/com/amazonaws/serverless/proxy/spring/SpringLambdaContainerHandler.java
@@ -20,6 +20,7 @@
 import com.amazonaws.serverless.proxy.internal.servlet.*;
 import com.amazonaws.serverless.proxy.model.HttpApiV2ProxyRequest;
 import com.amazonaws.services.lambda.runtime.Context;
+import jakarta.servlet.AsyncContext;
 import org.springframework.web.context.ConfigurableWebApplicationContext;
 import org.springframework.web.servlet.DispatcherServlet;
 
@@ -160,9 +161,21 @@ protected void handleRequest(HttpServletRequest containerRequest, AwsHttpServlet
         // process filters
         Servlet reqServlet = ((AwsServletContext)getServletContext()).getServletForPath(containerRequest.getPathInfo());
         doFilter(containerRequest, containerResponse, reqServlet);
+        if(requiresAsyncReDispatch(containerRequest)) {
+            reqServlet = ((AwsServletContext)getServletContext()).getServletForPath(containerRequest.getPathInfo());
+            doFilter(containerRequest, containerResponse, reqServlet);
+        }
         Timer.stop("SPRING_HANDLE_REQUEST");
     }
 
+    private boolean requiresAsyncReDispatch(HttpServletRequest request) {
+        if (request.isAsyncStarted()) {
+            AsyncContext asyncContext = request.getAsyncContext();
+            return asyncContext instanceof AwsAsyncContext
+                    && ((AwsAsyncContext) asyncContext).isDispatchStarted();
+        }
+        return false;
+    }
 
     @Override
     public void initialize()

From 3047ca99c3d1e8a1c0ebf50c47f3106491a36170 Mon Sep 17 00:00:00 2001
From: kibeom lee <70303094+2012160085@users.noreply.github.com>
Date: Tue, 19 Sep 2023 04:47:04 +0900
Subject: [PATCH 019/430] add test case for spring -Added test cases for async
 request

---
 .../serverless/proxy/spring/AsyncAppTest.java | 46 +++++++++++++++++++
 .../proxy/spring/springapp/AppConfig.java     |  8 ++++
 .../proxy/spring/springapp/LambdaHandler.java | 26 +++++++++++
 .../spring/springapp/MessageController.java   | 25 ++++++++++
 4 files changed, 105 insertions(+)
 create mode 100644 aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/AsyncAppTest.java
 create mode 100644 aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/springapp/AppConfig.java
 create mode 100644 aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/springapp/LambdaHandler.java
 create mode 100644 aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/springapp/MessageController.java

diff --git a/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/AsyncAppTest.java b/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/AsyncAppTest.java
new file mode 100644
index 000000000..8265e1bf4
--- /dev/null
+++ b/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/AsyncAppTest.java
@@ -0,0 +1,46 @@
+package com.amazonaws.serverless.proxy.spring;
+
+import com.amazonaws.serverless.exceptions.ContainerInitializationException;
+import com.amazonaws.serverless.proxy.internal.testutils.AwsProxyRequestBuilder;
+import com.amazonaws.serverless.proxy.internal.testutils.MockLambdaContext;
+import com.amazonaws.serverless.proxy.model.AwsProxyRequest;
+import com.amazonaws.serverless.proxy.model.AwsProxyResponse;
+import com.amazonaws.serverless.proxy.spring.springapp.LambdaHandler;
+import com.amazonaws.serverless.proxy.spring.springapp.MessageController;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.fail;
+
+public class AsyncAppTest {
+
+    private static LambdaHandler handler;
+
+    @BeforeAll
+    public static void setUp() {
+        try {
+            handler = new LambdaHandler();
+        } catch (ContainerInitializationException e) {
+            e.printStackTrace();
+            fail();
+        }
+    }
+
+    @Test
+    void springApp_helloRequest_returnsCorrect() {
+        AwsProxyRequest req = new AwsProxyRequestBuilder("/hello", "GET").build();
+        AwsProxyResponse resp = handler.handleRequest(req, new MockLambdaContext());
+        assertEquals(200, resp.getStatusCode());
+        assertEquals(MessageController.HELLO_MESSAGE, resp.getBody());
+    }
+
+    @Test
+    void springApp_asyncRequest_returnsCorrect() {
+        AwsProxyRequest req = new AwsProxyRequestBuilder("/async", "GET").build();
+        AwsProxyResponse resp = handler.handleRequest(req, new MockLambdaContext());
+        assertEquals(200, resp.getStatusCode());
+        assertEquals(MessageController.HELLO_MESSAGE, resp.getBody());
+    }
+
+}
diff --git a/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/springapp/AppConfig.java b/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/springapp/AppConfig.java
new file mode 100644
index 000000000..d3562c221
--- /dev/null
+++ b/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/springapp/AppConfig.java
@@ -0,0 +1,8 @@
+package com.amazonaws.serverless.proxy.spring.springapp;
+
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Import;
+
+@Configuration
+@Import({MessageController.class})
+public class AppConfig { }
diff --git a/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/springapp/LambdaHandler.java b/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/springapp/LambdaHandler.java
new file mode 100644
index 000000000..f0cad13c5
--- /dev/null
+++ b/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/springapp/LambdaHandler.java
@@ -0,0 +1,26 @@
+package com.amazonaws.serverless.proxy.spring.springapp;
+
+import com.amazonaws.serverless.exceptions.ContainerInitializationException;
+import com.amazonaws.serverless.proxy.model.AwsProxyRequest;
+import com.amazonaws.serverless.proxy.model.AwsProxyResponse;
+import com.amazonaws.serverless.proxy.spring.SpringLambdaContainerHandler;
+import com.amazonaws.serverless.proxy.spring.SpringProxyHandlerBuilder;
+import com.amazonaws.services.lambda.runtime.Context;
+import com.amazonaws.services.lambda.runtime.RequestHandler;
+
+public class LambdaHandler implements RequestHandler<AwsProxyRequest, AwsProxyResponse> {
+    private SpringLambdaContainerHandler<AwsProxyRequest, AwsProxyResponse> handler;
+
+    public LambdaHandler() throws ContainerInitializationException {
+        handler = new SpringProxyHandlerBuilder<AwsProxyRequest>()
+                .defaultProxy()
+                .asyncInit()
+                .configurationClasses(AppConfig.class)
+                .buildAndInitialize();
+    }
+
+    @Override
+    public AwsProxyResponse handleRequest(AwsProxyRequest awsProxyRequest, Context context) {
+        return handler.proxy(awsProxyRequest, context);
+    }
+}
diff --git a/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/springapp/MessageController.java b/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/springapp/MessageController.java
new file mode 100644
index 000000000..1f5dc83d4
--- /dev/null
+++ b/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/springapp/MessageController.java
@@ -0,0 +1,25 @@
+package com.amazonaws.serverless.proxy.spring.springapp;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.context.request.async.DeferredResult;
+import org.springframework.web.servlet.config.annotation.EnableWebMvc;
+
+@RestController
+@EnableWebMvc
+public class MessageController {
+    public static final String HELLO_MESSAGE = "Hello";
+
+    @RequestMapping(path="/hello", method= RequestMethod.GET)
+    public String hello() {
+        return HELLO_MESSAGE;
+    }
+
+    @RequestMapping(path="/async", method= RequestMethod.GET)
+    public DeferredResult<String> asyncHello() {
+        DeferredResult<String> result = new DeferredResult<>();
+        result.setResult(HELLO_MESSAGE);
+        return result;
+    }
+}

From ff1d5cf085f32e4effeb26f2c2614c37272c5bf3 Mon Sep 17 00:00:00 2001
From: kibeom lee <70303094+2012160085@users.noreply.github.com>
Date: Tue, 19 Sep 2023 04:50:16 +0900
Subject: [PATCH 020/430] edit test case for AwsAsyncContext

---
 .../serverless/proxy/internal/servlet/AwsAsyncContextTest.java   | 1 -
 1 file changed, 1 deletion(-)

diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsAsyncContextTest.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsAsyncContextTest.java
index dd452dc19..9bbbc13a9 100644
--- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsAsyncContextTest.java
+++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsAsyncContextTest.java
@@ -42,7 +42,6 @@ void dispatch_amendsPath() throws InvalidRequestEventException {
         req.setContainerHandler(handler);
 
         AsyncContext asyncCtx = req.startAsync();
-        handler.setDesiredStatus(301);
         asyncCtx.dispatch("/srv4/hello");
         assertEquals("/srv1/hello", req.getRequestURI());
     }

From c92a0e90831139824e2215457a667a3e5a3653e7 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Thu, 21 Sep 2023 15:13:57 +0200
Subject: [PATCH 021/430] chore(deps): Update Spring dependencies (framework to
 6.0.12, security to 6.1.4, boot to 3.1.4)

---
 aws-serverless-java-container-core/pom.xml                  | 2 +-
 aws-serverless-java-container-spring/pom.xml                | 4 ++--
 aws-serverless-java-container-springboot3/pom.xml           | 6 +++---
 .../src/main/resources/archetype-resources/build.gradle     | 4 ++--
 .../src/main/resources/archetype-resources/pom.xml          | 2 +-
 .../src/main/resources/archetype-resources/build.gradle     | 2 +-
 .../src/main/resources/archetype-resources/pom.xml          | 2 +-
 samples/spring/pet-store/build.gradle                       | 4 ++--
 samples/spring/pet-store/pom.xml                            | 2 +-
 samples/springboot3/alt-pet-store/build.gradle              | 2 +-
 samples/springboot3/alt-pet-store/pom.xml                   | 2 +-
 samples/springboot3/pet-store/build.gradle                  | 2 +-
 samples/springboot3/pet-store/pom.xml                       | 2 +-
 13 files changed, 18 insertions(+), 18 deletions(-)

diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml
index 5e29578d9..5d23fcbf6 100644
--- a/aws-serverless-java-container-core/pom.xml
+++ b/aws-serverless-java-container-core/pom.xml
@@ -60,7 +60,7 @@
         <dependency>
             <groupId>org.springframework.security</groupId>
             <artifactId>spring-security-web</artifactId>
-            <version>6.1.3</version>
+            <version>6.1.4</version>
             <scope>test</scope>
         </dependency>
     </dependencies>
diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml
index 608270c0c..2e590866b 100644
--- a/aws-serverless-java-container-spring/pom.xml
+++ b/aws-serverless-java-container-spring/pom.xml
@@ -16,8 +16,8 @@
     </parent>
 
     <properties>
-        <spring.version>6.0.11</spring.version>
-        <spring-security.version>6.1.3</spring-security.version>
+        <spring.version>6.0.12</spring.version>
+        <spring-security.version>6.1.4</spring-security.version>
     </properties>
 
     <dependencies>
diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml
index cc907f952..974345fe7 100644
--- a/aws-serverless-java-container-springboot3/pom.xml
+++ b/aws-serverless-java-container-springboot3/pom.xml
@@ -15,9 +15,9 @@
     <version>2.0.0-SNAPSHOT</version>
 
     <properties>
-        <spring.version>6.0.11</spring.version>
-        <springboot.version>3.1.3</springboot.version>
-        <springsecurity.version>6.1.3</springsecurity.version>
+        <spring.version>6.0.12</spring.version>
+        <springboot.version>3.1.4</springboot.version>
+        <springsecurity.version>6.1.4</springsecurity.version>
     </properties>
 
     <dependencies>
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
index 5d2323018..bc76f577b 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
@@ -7,8 +7,8 @@ repositories {
 
 dependencies {
   implementation (
-          'org.springframework:spring-webmvc:6.0.11',
-          'org.springframework:spring-context:6.0.11',
+          'org.springframework:spring-webmvc:6.0.12',
+          'org.springframework:spring-context:6.0.12',
           'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)',
           'org.apache.logging.log4j:log4j-core:2.20.0',
           'org.apache.logging.log4j:log4j-api:2.20.0',
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
index 35065eb85..455c9e31f 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
@@ -16,7 +16,7 @@
     <properties>
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
-        <spring.version>6.0.11</spring.version>
+        <spring.version>6.0.12</spring.version>
         <junit.version>5.10.0</junit.version>
         <log4j.version>2.20.0</log4j.version>
     </properties>
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
index 567aae98c..f6972663b 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
@@ -9,7 +9,7 @@ repositories {
 
 dependencies {
   implementation (
-          'org.springframework.boot:spring-boot-starter-web:3.1.3',
+          'org.springframework.boot:spring-boot-starter-web:3.1.4',
           'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)',
   )
 
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
index 02693c1bd..54625efac 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
@@ -16,7 +16,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.1.3</version>
+        <version>3.1.4</version>
     </parent>
 
     <properties>
diff --git a/samples/spring/pet-store/build.gradle b/samples/spring/pet-store/build.gradle
index 42813a0ee..072b80965 100644
--- a/samples/spring/pet-store/build.gradle
+++ b/samples/spring/pet-store/build.gradle
@@ -7,8 +7,8 @@ repositories {
 
 dependencies {
   implementation (
-          'org.springframework:spring-webmvc:6.0.11',
-          'org.springframework:spring-context:6.0.11',
+          'org.springframework:spring-webmvc:6.0.12',
+          'org.springframework:spring-context:6.0.12',
           'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)',
           'org.apache.logging.log4j:log4j-core:2.20.0',
           'org.apache.logging.log4j:log4j-api:2.20.0',
diff --git a/samples/spring/pet-store/pom.xml b/samples/spring/pet-store/pom.xml
index 2ed9ae0de..9c87d85ca 100644
--- a/samples/spring/pet-store/pom.xml
+++ b/samples/spring/pet-store/pom.xml
@@ -24,7 +24,7 @@
     </licenses>
 
     <properties>
-        <spring.version>6.0.11</spring.version>
+        <spring.version>6.0.12</spring.version>
         <log4j.version>2.20.0</log4j.version>
         <maven.compiler.source>17</maven.compiler.source>
         <maven.compiler.target>17</maven.compiler.target>
diff --git a/samples/springboot3/alt-pet-store/build.gradle b/samples/springboot3/alt-pet-store/build.gradle
index 8b38f55f8..65386b0fa 100644
--- a/samples/springboot3/alt-pet-store/build.gradle
+++ b/samples/springboot3/alt-pet-store/build.gradle
@@ -9,7 +9,7 @@ repositories {
 
 dependencies {
   implementation (
-          implementation('org.springframework.boot:spring-boot-starter-web:3.1.3') {
+          implementation('org.springframework.boot:spring-boot-starter-web:3.1.4') {
             exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat'
           },
           'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)',
diff --git a/samples/springboot3/alt-pet-store/pom.xml b/samples/springboot3/alt-pet-store/pom.xml
index ba4b2433a..c0d39c7e9 100644
--- a/samples/springboot3/alt-pet-store/pom.xml
+++ b/samples/springboot3/alt-pet-store/pom.xml
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.1.3</version>
+        <version>3.1.4</version>
     </parent>
 
     <licenses>
diff --git a/samples/springboot3/pet-store/build.gradle b/samples/springboot3/pet-store/build.gradle
index 8b38f55f8..65386b0fa 100644
--- a/samples/springboot3/pet-store/build.gradle
+++ b/samples/springboot3/pet-store/build.gradle
@@ -9,7 +9,7 @@ repositories {
 
 dependencies {
   implementation (
-          implementation('org.springframework.boot:spring-boot-starter-web:3.1.3') {
+          implementation('org.springframework.boot:spring-boot-starter-web:3.1.4') {
             exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat'
           },
           'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)',
diff --git a/samples/springboot3/pet-store/pom.xml b/samples/springboot3/pet-store/pom.xml
index 2fdd615eb..96264cf5b 100644
--- a/samples/springboot3/pet-store/pom.xml
+++ b/samples/springboot3/pet-store/pom.xml
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.1.3</version>
+        <version>3.1.4</version>
     </parent>
 
     <licenses>

From 3739cdbe9f2a8d9e3b7d067b6676ae1550aec0c0 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 25 Sep 2023 04:42:26 +0000
Subject: [PATCH 022/430] chore(deps): bump
 com.github.spotbugs:spotbugs-maven-plugin

Bumps [com.github.spotbugs:spotbugs-maven-plugin](https://github.com/spotbugs/spotbugs-maven-plugin) from 4.7.3.5 to 4.7.3.6.
- [Release notes](https://github.com/spotbugs/spotbugs-maven-plugin/releases)
- [Commits](https://github.com/spotbugs/spotbugs-maven-plugin/compare/spotbugs-maven-plugin-4.7.3.5...spotbugs-maven-plugin-4.7.3.6)

---
updated-dependencies:
- dependency-name: com.github.spotbugs:spotbugs-maven-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 1f681d408..ca133620f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -249,7 +249,7 @@
                 <plugin>
                     <groupId>com.github.spotbugs</groupId>
                     <artifactId>spotbugs-maven-plugin</artifactId>
-                    <version>4.7.3.5</version>
+                    <version>4.7.3.6</version>
                     <configuration>
                         <!--
                             Enables analysis which takes more memory but finds more bugs.

From 138d4a692016e391aed6e87a6baac5288cf89e75 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Mon, 25 Sep 2023 07:00:09 +0200
Subject: [PATCH 023/430] chore(deps): update maven-shade-plugin to be
 compatible with JDK 21

---
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 samples/jersey/pet-store/pom.xml                                | 2 +-
 samples/spring/pet-store/pom.xml                                | 2 +-
 samples/springboot3/alt-pet-store/pom.xml                       | 2 +-
 samples/springboot3/pet-store/pom.xml                           | 2 +-
 7 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
index 692bb89c7..eb8bc20a6 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
@@ -107,7 +107,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-shade-plugin</artifactId>
-                        <version>3.5.0</version>
+                        <version>3.5.1</version>
                         <configuration>
                             <createDependencyReducedPom>false</createDependencyReducedPom>
                         </configuration>
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
index 455c9e31f..46b4927d5 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
@@ -119,7 +119,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-shade-plugin</artifactId>
-                        <version>3.5.0</version>
+                        <version>3.5.1</version>
                         <executions>
                             <execution>
                                 <phase>package</phase>
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
index 54625efac..13c887c4c 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
@@ -83,7 +83,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-shade-plugin</artifactId>
-                        <version>3.5.0</version>
+                        <version>3.5.1</version>
                         <configuration>
                             <createDependencyReducedPom>false</createDependencyReducedPom>
                         </configuration>
diff --git a/samples/jersey/pet-store/pom.xml b/samples/jersey/pet-store/pom.xml
index 0ed1f95f4..258675f87 100644
--- a/samples/jersey/pet-store/pom.xml
+++ b/samples/jersey/pet-store/pom.xml
@@ -85,7 +85,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-shade-plugin</artifactId>
-                        <version>3.5.0</version>
+                        <version>3.5.1</version>
                         <configuration>
                             <createDependencyReducedPom>false</createDependencyReducedPom>
                         </configuration>
diff --git a/samples/spring/pet-store/pom.xml b/samples/spring/pet-store/pom.xml
index 9c87d85ca..27d7a5d30 100644
--- a/samples/spring/pet-store/pom.xml
+++ b/samples/spring/pet-store/pom.xml
@@ -95,7 +95,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-shade-plugin</artifactId>
-                        <version>3.5.0</version>
+                        <version>3.5.1</version>
                         <executions>
                             <execution>
                                 <phase>package</phase>
diff --git a/samples/springboot3/alt-pet-store/pom.xml b/samples/springboot3/alt-pet-store/pom.xml
index c0d39c7e9..c8550052d 100644
--- a/samples/springboot3/alt-pet-store/pom.xml
+++ b/samples/springboot3/alt-pet-store/pom.xml
@@ -55,7 +55,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-shade-plugin</artifactId>
-                        <version>3.5.0</version>
+                        <version>3.5.1</version>
                         <configuration>
                             <createDependencyReducedPom>false</createDependencyReducedPom>
                         </configuration>
diff --git a/samples/springboot3/pet-store/pom.xml b/samples/springboot3/pet-store/pom.xml
index 96264cf5b..2cab5ce93 100644
--- a/samples/springboot3/pet-store/pom.xml
+++ b/samples/springboot3/pet-store/pom.xml
@@ -55,7 +55,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-shade-plugin</artifactId>
-                        <version>3.5.0</version>
+                        <version>3.5.1</version>
                         <configuration>
                             <createDependencyReducedPom>false</createDependencyReducedPom>
                         </configuration>

From 79e18edb912d7cffa4dfe92875f92fad03c81ecb Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 9 Oct 2023 04:08:09 +0000
Subject: [PATCH 024/430] chore(deps-dev): bump org.mockito:mockito-core from
 5.5.0 to 5.6.0

Bumps [org.mockito:mockito-core](https://github.com/mockito/mockito) from 5.5.0 to 5.6.0.
- [Release notes](https://github.com/mockito/mockito/releases)
- [Commits](https://github.com/mockito/mockito/compare/v5.5.0...v5.6.0)

---
updated-dependencies:
- dependency-name: org.mockito:mockito-core
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index ca133620f..450e01945 100644
--- a/pom.xml
+++ b/pom.xml
@@ -81,7 +81,7 @@
         <jackson.version>2.15.2</jackson.version>
         <slf4j.version>2.0.9</slf4j.version>
         <junit.version>5.10.0</junit.version>
-        <mockito.version>5.5.0</mockito.version>
+        <mockito.version>5.6.0</mockito.version>
         <hamcrest.version>1.3</hamcrest.version>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     </properties>

From db7f55c62f9fb93e276aaef17cb8c38764b97da1 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 16 Oct 2023 04:39:30 +0000
Subject: [PATCH 025/430] chore(deps): bump
 com.github.spotbugs:spotbugs-annotations

Bumps [com.github.spotbugs:spotbugs-annotations](https://github.com/spotbugs/spotbugs) from 4.7.3 to 4.8.0.
- [Release notes](https://github.com/spotbugs/spotbugs/releases)
- [Changelog](https://github.com/spotbugs/spotbugs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/spotbugs/spotbugs/compare/4.7.3...4.8.0)

---
updated-dependencies:
- dependency-name: com.github.spotbugs:spotbugs-annotations
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 450e01945..7553d99da 100644
--- a/pom.xml
+++ b/pom.xml
@@ -140,7 +140,7 @@
         <dependency>
             <groupId>com.github.spotbugs</groupId>
             <artifactId>spotbugs-annotations</artifactId>
-            <version>4.7.3</version>
+            <version>4.8.0</version>
             <scope>provided</scope>
         </dependency>
     </dependencies>

From d359e2df206b4a7b888d6b284c0dc318e16e5693 Mon Sep 17 00:00:00 2001
From: Renato Valenzuela <valerena@amazon.com>
Date: Wed, 26 Jul 2023 22:07:45 +0000
Subject: [PATCH 026/430] Change parameter transformation logic

---
 .../servlet/AwsHttpServletRequest.java        | 56 +++++++++++++------
 1 file changed, 38 insertions(+), 18 deletions(-)

diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java
index 1bd12c048..4ba1f3cbb 100644
--- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java
@@ -44,6 +44,8 @@
 import java.nio.charset.StandardCharsets;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 
 /**
@@ -546,39 +548,57 @@ protected Map<String, Part> getMultipartFormParametersMap() {
     }
 
     protected String[] getQueryParamValues(MultiValuedTreeMap<String, String> qs, String key, boolean isCaseSensitive) {
+        return getQueryParamValuesAsList(qs, key, isCaseSensitive).toArray(new String[0]);
+    }
+
+    protected List<String> getQueryParamValuesAsList(MultiValuedTreeMap<String, String> qs, String key, boolean isCaseSensitive) {
         if (qs != null) {
             if (isCaseSensitive) {
-                return qs.get(key).toArray(new String[0]);
+                return qs.get(key);
             }
 
             for (String k : qs.keySet()) {
                 if (k.toLowerCase(Locale.getDefault()).equals(key.toLowerCase(Locale.getDefault()))) {
-                    return qs.get(k).toArray(new String[0]);
+                    return qs.get(k);
                 }
             }
         }
 
-        return new String[0];
+        return new ArrayList<String>();
     }
 
     protected Map<String, String[]> generateParameterMap(MultiValuedTreeMap<String, String> qs, ContainerConfig config) {
-        Map<String, String[]> output = new HashMap<>();
+        Map<String, String[]> output;
 
-        Map<String, List<String>> params = getFormUrlEncodedParametersMap();
-        params.entrySet().stream().parallel().forEach(e -> {
-            output.put(e.getKey(), e.getValue().toArray(new String[0]));
-        });
+        Map<String, List<String>> formEncodedParams = getFormUrlEncodedParametersMap();
+
+        if (qs == null) {
+            // Just transform the List<String> values to String[]
+            output = formEncodedParams.entrySet().stream()
+                .collect(Collectors.toMap(Map.Entry::getKey, (e) -> e.getValue().toArray(new String[0])));
+        } else {
+            Map<String, List<String>> queryStringParams;
+            if (config.isQueryStringCaseSensitive()) {
+                queryStringParams = qs;
+            } else {
+                // If it's case insensitive, we check the entire map on every parameter
+                queryStringParams = qs.entrySet().stream().parallel().collect(
+                    Collectors.toMap(
+                        Map.Entry::getKey,
+                        e -> getQueryParamValuesAsList(qs, e.getKey(), false)
+                    ));
+            }
+
+            // Merge formEncodedParams and queryStringParams Maps
+            output = Stream.of(formEncodedParams, queryStringParams).flatMap(m -> m.entrySet().stream())
+                .collect(
+                    Collectors.toMap(
+                        Map.Entry::getKey,
+                        e -> e.getValue().toArray(new String[0]),
+                        // If a parameter is in both Maps, we merge the list of values (and ultimately transform to String[])
+                        (formParam, queryParam) -> Stream.of(formParam, queryParam).flatMap(Stream::of).toArray(String[]::new)
+                    ));
 
-        if (qs != null) {
-            qs.keySet().stream().parallel().forEach(e -> {
-                List<String> newValues = new ArrayList<>();
-                if (output.containsKey(e)) {
-                    String[] values = output.get(e);
-                    newValues.addAll(Arrays.asList(values));
-                }
-                newValues.addAll(Arrays.asList(getQueryParamValues(qs, e, config.isQueryStringCaseSensitive())));
-                output.put(e, newValues.toArray(new String[0]));
-            });
         }
 
         return output;

From 1a0906f0db4d8083b2ac2fa2e5e11600d62dd9eb Mon Sep 17 00:00:00 2001
From: Renato Valenzuela <valerena@amazon.com>
Date: Wed, 18 Oct 2023 00:30:30 +0000
Subject: [PATCH 027/430] Add tests for generateParameterMap

---
 .../servlet/AwsHttpServletRequest.java        |   8 +-
 .../servlet/AwsHttpServletRequestTest.java    | 137 ++++++++++++++++++
 2 files changed, 143 insertions(+), 2 deletions(-)

diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java
index 4ba1f3cbb..7a44fa95e 100644
--- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java
@@ -548,7 +548,11 @@ protected Map<String, Part> getMultipartFormParametersMap() {
     }
 
     protected String[] getQueryParamValues(MultiValuedTreeMap<String, String> qs, String key, boolean isCaseSensitive) {
-        return getQueryParamValuesAsList(qs, key, isCaseSensitive).toArray(new String[0]);
+        List<String> value = getQueryParamValuesAsList(qs, key, isCaseSensitive);
+        if (value == null){
+            return null;
+        }
+        return value.toArray(new String[0]);
     }
 
     protected List<String> getQueryParamValuesAsList(MultiValuedTreeMap<String, String> qs, String key, boolean isCaseSensitive) {
@@ -564,7 +568,7 @@ protected List<String> getQueryParamValuesAsList(MultiValuedTreeMap<String, Stri
             }
         }
 
-        return new ArrayList<String>();
+        return Collections.emptyList();
     }
 
     protected Map<String, String[]> generateParameterMap(MultiValuedTreeMap<String, String> qs, ContainerConfig config) {
diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequestTest.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequestTest.java
index 051c12fc6..2bc433041 100644
--- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequestTest.java
+++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequestTest.java
@@ -1,6 +1,7 @@
 package com.amazonaws.serverless.proxy.internal.servlet;
 
 import com.amazonaws.serverless.proxy.model.AwsProxyRequest;
+import com.amazonaws.serverless.proxy.model.MultiValuedTreeMap;
 import com.amazonaws.serverless.proxy.internal.testutils.AwsProxyRequestBuilder;
 import com.amazonaws.serverless.proxy.internal.testutils.MockLambdaContext;
 import com.amazonaws.serverless.proxy.model.ContainerConfig;
@@ -15,6 +16,8 @@
 
 import java.util.Base64;
 import java.util.List;
+import java.util.Map;
+import java.util.Arrays;
 
 
 public class AwsHttpServletRequestTest {
@@ -33,6 +36,14 @@ public class AwsHttpServletRequestTest {
             .queryString("one", "two").queryString("json", "{\"name\":\"faisal\"}").build();
     private static final AwsProxyRequest multipleParams = new AwsProxyRequestBuilder("/test", "GET")
             .queryString("one", "two").queryString("one", "three").queryString("json", "{\"name\":\"faisal\"}").build();
+    private static final AwsProxyRequest formEncodedAndQueryString = new AwsProxyRequestBuilder("/test", "POST")
+            .queryString("one", "two").queryString("one", "three")
+            .queryString("five", "six")
+            .form("one", "four")
+            .form("seven", "eight").build();
+    private static final AwsProxyRequest differentCasing = new AwsProxyRequestBuilder("/test", "POST")
+            .queryString("one", "two").queryString("one", "three")
+            .queryString("ONE", "four").build();
 
     private static final MockLambdaContext mockContext = new MockLambdaContext();
 
@@ -182,4 +193,130 @@ void queryStringWithMultipleValues_generateQueryString_validQuery() {
         assertTrue(parsedString.contains("json=%7B%22name%22%3A%22faisal%22%7D"));
         assertTrue(parsedString.contains("&") && parsedString.indexOf("&") > 0 && parsedString.indexOf("&") < parsedString.length());
     }
+
+    @Test
+    void parameterMap_generateParameterMap_validQuery() {
+        AwsProxyHttpServletRequest request = new AwsProxyHttpServletRequest(queryString, mockContext, null, config);
+
+        Map<String, String[]> paramMap = null;
+        try {
+            paramMap = request.generateParameterMap(request.getAwsProxyRequest().getMultiValueQueryStringParameters(), config);
+        } catch (Exception e) {
+            e.printStackTrace();
+            fail("Could not generate parameter map");
+        }
+        assertArrayEquals(new String[]{"two"}, paramMap.get("one"));
+        assertArrayEquals(new String[]{"four"}, paramMap.get("three"));
+        assertTrue(paramMap.size() == 2);
+    }
+
+    @Test
+    void parameterMap_generateParameterMap_nullParameter() {
+        AwsProxyHttpServletRequest request = new AwsProxyHttpServletRequest(queryStringNullValue, mockContext, null, config);
+        Map<String, String[]> paramMap = null;
+        try {
+            paramMap = request.generateParameterMap(request.getAwsProxyRequest().getMultiValueQueryStringParameters(), config);
+        } catch (Exception e) {
+            e.printStackTrace();
+            fail("Could not generate parameter map");
+        }
+
+        assertArrayEquals(new String[]{"two"}, paramMap.get("one"));
+        assertArrayEquals(new String[]{null}, paramMap.get("three"));
+        assertTrue(paramMap.size() == 2);
+    }
+
+    @Test
+    void parameterMapWithEncodedParams_generateParameterMap_validQuery() {
+        AwsProxyHttpServletRequest request = new AwsProxyHttpServletRequest(encodedQueryString, mockContext, null, config);
+
+        Map<String, String[]> paramMap = null;
+        try {
+            paramMap = request.generateParameterMap(request.getAwsProxyRequest().getMultiValueQueryStringParameters(), config);
+        } catch (Exception e) {
+            e.printStackTrace();
+            fail("Could not generate parameter map");
+        }
+
+        assertArrayEquals(new String[]{"two"}, paramMap.get("one"));
+        assertArrayEquals(new String[]{"{\"name\":\"faisal\"}"}, paramMap.get("json"));
+        assertTrue(paramMap.size() == 2);
+    }
+
+    @Test
+    void parameterMapWithMultipleValues_generateParameterMap_validQuery() {
+        AwsProxyHttpServletRequest request = new AwsProxyHttpServletRequest(multipleParams, mockContext, null, config);
+
+        Map<String, String[]> paramMap = null;
+        try {
+            paramMap = request.generateParameterMap(request.getAwsProxyRequest().getMultiValueQueryStringParameters(), config);
+        } catch (Exception e) {
+            e.printStackTrace();
+            fail("Could not generate parameter map");
+        }
+        assertArrayEquals(new String[]{"two", "three"}, paramMap.get("one"));
+        assertArrayEquals(new String[]{"{\"name\":\"faisal\"}"}, paramMap.get("json"));
+        assertTrue(paramMap.size() == 2);
+    }
+
+    @Test
+    void parameterMap_generateParameterMap_formEncodedAndQueryString() {
+        AwsProxyHttpServletRequest request = new AwsProxyHttpServletRequest(formEncodedAndQueryString, mockContext, null, config);
+
+        Map<String, String[]> paramMap = null;
+        try {
+            paramMap = request.generateParameterMap(request.getAwsProxyRequest().getMultiValueQueryStringParameters(), config);
+        } catch (Exception e) {
+            e.printStackTrace();
+            fail("Could not generate parameter map");
+        }
+        // Combines form encoded parameters (one=four) with query string (one=two,three)
+        // The order between them is not officially guaranteed (it could be four,two,three or two,three,four)
+        // Current implementation gives form encoded parameters first
+        assertArrayEquals(new String[]{"four", "two", "three"}, paramMap.get("one"));
+        assertArrayEquals(new String[]{"six"}, paramMap.get("five"));
+        assertArrayEquals(new String[]{"eight"}, paramMap.get("seven"));
+        assertTrue(paramMap.size() == 3);
+    }
+
+    @Test
+    void parameterMap_generateParameterMap_differentCasing() {
+        AwsProxyHttpServletRequest request = new AwsProxyHttpServletRequest(differentCasing, mockContext, null, config);
+
+        Map<String, String[]> paramMap = null;
+        try {
+            paramMap = request.generateParameterMap(request.getAwsProxyRequest().getMultiValueQueryStringParameters(), config);
+        } catch (Exception e) {
+            e.printStackTrace();
+            fail("Could not generate parameter map");
+        }
+        // If a parameter is duplicated but with a different casing, it's replaced with only one of them
+        assertArrayEquals(paramMap.get("one"), paramMap.get("ONE"));
+        assertTrue(paramMap.size() == 2);
+    }
+
+    @Test
+    void queryParamValues_getQueryParamValues() {
+        AwsProxyHttpServletRequest request = new AwsProxyHttpServletRequest(new AwsProxyRequest(), mockContext, null);
+        MultiValuedTreeMap<String, String> map = new MultiValuedTreeMap<>();
+        map.add("test", "test");
+        map.add("test", "test2");
+        String[] result1 = request.getQueryParamValues(map, "test", true);
+        assertArrayEquals(new String[]{"test", "test2"}, result1);
+        String[] result2 = request.getQueryParamValues(map, "TEST", true);
+        assertNull(result2);
+    }
+
+    @Test
+    void queryParamValues_getQueryParamValues_caseInsensitive() {
+        AwsProxyHttpServletRequest request = new AwsProxyHttpServletRequest(new AwsProxyRequest(), mockContext, null);
+        MultiValuedTreeMap<String, String> map = new MultiValuedTreeMap<>();
+        map.add("test", "test");
+        map.add("test", "test2");
+        String[] result1 = request.getQueryParamValues(map, "test", false);
+        assertArrayEquals(new String[]{"test", "test2"}, result1);
+        String[] result2 = request.getQueryParamValues(map, "TEST", false);
+        assertArrayEquals(new String[]{"test", "test2"}, result2);
+    }
+
 }

From eb0d9d9b35bf27c1cc61ac02d541d0ae3d72a6db Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Fri, 20 Oct 2023 15:27:09 +0200
Subject: [PATCH 028/430] chore(deps): Update Spring dependencies (framework to
 6.0.13, security to 6.1.5, boot to 3.1.5)

---
 aws-serverless-java-container-core/pom.xml                  | 2 +-
 aws-serverless-java-container-spring/pom.xml                | 4 ++--
 aws-serverless-java-container-springboot3/pom.xml           | 6 +++---
 .../src/main/resources/archetype-resources/build.gradle     | 4 ++--
 .../src/main/resources/archetype-resources/pom.xml          | 2 +-
 .../src/main/resources/archetype-resources/build.gradle     | 2 +-
 .../src/main/resources/archetype-resources/pom.xml          | 2 +-
 samples/spring/pet-store/build.gradle                       | 4 ++--
 samples/spring/pet-store/pom.xml                            | 2 +-
 samples/springboot3/alt-pet-store/build.gradle              | 2 +-
 samples/springboot3/alt-pet-store/pom.xml                   | 2 +-
 samples/springboot3/pet-store/build.gradle                  | 2 +-
 samples/springboot3/pet-store/pom.xml                       | 2 +-
 13 files changed, 18 insertions(+), 18 deletions(-)

diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml
index 5d23fcbf6..f76f5dde9 100644
--- a/aws-serverless-java-container-core/pom.xml
+++ b/aws-serverless-java-container-core/pom.xml
@@ -60,7 +60,7 @@
         <dependency>
             <groupId>org.springframework.security</groupId>
             <artifactId>spring-security-web</artifactId>
-            <version>6.1.4</version>
+            <version>6.1.5</version>
             <scope>test</scope>
         </dependency>
     </dependencies>
diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml
index 2e590866b..bef9bbdd5 100644
--- a/aws-serverless-java-container-spring/pom.xml
+++ b/aws-serverless-java-container-spring/pom.xml
@@ -16,8 +16,8 @@
     </parent>
 
     <properties>
-        <spring.version>6.0.12</spring.version>
-        <spring-security.version>6.1.4</spring-security.version>
+        <spring.version>6.0.13</spring.version>
+        <spring-security.version>6.1.5</spring-security.version>
     </properties>
 
     <dependencies>
diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml
index 974345fe7..e9e4b843e 100644
--- a/aws-serverless-java-container-springboot3/pom.xml
+++ b/aws-serverless-java-container-springboot3/pom.xml
@@ -15,9 +15,9 @@
     <version>2.0.0-SNAPSHOT</version>
 
     <properties>
-        <spring.version>6.0.12</spring.version>
-        <springboot.version>3.1.4</springboot.version>
-        <springsecurity.version>6.1.4</springsecurity.version>
+        <spring.version>6.0.13</spring.version>
+        <springboot.version>3.1.5</springboot.version>
+        <springsecurity.version>6.1.5</springsecurity.version>
     </properties>
 
     <dependencies>
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
index bc76f577b..ced65289d 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
@@ -7,8 +7,8 @@ repositories {
 
 dependencies {
   implementation (
-          'org.springframework:spring-webmvc:6.0.12',
-          'org.springframework:spring-context:6.0.12',
+          'org.springframework:spring-webmvc:6.0.13',
+          'org.springframework:spring-context:6.0.13',
           'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)',
           'org.apache.logging.log4j:log4j-core:2.20.0',
           'org.apache.logging.log4j:log4j-api:2.20.0',
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
index 46b4927d5..496d9b9ea 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
@@ -16,7 +16,7 @@
     <properties>
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
-        <spring.version>6.0.12</spring.version>
+        <spring.version>6.0.13</spring.version>
         <junit.version>5.10.0</junit.version>
         <log4j.version>2.20.0</log4j.version>
     </properties>
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
index f6972663b..f669d0ae5 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
@@ -9,7 +9,7 @@ repositories {
 
 dependencies {
   implementation (
-          'org.springframework.boot:spring-boot-starter-web:3.1.4',
+          'org.springframework.boot:spring-boot-starter-web:3.1.5',
           'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)',
   )
 
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
index 13c887c4c..ec495ce4c 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
@@ -16,7 +16,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.1.4</version>
+        <version>3.1.5</version>
     </parent>
 
     <properties>
diff --git a/samples/spring/pet-store/build.gradle b/samples/spring/pet-store/build.gradle
index 072b80965..6820a8052 100644
--- a/samples/spring/pet-store/build.gradle
+++ b/samples/spring/pet-store/build.gradle
@@ -7,8 +7,8 @@ repositories {
 
 dependencies {
   implementation (
-          'org.springframework:spring-webmvc:6.0.12',
-          'org.springframework:spring-context:6.0.12',
+          'org.springframework:spring-webmvc:6.0.13',
+          'org.springframework:spring-context:6.0.13',
           'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)',
           'org.apache.logging.log4j:log4j-core:2.20.0',
           'org.apache.logging.log4j:log4j-api:2.20.0',
diff --git a/samples/spring/pet-store/pom.xml b/samples/spring/pet-store/pom.xml
index 27d7a5d30..5fb5c3334 100644
--- a/samples/spring/pet-store/pom.xml
+++ b/samples/spring/pet-store/pom.xml
@@ -24,7 +24,7 @@
     </licenses>
 
     <properties>
-        <spring.version>6.0.12</spring.version>
+        <spring.version>6.0.13</spring.version>
         <log4j.version>2.20.0</log4j.version>
         <maven.compiler.source>17</maven.compiler.source>
         <maven.compiler.target>17</maven.compiler.target>
diff --git a/samples/springboot3/alt-pet-store/build.gradle b/samples/springboot3/alt-pet-store/build.gradle
index 65386b0fa..1d16c3ec3 100644
--- a/samples/springboot3/alt-pet-store/build.gradle
+++ b/samples/springboot3/alt-pet-store/build.gradle
@@ -9,7 +9,7 @@ repositories {
 
 dependencies {
   implementation (
-          implementation('org.springframework.boot:spring-boot-starter-web:3.1.4') {
+          implementation('org.springframework.boot:spring-boot-starter-web:3.1.5') {
             exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat'
           },
           'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)',
diff --git a/samples/springboot3/alt-pet-store/pom.xml b/samples/springboot3/alt-pet-store/pom.xml
index c8550052d..850f6e5e8 100644
--- a/samples/springboot3/alt-pet-store/pom.xml
+++ b/samples/springboot3/alt-pet-store/pom.xml
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.1.4</version>
+        <version>3.1.5</version>
     </parent>
 
     <licenses>
diff --git a/samples/springboot3/pet-store/build.gradle b/samples/springboot3/pet-store/build.gradle
index 65386b0fa..1d16c3ec3 100644
--- a/samples/springboot3/pet-store/build.gradle
+++ b/samples/springboot3/pet-store/build.gradle
@@ -9,7 +9,7 @@ repositories {
 
 dependencies {
   implementation (
-          implementation('org.springframework.boot:spring-boot-starter-web:3.1.4') {
+          implementation('org.springframework.boot:spring-boot-starter-web:3.1.5') {
             exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat'
           },
           'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)',
diff --git a/samples/springboot3/pet-store/pom.xml b/samples/springboot3/pet-store/pom.xml
index 2cab5ce93..7d2bdd35d 100644
--- a/samples/springboot3/pet-store/pom.xml
+++ b/samples/springboot3/pet-store/pom.xml
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.1.4</version>
+        <version>3.1.5</version>
     </parent>
 
     <licenses>

From 27a4e9336a1acf99a875972d5114fcda2f1627cb Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Fri, 20 Oct 2023 13:29:04 +0000
Subject: [PATCH 029/430] chore(deps): bump org.jacoco:jacoco-maven-plugin from
 0.8.10 to 0.8.11

Bumps [org.jacoco:jacoco-maven-plugin](https://github.com/jacoco/jacoco) from 0.8.10 to 0.8.11.
- [Release notes](https://github.com/jacoco/jacoco/releases)
- [Commits](https://github.com/jacoco/jacoco/compare/v0.8.10...v0.8.11)

---
updated-dependencies:
- dependency-name: org.jacoco:jacoco-maven-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 450e01945..95487e21c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -278,7 +278,7 @@
                 <plugin>
                     <groupId>org.jacoco</groupId>
                     <artifactId>jacoco-maven-plugin</artifactId>
-                    <version>0.8.10</version>
+                    <version>0.8.11</version>
                 </plugin>
             </plugins>
         </pluginManagement>

From cbd37a414f2ba361b4df972352d99908c80d58ce Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Fri, 20 Oct 2023 18:03:27 +0200
Subject: [PATCH 030/430] chore(deps): Update Jackson dependency to 2.15.3

---
 .../src/main/resources/archetype-resources/build.gradle       | 2 +-
 .../src/main/resources/archetype-resources/pom.xml            | 2 +-
 .../src/main/resources/archetype-resources/build.gradle       | 2 +-
 .../src/main/resources/archetype-resources/pom.xml            | 2 +-
 .../src/main/resources/archetype-resources/build.gradle       | 2 +-
 .../src/main/resources/archetype-resources/build.gradle       | 4 ++--
 .../src/main/resources/archetype-resources/pom.xml            | 2 +-
 pom.xml                                                       | 2 +-
 samples/jersey/pet-store/build.gradle                         | 2 +-
 samples/jersey/pet-store/pom.xml                              | 2 +-
 samples/spark/pet-store/build.gradle                          | 2 +-
 samples/spark/pet-store/pom.xml                               | 2 +-
 samples/spring/pet-store/build.gradle                         | 2 +-
 samples/struts/pet-store/build.gradle                         | 4 ++--
 samples/struts/pet-store/pom.xml                              | 2 +-
 15 files changed, 17 insertions(+), 17 deletions(-)

diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
index 5552cbef4..27c7f31cf 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
@@ -8,7 +8,7 @@ repositories {
 dependencies {
   implementation (
           'com.amazonaws.serverless:aws-serverless-java-container-jersey:[2.0-SNAPSHOT,)',
-          'com.fasterxml.jackson.core:jackson-databind:2.15.2',
+          'com.fasterxml.jackson.core:jackson-databind:2.15.3',
   )
 
   implementation("org.glassfish.jersey.media:jersey-media-json-jackson:3.1.3") {
diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
index eb8bc20a6..ad42e4f71 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
@@ -16,7 +16,7 @@
         <maven.compiler.target>1.8</maven.compiler.target>
 
         <jersey.version>3.1.3</jersey.version>
-        <jackson.version>2.15.2</jackson.version>
+        <jackson.version>2.15.3</jackson.version>
         <junit.version>5.10.0</junit.version>
     </properties>
 
diff --git a/aws-serverless-spark-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-spark-archetype/src/main/resources/archetype-resources/build.gradle
index fb1d73c1f..1f42e3ea6 100644
--- a/aws-serverless-spark-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-spark-archetype/src/main/resources/archetype-resources/build.gradle
@@ -9,7 +9,7 @@ dependencies {
   implementation (
           'com.sparkjava:spark-core:2.9.4',
           'com.amazonaws.serverless:aws-serverless-java-container-spark:[1.0,)',
-          'com.fasterxml.jackson.core:jackson-databind:2.15.2',
+          'com.fasterxml.jackson.core:jackson-databind:2.15.3',
   )
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
diff --git a/aws-serverless-spark-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-spark-archetype/src/main/resources/archetype-resources/pom.xml
index cf4f75a7a..cd429aa73 100644
--- a/aws-serverless-spark-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-spark-archetype/src/main/resources/archetype-resources/pom.xml
@@ -16,7 +16,7 @@
     <properties>
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
-        <jackson.version>2.15.2</jackson.version>
+        <jackson.version>2.15.3</jackson.version>
         <spark.version>2.9.4</spark.version>
         <junit.version>5.10.0</junit.version>
     </properties>
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
index ced65289d..b100c4fd7 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
@@ -13,7 +13,7 @@ dependencies {
           'org.apache.logging.log4j:log4j-core:2.20.0',
           'org.apache.logging.log4j:log4j-api:2.20.0',
           'org.apache.logging.log4j:log4j-slf4j-impl:2.20.0',
-          'com.fasterxml.jackson.core:jackson-databind:2.15.2',
+          'com.fasterxml.jackson.core:jackson-databind:2.15.3',
           'com.amazonaws:aws-lambda-java-log4j2:1.5.1',
   )
 
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
index a01f0a00d..d0303ac4c 100644
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
@@ -34,8 +34,8 @@ dependencies {
     exclude group: 'org.apache.logging.log4j', module: 'log4j-api'
   }
   implementation ('org.hibernate.validator:hibernate-validator:6.1.7.Final')
-  implementation ('com.fasterxml.jackson.core:jackson-databind:2.15.2')
-  implementation ('com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.15.2')
+  implementation ('com.fasterxml.jackson.core:jackson-databind:2.15.3')
+  implementation ('com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.15.3')
   implementation ('org.apache.logging.log4j:log4j-core:2.20.0')
   implementation ('org.apache.logging.log4j:log4j-api:2.20.0')
   implementation ('org.apache.logging.log4j:log4j-slf4j-impl:2.20.0')
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
index a228dd923..688790e75 100644
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
@@ -16,7 +16,7 @@
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
         <struts.version>6.1.2.1</struts.version>
-        <jackson.version>2.15.2</jackson.version>
+        <jackson.version>2.15.3</jackson.version>
         <junit.version>5.10.0</junit.version>
         <log4j.version>2.20.0</log4j.version>
     </properties>
diff --git a/pom.xml b/pom.xml
index 450e01945..3d730e683 100644
--- a/pom.xml
+++ b/pom.xml
@@ -78,7 +78,7 @@
     <properties>
         <jacoco.minCoverage>0.7</jacoco.minCoverage>
         <dependencyCheck.version>8.4.0</dependencyCheck.version>
-        <jackson.version>2.15.2</jackson.version>
+        <jackson.version>2.15.3</jackson.version>
         <slf4j.version>2.0.9</slf4j.version>
         <junit.version>5.10.0</junit.version>
         <mockito.version>5.6.0</mockito.version>
diff --git a/samples/jersey/pet-store/build.gradle b/samples/jersey/pet-store/build.gradle
index 674394de4..2b3c702a4 100644
--- a/samples/jersey/pet-store/build.gradle
+++ b/samples/jersey/pet-store/build.gradle
@@ -8,7 +8,7 @@ repositories {
 dependencies {
   implementation (
           'com.amazonaws.serverless:aws-serverless-java-container-jersey:[2.0-SNAPSHOT,)',
-          'com.fasterxml.jackson.core:jackson-databind:2.15.2',
+          'com.fasterxml.jackson.core:jackson-databind:2.15.3',
   )
 
   implementation("org.glassfish.jersey.media:jersey-media-json-jackson:3.1.3") {
diff --git a/samples/jersey/pet-store/pom.xml b/samples/jersey/pet-store/pom.xml
index 258675f87..fa03cc55a 100644
--- a/samples/jersey/pet-store/pom.xml
+++ b/samples/jersey/pet-store/pom.xml
@@ -27,7 +27,7 @@
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
         <jersey.version>3.1.3</jersey.version>
-        <jackson.version>2.15.2</jackson.version>
+        <jackson.version>2.15.3</jackson.version>
     </properties>
 
     <dependencies>
diff --git a/samples/spark/pet-store/build.gradle b/samples/spark/pet-store/build.gradle
index 2d0dfaea0..b2a39c6d6 100644
--- a/samples/spark/pet-store/build.gradle
+++ b/samples/spark/pet-store/build.gradle
@@ -9,7 +9,7 @@ dependencies {
   implementation (
           'com.sparkjava:spark-core:2.9.4',
           'com.amazonaws.serverless:aws-serverless-java-container-spark:[1.0,)',
-          'com.fasterxml.jackson.core:jackson-databind:2.15.2',
+          'com.fasterxml.jackson.core:jackson-databind:2.15.3',
   )
 }
 
diff --git a/samples/spark/pet-store/pom.xml b/samples/spark/pet-store/pom.xml
index 025640202..26cdd2fe5 100644
--- a/samples/spark/pet-store/pom.xml
+++ b/samples/spark/pet-store/pom.xml
@@ -26,7 +26,7 @@
     <properties>
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
-        <jackson.version>2.15.2</jackson.version>
+        <jackson.version>2.15.3</jackson.version>
         <spark.version>2.9.1</spark.version>
     </properties>
 
diff --git a/samples/spring/pet-store/build.gradle b/samples/spring/pet-store/build.gradle
index 6820a8052..e06663057 100644
--- a/samples/spring/pet-store/build.gradle
+++ b/samples/spring/pet-store/build.gradle
@@ -13,7 +13,7 @@ dependencies {
           'org.apache.logging.log4j:log4j-core:2.20.0',
           'org.apache.logging.log4j:log4j-api:2.20.0',
           'org.apache.logging.log4j:log4j-slf4j-impl:2.20.0',
-          'com.fasterxml.jackson.core:jackson-databind:2.15.2',
+          'com.fasterxml.jackson.core:jackson-databind:2.15.3',
           'com.amazonaws:aws-lambda-java-log4j2:1.5.1',
   )
 }
diff --git a/samples/struts/pet-store/build.gradle b/samples/struts/pet-store/build.gradle
index b428d9847..3987043cf 100644
--- a/samples/struts/pet-store/build.gradle
+++ b/samples/struts/pet-store/build.gradle
@@ -22,8 +22,8 @@ dependencies {
           'org.hibernate.validator:hibernate-validator:6.1.7.Final',
           'org.glassfish:javax.el:3.0.0',
           'javax.el:javax.el-api:3.0.0',
-          'com.fasterxml.jackson.core:jackson-databind:2.15.2',
-          'com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.15.2',
+          'com.fasterxml.jackson.core:jackson-databind:2.15.3',
+          'com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.15.3',
           'org.apache.logging.log4j:log4j-core:2.20.0',
           'org.apache.logging.log4j:log4j-api:2.20.0',
           'com.amazonaws:aws-lambda-java-log4j2:1.5.1',
diff --git a/samples/struts/pet-store/pom.xml b/samples/struts/pet-store/pom.xml
index 80dff8fdd..096645c2a 100644
--- a/samples/struts/pet-store/pom.xml
+++ b/samples/struts/pet-store/pom.xml
@@ -27,7 +27,7 @@
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
         <struts.version>6.1.2.1</struts.version>
-        <jackson.version>2.15.2</jackson.version>
+        <jackson.version>2.15.3</jackson.version>
         <junit.version>4.13.2</junit.version>
         <log4j.version>2.20.0</log4j.version>
     </properties>

From 49897085930c62ea98d7213733861ee7e467422c Mon Sep 17 00:00:00 2001
From: Davison <ridaviso@amazon.com>
Date: Fri, 20 Oct 2023 21:43:15 +0200
Subject: [PATCH 031/430] depricate async init

---
 .../proxy/AsyncInitializationWrapper.java          | 14 ++++++++++++++
 .../ServletLambdaContainerHandlerBuilder.java      |  7 ++++---
 .../proxy/spring/springslowapp/LambdaHandler.java  |  1 -
 .../proxy/spring/slowapp/LambdaHandler.java        |  1 -
 .../src/main/java/StreamLambdaHandler.java         |  6 ------
 .../sample/springboot3/StreamLambdaHandler.java    |  7 -------
 6 files changed, 18 insertions(+), 18 deletions(-)

diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/AsyncInitializationWrapper.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/AsyncInitializationWrapper.java
index d1e97909e..b6b9b037d 100644
--- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/AsyncInitializationWrapper.java
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/AsyncInitializationWrapper.java
@@ -38,8 +38,13 @@
  * seconds has already been used up.
  */
 public class AsyncInitializationWrapper extends InitializationWrapper {
+
     private static final int DEFAULT_INIT_GRACE_TIME_MS = 150;
     private static final String INIT_GRACE_TIME_ENVIRONMENT_VARIABLE_NAME = "AWS_SERVERLESS_JAVA_CONTAINER_INIT_GRACE_TIME";
+    private static final String INITIALIZATION_TYPE_ENVIRONMENT_VARIABLE_NAME = "AWS_LAMBDA_INITIALIZATION_TYPE";
+    private static final String INITIALIZATION_TYPE_ON_DEMAND = "on-demand";
+    private static final String INITIALIZATION_TYPE = System.getenv().getOrDefault(INITIALIZATION_TYPE_ENVIRONMENT_VARIABLE_NAME,INITIALIZATION_TYPE_ON_DEMAND);
+    private static final boolean ASYNC_INIT_DISABLED = !INITIALIZATION_TYPE.equals(INITIALIZATION_TYPE_ON_DEMAND);
     private static final int INIT_GRACE_TIME_MS = Integer.parseInt(System.getenv().getOrDefault(
             INIT_GRACE_TIME_ENVIRONMENT_VARIABLE_NAME, Integer.toString(DEFAULT_INIT_GRACE_TIME_MS)));
     private static final int LAMBDA_MAX_INIT_TIME_MS = 10_000;
@@ -48,6 +53,7 @@ public class AsyncInitializationWrapper extends InitializationWrapper {
     private final long actualStartTime;
     private Logger log = LoggerFactory.getLogger(AsyncInitializationWrapper.class);
 
+
     /**
      * Creates a new instance of the async initializer.
      * @param startTime The epoch ms start time of the Lambda function, this should be measured as close as possible to
@@ -67,6 +73,11 @@ public AsyncInitializationWrapper() {
 
     @Override
     public void start(LambdaContainerHandler handler) throws ContainerInitializationException {
+        if(ASYNC_INIT_DISABLED){
+            log.info("Async init disabled due to \"{}\" initialization", INITIALIZATION_TYPE);
+            super.start(handler);
+            return;
+        }
         initializationLatch = new CountDownLatch(1);
         AsyncInitializer initializer = new AsyncInitializer(initializationLatch, handler);
         Thread initThread = new Thread(initializer);
@@ -96,6 +107,9 @@ public long getActualStartTimeMs() {
 
     @Override
     public CountDownLatch getInitializationLatch() {
+        if(ASYNC_INIT_DISABLED){
+            return super.getInitializationLatch();
+        }
         return initializationLatch;
     }
 
diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/ServletLambdaContainerHandlerBuilder.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/ServletLambdaContainerHandlerBuilder.java
index b44ec7f26..f39ea3acd 100644
--- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/ServletLambdaContainerHandlerBuilder.java
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/ServletLambdaContainerHandlerBuilder.java
@@ -92,7 +92,7 @@ protected void validate() throws ContainerInitializationException {
      * @return A populated builder
      */
     public Builder defaultProxy() {
-        initializationWrapper(new InitializationWrapper())
+        initializationWrapper(new AsyncInitializationWrapper())
                 .requestReader((RequestReader<RequestType, ContainerRequestType>) new AwsProxyHttpServletRequestReader())
                 .responseWriter((ResponseWriter<AwsHttpServletResponse, ResponseType>) new AwsProxyHttpServletResponseWriter())
                 .securityContextWriter((SecurityContextWriter<RequestType>) new AwsProxySecurityContextWriter())
@@ -108,7 +108,7 @@ public Builder defaultProxy() {
      * @return A populated builder
      */
     public Builder defaultHttpApiV2Proxy() {
-        initializationWrapper(new InitializationWrapper())
+        initializationWrapper(new AsyncInitializationWrapper())
                 .requestReader((RequestReader<RequestType, ContainerRequestType>) new AwsHttpApiV2HttpServletRequestReader())
                 .responseWriter((ResponseWriter<AwsHttpServletResponse, ResponseType>) new AwsProxyHttpServletResponseWriter(true))
                 .securityContextWriter((SecurityContextWriter<RequestType>) new AwsHttpApiV2SecurityContextWriter())
@@ -165,7 +165,7 @@ public Builder responseTypeClass(Class<ResponseType> responseType) {
     /**
      * Uses an async initializer with the given start time to calculate the 10 seconds timeout.
      *
-     * @deprecated As of release 1.5 this method is deprecated in favor of the parameters-less one {@link ServletLambdaContainerHandlerBuilder#asyncInit()}.
+     * @deprecated As of release 2.1 this method is deprecated. Initializer is always async if running in on-demand.
      * @param actualStartTime An epoch in milliseconds that should be used to calculate the 10 seconds timeout since the start of the application
      * @return A builder configured to use the async initializer
      */
@@ -178,6 +178,7 @@ public Builder asyncInit(long actualStartTime) {
     /**
      * Uses a new {@link AsyncInitializationWrapper} with the no-parameter constructor that takes the actual JVM
      * start time
+     * @deprecated As of release 2.1 this method is deprecated. Initializer is always async if running in on-demand.
      * @return A builder configured to use an async initializer
      */
     public Builder asyncInit() {
diff --git a/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/springslowapp/LambdaHandler.java b/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/springslowapp/LambdaHandler.java
index 935954d0f..0607c6f17 100644
--- a/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/springslowapp/LambdaHandler.java
+++ b/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/springslowapp/LambdaHandler.java
@@ -18,7 +18,6 @@ public LambdaHandler() throws ContainerInitializationException {
         long startTime = Instant.now().toEpochMilli();
         handler = new SpringProxyHandlerBuilder<AwsProxyRequest>()
                 .defaultProxy()
-                .asyncInit()
                 .configurationClasses(SlowAppConfig.class)
                 .buildAndInitialize();
         constructorTime = Instant.now().toEpochMilli() - startTime;
diff --git a/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/slowapp/LambdaHandler.java b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/slowapp/LambdaHandler.java
index ec6993a7d..22f75e7a9 100644
--- a/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/slowapp/LambdaHandler.java
+++ b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/slowapp/LambdaHandler.java
@@ -21,7 +21,6 @@ public LambdaHandler() {
             System.out.println("startCall: " + startTime);
             handler = new SpringBootProxyHandlerBuilder<AwsProxyRequest>()
                     .defaultProxy()
-                    .asyncInit()
                     .springBootApplication(SlowTestApplication.class)
                     .buildAndInitialize();
             constructorTime = Instant.now().toEpochMilli() - startTime;
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/src/main/java/StreamLambdaHandler.java b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/src/main/java/StreamLambdaHandler.java
index dca9650d3..e022540c1 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/src/main/java/StreamLambdaHandler.java
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/src/main/java/StreamLambdaHandler.java
@@ -18,12 +18,6 @@ public class StreamLambdaHandler implements RequestStreamHandler {
     static {
         try {
             handler = SpringBootLambdaContainerHandler.getAwsProxyHandler(Application.class);
-            // For applications that take longer than 10 seconds to start, use the async builder:
-            // handler = new SpringBootProxyHandlerBuilder<AwsProxyRequest>()
-            //                    .defaultProxy()
-            //                    .asyncInit()
-            //                    .springBootApplication(Application.class)
-            //                    .buildAndInitialize();
         } catch (ContainerInitializationException e) {
             // if we fail here. We re-throw the exception to force another cold start
             e.printStackTrace();
diff --git a/samples/springboot3/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/StreamLambdaHandler.java b/samples/springboot3/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/StreamLambdaHandler.java
index 7f329357a..a65c6f1ec 100644
--- a/samples/springboot3/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/StreamLambdaHandler.java
+++ b/samples/springboot3/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/StreamLambdaHandler.java
@@ -25,13 +25,6 @@ public class StreamLambdaHandler implements RequestStreamHandler {
         try {
             handler = SpringBootLambdaContainerHandler.getAwsProxyHandler(Application.class);
 
-            // For applications that take longer than 10 seconds to start, use the async builder:
-            // handler = new SpringBootProxyHandlerBuilder<AwsProxyRequest>()
-            //                    .defaultProxy()
-            //                    .asyncInit()
-            //                    .springBootApplication(Application.class)
-            //                    .buildAndInitialize();
-
             // we use the onStartup method of the handler to register our custom filter
             handler.onStartup(servletContext -> {
                 FilterRegistration.Dynamic registration = servletContext.addFilter("CognitoIdentityFilter", CognitoIdentityFilter.class);

From 00f57292b53b439edb09883a6b1e7db4143c7058 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 23 Oct 2023 04:22:20 +0000
Subject: [PATCH 032/430] chore(deps): bump org.owasp:dependency-check-maven
 from 8.4.0 to 8.4.2

Bumps [org.owasp:dependency-check-maven](https://github.com/jeremylong/DependencyCheck) from 8.4.0 to 8.4.2.
- [Release notes](https://github.com/jeremylong/DependencyCheck/releases)
- [Changelog](https://github.com/jeremylong/DependencyCheck/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jeremylong/DependencyCheck/compare/v8.4.0...v8.4.2)

---
updated-dependencies:
- dependency-name: org.owasp:dependency-check-maven
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 3d730e683..8e5fb8f4c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -77,7 +77,7 @@
 
     <properties>
         <jacoco.minCoverage>0.7</jacoco.minCoverage>
-        <dependencyCheck.version>8.4.0</dependencyCheck.version>
+        <dependencyCheck.version>8.4.2</dependencyCheck.version>
         <jackson.version>2.15.3</jackson.version>
         <slf4j.version>2.0.9</slf4j.version>
         <junit.version>5.10.0</junit.version>

From 490cfb1a2e3a4a1578190401006956dfd144ef44 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Mon, 23 Oct 2023 12:39:58 +0200
Subject: [PATCH 033/430] chore(deps): Update Log4J dependency to 2.21.0

---
 .../src/main/resources/archetype-resources/build.gradle     | 6 +++---
 .../src/main/resources/archetype-resources/pom.xml          | 4 ++--
 .../src/main/resources/archetype-resources/build.gradle     | 6 +++---
 .../src/main/resources/archetype-resources/pom.xml          | 2 +-
 samples/spring/pet-store/build.gradle                       | 6 +++---
 samples/spring/pet-store/pom.xml                            | 4 ++--
 samples/struts/pet-store/build.gradle                       | 4 ++--
 samples/struts/pet-store/pom.xml                            | 2 +-
 8 files changed, 17 insertions(+), 17 deletions(-)

diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
index b100c4fd7..ee799ebd3 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
@@ -10,9 +10,9 @@ dependencies {
           'org.springframework:spring-webmvc:6.0.13',
           'org.springframework:spring-context:6.0.13',
           'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)',
-          'org.apache.logging.log4j:log4j-core:2.20.0',
-          'org.apache.logging.log4j:log4j-api:2.20.0',
-          'org.apache.logging.log4j:log4j-slf4j-impl:2.20.0',
+          'org.apache.logging.log4j:log4j-core:2.21.0',
+          'org.apache.logging.log4j:log4j-api:2.21.0',
+          'org.apache.logging.log4j:log4j-slf4j-impl:2.21.0',
           'com.fasterxml.jackson.core:jackson-databind:2.15.3',
           'com.amazonaws:aws-lambda-java-log4j2:1.5.1',
   )
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
index 496d9b9ea..833948e8b 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
@@ -18,7 +18,7 @@
         <maven.compiler.target>1.8</maven.compiler.target>
         <spring.version>6.0.13</spring.version>
         <junit.version>5.10.0</junit.version>
-        <log4j.version>2.20.0</log4j.version>
+        <log4j.version>2.21.0</log4j.version>
     </properties>
 
     <dependencies>
@@ -139,7 +139,7 @@
                             <dependency>
                                 <groupId>io.github.edwgiz</groupId>
                                 <artifactId>log4j-maven-shade-plugin-extensions</artifactId>
-                                <version>2.20.0</version>
+                                <version>2.21.0</version>
                             </dependency>
                         </dependencies>
                     </plugin>
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
index d0303ac4c..03e03125a 100644
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
@@ -36,9 +36,9 @@ dependencies {
   implementation ('org.hibernate.validator:hibernate-validator:6.1.7.Final')
   implementation ('com.fasterxml.jackson.core:jackson-databind:2.15.3')
   implementation ('com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.15.3')
-  implementation ('org.apache.logging.log4j:log4j-core:2.20.0')
-  implementation ('org.apache.logging.log4j:log4j-api:2.20.0')
-  implementation ('org.apache.logging.log4j:log4j-slf4j-impl:2.20.0')
+  implementation ('org.apache.logging.log4j:log4j-core:2.21.0')
+  implementation ('org.apache.logging.log4j:log4j-api:2.21.0')
+  implementation ('org.apache.logging.log4j:log4j-slf4j-impl:2.21.0')
   implementation ('com.amazonaws:aws-lambda-java-log4j2:1.5.1')
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
index 688790e75..ba17f19a0 100644
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
@@ -18,7 +18,7 @@
         <struts.version>6.1.2.1</struts.version>
         <jackson.version>2.15.3</jackson.version>
         <junit.version>5.10.0</junit.version>
-        <log4j.version>2.20.0</log4j.version>
+        <log4j.version>2.21.0</log4j.version>
     </properties>
 
     <dependencies>
diff --git a/samples/spring/pet-store/build.gradle b/samples/spring/pet-store/build.gradle
index e06663057..f70898308 100644
--- a/samples/spring/pet-store/build.gradle
+++ b/samples/spring/pet-store/build.gradle
@@ -10,9 +10,9 @@ dependencies {
           'org.springframework:spring-webmvc:6.0.13',
           'org.springframework:spring-context:6.0.13',
           'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)',
-          'org.apache.logging.log4j:log4j-core:2.20.0',
-          'org.apache.logging.log4j:log4j-api:2.20.0',
-          'org.apache.logging.log4j:log4j-slf4j-impl:2.20.0',
+          'org.apache.logging.log4j:log4j-core:2.21.0',
+          'org.apache.logging.log4j:log4j-api:2.21.0',
+          'org.apache.logging.log4j:log4j-slf4j-impl:2.21.0',
           'com.fasterxml.jackson.core:jackson-databind:2.15.3',
           'com.amazonaws:aws-lambda-java-log4j2:1.5.1',
   )
diff --git a/samples/spring/pet-store/pom.xml b/samples/spring/pet-store/pom.xml
index 5fb5c3334..8a6595ad5 100644
--- a/samples/spring/pet-store/pom.xml
+++ b/samples/spring/pet-store/pom.xml
@@ -25,7 +25,7 @@
 
     <properties>
         <spring.version>6.0.13</spring.version>
-        <log4j.version>2.20.0</log4j.version>
+        <log4j.version>2.21.0</log4j.version>
         <maven.compiler.source>17</maven.compiler.source>
         <maven.compiler.target>17</maven.compiler.target>
     </properties>
@@ -115,7 +115,7 @@
                             <dependency>
                                 <groupId>io.github.edwgiz</groupId>
                                 <artifactId>log4j-maven-shade-plugin-extensions</artifactId>
-                                <version>2.20.0</version>
+                                <version>2.21.0</version>
                             </dependency>
                         </dependencies>
                     </plugin>
diff --git a/samples/struts/pet-store/build.gradle b/samples/struts/pet-store/build.gradle
index 3987043cf..1749598d9 100644
--- a/samples/struts/pet-store/build.gradle
+++ b/samples/struts/pet-store/build.gradle
@@ -24,8 +24,8 @@ dependencies {
           'javax.el:javax.el-api:3.0.0',
           'com.fasterxml.jackson.core:jackson-databind:2.15.3',
           'com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.15.3',
-          'org.apache.logging.log4j:log4j-core:2.20.0',
-          'org.apache.logging.log4j:log4j-api:2.20.0',
+          'org.apache.logging.log4j:log4j-core:2.21.0',
+          'org.apache.logging.log4j:log4j-api:2.21.0',
           'com.amazonaws:aws-lambda-java-log4j2:1.5.1',
   )
 }
diff --git a/samples/struts/pet-store/pom.xml b/samples/struts/pet-store/pom.xml
index 096645c2a..5cdda8ecd 100644
--- a/samples/struts/pet-store/pom.xml
+++ b/samples/struts/pet-store/pom.xml
@@ -29,7 +29,7 @@
         <struts.version>6.1.2.1</struts.version>
         <jackson.version>2.15.3</jackson.version>
         <junit.version>4.13.2</junit.version>
-        <log4j.version>2.20.0</log4j.version>
+        <log4j.version>2.21.0</log4j.version>
     </properties>
 
     <dependencies>

From 362a3bb88d99fe33da6dffa34b5d459e683e19dc Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Mon, 23 Oct 2023 12:49:11 +0200
Subject: [PATCH 034/430] chore(deps): Update Log4J dependency to 2.21.0
 (revert log4j-maven-shade-plugin-extensions not yet published)

---
 samples/spring/pet-store/pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/samples/spring/pet-store/pom.xml b/samples/spring/pet-store/pom.xml
index 8a6595ad5..08062dc2e 100644
--- a/samples/spring/pet-store/pom.xml
+++ b/samples/spring/pet-store/pom.xml
@@ -115,7 +115,7 @@
                             <dependency>
                                 <groupId>io.github.edwgiz</groupId>
                                 <artifactId>log4j-maven-shade-plugin-extensions</artifactId>
-                                <version>2.21.0</version>
+                                <version>2.20.0</version>
                             </dependency>
                         </dependencies>
                     </plugin>

From 2db954f7fd13f2a1f410319ff5a7c686669e00dc Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Mon, 23 Oct 2023 12:51:54 +0200
Subject: [PATCH 035/430] chore(deps): Update Log4J dependency to 2.21.0
 (revert log4j-maven-shade-plugin-extensions not yet published)

---
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
index 833948e8b..999e348f0 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
@@ -139,7 +139,7 @@
                             <dependency>
                                 <groupId>io.github.edwgiz</groupId>
                                 <artifactId>log4j-maven-shade-plugin-extensions</artifactId>
-                                <version>2.21.0</version>
+                                <version>2.20.0</version>
                             </dependency>
                         </dependencies>
                     </plugin>

From 4905e7ad470b0bf54ea1aa1c488f039d7d286321 Mon Sep 17 00:00:00 2001
From: Davison <ridaviso@amazon.com>
Date: Wed, 25 Oct 2023 10:27:37 +0200
Subject: [PATCH 036/430] change version

---
 .../servlet/ServletLambdaContainerHandlerBuilder.java         | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/ServletLambdaContainerHandlerBuilder.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/ServletLambdaContainerHandlerBuilder.java
index f39ea3acd..adacd2e1f 100644
--- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/ServletLambdaContainerHandlerBuilder.java
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/ServletLambdaContainerHandlerBuilder.java
@@ -165,7 +165,7 @@ public Builder responseTypeClass(Class<ResponseType> responseType) {
     /**
      * Uses an async initializer with the given start time to calculate the 10 seconds timeout.
      *
-     * @deprecated As of release 2.1 this method is deprecated. Initializer is always async if running in on-demand.
+     * @deprecated As of release 2.0.0 this method is deprecated. Initializer is always async if running in on-demand.
      * @param actualStartTime An epoch in milliseconds that should be used to calculate the 10 seconds timeout since the start of the application
      * @return A builder configured to use the async initializer
      */
@@ -178,7 +178,7 @@ public Builder asyncInit(long actualStartTime) {
     /**
      * Uses a new {@link AsyncInitializationWrapper} with the no-parameter constructor that takes the actual JVM
      * start time
-     * @deprecated As of release 2.1 this method is deprecated. Initializer is always async if running in on-demand.
+     * @deprecated As of release 2.0.0 this method is deprecated. Initializer is always async if running in on-demand.
      * @return A builder configured to use an async initializer
      */
     public Builder asyncInit() {

From b6ac675b5da06b519300cf0be2b7419a3b0f33be Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 30 Oct 2023 05:04:41 +0000
Subject: [PATCH 037/430] chore(deps): bump
 org.apache.maven.plugins:maven-surefire-plugin

Bumps [org.apache.maven.plugins:maven-surefire-plugin](https://github.com/apache/maven-surefire) from 3.1.2 to 3.2.1.
- [Release notes](https://github.com/apache/maven-surefire/releases)
- [Commits](https://github.com/apache/maven-surefire/compare/surefire-3.1.2...surefire-3.2.1)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-surefire-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 84c9045a3..025f21fc3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -206,7 +206,7 @@
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-surefire-plugin</artifactId>
-                    <version>3.1.2</version>
+                    <version>3.2.1</version>
                 </plugin>
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>

From 99eb28bc4ce6d86c9db11b2e8e7dc1f9cb124718 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 30 Oct 2023 05:04:46 +0000
Subject: [PATCH 038/430] chore(deps): bump
 org.apache.maven.plugins:maven-clean-plugin

Bumps [org.apache.maven.plugins:maven-clean-plugin](https://github.com/apache/maven-clean-plugin) from 3.3.1 to 3.3.2.
- [Release notes](https://github.com/apache/maven-clean-plugin/releases)
- [Commits](https://github.com/apache/maven-clean-plugin/compare/maven-clean-plugin-3.3.1...maven-clean-plugin-3.3.2)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-clean-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 84c9045a3..50df58653 100644
--- a/pom.xml
+++ b/pom.xml
@@ -211,7 +211,7 @@
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-clean-plugin</artifactId>
-                    <version>3.3.1</version>
+                    <version>3.3.2</version>
                 </plugin>
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>

From 990760614f6c1c52ea33004437531b3ebde6d571 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Wed, 1 Nov 2023 09:00:31 +0100
Subject: [PATCH 039/430] chore(deps): Update Maven-dependency-plugin to 3.6.1

---
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 samples/jersey/pet-store/pom.xml                                | 2 +-
 samples/spark/pet-store/pom.xml                                 | 2 +-
 samples/spring/pet-store/pom.xml                                | 2 +-
 samples/springboot3/alt-pet-store/pom.xml                       | 2 +-
 samples/springboot3/pet-store/pom.xml                           | 2 +-
 9 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
index ad42e4f71..d0628cb2d 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
@@ -154,7 +154,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-dependency-plugin</artifactId>
-                        <version>3.6.0</version>
+                        <version>3.6.1</version>
                         <executions>
                             <execution>
                                 <id>copy-dependencies</id>
diff --git a/aws-serverless-spark-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-spark-archetype/src/main/resources/archetype-resources/pom.xml
index cd429aa73..b3c407c37 100644
--- a/aws-serverless-spark-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-spark-archetype/src/main/resources/archetype-resources/pom.xml
@@ -143,7 +143,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-dependency-plugin</artifactId>
-                        <version>3.6.0</version>
+                        <version>3.6.1</version>
                         <executions>
                             <execution>
                                 <id>copy-dependencies</id>
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
index 999e348f0..de1ceaa9d 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
@@ -177,7 +177,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-dependency-plugin</artifactId>
-                        <version>3.6.0</version>
+                        <version>3.6.1</version>
                         <executions>
                             <execution>
                                 <id>copy-dependencies</id>
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
index ec495ce4c..6527804e4 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
@@ -137,7 +137,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-dependency-plugin</artifactId>
-                        <version>3.6.0</version>
+                        <version>3.6.1</version>
                         <executions>
                             <execution>
                                 <id>copy-dependencies</id>
diff --git a/samples/jersey/pet-store/pom.xml b/samples/jersey/pet-store/pom.xml
index fa03cc55a..3f10e8967 100644
--- a/samples/jersey/pet-store/pom.xml
+++ b/samples/jersey/pet-store/pom.xml
@@ -132,7 +132,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-dependency-plugin</artifactId>
-                        <version>3.6.0</version>
+                        <version>3.6.1</version>
                         <executions>
                             <execution>
                                 <id>copy-dependencies</id>
diff --git a/samples/spark/pet-store/pom.xml b/samples/spark/pet-store/pom.xml
index 26cdd2fe5..b38c8027f 100644
--- a/samples/spark/pet-store/pom.xml
+++ b/samples/spark/pet-store/pom.xml
@@ -120,7 +120,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-dependency-plugin</artifactId>
-                        <version>3.6.0</version>
+                        <version>3.6.1</version>
                         <executions>
                             <execution>
                                 <id>copy-dependencies</id>
diff --git a/samples/spring/pet-store/pom.xml b/samples/spring/pet-store/pom.xml
index 08062dc2e..fa4f12d05 100644
--- a/samples/spring/pet-store/pom.xml
+++ b/samples/spring/pet-store/pom.xml
@@ -153,7 +153,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-dependency-plugin</artifactId>
-                        <version>3.6.0</version>
+                        <version>3.6.1</version>
                         <executions>
                             <execution>
                                 <id>copy-dependencies</id>
diff --git a/samples/springboot3/alt-pet-store/pom.xml b/samples/springboot3/alt-pet-store/pom.xml
index 850f6e5e8..9c97e2db5 100644
--- a/samples/springboot3/alt-pet-store/pom.xml
+++ b/samples/springboot3/alt-pet-store/pom.xml
@@ -109,7 +109,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-dependency-plugin</artifactId>
-                        <version>3.6.0</version>
+                        <version>3.6.1</version>
                         <executions>
                             <execution>
                                 <id>copy-dependencies</id>
diff --git a/samples/springboot3/pet-store/pom.xml b/samples/springboot3/pet-store/pom.xml
index 7d2bdd35d..c0d0a59fe 100644
--- a/samples/springboot3/pet-store/pom.xml
+++ b/samples/springboot3/pet-store/pom.xml
@@ -109,7 +109,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-dependency-plugin</artifactId>
-                        <version>3.6.0</version>
+                        <version>3.6.1</version>
                         <executions>
                             <execution>
                                 <id>copy-dependencies</id>

From c517d290ed38e53de2e6e76c79ba37a7c06ce290 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Wed, 1 Nov 2023 09:01:34 +0100
Subject: [PATCH 040/430] chore(deps): Update Log4J dependency to 2.21.1

---
 .../src/main/resources/archetype-resources/build.gradle     | 6 +++---
 .../src/main/resources/archetype-resources/pom.xml          | 2 +-
 .../src/main/resources/archetype-resources/build.gradle     | 6 +++---
 .../src/main/resources/archetype-resources/pom.xml          | 2 +-
 samples/spring/pet-store/build.gradle                       | 6 +++---
 samples/spring/pet-store/pom.xml                            | 2 +-
 samples/struts/pet-store/build.gradle                       | 4 ++--
 samples/struts/pet-store/pom.xml                            | 2 +-
 8 files changed, 15 insertions(+), 15 deletions(-)

diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
index ee799ebd3..dd74ed782 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
@@ -10,9 +10,9 @@ dependencies {
           'org.springframework:spring-webmvc:6.0.13',
           'org.springframework:spring-context:6.0.13',
           'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)',
-          'org.apache.logging.log4j:log4j-core:2.21.0',
-          'org.apache.logging.log4j:log4j-api:2.21.0',
-          'org.apache.logging.log4j:log4j-slf4j-impl:2.21.0',
+          'org.apache.logging.log4j:log4j-core:2.21.1',
+          'org.apache.logging.log4j:log4j-api:2.21.1',
+          'org.apache.logging.log4j:log4j-slf4j-impl:2.21.1',
           'com.fasterxml.jackson.core:jackson-databind:2.15.3',
           'com.amazonaws:aws-lambda-java-log4j2:1.5.1',
   )
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
index de1ceaa9d..8ab356033 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
@@ -18,7 +18,7 @@
         <maven.compiler.target>1.8</maven.compiler.target>
         <spring.version>6.0.13</spring.version>
         <junit.version>5.10.0</junit.version>
-        <log4j.version>2.21.0</log4j.version>
+        <log4j.version>2.21.1</log4j.version>
     </properties>
 
     <dependencies>
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
index 03e03125a..adf85ad0b 100644
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
@@ -36,9 +36,9 @@ dependencies {
   implementation ('org.hibernate.validator:hibernate-validator:6.1.7.Final')
   implementation ('com.fasterxml.jackson.core:jackson-databind:2.15.3')
   implementation ('com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.15.3')
-  implementation ('org.apache.logging.log4j:log4j-core:2.21.0')
-  implementation ('org.apache.logging.log4j:log4j-api:2.21.0')
-  implementation ('org.apache.logging.log4j:log4j-slf4j-impl:2.21.0')
+  implementation ('org.apache.logging.log4j:log4j-core:2.21.1')
+  implementation ('org.apache.logging.log4j:log4j-api:2.21.1')
+  implementation ('org.apache.logging.log4j:log4j-slf4j-impl:2.21.1')
   implementation ('com.amazonaws:aws-lambda-java-log4j2:1.5.1')
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
index ba17f19a0..470162471 100644
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
@@ -18,7 +18,7 @@
         <struts.version>6.1.2.1</struts.version>
         <jackson.version>2.15.3</jackson.version>
         <junit.version>5.10.0</junit.version>
-        <log4j.version>2.21.0</log4j.version>
+        <log4j.version>2.21.1</log4j.version>
     </properties>
 
     <dependencies>
diff --git a/samples/spring/pet-store/build.gradle b/samples/spring/pet-store/build.gradle
index f70898308..4d3d4aa26 100644
--- a/samples/spring/pet-store/build.gradle
+++ b/samples/spring/pet-store/build.gradle
@@ -10,9 +10,9 @@ dependencies {
           'org.springframework:spring-webmvc:6.0.13',
           'org.springframework:spring-context:6.0.13',
           'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)',
-          'org.apache.logging.log4j:log4j-core:2.21.0',
-          'org.apache.logging.log4j:log4j-api:2.21.0',
-          'org.apache.logging.log4j:log4j-slf4j-impl:2.21.0',
+          'org.apache.logging.log4j:log4j-core:2.21.1',
+          'org.apache.logging.log4j:log4j-api:2.21.1',
+          'org.apache.logging.log4j:log4j-slf4j-impl:2.21.1',
           'com.fasterxml.jackson.core:jackson-databind:2.15.3',
           'com.amazonaws:aws-lambda-java-log4j2:1.5.1',
   )
diff --git a/samples/spring/pet-store/pom.xml b/samples/spring/pet-store/pom.xml
index fa4f12d05..75f0cae8f 100644
--- a/samples/spring/pet-store/pom.xml
+++ b/samples/spring/pet-store/pom.xml
@@ -25,7 +25,7 @@
 
     <properties>
         <spring.version>6.0.13</spring.version>
-        <log4j.version>2.21.0</log4j.version>
+        <log4j.version>2.21.1</log4j.version>
         <maven.compiler.source>17</maven.compiler.source>
         <maven.compiler.target>17</maven.compiler.target>
     </properties>
diff --git a/samples/struts/pet-store/build.gradle b/samples/struts/pet-store/build.gradle
index 1749598d9..67e991714 100644
--- a/samples/struts/pet-store/build.gradle
+++ b/samples/struts/pet-store/build.gradle
@@ -24,8 +24,8 @@ dependencies {
           'javax.el:javax.el-api:3.0.0',
           'com.fasterxml.jackson.core:jackson-databind:2.15.3',
           'com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.15.3',
-          'org.apache.logging.log4j:log4j-core:2.21.0',
-          'org.apache.logging.log4j:log4j-api:2.21.0',
+          'org.apache.logging.log4j:log4j-core:2.21.1',
+          'org.apache.logging.log4j:log4j-api:2.21.1',
           'com.amazonaws:aws-lambda-java-log4j2:1.5.1',
   )
 }
diff --git a/samples/struts/pet-store/pom.xml b/samples/struts/pet-store/pom.xml
index 5cdda8ecd..93e28fa59 100644
--- a/samples/struts/pet-store/pom.xml
+++ b/samples/struts/pet-store/pom.xml
@@ -29,7 +29,7 @@
         <struts.version>6.1.2.1</struts.version>
         <jackson.version>2.15.3</jackson.version>
         <junit.version>4.13.2</junit.version>
-        <log4j.version>2.21.0</log4j.version>
+        <log4j.version>2.21.1</log4j.version>
     </properties>
 
     <dependencies>

From 397cd9dc45565b30de5963046f2f085869f61400 Mon Sep 17 00:00:00 2001
From: mbfreder <mbfreder@amazon.com>
Date: Thu, 2 Nov 2023 17:27:41 -0700
Subject: [PATCH 041/430] fix: Multipart files processing when Array of files
 with same fieldName is sent in request

---
 .../AwsHttpApiV2ProxyHttpServletRequest.java  | 14 ++++++-
 .../servlet/AwsHttpServletRequest.java        | 14 +++++--
 .../servlet/AwsProxyHttpServletRequest.java   | 13 ++++++-
 .../AwsProxyHttpServletRequestFormTest.java   | 37 +++++++++++++++++--
 4 files changed, 67 insertions(+), 11 deletions(-)

diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpApiV2ProxyHttpServletRequest.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpApiV2ProxyHttpServletRequest.java
index bdf11b819..3229fda2d 100644
--- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpApiV2ProxyHttpServletRequest.java
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpApiV2ProxyHttpServletRequest.java
@@ -37,6 +37,7 @@
 import java.time.ZonedDateTime;
 import java.time.format.DateTimeParseException;
 import java.util.*;
+import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
 public class AwsHttpApiV2ProxyHttpServletRequest extends AwsHttpServletRequest {
@@ -236,12 +237,21 @@ public void logout() throws ServletException {
 
     @Override
     public Collection<Part> getParts() throws IOException, ServletException {
-        return getMultipartFormParametersMap().values();
+        List<Part> partList =
+                getMultipartFormParametersMap().values().stream()
+                        .flatMap(List::stream)
+                        .collect(Collectors.toList());
+        return partList;
     }
 
     @Override
     public Part getPart(String s) throws IOException, ServletException {
-        return getMultipartFormParametersMap().get(s);
+        // In case there's multiple files with the same fieldName, we return the first one in the list
+        List<Part> values = getMultipartFormParametersMap().get(s);
+        if (Objects.isNull(values)) {
+            return null;
+        }
+        return getMultipartFormParametersMap().get(s).get(0);
     }
 
     @Override
diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java
index 7a44fa95e..10db7defe 100644
--- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java
@@ -86,7 +86,7 @@ public abstract class AwsHttpServletRequest implements HttpServletRequest {
     private ServletContext servletContext;
     private AwsHttpSession session;
     private String queryString;
-    private Map<String, Part> multipartFormParameters;
+    private Map<String, List<Part>> multipartFormParameters;
     private Map<String, List<String>> urlEncodedFormParameters;
 
     protected AwsHttpServletResponse response;
@@ -511,7 +511,7 @@ protected Map<String, List<String>> getFormUrlEncodedParametersMap() {
     }
 
     @SuppressFBWarnings({"FILE_UPLOAD_FILENAME", "WEAK_FILENAMEUTILS"})
-    protected Map<String, Part> getMultipartFormParametersMap() {
+    protected Map<String, List<Part>> getMultipartFormParametersMap() {
         if (multipartFormParameters != null) {
             return multipartFormParameters;
         }
@@ -537,7 +537,7 @@ protected Map<String, Part> getMultipartFormParametersMap() {
                     newPart.addHeader(h, item.getHeaders().getHeader(h));
                 });
 
-                multipartFormParameters.put(item.getFieldName(), newPart);
+                addPart(multipartFormParameters, item.getFieldName(), newPart);
             }
         } catch (FileUploadException e) {
             Timer.stop("SERVLET_REQUEST_GET_MULTIPART_PARAMS");
@@ -546,6 +546,14 @@ protected Map<String, Part> getMultipartFormParametersMap() {
         Timer.stop("SERVLET_REQUEST_GET_MULTIPART_PARAMS");
         return multipartFormParameters;
     }
+    private void addPart(Map<String, List<Part>> params, String fieldName, Part newPart) {
+        List<Part> partList = params.get(fieldName);
+        if (Objects.isNull(partList)) {
+            partList = new ArrayList<>();
+            params.put(fieldName, partList);
+        }
+        partList.add(newPart);
+    }
 
     protected String[] getQueryParamValues(MultiValuedTreeMap<String, String> qs, String key, boolean isCaseSensitive) {
         List<String> value = getQueryParamValuesAsList(qs, key, isCaseSensitive);
diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequest.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequest.java
index a4ee15150..08ffa6d16 100644
--- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequest.java
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequest.java
@@ -259,14 +259,23 @@ public void logout()
     @Override
     public Collection<Part> getParts()
             throws IOException, ServletException {
-        return getMultipartFormParametersMap().values();
+        List<Part> partList =
+                getMultipartFormParametersMap().values().stream()
+                        .flatMap(List::stream)
+                        .collect(Collectors.toList());
+        return partList;
     }
 
 
     @Override
     public Part getPart(String s)
             throws IOException, ServletException {
-        return getMultipartFormParametersMap().get(s);
+        // In case there's multiple files with the same fieldName, we return the first one in the list
+        List<Part> values = getMultipartFormParametersMap().get(s);
+        if (Objects.isNull(values)) {
+            return null;
+        }
+        return getMultipartFormParametersMap().get(s).get(0);
     }
 
 
diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequestFormTest.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequestFormTest.java
index 989066328..67b147620 100644
--- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequestFormTest.java
+++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequestFormTest.java
@@ -4,7 +4,9 @@
 import com.amazonaws.serverless.proxy.model.AwsProxyRequest;
 import com.amazonaws.serverless.proxy.internal.testutils.AwsProxyRequestBuilder;
 
+import jakarta.servlet.http.Part;
 import org.apache.commons.io.IOUtils;
+import org.apache.hc.client5.http.entity.mime.MultipartPartBuilder;
 import org.apache.hc.core5.http.ContentType;
 import org.apache.hc.core5.http.HttpEntity;
 import org.apache.hc.client5.http.entity.mime.MultipartEntityBuilder;
@@ -17,10 +19,7 @@
 
 import java.io.IOException;
 import java.nio.charset.Charset;
-import java.util.Base64;
-import java.util.Collections;
-import java.util.Map;
-import java.util.Random;
+import java.util.*;
 
 import static org.junit.jupiter.api.Assertions.*;
 
@@ -31,6 +30,7 @@ public class AwsProxyHttpServletRequestFormTest {
     private static final String PART_KEY_2 = "test2";
     private static final String PART_VALUE_2 = "value2";
     private static final String FILE_KEY = "file_upload_1";
+    private static final String FILE_KEY_2 = "file_upload_2";
     private static final String FILE_NAME = "testImage.jpg";
 
     private static final String ENCODED_VALUE = "test123a%3D1%262@3";
@@ -41,6 +41,7 @@ public class AwsProxyHttpServletRequestFormTest {
                                                                                 .build();
     private static final int FILE_SIZE = 512;
     private static byte[] FILE_BYTES = new byte[FILE_SIZE];
+    private static byte[] FILE_BYTES_2 = new byte[FILE_SIZE];
     static {
         new Random().nextBytes(FILE_BYTES);
     }
@@ -49,6 +50,10 @@ public class AwsProxyHttpServletRequestFormTest {
                                                                                   .addTextBody(PART_KEY_2, PART_VALUE_2)
                                                                                   .addBinaryBody(FILE_KEY, FILE_BYTES, ContentType.IMAGE_JPEG, FILE_NAME)
                                                                                   .build();
+    private static final HttpEntity MULTIPART_BINARY_DATA_2 = MultipartEntityBuilder.create()
+            .addBinaryBody(FILE_KEY, FILE_BYTES, ContentType.IMAGE_JPEG, FILE_NAME)
+            .addBinaryBody(FILE_KEY, FILE_BYTES_2, ContentType.IMAGE_JPEG, FILE_NAME)
+            .build();
     private static final String ENCODED_FORM_ENTITY = PART_KEY_1 + "=" + ENCODED_VALUE + "&" + PART_KEY_2 + "=" + PART_VALUE_2;
 
     @Test
@@ -109,6 +114,30 @@ void multipart_getParts_binary() {
         }
     }
 
+    @Test
+    void multipart_getParts_returnsMultiplePartsWithSameFieldName() {
+        try {
+            AwsProxyRequest proxyRequest = new AwsProxyRequestBuilder("/form", "POST")
+                    .header(HttpHeaders.CONTENT_TYPE, MULTIPART_BINARY_DATA_2.getContentType())
+                    .header(HttpHeaders.CONTENT_LENGTH, MULTIPART_BINARY_DATA_2.getContentLength() + "")
+                    .binaryBody(MULTIPART_BINARY_DATA_2.getContent())
+                    .build();
+
+            HttpServletRequest request = new AwsProxyHttpServletRequest(proxyRequest, null, null);
+            assertNotNull(request.getParts());
+            assertEquals(2, request.getParts().size());
+            assertNotNull(request.getPart(FILE_KEY));
+            List<Part> partList = new ArrayList<>(request.getParts());
+            assertEquals(partList.get(0).getSubmittedFileName(), partList.get(1).getSubmittedFileName());
+            assertEquals(partList.get(0).getName(), partList.get(1).getName());
+            assertEquals(FILE_SIZE, request.getPart(FILE_KEY).getSize());
+            assertEquals(FILE_KEY, request.getPart(FILE_KEY).getName());
+            assertEquals(FILE_NAME, request.getPart(FILE_KEY).getSubmittedFileName());
+        } catch (IOException | ServletException e) {
+            fail(e.getMessage());
+        }
+    }
+
     @Test
     void postForm_getParamsBase64Encoded_expectAllParams() {
         AwsProxyRequest proxyRequest = new AwsProxyRequestBuilder("/form", "POST")

From 3b00e72f215059a2aefc2744a52b78ad845e0948 Mon Sep 17 00:00:00 2001
From: mbfreder <mbfreder@amazon.com>
Date: Thu, 2 Nov 2023 22:51:16 -0700
Subject: [PATCH 042/430] moved getParts and getPart to AwsHttpServletRequest

---
 .../AwsHttpApiV2ProxyHttpServletRequest.java  | 19 ---------------
 .../servlet/AwsHttpServletRequest.java        | 21 ++++++++++++++++
 .../servlet/AwsProxyHttpServletRequest.java   | 24 -------------------
 3 files changed, 21 insertions(+), 43 deletions(-)

diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpApiV2ProxyHttpServletRequest.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpApiV2ProxyHttpServletRequest.java
index 3229fda2d..8a06003fd 100644
--- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpApiV2ProxyHttpServletRequest.java
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpApiV2ProxyHttpServletRequest.java
@@ -235,25 +235,6 @@ public void logout() throws ServletException {
         throw new UnsupportedOperationException();
     }
 
-    @Override
-    public Collection<Part> getParts() throws IOException, ServletException {
-        List<Part> partList =
-                getMultipartFormParametersMap().values().stream()
-                        .flatMap(List::stream)
-                        .collect(Collectors.toList());
-        return partList;
-    }
-
-    @Override
-    public Part getPart(String s) throws IOException, ServletException {
-        // In case there's multiple files with the same fieldName, we return the first one in the list
-        List<Part> values = getMultipartFormParametersMap().get(s);
-        if (Objects.isNull(values)) {
-            return null;
-        }
-        return getMultipartFormParametersMap().get(s).get(0);
-    }
-
     @Override
     public <T extends HttpUpgradeHandler> T upgrade(Class<T> aClass) throws IOException, ServletException {
         throw new UnsupportedOperationException();
diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java
index 10db7defe..ca5d163ec 100644
--- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java
@@ -510,6 +510,27 @@ protected Map<String, List<String>> getFormUrlEncodedParametersMap() {
         return urlEncodedFormParameters;
     }
 
+    @Override
+    public Collection<Part> getParts()
+            throws IOException, ServletException {
+        List<Part> partList =
+                getMultipartFormParametersMap().values().stream()
+                        .flatMap(List::stream)
+                        .collect(Collectors.toList());
+        return partList;
+    }
+
+    @Override
+    public Part getPart(String s)
+            throws IOException, ServletException {
+        // In case there's multiple files with the same fieldName, we return the first one in the list
+        List<Part> values = getMultipartFormParametersMap().get(s);
+        if (Objects.isNull(values)) {
+            return null;
+        }
+        return getMultipartFormParametersMap().get(s).get(0);
+    }
+
     @SuppressFBWarnings({"FILE_UPLOAD_FILENAME", "WEAK_FILENAMEUTILS"})
     protected Map<String, List<Part>> getMultipartFormParametersMap() {
         if (multipartFormParameters != null) {
diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequest.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequest.java
index 08ffa6d16..a93a00b45 100644
--- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequest.java
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequest.java
@@ -255,30 +255,6 @@ public void logout()
         throw new UnsupportedOperationException();
     }
 
-
-    @Override
-    public Collection<Part> getParts()
-            throws IOException, ServletException {
-        List<Part> partList =
-                getMultipartFormParametersMap().values().stream()
-                        .flatMap(List::stream)
-                        .collect(Collectors.toList());
-        return partList;
-    }
-
-
-    @Override
-    public Part getPart(String s)
-            throws IOException, ServletException {
-        // In case there's multiple files with the same fieldName, we return the first one in the list
-        List<Part> values = getMultipartFormParametersMap().get(s);
-        if (Objects.isNull(values)) {
-            return null;
-        }
-        return getMultipartFormParametersMap().get(s).get(0);
-    }
-
-
     @Override
     public <T extends HttpUpgradeHandler> T upgrade(Class<T> aClass)
             throws IOException, ServletException {

From e025315e0041036b2163a1311b49a8b8585b2d8d Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 6 Nov 2023 04:18:06 +0000
Subject: [PATCH 043/430] chore(deps-dev): bump org.mockito:mockito-core from
 5.6.0 to 5.7.0

Bumps [org.mockito:mockito-core](https://github.com/mockito/mockito) from 5.6.0 to 5.7.0.
- [Release notes](https://github.com/mockito/mockito/releases)
- [Commits](https://github.com/mockito/mockito/compare/v5.6.0...v5.7.0)

---
updated-dependencies:
- dependency-name: org.mockito:mockito-core
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index b74568bd9..aeca0cdcb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -81,7 +81,7 @@
         <jackson.version>2.15.3</jackson.version>
         <slf4j.version>2.0.9</slf4j.version>
         <junit.version>5.10.0</junit.version>
-        <mockito.version>5.6.0</mockito.version>
+        <mockito.version>5.7.0</mockito.version>
         <hamcrest.version>1.3</hamcrest.version>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     </properties>

From 24bd46d0132b99604fd349dd9c1c572ecf758da5 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Mon, 6 Nov 2023 09:16:32 +0100
Subject: [PATCH 044/430] chore(deps): Update Junit dependency to 5.10.1

---
 .../src/main/resources/archetype-resources/build.gradle         | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 .../src/main/resources/archetype-resources/build.gradle         | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 .../src/main/resources/archetype-resources/build.gradle         | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 .../src/main/resources/archetype-resources/build.gradle         | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 .../src/main/resources/archetype-resources/build.gradle         | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 pom.xml                                                         | 2 +-
 11 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
index 27c7f31cf..faa9027ef 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
@@ -23,7 +23,7 @@ dependencies {
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
   testImplementation("org.apache.httpcomponents.client5:httpclient5:5.2.1")
-  testImplementation(platform("org.junit:junit-bom:5.10.0"))
+  testImplementation(platform("org.junit:junit-bom:5.10.1"))
   testImplementation("org.junit.jupiter:junit-jupiter")
 }
 
diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
index d0628cb2d..16519ea2e 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
@@ -17,7 +17,7 @@
 
         <jersey.version>3.1.3</jersey.version>
         <jackson.version>2.15.3</jackson.version>
-        <junit.version>5.10.0</junit.version>
+        <junit.version>5.10.1</junit.version>
     </properties>
 
     <dependencies>
diff --git a/aws-serverless-spark-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-spark-archetype/src/main/resources/archetype-resources/build.gradle
index 1f42e3ea6..8256e5648 100644
--- a/aws-serverless-spark-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-spark-archetype/src/main/resources/archetype-resources/build.gradle
@@ -14,7 +14,7 @@ dependencies {
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
   testImplementation("org.apache.httpcomponents.client5:httpclient5:5.2.1")
-  testImplementation(platform("org.junit:junit-bom:5.10.0"))
+  testImplementation(platform("org.junit:junit-bom:5.10.1"))
   testImplementation("org.junit.jupiter:junit-jupiter")
 }
 
diff --git a/aws-serverless-spark-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-spark-archetype/src/main/resources/archetype-resources/pom.xml
index b3c407c37..17d8e0f71 100644
--- a/aws-serverless-spark-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-spark-archetype/src/main/resources/archetype-resources/pom.xml
@@ -18,7 +18,7 @@
         <maven.compiler.target>1.8</maven.compiler.target>
         <jackson.version>2.15.3</jackson.version>
         <spark.version>2.9.4</spark.version>
-        <junit.version>5.10.0</junit.version>
+        <junit.version>5.10.1</junit.version>
     </properties>
 
     <dependencies>
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
index dd74ed782..89e03c77f 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
@@ -19,7 +19,7 @@ dependencies {
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
   testImplementation("org.apache.httpcomponents.client5:httpclient5:5.2.1")
-  testImplementation(platform("org.junit:junit-bom:5.10.0"))
+  testImplementation(platform("org.junit:junit-bom:5.10.1"))
   testImplementation("org.junit.jupiter:junit-jupiter")
 }
 
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
index 8ab356033..95e6919ef 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
@@ -17,7 +17,7 @@
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
         <spring.version>6.0.13</spring.version>
-        <junit.version>5.10.0</junit.version>
+        <junit.version>5.10.1</junit.version>
         <log4j.version>2.21.1</log4j.version>
     </properties>
 
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
index f669d0ae5..b2cd533de 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
@@ -15,7 +15,7 @@ dependencies {
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
   testImplementation("org.apache.httpcomponents.client5:httpclient5:5.2.1")
-  testImplementation(platform("org.junit:junit-bom:5.10.0"))
+  testImplementation(platform("org.junit:junit-bom:5.10.1"))
   testImplementation("org.junit.jupiter:junit-jupiter")
 }
 
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
index 6527804e4..aa6b41bd6 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
@@ -21,7 +21,7 @@
 
     <properties>
         <java.version>17</java.version>
-        <junit.version>5.10.0</junit.version>
+        <junit.version>5.10.1</junit.version>
     </properties>
 
     <dependencies>
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
index adf85ad0b..30efe46c7 100644
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
@@ -43,7 +43,7 @@ dependencies {
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
   testImplementation("org.apache.httpcomponents.client5:httpclient5:5.2.1")
-  testImplementation(platform("org.junit:junit-bom:5.10.0"))
+  testImplementation(platform("org.junit:junit-bom:5.10.1"))
   testImplementation("org.junit.jupiter:junit-jupiter")
   testImplementation('org.apache.struts:struts2-junit-plugin:6.1.2.1') {
     exclude group: 'org.apache.struts', module: 'struts2-core'
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
index 470162471..952b62fe6 100644
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
@@ -17,7 +17,7 @@
         <maven.compiler.target>1.8</maven.compiler.target>
         <struts.version>6.1.2.1</struts.version>
         <jackson.version>2.15.3</jackson.version>
-        <junit.version>5.10.0</junit.version>
+        <junit.version>5.10.1</junit.version>
         <log4j.version>2.21.1</log4j.version>
     </properties>
 
diff --git a/pom.xml b/pom.xml
index aeca0cdcb..2ae2d1188 100644
--- a/pom.xml
+++ b/pom.xml
@@ -80,7 +80,7 @@
         <dependencyCheck.version>8.4.2</dependencyCheck.version>
         <jackson.version>2.15.3</jackson.version>
         <slf4j.version>2.0.9</slf4j.version>
-        <junit.version>5.10.0</junit.version>
+        <junit.version>5.10.1</junit.version>
         <mockito.version>5.7.0</mockito.version>
         <hamcrest.version>1.3</hamcrest.version>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

From c106fd03a5163525967c76dee46a81a2f4b201b6 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Mon, 6 Nov 2023 09:17:38 +0100
Subject: [PATCH 045/430] chore(deps): Update aws-lambda-java-log4j2 dependency
 to 1.6.0

---
 .../src/main/resources/archetype-resources/build.gradle         | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 .../src/main/resources/archetype-resources/build.gradle         | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 samples/spring/pet-store/build.gradle                           | 2 +-
 samples/spring/pet-store/pom.xml                                | 2 +-
 samples/struts/pet-store/build.gradle                           | 2 +-
 samples/struts/pet-store/pom.xml                                | 2 +-
 8 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
index 89e03c77f..e0626eaf0 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
@@ -14,7 +14,7 @@ dependencies {
           'org.apache.logging.log4j:log4j-api:2.21.1',
           'org.apache.logging.log4j:log4j-slf4j-impl:2.21.1',
           'com.fasterxml.jackson.core:jackson-databind:2.15.3',
-          'com.amazonaws:aws-lambda-java-log4j2:1.5.1',
+          'com.amazonaws:aws-lambda-java-log4j2:1.6.0',
   )
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
index 95e6919ef..87e4a468c 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
@@ -88,7 +88,7 @@
         <dependency>
             <groupId>com.amazonaws</groupId>
             <artifactId>aws-lambda-java-log4j2</artifactId>
-            <version>1.5.1</version>
+            <version>1.6.0</version>
         </dependency>
 
         <dependency>
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
index 30efe46c7..420157dc1 100644
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
@@ -39,7 +39,7 @@ dependencies {
   implementation ('org.apache.logging.log4j:log4j-core:2.21.1')
   implementation ('org.apache.logging.log4j:log4j-api:2.21.1')
   implementation ('org.apache.logging.log4j:log4j-slf4j-impl:2.21.1')
-  implementation ('com.amazonaws:aws-lambda-java-log4j2:1.5.1')
+  implementation ('com.amazonaws:aws-lambda-java-log4j2:1.6.0')
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
   testImplementation("org.apache.httpcomponents.client5:httpclient5:5.2.1")
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
index 952b62fe6..3367eba64 100644
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
@@ -117,7 +117,7 @@
         <dependency>
             <groupId>com.amazonaws</groupId>
             <artifactId>aws-lambda-java-log4j2</artifactId>
-            <version>1.5.1</version>
+            <version>1.6.0</version>
         </dependency>
 
         <dependency>
diff --git a/samples/spring/pet-store/build.gradle b/samples/spring/pet-store/build.gradle
index 4d3d4aa26..2b5680227 100644
--- a/samples/spring/pet-store/build.gradle
+++ b/samples/spring/pet-store/build.gradle
@@ -14,7 +14,7 @@ dependencies {
           'org.apache.logging.log4j:log4j-api:2.21.1',
           'org.apache.logging.log4j:log4j-slf4j-impl:2.21.1',
           'com.fasterxml.jackson.core:jackson-databind:2.15.3',
-          'com.amazonaws:aws-lambda-java-log4j2:1.5.1',
+          'com.amazonaws:aws-lambda-java-log4j2:1.6.0',
   )
 }
 
diff --git a/samples/spring/pet-store/pom.xml b/samples/spring/pet-store/pom.xml
index 75f0cae8f..fed191c34 100644
--- a/samples/spring/pet-store/pom.xml
+++ b/samples/spring/pet-store/pom.xml
@@ -83,7 +83,7 @@
         <dependency>
             <groupId>com.amazonaws</groupId>
             <artifactId>aws-lambda-java-log4j2</artifactId>
-            <version>1.5.1</version>
+            <version>1.6.0</version>
         </dependency>
     </dependencies>
 
diff --git a/samples/struts/pet-store/build.gradle b/samples/struts/pet-store/build.gradle
index 67e991714..c0021070c 100644
--- a/samples/struts/pet-store/build.gradle
+++ b/samples/struts/pet-store/build.gradle
@@ -26,7 +26,7 @@ dependencies {
           'com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.15.3',
           'org.apache.logging.log4j:log4j-core:2.21.1',
           'org.apache.logging.log4j:log4j-api:2.21.1',
-          'com.amazonaws:aws-lambda-java-log4j2:1.5.1',
+          'com.amazonaws:aws-lambda-java-log4j2:1.6.0',
   )
 }
 
diff --git a/samples/struts/pet-store/pom.xml b/samples/struts/pet-store/pom.xml
index 93e28fa59..6c4b71be2 100644
--- a/samples/struts/pet-store/pom.xml
+++ b/samples/struts/pet-store/pom.xml
@@ -124,7 +124,7 @@
         <dependency>
             <groupId>com.amazonaws</groupId>
             <artifactId>aws-lambda-java-log4j2</artifactId>
-            <version>1.5.1</version>
+            <version>1.6.0</version>
         </dependency>
 
         <dependency>

From 90f70784dfae96016e01cdbde9f8594fb4955edc Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 13 Nov 2023 04:23:09 +0000
Subject: [PATCH 046/430] chore(deps): bump
 org.apache.maven.plugins:maven-surefire-plugin

Bumps [org.apache.maven.plugins:maven-surefire-plugin](https://github.com/apache/maven-surefire) from 3.2.1 to 3.2.2.
- [Release notes](https://github.com/apache/maven-surefire/releases)
- [Commits](https://github.com/apache/maven-surefire/compare/surefire-3.2.1...surefire-3.2.2)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-surefire-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 2ae2d1188..9bc5c7865 100644
--- a/pom.xml
+++ b/pom.xml
@@ -206,7 +206,7 @@
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-surefire-plugin</artifactId>
-                    <version>3.2.1</version>
+                    <version>3.2.2</version>
                 </plugin>
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>

From 0b4c95a0a0e4b59cbb450548e333c909a6ee3b36 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 13 Nov 2023 04:23:15 +0000
Subject: [PATCH 047/430] chore(deps): bump
 org.apache.maven.plugins:maven-javadoc-plugin

Bumps [org.apache.maven.plugins:maven-javadoc-plugin](https://github.com/apache/maven-javadoc-plugin) from 3.6.0 to 3.6.2.
- [Release notes](https://github.com/apache/maven-javadoc-plugin/releases)
- [Commits](https://github.com/apache/maven-javadoc-plugin/compare/maven-javadoc-plugin-3.6.0...maven-javadoc-plugin-3.6.2)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-javadoc-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 2ae2d1188..f493dd859 100644
--- a/pom.xml
+++ b/pom.xml
@@ -201,7 +201,7 @@
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-javadoc-plugin</artifactId>
-                    <version>3.6.0</version>
+                    <version>3.6.2</version>
                 </plugin>
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>

From 656bbcbd13ff955753148f2a2f92534a0caaca14 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 13 Nov 2023 04:23:19 +0000
Subject: [PATCH 048/430] chore(deps): bump
 com.github.spotbugs:spotbugs-annotations

Bumps [com.github.spotbugs:spotbugs-annotations](https://github.com/spotbugs/spotbugs) from 4.8.0 to 4.8.1.
- [Release notes](https://github.com/spotbugs/spotbugs/releases)
- [Changelog](https://github.com/spotbugs/spotbugs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/spotbugs/spotbugs/compare/4.8.0...4.8.1)

---
updated-dependencies:
- dependency-name: com.github.spotbugs:spotbugs-annotations
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 2ae2d1188..525e575fb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -140,7 +140,7 @@
         <dependency>
             <groupId>com.github.spotbugs</groupId>
             <artifactId>spotbugs-annotations</artifactId>
-            <version>4.8.0</version>
+            <version>4.8.1</version>
             <scope>provided</scope>
         </dependency>
     </dependencies>

From d9ad22c405e6c66972de07613c368b8c2e1d8280 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 13 Nov 2023 04:23:32 +0000
Subject: [PATCH 049/430] chore(deps): bump
 com.github.spotbugs:spotbugs-maven-plugin

Bumps [com.github.spotbugs:spotbugs-maven-plugin](https://github.com/spotbugs/spotbugs-maven-plugin) from 4.7.3.6 to 4.8.1.0.
- [Release notes](https://github.com/spotbugs/spotbugs-maven-plugin/releases)
- [Commits](https://github.com/spotbugs/spotbugs-maven-plugin/compare/spotbugs-maven-plugin-4.7.3.6...spotbugs-maven-plugin-4.8.1.0)

---
updated-dependencies:
- dependency-name: com.github.spotbugs:spotbugs-maven-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 2ae2d1188..d08d4a103 100644
--- a/pom.xml
+++ b/pom.xml
@@ -249,7 +249,7 @@
                 <plugin>
                     <groupId>com.github.spotbugs</groupId>
                     <artifactId>spotbugs-maven-plugin</artifactId>
-                    <version>4.7.3.6</version>
+                    <version>4.8.1.0</version>
                     <configuration>
                         <!--
                             Enables analysis which takes more memory but finds more bugs.

From b4c3dc5b03e58a0083ff88715a813b23e62b414b Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Thu, 16 Nov 2023 17:14:59 +0100
Subject: [PATCH 050/430] chore(deps): Update Jackson dependency to 2.16.0

---
 .../src/main/resources/archetype-resources/build.gradle       | 2 +-
 .../src/main/resources/archetype-resources/pom.xml            | 2 +-
 .../src/main/resources/archetype-resources/build.gradle       | 2 +-
 .../src/main/resources/archetype-resources/pom.xml            | 2 +-
 .../src/main/resources/archetype-resources/build.gradle       | 2 +-
 .../src/main/resources/archetype-resources/build.gradle       | 4 ++--
 .../src/main/resources/archetype-resources/pom.xml            | 2 +-
 pom.xml                                                       | 2 +-
 samples/jersey/pet-store/build.gradle                         | 2 +-
 samples/jersey/pet-store/pom.xml                              | 2 +-
 samples/spark/pet-store/build.gradle                          | 2 +-
 samples/spark/pet-store/pom.xml                               | 2 +-
 samples/spring/pet-store/build.gradle                         | 2 +-
 samples/struts/pet-store/build.gradle                         | 4 ++--
 samples/struts/pet-store/pom.xml                              | 2 +-
 15 files changed, 17 insertions(+), 17 deletions(-)

diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
index faa9027ef..191255588 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
@@ -8,7 +8,7 @@ repositories {
 dependencies {
   implementation (
           'com.amazonaws.serverless:aws-serverless-java-container-jersey:[2.0-SNAPSHOT,)',
-          'com.fasterxml.jackson.core:jackson-databind:2.15.3',
+          'com.fasterxml.jackson.core:jackson-databind:2.16.0',
   )
 
   implementation("org.glassfish.jersey.media:jersey-media-json-jackson:3.1.3") {
diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
index 16519ea2e..f4a438195 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
@@ -16,7 +16,7 @@
         <maven.compiler.target>1.8</maven.compiler.target>
 
         <jersey.version>3.1.3</jersey.version>
-        <jackson.version>2.15.3</jackson.version>
+        <jackson.version>2.16.0</jackson.version>
         <junit.version>5.10.1</junit.version>
     </properties>
 
diff --git a/aws-serverless-spark-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-spark-archetype/src/main/resources/archetype-resources/build.gradle
index 8256e5648..030399610 100644
--- a/aws-serverless-spark-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-spark-archetype/src/main/resources/archetype-resources/build.gradle
@@ -9,7 +9,7 @@ dependencies {
   implementation (
           'com.sparkjava:spark-core:2.9.4',
           'com.amazonaws.serverless:aws-serverless-java-container-spark:[1.0,)',
-          'com.fasterxml.jackson.core:jackson-databind:2.15.3',
+          'com.fasterxml.jackson.core:jackson-databind:2.16.0',
   )
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
diff --git a/aws-serverless-spark-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-spark-archetype/src/main/resources/archetype-resources/pom.xml
index 17d8e0f71..a17ce2433 100644
--- a/aws-serverless-spark-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-spark-archetype/src/main/resources/archetype-resources/pom.xml
@@ -16,7 +16,7 @@
     <properties>
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
-        <jackson.version>2.15.3</jackson.version>
+        <jackson.version>2.16.0</jackson.version>
         <spark.version>2.9.4</spark.version>
         <junit.version>5.10.1</junit.version>
     </properties>
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
index e0626eaf0..3b00cdbb0 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
@@ -13,7 +13,7 @@ dependencies {
           'org.apache.logging.log4j:log4j-core:2.21.1',
           'org.apache.logging.log4j:log4j-api:2.21.1',
           'org.apache.logging.log4j:log4j-slf4j-impl:2.21.1',
-          'com.fasterxml.jackson.core:jackson-databind:2.15.3',
+          'com.fasterxml.jackson.core:jackson-databind:2.16.0',
           'com.amazonaws:aws-lambda-java-log4j2:1.6.0',
   )
 
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
index 420157dc1..4873b36fa 100644
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
@@ -34,8 +34,8 @@ dependencies {
     exclude group: 'org.apache.logging.log4j', module: 'log4j-api'
   }
   implementation ('org.hibernate.validator:hibernate-validator:6.1.7.Final')
-  implementation ('com.fasterxml.jackson.core:jackson-databind:2.15.3')
-  implementation ('com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.15.3')
+  implementation ('com.fasterxml.jackson.core:jackson-databind:2.16.0')
+  implementation ('com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.16.0')
   implementation ('org.apache.logging.log4j:log4j-core:2.21.1')
   implementation ('org.apache.logging.log4j:log4j-api:2.21.1')
   implementation ('org.apache.logging.log4j:log4j-slf4j-impl:2.21.1')
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
index 3367eba64..f2d0cec3f 100644
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
@@ -16,7 +16,7 @@
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
         <struts.version>6.1.2.1</struts.version>
-        <jackson.version>2.15.3</jackson.version>
+        <jackson.version>2.16.0</jackson.version>
         <junit.version>5.10.1</junit.version>
         <log4j.version>2.21.1</log4j.version>
     </properties>
diff --git a/pom.xml b/pom.xml
index 3dbac5bf1..bfbbe77ec 100644
--- a/pom.xml
+++ b/pom.xml
@@ -78,7 +78,7 @@
     <properties>
         <jacoco.minCoverage>0.7</jacoco.minCoverage>
         <dependencyCheck.version>8.4.2</dependencyCheck.version>
-        <jackson.version>2.15.3</jackson.version>
+        <jackson.version>2.16.0</jackson.version>
         <slf4j.version>2.0.9</slf4j.version>
         <junit.version>5.10.1</junit.version>
         <mockito.version>5.7.0</mockito.version>
diff --git a/samples/jersey/pet-store/build.gradle b/samples/jersey/pet-store/build.gradle
index 2b3c702a4..57a3338bc 100644
--- a/samples/jersey/pet-store/build.gradle
+++ b/samples/jersey/pet-store/build.gradle
@@ -8,7 +8,7 @@ repositories {
 dependencies {
   implementation (
           'com.amazonaws.serverless:aws-serverless-java-container-jersey:[2.0-SNAPSHOT,)',
-          'com.fasterxml.jackson.core:jackson-databind:2.15.3',
+          'com.fasterxml.jackson.core:jackson-databind:2.16.0',
   )
 
   implementation("org.glassfish.jersey.media:jersey-media-json-jackson:3.1.3") {
diff --git a/samples/jersey/pet-store/pom.xml b/samples/jersey/pet-store/pom.xml
index 3f10e8967..c0c0c58f7 100644
--- a/samples/jersey/pet-store/pom.xml
+++ b/samples/jersey/pet-store/pom.xml
@@ -27,7 +27,7 @@
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
         <jersey.version>3.1.3</jersey.version>
-        <jackson.version>2.15.3</jackson.version>
+        <jackson.version>2.16.0</jackson.version>
     </properties>
 
     <dependencies>
diff --git a/samples/spark/pet-store/build.gradle b/samples/spark/pet-store/build.gradle
index b2a39c6d6..372076de0 100644
--- a/samples/spark/pet-store/build.gradle
+++ b/samples/spark/pet-store/build.gradle
@@ -9,7 +9,7 @@ dependencies {
   implementation (
           'com.sparkjava:spark-core:2.9.4',
           'com.amazonaws.serverless:aws-serverless-java-container-spark:[1.0,)',
-          'com.fasterxml.jackson.core:jackson-databind:2.15.3',
+          'com.fasterxml.jackson.core:jackson-databind:2.16.0',
   )
 }
 
diff --git a/samples/spark/pet-store/pom.xml b/samples/spark/pet-store/pom.xml
index b38c8027f..4ceb5d708 100644
--- a/samples/spark/pet-store/pom.xml
+++ b/samples/spark/pet-store/pom.xml
@@ -26,7 +26,7 @@
     <properties>
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
-        <jackson.version>2.15.3</jackson.version>
+        <jackson.version>2.16.0</jackson.version>
         <spark.version>2.9.1</spark.version>
     </properties>
 
diff --git a/samples/spring/pet-store/build.gradle b/samples/spring/pet-store/build.gradle
index 2b5680227..4269af964 100644
--- a/samples/spring/pet-store/build.gradle
+++ b/samples/spring/pet-store/build.gradle
@@ -13,7 +13,7 @@ dependencies {
           'org.apache.logging.log4j:log4j-core:2.21.1',
           'org.apache.logging.log4j:log4j-api:2.21.1',
           'org.apache.logging.log4j:log4j-slf4j-impl:2.21.1',
-          'com.fasterxml.jackson.core:jackson-databind:2.15.3',
+          'com.fasterxml.jackson.core:jackson-databind:2.16.0',
           'com.amazonaws:aws-lambda-java-log4j2:1.6.0',
   )
 }
diff --git a/samples/struts/pet-store/build.gradle b/samples/struts/pet-store/build.gradle
index c0021070c..5da3ed6fd 100644
--- a/samples/struts/pet-store/build.gradle
+++ b/samples/struts/pet-store/build.gradle
@@ -22,8 +22,8 @@ dependencies {
           'org.hibernate.validator:hibernate-validator:6.1.7.Final',
           'org.glassfish:javax.el:3.0.0',
           'javax.el:javax.el-api:3.0.0',
-          'com.fasterxml.jackson.core:jackson-databind:2.15.3',
-          'com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.15.3',
+          'com.fasterxml.jackson.core:jackson-databind:2.16.0',
+          'com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.16.0',
           'org.apache.logging.log4j:log4j-core:2.21.1',
           'org.apache.logging.log4j:log4j-api:2.21.1',
           'com.amazonaws:aws-lambda-java-log4j2:1.6.0',
diff --git a/samples/struts/pet-store/pom.xml b/samples/struts/pet-store/pom.xml
index 6c4b71be2..e7d78cdae 100644
--- a/samples/struts/pet-store/pom.xml
+++ b/samples/struts/pet-store/pom.xml
@@ -27,7 +27,7 @@
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
         <struts.version>6.1.2.1</struts.version>
-        <jackson.version>2.15.3</jackson.version>
+        <jackson.version>2.16.0</jackson.version>
         <junit.version>4.13.2</junit.version>
         <log4j.version>2.21.1</log4j.version>
     </properties>

From 58fdc7c00a3df436270d00954fe476a3a162fc9e Mon Sep 17 00:00:00 2001
From: mbfreder <mbfreder@amazon.com>
Date: Thu, 16 Nov 2023 10:22:06 -0800
Subject: [PATCH 051/430] Fix: Incorrect ServerName with ALB

---
 .../serverless/proxy/internal/SecurityUtils.java      | 11 +++++++++--
 .../servlet/AwsHttpApiV2ProxyHttpServletRequest.java  |  2 +-
 .../internal/servlet/AwsProxyHttpServletRequest.java  |  2 +-
 .../servlet/AwsProxyHttpServletRequestTest.java       | 11 +++++++++++
 4 files changed, 22 insertions(+), 4 deletions(-)

diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/SecurityUtils.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/SecurityUtils.java
index d553d17a7..3f52f8950 100644
--- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/SecurityUtils.java
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/SecurityUtils.java
@@ -12,6 +12,8 @@
  */
 package com.amazonaws.serverless.proxy.internal;
 
+import com.amazonaws.serverless.proxy.model.AlbContext;
+import com.amazonaws.serverless.proxy.model.AwsProxyRequestContext;
 import com.amazonaws.serverless.proxy.model.ContainerConfig;
 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import org.slf4j.Logger;
@@ -21,6 +23,7 @@
 import java.io.IOException;
 import java.util.HashSet;
 import java.util.Locale;
+import java.util.Objects;
 import java.util.Set;
 
 /**
@@ -60,11 +63,15 @@ public static boolean isValidScheme(String scheme) {
         return SCHEMES.contains(scheme);
     }
 
-    public static boolean isValidHost(String host, String apiId, String region) {
+    public static boolean isValidHost(String host, String apiId, AlbContext elb, String region) {
         if (host == null) {
             return false;
         }
-        if (host.endsWith(".amazonaws.com")) {
+        if (!Objects.isNull(elb)) {
+            String albhost = new StringBuilder().append(region)
+                                                .append(".elb.amazonaws.com").toString();
+            return host.endsWith(albhost) || LambdaContainerHandler.getContainerConfig().getCustomDomainNames().contains(host);
+        } else if (host.endsWith(".amazonaws.com")) {
             String defaultHost = new StringBuilder().append(apiId)
                                                     .append(".execute-api.")
                                                     .append(region)
diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpApiV2ProxyHttpServletRequest.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpApiV2ProxyHttpServletRequest.java
index bdf11b819..c46abce22 100644
--- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpApiV2ProxyHttpServletRequest.java
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpApiV2ProxyHttpServletRequest.java
@@ -357,7 +357,7 @@ public String getServerName() {
 
         if (headers != null && headers.containsKey(HOST_HEADER_NAME)) {
             String hostHeader = headers.getFirst(HOST_HEADER_NAME);
-            if (SecurityUtils.isValidHost(hostHeader, request.getRequestContext().getApiId(), region)) {
+            if (SecurityUtils.isValidHost(hostHeader, request.getRequestContext().getApiId(), request.getRequestContext().getElb(), region)) {
                 return hostHeader;
             }
         }
diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequest.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequest.java
index a4ee15150..798ca82a4 100644
--- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequest.java
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequest.java
@@ -405,7 +405,7 @@ public String getServerName() {
 
         if (request.getMultiValueHeaders() != null && request.getMultiValueHeaders().containsKey(HOST_HEADER_NAME)) {
             String hostHeader = request.getMultiValueHeaders().getFirst(HOST_HEADER_NAME);
-            if (SecurityUtils.isValidHost(hostHeader, request.getRequestContext().getApiId(), region)) {
+            if (SecurityUtils.isValidHost(hostHeader, request.getRequestContext().getApiId(), request.getRequestContext().getElb(), region)) {
                 return hostHeader;
             }
         }
diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequestTest.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequestTest.java
index 855fae403..76507508b 100644
--- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequestTest.java
+++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequestTest.java
@@ -5,6 +5,7 @@
 import com.amazonaws.serverless.proxy.internal.testutils.AwsProxyRequestBuilder;
 
 import com.amazonaws.services.lambda.runtime.Context;
+import org.junit.jupiter.api.Test;
 import org.junit.jupiter.params.ParameterizedTest;
 import org.junit.jupiter.params.provider.MethodSource;
 
@@ -640,6 +641,16 @@ void serverName_hostHeader_returnsHostHeaderOnly(String type) {
         assertEquals("testapi.com", serverName);
     }
 
+    @Test
+    void serverName_albHostHeader_returnsHostHeader() {
+        initAwsProxyHttpServletRequestTest("ALB");
+        AwsProxyRequestBuilder proxyReq = new AwsProxyRequestBuilder("/test", "GET")
+                .header(HttpHeaders.HOST, "testapi.us-east-1.elb.amazonaws.com");
+        HttpServletRequest servletReq = getRequest(proxyReq, null, null);
+        String serverName = servletReq.getServerName();
+        assertEquals("testapi.us-east-1.elb.amazonaws.com", serverName);
+    }
+
     private AwsProxyRequestBuilder getRequestWithHeaders() {
         return new AwsProxyRequestBuilder("/hello", "GET")
                 .header(CUSTOM_HEADER_KEY, CUSTOM_HEADER_VALUE)

From 99a44be21644984b9d2184947b8f1b6e50e57bec Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Sun, 19 Nov 2023 08:57:13 +0100
Subject: [PATCH 052/430] feat: change archetypes and samples to use latest
 java21 runtime

---
 .../src/main/resources/archetype-resources/template.yml         | 2 +-
 .../src/main/resources/archetype-resources/template.yml         | 2 +-
 .../src/main/resources/archetype-resources/template.yml         | 2 +-
 samples/jersey/pet-store/template.yml                           | 2 +-
 samples/spring/pet-store/template.yml                           | 2 +-
 samples/springboot3/alt-pet-store/template.yml                  | 2 +-
 samples/springboot3/pet-store/template.yml                      | 2 +-
 7 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/template.yml b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/template.yml
index d8c3cca35..0ee7360dd 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/template.yml
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/template.yml
@@ -32,7 +32,7 @@ Resources:
     Type: AWS::Serverless::Function
     Properties:
       Handler: ${groupId}.StreamLambdaHandler::handleRequest
-      Runtime: java17
+      Runtime: java21
       CodeUri: .
       MemorySize: 512
       Policies: AWSLambdaBasicExecutionRole
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/template.yml b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/template.yml
index ec933bc7f..fe49737e5 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/template.yml
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/template.yml
@@ -32,7 +32,7 @@ Resources:
     Type: AWS::Serverless::Function
     Properties:
       Handler: ${groupId}.StreamLambdaHandler::handleRequest
-      Runtime: java17
+      Runtime: java21
       CodeUri: .
       MemorySize: 512
       Policies: AWSLambdaBasicExecutionRole
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/template.yml b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/template.yml
index 183b64d24..fe96b1fa2 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/template.yml
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/template.yml
@@ -32,7 +32,7 @@ Resources:
     Type: AWS::Serverless::Function
     Properties:
       Handler: ${groupId}.StreamLambdaHandler::handleRequest
-      Runtime: java17
+      Runtime: java21
       CodeUri: .
       MemorySize: 512
       Policies: AWSLambdaBasicExecutionRole
diff --git a/samples/jersey/pet-store/template.yml b/samples/jersey/pet-store/template.yml
index a3fd2bfa0..f16d04a7a 100644
--- a/samples/jersey/pet-store/template.yml
+++ b/samples/jersey/pet-store/template.yml
@@ -12,7 +12,7 @@ Resources:
     Type: AWS::Serverless::Function
     Properties:
       Handler: com.amazonaws.serverless.sample.jersey.StreamLambdaHandler::handleRequest
-      Runtime: java17
+      Runtime: java21
       CodeUri: .
       MemorySize: 512
       Policies: AWSLambdaBasicExecutionRole
diff --git a/samples/spring/pet-store/template.yml b/samples/spring/pet-store/template.yml
index 5a029f8ae..34cecbca2 100644
--- a/samples/spring/pet-store/template.yml
+++ b/samples/spring/pet-store/template.yml
@@ -12,7 +12,7 @@ Resources:
     Type: AWS::Serverless::Function
     Properties:
       Handler: com.amazonaws.serverless.sample.spring.StreamLambdaHandler::handleRequest
-      Runtime: java17
+      Runtime: java21
       CodeUri: .
       MemorySize: 512
       Policies: AWSLambdaBasicExecutionRole
diff --git a/samples/springboot3/alt-pet-store/template.yml b/samples/springboot3/alt-pet-store/template.yml
index 8a51c8d1d..c883f0850 100644
--- a/samples/springboot3/alt-pet-store/template.yml
+++ b/samples/springboot3/alt-pet-store/template.yml
@@ -14,7 +14,7 @@ Resources:
 #      AutoPublishAlias: bcn
       FunctionName: pet-store-boot-3
       Handler: com.amazonaws.serverless.proxy.spring.SpringDelegatingLambdaContainerHandler::handleRequest
-      Runtime: java17
+      Runtime: java21
       SnapStart:
         ApplyOn: PublishedVersions
       CodeUri: .
diff --git a/samples/springboot3/pet-store/template.yml b/samples/springboot3/pet-store/template.yml
index ec78e3ebe..a8474349b 100644
--- a/samples/springboot3/pet-store/template.yml
+++ b/samples/springboot3/pet-store/template.yml
@@ -12,7 +12,7 @@ Resources:
     Type: AWS::Serverless::Function
     Properties:
       Handler: com.amazonaws.serverless.sample.springboot3.StreamLambdaHandler::handleRequest
-      Runtime: java17
+      Runtime: java21
       CodeUri: .
       MemorySize: 1512
       Policies: AWSLambdaBasicExecutionRole

From 549e2ecd2aef60d266b1fa493255fe0e26690ed2 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 20 Nov 2023 05:08:08 +0000
Subject: [PATCH 053/430] chore(deps): bump org.owasp:dependency-check-maven
 from 8.4.2 to 8.4.3

Bumps [org.owasp:dependency-check-maven](https://github.com/jeremylong/DependencyCheck) from 8.4.2 to 8.4.3.
- [Release notes](https://github.com/jeremylong/DependencyCheck/releases)
- [Changelog](https://github.com/jeremylong/DependencyCheck/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jeremylong/DependencyCheck/compare/v8.4.2...v8.4.3)

---
updated-dependencies:
- dependency-name: org.owasp:dependency-check-maven
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index bfbbe77ec..e4a57a4c9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -77,7 +77,7 @@
 
     <properties>
         <jacoco.minCoverage>0.7</jacoco.minCoverage>
-        <dependencyCheck.version>8.4.2</dependencyCheck.version>
+        <dependencyCheck.version>8.4.3</dependencyCheck.version>
         <jackson.version>2.16.0</jackson.version>
         <slf4j.version>2.0.9</slf4j.version>
         <junit.version>5.10.1</junit.version>

From 040112a368d7be301d8c2f15784367473baeefd4 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Fri, 24 Nov 2023 07:59:49 +0100
Subject: [PATCH 054/430] chore(deps): Update Spring dependencies (framework to
 6.1.1, security to 6.2.0, boot to 3.2.0)

---
 aws-serverless-java-container-core/pom.xml                  | 2 +-
 aws-serverless-java-container-spring/pom.xml                | 4 ++--
 aws-serverless-java-container-springboot3/pom.xml           | 6 +++---
 .../src/main/resources/archetype-resources/build.gradle     | 4 ++--
 .../src/main/resources/archetype-resources/pom.xml          | 2 +-
 .../src/main/resources/archetype-resources/build.gradle     | 2 +-
 .../src/main/resources/archetype-resources/pom.xml          | 2 +-
 samples/spring/pet-store/build.gradle                       | 4 ++--
 samples/spring/pet-store/pom.xml                            | 2 +-
 samples/springboot3/alt-pet-store/build.gradle              | 2 +-
 samples/springboot3/alt-pet-store/pom.xml                   | 2 +-
 samples/springboot3/pet-store/build.gradle                  | 2 +-
 samples/springboot3/pet-store/pom.xml                       | 2 +-
 13 files changed, 18 insertions(+), 18 deletions(-)

diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml
index f76f5dde9..cb8e2c67e 100644
--- a/aws-serverless-java-container-core/pom.xml
+++ b/aws-serverless-java-container-core/pom.xml
@@ -60,7 +60,7 @@
         <dependency>
             <groupId>org.springframework.security</groupId>
             <artifactId>spring-security-web</artifactId>
-            <version>6.1.5</version>
+            <version>6.2.0</version>
             <scope>test</scope>
         </dependency>
     </dependencies>
diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml
index bef9bbdd5..7e21cf5b1 100644
--- a/aws-serverless-java-container-spring/pom.xml
+++ b/aws-serverless-java-container-spring/pom.xml
@@ -16,8 +16,8 @@
     </parent>
 
     <properties>
-        <spring.version>6.0.13</spring.version>
-        <spring-security.version>6.1.5</spring-security.version>
+        <spring.version>6.1.1</spring.version>
+        <spring-security.version>6.2.0</spring-security.version>
     </properties>
 
     <dependencies>
diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml
index e9e4b843e..5ad6ee9e9 100644
--- a/aws-serverless-java-container-springboot3/pom.xml
+++ b/aws-serverless-java-container-springboot3/pom.xml
@@ -15,9 +15,9 @@
     <version>2.0.0-SNAPSHOT</version>
 
     <properties>
-        <spring.version>6.0.13</spring.version>
-        <springboot.version>3.1.5</springboot.version>
-        <springsecurity.version>6.1.5</springsecurity.version>
+        <spring.version>6.1.1</spring.version>
+        <springboot.version>3.2.0</springboot.version>
+        <springsecurity.version>6.2.0</springsecurity.version>
     </properties>
 
     <dependencies>
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
index 3b00cdbb0..54a1bc568 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
@@ -7,8 +7,8 @@ repositories {
 
 dependencies {
   implementation (
-          'org.springframework:spring-webmvc:6.0.13',
-          'org.springframework:spring-context:6.0.13',
+          'org.springframework:spring-webmvc:6.1.1',
+          'org.springframework:spring-context:6.1.1',
           'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)',
           'org.apache.logging.log4j:log4j-core:2.21.1',
           'org.apache.logging.log4j:log4j-api:2.21.1',
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
index 87e4a468c..8f3e75d07 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
@@ -16,7 +16,7 @@
     <properties>
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
-        <spring.version>6.0.13</spring.version>
+        <spring.version>6.1.1</spring.version>
         <junit.version>5.10.1</junit.version>
         <log4j.version>2.21.1</log4j.version>
     </properties>
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
index b2cd533de..3903c9689 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
@@ -9,7 +9,7 @@ repositories {
 
 dependencies {
   implementation (
-          'org.springframework.boot:spring-boot-starter-web:3.1.5',
+          'org.springframework.boot:spring-boot-starter-web:3.2.0',
           'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)',
   )
 
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
index aa6b41bd6..24b7f2475 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
@@ -16,7 +16,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.1.5</version>
+        <version>3.2.0</version>
     </parent>
 
     <properties>
diff --git a/samples/spring/pet-store/build.gradle b/samples/spring/pet-store/build.gradle
index 4269af964..a600e3565 100644
--- a/samples/spring/pet-store/build.gradle
+++ b/samples/spring/pet-store/build.gradle
@@ -7,8 +7,8 @@ repositories {
 
 dependencies {
   implementation (
-          'org.springframework:spring-webmvc:6.0.13',
-          'org.springframework:spring-context:6.0.13',
+          'org.springframework:spring-webmvc:6.1.1',
+          'org.springframework:spring-context:6.1.1',
           'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)',
           'org.apache.logging.log4j:log4j-core:2.21.1',
           'org.apache.logging.log4j:log4j-api:2.21.1',
diff --git a/samples/spring/pet-store/pom.xml b/samples/spring/pet-store/pom.xml
index fed191c34..a74a5556f 100644
--- a/samples/spring/pet-store/pom.xml
+++ b/samples/spring/pet-store/pom.xml
@@ -24,7 +24,7 @@
     </licenses>
 
     <properties>
-        <spring.version>6.0.13</spring.version>
+        <spring.version>6.1.1</spring.version>
         <log4j.version>2.21.1</log4j.version>
         <maven.compiler.source>17</maven.compiler.source>
         <maven.compiler.target>17</maven.compiler.target>
diff --git a/samples/springboot3/alt-pet-store/build.gradle b/samples/springboot3/alt-pet-store/build.gradle
index 1d16c3ec3..7968de6d2 100644
--- a/samples/springboot3/alt-pet-store/build.gradle
+++ b/samples/springboot3/alt-pet-store/build.gradle
@@ -9,7 +9,7 @@ repositories {
 
 dependencies {
   implementation (
-          implementation('org.springframework.boot:spring-boot-starter-web:3.1.5') {
+          implementation('org.springframework.boot:spring-boot-starter-web:3.2.0') {
             exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat'
           },
           'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)',
diff --git a/samples/springboot3/alt-pet-store/pom.xml b/samples/springboot3/alt-pet-store/pom.xml
index 9c97e2db5..1f9617c2c 100644
--- a/samples/springboot3/alt-pet-store/pom.xml
+++ b/samples/springboot3/alt-pet-store/pom.xml
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.1.5</version>
+        <version>3.2.0</version>
     </parent>
 
     <licenses>
diff --git a/samples/springboot3/pet-store/build.gradle b/samples/springboot3/pet-store/build.gradle
index 1d16c3ec3..7968de6d2 100644
--- a/samples/springboot3/pet-store/build.gradle
+++ b/samples/springboot3/pet-store/build.gradle
@@ -9,7 +9,7 @@ repositories {
 
 dependencies {
   implementation (
-          implementation('org.springframework.boot:spring-boot-starter-web:3.1.5') {
+          implementation('org.springframework.boot:spring-boot-starter-web:3.2.0') {
             exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat'
           },
           'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)',
diff --git a/samples/springboot3/pet-store/pom.xml b/samples/springboot3/pet-store/pom.xml
index c0d0a59fe..689bab5e5 100644
--- a/samples/springboot3/pet-store/pom.xml
+++ b/samples/springboot3/pet-store/pom.xml
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.1.5</version>
+        <version>3.2.0</version>
     </parent>
 
     <licenses>

From ffd858ee7499e8afcf1c8a980c756482141109e8 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Fri, 24 Nov 2023 16:01:01 -0600
Subject: [PATCH 055/430] feat: handle Spring's ErrorResponse in separate
 default ExceptionHandlers (fixes #690)

---
 .../proxy/AwsProxyExceptionHandler.java       | 15 ++++++-----
 .../ServletLambdaContainerHandlerBuilder.java |  8 ++++--
 .../proxy/AwsProxyExceptionHandlerTest.java   |  2 +-
 .../SpringAwsProxyExceptionHandler.java       | 24 +++++++++++++++++
 .../spring/SpringProxyHandlerBuilder.java     |  6 +++++
 .../SpringAwsProxyExceptionHandlerTest.java   | 21 +++++++++++++++
 .../SpringBootAwsProxyExceptionHandler.java   | 27 +++++++++++++++++++
 .../spring/SpringBootProxyHandlerBuilder.java |  6 +++++
 8 files changed, 99 insertions(+), 10 deletions(-)
 create mode 100644 aws-serverless-java-container-spring/src/main/java/com/amazonaws/serverless/proxy/spring/SpringAwsProxyExceptionHandler.java
 create mode 100644 aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/SpringAwsProxyExceptionHandlerTest.java
 create mode 100644 aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/SpringBootAwsProxyExceptionHandler.java

diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/AwsProxyExceptionHandler.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/AwsProxyExceptionHandler.java
index 1e30f1415..0ae00b4da 100644
--- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/AwsProxyExceptionHandler.java
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/AwsProxyExceptionHandler.java
@@ -19,6 +19,7 @@
 import com.amazonaws.serverless.proxy.model.Headers;
 
 import com.fasterxml.jackson.core.JsonProcessingException;
+import jakarta.ws.rs.core.Response;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -47,22 +48,22 @@ public class AwsProxyExceptionHandler
     // Constants
     //-------------------------------------------------------------
 
-    static final String INTERNAL_SERVER_ERROR = "Internal Server Error";
-    static final String GATEWAY_TIMEOUT_ERROR = "Gateway timeout";
+    static final String INTERNAL_SERVER_ERROR = Response.Status.INTERNAL_SERVER_ERROR.getReasonPhrase();
+    static final String GATEWAY_TIMEOUT_ERROR = Response.Status.GATEWAY_TIMEOUT.getReasonPhrase();
 
 
     //-------------------------------------------------------------
     // Variables - Private - Static
     //-------------------------------------------------------------
 
-    private static Headers headers = new Headers();
+    protected static final Headers HEADERS = new Headers();
 
     //-------------------------------------------------------------
     // Constructors
     //-------------------------------------------------------------
 
     static {
-        headers.putSingle(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON);
+        HEADERS.putSingle(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON);
     }
 
 
@@ -79,9 +80,9 @@ public AwsProxyResponse handle(Throwable ex) {
         // output to go to the stderr.
         ex.printStackTrace();
         if (ex instanceof InvalidRequestEventException || ex instanceof InternalServerErrorException) {
-            return new AwsProxyResponse(500, headers, getErrorJson(INTERNAL_SERVER_ERROR));
+            return new AwsProxyResponse(500, HEADERS, getErrorJson(INTERNAL_SERVER_ERROR));
         } else {
-            return new AwsProxyResponse(502, headers, getErrorJson(GATEWAY_TIMEOUT_ERROR));
+            return new AwsProxyResponse(502, HEADERS, getErrorJson(GATEWAY_TIMEOUT_ERROR));
         }
     }
 
@@ -98,7 +99,7 @@ public void handle(Throwable ex, OutputStream stream) throws IOException {
     // Methods - Protected
     //-------------------------------------------------------------
 
-    String getErrorJson(String message) {
+    protected String getErrorJson(String message) {
 
         try {
             return LambdaContainerHandler.getObjectMapper().writeValueAsString(new ErrorModel(message));
diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/ServletLambdaContainerHandlerBuilder.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/ServletLambdaContainerHandlerBuilder.java
index adacd2e1f..a2c1c73ff 100644
--- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/ServletLambdaContainerHandlerBuilder.java
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/ServletLambdaContainerHandlerBuilder.java
@@ -96,7 +96,7 @@ public Builder defaultProxy() {
                 .requestReader((RequestReader<RequestType, ContainerRequestType>) new AwsProxyHttpServletRequestReader())
                 .responseWriter((ResponseWriter<AwsHttpServletResponse, ResponseType>) new AwsProxyHttpServletResponseWriter())
                 .securityContextWriter((SecurityContextWriter<RequestType>) new AwsProxySecurityContextWriter())
-                .exceptionHandler((ExceptionHandler<ResponseType>) new AwsProxyExceptionHandler())
+                .exceptionHandler(defaultExceptionHandler())
                 .requestTypeClass((Class<RequestType>) AwsProxyRequest.class)
                 .responseTypeClass((Class<ResponseType>) AwsProxyResponse.class);
         return self();
@@ -112,13 +112,17 @@ public Builder defaultHttpApiV2Proxy() {
                 .requestReader((RequestReader<RequestType, ContainerRequestType>) new AwsHttpApiV2HttpServletRequestReader())
                 .responseWriter((ResponseWriter<AwsHttpServletResponse, ResponseType>) new AwsProxyHttpServletResponseWriter(true))
                 .securityContextWriter((SecurityContextWriter<RequestType>) new AwsHttpApiV2SecurityContextWriter())
-                .exceptionHandler((ExceptionHandler<ResponseType>) new AwsProxyExceptionHandler())
+                .exceptionHandler(defaultExceptionHandler())
                 .requestTypeClass((Class<RequestType>) HttpApiV2ProxyRequest.class)
                 .responseTypeClass((Class<ResponseType>) AwsProxyResponse.class);
         return self();
 
     }
 
+    protected ExceptionHandler<ResponseType> defaultExceptionHandler() {
+        return (ExceptionHandler<ResponseType>) new AwsProxyExceptionHandler();
+    }
+
     /**
      * Sets the initialization wrapper to be used by the {@link ServletLambdaContainerHandlerBuilder#buildAndInitialize()}
      * method to start the framework implementations
diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/AwsProxyExceptionHandlerTest.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/AwsProxyExceptionHandlerTest.java
index f94371d69..012827e40 100644
--- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/AwsProxyExceptionHandlerTest.java
+++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/AwsProxyExceptionHandlerTest.java
@@ -231,7 +231,7 @@ void errorMessage_InternalServerError_staticString() {
 
     @Test
     void errorMessage_GatewayTimeout_staticString() {
-        assertEquals("Gateway timeout", AwsProxyExceptionHandler.GATEWAY_TIMEOUT_ERROR);
+        assertEquals("Gateway Timeout", AwsProxyExceptionHandler.GATEWAY_TIMEOUT_ERROR);
     }
 
     @Test
diff --git a/aws-serverless-java-container-spring/src/main/java/com/amazonaws/serverless/proxy/spring/SpringAwsProxyExceptionHandler.java b/aws-serverless-java-container-spring/src/main/java/com/amazonaws/serverless/proxy/spring/SpringAwsProxyExceptionHandler.java
new file mode 100644
index 000000000..21ec94166
--- /dev/null
+++ b/aws-serverless-java-container-spring/src/main/java/com/amazonaws/serverless/proxy/spring/SpringAwsProxyExceptionHandler.java
@@ -0,0 +1,24 @@
+package com.amazonaws.serverless.proxy.spring;
+
+import com.amazonaws.serverless.proxy.AwsProxyExceptionHandler;
+import com.amazonaws.serverless.proxy.ExceptionHandler;
+import com.amazonaws.serverless.proxy.model.AwsProxyResponse;
+import org.springframework.web.ErrorResponse;
+
+/**
+ * This ExceptionHandler implementation enhances the standard AwsProxyExceptionHandler
+ * by mapping additional details from org.springframework.web.ErrorResponse
+ */
+public class SpringAwsProxyExceptionHandler extends AwsProxyExceptionHandler
+        implements ExceptionHandler<AwsProxyResponse> {
+    @Override
+    public AwsProxyResponse handle(Throwable ex) {
+        if (ex instanceof ErrorResponse) {
+            return new AwsProxyResponse(((ErrorResponse) ex).getStatusCode().value(),
+                    HEADERS, getErrorJson(ex.getMessage()));
+        } else {
+            return super.handle(ex);
+        }
+    }
+
+}
diff --git a/aws-serverless-java-container-spring/src/main/java/com/amazonaws/serverless/proxy/spring/SpringProxyHandlerBuilder.java b/aws-serverless-java-container-spring/src/main/java/com/amazonaws/serverless/proxy/spring/SpringProxyHandlerBuilder.java
index 5614b94df..ba6cbba33 100644
--- a/aws-serverless-java-container-spring/src/main/java/com/amazonaws/serverless/proxy/spring/SpringProxyHandlerBuilder.java
+++ b/aws-serverless-java-container-spring/src/main/java/com/amazonaws/serverless/proxy/spring/SpringProxyHandlerBuilder.java
@@ -13,6 +13,7 @@
 package com.amazonaws.serverless.proxy.spring;
 
 import com.amazonaws.serverless.exceptions.ContainerInitializationException;
+import com.amazonaws.serverless.proxy.ExceptionHandler;
 import com.amazonaws.serverless.proxy.internal.servlet.ServletLambdaContainerHandlerBuilder;
 import com.amazonaws.serverless.proxy.model.AwsProxyResponse;
 import org.springframework.web.context.ConfigurableWebApplicationContext;
@@ -86,4 +87,9 @@ public SpringLambdaContainerHandler<RequestType, AwsProxyResponse> buildAndIniti
         initializationWrapper.start(handler);
         return handler;
     }
+
+    @Override
+    protected ExceptionHandler<AwsProxyResponse> defaultExceptionHandler() {
+        return new SpringAwsProxyExceptionHandler();
+    }
 }
diff --git a/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/SpringAwsProxyExceptionHandlerTest.java b/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/SpringAwsProxyExceptionHandlerTest.java
new file mode 100644
index 000000000..5f4a14152
--- /dev/null
+++ b/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/SpringAwsProxyExceptionHandlerTest.java
@@ -0,0 +1,21 @@
+package com.amazonaws.serverless.proxy.spring;
+
+import com.amazonaws.serverless.proxy.model.AwsProxyResponse;
+import jakarta.ws.rs.core.Response;
+import org.junit.jupiter.api.Test;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpMethod;
+import org.springframework.web.servlet.NoHandlerFoundException;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+public class SpringAwsProxyExceptionHandlerTest {
+
+    @Test
+    void noHandlerFoundExceptionResultsIn404() {
+        AwsProxyResponse response = new SpringAwsProxyExceptionHandler().
+                handle(new NoHandlerFoundException(HttpMethod.GET.name(), "https://atesturl",
+                        HttpHeaders.EMPTY));
+        assertEquals(Response.Status.NOT_FOUND.getStatusCode(), response.getStatusCode());
+    }
+}
diff --git a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/SpringBootAwsProxyExceptionHandler.java b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/SpringBootAwsProxyExceptionHandler.java
new file mode 100644
index 000000000..127ef6684
--- /dev/null
+++ b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/SpringBootAwsProxyExceptionHandler.java
@@ -0,0 +1,27 @@
+package com.amazonaws.serverless.proxy.spring;
+
+import com.amazonaws.serverless.proxy.AwsProxyExceptionHandler;
+import com.amazonaws.serverless.proxy.ExceptionHandler;
+import com.amazonaws.serverless.proxy.model.AwsProxyResponse;
+import org.springframework.web.ErrorResponse;
+
+/**
+ * This ExceptionHandler implementation enhances the standard AwsProxyExceptionHandler
+ * by mapping additional details from org.springframework.web.ErrorResponse
+ *
+ * As of now this class is identical with SpringAwsProxyExceptionHandler. We may consider
+ * moving it to a common module to share it in the future.
+ */
+public class SpringBootAwsProxyExceptionHandler extends AwsProxyExceptionHandler
+        implements ExceptionHandler<AwsProxyResponse> {
+    @Override
+    public AwsProxyResponse handle(Throwable ex) {
+        if (ex instanceof ErrorResponse) {
+            return new AwsProxyResponse(((ErrorResponse) ex).getStatusCode().value(),
+                    HEADERS, getErrorJson(ex.getMessage()));
+        } else {
+            return super.handle(ex);
+        }
+    }
+
+}
diff --git a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/SpringBootProxyHandlerBuilder.java b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/SpringBootProxyHandlerBuilder.java
index cdec18551..e7ad017f1 100644
--- a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/SpringBootProxyHandlerBuilder.java
+++ b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/SpringBootProxyHandlerBuilder.java
@@ -13,6 +13,7 @@
 package com.amazonaws.serverless.proxy.spring;
 
 import com.amazonaws.serverless.exceptions.ContainerInitializationException;
+import com.amazonaws.serverless.proxy.ExceptionHandler;
 import com.amazonaws.serverless.proxy.internal.servlet.ServletLambdaContainerHandlerBuilder;
 import com.amazonaws.serverless.proxy.model.AwsProxyResponse;
 import org.springframework.boot.WebApplicationType;
@@ -79,4 +80,9 @@ public SpringBootLambdaContainerHandler<RequestType, AwsProxyResponse> buildAndI
         initializationWrapper.start(handler);
         return handler;
     }
+
+    @Override
+    protected ExceptionHandler<AwsProxyResponse> defaultExceptionHandler() {
+        return new SpringBootAwsProxyExceptionHandler();
+    }
 }

From 020f99c79a3fc84db89cd89867961b7b2ce4b729 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Wed, 29 Nov 2023 10:54:12 -0800
Subject: [PATCH 056/430] chore(deps): update Log4J to 2.22.0

---
 .../src/main/resources/archetype-resources/build.gradle     | 6 +++---
 .../src/main/resources/archetype-resources/pom.xml          | 2 +-
 .../src/main/resources/archetype-resources/build.gradle     | 6 +++---
 .../src/main/resources/archetype-resources/pom.xml          | 2 +-
 samples/spring/pet-store/build.gradle                       | 6 +++---
 samples/spring/pet-store/pom.xml                            | 2 +-
 samples/struts/pet-store/build.gradle                       | 4 ++--
 samples/struts/pet-store/pom.xml                            | 2 +-
 8 files changed, 15 insertions(+), 15 deletions(-)

diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
index 54a1bc568..a23a8886b 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
@@ -10,9 +10,9 @@ dependencies {
           'org.springframework:spring-webmvc:6.1.1',
           'org.springframework:spring-context:6.1.1',
           'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)',
-          'org.apache.logging.log4j:log4j-core:2.21.1',
-          'org.apache.logging.log4j:log4j-api:2.21.1',
-          'org.apache.logging.log4j:log4j-slf4j-impl:2.21.1',
+          'org.apache.logging.log4j:log4j-core:2.22.0',
+          'org.apache.logging.log4j:log4j-api:2.22.0',
+          'org.apache.logging.log4j:log4j-slf4j-impl:2.22.0',
           'com.fasterxml.jackson.core:jackson-databind:2.16.0',
           'com.amazonaws:aws-lambda-java-log4j2:1.6.0',
   )
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
index 8f3e75d07..5de867d44 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
@@ -18,7 +18,7 @@
         <maven.compiler.target>1.8</maven.compiler.target>
         <spring.version>6.1.1</spring.version>
         <junit.version>5.10.1</junit.version>
-        <log4j.version>2.21.1</log4j.version>
+        <log4j.version>2.22.0</log4j.version>
     </properties>
 
     <dependencies>
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
index 4873b36fa..405b8235f 100644
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
@@ -36,9 +36,9 @@ dependencies {
   implementation ('org.hibernate.validator:hibernate-validator:6.1.7.Final')
   implementation ('com.fasterxml.jackson.core:jackson-databind:2.16.0')
   implementation ('com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.16.0')
-  implementation ('org.apache.logging.log4j:log4j-core:2.21.1')
-  implementation ('org.apache.logging.log4j:log4j-api:2.21.1')
-  implementation ('org.apache.logging.log4j:log4j-slf4j-impl:2.21.1')
+  implementation ('org.apache.logging.log4j:log4j-core:2.22.0')
+  implementation ('org.apache.logging.log4j:log4j-api:2.22.0')
+  implementation ('org.apache.logging.log4j:log4j-slf4j-impl:2.22.0')
   implementation ('com.amazonaws:aws-lambda-java-log4j2:1.6.0')
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
index f2d0cec3f..0b87921b8 100644
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
@@ -18,7 +18,7 @@
         <struts.version>6.1.2.1</struts.version>
         <jackson.version>2.16.0</jackson.version>
         <junit.version>5.10.1</junit.version>
-        <log4j.version>2.21.1</log4j.version>
+        <log4j.version>2.22.0</log4j.version>
     </properties>
 
     <dependencies>
diff --git a/samples/spring/pet-store/build.gradle b/samples/spring/pet-store/build.gradle
index a600e3565..2d1fec236 100644
--- a/samples/spring/pet-store/build.gradle
+++ b/samples/spring/pet-store/build.gradle
@@ -10,9 +10,9 @@ dependencies {
           'org.springframework:spring-webmvc:6.1.1',
           'org.springframework:spring-context:6.1.1',
           'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)',
-          'org.apache.logging.log4j:log4j-core:2.21.1',
-          'org.apache.logging.log4j:log4j-api:2.21.1',
-          'org.apache.logging.log4j:log4j-slf4j-impl:2.21.1',
+          'org.apache.logging.log4j:log4j-core:2.22.0',
+          'org.apache.logging.log4j:log4j-api:2.22.0',
+          'org.apache.logging.log4j:log4j-slf4j-impl:2.22.0',
           'com.fasterxml.jackson.core:jackson-databind:2.16.0',
           'com.amazonaws:aws-lambda-java-log4j2:1.6.0',
   )
diff --git a/samples/spring/pet-store/pom.xml b/samples/spring/pet-store/pom.xml
index a74a5556f..69eedcce2 100644
--- a/samples/spring/pet-store/pom.xml
+++ b/samples/spring/pet-store/pom.xml
@@ -25,7 +25,7 @@
 
     <properties>
         <spring.version>6.1.1</spring.version>
-        <log4j.version>2.21.1</log4j.version>
+        <log4j.version>2.22.0</log4j.version>
         <maven.compiler.source>17</maven.compiler.source>
         <maven.compiler.target>17</maven.compiler.target>
     </properties>
diff --git a/samples/struts/pet-store/build.gradle b/samples/struts/pet-store/build.gradle
index 5da3ed6fd..dc018b719 100644
--- a/samples/struts/pet-store/build.gradle
+++ b/samples/struts/pet-store/build.gradle
@@ -24,8 +24,8 @@ dependencies {
           'javax.el:javax.el-api:3.0.0',
           'com.fasterxml.jackson.core:jackson-databind:2.16.0',
           'com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.16.0',
-          'org.apache.logging.log4j:log4j-core:2.21.1',
-          'org.apache.logging.log4j:log4j-api:2.21.1',
+          'org.apache.logging.log4j:log4j-core:2.22.0',
+          'org.apache.logging.log4j:log4j-api:2.22.0',
           'com.amazonaws:aws-lambda-java-log4j2:1.6.0',
   )
 }
diff --git a/samples/struts/pet-store/pom.xml b/samples/struts/pet-store/pom.xml
index e7d78cdae..b44057e32 100644
--- a/samples/struts/pet-store/pom.xml
+++ b/samples/struts/pet-store/pom.xml
@@ -29,7 +29,7 @@
         <struts.version>6.1.2.1</struts.version>
         <jackson.version>2.16.0</jackson.version>
         <junit.version>4.13.2</junit.version>
-        <log4j.version>2.21.1</log4j.version>
+        <log4j.version>2.22.0</log4j.version>
     </properties>
 
     <dependencies>

From aad7d896059d56cc2ebcfc78a3b8bdaa445035fe Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 29 Nov 2023 18:55:22 +0000
Subject: [PATCH 057/430] chore(deps): bump org.owasp:dependency-check-maven
 from 8.4.3 to 9.0.1

Bumps [org.owasp:dependency-check-maven](https://github.com/jeremylong/DependencyCheck) from 8.4.3 to 9.0.1.
- [Release notes](https://github.com/jeremylong/DependencyCheck/releases)
- [Changelog](https://github.com/jeremylong/DependencyCheck/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jeremylong/DependencyCheck/compare/v8.4.3...v9.0.1)

---
updated-dependencies:
- dependency-name: org.owasp:dependency-check-maven
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index e4a57a4c9..8e8a4e792 100644
--- a/pom.xml
+++ b/pom.xml
@@ -77,7 +77,7 @@
 
     <properties>
         <jacoco.minCoverage>0.7</jacoco.minCoverage>
-        <dependencyCheck.version>8.4.3</dependencyCheck.version>
+        <dependencyCheck.version>9.0.1</dependencyCheck.version>
         <jackson.version>2.16.0</jackson.version>
         <slf4j.version>2.0.9</slf4j.version>
         <junit.version>5.10.1</junit.version>

From f7357fa5d12b6c06f6c579563fcf4fa30c185981 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 29 Nov 2023 18:55:51 +0000
Subject: [PATCH 058/430] chore(deps-dev): bump
 org.apache.httpcomponents.client5:httpclient5

Bumps [org.apache.httpcomponents.client5:httpclient5](https://github.com/apache/httpcomponents-client) from 5.2.1 to 5.2.2.
- [Changelog](https://github.com/apache/httpcomponents-client/blob/rel/v5.2.2/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.2.1...rel/v5.2.2)

---
updated-dependencies:
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index e4a57a4c9..29d308225 100644
--- a/pom.xml
+++ b/pom.xml
@@ -119,7 +119,7 @@
         <dependency>
             <groupId>org.apache.httpcomponents.client5</groupId>
             <artifactId>httpclient5</artifactId>
-            <version>5.2.1</version>
+            <version>5.2.2</version>
             <scope>test</scope>
         </dependency>
 

From 8249e7de0ecbb65b7100606b95f8fcba177042b8 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 4 Dec 2023 04:11:59 +0000
Subject: [PATCH 059/430] chore(deps-dev): bump org.mockito:mockito-core from
 5.7.0 to 5.8.0

Bumps [org.mockito:mockito-core](https://github.com/mockito/mockito) from 5.7.0 to 5.8.0.
- [Release notes](https://github.com/mockito/mockito/releases)
- [Commits](https://github.com/mockito/mockito/compare/v5.7.0...v5.8.0)

---
updated-dependencies:
- dependency-name: org.mockito:mockito-core
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 361e9d28e..7b59c143b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -81,7 +81,7 @@
         <jackson.version>2.16.0</jackson.version>
         <slf4j.version>2.0.9</slf4j.version>
         <junit.version>5.10.1</junit.version>
-        <mockito.version>5.7.0</mockito.version>
+        <mockito.version>5.8.0</mockito.version>
         <hamcrest.version>1.3</hamcrest.version>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     </properties>

From 185040fa90ba205395723dcfdb27388b746b879f Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 4 Dec 2023 04:12:04 +0000
Subject: [PATCH 060/430] chore(deps): bump org.owasp:dependency-check-maven
 from 9.0.1 to 9.0.2

Bumps [org.owasp:dependency-check-maven](https://github.com/jeremylong/DependencyCheck) from 9.0.1 to 9.0.2.
- [Release notes](https://github.com/jeremylong/DependencyCheck/releases)
- [Changelog](https://github.com/jeremylong/DependencyCheck/blob/v9.0.2/CHANGELOG.md)
- [Commits](https://github.com/jeremylong/DependencyCheck/compare/v9.0.1...v9.0.2)

---
updated-dependencies:
- dependency-name: org.owasp:dependency-check-maven
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 361e9d28e..3e6f7014a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -77,7 +77,7 @@
 
     <properties>
         <jacoco.minCoverage>0.7</jacoco.minCoverage>
-        <dependencyCheck.version>9.0.1</dependencyCheck.version>
+        <dependencyCheck.version>9.0.2</dependencyCheck.version>
         <jackson.version>2.16.0</jackson.version>
         <slf4j.version>2.0.9</slf4j.version>
         <junit.version>5.10.1</junit.version>

From fc9024668c4d1f55b0e1354e991479e256129ee1 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 4 Dec 2023 04:12:08 +0000
Subject: [PATCH 061/430] chore(deps-dev): bump
 org.apache.httpcomponents.client5:httpclient5

Bumps [org.apache.httpcomponents.client5:httpclient5](https://github.com/apache/httpcomponents-client) from 5.2.2 to 5.2.3.
- [Changelog](https://github.com/apache/httpcomponents-client/blob/rel/v5.2.3/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.2.2...rel/v5.2.3)

---
updated-dependencies:
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 361e9d28e..3802ad864 100644
--- a/pom.xml
+++ b/pom.xml
@@ -119,7 +119,7 @@
         <dependency>
             <groupId>org.apache.httpcomponents.client5</groupId>
             <artifactId>httpclient5</artifactId>
-            <version>5.2.2</version>
+            <version>5.2.3</version>
             <scope>test</scope>
         </dependency>
 

From 31701f106daf8a9335663cb345d3a0be9a923ba8 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 4 Dec 2023 04:12:14 +0000
Subject: [PATCH 062/430] chore(deps): bump
 com.github.spotbugs:spotbugs-maven-plugin

Bumps [com.github.spotbugs:spotbugs-maven-plugin](https://github.com/spotbugs/spotbugs-maven-plugin) from 4.8.1.0 to 4.8.2.0.
- [Release notes](https://github.com/spotbugs/spotbugs-maven-plugin/releases)
- [Commits](https://github.com/spotbugs/spotbugs-maven-plugin/compare/spotbugs-maven-plugin-4.8.1.0...spotbugs-maven-plugin-4.8.2.0)

---
updated-dependencies:
- dependency-name: com.github.spotbugs:spotbugs-maven-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 361e9d28e..4a7d22422 100644
--- a/pom.xml
+++ b/pom.xml
@@ -249,7 +249,7 @@
                 <plugin>
                     <groupId>com.github.spotbugs</groupId>
                     <artifactId>spotbugs-maven-plugin</artifactId>
-                    <version>4.8.1.0</version>
+                    <version>4.8.2.0</version>
                     <configuration>
                         <!--
                             Enables analysis which takes more memory but finds more bugs.

From 0fd06e11b0af57d2bcb3a0637bf1ffff62aa76a8 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Mon, 4 Dec 2023 08:21:26 +0100
Subject: [PATCH 063/430] chore(deps): Update Jersey dependency to 3.1.4

---
 aws-serverless-java-container-jersey/pom.xml                  | 2 +-
 .../src/main/resources/archetype-resources/build.gradle       | 4 ++--
 .../src/main/resources/archetype-resources/pom.xml            | 2 +-
 samples/jersey/pet-store/build.gradle                         | 4 ++--
 samples/jersey/pet-store/pom.xml                              | 2 +-
 5 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/aws-serverless-java-container-jersey/pom.xml b/aws-serverless-java-container-jersey/pom.xml
index d028bfda7..67c3b531c 100644
--- a/aws-serverless-java-container-jersey/pom.xml
+++ b/aws-serverless-java-container-jersey/pom.xml
@@ -16,7 +16,7 @@
     </parent>
 
     <properties>
-        <jersey.version>3.1.3</jersey.version>
+        <jersey.version>3.1.4</jersey.version>
     </properties>
 
     <dependencies>
diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
index 191255588..781f4f5d9 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
@@ -11,13 +11,13 @@ dependencies {
           'com.fasterxml.jackson.core:jackson-databind:2.16.0',
   )
 
-  implementation("org.glassfish.jersey.media:jersey-media-json-jackson:3.1.3") {
+  implementation("org.glassfish.jersey.media:jersey-media-json-jackson:3.1.4") {
     exclude group: 'com.fasterxml.jackson.core', module: "jackson-annotations"
     exclude group: 'com.fasterxml.jackson.core', module: "jackson-databind"
     exclude group: 'com.fasterxml.jackson.core', module: "jackson-core"
   }
 
-  implementation("org.glassfish.jersey.inject:jersey-hk2:3.1.3") {
+  implementation("org.glassfish.jersey.inject:jersey-hk2:3.1.4") {
     exclude group: 'javax.inject', module: "javax.inject"
   }
 
diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
index f4a438195..0368f2929 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
@@ -15,7 +15,7 @@
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
 
-        <jersey.version>3.1.3</jersey.version>
+        <jersey.version>3.1.4</jersey.version>
         <jackson.version>2.16.0</jackson.version>
         <junit.version>5.10.1</junit.version>
     </properties>
diff --git a/samples/jersey/pet-store/build.gradle b/samples/jersey/pet-store/build.gradle
index 57a3338bc..8a685fd15 100644
--- a/samples/jersey/pet-store/build.gradle
+++ b/samples/jersey/pet-store/build.gradle
@@ -11,13 +11,13 @@ dependencies {
           'com.fasterxml.jackson.core:jackson-databind:2.16.0',
   )
 
-  implementation("org.glassfish.jersey.media:jersey-media-json-jackson:3.1.3") {
+  implementation("org.glassfish.jersey.media:jersey-media-json-jackson:3.1.4") {
     exclude group: 'com.fasterxml.jackson.core', module: "jackson-annotations"
     exclude group: 'com.fasterxml.jackson.core', module: "jackson-databind"
     exclude group: 'com.fasterxml.jackson.core', module: "jackson-core"
   }
 
-  implementation("org.glassfish.jersey.inject:jersey-hk2:3.1.3") {
+  implementation("org.glassfish.jersey.inject:jersey-hk2:3.1.4") {
     exclude group: 'javax.inject', module: "javax.inject"
   }
 }
diff --git a/samples/jersey/pet-store/pom.xml b/samples/jersey/pet-store/pom.xml
index c0c0c58f7..6f084c7f3 100644
--- a/samples/jersey/pet-store/pom.xml
+++ b/samples/jersey/pet-store/pom.xml
@@ -26,7 +26,7 @@
     <properties>
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
-        <jersey.version>3.1.3</jersey.version>
+        <jersey.version>3.1.4</jersey.version>
         <jackson.version>2.16.0</jackson.version>
     </properties>
 

From 7565325b43165bae0c1346de10cc5da50ff9748b Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 5 Dec 2023 23:45:06 +0000
Subject: [PATCH 064/430] chore(deps): bump org.apache.struts:struts2-core

Bumps [org.apache.struts:struts2-core](https://github.com/apache/struts) from 6.1.2.1 to 6.1.2.2.
- [Release notes](https://github.com/apache/struts/releases)
- [Commits](https://github.com/apache/struts/commits)

---
updated-dependencies:
- dependency-name: org.apache.struts:struts2-core
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 aws-serverless-java-container-struts/pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/aws-serverless-java-container-struts/pom.xml b/aws-serverless-java-container-struts/pom.xml
index cba005e90..b09d0e231 100644
--- a/aws-serverless-java-container-struts/pom.xml
+++ b/aws-serverless-java-container-struts/pom.xml
@@ -15,7 +15,7 @@
     </parent>
 
     <properties>
-        <struts.version>6.1.2.1</struts.version>
+        <struts.version>6.1.2.2</struts.version>
     </properties>
 
     <dependencies>

From c1ffb787ccd8ffe049a7b26fb77d7cd91f644a89 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Thu, 7 Dec 2023 21:35:40 +0000
Subject: [PATCH 065/430] chore(deps): bump org.apache.struts:struts2-core

Bumps [org.apache.struts:struts2-core](https://github.com/apache/struts) from 6.1.2.2 to 6.3.0.1.
- [Release notes](https://github.com/apache/struts/releases)
- [Commits](https://github.com/apache/struts/commits)

---
updated-dependencies:
- dependency-name: org.apache.struts:struts2-core
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 aws-serverless-java-container-struts/pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/aws-serverless-java-container-struts/pom.xml b/aws-serverless-java-container-struts/pom.xml
index b09d0e231..55b0e1e9f 100644
--- a/aws-serverless-java-container-struts/pom.xml
+++ b/aws-serverless-java-container-struts/pom.xml
@@ -15,7 +15,7 @@
     </parent>
 
     <properties>
-        <struts.version>6.1.2.2</struts.version>
+        <struts.version>6.3.0.1</struts.version>
     </properties>
 
     <dependencies>

From 76c60f67771b52c5f28ab153690f3f5657dfd7bc Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sat, 9 Dec 2023 04:22:18 +0000
Subject: [PATCH 066/430] chore(deps): bump org.apache.struts:struts2-core

Bumps [org.apache.struts:struts2-core](https://github.com/apache/struts) from 6.3.0.1 to 6.3.0.2.
- [Release notes](https://github.com/apache/struts/releases)
- [Commits](https://github.com/apache/struts/commits)

---
updated-dependencies:
- dependency-name: org.apache.struts:struts2-core
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 aws-serverless-java-container-struts/pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/aws-serverless-java-container-struts/pom.xml b/aws-serverless-java-container-struts/pom.xml
index 55b0e1e9f..767705099 100644
--- a/aws-serverless-java-container-struts/pom.xml
+++ b/aws-serverless-java-container-struts/pom.xml
@@ -15,7 +15,7 @@
     </parent>
 
     <properties>
-        <struts.version>6.3.0.1</struts.version>
+        <struts.version>6.3.0.2</struts.version>
     </properties>
 
     <dependencies>

From 9eac3bb4d0621375776bf8e84e02e49550b020c4 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 11 Dec 2023 04:47:30 +0000
Subject: [PATCH 067/430] chore(deps): bump
 com.github.spotbugs:spotbugs-annotations

Bumps [com.github.spotbugs:spotbugs-annotations](https://github.com/spotbugs/spotbugs) from 4.8.1 to 4.8.2.
- [Release notes](https://github.com/spotbugs/spotbugs/releases)
- [Changelog](https://github.com/spotbugs/spotbugs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/spotbugs/spotbugs/compare/4.8.1...4.8.2)

---
updated-dependencies:
- dependency-name: com.github.spotbugs:spotbugs-annotations
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index d0248bf85..281abb486 100644
--- a/pom.xml
+++ b/pom.xml
@@ -140,7 +140,7 @@
         <dependency>
             <groupId>com.github.spotbugs</groupId>
             <artifactId>spotbugs-annotations</artifactId>
-            <version>4.8.1</version>
+            <version>4.8.2</version>
             <scope>provided</scope>
         </dependency>
     </dependencies>

From b43a99fc75c3f52a4f1042e4e674ca1d9ff2f67d Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 11 Dec 2023 04:47:35 +0000
Subject: [PATCH 068/430] chore(deps-dev): bump
 org.apache.httpcomponents.client5:httpclient5

Bumps [org.apache.httpcomponents.client5:httpclient5](https://github.com/apache/httpcomponents-client) from 5.2.3 to 5.3.
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.2.3...rel/v5.3)

---
updated-dependencies:
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index d0248bf85..5003c88d9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -119,7 +119,7 @@
         <dependency>
             <groupId>org.apache.httpcomponents.client5</groupId>
             <artifactId>httpclient5</artifactId>
-            <version>5.2.3</version>
+            <version>5.3</version>
             <scope>test</scope>
         </dependency>
 

From 696d41c35178e2aedde35c09881465220417c456 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 11 Dec 2023 04:47:48 +0000
Subject: [PATCH 069/430] chore(deps): bump org.owasp:dependency-check-maven
 from 9.0.2 to 9.0.4

Bumps [org.owasp:dependency-check-maven](https://github.com/jeremylong/DependencyCheck) from 9.0.2 to 9.0.4.
- [Release notes](https://github.com/jeremylong/DependencyCheck/releases)
- [Changelog](https://github.com/jeremylong/DependencyCheck/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jeremylong/DependencyCheck/compare/v9.0.2...v9.0.4)

---
updated-dependencies:
- dependency-name: org.owasp:dependency-check-maven
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index d0248bf85..ec6ffd6b0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -77,7 +77,7 @@
 
     <properties>
         <jacoco.minCoverage>0.7</jacoco.minCoverage>
-        <dependencyCheck.version>9.0.2</dependencyCheck.version>
+        <dependencyCheck.version>9.0.4</dependencyCheck.version>
         <jackson.version>2.16.0</jackson.version>
         <slf4j.version>2.0.9</slf4j.version>
         <junit.version>5.10.1</junit.version>

From ee912d4a80ddb75fa775f6f9d707260a667cea69 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 11 Dec 2023 04:47:53 +0000
Subject: [PATCH 070/430] chore(deps): bump
 org.apache.maven.plugins:maven-javadoc-plugin

Bumps [org.apache.maven.plugins:maven-javadoc-plugin](https://github.com/apache/maven-javadoc-plugin) from 3.6.2 to 3.6.3.
- [Release notes](https://github.com/apache/maven-javadoc-plugin/releases)
- [Commits](https://github.com/apache/maven-javadoc-plugin/compare/maven-javadoc-plugin-3.6.2...maven-javadoc-plugin-3.6.3)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-javadoc-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index d0248bf85..9e603373c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -201,7 +201,7 @@
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-javadoc-plugin</artifactId>
-                    <version>3.6.2</version>
+                    <version>3.6.3</version>
                 </plugin>
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>

From 8aa747bb93f2b6b88dd79597732fd930f6a05d0a Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Wed, 13 Dec 2023 13:14:11 +0100
Subject: [PATCH 071/430] chore(deps): Update Jersey dependency to 3.1.5

---
 aws-serverless-java-container-jersey/pom.xml                  | 2 +-
 .../src/main/resources/archetype-resources/build.gradle       | 4 ++--
 .../src/main/resources/archetype-resources/pom.xml            | 2 +-
 samples/jersey/pet-store/build.gradle                         | 4 ++--
 samples/jersey/pet-store/pom.xml                              | 2 +-
 5 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/aws-serverless-java-container-jersey/pom.xml b/aws-serverless-java-container-jersey/pom.xml
index 67c3b531c..4bc7456e1 100644
--- a/aws-serverless-java-container-jersey/pom.xml
+++ b/aws-serverless-java-container-jersey/pom.xml
@@ -16,7 +16,7 @@
     </parent>
 
     <properties>
-        <jersey.version>3.1.4</jersey.version>
+        <jersey.version>3.1.5</jersey.version>
     </properties>
 
     <dependencies>
diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
index 781f4f5d9..869110776 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
@@ -11,13 +11,13 @@ dependencies {
           'com.fasterxml.jackson.core:jackson-databind:2.16.0',
   )
 
-  implementation("org.glassfish.jersey.media:jersey-media-json-jackson:3.1.4") {
+  implementation("org.glassfish.jersey.media:jersey-media-json-jackson:3.1.5") {
     exclude group: 'com.fasterxml.jackson.core', module: "jackson-annotations"
     exclude group: 'com.fasterxml.jackson.core', module: "jackson-databind"
     exclude group: 'com.fasterxml.jackson.core', module: "jackson-core"
   }
 
-  implementation("org.glassfish.jersey.inject:jersey-hk2:3.1.4") {
+  implementation("org.glassfish.jersey.inject:jersey-hk2:3.1.5") {
     exclude group: 'javax.inject', module: "javax.inject"
   }
 
diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
index 0368f2929..7dc6cd319 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
@@ -15,7 +15,7 @@
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
 
-        <jersey.version>3.1.4</jersey.version>
+        <jersey.version>3.1.5</jersey.version>
         <jackson.version>2.16.0</jackson.version>
         <junit.version>5.10.1</junit.version>
     </properties>
diff --git a/samples/jersey/pet-store/build.gradle b/samples/jersey/pet-store/build.gradle
index 8a685fd15..fd8e71632 100644
--- a/samples/jersey/pet-store/build.gradle
+++ b/samples/jersey/pet-store/build.gradle
@@ -11,13 +11,13 @@ dependencies {
           'com.fasterxml.jackson.core:jackson-databind:2.16.0',
   )
 
-  implementation("org.glassfish.jersey.media:jersey-media-json-jackson:3.1.4") {
+  implementation("org.glassfish.jersey.media:jersey-media-json-jackson:3.1.5") {
     exclude group: 'com.fasterxml.jackson.core', module: "jackson-annotations"
     exclude group: 'com.fasterxml.jackson.core', module: "jackson-databind"
     exclude group: 'com.fasterxml.jackson.core', module: "jackson-core"
   }
 
-  implementation("org.glassfish.jersey.inject:jersey-hk2:3.1.4") {
+  implementation("org.glassfish.jersey.inject:jersey-hk2:3.1.5") {
     exclude group: 'javax.inject', module: "javax.inject"
   }
 }
diff --git a/samples/jersey/pet-store/pom.xml b/samples/jersey/pet-store/pom.xml
index 6f084c7f3..50a2c4b2e 100644
--- a/samples/jersey/pet-store/pom.xml
+++ b/samples/jersey/pet-store/pom.xml
@@ -26,7 +26,7 @@
     <properties>
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
-        <jersey.version>3.1.4</jersey.version>
+        <jersey.version>3.1.5</jersey.version>
         <jackson.version>2.16.0</jackson.version>
     </properties>
 

From fa7544d1c96719fbfb4f558836d43a51f41a13b7 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 18 Dec 2023 04:40:26 +0000
Subject: [PATCH 072/430] chore(deps): bump org.owasp:dependency-check-maven
 from 9.0.4 to 9.0.6

Bumps [org.owasp:dependency-check-maven](https://github.com/jeremylong/DependencyCheck) from 9.0.4 to 9.0.6.
- [Release notes](https://github.com/jeremylong/DependencyCheck/releases)
- [Changelog](https://github.com/jeremylong/DependencyCheck/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jeremylong/DependencyCheck/compare/v9.0.4...v9.0.6)

---
updated-dependencies:
- dependency-name: org.owasp:dependency-check-maven
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index cef0a91cb..f1cd6087e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -77,7 +77,7 @@
 
     <properties>
         <jacoco.minCoverage>0.7</jacoco.minCoverage>
-        <dependencyCheck.version>9.0.4</dependencyCheck.version>
+        <dependencyCheck.version>9.0.6</dependencyCheck.version>
         <jackson.version>2.16.0</jackson.version>
         <slf4j.version>2.0.9</slf4j.version>
         <junit.version>5.10.1</junit.version>

From d0828e1d7872fe0437c046f3d1be37eb1459a625 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 18 Dec 2023 04:40:31 +0000
Subject: [PATCH 073/430] chore(deps): bump
 org.apache.maven.plugins:maven-surefire-plugin

Bumps [org.apache.maven.plugins:maven-surefire-plugin](https://github.com/apache/maven-surefire) from 3.2.2 to 3.2.3.
- [Release notes](https://github.com/apache/maven-surefire/releases)
- [Commits](https://github.com/apache/maven-surefire/compare/surefire-3.2.2...surefire-3.2.3)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-surefire-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index cef0a91cb..b2b8dad96 100644
--- a/pom.xml
+++ b/pom.xml
@@ -206,7 +206,7 @@
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-surefire-plugin</artifactId>
-                    <version>3.2.2</version>
+                    <version>3.2.3</version>
                 </plugin>
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>

From 501da0e5747af51b77932b9abf08ebad4fe3e7cf Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 18 Dec 2023 04:40:36 +0000
Subject: [PATCH 074/430] chore(deps): bump
 com.github.spotbugs:spotbugs-annotations

Bumps [com.github.spotbugs:spotbugs-annotations](https://github.com/spotbugs/spotbugs) from 4.8.2 to 4.8.3.
- [Release notes](https://github.com/spotbugs/spotbugs/releases)
- [Changelog](https://github.com/spotbugs/spotbugs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/spotbugs/spotbugs/compare/4.8.2...4.8.3)

---
updated-dependencies:
- dependency-name: com.github.spotbugs:spotbugs-annotations
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index cef0a91cb..48b4ea0ea 100644
--- a/pom.xml
+++ b/pom.xml
@@ -140,7 +140,7 @@
         <dependency>
             <groupId>com.github.spotbugs</groupId>
             <artifactId>spotbugs-annotations</artifactId>
-            <version>4.8.2</version>
+            <version>4.8.3</version>
             <scope>provided</scope>
         </dependency>
     </dependencies>

From 2ed8f2f285772b1f24e1022bcd34ce6dbe7afc5b Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 25 Dec 2023 04:16:14 +0000
Subject: [PATCH 075/430] chore(deps): bump
 org.apache.maven.plugins:maven-compiler-plugin

Bumps [org.apache.maven.plugins:maven-compiler-plugin](https://github.com/apache/maven-compiler-plugin) from 3.11.0 to 3.12.1.
- [Release notes](https://github.com/apache/maven-compiler-plugin/releases)
- [Commits](https://github.com/apache/maven-compiler-plugin/compare/maven-compiler-plugin-3.11.0...maven-compiler-plugin-3.12.1)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-compiler-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index a09483709..a1366f695 100644
--- a/pom.xml
+++ b/pom.xml
@@ -190,7 +190,7 @@
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-compiler-plugin</artifactId>
-                    <version>3.11.0</version>
+                    <version>3.12.1</version>
                     <configuration>
                         <source>1.8</source>
                         <target>1.8</target>

From cb8696c72950c6954dfd56ee9f29b46b798c1df3 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 25 Dec 2023 04:16:41 +0000
Subject: [PATCH 076/430] chore(deps): bump org.owasp:dependency-check-maven
 from 9.0.6 to 9.0.7

Bumps [org.owasp:dependency-check-maven](https://github.com/jeremylong/DependencyCheck) from 9.0.6 to 9.0.7.
- [Release notes](https://github.com/jeremylong/DependencyCheck/releases)
- [Changelog](https://github.com/jeremylong/DependencyCheck/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jeremylong/DependencyCheck/compare/v9.0.6...v9.0.7)

---
updated-dependencies:
- dependency-name: org.owasp:dependency-check-maven
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index a09483709..be4b3874b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -77,7 +77,7 @@
 
     <properties>
         <jacoco.minCoverage>0.7</jacoco.minCoverage>
-        <dependencyCheck.version>9.0.6</dependencyCheck.version>
+        <dependencyCheck.version>9.0.7</dependencyCheck.version>
         <jackson.version>2.16.0</jackson.version>
         <slf4j.version>2.0.9</slf4j.version>
         <junit.version>5.10.1</junit.version>

From 8cb77c82045496d6f44cbe06eacf4cb55995d819 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Sun, 31 Dec 2023 09:11:22 +0100
Subject: [PATCH 077/430] chore(deps): Update Spring dependencies (framework to
 6.1.2, security to 6.2.1, boot to 3.2.1)

---
 aws-serverless-java-container-core/pom.xml                  | 2 +-
 aws-serverless-java-container-spring/pom.xml                | 4 ++--
 aws-serverless-java-container-springboot3/pom.xml           | 6 +++---
 .../src/main/resources/archetype-resources/build.gradle     | 4 ++--
 .../src/main/resources/archetype-resources/pom.xml          | 2 +-
 .../src/main/resources/archetype-resources/build.gradle     | 2 +-
 .../src/main/resources/archetype-resources/pom.xml          | 2 +-
 samples/spring/pet-store/build.gradle                       | 4 ++--
 samples/spring/pet-store/pom.xml                            | 2 +-
 samples/springboot3/alt-pet-store/build.gradle              | 2 +-
 samples/springboot3/alt-pet-store/pom.xml                   | 2 +-
 samples/springboot3/pet-store/build.gradle                  | 2 +-
 samples/springboot3/pet-store/pom.xml                       | 2 +-
 13 files changed, 18 insertions(+), 18 deletions(-)

diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml
index cb8e2c67e..17f8edc7c 100644
--- a/aws-serverless-java-container-core/pom.xml
+++ b/aws-serverless-java-container-core/pom.xml
@@ -60,7 +60,7 @@
         <dependency>
             <groupId>org.springframework.security</groupId>
             <artifactId>spring-security-web</artifactId>
-            <version>6.2.0</version>
+            <version>6.2.1</version>
             <scope>test</scope>
         </dependency>
     </dependencies>
diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml
index 7e21cf5b1..57e1bed60 100644
--- a/aws-serverless-java-container-spring/pom.xml
+++ b/aws-serverless-java-container-spring/pom.xml
@@ -16,8 +16,8 @@
     </parent>
 
     <properties>
-        <spring.version>6.1.1</spring.version>
-        <spring-security.version>6.2.0</spring-security.version>
+        <spring.version>6.1.2</spring.version>
+        <spring-security.version>6.2.1</spring-security.version>
     </properties>
 
     <dependencies>
diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml
index 5ad6ee9e9..51ad6f1f1 100644
--- a/aws-serverless-java-container-springboot3/pom.xml
+++ b/aws-serverless-java-container-springboot3/pom.xml
@@ -15,9 +15,9 @@
     <version>2.0.0-SNAPSHOT</version>
 
     <properties>
-        <spring.version>6.1.1</spring.version>
-        <springboot.version>3.2.0</springboot.version>
-        <springsecurity.version>6.2.0</springsecurity.version>
+        <spring.version>6.1.2</spring.version>
+        <springboot.version>3.2.1</springboot.version>
+        <springsecurity.version>6.2.1</springsecurity.version>
     </properties>
 
     <dependencies>
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
index a23a8886b..030460759 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
@@ -7,8 +7,8 @@ repositories {
 
 dependencies {
   implementation (
-          'org.springframework:spring-webmvc:6.1.1',
-          'org.springframework:spring-context:6.1.1',
+          'org.springframework:spring-webmvc:6.1.2',
+          'org.springframework:spring-context:6.1.2',
           'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)',
           'org.apache.logging.log4j:log4j-core:2.22.0',
           'org.apache.logging.log4j:log4j-api:2.22.0',
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
index 5de867d44..0c665a43b 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
@@ -16,7 +16,7 @@
     <properties>
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
-        <spring.version>6.1.1</spring.version>
+        <spring.version>6.1.2</spring.version>
         <junit.version>5.10.1</junit.version>
         <log4j.version>2.22.0</log4j.version>
     </properties>
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
index 3903c9689..1a04756fa 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
@@ -9,7 +9,7 @@ repositories {
 
 dependencies {
   implementation (
-          'org.springframework.boot:spring-boot-starter-web:3.2.0',
+          'org.springframework.boot:spring-boot-starter-web:3.2.1',
           'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)',
   )
 
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
index 24b7f2475..1382f9bd6 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
@@ -16,7 +16,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.2.0</version>
+        <version>3.2.1</version>
     </parent>
 
     <properties>
diff --git a/samples/spring/pet-store/build.gradle b/samples/spring/pet-store/build.gradle
index 2d1fec236..bd4a1303c 100644
--- a/samples/spring/pet-store/build.gradle
+++ b/samples/spring/pet-store/build.gradle
@@ -7,8 +7,8 @@ repositories {
 
 dependencies {
   implementation (
-          'org.springframework:spring-webmvc:6.1.1',
-          'org.springframework:spring-context:6.1.1',
+          'org.springframework:spring-webmvc:6.1.2',
+          'org.springframework:spring-context:6.1.2',
           'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)',
           'org.apache.logging.log4j:log4j-core:2.22.0',
           'org.apache.logging.log4j:log4j-api:2.22.0',
diff --git a/samples/spring/pet-store/pom.xml b/samples/spring/pet-store/pom.xml
index 69eedcce2..d16ff3c0e 100644
--- a/samples/spring/pet-store/pom.xml
+++ b/samples/spring/pet-store/pom.xml
@@ -24,7 +24,7 @@
     </licenses>
 
     <properties>
-        <spring.version>6.1.1</spring.version>
+        <spring.version>6.1.2</spring.version>
         <log4j.version>2.22.0</log4j.version>
         <maven.compiler.source>17</maven.compiler.source>
         <maven.compiler.target>17</maven.compiler.target>
diff --git a/samples/springboot3/alt-pet-store/build.gradle b/samples/springboot3/alt-pet-store/build.gradle
index 7968de6d2..998718068 100644
--- a/samples/springboot3/alt-pet-store/build.gradle
+++ b/samples/springboot3/alt-pet-store/build.gradle
@@ -9,7 +9,7 @@ repositories {
 
 dependencies {
   implementation (
-          implementation('org.springframework.boot:spring-boot-starter-web:3.2.0') {
+          implementation('org.springframework.boot:spring-boot-starter-web:3.2.1') {
             exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat'
           },
           'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)',
diff --git a/samples/springboot3/alt-pet-store/pom.xml b/samples/springboot3/alt-pet-store/pom.xml
index 1f9617c2c..7bfd00bf2 100644
--- a/samples/springboot3/alt-pet-store/pom.xml
+++ b/samples/springboot3/alt-pet-store/pom.xml
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.2.0</version>
+        <version>3.2.1</version>
     </parent>
 
     <licenses>
diff --git a/samples/springboot3/pet-store/build.gradle b/samples/springboot3/pet-store/build.gradle
index 7968de6d2..998718068 100644
--- a/samples/springboot3/pet-store/build.gradle
+++ b/samples/springboot3/pet-store/build.gradle
@@ -9,7 +9,7 @@ repositories {
 
 dependencies {
   implementation (
-          implementation('org.springframework.boot:spring-boot-starter-web:3.2.0') {
+          implementation('org.springframework.boot:spring-boot-starter-web:3.2.1') {
             exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat'
           },
           'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)',
diff --git a/samples/springboot3/pet-store/pom.xml b/samples/springboot3/pet-store/pom.xml
index 689bab5e5..291b8bb09 100644
--- a/samples/springboot3/pet-store/pom.xml
+++ b/samples/springboot3/pet-store/pom.xml
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.2.0</version>
+        <version>3.2.1</version>
     </parent>
 
     <licenses>

From d0399b69eafe7efb9b5c430741fc10701a2a7dc3 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Sun, 31 Dec 2023 09:14:29 +0100
Subject: [PATCH 078/430] chore(deps): update Jackson to 2.16.1

---
 .../src/main/resources/archetype-resources/build.gradle       | 2 +-
 .../src/main/resources/archetype-resources/pom.xml            | 2 +-
 .../src/main/resources/archetype-resources/build.gradle       | 2 +-
 .../src/main/resources/archetype-resources/pom.xml            | 2 +-
 .../src/main/resources/archetype-resources/build.gradle       | 2 +-
 .../src/main/resources/archetype-resources/build.gradle       | 4 ++--
 .../src/main/resources/archetype-resources/pom.xml            | 2 +-
 pom.xml                                                       | 2 +-
 samples/jersey/pet-store/build.gradle                         | 2 +-
 samples/jersey/pet-store/pom.xml                              | 2 +-
 samples/spark/pet-store/build.gradle                          | 2 +-
 samples/spark/pet-store/pom.xml                               | 2 +-
 samples/spring/pet-store/build.gradle                         | 2 +-
 samples/struts/pet-store/build.gradle                         | 4 ++--
 samples/struts/pet-store/pom.xml                              | 2 +-
 15 files changed, 17 insertions(+), 17 deletions(-)

diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
index 869110776..ad5acbacd 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
@@ -8,7 +8,7 @@ repositories {
 dependencies {
   implementation (
           'com.amazonaws.serverless:aws-serverless-java-container-jersey:[2.0-SNAPSHOT,)',
-          'com.fasterxml.jackson.core:jackson-databind:2.16.0',
+          'com.fasterxml.jackson.core:jackson-databind:2.16.1',
   )
 
   implementation("org.glassfish.jersey.media:jersey-media-json-jackson:3.1.5") {
diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
index 7dc6cd319..9cad88b85 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
@@ -16,7 +16,7 @@
         <maven.compiler.target>1.8</maven.compiler.target>
 
         <jersey.version>3.1.5</jersey.version>
-        <jackson.version>2.16.0</jackson.version>
+        <jackson.version>2.16.1</jackson.version>
         <junit.version>5.10.1</junit.version>
     </properties>
 
diff --git a/aws-serverless-spark-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-spark-archetype/src/main/resources/archetype-resources/build.gradle
index 030399610..781e31234 100644
--- a/aws-serverless-spark-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-spark-archetype/src/main/resources/archetype-resources/build.gradle
@@ -9,7 +9,7 @@ dependencies {
   implementation (
           'com.sparkjava:spark-core:2.9.4',
           'com.amazonaws.serverless:aws-serverless-java-container-spark:[1.0,)',
-          'com.fasterxml.jackson.core:jackson-databind:2.16.0',
+          'com.fasterxml.jackson.core:jackson-databind:2.16.1',
   )
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
diff --git a/aws-serverless-spark-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-spark-archetype/src/main/resources/archetype-resources/pom.xml
index a17ce2433..3cae46498 100644
--- a/aws-serverless-spark-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-spark-archetype/src/main/resources/archetype-resources/pom.xml
@@ -16,7 +16,7 @@
     <properties>
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
-        <jackson.version>2.16.0</jackson.version>
+        <jackson.version>2.16.1</jackson.version>
         <spark.version>2.9.4</spark.version>
         <junit.version>5.10.1</junit.version>
     </properties>
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
index 030460759..d9b17818f 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
@@ -13,7 +13,7 @@ dependencies {
           'org.apache.logging.log4j:log4j-core:2.22.0',
           'org.apache.logging.log4j:log4j-api:2.22.0',
           'org.apache.logging.log4j:log4j-slf4j-impl:2.22.0',
-          'com.fasterxml.jackson.core:jackson-databind:2.16.0',
+          'com.fasterxml.jackson.core:jackson-databind:2.16.1',
           'com.amazonaws:aws-lambda-java-log4j2:1.6.0',
   )
 
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
index 405b8235f..73fadcf98 100644
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
@@ -34,8 +34,8 @@ dependencies {
     exclude group: 'org.apache.logging.log4j', module: 'log4j-api'
   }
   implementation ('org.hibernate.validator:hibernate-validator:6.1.7.Final')
-  implementation ('com.fasterxml.jackson.core:jackson-databind:2.16.0')
-  implementation ('com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.16.0')
+  implementation ('com.fasterxml.jackson.core:jackson-databind:2.16.1')
+  implementation ('com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.16.1')
   implementation ('org.apache.logging.log4j:log4j-core:2.22.0')
   implementation ('org.apache.logging.log4j:log4j-api:2.22.0')
   implementation ('org.apache.logging.log4j:log4j-slf4j-impl:2.22.0')
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
index 0b87921b8..a3ed5c59a 100644
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
@@ -16,7 +16,7 @@
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
         <struts.version>6.1.2.1</struts.version>
-        <jackson.version>2.16.0</jackson.version>
+        <jackson.version>2.16.1</jackson.version>
         <junit.version>5.10.1</junit.version>
         <log4j.version>2.22.0</log4j.version>
     </properties>
diff --git a/pom.xml b/pom.xml
index 9ac341c69..d2ba2984d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -78,7 +78,7 @@
     <properties>
         <jacoco.minCoverage>0.7</jacoco.minCoverage>
         <dependencyCheck.version>9.0.7</dependencyCheck.version>
-        <jackson.version>2.16.0</jackson.version>
+        <jackson.version>2.16.1</jackson.version>
         <slf4j.version>2.0.9</slf4j.version>
         <junit.version>5.10.1</junit.version>
         <mockito.version>5.8.0</mockito.version>
diff --git a/samples/jersey/pet-store/build.gradle b/samples/jersey/pet-store/build.gradle
index fd8e71632..475f60fa0 100644
--- a/samples/jersey/pet-store/build.gradle
+++ b/samples/jersey/pet-store/build.gradle
@@ -8,7 +8,7 @@ repositories {
 dependencies {
   implementation (
           'com.amazonaws.serverless:aws-serverless-java-container-jersey:[2.0-SNAPSHOT,)',
-          'com.fasterxml.jackson.core:jackson-databind:2.16.0',
+          'com.fasterxml.jackson.core:jackson-databind:2.16.1',
   )
 
   implementation("org.glassfish.jersey.media:jersey-media-json-jackson:3.1.5") {
diff --git a/samples/jersey/pet-store/pom.xml b/samples/jersey/pet-store/pom.xml
index 50a2c4b2e..b7cae7576 100644
--- a/samples/jersey/pet-store/pom.xml
+++ b/samples/jersey/pet-store/pom.xml
@@ -27,7 +27,7 @@
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
         <jersey.version>3.1.5</jersey.version>
-        <jackson.version>2.16.0</jackson.version>
+        <jackson.version>2.16.1</jackson.version>
     </properties>
 
     <dependencies>
diff --git a/samples/spark/pet-store/build.gradle b/samples/spark/pet-store/build.gradle
index 372076de0..9e37febd0 100644
--- a/samples/spark/pet-store/build.gradle
+++ b/samples/spark/pet-store/build.gradle
@@ -9,7 +9,7 @@ dependencies {
   implementation (
           'com.sparkjava:spark-core:2.9.4',
           'com.amazonaws.serverless:aws-serverless-java-container-spark:[1.0,)',
-          'com.fasterxml.jackson.core:jackson-databind:2.16.0',
+          'com.fasterxml.jackson.core:jackson-databind:2.16.1',
   )
 }
 
diff --git a/samples/spark/pet-store/pom.xml b/samples/spark/pet-store/pom.xml
index 4ceb5d708..cf2e56606 100644
--- a/samples/spark/pet-store/pom.xml
+++ b/samples/spark/pet-store/pom.xml
@@ -26,7 +26,7 @@
     <properties>
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
-        <jackson.version>2.16.0</jackson.version>
+        <jackson.version>2.16.1</jackson.version>
         <spark.version>2.9.1</spark.version>
     </properties>
 
diff --git a/samples/spring/pet-store/build.gradle b/samples/spring/pet-store/build.gradle
index bd4a1303c..750583964 100644
--- a/samples/spring/pet-store/build.gradle
+++ b/samples/spring/pet-store/build.gradle
@@ -13,7 +13,7 @@ dependencies {
           'org.apache.logging.log4j:log4j-core:2.22.0',
           'org.apache.logging.log4j:log4j-api:2.22.0',
           'org.apache.logging.log4j:log4j-slf4j-impl:2.22.0',
-          'com.fasterxml.jackson.core:jackson-databind:2.16.0',
+          'com.fasterxml.jackson.core:jackson-databind:2.16.1',
           'com.amazonaws:aws-lambda-java-log4j2:1.6.0',
   )
 }
diff --git a/samples/struts/pet-store/build.gradle b/samples/struts/pet-store/build.gradle
index dc018b719..614519f52 100644
--- a/samples/struts/pet-store/build.gradle
+++ b/samples/struts/pet-store/build.gradle
@@ -22,8 +22,8 @@ dependencies {
           'org.hibernate.validator:hibernate-validator:6.1.7.Final',
           'org.glassfish:javax.el:3.0.0',
           'javax.el:javax.el-api:3.0.0',
-          'com.fasterxml.jackson.core:jackson-databind:2.16.0',
-          'com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.16.0',
+          'com.fasterxml.jackson.core:jackson-databind:2.16.1',
+          'com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.16.1',
           'org.apache.logging.log4j:log4j-core:2.22.0',
           'org.apache.logging.log4j:log4j-api:2.22.0',
           'com.amazonaws:aws-lambda-java-log4j2:1.6.0',
diff --git a/samples/struts/pet-store/pom.xml b/samples/struts/pet-store/pom.xml
index b44057e32..332c8ed9d 100644
--- a/samples/struts/pet-store/pom.xml
+++ b/samples/struts/pet-store/pom.xml
@@ -27,7 +27,7 @@
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
         <struts.version>6.1.2.1</struts.version>
-        <jackson.version>2.16.0</jackson.version>
+        <jackson.version>2.16.1</jackson.version>
         <junit.version>4.13.2</junit.version>
         <log4j.version>2.22.0</log4j.version>
     </properties>

From d2a9f1361bf8d4774dfcca00c31c365e7945872d Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 1 Jan 2024 04:28:28 +0000
Subject: [PATCH 079/430] chore(deps): bump slf4j.version from 2.0.9 to 2.0.10

Bumps `slf4j.version` from 2.0.9 to 2.0.10.

Updates `org.slf4j:slf4j-api` from 2.0.9 to 2.0.10

Updates `org.slf4j:slf4j-simple` from 2.0.9 to 2.0.10

---
updated-dependencies:
- dependency-name: org.slf4j:slf4j-api
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.slf4j:slf4j-simple
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index d2ba2984d..f5e6c2078 100644
--- a/pom.xml
+++ b/pom.xml
@@ -79,7 +79,7 @@
         <jacoco.minCoverage>0.7</jacoco.minCoverage>
         <dependencyCheck.version>9.0.7</dependencyCheck.version>
         <jackson.version>2.16.1</jackson.version>
-        <slf4j.version>2.0.9</slf4j.version>
+        <slf4j.version>2.0.10</slf4j.version>
         <junit.version>5.10.1</junit.version>
         <mockito.version>5.8.0</mockito.version>
         <hamcrest.version>1.3</hamcrest.version>

From 9301719c5b471a25dac96ab140e5ccefc9408552 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Tue, 2 Jan 2024 08:16:11 +0100
Subject: [PATCH 080/430] chore(deps): update Log4J to 2.22.1

---
 .../src/main/resources/archetype-resources/build.gradle     | 6 +++---
 .../src/main/resources/archetype-resources/pom.xml          | 2 +-
 .../src/main/resources/archetype-resources/build.gradle     | 6 +++---
 .../src/main/resources/archetype-resources/pom.xml          | 2 +-
 samples/spring/pet-store/build.gradle                       | 6 +++---
 samples/spring/pet-store/pom.xml                            | 2 +-
 samples/struts/pet-store/build.gradle                       | 4 ++--
 samples/struts/pet-store/pom.xml                            | 2 +-
 8 files changed, 15 insertions(+), 15 deletions(-)

diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
index d9b17818f..f82bb3d63 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
@@ -10,9 +10,9 @@ dependencies {
           'org.springframework:spring-webmvc:6.1.2',
           'org.springframework:spring-context:6.1.2',
           'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)',
-          'org.apache.logging.log4j:log4j-core:2.22.0',
-          'org.apache.logging.log4j:log4j-api:2.22.0',
-          'org.apache.logging.log4j:log4j-slf4j-impl:2.22.0',
+          'org.apache.logging.log4j:log4j-core:2.22.1',
+          'org.apache.logging.log4j:log4j-api:2.22.1',
+          'org.apache.logging.log4j:log4j-slf4j-impl:2.22.1',
           'com.fasterxml.jackson.core:jackson-databind:2.16.1',
           'com.amazonaws:aws-lambda-java-log4j2:1.6.0',
   )
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
index 0c665a43b..b68674412 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
@@ -18,7 +18,7 @@
         <maven.compiler.target>1.8</maven.compiler.target>
         <spring.version>6.1.2</spring.version>
         <junit.version>5.10.1</junit.version>
-        <log4j.version>2.22.0</log4j.version>
+        <log4j.version>2.22.1</log4j.version>
     </properties>
 
     <dependencies>
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
index 73fadcf98..dba15956e 100644
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
@@ -36,9 +36,9 @@ dependencies {
   implementation ('org.hibernate.validator:hibernate-validator:6.1.7.Final')
   implementation ('com.fasterxml.jackson.core:jackson-databind:2.16.1')
   implementation ('com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.16.1')
-  implementation ('org.apache.logging.log4j:log4j-core:2.22.0')
-  implementation ('org.apache.logging.log4j:log4j-api:2.22.0')
-  implementation ('org.apache.logging.log4j:log4j-slf4j-impl:2.22.0')
+  implementation ('org.apache.logging.log4j:log4j-core:2.22.1')
+  implementation ('org.apache.logging.log4j:log4j-api:2.22.1')
+  implementation ('org.apache.logging.log4j:log4j-slf4j-impl:2.22.1')
   implementation ('com.amazonaws:aws-lambda-java-log4j2:1.6.0')
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
index a3ed5c59a..15cbc1dd9 100644
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
@@ -18,7 +18,7 @@
         <struts.version>6.1.2.1</struts.version>
         <jackson.version>2.16.1</jackson.version>
         <junit.version>5.10.1</junit.version>
-        <log4j.version>2.22.0</log4j.version>
+        <log4j.version>2.22.1</log4j.version>
     </properties>
 
     <dependencies>
diff --git a/samples/spring/pet-store/build.gradle b/samples/spring/pet-store/build.gradle
index 750583964..70e6d22ba 100644
--- a/samples/spring/pet-store/build.gradle
+++ b/samples/spring/pet-store/build.gradle
@@ -10,9 +10,9 @@ dependencies {
           'org.springframework:spring-webmvc:6.1.2',
           'org.springframework:spring-context:6.1.2',
           'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)',
-          'org.apache.logging.log4j:log4j-core:2.22.0',
-          'org.apache.logging.log4j:log4j-api:2.22.0',
-          'org.apache.logging.log4j:log4j-slf4j-impl:2.22.0',
+          'org.apache.logging.log4j:log4j-core:2.22.1',
+          'org.apache.logging.log4j:log4j-api:2.22.1',
+          'org.apache.logging.log4j:log4j-slf4j-impl:2.22.1',
           'com.fasterxml.jackson.core:jackson-databind:2.16.1',
           'com.amazonaws:aws-lambda-java-log4j2:1.6.0',
   )
diff --git a/samples/spring/pet-store/pom.xml b/samples/spring/pet-store/pom.xml
index d16ff3c0e..d60e4817a 100644
--- a/samples/spring/pet-store/pom.xml
+++ b/samples/spring/pet-store/pom.xml
@@ -25,7 +25,7 @@
 
     <properties>
         <spring.version>6.1.2</spring.version>
-        <log4j.version>2.22.0</log4j.version>
+        <log4j.version>2.22.1</log4j.version>
         <maven.compiler.source>17</maven.compiler.source>
         <maven.compiler.target>17</maven.compiler.target>
     </properties>
diff --git a/samples/struts/pet-store/build.gradle b/samples/struts/pet-store/build.gradle
index 614519f52..491419e3f 100644
--- a/samples/struts/pet-store/build.gradle
+++ b/samples/struts/pet-store/build.gradle
@@ -24,8 +24,8 @@ dependencies {
           'javax.el:javax.el-api:3.0.0',
           'com.fasterxml.jackson.core:jackson-databind:2.16.1',
           'com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.16.1',
-          'org.apache.logging.log4j:log4j-core:2.22.0',
-          'org.apache.logging.log4j:log4j-api:2.22.0',
+          'org.apache.logging.log4j:log4j-core:2.22.1',
+          'org.apache.logging.log4j:log4j-api:2.22.1',
           'com.amazonaws:aws-lambda-java-log4j2:1.6.0',
   )
 }
diff --git a/samples/struts/pet-store/pom.xml b/samples/struts/pet-store/pom.xml
index 332c8ed9d..85f52730b 100644
--- a/samples/struts/pet-store/pom.xml
+++ b/samples/struts/pet-store/pom.xml
@@ -29,7 +29,7 @@
         <struts.version>6.1.2.1</struts.version>
         <jackson.version>2.16.1</jackson.version>
         <junit.version>4.13.2</junit.version>
-        <log4j.version>2.22.0</log4j.version>
+        <log4j.version>2.22.1</log4j.version>
     </properties>
 
     <dependencies>

From e9090633878fd8ec5e801585031ce28ae401e079 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 8 Jan 2024 04:36:04 +0000
Subject: [PATCH 081/430] chore(deps): bump org.owasp:dependency-check-maven
 from 9.0.7 to 9.0.8

Bumps [org.owasp:dependency-check-maven](https://github.com/jeremylong/DependencyCheck) from 9.0.7 to 9.0.8.
- [Release notes](https://github.com/jeremylong/DependencyCheck/releases)
- [Changelog](https://github.com/jeremylong/DependencyCheck/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jeremylong/DependencyCheck/compare/v9.0.7...v9.0.8)

---
updated-dependencies:
- dependency-name: org.owasp:dependency-check-maven
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index f5e6c2078..5dd123278 100644
--- a/pom.xml
+++ b/pom.xml
@@ -77,7 +77,7 @@
 
     <properties>
         <jacoco.minCoverage>0.7</jacoco.minCoverage>
-        <dependencyCheck.version>9.0.7</dependencyCheck.version>
+        <dependencyCheck.version>9.0.8</dependencyCheck.version>
         <jackson.version>2.16.1</jackson.version>
         <slf4j.version>2.0.10</slf4j.version>
         <junit.version>5.10.1</junit.version>

From 566e9260aa443e91afd1b7571e20e43e6565982a Mon Sep 17 00:00:00 2001
From: Oleg Zhurakousky <ozhurakousky@vmware.com>
Date: Thu, 11 Jan 2024 20:37:47 +0100
Subject: [PATCH 082/430] Add support for native web workloads

- Simplify existing web support for non-native environments
- Make native and non-native consistently relying on same libraries from spring-cloud-function and AWS
---
 .../pom.xml                                   |   2 +-
 .../serverless/proxy/spring/AWSHttpUtils.java | 183 +++++++++++++
 .../proxy/spring/AWSTypesProcessor.java       |  76 ++++++
 .../proxy/spring/AWSWebRuntimeEventLoop.java  | 179 +++++++++++++
 .../spring/AWSWebRuntimeInitializer.java      |  70 +++++
 .../SpringBootLambdaContainerHandler.java     |  29 +-
 ...pringDelegatingLambdaContainerHandler.java |  67 +----
 ...erverlessServletEmbeddedServerFactory.java |   5 +-
 .../main/resources/META-INF/spring.factories  |   2 +
 .../resources/META-INF/spring/aot.factories   |   1 +
 .../proxy/spring/AWSHttpUtilsTests.java       | 249 ++++++++++++++++++
 .../proxy/spring/AWSWebRuntimeTests.java      |  39 +++
 .../proxy/spring/WebFluxAppTest.java          |  19 +-
 samples/springboot3/alt-pet-store/pom.xml     |  14 +-
 .../src/main/resources/logback.xml            |   3 +-
 .../springboot3/alt-pet-store/template.yml    |   2 +-
 16 files changed, 847 insertions(+), 93 deletions(-)
 create mode 100644 aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AWSHttpUtils.java
 create mode 100644 aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AWSTypesProcessor.java
 create mode 100644 aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AWSWebRuntimeEventLoop.java
 create mode 100644 aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AWSWebRuntimeInitializer.java
 create mode 100644 aws-serverless-java-container-springboot3/src/main/resources/META-INF/spring.factories
 create mode 100644 aws-serverless-java-container-springboot3/src/main/resources/META-INF/spring/aot.factories
 create mode 100644 aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/AWSHttpUtilsTests.java
 create mode 100644 aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/AWSWebRuntimeTests.java

diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml
index 51ad6f1f1..59f5500e1 100644
--- a/aws-serverless-java-container-springboot3/pom.xml
+++ b/aws-serverless-java-container-springboot3/pom.xml
@@ -25,7 +25,7 @@
         <dependency>
             <groupId>org.springframework.cloud</groupId>
             <artifactId>spring-cloud-function-serverless-web</artifactId>
-            <version>4.0.4</version>
+            <version>4.0.6-SNAPSHOT</version>
         </dependency>
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
diff --git a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AWSHttpUtils.java b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AWSHttpUtils.java
new file mode 100644
index 000000000..aa2edefe7
--- /dev/null
+++ b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AWSHttpUtils.java
@@ -0,0 +1,183 @@
+package com.amazonaws.serverless.proxy.spring;
+
+import java.io.InputStream;
+import java.nio.charset.StandardCharsets;
+import java.util.Map;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.springframework.cloud.function.serverless.web.ServerlessHttpServletRequest;
+import org.springframework.cloud.function.serverless.web.ServerlessMVC;
+import org.springframework.util.FileCopyUtils;
+import org.springframework.util.MultiValueMapAdapter;
+import org.springframework.util.StringUtils;
+
+import com.amazonaws.serverless.proxy.AwsHttpApiV2SecurityContextWriter;
+import com.amazonaws.serverless.proxy.AwsProxySecurityContextWriter;
+import com.amazonaws.serverless.proxy.RequestReader;
+import com.amazonaws.serverless.proxy.SecurityContextWriter;
+import com.amazonaws.serverless.proxy.internal.servlet.AwsHttpServletResponse;
+import com.amazonaws.serverless.proxy.internal.servlet.AwsProxyHttpServletResponseWriter;
+import com.amazonaws.serverless.proxy.model.AwsProxyRequest;
+import com.amazonaws.serverless.proxy.model.AwsProxyResponse;
+import com.amazonaws.serverless.proxy.model.HttpApiV2ProxyRequest;
+import com.amazonaws.services.lambda.runtime.Context;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+import jakarta.servlet.ServletContext;
+import jakarta.servlet.http.HttpServletRequest;
+
+public class AWSHttpUtils {
+	
+	private static Log logger = LogFactory.getLog(AWSWebRuntimeEventLoop.class);
+	
+	
+	public static AwsProxyResponse serviceAWS(String gatewayEvent, ServerlessMVC mvc, ObjectMapper mapper, AwsProxyHttpServletResponseWriter responseWriter) {
+		HttpServletRequest request = AWSHttpUtils.generateHttpServletRequest(gatewayEvent, null, mvc.getServletContext(), mapper);
+		CountDownLatch latch = new CountDownLatch(1);
+        AwsHttpServletResponse response = new AwsHttpServletResponse(request, latch);
+		try {
+			mvc.service(request, response);
+			latch.await(10, TimeUnit.SECONDS);
+			AwsProxyResponse awsResponse = responseWriter.writeResponse(response, null);
+			return awsResponse;
+		} 
+		catch (Exception e) {
+			e.printStackTrace();
+			throw new IllegalStateException(e);
+		}
+	}
+	
+	public static String extractVersion() {
+		try {
+			String path = AWSHttpUtils.class.getProtectionDomain().getCodeSource().getLocation().toString();
+			int endIndex = path.lastIndexOf('.');
+			if (endIndex < 0) {
+				return "UNKNOWN-VERSION";
+			}
+			int startIndex = path.lastIndexOf("/") + 1;
+			return path.substring(startIndex, endIndex).replace("spring-cloud-function-serverless-web-", "");
+		}
+		catch (Exception e) {
+			if (logger.isDebugEnabled()) {
+				logger.debug("Failed to detect version", e);
+			}
+			return "UNKNOWN-VERSION";
+		}
+
+	}
+	
+	public static HttpServletRequest generateHttpServletRequest(InputStream jsonRequest, Context lambdaContext,
+			ServletContext servletContext, ObjectMapper mapper) {
+		try {
+			String text = new String(FileCopyUtils.copyToByteArray(jsonRequest), StandardCharsets.UTF_8);
+			if (logger.isDebugEnabled()) {
+				logger.debug("Creating HttpServletRequest from: " + text);
+			}
+			return generateHttpServletRequest(text, lambdaContext, servletContext, mapper);
+		} catch (Exception e) {
+			throw new IllegalStateException(e);
+		}
+	}
+	
+	@SuppressWarnings({ "rawtypes", "unchecked" })
+	public static HttpServletRequest generateHttpServletRequest(String jsonRequest, Context lambdaContext,
+			ServletContext servletContext, ObjectMapper mapper) {
+		Map<String, Object> _request = readValue(jsonRequest, Map.class, mapper);
+		SecurityContextWriter securityWriter = "2.0".equals(_request.get("version"))
+				? new AwsHttpApiV2SecurityContextWriter()
+				: new AwsProxySecurityContextWriter();
+		HttpServletRequest httpServletRequest = "2.0".equals(_request.get("version"))
+				? AWSHttpUtils.generateRequest2(jsonRequest, lambdaContext, securityWriter, mapper, servletContext)
+				: AWSHttpUtils.generateRequest1(jsonRequest, lambdaContext, securityWriter, mapper, servletContext);
+		return httpServletRequest;
+	}
+
+	@SuppressWarnings({ "unchecked", "rawtypes" })
+	private static HttpServletRequest generateRequest1(String request, Context lambdaContext,
+			SecurityContextWriter securityWriter, ObjectMapper mapper, ServletContext servletContext) {
+		AwsProxyRequest v1Request = readValue(request, AwsProxyRequest.class, mapper);
+		
+		ServerlessHttpServletRequest httpRequest = new ServerlessHttpServletRequest(servletContext, v1Request.getHttpMethod(), v1Request.getPath());
+		if (v1Request.getMultiValueHeaders() != null) {
+			MultiValueMapAdapter headers = new MultiValueMapAdapter(v1Request.getMultiValueHeaders());
+			httpRequest.setHeaders(headers);
+		}
+		if (StringUtils.hasText(v1Request.getBody())) {
+			httpRequest.setContentType("application/json");
+			httpRequest.setContent(v1Request.getBody().getBytes(StandardCharsets.UTF_8));
+		}
+		if (v1Request.getRequestContext() != null) {
+			httpRequest.setAttribute(RequestReader.API_GATEWAY_CONTEXT_PROPERTY, v1Request.getRequestContext());
+			httpRequest.setAttribute(RequestReader.ALB_CONTEXT_PROPERTY, v1Request.getRequestContext().getElb());
+		}
+		httpRequest.setAttribute(RequestReader.API_GATEWAY_STAGE_VARS_PROPERTY, v1Request.getStageVariables());
+		httpRequest.setAttribute(RequestReader.API_GATEWAY_EVENT_PROPERTY, v1Request);
+		httpRequest.setAttribute(RequestReader.LAMBDA_CONTEXT_PROPERTY, lambdaContext);
+		httpRequest.setAttribute(RequestReader.JAX_SECURITY_CONTEXT_PROPERTY,
+				securityWriter.writeSecurityContext(v1Request, lambdaContext));
+		return httpRequest;
+	}
+
+	@SuppressWarnings({ "rawtypes", "unchecked" })
+	private static HttpServletRequest generateRequest2(String request, Context lambdaContext,
+			SecurityContextWriter securityWriter, ObjectMapper mapper, ServletContext servletContext) {
+		HttpApiV2ProxyRequest v2Request = readValue(request, HttpApiV2ProxyRequest.class, mapper);
+		ServerlessHttpServletRequest httpRequest = new ServerlessHttpServletRequest(servletContext,
+				v2Request.getRequestContext().getHttp().getMethod(), v2Request.getRequestContext().getHttp().getPath());
+		
+		v2Request.getHeaders().forEach((k,v) -> httpRequest.setHeader(k, v));
+	
+		if (StringUtils.hasText(v2Request.getBody())) {
+			httpRequest.setContentType("application/json");
+			httpRequest.setContent(v2Request.getBody().getBytes(StandardCharsets.UTF_8));
+		}
+		httpRequest.setAttribute(RequestReader.HTTP_API_CONTEXT_PROPERTY, v2Request.getRequestContext());
+		httpRequest.setAttribute(RequestReader.HTTP_API_STAGE_VARS_PROPERTY, v2Request.getStageVariables());
+		httpRequest.setAttribute(RequestReader.HTTP_API_EVENT_PROPERTY, v2Request);
+		httpRequest.setAttribute(RequestReader.LAMBDA_CONTEXT_PROPERTY, lambdaContext);
+		httpRequest.setAttribute(RequestReader.JAX_SECURITY_CONTEXT_PROPERTY,
+				securityWriter.writeSecurityContext(v2Request, lambdaContext));
+		return httpRequest;
+	}
+	
+	private static <T> T readValue(String json, Class<T> clazz, ObjectMapper mapper) {
+		try {
+			return mapper.readValue(json, clazz);
+		} 
+		catch (Exception e) {
+			throw new IllegalStateException(e);
+		}
+	}
+	
+//	public static class ProxyServletConfig implements ServletConfig {
+//
+//		private final ServletContext servletContext;
+//
+//		public ProxyServletConfig(ServletContext servletContext) {
+//			this.servletContext = servletContext;
+//		}
+//
+//		@Override
+//		public String getServletName() {
+//			return DispatcherServletAutoConfiguration.DEFAULT_DISPATCHER_SERVLET_BEAN_NAME;
+//		}
+//
+//		@Override
+//		public ServletContext getServletContext() {
+//			return this.servletContext;
+//		}
+//
+//		@Override
+//		public Enumeration<String> getInitParameterNames() {
+//			return Collections.enumeration(new ArrayList<String>());
+//		}
+//
+//		@Override
+//		public String getInitParameter(String name) {
+//			return null;
+//		}
+//	}
+}
diff --git a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AWSTypesProcessor.java b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AWSTypesProcessor.java
new file mode 100644
index 000000000..70e961c88
--- /dev/null
+++ b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AWSTypesProcessor.java
@@ -0,0 +1,76 @@
+/*
+ * Copyright 2024-2024 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.amazonaws.serverless.proxy.spring;
+
+import org.springframework.aot.generate.GenerationContext;
+import org.springframework.aot.hint.MemberCategory;
+import org.springframework.aot.hint.RuntimeHints;
+import org.springframework.beans.factory.aot.BeanFactoryInitializationAotContribution;
+import org.springframework.beans.factory.aot.BeanFactoryInitializationAotProcessor;
+import org.springframework.beans.factory.aot.BeanFactoryInitializationCode;
+import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
+
+import com.amazonaws.serverless.proxy.internal.servlet.AwsHttpServletResponse;
+import com.amazonaws.serverless.proxy.model.ApiGatewayRequestIdentity;
+import com.amazonaws.serverless.proxy.model.AwsProxyRequest;
+import com.amazonaws.serverless.proxy.model.AwsProxyRequestContext;
+import com.amazonaws.serverless.proxy.model.Headers;
+import com.amazonaws.serverless.proxy.model.MultiValuedTreeMap;
+import com.amazonaws.serverless.proxy.model.SingleValueHeaders;
+import com.fasterxml.jackson.core.JsonToken;
+
+/**
+ * AOT Initialization processor required to register reflective hints for GraalVM.
+ * This is necessary to ensure proper JSON serialization/deserialization.
+ * It is registered with META-INF/spring/aot.factories
+ *
+ * @author Oleg Zhurakousky
+ */
+public class AWSTypesProcessor implements BeanFactoryInitializationAotProcessor {
+
+	@Override
+	public BeanFactoryInitializationAotContribution processAheadOfTime(ConfigurableListableBeanFactory beanFactory) {
+		return new ReflectiveProcessorBeanFactoryInitializationAotContribution();
+	}
+
+	private static final class ReflectiveProcessorBeanFactoryInitializationAotContribution implements BeanFactoryInitializationAotContribution {
+		@Override
+		public void applyTo(GenerationContext generationContext, BeanFactoryInitializationCode beanFactoryInitializationCode) {
+			RuntimeHints runtimeHints = generationContext.getRuntimeHints();
+			// known static types
+			
+			runtimeHints.reflection().registerType(AwsProxyRequest.class,
+					MemberCategory.INVOKE_PUBLIC_METHODS, MemberCategory.INVOKE_PUBLIC_CONSTRUCTORS, MemberCategory.DECLARED_FIELDS, MemberCategory.DECLARED_CLASSES);
+			runtimeHints.reflection().registerType(SingleValueHeaders.class,
+					MemberCategory.INVOKE_PUBLIC_METHODS, MemberCategory.INVOKE_PUBLIC_CONSTRUCTORS, MemberCategory.DECLARED_FIELDS, MemberCategory.DECLARED_CLASSES);
+			runtimeHints.reflection().registerType(JsonToken.class,
+					MemberCategory.INVOKE_PUBLIC_METHODS, MemberCategory.INVOKE_PUBLIC_CONSTRUCTORS, MemberCategory.DECLARED_FIELDS, MemberCategory.DECLARED_CLASSES);
+			runtimeHints.reflection().registerType(MultiValuedTreeMap.class,
+					MemberCategory.INVOKE_PUBLIC_METHODS, MemberCategory.INVOKE_PUBLIC_CONSTRUCTORS, MemberCategory.DECLARED_FIELDS, MemberCategory.DECLARED_CLASSES);
+			runtimeHints.reflection().registerType(Headers.class,
+					MemberCategory.INVOKE_PUBLIC_METHODS, MemberCategory.INVOKE_PUBLIC_CONSTRUCTORS, MemberCategory.DECLARED_FIELDS, MemberCategory.DECLARED_CLASSES);
+			runtimeHints.reflection().registerType(AwsProxyRequestContext.class,
+					MemberCategory.INVOKE_PUBLIC_METHODS, MemberCategory.INVOKE_PUBLIC_CONSTRUCTORS, MemberCategory.DECLARED_FIELDS, MemberCategory.DECLARED_CLASSES);
+			runtimeHints.reflection().registerType(ApiGatewayRequestIdentity.class,
+					MemberCategory.INVOKE_PUBLIC_METHODS, MemberCategory.INVOKE_PUBLIC_CONSTRUCTORS, MemberCategory.DECLARED_FIELDS, MemberCategory.DECLARED_CLASSES);
+			runtimeHints.reflection().registerType(AwsHttpServletResponse.class,
+					MemberCategory.INVOKE_PUBLIC_METHODS, MemberCategory.INVOKE_PUBLIC_CONSTRUCTORS, 
+					MemberCategory.DECLARED_FIELDS, MemberCategory.DECLARED_CLASSES, MemberCategory.INTROSPECT_DECLARED_METHODS);
+		}
+
+	}
+}
diff --git a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AWSWebRuntimeEventLoop.java b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AWSWebRuntimeEventLoop.java
new file mode 100644
index 000000000..a09f0c0d7
--- /dev/null
+++ b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AWSWebRuntimeEventLoop.java
@@ -0,0 +1,179 @@
+/*
+ * Copyright 2024-2024 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.amazonaws.serverless.proxy.spring;
+
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.net.URI;
+import java.text.MessageFormat;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext;
+import org.springframework.cloud.function.serverless.web.ServerlessMVC;
+import org.springframework.context.SmartLifecycle;
+import org.springframework.core.env.Environment;
+import org.springframework.http.RequestEntity;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.client.RestTemplate;
+
+import com.amazonaws.serverless.proxy.internal.servlet.AwsProxyHttpServletResponseWriter;
+import com.amazonaws.serverless.proxy.model.AwsProxyResponse;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.SerializationFeature;
+
+/**
+ * Event loop and necessary configurations to support AWS Lambda Custom Runtime
+ * - https://docs.aws.amazon.com/lambda/latest/dg/runtimes-custom.html.
+ *
+ * @author Oleg Zhurakousky
+ * @author Mark Sailes
+ *
+ */
+public final class AWSWebRuntimeEventLoop implements SmartLifecycle {
+
+	private static Log logger = LogFactory.getLog(AWSWebRuntimeEventLoop.class);
+
+	static final String LAMBDA_VERSION_DATE = "2018-06-01";
+	private static final String LAMBDA_ERROR_URL_TEMPLATE = "http://{0}/{1}/runtime/invocation/{2}/error";
+	private static final String LAMBDA_RUNTIME_URL_TEMPLATE = "http://{0}/{1}/runtime/invocation/next";
+	private static final String LAMBDA_INVOCATION_URL_TEMPLATE = "http://{0}/{1}/runtime/invocation/{2}/response";
+	private static final String USER_AGENT_VALUE = String.format("spring-cloud-function/%s-%s",
+			System.getProperty("java.runtime.version"), AWSHttpUtils.extractVersion());
+
+	private final ServletWebServerApplicationContext applicationContext;
+
+	private volatile boolean running;
+
+	private ExecutorService executor = Executors.newSingleThreadExecutor();
+
+	public AWSWebRuntimeEventLoop(ServletWebServerApplicationContext applicationContext) {
+		this.applicationContext = applicationContext;
+	}
+
+	public void run() {
+		this.running = true;
+		this.executor.execute(() -> {
+			eventLoop(this.applicationContext);
+		});
+	}
+
+	@Override
+	public void start() {
+		this.run();
+	}
+
+	@Override
+	public void stop() {
+		this.executor.shutdownNow();
+		this.running = false;
+	}
+
+	@Override
+	public boolean isRunning() {
+		return this.running;
+	}
+
+	private void eventLoop(ServletWebServerApplicationContext context) {
+		ServerlessMVC mvc = ServerlessMVC.INSTANCE(context);
+
+		Environment environment = context.getEnvironment();
+		logger.info("Starting AWSWebRuntimeEventLoop");
+		if (logger.isDebugEnabled()) {
+			logger.debug("AWS LAMBDA ENVIRONMENT: " + System.getenv());
+		}
+
+		String runtimeApi = environment.getProperty("AWS_LAMBDA_RUNTIME_API");
+		String eventUri = MessageFormat.format(LAMBDA_RUNTIME_URL_TEMPLATE, runtimeApi, LAMBDA_VERSION_DATE);
+		if (logger.isDebugEnabled()) {
+			logger.debug("Event URI: " + eventUri);
+		}
+
+		RequestEntity<Void> requestEntity = RequestEntity.get(URI.create(eventUri))
+				.header("User-Agent", USER_AGENT_VALUE).build();
+		RestTemplate rest = new RestTemplate();
+		ObjectMapper mapper = context.getBean(ObjectMapper.class);
+		mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
+		AwsProxyHttpServletResponseWriter responseWriter = new AwsProxyHttpServletResponseWriter();
+
+		logger.info("Entering event loop");
+		while (this.isRunning()) {
+			logger.debug("Attempting to get new event");
+			ResponseEntity<String> incomingEvent = rest.exchange(requestEntity, String.class);
+
+			if (incomingEvent != null && incomingEvent.hasBody()) {
+				if (logger.isDebugEnabled()) {
+					logger.debug("New Event received from AWS Gateway: " + incomingEvent.getBody());
+				}
+				String requestId = incomingEvent.getHeaders().getFirst("Lambda-Runtime-Aws-Request-Id");
+				
+				try {
+					logger.debug("Submitting request to the user's web application");
+					
+					AwsProxyResponse awsResponse = AWSHttpUtils.serviceAWS(incomingEvent.getBody(), mvc, mapper, responseWriter);
+					
+					if (logger.isDebugEnabled()) {
+						logger.debug("Received response - body:" + awsResponse.getBody() + 
+								"; status:" + awsResponse.getStatusCode() + "; headers:" + awsResponse.getHeaders());
+					}
+					String invocationUrl = MessageFormat.format(LAMBDA_INVOCATION_URL_TEMPLATE, runtimeApi,
+							LAMBDA_VERSION_DATE, requestId);
+		            ResponseEntity<Object> result = rest.exchange(RequestEntity.post(URI.create(invocationUrl))
+							.header("User-Agent", USER_AGENT_VALUE).body(awsResponse, AwsProxyResponse.class), Object.class);
+		            logger.debug("Response submitted back to the AWS Gateway");
+		            if (logger.isInfoEnabled()) {
+						logger.info("Result POST status: " + result);
+					}
+				} 
+				catch (Exception e) {
+					logger.error(e);
+					this.propagateAwsError(requestId, e, mapper, runtimeApi, rest);
+				}
+			}
+		}
+	}
+
+	private void propagateAwsError(String requestId, Exception e, ObjectMapper mapper, String runtimeApi, RestTemplate rest) {
+		String errorMessage = e.getMessage();
+		String errorType = e.getClass().getSimpleName();
+		StringWriter sw = new StringWriter();
+		PrintWriter pw = new PrintWriter(sw);
+		e.printStackTrace(pw);
+		String stackTrace = sw.toString();
+		Map<String, String> em = new HashMap<>();
+		em.put("errorMessage", errorMessage);
+		em.put("errorType", errorType);
+		em.put("stackTrace", stackTrace);
+		try {
+			byte[] outputBody = mapper.writeValueAsBytes(em);
+			String errorUrl = MessageFormat.format(LAMBDA_ERROR_URL_TEMPLATE, runtimeApi, LAMBDA_VERSION_DATE, requestId);
+			ResponseEntity<Object> result = rest.exchange(RequestEntity.post(URI.create(errorUrl))
+					.header("User-Agent", USER_AGENT_VALUE)
+					.body(outputBody), Object.class);
+			if (logger.isInfoEnabled()) {
+				logger.info("Result ERROR status: " + result.getStatusCode());
+			}
+		}
+		catch (Exception e2) {
+			throw new IllegalArgumentException("Failed to report error", e2);
+		}
+	}
+}
diff --git a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AWSWebRuntimeInitializer.java b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AWSWebRuntimeInitializer.java
new file mode 100644
index 000000000..4d09e6ba2
--- /dev/null
+++ b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AWSWebRuntimeInitializer.java
@@ -0,0 +1,70 @@
+/*
+ * Copyright 2024-2024 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.amazonaws.serverless.proxy.spring;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext;
+import org.springframework.context.ApplicationContextInitializer;
+import org.springframework.context.SmartLifecycle;
+import org.springframework.context.support.GenericApplicationContext;
+import org.springframework.core.env.Environment;
+import org.springframework.util.StringUtils;
+
+/**
+ * Initializer to optionally start Custom Runtime to process web workloads.
+ * Registered with META-INF/spring.factories
+ * 
+ * @author Dave Syer
+ * @author Oleg Zhurakousky
+ */
+public class AWSWebRuntimeInitializer implements ApplicationContextInitializer<GenericApplicationContext> {
+
+	private static Log logger = LogFactory.getLog(AWSWebRuntimeInitializer.class);
+
+	@Override
+	public void initialize(GenericApplicationContext context) {
+		logger.info("AWS Environment: " + System.getenv());
+		Environment environment = context.getEnvironment();
+		if (logger.isDebugEnabled()) {
+			logger.debug("AWS Environment: " + System.getenv());
+		}
+		
+		if (context instanceof ServletWebServerApplicationContext && isCustomRuntime(environment)) {
+			if (context.getBeanFactory().getBeanNamesForType(AWSWebRuntimeEventLoop.class, false, false).length == 0) {
+				context.registerBean(StringUtils.uncapitalize(AWSWebRuntimeEventLoop.class.getSimpleName()),
+						SmartLifecycle.class, () -> new AWSWebRuntimeEventLoop((ServletWebServerApplicationContext) context));
+			}
+		}
+	}
+
+	private boolean isCustomRuntime(Environment environment) {
+		String handler = environment.getProperty("_HANDLER");
+		if (StringUtils.hasText(handler)) {
+			handler = handler.split(":")[0];
+			logger.info("AWS Handler: " + handler);
+			try {
+				Thread.currentThread().getContextClassLoader().loadClass(handler);
+			}
+			catch (Exception e) {
+				logger.debug("Will execute Lambda in Custom Runtime");
+				return true;
+			}
+		}
+		return false;
+	}
+}
diff --git a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/SpringBootLambdaContainerHandler.java b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/SpringBootLambdaContainerHandler.java
index 1f7719e9a..6b3dd5ca2 100644
--- a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/SpringBootLambdaContainerHandler.java
+++ b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/SpringBootLambdaContainerHandler.java
@@ -12,9 +12,26 @@
  */
 package com.amazonaws.serverless.proxy.spring;
 
+import java.util.concurrent.CountDownLatch;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.boot.WebApplicationType;
+import org.springframework.boot.builder.SpringApplicationBuilder;
+import org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext;
+import org.springframework.context.ConfigurableApplicationContext;
+
 import com.amazonaws.serverless.exceptions.ContainerInitializationException;
-import com.amazonaws.serverless.proxy.*;
-import com.amazonaws.serverless.proxy.internal.servlet.*;
+import com.amazonaws.serverless.proxy.ExceptionHandler;
+import com.amazonaws.serverless.proxy.InitializationWrapper;
+import com.amazonaws.serverless.proxy.RequestReader;
+import com.amazonaws.serverless.proxy.ResponseWriter;
+import com.amazonaws.serverless.proxy.SecurityContextWriter;
+import com.amazonaws.serverless.proxy.internal.servlet.AwsHttpServletRequest;
+import com.amazonaws.serverless.proxy.internal.servlet.AwsHttpServletResponse;
+import com.amazonaws.serverless.proxy.internal.servlet.AwsLambdaServletContainerHandler;
+import com.amazonaws.serverless.proxy.internal.servlet.AwsServletContext;
+import com.amazonaws.serverless.proxy.internal.servlet.AwsServletRegistration;
 import com.amazonaws.serverless.proxy.internal.testutils.Timer;
 import com.amazonaws.serverless.proxy.model.AwsProxyRequest;
 import com.amazonaws.serverless.proxy.model.AwsProxyResponse;
@@ -22,17 +39,9 @@
 import com.amazonaws.serverless.proxy.spring.embedded.ServerlessReactiveServletEmbeddedServerFactory;
 import com.amazonaws.serverless.proxy.spring.embedded.ServerlessServletEmbeddedServerFactory;
 import com.amazonaws.services.lambda.runtime.Context;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.boot.WebApplicationType;
-import org.springframework.boot.builder.SpringApplicationBuilder;
-import org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext;
-import org.springframework.context.ConfigurableApplicationContext;
 
 import jakarta.servlet.Servlet;
-import jakarta.servlet.ServletRegistration;
 import jakarta.servlet.http.HttpServletRequest;
-import java.util.concurrent.CountDownLatch;
 
 /**
  * SpringBoot implementation of the `LambdaContainerHandler` abstract class. This class uses the `LambdaSpringApplicationInitializer`
diff --git a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/SpringDelegatingLambdaContainerHandler.java b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/SpringDelegatingLambdaContainerHandler.java
index ce3142369..7bbd8347b 100644
--- a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/SpringDelegatingLambdaContainerHandler.java
+++ b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/SpringDelegatingLambdaContainerHandler.java
@@ -3,24 +3,14 @@
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
-import java.nio.charset.StandardCharsets;
-import java.util.Map;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
 
 import org.springframework.cloud.function.serverless.web.FunctionClassUtils;
-import org.springframework.cloud.function.serverless.web.ProxyHttpServletRequest;
-import org.springframework.cloud.function.serverless.web.ProxyMvc;
-import org.springframework.util.StringUtils;
+import org.springframework.cloud.function.serverless.web.ServerlessMVC;
 
-import com.amazonaws.serverless.proxy.AwsHttpApiV2SecurityContextWriter;
-import com.amazonaws.serverless.proxy.AwsProxySecurityContextWriter;
-import com.amazonaws.serverless.proxy.RequestReader;
-import com.amazonaws.serverless.proxy.SecurityContextWriter;
 import com.amazonaws.serverless.proxy.internal.servlet.AwsHttpServletResponse;
 import com.amazonaws.serverless.proxy.internal.servlet.AwsProxyHttpServletResponseWriter;
-import com.amazonaws.serverless.proxy.model.AwsProxyRequest;
-import com.amazonaws.serverless.proxy.model.HttpApiV2ProxyRequest;
 import com.amazonaws.services.lambda.runtime.Context;
 import com.amazonaws.services.lambda.runtime.RequestStreamHandler;
 import com.fasterxml.jackson.databind.ObjectMapper;
@@ -52,7 +42,7 @@ public class SpringDelegatingLambdaContainerHandler implements RequestStreamHand
 
     private final Class<?>[] startupClasses;
 
-    private final ProxyMvc mvc;
+    private final ServerlessMVC mvc;
 
     private final ObjectMapper mapper;
 
@@ -64,67 +54,24 @@ public SpringDelegatingLambdaContainerHandler() {
 
     public SpringDelegatingLambdaContainerHandler(Class<?>... startupClasses) {
         this.startupClasses = startupClasses;
-        this.mvc = ProxyMvc.INSTANCE(this.startupClasses);
+        this.mvc = ServerlessMVC.INSTANCE(this.startupClasses);
         this.mapper = new ObjectMapper();
         this.responseWriter = new AwsProxyHttpServletResponseWriter();
     }
 
-    @SuppressWarnings({"rawtypes" })
     @Override
     public void handleRequest(InputStream input, OutputStream output, Context lambdaContext) throws IOException {
-        Map request = mapper.readValue(input, Map.class);
-        SecurityContextWriter securityWriter = "2.0".equals(request.get("version"))
-                ? new AwsHttpApiV2SecurityContextWriter() : new AwsProxySecurityContextWriter();
-        HttpServletRequest httpServletRequest = "2.0".equals(request.get("version"))
-                ? this.generateRequest2(request, lambdaContext, securityWriter) : this.generateRequest(request, lambdaContext, securityWriter);
-
+        HttpServletRequest httpServletRequest = AWSHttpUtils
+        		.generateHttpServletRequest(input, lambdaContext, this.mvc.getServletContext(), this.mapper);
         CountDownLatch latch = new CountDownLatch(1);
         AwsHttpServletResponse httpServletResponse = new AwsHttpServletResponse(httpServletRequest, latch);
         try {
-            mvc.service(httpServletRequest, httpServletResponse);
+            this.mvc.service(httpServletRequest, httpServletResponse);
             latch.await(10, TimeUnit.SECONDS);
-            mapper.writeValue(output, responseWriter.writeResponse(httpServletResponse, lambdaContext));
+            this.mapper.writeValue(output, responseWriter.writeResponse(httpServletResponse, lambdaContext));
         }
         catch (Exception e) {
             throw new IllegalStateException(e);
         }
     }
-
-    @SuppressWarnings({ "unchecked", "rawtypes" })
-    private HttpServletRequest generateRequest(Map request, Context lambdaContext, SecurityContextWriter securityWriter) {
-        AwsProxyRequest v1Request = this.mapper.convertValue(request, AwsProxyRequest.class);
-
-        ProxyHttpServletRequest httpRequest = new ProxyHttpServletRequest(this.mvc.getApplicationContext().getServletContext(),
-                v1Request.getHttpMethod(), v1Request.getPath());
-
-        if (StringUtils.hasText(v1Request.getBody())) {
-            httpRequest.setContentType("application/json");
-            httpRequest.setContent(v1Request.getBody().getBytes(StandardCharsets.UTF_8));
-        }
-        httpRequest.setAttribute(RequestReader.API_GATEWAY_CONTEXT_PROPERTY, v1Request.getRequestContext());
-        httpRequest.setAttribute(RequestReader.API_GATEWAY_STAGE_VARS_PROPERTY, v1Request.getStageVariables());
-        httpRequest.setAttribute(RequestReader.API_GATEWAY_EVENT_PROPERTY, v1Request);
-        httpRequest.setAttribute(RequestReader.ALB_CONTEXT_PROPERTY, v1Request.getRequestContext().getElb());
-        httpRequest.setAttribute(RequestReader.LAMBDA_CONTEXT_PROPERTY, lambdaContext);
-        httpRequest.setAttribute(RequestReader.JAX_SECURITY_CONTEXT_PROPERTY, securityWriter.writeSecurityContext(v1Request, lambdaContext));
-        return httpRequest;
-    }
-
-    @SuppressWarnings({ "rawtypes", "unchecked" })
-    public HttpServletRequest generateRequest2(Map request, Context lambdaContext, SecurityContextWriter securityWriter) {
-        HttpApiV2ProxyRequest v2Request = this.mapper.convertValue(request, HttpApiV2ProxyRequest.class);
-        ProxyHttpServletRequest httpRequest = new ProxyHttpServletRequest(this.mvc.getApplicationContext().getServletContext(),
-                v2Request.getRequestContext().getHttp().getMethod(), v2Request.getRequestContext().getHttp().getPath());
-
-        if (StringUtils.hasText(v2Request.getBody())) {
-            httpRequest.setContentType("application/json");
-            httpRequest.setContent(v2Request.getBody().getBytes(StandardCharsets.UTF_8));
-        }
-        httpRequest.setAttribute(RequestReader.HTTP_API_CONTEXT_PROPERTY, v2Request.getRequestContext());
-        httpRequest.setAttribute(RequestReader.HTTP_API_STAGE_VARS_PROPERTY, v2Request.getStageVariables());
-        httpRequest.setAttribute(RequestReader.HTTP_API_EVENT_PROPERTY, v2Request);
-        httpRequest.setAttribute(RequestReader.LAMBDA_CONTEXT_PROPERTY, lambdaContext);
-        httpRequest.setAttribute(RequestReader.JAX_SECURITY_CONTEXT_PROPERTY, securityWriter.writeSecurityContext(v2Request, lambdaContext));
-        return httpRequest;
-    }
 }
diff --git a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/embedded/ServerlessServletEmbeddedServerFactory.java b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/embedded/ServerlessServletEmbeddedServerFactory.java
index fbc31145d..76ee919dc 100644
--- a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/embedded/ServerlessServletEmbeddedServerFactory.java
+++ b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/embedded/ServerlessServletEmbeddedServerFactory.java
@@ -25,8 +25,8 @@
 
 @AutoConfigureOrder(Ordered.HIGHEST_PRECEDENCE)
 public class ServerlessServletEmbeddedServerFactory implements ServletWebServerFactory, WebServer {
-    private ServletContextInitializer[] initializers;
-    private AwsLambdaServletContainerHandler handler;
+    @SuppressWarnings("rawtypes")
+	private AwsLambdaServletContainerHandler handler;
 
     public ServerlessServletEmbeddedServerFactory() {
         super();
@@ -35,7 +35,6 @@ public ServerlessServletEmbeddedServerFactory() {
 
     @Override
     public WebServer getWebServer(ServletContextInitializer... initializers) {
-        this.initializers = initializers;
         for (ServletContextInitializer i : initializers) {
             try {
                 if (handler.getServletContext() == null) {
diff --git a/aws-serverless-java-container-springboot3/src/main/resources/META-INF/spring.factories b/aws-serverless-java-container-springboot3/src/main/resources/META-INF/spring.factories
new file mode 100644
index 000000000..a50819954
--- /dev/null
+++ b/aws-serverless-java-container-springboot3/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,2 @@
+org.springframework.context.ApplicationContextInitializer=\
+com.amazonaws.serverless.proxy.spring.AWSWebRuntimeInitializer
diff --git a/aws-serverless-java-container-springboot3/src/main/resources/META-INF/spring/aot.factories b/aws-serverless-java-container-springboot3/src/main/resources/META-INF/spring/aot.factories
new file mode 100644
index 000000000..779aeae9d
--- /dev/null
+++ b/aws-serverless-java-container-springboot3/src/main/resources/META-INF/spring/aot.factories
@@ -0,0 +1 @@
+org.springframework.beans.factory.aot.BeanFactoryInitializationAotProcessor=com.amazonaws.serverless.proxy.spring.AWSTypesProcessor
\ No newline at end of file
diff --git a/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/AWSHttpUtilsTests.java b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/AWSHttpUtilsTests.java
new file mode 100644
index 000000000..741162f67
--- /dev/null
+++ b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/AWSHttpUtilsTests.java
@@ -0,0 +1,249 @@
+package com.amazonaws.serverless.proxy.spring;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+import java.io.ByteArrayInputStream;
+import java.nio.charset.StandardCharsets;
+import java.util.Arrays;
+import java.util.Collection;
+
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.MethodSource;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
+import org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext;
+import org.springframework.cloud.function.serverless.web.ServerlessMVC;
+import org.springframework.cloud.function.serverless.web.ServerlessServletContext;
+import org.springframework.context.ConfigurableApplicationContext;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.security.config.annotation.web.builders.HttpSecurity;
+import org.springframework.security.web.SecurityFilterChain;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.servlet.config.annotation.EnableWebMvc;
+
+import com.amazonaws.serverless.proxy.internal.servlet.AwsProxyHttpServletResponseWriter;
+import com.amazonaws.serverless.proxy.model.AwsProxyResponse;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+import jakarta.servlet.http.HttpServletRequest;
+
+public class AWSHttpUtilsTests {
+	
+	private static String API_GATEWAY_EVENT = "{\n"
+            + "    \"version\": \"1.0\",\n"
+            + "    \"resource\": \"$default\",\n"
+            + "    \"path\": \"/async\",\n"
+            + "    \"httpMethod\": \"POST\",\n"
+            + "    \"headers\": {\n"
+            + "        \"Content-Length\": \"45\",\n"
+            + "        \"Content-Type\": \"application/json\",\n"
+            + "        \"Host\": \"i76bfh111.execute-api.eu-west-3.amazonaws.com\",\n"
+            + "        \"User-Agent\": \"curl/7.79.1\",\n"
+            + "        \"X-Amzn-Trace-Id\": \"Root=1-64087690-2151375b219d3ba3389ea84e\",\n"
+            + "        \"X-Forwarded-For\": \"109.210.252.44\",\n"
+            + "        \"X-Forwarded-Port\": \"443\",\n"
+            + "        \"X-Forwarded-Proto\": \"https\",\n"
+            + "        \"accept\": \"*/*\"\n"
+            + "    },\n"
+            + "    \"multiValueHeaders\": {\n"
+            + "        \"Content-Length\": [\n"
+            + "            \"45\"\n"
+            + "        ],\n"
+            + "        \"Content-Type\": [\n"
+            + "            \"application/json\"\n"
+            + "        ],\n"
+            + "        \"Host\": [\n"
+            + "            \"i76bfhczs0.execute-api.eu-west-3.amazonaws.com\"\n"
+            + "        ],\n"
+            + "        \"User-Agent\": [\n"
+            + "            \"curl/7.79.1\"\n"
+            + "        ],\n"
+            + "        \"X-Amzn-Trace-Id\": [\n"
+            + "            \"Root=1-64087690-2151375b219d3ba3389ea84e\"\n"
+            + "        ],\n"
+            + "        \"X-Forwarded-For\": [\n"
+            + "            \"109.210.252.44\"\n"
+            + "        ],\n"
+            + "        \"X-Forwarded-Port\": [\n"
+            + "            \"443\"\n"
+            + "        ],\n"
+            + "        \"X-Forwarded-Proto\": [\n"
+            + "            \"https\"\n"
+            + "        ],\n"
+            + "        \"accept\": [\n"
+            + "            \"*/*\"\n"
+            + "        ]\n"
+            + "    },\n"
+            + "    \"queryStringParameters\": {\n"
+            + "        \"abc\": \"xyz\",\n"
+            + "        \"foo\": \"baz\"\n"
+            + "    },\n"
+            + "    \"multiValueQueryStringParameters\": {\n"
+            + "        \"abc\": [\n"
+            + "            \"xyz\"\n"
+            + "        ],\n"
+            + "        \"foo\": [\n"
+            + "            \"bar\",\n"
+            + "            \"baz\"\n"
+            + "        ]\n"
+            + "    },\n"
+            + "    \"requestContext\": {\n"
+            + "        \"accountId\": \"123456789098\",\n"
+            + "        \"apiId\": \"i76bfhczs0\",\n"
+            + "        \"domainName\": \"i76bfhc111.execute-api.eu-west-3.amazonaws.com\",\n"
+            + "        \"domainPrefix\": \"i76bfhczs0\",\n"
+            + "        \"extendedRequestId\": \"Bdd2ngt5iGYEMIg=\",\n"
+            + "        \"httpMethod\": \"POST\",\n"
+            + "        \"path\": \"/pets\",\n"
+            + "        \"protocol\": \"HTTP/1.1\",\n"
+            + "        \"requestId\": \"Bdd2ngt5iGYEMIg=\",\n"
+            + "        \"requestTime\": \"08/Mar/2023:11:50:40 +0000\",\n"
+            + "        \"requestTimeEpoch\": 1678276240455,\n"
+            + "        \"resourceId\": \"$default\",\n"
+            + "        \"resourcePath\": \"$default\",\n"
+            + "        \"stage\": \"$default\"\n"
+            + "    },\n"
+            + "    \"pathParameters\": null,\n"
+            + "    \"stageVariables\": null,\n"
+            + "    \"body\": \"{\\\"name\\\":\\\"bob\\\"}\",\n"
+            + "    \"isBase64Encoded\": false\n"
+            + "}";
+
+    private static String API_GATEWAY_EVENT_V2 = "{\n" +
+            "  \"version\": \"2.0\",\n" +
+            "  \"routeKey\": \"$default\",\n" +
+            "  \"rawPath\": \"/async\",\n" +
+            "  \"rawQueryString\": \"parameter1=value1&parameter1=value2&parameter2=value\",\n" +
+            "  \"cookies\": [\n" +
+            "    \"cookie1\",\n" +
+            "    \"cookie2\"\n" +
+            "  ],\n" +
+            "  \"headers\": {\n" +
+            "    \"header1\": \"value1\",\n" +
+            "    \"header2\": \"value1,value2\",\n" +
+            "    \"User-Agent\": \"curl/7.79.1\",\n" + 
+            "    \"X-Forwarded-Port\": \"443\"\n" +
+            "  },\n" +
+            "  \"queryStringParameters\": {\n" +
+            "    \"parameter1\": \"value1,value2\",\n" +
+            "    \"parameter2\": \"value\"\n" +
+            "  },\n" +
+            "  \"requestContext\": {\n" +
+            "    \"accountId\": \"123456789012\",\n" +
+            "    \"apiId\": \"api-id\",\n" +
+            "    \"authentication\": {\n" +
+            "      \"clientCert\": {\n" +
+            "        \"clientCertPem\": \"CERT_CONTENT\",\n" +
+            "        \"subjectDN\": \"www.example.com\",\n" +
+            "        \"issuerDN\": \"Example issuer\",\n" +
+            "        \"serialNumber\": \"a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1\",\n" +
+            "        \"validity\": {\n" +
+            "          \"notBefore\": \"May 28 12:30:02 2019 GMT\",\n" +
+            "          \"notAfter\": \"Aug  5 09:36:04 2021 GMT\"\n" +
+            "        }\n" +
+            "      }\n" +
+            "    },\n" +
+            "    \"authorizer\": {\n" +
+            "      \"jwt\": {\n" +
+            "        \"claims\": {\n" +
+            "          \"claim1\": \"value1\",\n" +
+            "          \"claim2\": \"value2\"\n" +
+            "        },\n" +
+            "        \"scopes\": [\n" +
+            "          \"scope1\",\n" +
+            "          \"scope2\"\n" +
+            "        ]\n" +
+            "      }\n" +
+            "    },\n" +
+            "    \"domainName\": \"id.execute-api.us-east-1.amazonaws.com\",\n" +
+            "    \"domainPrefix\": \"id\",\n" +
+            "    \"http\": {\n" +
+            "      \"method\": \"POST\",\n" +
+            "      \"path\": \"/async\",\n" +
+            "      \"protocol\": \"HTTP/1.1\",\n" +
+            "      \"sourceIp\": \"IP\",\n" +
+            "      \"userAgent\": \"agent\"\n" +
+            "    },\n" +
+            "    \"requestId\": \"id\",\n" +
+            "    \"routeKey\": \"$default\",\n" +
+            "    \"stage\": \"$default\",\n" +
+            "    \"time\": \"12/Mar/2020:19:03:58 +0000\",\n" +
+            "    \"timeEpoch\": 1583348638390\n" +
+            "  },\n" +
+            "  \"body\": \"Hello from Lambda\",\n" +
+            "  \"pathParameters\": {\n" +
+            "    \"parameter1\": \"value1\"\n" +
+            "  },\n" +
+            "  \"isBase64Encoded\": false,\n" +
+            "  \"stageVariables\": {\n" +
+            "    \"stageVariable1\": \"value1\",\n" +
+            "    \"stageVariable2\": \"value2\"\n" +
+            "  }\n" +
+            "}";
+
+    private final ObjectMapper mapper = new ObjectMapper();
+
+    public static Collection<String> data() {
+        return Arrays.asList(new String[]{API_GATEWAY_EVENT, API_GATEWAY_EVENT_V2});
+    }
+
+    @MethodSource("data")
+    @ParameterizedTest
+	public void validateHttpServletRequestGenerationWithInputStream(String jsonEvent) {
+		ByteArrayInputStream inputStream = new ByteArrayInputStream(jsonEvent.getBytes(StandardCharsets.UTF_8));
+		ServerlessServletContext servletContext = new ServerlessServletContext();
+		HttpServletRequest request = AWSHttpUtils.generateHttpServletRequest(inputStream, null, servletContext, mapper);
+		// spot check some headers
+		assertEquals("curl/7.79.1", request.getHeader("User-Agent"));
+		assertEquals("443", request.getHeader("X-Forwarded-Port"));
+		assertEquals("POST", request.getMethod());
+		assertEquals("/async", request.getRequestURI());
+	}
+    
+    @MethodSource("data")
+    @ParameterizedTest
+	public void validateHttpServletRequestGenerationWithJson(String jsonEvent) {
+		ServerlessServletContext servletContext = new ServerlessServletContext();
+		HttpServletRequest request = AWSHttpUtils.generateHttpServletRequest(jsonEvent, null, servletContext, mapper);
+		// spot check some headers
+		assertEquals("curl/7.79.1", request.getHeader("User-Agent"));
+		assertEquals("443", request.getHeader("X-Forwarded-Port"));
+		assertEquals("POST", request.getMethod());
+		assertEquals("/async", request.getRequestURI());
+	}
+    
+    @MethodSource("data")
+    @ParameterizedTest
+    public void validateRequestResponse(String jsonEvent) throws Exception {
+    	try (ConfigurableApplicationContext context = SpringApplication.run(EmptyApplication.class);) {
+    		ServerlessMVC mvc = ServerlessMVC.INSTANCE((ServletWebServerApplicationContext) context);
+    		AwsProxyHttpServletResponseWriter responseWriter = new AwsProxyHttpServletResponseWriter();
+    		AwsProxyResponse awsResponse = AWSHttpUtils.serviceAWS(jsonEvent, mvc, mapper, responseWriter);
+    		assertEquals("hello", awsResponse.getBody());
+    		assertEquals(200, awsResponse.getStatusCode());
+    	}
+    	
+    }
+    
+    @EnableAutoConfiguration
+    @Configuration
+    public static class EmptyApplication {
+    	@RestController
+        @EnableWebMvc
+        public static class MyController {
+        	@PostMapping(path = "/async")
+        	public String async(@RequestBody String body) {
+        		return "hello";
+        	}
+        }
+    	
+    	@Bean
+    	SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
+    		http.csrf((csrf) -> csrf.disable());
+    		return http.build();
+    	}
+    }
+}
diff --git a/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/AWSWebRuntimeTests.java b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/AWSWebRuntimeTests.java
new file mode 100644
index 000000000..f6eb7d92d
--- /dev/null
+++ b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/AWSWebRuntimeTests.java
@@ -0,0 +1,39 @@
+package com.amazonaws.serverless.proxy.spring;
+
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.Test;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
+import org.springframework.context.ConfigurableApplicationContext;
+
+public class AWSWebRuntimeTests {
+	
+	@AfterEach
+	public void after() {
+		System.clearProperty("_HANDLER");
+	}
+
+	@Test
+    public void testWebRuntimeInitialization() throws Exception {
+    	try (ConfigurableApplicationContext context = SpringApplication.run(EmptyApplication.class);) {
+    		assertFalse(context.getBeansOfType(AWSWebRuntimeEventLoop.class).size() > 0);
+    	}
+    	System.setProperty("_HANDLER", "foo");
+    	AWSWebRuntimeEventLoop loop = null;
+    	try (ConfigurableApplicationContext context = SpringApplication.run(EmptyApplication.class);) {
+    		Thread.sleep(100);
+    		assertTrue(context.getBeansOfType(AWSWebRuntimeEventLoop.class).size() > 0);
+    		loop = context.getBean(AWSWebRuntimeEventLoop.class);
+    		assertTrue(loop.isRunning());
+    	}
+    	assertFalse(loop.isRunning());
+    }
+	
+	@EnableAutoConfiguration
+    private static class EmptyApplication {
+    	
+    }
+}
diff --git a/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/WebFluxAppTest.java b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/WebFluxAppTest.java
index 0a477ef0f..9c39fd905 100644
--- a/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/WebFluxAppTest.java
+++ b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/WebFluxAppTest.java
@@ -1,22 +1,21 @@
 package com.amazonaws.serverless.proxy.spring;
 
-import com.amazonaws.serverless.proxy.internal.LambdaContainerHandler;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+
+import java.util.Arrays;
+import java.util.Collection;
+
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.MethodSource;
+
 import com.amazonaws.serverless.proxy.internal.testutils.AwsProxyRequestBuilder;
 import com.amazonaws.serverless.proxy.internal.testutils.MockLambdaContext;
-import com.amazonaws.serverless.proxy.model.AwsProxyRequest;
 import com.amazonaws.serverless.proxy.model.AwsProxyResponse;
 import com.amazonaws.serverless.proxy.spring.webfluxapp.LambdaHandler;
 import com.amazonaws.serverless.proxy.spring.webfluxapp.MessageController;
 import com.amazonaws.serverless.proxy.spring.webfluxapp.MessageData;
 import com.fasterxml.jackson.core.JsonProcessingException;
-import org.junit.jupiter.params.ParameterizedTest;
-import org.junit.jupiter.params.provider.MethodSource;
-
-import java.util.Arrays;
-import java.util.Collection;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
 
 public class WebFluxAppTest {
 
diff --git a/samples/springboot3/alt-pet-store/pom.xml b/samples/springboot3/alt-pet-store/pom.xml
index 7bfd00bf2..cf67ee6fb 100644
--- a/samples/springboot3/alt-pet-store/pom.xml
+++ b/samples/springboot3/alt-pet-store/pom.xml
@@ -31,13 +31,13 @@
     <dependencies>
         <dependency>
             <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-web</artifactId>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.springframework.boot</groupId>
-                    <artifactId>spring-boot-starter-tomcat</artifactId>
-                </exclusion>
-            </exclusions>
+            <artifactId>spring-boot-starter</artifactId>
+<!--            <exclusions>-->
+<!--                <exclusion>-->
+<!--                    <groupId>org.springframework.boot</groupId>-->
+<!--                    <artifactId>spring-boot-starter-tomcat</artifactId>-->
+<!--                </exclusion>-->
+<!--            </exclusions>-->
         </dependency>
 
         <dependency>
diff --git a/samples/springboot3/alt-pet-store/src/main/resources/logback.xml b/samples/springboot3/alt-pet-store/src/main/resources/logback.xml
index 14a3a84fa..81d891777 100644
--- a/samples/springboot3/alt-pet-store/src/main/resources/logback.xml
+++ b/samples/springboot3/alt-pet-store/src/main/resources/logback.xml
@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <configuration>
     <include resource="org/springframework/boot/logging/logback/base.xml" />
-    <logger name="org.springframework" level="ERROR"/>
+    <logger name="org.springframework.cloud.function" level="DEBUG"/>
+    <logger name="com.amazonaws.serverless" level="DEBUG"/>
 </configuration>
\ No newline at end of file
diff --git a/samples/springboot3/alt-pet-store/template.yml b/samples/springboot3/alt-pet-store/template.yml
index c883f0850..8a51c8d1d 100644
--- a/samples/springboot3/alt-pet-store/template.yml
+++ b/samples/springboot3/alt-pet-store/template.yml
@@ -14,7 +14,7 @@ Resources:
 #      AutoPublishAlias: bcn
       FunctionName: pet-store-boot-3
       Handler: com.amazonaws.serverless.proxy.spring.SpringDelegatingLambdaContainerHandler::handleRequest
-      Runtime: java21
+      Runtime: java17
       SnapStart:
         ApplyOn: PublishedVersions
       CodeUri: .

From 4fee8fce73e8223fe3bd82fbf099b0e90af9a275 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Fri, 12 Jan 2024 16:15:15 +0100
Subject: [PATCH 083/430] chore(deps): update commons-fileupload to 2.0.0-M2

---
 aws-serverless-java-container-core/pom.xml                    | 4 ++--
 .../proxy/internal/servlet/AwsHttpServletRequest.java         | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml
index 17f8edc7c..2a290f85f 100644
--- a/aws-serverless-java-container-core/pom.xml
+++ b/aws-serverless-java-container-core/pom.xml
@@ -53,8 +53,8 @@
 
         <dependency>
             <groupId>org.apache.commons</groupId>
-            <artifactId>commons-fileupload2-jakarta</artifactId>
-            <version>2.0.0-M1</version>
+            <artifactId>commons-fileupload2-jakarta-servlet6</artifactId>
+            <version>2.0.0-M2</version>
         </dependency>
 
         <dependency>
diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java
index ca5d163ec..31d26a182 100644
--- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java
@@ -25,7 +25,7 @@
 import org.apache.commons.fileupload2.core.FileItem;
 import org.apache.commons.fileupload2.core.FileUploadException;
 import org.apache.commons.fileupload2.core.DiskFileItemFactory;
-import org.apache.commons.fileupload2.jakarta.JakartaServletFileUpload;
+import org.apache.commons.fileupload2.jakarta.servlet6.JakartaServletFileUpload;
 import org.apache.commons.io.FilenameUtils;
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.io.input.NullInputStream;

From 13c0d3fe04b5202c52cfb742a53ecb820dd418be Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Fri, 12 Jan 2024 17:16:14 +0100
Subject: [PATCH 084/430] refactor: use defaultCharset, polishing

---
 .../servlet/AwsHttpServletRequest.java        | 29 ++++++++++---------
 1 file changed, 15 insertions(+), 14 deletions(-)

diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java
index 31d26a182..d17270d98 100644
--- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java
@@ -22,6 +22,7 @@
 import com.amazonaws.serverless.proxy.model.MultiValuedTreeMap;
 import com.amazonaws.services.lambda.runtime.Context;
 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import org.apache.commons.fileupload2.core.DiskFileItem;
 import org.apache.commons.fileupload2.core.FileItem;
 import org.apache.commons.fileupload2.core.FileUploadException;
 import org.apache.commons.fileupload2.core.DiskFileItemFactory;
@@ -41,7 +42,7 @@
 import java.io.UnsupportedEncodingException;
 import java.net.URLDecoder;
 import java.net.URLEncoder;
-import java.nio.charset.StandardCharsets;
+import java.nio.charset.Charset;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -312,7 +313,7 @@ protected Cookie[] parseCookieHeaderValue(String headerValue) {
      */
     protected String generateQueryString(MultiValuedTreeMap<String, String> parameters, boolean encode, String encodeCharset)
             throws ServletException {
-        if (parameters == null || parameters.size() == 0) {
+        if (parameters == null || parameters.isEmpty()) {
             return null;
         }
         if (queryString != null) {
@@ -396,7 +397,7 @@ protected String parseCharacterEncoding(String contentTypeHeader) {
     }
 
     protected String appendCharacterEncoding(String currentContentType, String newEncoding) {
-        if (currentContentType == null || "".equals(currentContentType.trim())) {
+        if (currentContentType == null || currentContentType.trim().isEmpty()) {
             return null;
         }
 
@@ -429,13 +430,13 @@ protected ServletInputStream bodyStringToInputStream(String body, boolean isBase
         } else {
             String encoding = getCharacterEncoding();
             if (encoding == null) {
-                encoding = StandardCharsets.ISO_8859_1.name();
+                encoding = Charset.defaultCharset().name();
             }
             try {
                 bodyBytes = body.getBytes(encoding);
             } catch (Exception e) {
                 log.error("Could not read request with character encoding: " + SecurityUtils.crlf(encoding), e);
-                bodyBytes = body.getBytes(StandardCharsets.ISO_8859_1.name());
+                bodyBytes = body.getBytes(Charset.defaultCharset());
             }
         }
         ByteArrayInputStream requestBodyStream = new ByteArrayInputStream(bodyBytes);
@@ -486,7 +487,7 @@ protected Map<String, List<String>> getFormUrlEncodedParametersMap() {
         Timer.start("SERVLET_REQUEST_GET_FORM_PARAMS");
         String rawBodyContent = null;
         try {
-            rawBodyContent = IOUtils.toString(getInputStream());
+            rawBodyContent = IOUtils.toString(getInputStream(), getCharacterEncoding());
         } catch (IOException e) {
             throw new RuntimeException(e);
         }
@@ -543,11 +544,12 @@ protected Map<String, List<Part>> getMultipartFormParametersMap() {
         Timer.start("SERVLET_REQUEST_GET_MULTIPART_PARAMS");
         multipartFormParameters = new TreeMap<>(String.CASE_INSENSITIVE_ORDER);
 
-        JakartaServletFileUpload upload = new JakartaServletFileUpload(DiskFileItemFactory.builder().get());
+        JakartaServletFileUpload<DiskFileItem, DiskFileItemFactory> upload =
+                new JakartaServletFileUpload<>(DiskFileItemFactory.builder().get());
 
         try {
-            List<FileItem> items = upload.parseRequest(this);
-            for (FileItem item : items) {
+            List<DiskFileItem> items = upload.parseRequest(this);
+            for (FileItem<DiskFileItem> item : items) {
                 String fileName = FilenameUtils.getName(item.getName());
                 AwsProxyRequestPart newPart = new AwsProxyRequestPart(item.get());
                 newPart.setName(item.getFieldName());
@@ -684,11 +686,10 @@ protected List<HeaderValue> parseHeaderValue(String headerValue, String valueSep
             return values;
         }
 
-        for (String v : headerValue.split(valueSeparator)) {
-            String curValue = v;
+        for (String curValue : headerValue.split(valueSeparator)) {
             float curPreference = 1.0f;
             HeaderValue newValue = new HeaderValue();
-            newValue.setRawValue(v);
+            newValue.setRawValue(curValue);
 
             for (String q : curValue.split(qualifierSeparator)) {
 
@@ -704,7 +705,7 @@ protected List<HeaderValue> parseHeaderValue(String headerValue, String valueSep
                     // if the length of the value is 0 we assume that we are looking at a
                     // base64 encoded value with padding so we just set the value. This is because
                     // we assume that empty values in a key/value pair will contain at least a white space
-                    if (kv[1].length() == 0) {
+                    if (kv[1].isEmpty()) {
                         val = q.trim();
                     }
                     // this was a base64 string with an additional = for padding, set the value only
@@ -752,7 +753,7 @@ protected List<Locale> parseAcceptLanguageHeader(String headerValue) {
         );
 
         List<Locale> locales = new ArrayList<>();
-        if (values.size() == 0) {
+        if (values.isEmpty()) {
             locales.add(Locale.getDefault());
         } else {
             for (HeaderValue locale : values) {

From 40f7050d69c5f5302091ab5bbd1e4743d8616026 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 15 Jan 2024 04:37:37 +0000
Subject: [PATCH 085/430] chore(deps): bump
 com.github.spotbugs:spotbugs-maven-plugin

Bumps [com.github.spotbugs:spotbugs-maven-plugin](https://github.com/spotbugs/spotbugs-maven-plugin) from 4.8.2.0 to 4.8.3.0.
- [Release notes](https://github.com/spotbugs/spotbugs-maven-plugin/releases)
- [Commits](https://github.com/spotbugs/spotbugs-maven-plugin/compare/spotbugs-maven-plugin-4.8.2.0...spotbugs-maven-plugin-4.8.3.0)

---
updated-dependencies:
- dependency-name: com.github.spotbugs:spotbugs-maven-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 5dd123278..01c3162d0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -249,7 +249,7 @@
                 <plugin>
                     <groupId>com.github.spotbugs</groupId>
                     <artifactId>spotbugs-maven-plugin</artifactId>
-                    <version>4.8.2.0</version>
+                    <version>4.8.3.0</version>
                     <configuration>
                         <!--
                             Enables analysis which takes more memory but finds more bugs.

From bc6a3d3fd706c8a323bb3e0230bbb835385395ed Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 15 Jan 2024 04:37:49 +0000
Subject: [PATCH 086/430] chore(deps): bump slf4j.version from 2.0.10 to 2.0.11

Bumps `slf4j.version` from 2.0.10 to 2.0.11.

Updates `org.slf4j:slf4j-api` from 2.0.10 to 2.0.11

Updates `org.slf4j:slf4j-simple` from 2.0.10 to 2.0.11

---
updated-dependencies:
- dependency-name: org.slf4j:slf4j-api
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.slf4j:slf4j-simple
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 5dd123278..d9664811b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -79,7 +79,7 @@
         <jacoco.minCoverage>0.7</jacoco.minCoverage>
         <dependencyCheck.version>9.0.8</dependencyCheck.version>
         <jackson.version>2.16.1</jackson.version>
-        <slf4j.version>2.0.10</slf4j.version>
+        <slf4j.version>2.0.11</slf4j.version>
         <junit.version>5.10.1</junit.version>
         <mockito.version>5.8.0</mockito.version>
         <hamcrest.version>1.3</hamcrest.version>

From 41dedd7f2ebd097419b4c4f7d8d35908afb12331 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 15 Jan 2024 04:37:56 +0000
Subject: [PATCH 087/430] chore(deps-dev): bump org.mockito:mockito-core from
 5.8.0 to 5.9.0

Bumps [org.mockito:mockito-core](https://github.com/mockito/mockito) from 5.8.0 to 5.9.0.
- [Release notes](https://github.com/mockito/mockito/releases)
- [Commits](https://github.com/mockito/mockito/compare/v5.8.0...v5.9.0)

---
updated-dependencies:
- dependency-name: org.mockito:mockito-core
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 5dd123278..2f381cc4b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -81,7 +81,7 @@
         <jackson.version>2.16.1</jackson.version>
         <slf4j.version>2.0.10</slf4j.version>
         <junit.version>5.10.1</junit.version>
-        <mockito.version>5.8.0</mockito.version>
+        <mockito.version>5.9.0</mockito.version>
         <hamcrest.version>1.3</hamcrest.version>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     </properties>

From d166f2ff0f04ba0671e11153818a186a7ea2de73 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 15 Jan 2024 04:38:00 +0000
Subject: [PATCH 088/430] chore(deps): bump
 org.apache.maven.plugins:maven-surefire-plugin

Bumps [org.apache.maven.plugins:maven-surefire-plugin](https://github.com/apache/maven-surefire) from 3.2.3 to 3.2.5.
- [Release notes](https://github.com/apache/maven-surefire/releases)
- [Commits](https://github.com/apache/maven-surefire/compare/surefire-3.2.3...surefire-3.2.5)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-surefire-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 5dd123278..8d522d4c6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -206,7 +206,7 @@
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-surefire-plugin</artifactId>
-                    <version>3.2.3</version>
+                    <version>3.2.5</version>
                 </plugin>
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>

From fa819bc4f6fa7564abe979f3cfbbb6a70aa0a385 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Mon, 15 Jan 2024 12:05:54 +0100
Subject: [PATCH 089/430] chore: exclude native implementation from coverage
 report due to complexity of the test setup

---
 aws-serverless-java-container-springboot3/pom.xml | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml
index 59f5500e1..82b87b468 100644
--- a/aws-serverless-java-container-springboot3/pom.xml
+++ b/aws-serverless-java-container-springboot3/pom.xml
@@ -201,6 +201,11 @@
                 <configuration>
                     <destFile>${basedir}/target/coverage-reports/jacoco-unit.exec</destFile>
                     <dataFile>${basedir}/target/coverage-reports/jacoco-unit.exec</dataFile>
+                    <excludes>
+                        <!-- Native AOT implementation is currently not covered (due to complexity of the test setup) -->
+                        <exclude>com/amazonaws/serverless/proxy/spring/AWSWebRuntimeEventLoop*</exclude>
+                        <exclude>com/amazonaws/serverless/proxy/spring/AWSTypesProcessor*</exclude>
+                    </excludes>
                 </configuration>
                 <executions>
                     <execution>

From 026bb8ef1f87c1bcdf6d0fb504635eb630b47b6e Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Mon, 15 Jan 2024 13:07:17 +0100
Subject: [PATCH 090/430] test: address deprecation warnings

---
 .../serverless/proxy/spring/SpringAwsProxyTest.java          | 3 ---
 .../proxy/spring/echoapp/model/ValidatedUserModel.java       | 5 ++---
 2 files changed, 2 insertions(+), 6 deletions(-)

diff --git a/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/SpringAwsProxyTest.java b/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/SpringAwsProxyTest.java
index 1101efc8c..9504b6166 100644
--- a/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/SpringAwsProxyTest.java
+++ b/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/SpringAwsProxyTest.java
@@ -56,9 +56,6 @@ public class SpringAwsProxyTest {
         // update the registration to map to a path
         registration.addMappingForUrlPatterns(EnumSet.of(DispatcherType.REQUEST), true, "/echo/*");
         // servlet name mappings are disabled and will throw an exception
-
-        //handler.getApplicationInitializer().getDispatcherServlet().setThrowExceptionIfNoHandlerFound(true);
-        ((DispatcherServlet)((AwsServletRegistration)c.getServletRegistration("dispatcherServlet")).getServlet()).setThrowExceptionIfNoHandlerFound(true);
     });
 
     private String type;
diff --git a/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/echoapp/model/ValidatedUserModel.java b/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/echoapp/model/ValidatedUserModel.java
index 1e5b83c37..c587429da 100644
--- a/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/echoapp/model/ValidatedUserModel.java
+++ b/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/echoapp/model/ValidatedUserModel.java
@@ -1,8 +1,7 @@
 package com.amazonaws.serverless.proxy.spring.echoapp.model;
 
-import org.hibernate.validator.constraints.Email;
-import org.hibernate.validator.constraints.NotEmpty;
-
+import jakarta.validation.constraints.Email;
+import jakarta.validation.constraints.NotEmpty;
 import jakarta.validation.constraints.Size;
 
 public class ValidatedUserModel {

From 98434ddf74b7ede115f05c40a6288ab9c3e1dffd Mon Sep 17 00:00:00 2001
From: kibeom lee <70303094+2012160085@users.noreply.github.com>
Date: Sun, 21 Jan 2024 15:14:58 +0900
Subject: [PATCH 091/430] Update spring-boot-starter-data-jpa version for test

---
 aws-serverless-java-container-springboot3/pom.xml | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml
index d71a93725..3e90469cc 100644
--- a/aws-serverless-java-container-springboot3/pom.xml
+++ b/aws-serverless-java-container-springboot3/pom.xml
@@ -194,7 +194,7 @@
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-data-jpa</artifactId>
-            <version>3.1.3</version>
+            <version>3.2.1</version>
             <scope>test</scope>
             <exclusions>
                 <exclusion>
@@ -324,6 +324,14 @@
                     </execution>
                 </executions>
             </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <source>10</source>
+                    <target>10</target>
+                </configuration>
+            </plugin>
         </plugins>
     </build>
     <repositories>

From fc53fa67692724812bc33c490b9773d7a5018183 Mon Sep 17 00:00:00 2001
From: kibeom lee <70303094+2012160085@users.noreply.github.com>
Date: Sun, 21 Jan 2024 16:29:24 +0900
Subject: [PATCH 092/430] Refactor: Move Redispatch Logic from Spring Boot 3
 and Spring Packages to Core

---
 .../servlet/AwsLambdaServletContainerHandler.java  | 14 +++++++++++++-
 .../proxy/spring/SpringLambdaContainerHandler.java | 13 -------------
 .../spring/SpringBootLambdaContainerHandler.java   | 14 --------------
 3 files changed, 13 insertions(+), 28 deletions(-)

diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsLambdaServletContainerHandler.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsLambdaServletContainerHandler.java
index b35bba92c..7437449e1 100644
--- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsLambdaServletContainerHandler.java
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsLambdaServletContainerHandler.java
@@ -152,13 +152,25 @@ protected void doFilter(HttpServletRequest request, HttpServletResponse response
 
         FilterChain chain = getFilterChain(request, servlet);
         chain.doFilter(request, response);
-
+        if(requiresAsyncReDispatch(request)) {
+            chain = getFilterChain(request, servlet);
+            chain.doFilter(request, response);
+        }
         // if for some reason the response wasn't flushed yet, we force it here unless it's being processed asynchronously (WebFlux)
         if (!response.isCommitted() && request.getDispatcherType() != DispatcherType.ASYNC) {
             response.flushBuffer();
         }
     }
 
+    private boolean requiresAsyncReDispatch(HttpServletRequest request) {
+        if (request.isAsyncStarted()) {
+            AsyncContext asyncContext = request.getAsyncContext();
+            return asyncContext instanceof AwsAsyncContext
+                    && ((AwsAsyncContext) asyncContext).isDispatchStarted();
+        }
+        return false;
+    }
+
     @Override
     public void initialize() throws ContainerInitializationException {
         // we expect all servlets to be wrapped in an AwsServletRegistration
diff --git a/aws-serverless-java-container-spring/src/main/java/com/amazonaws/serverless/proxy/spring/SpringLambdaContainerHandler.java b/aws-serverless-java-container-spring/src/main/java/com/amazonaws/serverless/proxy/spring/SpringLambdaContainerHandler.java
index 3c6fcf8b0..5e56dba62 100644
--- a/aws-serverless-java-container-spring/src/main/java/com/amazonaws/serverless/proxy/spring/SpringLambdaContainerHandler.java
+++ b/aws-serverless-java-container-spring/src/main/java/com/amazonaws/serverless/proxy/spring/SpringLambdaContainerHandler.java
@@ -20,7 +20,6 @@
 import com.amazonaws.serverless.proxy.internal.servlet.*;
 import com.amazonaws.serverless.proxy.model.HttpApiV2ProxyRequest;
 import com.amazonaws.services.lambda.runtime.Context;
-import jakarta.servlet.AsyncContext;
 import org.springframework.web.context.ConfigurableWebApplicationContext;
 import org.springframework.web.servlet.DispatcherServlet;
 
@@ -161,21 +160,9 @@ protected void handleRequest(HttpServletRequest containerRequest, AwsHttpServlet
         // process filters
         Servlet reqServlet = ((AwsServletContext)getServletContext()).getServletForPath(containerRequest.getPathInfo());
         doFilter(containerRequest, containerResponse, reqServlet);
-        if(requiresAsyncReDispatch(containerRequest)) {
-            reqServlet = ((AwsServletContext)getServletContext()).getServletForPath(containerRequest.getPathInfo());
-            doFilter(containerRequest, containerResponse, reqServlet);
-        }
         Timer.stop("SPRING_HANDLE_REQUEST");
     }
 
-    private boolean requiresAsyncReDispatch(HttpServletRequest request) {
-        if (request.isAsyncStarted()) {
-            AsyncContext asyncContext = request.getAsyncContext();
-            return asyncContext instanceof AwsAsyncContext
-                    && ((AwsAsyncContext) asyncContext).isDispatchStarted();
-        }
-        return false;
-    }
 
     @Override
     public void initialize()
diff --git a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/SpringBootLambdaContainerHandler.java b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/SpringBootLambdaContainerHandler.java
index 752623cdc..1f7719e9a 100644
--- a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/SpringBootLambdaContainerHandler.java
+++ b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/SpringBootLambdaContainerHandler.java
@@ -22,7 +22,6 @@
 import com.amazonaws.serverless.proxy.spring.embedded.ServerlessReactiveServletEmbeddedServerFactory;
 import com.amazonaws.serverless.proxy.spring.embedded.ServerlessServletEmbeddedServerFactory;
 import com.amazonaws.services.lambda.runtime.Context;
-import jakarta.servlet.AsyncContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.boot.WebApplicationType;
@@ -173,22 +172,9 @@ protected void handleRequest(HttpServletRequest containerRequest, AwsHttpServlet
             ((AwsHttpServletRequest)containerRequest).setResponse(containerResponse);
         }
         doFilter(containerRequest, containerResponse, reqServlet);
-        if(requiresAsyncReDispatch(containerRequest)) {
-            reqServlet = ((AwsServletContext)getServletContext()).getServletForPath(containerRequest.getPathInfo());
-            doFilter(containerRequest, containerResponse, reqServlet);
-        }
         Timer.stop("SPRINGBOOT2_HANDLE_REQUEST");
     }
 
-    private boolean requiresAsyncReDispatch(HttpServletRequest request) {
-        if (request.isAsyncStarted()) {
-            AsyncContext asyncContext = request.getAsyncContext();
-            return asyncContext instanceof AwsAsyncContext
-                    && ((AwsAsyncContext) asyncContext).isDispatchStarted();
-        }
-        return false;
-    }
-
 
     @Override
     public void initialize()

From db267a67f6abd752b4fdd89f34f509a1b7a0b88e Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Sun, 21 Jan 2024 08:55:22 +0100
Subject: [PATCH 093/430] docs: project graduated from awslabs to aws GitHub
 organization

---
 CONTRIBUTING.md                               |  6 ++---
 README.md                                     | 26 +++++++++----------
 .../internal/LambdaContainerHandler.java      |  2 +-
 .../internal/servlet/AwsServletContext.java   |  2 +-
 aws-serverless-jersey-archetype/pom.xml       |  2 +-
 .../resources/archetype-resources/README.md   |  2 +-
 .../resources/archetype-resources/pom.xml     |  2 +-
 aws-serverless-spark-archetype/pom.xml        |  2 +-
 .../resources/archetype-resources/README.md   |  2 +-
 .../resources/archetype-resources/pom.xml     |  2 +-
 aws-serverless-spring-archetype/pom.xml       |  2 +-
 .../resources/archetype-resources/README.md   |  2 +-
 .../resources/archetype-resources/pom.xml     |  2 +-
 aws-serverless-springboot3-archetype/pom.xml  |  2 +-
 .../resources/archetype-resources/README.md   |  2 +-
 .../resources/archetype-resources/pom.xml     |  2 +-
 .../src/main/resources/application.properties |  2 +-
 aws-serverless-struts-archetype/pom.xml       |  2 +-
 .../resources/archetype-resources/README.md   |  2 +-
 .../resources/archetype-resources/pom.xml     |  2 +-
 .../src/main/resources/application.properties |  2 +-
 pom.xml                                       |  8 +++---
 samples/jersey/pet-store/pom.xml              |  2 +-
 samples/spark/pet-store/pom.xml               |  2 +-
 samples/spring/pet-store/pom.xml              |  2 +-
 samples/struts/pet-store/pom.xml              |  2 +-
 26 files changed, 43 insertions(+), 43 deletions(-)

diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 4d490d0fd..5d42e96a8 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -11,7 +11,7 @@ information to effectively respond to your bug report or contribution.
 
 We welcome you to use the GitHub issue tracker to report bugs or suggest features.
 
-When filing an issue, please check [existing open](https://github.com/awslabs/aws-serverless-java-container/issues), or [recently closed](https://github.com/awslabs/aws-serverless-java-container/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aclosed%20), issues to make sure somebody else hasn't already 
+When filing an issue, please check [existing open](https://github.com/aws/serverless-java-container/issues), or [recently closed](https://github.com/aws/serverless-java-container/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aclosed%20), issues to make sure somebody else hasn't already 
 reported the issue. Please try to include as much information as you can. Details like these are incredibly useful:
 
 * A reproducible test case or series of steps
@@ -41,7 +41,7 @@ GitHub provides additional document on [forking a repository](https://help.githu
 
 
 ## Finding contributions to work on
-Looking at the existing issues is a great way to find something to contribute on. As our projects, by default, use the default GitHub issue labels ((enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any ['help wanted'](https://github.com/awslabs/aws-serverless-java-container/labels/help%20wanted) issues is a great place to start. 
+Looking at the existing issues is a great way to find something to contribute on. As our projects, by default, use the default GitHub issue labels ((enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any ['help wanted'](https://github.com/aws/serverless-java-container/labels/help%20wanted) issues is a great place to start. 
 
 
 ## Code of Conduct
@@ -56,6 +56,6 @@ If you discover a potential security issue in this project we ask that you notif
 
 ## Licensing
 
-See the [LICENSE](https://github.com/awslabs/aws-serverless-java-container/blob/master/LICENSE) file for our project's licensing. We will ask you to confirm the licensing of your contribution.
+See the [LICENSE](https://github.com/aws/serverless-java-container/blob/master/LICENSE) file for our project's licensing. We will ask you to confirm the licensing of your contribution.
 
 We may ask you to sign a [Contributor License Agreement (CLA)](http://en.wikipedia.org/wiki/Contributor_License_Agreement) for larger changes.
diff --git a/README.md b/README.md
index 33622db3d..174576470 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# Serverless Java container [![Build Status](https://github.com/awslabs/aws-serverless-java-container/workflows/Continuous%20Integration/badge.svg)](https://github.com/awslabs/aws-serverless-java-container/actions) [![Maven Central](https://maven-badges.herokuapp.com/maven-central/com.amazonaws.serverless/aws-serverless-java-container/badge.svg)](https://maven-badges.herokuapp.com/maven-central/com.amazonaws.serverless/aws-serverless-java-container) [![Help](http://img.shields.io/badge/help-gitter-E91E63.svg?style=flat-square)](https://gitter.im/awslabs/aws-serverless-java-container)
+# Serverless Java container [![Build Status](https://github.com/aws/serverless-java-container/workflows/Continuous%20Integration/badge.svg)](https://github.com/aws/serverless-java-container/actions) [![Maven Central](https://maven-badges.herokuapp.com/maven-central/com.amazonaws.serverless/aws-serverless-java-container/badge.svg)](https://maven-badges.herokuapp.com/maven-central/com.amazonaws.serverless/aws-serverless-java-container) [![Help](http://img.shields.io/badge/help-gitter-E91E63.svg?style=flat-square)](https://gitter.im/aws/serverless-java-container)
 The `aws-serverless-java-container` makes it easy to run Java applications written with frameworks such as [Spring](https://spring.io/), [Spring Boot](https://projects.spring.io/spring-boot/), [Apache Struts](http://struts.apache.org/), [Jersey](https://jersey.java.net/), or [Spark](http://sparkjava.com/) in [AWS Lambda](https://aws.amazon.com/lambda/).
 
 Serverless Java Container natively supports API Gateway's proxy integration models for requests and responses, you can create and inject custom models for methods that use custom mappings.
@@ -7,18 +7,18 @@ Currently the following versions are maintained:
 
 | Version                  | Branch | Java Enterprise support | Spring versions | JAX-RS/ Jersey version | Struts support | Spark support |
 |--------------------------|--------|-------------------------|-----------------|------------------------|----------------|---------------|
-| 1.x (stable)             | [1.x](https://github.com/awslabs/aws-serverless-java-container/tree/1.x)    | Java EE (javax.*)       | 5.x (Boot 2.x)  | 2.x                    | :white_check_mark: | :white_check_mark: |
-| 2.x (under development)  | [main](https://github.com/awslabs/aws-serverless-java-container/tree/main)   | Jakarta EE (jakarta.*)  | 6.x (Boot 3.x)  | 3.x                    | :x:            | :x:           |
-
-Follow the quick start guides in [our wiki](https://github.com/awslabs/aws-serverless-java-container/wiki) to integrate Serverless Java Container with your project:
-* [Spring quick start](https://github.com/awslabs/aws-serverless-java-container/wiki/Quick-start---Spring)
-* [Spring Boot 2 quick start](https://github.com/awslabs/aws-serverless-java-container/wiki/Quick-start---Spring-Boot2)
-* [Spring Boot 3 quick start](https://github.com/awslabs/aws-serverless-java-container/wiki/Quick-start---Spring-Boot3)
-* [Apache Struts quick start](https://github.com/awslabs/aws-serverless-java-container/wiki/Quick-start---Struts)
-* [Jersey quick start](https://github.com/awslabs/aws-serverless-java-container/wiki/Quick-start---Jersey)
-* [Spark quick start](https://github.com/awslabs/aws-serverless-java-container/wiki/Quick-start---Spark)
-
-Below is the most basic AWS Lambda handler example that launches a Spring application. You can also take a look at the [samples](https://github.com/awslabs/aws-serverless-java-container/tree/master/samples) in this repository, our main wiki page includes a [step-by-step guide](https://github.com/awslabs/aws-serverless-java-container/wiki#deploying-the-sample-applications) on how to deploy the various sample applications using Maven and [SAM](https://github.com/awslabs/serverless-application-model).
+| 1.x (stable)             | [1.x](https://github.com/aws/serverless-java-container/tree/1.x)    | Java EE (javax.*)       | 5.x (Boot 2.x)  | 2.x                    | :white_check_mark: | :white_check_mark: |
+| 2.x (under development)  | [main](https://github.com/aws/serverless-java-container/tree/main)   | Jakarta EE (jakarta.*)  | 6.x (Boot 3.x)  | 3.x                    | :x:            | :x:           |
+
+Follow the quick start guides in [our wiki](https://github.com/aws/serverless-java-container/wiki) to integrate Serverless Java Container with your project:
+* [Spring quick start](https://github.com/aws/serverless-java-container/wiki/Quick-start---Spring)
+* [Spring Boot 2 quick start](https://github.com/aws/serverless-java-container/wiki/Quick-start---Spring-Boot2)
+* [Spring Boot 3 quick start](https://github.com/aws/serverless-java-container/wiki/Quick-start---Spring-Boot3)
+* [Apache Struts quick start](https://github.com/aws/serverless-java-container/wiki/Quick-start---Struts)
+* [Jersey quick start](https://github.com/aws/serverless-java-container/wiki/Quick-start---Jersey)
+* [Spark quick start](https://github.com/aws/serverless-java-container/wiki/Quick-start---Spark)
+
+Below is the most basic AWS Lambda handler example that launches a Spring application. You can also take a look at the [samples](https://github.com/aws/serverless-java-container/tree/master/samples) in this repository, our main wiki page includes a [step-by-step guide](https://github.com/aws/serverless-java-container/wiki#deploying-the-sample-applications) on how to deploy the various sample applications using Maven and [SAM](https://github.com/awslabs/serverless-application-model).
 
 ```java
 public class StreamLambdaHandler implements RequestStreamHandler {
diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/LambdaContainerHandler.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/LambdaContainerHandler.java
index d736d6373..f14251600 100644
--- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/LambdaContainerHandler.java
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/LambdaContainerHandler.java
@@ -163,7 +163,7 @@ public void setInitializationWrapper(InitializationWrapper wrapper) {
 
     /**
      * Configures the library to strip a base path from incoming requests before passing them on to the wrapped
-     * framework. This was added in response to issue #34 (https://github.com/awslabs/aws-serverless-java-container/issues/34).
+     * framework. This was added in response to issue #34 (https://github.com/aws/serverless-java-container/issues/34).
      * When creating a base path mapping for custom domain names in API Gateway we want to be able to strip the base path
      * from the request - the underlying service may not recognize this path.
      * @param basePath The base path to be stripped from the request
diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsServletContext.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsServletContext.java
index 5211e68df..94dcaf440 100644
--- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsServletContext.java
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsServletContext.java
@@ -169,7 +169,7 @@ public String getMimeType(String file) {
 
         String mimeType = null;
 
-        // may not work on Lambda until mailcap package is present https://github.com/awslabs/aws-serverless-java-container/pull/504
+        // may not work on Lambda until mailcap package is present https://github.com/aws/serverless-java-container/pull/504
         try {
             mimeType = Files.probeContentType(Paths.get(file));
         } catch (IOException | InvalidPathException e) {
diff --git a/aws-serverless-jersey-archetype/pom.xml b/aws-serverless-jersey-archetype/pom.xml
index e328fee77..15fd76b80 100644
--- a/aws-serverless-jersey-archetype/pom.xml
+++ b/aws-serverless-jersey-archetype/pom.xml
@@ -13,7 +13,7 @@
     <packaging>maven-archetype</packaging>
 
     <scm>
-        <url>https://github.com/awslabs/aws-serverless-java-container.git</url>
+        <url>https://github.com/aws/serverless-java-container.git</url>
       <tag>HEAD</tag>
   </scm>
 
diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/README.md b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/README.md
index 1017a83ad..311c40aee 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/README.md
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/README.md
@@ -16,7 +16,7 @@
 #set($resourceName = "#replaceChar($resourceName, '.')")
 #set($resourceName = $resourceName.replaceAll("\n", "").trim())
 # \${artifactId} serverless API
-The \${artifactId} project, created with [`aws-serverless-java-container`](https://github.com/awslabs/aws-serverless-java-container).
+The \${artifactId} project, created with [`aws-serverless-java-container`](https://github.com/aws/serverless-java-container).
 
 The starter project defines a simple `/ping` resource that can accept `GET` requests with its tests.
 
diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
index 9cad88b85..d5f7c0c7e 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
@@ -9,7 +9,7 @@
     <packaging>jar</packaging>
 
     <name>Serverless Jersey API</name>
-    <url>https://github.com/awslabs/aws-serverless-java-container</url>
+    <url>https://github.com/aws/serverless-java-container</url>
 
     <properties>
         <maven.compiler.source>1.8</maven.compiler.source>
diff --git a/aws-serverless-spark-archetype/pom.xml b/aws-serverless-spark-archetype/pom.xml
index 90dcabf45..d0ce113fd 100644
--- a/aws-serverless-spark-archetype/pom.xml
+++ b/aws-serverless-spark-archetype/pom.xml
@@ -13,7 +13,7 @@
     <packaging>maven-archetype</packaging>
 
     <scm>
-        <url>https://github.com/awslabs/aws-serverless-java-container.git</url>
+        <url>https://github.com/aws/serverless-java-container.git</url>
       <tag>HEAD</tag>
   </scm>
 
diff --git a/aws-serverless-spark-archetype/src/main/resources/archetype-resources/README.md b/aws-serverless-spark-archetype/src/main/resources/archetype-resources/README.md
index 1017a83ad..311c40aee 100644
--- a/aws-serverless-spark-archetype/src/main/resources/archetype-resources/README.md
+++ b/aws-serverless-spark-archetype/src/main/resources/archetype-resources/README.md
@@ -16,7 +16,7 @@
 #set($resourceName = "#replaceChar($resourceName, '.')")
 #set($resourceName = $resourceName.replaceAll("\n", "").trim())
 # \${artifactId} serverless API
-The \${artifactId} project, created with [`aws-serverless-java-container`](https://github.com/awslabs/aws-serverless-java-container).
+The \${artifactId} project, created with [`aws-serverless-java-container`](https://github.com/aws/serverless-java-container).
 
 The starter project defines a simple `/ping` resource that can accept `GET` requests with its tests.
 
diff --git a/aws-serverless-spark-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-spark-archetype/src/main/resources/archetype-resources/pom.xml
index 3cae46498..1151dd29d 100644
--- a/aws-serverless-spark-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-spark-archetype/src/main/resources/archetype-resources/pom.xml
@@ -11,7 +11,7 @@
     <packaging>jar</packaging>
 
     <name>Serverless Spark API</name>
-    <url>https://github.com/awslabs/aws-serverless-java-container</url>
+    <url>https://github.com/aws/serverless-java-container</url>
 
     <properties>
         <maven.compiler.source>1.8</maven.compiler.source>
diff --git a/aws-serverless-spring-archetype/pom.xml b/aws-serverless-spring-archetype/pom.xml
index 747ff0838..b5891f921 100644
--- a/aws-serverless-spring-archetype/pom.xml
+++ b/aws-serverless-spring-archetype/pom.xml
@@ -13,7 +13,7 @@
     <packaging>maven-archetype</packaging>
 
     <scm>
-        <url>https://github.com/awslabs/aws-serverless-java-container.git</url>
+        <url>https://github.com/aws/serverless-java-container.git</url>
       <tag>HEAD</tag>
   </scm>
 
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/README.md b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/README.md
index 1017a83ad..311c40aee 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/README.md
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/README.md
@@ -16,7 +16,7 @@
 #set($resourceName = "#replaceChar($resourceName, '.')")
 #set($resourceName = $resourceName.replaceAll("\n", "").trim())
 # \${artifactId} serverless API
-The \${artifactId} project, created with [`aws-serverless-java-container`](https://github.com/awslabs/aws-serverless-java-container).
+The \${artifactId} project, created with [`aws-serverless-java-container`](https://github.com/aws/serverless-java-container).
 
 The starter project defines a simple `/ping` resource that can accept `GET` requests with its tests.
 
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
index b68674412..093924daa 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
@@ -11,7 +11,7 @@
     <packaging>jar</packaging>
 
     <name>Serverless Spring API</name>
-    <url>https://github.com/awslabs/aws-serverless-java-container</url>
+    <url>https://github.com/aws/serverless-java-container</url>
 
     <properties>
         <maven.compiler.source>1.8</maven.compiler.source>
diff --git a/aws-serverless-springboot3-archetype/pom.xml b/aws-serverless-springboot3-archetype/pom.xml
index 8f478b223..a6cf366b3 100644
--- a/aws-serverless-springboot3-archetype/pom.xml
+++ b/aws-serverless-springboot3-archetype/pom.xml
@@ -13,7 +13,7 @@
     <packaging>maven-archetype</packaging>
 
     <scm>
-        <url>https://github.com/awslabs/aws-serverless-java-container.git</url>
+        <url>https://github.com/aws/serverless-java-container.git</url>
       <tag>HEAD</tag>
   </scm>
 
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/README.md b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/README.md
index 1017a83ad..311c40aee 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/README.md
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/README.md
@@ -16,7 +16,7 @@
 #set($resourceName = "#replaceChar($resourceName, '.')")
 #set($resourceName = $resourceName.replaceAll("\n", "").trim())
 # \${artifactId} serverless API
-The \${artifactId} project, created with [`aws-serverless-java-container`](https://github.com/awslabs/aws-serverless-java-container).
+The \${artifactId} project, created with [`aws-serverless-java-container`](https://github.com/aws/serverless-java-container).
 
 The starter project defines a simple `/ping` resource that can accept `GET` requests with its tests.
 
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
index 1382f9bd6..396a77b03 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
@@ -11,7 +11,7 @@
     <packaging>jar</packaging>
 
     <name>Serverless Spring Boot 3 API</name>
-    <url>https://github.com/awslabs/aws-serverless-java-container</url>
+    <url>https://github.com/aws/serverless-java-container</url>
 
     <parent>
         <groupId>org.springframework.boot</groupId>
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/src/main/resources/application.properties b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/src/main/resources/application.properties
index ec1cb9792..070e632fe 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/src/main/resources/application.properties
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/src/main/resources/application.properties
@@ -1,3 +1,3 @@
 # Reduce logging level to make sure the application works with SAM local
-# https://github.com/awslabs/aws-serverless-java-container/issues/134
+# https://github.com/aws/serverless-java-container/issues/134
 logging.level.root=WARN
\ No newline at end of file
diff --git a/aws-serverless-struts-archetype/pom.xml b/aws-serverless-struts-archetype/pom.xml
index 1d0e078af..0e12ca517 100644
--- a/aws-serverless-struts-archetype/pom.xml
+++ b/aws-serverless-struts-archetype/pom.xml
@@ -13,7 +13,7 @@
     <packaging>maven-archetype</packaging>
 
     <scm>
-        <url>https://github.com/awslabs/aws-serverless-java-container.git</url>
+        <url>https://github.com/aws/serverless-java-container.git</url>
       <tag>HEAD</tag>
   </scm>
 
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/README.md b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/README.md
index 1017a83ad..311c40aee 100644
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/README.md
+++ b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/README.md
@@ -16,7 +16,7 @@
 #set($resourceName = "#replaceChar($resourceName, '.')")
 #set($resourceName = $resourceName.replaceAll("\n", "").trim())
 # \${artifactId} serverless API
-The \${artifactId} project, created with [`aws-serverless-java-container`](https://github.com/awslabs/aws-serverless-java-container).
+The \${artifactId} project, created with [`aws-serverless-java-container`](https://github.com/aws/serverless-java-container).
 
 The starter project defines a simple `/ping` resource that can accept `GET` requests with its tests.
 
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
index 15cbc1dd9..d7664d120 100644
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
@@ -10,7 +10,7 @@
     <packaging>jar</packaging>
 
     <name>Serverless Struts API</name>
-    <url>https://github.com/awslabs/aws-serverless-java-container</url>
+    <url>https://github.com/aws/serverless-java-container</url>
 
     <properties>
         <maven.compiler.source>1.8</maven.compiler.source>
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/src/main/resources/application.properties b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/src/main/resources/application.properties
index ec1cb9792..070e632fe 100644
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/src/main/resources/application.properties
+++ b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/src/main/resources/application.properties
@@ -1,3 +1,3 @@
 # Reduce logging level to make sure the application works with SAM local
-# https://github.com/awslabs/aws-serverless-java-container/issues/134
+# https://github.com/aws/serverless-java-container/issues/134
 logging.level.root=WARN
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 4b149262d..9cd64107d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -7,10 +7,10 @@
     <version>2.0.0-SNAPSHOT</version>
     <name>AWS Serverless Java container</name>
     <description>A Java framework to run Spring, Spring Boot, Jersey, Spark, and Struts applications inside AWS Lambda</description>
-    <url>https://github.com/awslabs/aws-serverless-java-container</url>
+    <url>https://github.com/aws/serverless-java-container</url>
     <issueManagement>
         <system>GitHub Issues</system>
-        <url>https://github.com/awslabs/aws-serverless-java-container/issues</url>
+        <url>https://github.com/aws/serverless-java-container/issues</url>
     </issueManagement>
     
     <developers>
@@ -35,8 +35,8 @@
     </modules>
 
     <scm>
-        <url>https://github.com/awslabs/aws-serverless-java-container</url>
-        <connection>scm:git:https://github.com/awslabs/aws-serverless-java-container.git</connection>
+        <url>https://github.com/aws/serverless-java-container</url>
+        <connection>scm:git:https://github.com/aws/serverless-java-container.git</connection>
       <tag>HEAD</tag>
     </scm>
 
diff --git a/samples/jersey/pet-store/pom.xml b/samples/jersey/pet-store/pom.xml
index b7cae7576..7a5ed7fba 100644
--- a/samples/jersey/pet-store/pom.xml
+++ b/samples/jersey/pet-store/pom.xml
@@ -12,7 +12,7 @@
     <url>https://aws.amazon.com/lambda/</url>
 
     <scm>
-        <url>https://github.com/awslabs/aws-serverless-java-container.git</url>
+        <url>https://github.com/aws/serverless-java-container.git</url>
     </scm>
 
     <licenses>
diff --git a/samples/spark/pet-store/pom.xml b/samples/spark/pet-store/pom.xml
index cf2e56606..f1dee6372 100644
--- a/samples/spark/pet-store/pom.xml
+++ b/samples/spark/pet-store/pom.xml
@@ -12,7 +12,7 @@
     <url>https://aws.amazon.com/lambda/</url>
 
     <scm>
-        <url>https://github.com/awslabs/aws-serverless-java-container.git</url>
+        <url>https://github.com/aws/serverless-java-container.git</url>
     </scm>
 
     <licenses>
diff --git a/samples/spring/pet-store/pom.xml b/samples/spring/pet-store/pom.xml
index d60e4817a..e60226d8d 100644
--- a/samples/spring/pet-store/pom.xml
+++ b/samples/spring/pet-store/pom.xml
@@ -12,7 +12,7 @@
     <url>https://aws.amazon.com/lambda/</url>
 
     <scm>
-        <url>https://github.com/awslabs/aws-serverless-java-container.git</url>
+        <url>https://github.com/aws/serverless-java-container.git</url>
     </scm>
 
     <licenses>
diff --git a/samples/struts/pet-store/pom.xml b/samples/struts/pet-store/pom.xml
index 85f52730b..c547d9cc7 100644
--- a/samples/struts/pet-store/pom.xml
+++ b/samples/struts/pet-store/pom.xml
@@ -12,7 +12,7 @@
     <url>https://aws.amazon.com/lambda/</url>
 
     <scm>
-        <url>https://github.com/awslabs/aws-serverless-java-container.git</url>
+        <url>https://github.com/aws/serverless-java-container.git</url>
     </scm>
 
     <licenses>

From b471fe4b1701ac9dfff0dab2d7fd03378ff28481 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Sun, 21 Jan 2024 09:00:45 +0100
Subject: [PATCH 094/430] chore(deps): Update Spring dependencies (framework to
 6.1.3, boot to 3.2.2)

---
 aws-serverless-java-container-spring/pom.xml           |  2 +-
 aws-serverless-java-container-springboot3/pom.xml      |  4 ++--
 .../main/resources/archetype-resources/build.gradle    |  4 ++--
 .../src/main/resources/archetype-resources/pom.xml     |  2 +-
 .../main/resources/archetype-resources/build.gradle    |  2 +-
 .../src/main/resources/archetype-resources/pom.xml     |  2 +-
 .../main/resources/archetype-resources/build.gradle    | 10 +++++-----
 .../src/main/resources/archetype-resources/pom.xml     |  2 +-
 samples/spring/pet-store/build.gradle                  |  4 ++--
 samples/spring/pet-store/pom.xml                       |  2 +-
 samples/springboot3/alt-pet-store/build.gradle         |  2 +-
 samples/springboot3/alt-pet-store/pom.xml              |  2 +-
 samples/springboot3/pet-store/build.gradle             |  2 +-
 samples/springboot3/pet-store/pom.xml                  |  2 +-
 samples/struts/pet-store/build.gradle                  |  8 ++++----
 samples/struts/pet-store/pom.xml                       |  2 +-
 16 files changed, 26 insertions(+), 26 deletions(-)

diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml
index 57e1bed60..5a5ff5470 100644
--- a/aws-serverless-java-container-spring/pom.xml
+++ b/aws-serverless-java-container-spring/pom.xml
@@ -16,7 +16,7 @@
     </parent>
 
     <properties>
-        <spring.version>6.1.2</spring.version>
+        <spring.version>6.1.3</spring.version>
         <spring-security.version>6.2.1</spring-security.version>
     </properties>
 
diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml
index 51ad6f1f1..9b4d941c9 100644
--- a/aws-serverless-java-container-springboot3/pom.xml
+++ b/aws-serverless-java-container-springboot3/pom.xml
@@ -15,8 +15,8 @@
     <version>2.0.0-SNAPSHOT</version>
 
     <properties>
-        <spring.version>6.1.2</spring.version>
-        <springboot.version>3.2.1</springboot.version>
+        <spring.version>6.1.3</spring.version>
+        <springboot.version>3.2.2</springboot.version>
         <springsecurity.version>6.2.1</springsecurity.version>
     </properties>
 
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
index f82bb3d63..1f1d1af7c 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
@@ -7,8 +7,8 @@ repositories {
 
 dependencies {
   implementation (
-          'org.springframework:spring-webmvc:6.1.2',
-          'org.springframework:spring-context:6.1.2',
+          'org.springframework:spring-webmvc:6.1.3',
+          'org.springframework:spring-context:6.1.3',
           'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)',
           'org.apache.logging.log4j:log4j-core:2.22.1',
           'org.apache.logging.log4j:log4j-api:2.22.1',
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
index 093924daa..5aa0330b2 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
@@ -16,7 +16,7 @@
     <properties>
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
-        <spring.version>6.1.2</spring.version>
+        <spring.version>6.1.3</spring.version>
         <junit.version>5.10.1</junit.version>
         <log4j.version>2.22.1</log4j.version>
     </properties>
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
index 1a04756fa..2f2ebee1a 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
@@ -9,7 +9,7 @@ repositories {
 
 dependencies {
   implementation (
-          'org.springframework.boot:spring-boot-starter-web:3.2.1',
+          'org.springframework.boot:spring-boot-starter-web:3.2.2',
           'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)',
   )
 
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
index 396a77b03..f990dda8b 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
@@ -16,7 +16,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.2.1</version>
+        <version>3.2.2</version>
     </parent>
 
     <properties>
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
index dba15956e..1f03497bd 100644
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
@@ -18,19 +18,19 @@ dependencies {
     exclude group: 'org.apache.logging.log4j', module: 'log4j-api'
     exclude group: 'org.apache.logging.log4j', module: 'log4j-to-slf4j'
   }
-  implementation ('org.apache.struts:struts2-convention-plugin:6.1.2.1') {
+  implementation ('org.apache.struts:struts2-convention-plugin:6.1.3.1') {
     exclude group: 'org.apache.struts', module: 'struts2-core'
   }
-  implementation ('org.apache.struts:struts2-rest-plugin:6.1.2.1') {
+  implementation ('org.apache.struts:struts2-rest-plugin:6.1.3.1') {
     exclude group: 'org.apache.struts', module: 'struts2-core'
   }
-  implementation ('org.apache.struts:struts2-bean-validation-plugin:6.1.2.1') {
+  implementation ('org.apache.struts:struts2-bean-validation-plugin:6.1.3.1') {
     exclude group: 'org.apache.struts', module: 'struts2-core'
   }
   implementation ('com.jgeppert.struts2:struts2-aws-lambda-support-plugin:1.4.2') {
     exclude group: 'org.apache.struts', module: 'struts2-core'
   }
-  implementation ('org.apache.struts:struts2-core:6.1.2.1') {
+  implementation ('org.apache.struts:struts2-core:6.1.3.1') {
     exclude group: 'org.apache.logging.log4j', module: 'log4j-api'
   }
   implementation ('org.hibernate.validator:hibernate-validator:6.1.7.Final')
@@ -45,7 +45,7 @@ dependencies {
   testImplementation("org.apache.httpcomponents.client5:httpclient5:5.2.1")
   testImplementation(platform("org.junit:junit-bom:5.10.1"))
   testImplementation("org.junit.jupiter:junit-jupiter")
-  testImplementation('org.apache.struts:struts2-junit-plugin:6.1.2.1') {
+  testImplementation('org.apache.struts:struts2-junit-plugin:6.1.3.1') {
     exclude group: 'org.apache.struts', module: 'struts2-core'
   }
 }
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
index d7664d120..485fa214a 100644
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
@@ -15,7 +15,7 @@
     <properties>
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
-        <struts.version>6.1.2.1</struts.version>
+        <struts.version>6.1.3.1</struts.version>
         <jackson.version>2.16.1</jackson.version>
         <junit.version>5.10.1</junit.version>
         <log4j.version>2.22.1</log4j.version>
diff --git a/samples/spring/pet-store/build.gradle b/samples/spring/pet-store/build.gradle
index 70e6d22ba..586773bdd 100644
--- a/samples/spring/pet-store/build.gradle
+++ b/samples/spring/pet-store/build.gradle
@@ -7,8 +7,8 @@ repositories {
 
 dependencies {
   implementation (
-          'org.springframework:spring-webmvc:6.1.2',
-          'org.springframework:spring-context:6.1.2',
+          'org.springframework:spring-webmvc:6.1.3',
+          'org.springframework:spring-context:6.1.3',
           'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)',
           'org.apache.logging.log4j:log4j-core:2.22.1',
           'org.apache.logging.log4j:log4j-api:2.22.1',
diff --git a/samples/spring/pet-store/pom.xml b/samples/spring/pet-store/pom.xml
index e60226d8d..6c0fb81e2 100644
--- a/samples/spring/pet-store/pom.xml
+++ b/samples/spring/pet-store/pom.xml
@@ -24,7 +24,7 @@
     </licenses>
 
     <properties>
-        <spring.version>6.1.2</spring.version>
+        <spring.version>6.1.3</spring.version>
         <log4j.version>2.22.1</log4j.version>
         <maven.compiler.source>17</maven.compiler.source>
         <maven.compiler.target>17</maven.compiler.target>
diff --git a/samples/springboot3/alt-pet-store/build.gradle b/samples/springboot3/alt-pet-store/build.gradle
index 998718068..b59cc9720 100644
--- a/samples/springboot3/alt-pet-store/build.gradle
+++ b/samples/springboot3/alt-pet-store/build.gradle
@@ -9,7 +9,7 @@ repositories {
 
 dependencies {
   implementation (
-          implementation('org.springframework.boot:spring-boot-starter-web:3.2.1') {
+          implementation('org.springframework.boot:spring-boot-starter-web:3.2.2') {
             exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat'
           },
           'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)',
diff --git a/samples/springboot3/alt-pet-store/pom.xml b/samples/springboot3/alt-pet-store/pom.xml
index 7bfd00bf2..950ad6830 100644
--- a/samples/springboot3/alt-pet-store/pom.xml
+++ b/samples/springboot3/alt-pet-store/pom.xml
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.2.1</version>
+        <version>3.2.2</version>
     </parent>
 
     <licenses>
diff --git a/samples/springboot3/pet-store/build.gradle b/samples/springboot3/pet-store/build.gradle
index 998718068..b59cc9720 100644
--- a/samples/springboot3/pet-store/build.gradle
+++ b/samples/springboot3/pet-store/build.gradle
@@ -9,7 +9,7 @@ repositories {
 
 dependencies {
   implementation (
-          implementation('org.springframework.boot:spring-boot-starter-web:3.2.1') {
+          implementation('org.springframework.boot:spring-boot-starter-web:3.2.2') {
             exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat'
           },
           'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)',
diff --git a/samples/springboot3/pet-store/pom.xml b/samples/springboot3/pet-store/pom.xml
index 291b8bb09..569552a71 100644
--- a/samples/springboot3/pet-store/pom.xml
+++ b/samples/springboot3/pet-store/pom.xml
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.2.1</version>
+        <version>3.2.2</version>
     </parent>
 
     <licenses>
diff --git a/samples/struts/pet-store/build.gradle b/samples/struts/pet-store/build.gradle
index 491419e3f..4982518a2 100644
--- a/samples/struts/pet-store/build.gradle
+++ b/samples/struts/pet-store/build.gradle
@@ -14,10 +14,10 @@ configurations {
 dependencies {
   implementation (
           'com.amazonaws.serverless:aws-serverless-java-container-struts:[1.9,)',
-          'org.apache.struts:struts2-convention-plugin:6.1.2.1',
-          'org.apache.struts:struts2-rest-plugin:6.1.2.1',
-          'org.apache.struts:struts2-bean-validation-plugin:6.1.2.1',
-          'org.apache.struts:struts2-junit-plugin:6.1.2.1',
+          'org.apache.struts:struts2-convention-plugin:6.1.3.1',
+          'org.apache.struts:struts2-rest-plugin:6.1.3.1',
+          'org.apache.struts:struts2-bean-validation-plugin:6.1.3.1',
+          'org.apache.struts:struts2-junit-plugin:6.1.3.1',
           'com.jgeppert.struts2:struts2-aws-lambda-support-plugin:1.4.2',
           'org.hibernate.validator:hibernate-validator:6.1.7.Final',
           'org.glassfish:javax.el:3.0.0',
diff --git a/samples/struts/pet-store/pom.xml b/samples/struts/pet-store/pom.xml
index c547d9cc7..6eacfc31e 100644
--- a/samples/struts/pet-store/pom.xml
+++ b/samples/struts/pet-store/pom.xml
@@ -26,7 +26,7 @@
     <properties>
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
-        <struts.version>6.1.2.1</struts.version>
+        <struts.version>6.1.3.1</struts.version>
         <jackson.version>2.16.1</jackson.version>
         <junit.version>4.13.2</junit.version>
         <log4j.version>2.22.1</log4j.version>

From fd96f7fb90ab9f9d74f484f4ea17217e486859e9 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Sun, 21 Jan 2024 09:30:36 +0100
Subject: [PATCH 095/430] refactor: Delete Spark related implementations as the
 project is no longer maintained

---
 .../continuous-integration-workflow.yml       |   8 -
 .../jersey/JerseyLambdaContainerHandler.java  |   2 +-
 aws-serverless-java-container-spark/pom.xml   | 134 ----------
 .../spark/SparkLambdaContainerHandler.java    | 251 ------------------
 .../embeddedserver/LambdaEmbeddedServer.java  | 119 ---------
 .../LambdaEmbeddedServerFactory.java          |  72 -----
 .../spark/HelloWorldSparkStreamTest.java      | 160 -----------
 .../proxy/spark/HelloWorldSparkTest.java      | 176 ------------
 .../proxy/spark/InitExceptionHandlerTest.java |  76 ------
 .../SparkLambdaContainerHandlerTest.java      | 124 ---------
 .../LambdaEmbeddedServerTest.java             |  23 --
 .../spark/filter/CustomHeaderFilter.java      |  37 ---
 .../spark/filter/UnauthenticatedFilter.java   |  42 ---
 aws-serverless-spark-archetype/pom.xml        |  81 ------
 .../META-INF/maven/archetype-metadata.xml     |  33 ---
 .../resources/archetype-resources/README.md   |  99 -------
 .../archetype-resources/build.gradle          |  40 ---
 .../resources/archetype-resources/pom.xml     | 186 -------------
 .../archetype-resources/src/assembly/bin.xml  |  32 ---
 .../src/main/java/SparkResources.java         |  25 --
 .../src/main/java/StreamLambdaHandler.java    |  37 ---
 .../src/main/java/util/JsonTransformer.java   |  24 --
 .../test/java/StreamLambdaHandlerTest.java    |  89 -------
 .../archetype-resources/template.yml          |  52 ----
 .../projects/base/archetype.properties        |   3 -
 .../src/test/resources/projects/base/goal.txt |   1 -
 samples/spark/pet-store/README.md             |  36 ---
 samples/spark/pet-store/build.gradle          |  31 ---
 samples/spark/pet-store/pom.xml               | 164 ------------
 samples/spark/pet-store/src/assembly/bin.xml  |  32 ---
 .../sample/spark/JsonTransformer.java         |  36 ---
 .../sample/spark/SparkResources.java          |  66 -----
 .../sample/spark/StreamLambdaHandler.java     |  54 ----
 .../spark/filter/CognitoIdentityFilter.java   |  68 -----
 .../serverless/sample/spark/model/Error.java  |  29 --
 .../serverless/sample/spark/model/Pet.java    |  54 ----
 .../sample/spark/model/PetData.java           | 111 --------
 samples/spark/pet-store/template.yml          |  32 ---
 38 files changed, 1 insertion(+), 2638 deletions(-)
 delete mode 100644 aws-serverless-java-container-spark/pom.xml
 delete mode 100644 aws-serverless-java-container-spark/src/main/java/com/amazonaws/serverless/proxy/spark/SparkLambdaContainerHandler.java
 delete mode 100644 aws-serverless-java-container-spark/src/main/java/com/amazonaws/serverless/proxy/spark/embeddedserver/LambdaEmbeddedServer.java
 delete mode 100644 aws-serverless-java-container-spark/src/main/java/com/amazonaws/serverless/proxy/spark/embeddedserver/LambdaEmbeddedServerFactory.java
 delete mode 100644 aws-serverless-java-container-spark/src/test/java/com/amazonaws/serverless/proxy/spark/HelloWorldSparkStreamTest.java
 delete mode 100644 aws-serverless-java-container-spark/src/test/java/com/amazonaws/serverless/proxy/spark/HelloWorldSparkTest.java
 delete mode 100644 aws-serverless-java-container-spark/src/test/java/com/amazonaws/serverless/proxy/spark/InitExceptionHandlerTest.java
 delete mode 100644 aws-serverless-java-container-spark/src/test/java/com/amazonaws/serverless/proxy/spark/SparkLambdaContainerHandlerTest.java
 delete mode 100644 aws-serverless-java-container-spark/src/test/java/com/amazonaws/serverless/proxy/spark/embeddedserver/LambdaEmbeddedServerTest.java
 delete mode 100644 aws-serverless-java-container-spark/src/test/java/com/amazonaws/serverless/proxy/spark/filter/CustomHeaderFilter.java
 delete mode 100644 aws-serverless-java-container-spark/src/test/java/com/amazonaws/serverless/proxy/spark/filter/UnauthenticatedFilter.java
 delete mode 100644 aws-serverless-spark-archetype/pom.xml
 delete mode 100644 aws-serverless-spark-archetype/src/main/resources/META-INF/maven/archetype-metadata.xml
 delete mode 100644 aws-serverless-spark-archetype/src/main/resources/archetype-resources/README.md
 delete mode 100644 aws-serverless-spark-archetype/src/main/resources/archetype-resources/build.gradle
 delete mode 100644 aws-serverless-spark-archetype/src/main/resources/archetype-resources/pom.xml
 delete mode 100644 aws-serverless-spark-archetype/src/main/resources/archetype-resources/src/assembly/bin.xml
 delete mode 100644 aws-serverless-spark-archetype/src/main/resources/archetype-resources/src/main/java/SparkResources.java
 delete mode 100644 aws-serverless-spark-archetype/src/main/resources/archetype-resources/src/main/java/StreamLambdaHandler.java
 delete mode 100644 aws-serverless-spark-archetype/src/main/resources/archetype-resources/src/main/java/util/JsonTransformer.java
 delete mode 100644 aws-serverless-spark-archetype/src/main/resources/archetype-resources/src/test/java/StreamLambdaHandlerTest.java
 delete mode 100644 aws-serverless-spark-archetype/src/main/resources/archetype-resources/template.yml
 delete mode 100644 aws-serverless-spark-archetype/src/test/resources/projects/base/archetype.properties
 delete mode 100644 aws-serverless-spark-archetype/src/test/resources/projects/base/goal.txt
 delete mode 100644 samples/spark/pet-store/README.md
 delete mode 100644 samples/spark/pet-store/build.gradle
 delete mode 100644 samples/spark/pet-store/pom.xml
 delete mode 100644 samples/spark/pet-store/src/assembly/bin.xml
 delete mode 100644 samples/spark/pet-store/src/main/java/com/amazonaws/serverless/sample/spark/JsonTransformer.java
 delete mode 100644 samples/spark/pet-store/src/main/java/com/amazonaws/serverless/sample/spark/SparkResources.java
 delete mode 100644 samples/spark/pet-store/src/main/java/com/amazonaws/serverless/sample/spark/StreamLambdaHandler.java
 delete mode 100644 samples/spark/pet-store/src/main/java/com/amazonaws/serverless/sample/spark/filter/CognitoIdentityFilter.java
 delete mode 100644 samples/spark/pet-store/src/main/java/com/amazonaws/serverless/sample/spark/model/Error.java
 delete mode 100644 samples/spark/pet-store/src/main/java/com/amazonaws/serverless/sample/spark/model/Pet.java
 delete mode 100644 samples/spark/pet-store/src/main/java/com/amazonaws/serverless/sample/spark/model/PetData.java
 delete mode 100644 samples/spark/pet-store/template.yml

diff --git a/.github/workflows/continuous-integration-workflow.yml b/.github/workflows/continuous-integration-workflow.yml
index 2374a45bc..b0acd32ad 100644
--- a/.github/workflows/continuous-integration-workflow.yml
+++ b/.github/workflows/continuous-integration-workflow.yml
@@ -46,14 +46,6 @@ jobs:
 #      - name: Build Jersey 2.29
 #        run: ./gha_build.sh jersey false false -Djersey.version=2.29.1
 
-#  build_spark:
-#    name: Build and test Spark
-#    runs-on: ubuntu-latest
-#    steps:
-#      - uses: actions/checkout@v3
-#      - name: Build latest
-#        run: ./gha_build.sh spark true true
-
   build_spring:
     name: Build and test Spring
     runs-on: ubuntu-latest
diff --git a/aws-serverless-java-container-jersey/src/main/java/com/amazonaws/serverless/proxy/jersey/JerseyLambdaContainerHandler.java b/aws-serverless-java-container-jersey/src/main/java/com/amazonaws/serverless/proxy/jersey/JerseyLambdaContainerHandler.java
index e290e284b..43bd7eac1 100644
--- a/aws-serverless-java-container-jersey/src/main/java/com/amazonaws/serverless/proxy/jersey/JerseyLambdaContainerHandler.java
+++ b/aws-serverless-java-container-jersey/src/main/java/com/amazonaws/serverless/proxy/jersey/JerseyLambdaContainerHandler.java
@@ -207,7 +207,7 @@ protected AwsHttpServletResponse getContainerResponse(HttpServletRequest request
     public void initialize() {
         Timer.start("JERSEY_COLD_START_INIT");
 
-        // manually add the spark filter to the chain. This should the last one and match all uris
+        // manually add the filter to the chain. This should the last one and match all uris
         FilterRegistration.Dynamic jerseyFilterReg = getServletContext().addFilter("JerseyFilter", jerseyFilter);
         jerseyFilterReg.addMappingForUrlPatterns(
                 EnumSet.of(DispatcherType.REQUEST, DispatcherType.ASYNC, DispatcherType.INCLUDE, DispatcherType.FORWARD),
diff --git a/aws-serverless-java-container-spark/pom.xml b/aws-serverless-java-container-spark/pom.xml
deleted file mode 100644
index 8987d66aa..000000000
--- a/aws-serverless-java-container-spark/pom.xml
+++ /dev/null
@@ -1,134 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>aws-serverless-java-container-spark</artifactId>
-    <name>AWS Serverless Java container support - Spark implementation</name>
-    <description>Allows Java applications written for Spark to run in AWS Lambda</description>
-    <url>https://aws.amazon.com/lambda</url>
-    <version>2.0.0-SNAPSHOT</version>
-
-    <parent>
-        <groupId>com.amazonaws.serverless</groupId>
-        <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.0.0-SNAPSHOT</version>
-        <relativePath>..</relativePath>
-    </parent>
-
-    <properties>
-        <spark.version>2.9.4</spark.version>
-    </properties>
-
-    <dependencies>
-        <!-- Core interfaces for the aws-serverless-java-container project -->
-        <dependency>
-            <groupId>com.amazonaws.serverless</groupId>
-            <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.0.0-SNAPSHOT</version>
-        </dependency>
-
-        <dependency>
-            <groupId>com.sparkjava</groupId>
-            <artifactId>spark-core</artifactId>
-            <version>${spark.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.junit.jupiter</groupId>
-            <artifactId>junit-jupiter</artifactId>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.jacoco</groupId>
-                <artifactId>jacoco-maven-plugin</artifactId>
-                <configuration>
-                    <destFile>${basedir}/target/coverage-reports/jacoco-unit.exec</destFile>
-                    <dataFile>${basedir}/target/coverage-reports/jacoco-unit.exec</dataFile>
-                </configuration>
-                <executions>
-                    <execution>
-                        <id>default-prepare-agent</id>
-                        <goals>
-                            <goal>prepare-agent</goal>
-                        </goals>
-                    </execution>
-                    <execution>
-                        <id>jacoco-site</id>
-                        <phase>package</phase>
-                        <goals>
-                            <goal>report</goal>
-                        </goals>
-                    </execution>
-                    <execution>
-                        <id>jacoco-check</id>
-                        <phase>test</phase>
-                        <goals>
-                            <goal>check</goal>
-                        </goals>
-                        <configuration>
-                            <haltOnFailure>true</haltOnFailure>
-                            <rules><rule>
-                                <element>BUNDLE</element>
-                                <limits>
-                                    <limit>
-                                        <counter>INSTRUCTION</counter>
-                                        <value>COVEREDRATIO</value>
-                                        <minimum>${jacoco.minCoverage}</minimum>
-                                    </limit>
-                                </limits>
-                            </rule></rules>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-            <!-- fork JVM before each spring test to make sure we have a clean context -->
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-surefire-plugin</artifactId>
-                <configuration>
-                    <reuseForks>false</reuseForks>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>com.github.spotbugs</groupId>
-                <artifactId>spotbugs-maven-plugin</artifactId>
-                <executions>
-                    <!--
-                        Ensures that SpotBug inspects source code when project is compiled.
-                    -->
-                    <execution>
-                        <id>analyze-compile</id>
-                        <phase>compile</phase>
-                        <goals>
-                            <goal>check</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <groupId>org.owasp</groupId>
-                <artifactId>dependency-check-maven</artifactId>
-                <version>${dependencyCheck.version}</version>
-                <configuration>
-                    <skipProvidedScope>true</skipProvidedScope>
-                    <suppressionFiles>
-                        <suppressionFile>${project.basedir}/../owasp-suppression.xml</suppressionFile>
-                    </suppressionFiles>
-                    <failBuildOnCVSS>7</failBuildOnCVSS>
-                    <failOnError>false</failOnError>
-                </configuration>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>check</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
-
-</project>
diff --git a/aws-serverless-java-container-spark/src/main/java/com/amazonaws/serverless/proxy/spark/SparkLambdaContainerHandler.java b/aws-serverless-java-container-spark/src/main/java/com/amazonaws/serverless/proxy/spark/SparkLambdaContainerHandler.java
deleted file mode 100644
index 9c1b47511..000000000
--- a/aws-serverless-java-container-spark/src/main/java/com/amazonaws/serverless/proxy/spark/SparkLambdaContainerHandler.java
+++ /dev/null
@@ -1,251 +0,0 @@
-/*
- * Copyright 2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance
- * with the License. A copy of the License is located at
- *
- * http://aws.amazon.com/apache2.0/
- *
- * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES
- * OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
- * and limitations under the License.
- */
-package com.amazonaws.serverless.proxy.spark;
-
-
-import com.amazonaws.serverless.exceptions.ContainerInitializationException;
-import com.amazonaws.serverless.proxy.*;
-import com.amazonaws.serverless.proxy.internal.testutils.Timer;
-import com.amazonaws.serverless.proxy.model.AwsProxyRequest;
-import com.amazonaws.serverless.proxy.model.AwsProxyResponse;
-import com.amazonaws.serverless.proxy.internal.servlet.*;
-import com.amazonaws.serverless.proxy.model.HttpApiV2ProxyRequest;
-import com.amazonaws.serverless.proxy.spark.embeddedserver.LambdaEmbeddedServer;
-import com.amazonaws.serverless.proxy.spark.embeddedserver.LambdaEmbeddedServerFactory;
-
-import com.amazonaws.services.lambda.runtime.Context;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import spark.Service;
-import spark.Spark;
-import spark.embeddedserver.EmbeddedServers;
-
-import jakarta.servlet.DispatcherType;
-import jakarta.servlet.FilterRegistration;
-import jakarta.servlet.Servlet;
-import jakarta.servlet.http.HttpServletRequest;
-
-import java.lang.reflect.Field;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.security.AccessController;
-import java.security.PrivilegedActionException;
-import java.security.PrivilegedExceptionAction;
-import java.util.EnumSet;
-import java.util.concurrent.CountDownLatch;
-
-
-/**
- * Implementation of the <code>LambdaContainerHandler</code> object that supports the Spark framework: http://sparkjava.com/
- * <p>
- * Because of the way this container is implemented, using reflection to change accessibility of methods in the Spark
- * framework and inserting itself as the default embedded container, it is important that you initialize the Handler
- * before declaring your spark routes.
- * <p>
- * This implementation uses the default <code>AwsProxyHttpServletRequest</code> and Response implementations.
- * <p>
- * <pre>
- * {@code
- *     // always initialize the handler first
- *     SparkLambdaContainerHandler<AwsProxyRequest, AwsProxyResponse> handler =
- *             SparkLambdaContainerHandler.getAwsProxyHandler();
- *
- *     get("/hello", (req, res) -> {
- *         res.status(200);
- *         res.body("Hello World");
- *     });
- * }
- * </pre>
- *
- * @param <RequestType> The request object used by the <code>RequestReader</code> implementation passed to the constructor
- * @param <ResponseType> The response object produced by the <code>ResponseWriter</code> implementation in the constructor
- */
-public class SparkLambdaContainerHandler<RequestType, ResponseType>
-        extends AwsLambdaServletContainerHandler<RequestType, ResponseType, HttpServletRequest, AwsHttpServletResponse> {
-
-    //-------------------------------------------------------------
-    // Constants
-    //-------------------------------------------------------------
-
-    private static final String LAMBDA_EMBEDDED_SERVER_CODE = "AWS_LAMBDA";
-
-    //-------------------------------------------------------------
-    // Variables - Private
-    //-------------------------------------------------------------
-
-    private LambdaEmbeddedServer embeddedServer;
-    private LambdaEmbeddedServerFactory lambdaServerFactory;
-    private Logger log = LoggerFactory.getLogger(SparkLambdaContainerHandler.class);
-
-    //-------------------------------------------------------------
-    // Methods - Public - Static
-    //-------------------------------------------------------------
-
-
-    /**
-     * Returns a new instance of an SparkLambdaContainerHandler initialized to work with <code>AwsProxyRequest</code>
-     * and <code>AwsProxyResponse</code> objects.
-     *
-     * @return a new instance of <code>SparkLambdaContainerHandler</code>
-     *
-     * @throws ContainerInitializationException Throws this exception if we fail to initialize the Spark container.
-     * This could be caused by the introspection used to insert the library as the default embedded container
-     */
-    public static SparkLambdaContainerHandler<AwsProxyRequest, AwsProxyResponse> getAwsProxyHandler()
-            throws ContainerInitializationException {
-        SparkLambdaContainerHandler<AwsProxyRequest, AwsProxyResponse> newHandler = new SparkLambdaContainerHandler<>(AwsProxyRequest.class,
-                                                                                         AwsProxyResponse.class,
-                                                                                         new AwsProxyHttpServletRequestReader(),
-                                                                                         new AwsProxyHttpServletResponseWriter(),
-                                                                                         new AwsProxySecurityContextWriter(),
-                                                                                         new AwsProxyExceptionHandler(),
-                                                                                         new LambdaEmbeddedServerFactory());
-
-        // For Spark we cannot call initialize here. It needs to be called manually after the routes are set
-        //newHandler.initialize();
-
-        return newHandler;
-    }
-
-    /**
-     * Returns a new instance of an SparkLambdaContainerHandler initialized to work with <code>HttpApiV2ProxyRequest</code>
-     * and <code>AwsProxyResponse</code> objects.
-     *
-     * @return a new instance of <code>SparkLambdaContainerHandler</code>
-     *
-     * @throws ContainerInitializationException Throws this exception if we fail to initialize the Spark container.
-     * This could be caused by the introspection used to insert the library as the default embedded container
-     */
-    public static SparkLambdaContainerHandler<HttpApiV2ProxyRequest, AwsProxyResponse> getHttpApiV2ProxyHandler()
-            throws ContainerInitializationException {
-        SparkLambdaContainerHandler<HttpApiV2ProxyRequest, AwsProxyResponse> newHandler = new SparkLambdaContainerHandler<>(HttpApiV2ProxyRequest.class,
-                AwsProxyResponse.class,
-                new AwsHttpApiV2HttpServletRequestReader(),
-                new AwsProxyHttpServletResponseWriter(true),
-                new AwsHttpApiV2SecurityContextWriter(),
-                new AwsProxyExceptionHandler(),
-                new LambdaEmbeddedServerFactory());
-
-        // For Spark we cannot call initialize here. It needs to be called manually after the routes are set
-        //newHandler.initialize();
-
-        return newHandler;
-    }
-
-    //-------------------------------------------------------------
-    // Constructors
-    //-------------------------------------------------------------
-
-
-    public SparkLambdaContainerHandler(Class<RequestType> requestTypeClass,
-                                       Class<ResponseType> responseTypeClass,
-                                       RequestReader<RequestType, HttpServletRequest> requestReader,
-                                       ResponseWriter<AwsHttpServletResponse, ResponseType> responseWriter,
-                                       SecurityContextWriter<RequestType> securityContextWriter,
-                                       ExceptionHandler<ResponseType> exceptionHandler,
-                                       LambdaEmbeddedServerFactory embeddedServerFactory)
-            throws ContainerInitializationException {
-        super(requestTypeClass, responseTypeClass, requestReader, responseWriter, securityContextWriter, exceptionHandler);
-        Timer.start("SPARK_CONTAINER_HANDLER_CONSTRUCTOR");
-
-        EmbeddedServers.add(LAMBDA_EMBEDDED_SERVER_CODE, embeddedServerFactory);
-        this.lambdaServerFactory = embeddedServerFactory;
-
-        // TODO: This is pretty bad but we are not given access to the embeddedServerIdentifier property of the
-        // Service object
-        try {
-            AccessController.doPrivileged((PrivilegedExceptionAction<Object>) () -> {
-                log.debug("Changing visibility of getInstance method and embeddedServerIdentifier properties");
-                Method serviceInstanceMethod = Spark.class.getDeclaredMethod("getInstance");
-                serviceInstanceMethod.setAccessible(true);
-                Service sparkService = (Service) serviceInstanceMethod.invoke(null);
-                Field serverIdentifierField = Service.class.getDeclaredField("embeddedServerIdentifier");
-                serverIdentifierField.setAccessible(true);
-                serverIdentifierField.set(sparkService, LAMBDA_EMBEDDED_SERVER_CODE);
-                return null;
-            });
-        } catch (PrivilegedActionException e) {
-            if (e.getException() instanceof NoSuchFieldException) {
-                log.error("Could not fine embeddedServerIdentifier field in Service class", e.getException());
-            } else if (e.getException() instanceof NoSuchMethodException) {
-                log.error("Could not find getInstance method in Spark class", e.getException());
-            } else if (e.getException() instanceof IllegalAccessException) {
-                log.error("Could not access getInstance method in Spark class", e.getException());
-            } else if (e.getException() instanceof InvocationTargetException) {
-                log.error("Could not invoke getInstance method in Spark class", e.getException());
-            } else {
-                log.error("Unknown exception while modifying Spark class", e.getException());
-            }
-            Timer.stop("SPARK_CONTAINER_HANDLER_CONSTRUCTOR");
-            throw new ContainerInitializationException("Could not initialize Spark server", e.getException());
-        }
-        Timer.stop("SPARK_CONTAINER_HANDLER_CONSTRUCTOR");
-    }
-
-    //-------------------------------------------------------------
-    // Methods - Implementation
-    //-------------------------------------------------------------
-
-
-    @Override
-    protected AwsHttpServletResponse getContainerResponse(HttpServletRequest request, CountDownLatch latch) {
-        return new AwsHttpServletResponse(request, latch);
-    }
-
-
-    @Override
-    protected void handleRequest(HttpServletRequest httpServletRequest, AwsHttpServletResponse httpServletResponse, Context lambdaContext)
-            throws Exception {
-        Timer.start("SPARK_HANDLE_REQUEST");
-
-        if (embeddedServer == null) {
-            initialize();
-        }
-
-        if (AwsHttpServletRequest.class.isAssignableFrom(httpServletRequest.getClass())) {
-            ((AwsHttpServletRequest)httpServletRequest).setServletContext(getServletContext());
-        }
-
-        doFilter(httpServletRequest, httpServletResponse, null);
-        Timer.stop("SPARK_HANDLE_REQUEST");
-    }
-
-
-    @Override
-    public void initialize()
-            throws ContainerInitializationException {
-        Timer.start("SPARK_COLD_START");
-        log.debug("First request, getting new server instance");
-
-        // trying to call init in case the embedded server had not been initialized.
-        Spark.init();
-
-        // adding this call to make sure that the framework is fully initialized. This should address a race
-        // condition and solve GitHub issue #71.
-        Spark.awaitInitialization();
-
-        embeddedServer = lambdaServerFactory.getServerInstance();
-
-        // manually add the spark filter to the chain. This should the last one and match all uris
-        FilterRegistration.Dynamic sparkRegistration = getServletContext().addFilter("SparkFilter", embeddedServer.getSparkFilter());
-        sparkRegistration.addMappingForUrlPatterns(
-                EnumSet.of(DispatcherType.REQUEST, DispatcherType.ASYNC, DispatcherType.INCLUDE, DispatcherType.FORWARD),
-                true, "/*");
-        Timer.stop("SPARK_COLD_START");
-    }
-
-    public Servlet getServlet() {
-        return null;
-    }
-}
diff --git a/aws-serverless-java-container-spark/src/main/java/com/amazonaws/serverless/proxy/spark/embeddedserver/LambdaEmbeddedServer.java b/aws-serverless-java-container-spark/src/main/java/com/amazonaws/serverless/proxy/spark/embeddedserver/LambdaEmbeddedServer.java
deleted file mode 100644
index 8d79c613c..000000000
--- a/aws-serverless-java-container-spark/src/main/java/com/amazonaws/serverless/proxy/spark/embeddedserver/LambdaEmbeddedServer.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * Copyright 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance
- * with the License. A copy of the License is located at
- *
- * http://aws.amazon.com/apache2.0/
- *
- * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES
- * OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
- * and limitations under the License.
- */
-package com.amazonaws.serverless.proxy.spark.embeddedserver;
-
-import com.amazonaws.serverless.exceptions.ContainerInitializationException;
-import com.amazonaws.serverless.proxy.internal.testutils.Timer;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import spark.ExceptionMapper;
-import spark.embeddedserver.EmbeddedServer;
-import spark.embeddedserver.jetty.websocket.WebSocketHandlerWrapper;
-import spark.http.matching.MatcherFilter;
-import spark.route.Routes;
-import spark.ssl.SslStores;
-import spark.staticfiles.StaticFilesConfiguration;
-
-import jakarta.servlet.Filter;
-import java.util.Map;
-import java.util.Optional;
-
-public class LambdaEmbeddedServer
-        implements EmbeddedServer {
-
-    //-------------------------------------------------------------
-    // Variables - Private
-    //-------------------------------------------------------------
-
-    private Routes applicationRoutes;
-    private ExceptionMapper exceptionMapper;
-    private MatcherFilter sparkFilter;
-    private StaticFilesConfiguration staticFilesConfiguration;
-    private boolean hasMultipleHandler;
-    private Logger log = LoggerFactory.getLogger(LambdaEmbeddedServer.class);
-
-
-    //-------------------------------------------------------------
-    // Constructors
-    //-------------------------------------------------------------
-
-    LambdaEmbeddedServer(Routes routes, StaticFilesConfiguration filesConfig, ExceptionMapper exceptionMapper, boolean multipleHandlers) {
-        Timer.start("SPARK_EMBEDDED_SERVER_CONSTRUCTOR");
-        applicationRoutes = routes;
-        staticFilesConfiguration = filesConfig;
-        hasMultipleHandler = multipleHandlers;
-        this.exceptionMapper = exceptionMapper;
-
-        // try to initialize the filter here.
-        sparkFilter = new MatcherFilter(applicationRoutes, staticFilesConfiguration, exceptionMapper, true, hasMultipleHandler);
-        Timer.stop("SPARK_EMBEDDED_SERVER_CONSTRUCTOR");
-    }
-
-
-    //-------------------------------------------------------------
-    // Implementation - EmbeddedServer
-    //-------------------------------------------------------------
-    @Override
-    public int ignite(String host, int port, SslStores sslStores, int maxThreads, int minThreads, int threadIdleTimeoutMillis)
-            throws ContainerInitializationException {
-        Timer.start("SPARK_EMBEDDED_IGNITE");
-        log.info("Starting Spark server, ignoring port and host");
-        // if not initialized yet
-        if (sparkFilter == null) {
-            sparkFilter = new MatcherFilter(applicationRoutes, staticFilesConfiguration, exceptionMapper, true, hasMultipleHandler);
-        }
-        sparkFilter.init(null);
-        Timer.stop("SPARK_EMBEDDED_IGNITE");
-        return port;
-    }
-
-
-    public void configureWebSockets(Map<String, WebSocketHandlerWrapper> webSocketHandlers,
-                                    Optional<Long> webSocketIdleTimeoutMillis) {
-        // Swallowing this exception to prevent Spark from getting stuck
-        // throw new UnsupportedOperationException();
-        log.info("Spark called configureWebSockets. However, web sockets are not supported");
-    }
-
-
-    @Override
-    public void join() {
-        log.info("Called join method, nothing to do here since Lambda only runs a single event per container");
-    }
-
-
-    @Override
-    public void extinguish() {
-        log.info("Called extinguish method, nothing to do here.");
-    }
-
-
-    @Override
-    public int activeThreadCount() {
-        log.debug("Called activeThreadCount, since Lambda only runs one event per container we always return 1");
-        return 1;
-    }
-
-    //-------------------------------------------------------------
-    // Methods - Public
-    //-------------------------------------------------------------
-
-    /**
-     * Returns the initialized instance of the main Spark filter.
-     * @return The spark filter instance.
-     */
-    public Filter getSparkFilter() {
-        return sparkFilter;
-    }
-}
diff --git a/aws-serverless-java-container-spark/src/main/java/com/amazonaws/serverless/proxy/spark/embeddedserver/LambdaEmbeddedServerFactory.java b/aws-serverless-java-container-spark/src/main/java/com/amazonaws/serverless/proxy/spark/embeddedserver/LambdaEmbeddedServerFactory.java
deleted file mode 100644
index 9074e5ddf..000000000
--- a/aws-serverless-java-container-spark/src/main/java/com/amazonaws/serverless/proxy/spark/embeddedserver/LambdaEmbeddedServerFactory.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Copyright 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance
- * with the License. A copy of the License is located at
- *
- * http://aws.amazon.com/apache2.0/
- *
- * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES
- * OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
- * and limitations under the License.
- */
-package com.amazonaws.serverless.proxy.spark.embeddedserver;
-
-import com.amazonaws.serverless.proxy.internal.testutils.Timer;
-
-import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
-import spark.ExceptionMapper;
-import spark.embeddedserver.EmbeddedServer;
-import spark.embeddedserver.EmbeddedServerFactory;
-import spark.route.Routes;
-import spark.staticfiles.StaticFilesConfiguration;
-
-public class LambdaEmbeddedServerFactory implements EmbeddedServerFactory {
-
-    //-------------------------------------------------------------
-    // Variables - Private - Static
-    //-------------------------------------------------------------
-
-    private static volatile LambdaEmbeddedServer embeddedServer;
-
-
-    /**
-     * Empty constructor, applications should always use this constructor.
-     */
-    public LambdaEmbeddedServerFactory() {}
-
-
-    /**
-     * Constructor used in unit tests to inject a mocked embedded server
-     * @param server The mocked server
-     */
-    @SuppressFBWarnings("ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD") // suppressing the warning as this constructor is only used for unit tests
-    public LambdaEmbeddedServerFactory(LambdaEmbeddedServer server) {
-        LambdaEmbeddedServerFactory.embeddedServer = server;
-    }
-
-
-    //-------------------------------------------------------------
-    // Implementation - EmbeddedServerFactory
-    //-------------------------------------------------------------
-
-
-    @Override
-    public EmbeddedServer create(Routes routes, StaticFilesConfiguration staticFilesConfiguration, ExceptionMapper exceptionMapper, boolean multipleHandlers) {
-        Timer.start("SPARK_SERVER_FACTORY_CREATE");
-        if (embeddedServer == null) {
-            LambdaEmbeddedServerFactory.embeddedServer = new LambdaEmbeddedServer(routes, staticFilesConfiguration, exceptionMapper, multipleHandlers);
-        }
-        Timer.stop("SPARK_SERVER_FACTORY_CREATE");
-        return embeddedServer;
-    }
-
-
-    //-------------------------------------------------------------
-    // Methods - Getter/Setter
-    //-------------------------------------------------------------
-
-    public LambdaEmbeddedServer getServerInstance() {
-        return embeddedServer;
-    }
-}
diff --git a/aws-serverless-java-container-spark/src/test/java/com/amazonaws/serverless/proxy/spark/HelloWorldSparkStreamTest.java b/aws-serverless-java-container-spark/src/test/java/com/amazonaws/serverless/proxy/spark/HelloWorldSparkStreamTest.java
deleted file mode 100644
index 33bc19f1d..000000000
--- a/aws-serverless-java-container-spark/src/test/java/com/amazonaws/serverless/proxy/spark/HelloWorldSparkStreamTest.java
+++ /dev/null
@@ -1,160 +0,0 @@
-package com.amazonaws.serverless.proxy.spark;
-
-
-import com.amazonaws.serverless.exceptions.ContainerInitializationException;
-import com.amazonaws.serverless.proxy.internal.LambdaContainerHandler;
-import com.amazonaws.serverless.proxy.internal.testutils.AwsProxyRequestBuilder;
-import com.amazonaws.serverless.proxy.internal.testutils.MockLambdaContext;
-import com.amazonaws.serverless.proxy.model.AwsProxyRequest;
-import com.amazonaws.serverless.proxy.model.AwsProxyResponse;
-
-import com.amazonaws.serverless.proxy.model.HttpApiV2ProxyRequest;
-import com.amazonaws.services.lambda.runtime.Context;
-import org.junit.jupiter.api.AfterAll;
-import org.junit.jupiter.params.ParameterizedTest;
-import org.junit.jupiter.params.provider.MethodSource;
-import spark.Spark;
-
-import jakarta.servlet.http.Cookie;
-
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.util.Arrays;
-import java.util.Collection;
-
-import static org.junit.jupiter.api.Assertions.*;
-import static spark.Spark.get;
-
-// This class doesn't actually test Spark. Instead it tests the proxyStream method of the
-// LambdaContainerHandler object. We use the Spark implementation for this because it's the
-// fastest to start
-public class HelloWorldSparkStreamTest {
-    private static final String CUSTOM_HEADER_KEY = "X-Custom-Header";
-    private static final String CUSTOM_HEADER_VALUE = "My Header Value";
-    private static final String BODY_TEXT_RESPONSE = "Hello World";
-
-    private static final String COOKIE_NAME = "MyCookie";
-    private static final String COOKIE_VALUE = "CookieValue";
-    private static final String COOKIE_DOMAIN = "mydomain.com";
-    private static final String COOKIE_PATH = "/";
-
-    private static SparkLambdaContainerHandler<AwsProxyRequest, AwsProxyResponse> handler;
-    private static SparkLambdaContainerHandler<HttpApiV2ProxyRequest, AwsProxyResponse> httpApiHandler;
-
-    private String type;
-
-    public void initHelloWorldSparkStreamTest(String reqType) {
-        type = reqType;
-        try {
-            switch (type) {
-                case "API_GW":
-                case "ALB":
-                    handler = SparkLambdaContainerHandler.getAwsProxyHandler();
-                    break;
-                case "HTTP_API":
-                    httpApiHandler = SparkLambdaContainerHandler.getHttpApiV2ProxyHandler();
-                    break;
-                default:
-                    throw new RuntimeException("Unknown request type: " + type);
-            }
-
-            configureRoutes();
-            Spark.awaitInitialization();
-        } catch (RuntimeException | ContainerInitializationException e) {
-            e.printStackTrace();
-            fail();
-        }
-    }
-
-    public static Collection<Object> data() {
-        return Arrays.asList(new Object[]{"API_GW", "ALB", "HTTP_API"});
-    }
-
-    private AwsProxyRequestBuilder getRequestBuilder() {
-        return new AwsProxyRequestBuilder();
-    }
-
-    private ByteArrayOutputStream executeRequest(AwsProxyRequestBuilder requestBuilder, Context lambdaContext) throws IOException {
-        ByteArrayOutputStream os = new ByteArrayOutputStream();
-        switch (type) {
-            case "API_GW":
-                handler.proxyStream(requestBuilder.buildStream(), os, lambdaContext);
-                break;
-            case "ALB":
-                handler.proxyStream(requestBuilder.alb().buildStream(), os, lambdaContext);
-                break;
-            case "HTTP_API":
-                httpApiHandler.proxyStream(requestBuilder.toHttpApiV2RequestStream(), os, lambdaContext);
-                break;
-            default:
-                throw new RuntimeException("Unknown request type: " + type);
-        }
-        return os;
-    }
-
-    @AfterAll
-    public static void stopSpark() {
-        Spark.stop();
-    }
-
-    @MethodSource("data")
-    @ParameterizedTest
-    void helloRequest_basicStream_populatesOutputSuccessfully(String reqType) {
-        initHelloWorldSparkStreamTest(reqType);
-        try {
-            ByteArrayOutputStream outputStream = executeRequest(getRequestBuilder().method("GET").path("/hello"), new MockLambdaContext());
-            AwsProxyResponse response = LambdaContainerHandler.getObjectMapper().readValue(outputStream.toByteArray(), AwsProxyResponse.class);
-
-            assertEquals(200, response.getStatusCode());
-            assertTrue(response.getMultiValueHeaders().containsKey(CUSTOM_HEADER_KEY));
-            assertEquals(CUSTOM_HEADER_VALUE, response.getMultiValueHeaders().getFirst(CUSTOM_HEADER_KEY));
-            assertEquals(BODY_TEXT_RESPONSE, response.getBody());
-        } catch (IOException e) {
-            e.printStackTrace();
-            fail();
-        }
-    }
-
-    @MethodSource("data")
-    @ParameterizedTest
-    void nullPathRequest_doesntFail_expectA404(String reqType) {
-        initHelloWorldSparkStreamTest(reqType);
-        try {
-            ByteArrayOutputStream outputStream = executeRequest(getRequestBuilder().method("GET").path(null), new MockLambdaContext());
-            AwsProxyResponse response = LambdaContainerHandler.getObjectMapper().readValue(outputStream.toByteArray(), AwsProxyResponse.class);
-
-            assertEquals(404, response.getStatusCode());
-        } catch (IOException e) {
-            e.printStackTrace();
-            fail();
-        }
-    }
-
-    private static void configureRoutes() {
-        get("/hello", (req, res) -> {
-            res.status(200);
-            res.header(CUSTOM_HEADER_KEY, CUSTOM_HEADER_VALUE);
-            return BODY_TEXT_RESPONSE;
-        });
-
-        get("/cookie", (req, res) -> {
-            Cookie testCookie = new Cookie(COOKIE_NAME, COOKIE_VALUE);
-            testCookie.setDomain(COOKIE_DOMAIN);
-            testCookie.setPath(COOKIE_PATH);
-            res.raw().addCookie(testCookie);
-            return BODY_TEXT_RESPONSE;
-        });
-
-        get("/multi-cookie", (req, res) -> {
-            Cookie testCookie = new Cookie(COOKIE_NAME, COOKIE_VALUE);
-            testCookie.setDomain(COOKIE_DOMAIN);
-            testCookie.setPath(COOKIE_PATH);
-            Cookie testCookie2 = new Cookie(COOKIE_NAME + "2", COOKIE_VALUE + "2");
-            testCookie2.setDomain(COOKIE_DOMAIN);
-            testCookie2.setPath(COOKIE_PATH);
-            res.raw().addCookie(testCookie);
-            res.raw().addCookie(testCookie2);
-            return BODY_TEXT_RESPONSE;
-        });
-    }
-}
diff --git a/aws-serverless-java-container-spark/src/test/java/com/amazonaws/serverless/proxy/spark/HelloWorldSparkTest.java b/aws-serverless-java-container-spark/src/test/java/com/amazonaws/serverless/proxy/spark/HelloWorldSparkTest.java
deleted file mode 100644
index b687784ec..000000000
--- a/aws-serverless-java-container-spark/src/test/java/com/amazonaws/serverless/proxy/spark/HelloWorldSparkTest.java
+++ /dev/null
@@ -1,176 +0,0 @@
-package com.amazonaws.serverless.proxy.spark;
-
-
-import com.amazonaws.serverless.exceptions.ContainerInitializationException;
-import com.amazonaws.serverless.proxy.model.AwsProxyRequest;
-import com.amazonaws.serverless.proxy.model.AwsProxyResponse;
-import com.amazonaws.serverless.proxy.internal.testutils.AwsProxyRequestBuilder;
-import com.amazonaws.serverless.proxy.internal.testutils.MockLambdaContext;
-
-import org.junit.jupiter.api.AfterAll;
-import org.junit.jupiter.api.BeforeAll;
-import org.junit.jupiter.params.ParameterizedTest;
-import org.junit.jupiter.params.provider.MethodSource;
-import spark.Spark;
-
-import jakarta.servlet.http.Cookie;
-import jakarta.ws.rs.core.HttpHeaders;
-
-import java.util.Arrays;
-import java.util.Collection;
-
-import static org.junit.jupiter.api.Assertions.*;
-import static spark.Spark.get;
-
-
-public class HelloWorldSparkTest {
-    private static final String CUSTOM_HEADER_KEY = "X-Custom-Header";
-    private static final String CUSTOM_HEADER_VALUE = "My Header Value";
-    private static final String BODY_TEXT_RESPONSE = "Hello World";
-
-    private static final String COOKIE_NAME = "MyCookie";
-    private static final String COOKIE_VALUE = "CookieValue";
-    private static final String COOKIE_DOMAIN = "mydomain.com";
-    private static final String COOKIE_PATH = "/";
-
-    private static final String READ_COOKIE_NAME = "customCookie";
-
-    private static SparkLambdaContainerHandler<AwsProxyRequest, AwsProxyResponse> handler;
-
-    private boolean isAlb;
-
-    public void initHelloWorldSparkTest(boolean alb) {
-        isAlb = alb;
-    }
-
-    public static Collection<Object> data() {
-        return Arrays.asList(new Object[]{false, true});
-    }
-
-    private AwsProxyRequestBuilder getRequestBuilder() {
-        AwsProxyRequestBuilder builder = new AwsProxyRequestBuilder();
-        if (isAlb) builder.alb();
-
-        return builder;
-    }
-
-    @BeforeAll
-    public static void initializeServer() {
-        try {
-            handler = SparkLambdaContainerHandler.getAwsProxyHandler();
-
-            configureRoutes();
-            Spark.awaitInitialization();
-        } catch (RuntimeException | ContainerInitializationException e) {
-            e.printStackTrace();
-            fail();
-        }
-    }
-
-    @AfterAll
-    public static void stopSpark() {
-        Spark.stop();
-    }
-
-    @MethodSource("data")
-    @ParameterizedTest
-    void basicServer_handleRequest_emptyFilters(boolean alb) {
-        initHelloWorldSparkTest(alb);
-        AwsProxyRequest req = getRequestBuilder().method("GET").path("/hello").build();
-        AwsProxyResponse response = handler.proxy(req, new MockLambdaContext());
-
-        assertEquals(200, response.getStatusCode());
-        assertTrue(response.getMultiValueHeaders().containsKey(CUSTOM_HEADER_KEY));
-        assertEquals(CUSTOM_HEADER_VALUE, response.getMultiValueHeaders().getFirst(CUSTOM_HEADER_KEY));
-        assertEquals(BODY_TEXT_RESPONSE, response.getBody());
-    }
-
-    @MethodSource("data")
-    @ParameterizedTest
-    void addCookie_setCookieOnResponse_validCustomCookie(boolean alb) {
-        initHelloWorldSparkTest(alb);
-        AwsProxyRequest req = getRequestBuilder().method("GET").path("/cookie").build();
-        AwsProxyResponse response = handler.proxy(req, new MockLambdaContext());
-
-        assertEquals(200, response.getStatusCode());
-        assertTrue(response.getMultiValueHeaders().containsKey(HttpHeaders.SET_COOKIE));
-        assertTrue(response.getMultiValueHeaders().getFirst(HttpHeaders.SET_COOKIE).contains(COOKIE_NAME + "=" + COOKIE_VALUE));
-        assertTrue(response.getMultiValueHeaders().getFirst(HttpHeaders.SET_COOKIE).contains(COOKIE_DOMAIN));
-        assertTrue(response.getMultiValueHeaders().getFirst(HttpHeaders.SET_COOKIE).contains(COOKIE_PATH));
-    }
-
-    @MethodSource("data")
-    @ParameterizedTest
-    void multiCookie_setCookieOnResponse_singleHeaderWithMultipleValues(boolean alb) {
-        initHelloWorldSparkTest(alb);
-        AwsProxyRequest req = getRequestBuilder().method("GET").path("/multi-cookie").build();
-        AwsProxyResponse response = handler.proxy(req, new MockLambdaContext());
-
-        assertEquals(200, response.getStatusCode());
-        assertTrue(response.getMultiValueHeaders().containsKey(HttpHeaders.SET_COOKIE));
-
-        assertEquals(2, response.getMultiValueHeaders().get(HttpHeaders.SET_COOKIE).size());
-        assertTrue(response.getMultiValueHeaders().getFirst(HttpHeaders.SET_COOKIE).contains(COOKIE_NAME + "=" + COOKIE_VALUE));
-        assertTrue(response.getMultiValueHeaders().get(HttpHeaders.SET_COOKIE).get(1).contains(COOKIE_NAME + "2=" + COOKIE_VALUE + "2"));
-        assertTrue(response.getMultiValueHeaders().getFirst(HttpHeaders.SET_COOKIE).contains(COOKIE_DOMAIN));
-        assertTrue(response.getMultiValueHeaders().getFirst(HttpHeaders.SET_COOKIE).contains(COOKIE_PATH));
-    }
-
-    @MethodSource("data")
-    @ParameterizedTest
-    void rootResource_basicRequest_expectSuccess(boolean alb) {
-        initHelloWorldSparkTest(alb);
-        AwsProxyRequest req = getRequestBuilder().method("GET").path("/").build();
-        AwsProxyResponse response = handler.proxy(req, new MockLambdaContext());
-
-        assertEquals(200, response.getStatusCode());
-        assertTrue(response.getMultiValueHeaders().containsKey(CUSTOM_HEADER_KEY));
-        assertEquals(CUSTOM_HEADER_VALUE, response.getMultiValueHeaders().getFirst(CUSTOM_HEADER_KEY));
-        assertEquals(BODY_TEXT_RESPONSE, response.getBody());
-    }
-
-    @MethodSource("data")
-    @ParameterizedTest
-    void readCookie_customDomainName_expectValidCookie(boolean alb) {
-        initHelloWorldSparkTest(alb);
-        AwsProxyRequest req = getRequestBuilder().method("GET").path("/cookie-read").cookie(READ_COOKIE_NAME, "test").build();
-        AwsProxyResponse response = handler.proxy(req, new MockLambdaContext());
-        assertEquals("test", response.getBody());
-    }
-
-    private static void configureRoutes() {
-        get("/", (req, res) -> {
-            res.status(200);
-            res.header(CUSTOM_HEADER_KEY, CUSTOM_HEADER_VALUE);
-            return BODY_TEXT_RESPONSE;
-        });
-
-        get("/hello", (req, res) -> {
-            res.status(200);
-            res.header(CUSTOM_HEADER_KEY, CUSTOM_HEADER_VALUE);
-            return BODY_TEXT_RESPONSE;
-        });
-
-        get("/cookie", (req, res) -> {
-            Cookie testCookie = new Cookie(COOKIE_NAME, COOKIE_VALUE);
-            testCookie.setDomain(COOKIE_DOMAIN);
-            testCookie.setPath(COOKIE_PATH);
-            res.raw().addCookie(testCookie);
-            return BODY_TEXT_RESPONSE;
-        });
-
-        get("/multi-cookie", (req, res) -> {
-            Cookie testCookie = new Cookie(COOKIE_NAME, COOKIE_VALUE);
-            testCookie.setDomain(COOKIE_DOMAIN);
-            testCookie.setPath(COOKIE_PATH);
-            Cookie testCookie2 = new Cookie(COOKIE_NAME + "2", COOKIE_VALUE + "2");
-            testCookie2.setDomain(COOKIE_DOMAIN);
-            testCookie2.setPath(COOKIE_PATH);
-            res.raw().addCookie(testCookie);
-            res.raw().addCookie(testCookie2);
-            return BODY_TEXT_RESPONSE;
-        });
-
-        get("/cookie-read", (req, res) -> req.cookie(READ_COOKIE_NAME));
-    }
-}
diff --git a/aws-serverless-java-container-spark/src/test/java/com/amazonaws/serverless/proxy/spark/InitExceptionHandlerTest.java b/aws-serverless-java-container-spark/src/test/java/com/amazonaws/serverless/proxy/spark/InitExceptionHandlerTest.java
deleted file mode 100644
index 92c84a49b..000000000
--- a/aws-serverless-java-container-spark/src/test/java/com/amazonaws/serverless/proxy/spark/InitExceptionHandlerTest.java
+++ /dev/null
@@ -1,76 +0,0 @@
-package com.amazonaws.serverless.proxy.spark;
-
-
-import com.amazonaws.serverless.exceptions.ContainerInitializationException;
-import com.amazonaws.serverless.proxy.AwsProxyExceptionHandler;
-import com.amazonaws.serverless.proxy.AwsProxySecurityContextWriter;
-import com.amazonaws.serverless.proxy.internal.servlet.AwsProxyHttpServletRequestReader;
-import com.amazonaws.serverless.proxy.internal.servlet.AwsProxyHttpServletResponseWriter;
-import com.amazonaws.serverless.proxy.model.AwsProxyRequest;
-import com.amazonaws.serverless.proxy.model.AwsProxyResponse;
-import com.amazonaws.serverless.proxy.spark.embeddedserver.LambdaEmbeddedServer;
-import com.amazonaws.serverless.proxy.spark.embeddedserver.LambdaEmbeddedServerFactory;
-
-import org.junit.jupiter.api.AfterAll;
-import org.junit.jupiter.api.Test;
-import spark.Spark;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.fail;
-import static org.mockito.ArgumentMatchers.*;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.reset;
-import static org.mockito.Mockito.when;
-import static spark.Spark.get;
-import static spark.Spark.initExceptionHandler;
-
-
-public class InitExceptionHandlerTest {
-
-    private static final String TEST_EXCEPTION_MESSAGE = "test exception";
-    private static LambdaEmbeddedServer embeddedServer = mock(LambdaEmbeddedServer.class);
-
-    @Test
-    void initException_mockException_expectHandlerToRun() {
-        try {
-
-            when(embeddedServer.ignite(anyString(), anyInt(), any(), anyInt(), anyInt(), anyInt()))
-                                              .thenThrow(new ContainerInitializationException(TEST_EXCEPTION_MESSAGE, null));
-            LambdaEmbeddedServerFactory serverFactory = new LambdaEmbeddedServerFactory(embeddedServer);
-            new SparkLambdaContainerHandler<>(AwsProxyRequest.class,
-                                              AwsProxyResponse.class,
-                                              new AwsProxyHttpServletRequestReader(),
-                                              new AwsProxyHttpServletResponseWriter(),
-                                              new AwsProxySecurityContextWriter(),
-                                              new AwsProxyExceptionHandler(),
-                                              serverFactory);
-
-            configureRoutes();
-            Spark.awaitInitialization();
-        } catch (Exception e) {
-            e.printStackTrace();
-            fail("Error while mocking server");
-        }
-
-    }
-
-    @AfterAll
-    public static void stopSpark() {
-        // un-mock the embedded server to avoid blocking other tests
-        reset(embeddedServer);
-        // reset the static variable in the factory so that it will be instantiated again next time
-        new LambdaEmbeddedServerFactory(null);
-        Spark.stop();
-    }
-
-    private static void configureRoutes() {
-        initExceptionHandler((e) -> {
-            assertEquals(TEST_EXCEPTION_MESSAGE, e.getLocalizedMessage());
-        });
-
-        get("/test-route", (req, res) -> {
-            res.status(200);
-            return "test";
-        });
-    }
-}
diff --git a/aws-serverless-java-container-spark/src/test/java/com/amazonaws/serverless/proxy/spark/SparkLambdaContainerHandlerTest.java b/aws-serverless-java-container-spark/src/test/java/com/amazonaws/serverless/proxy/spark/SparkLambdaContainerHandlerTest.java
deleted file mode 100644
index a5c5e824b..000000000
--- a/aws-serverless-java-container-spark/src/test/java/com/amazonaws/serverless/proxy/spark/SparkLambdaContainerHandlerTest.java
+++ /dev/null
@@ -1,124 +0,0 @@
-package com.amazonaws.serverless.proxy.spark;
-
-
-import com.amazonaws.serverless.exceptions.ContainerInitializationException;
-import com.amazonaws.serverless.proxy.model.AwsProxyRequest;
-import com.amazonaws.serverless.proxy.model.AwsProxyResponse;
-import com.amazonaws.serverless.proxy.internal.testutils.AwsProxyRequestBuilder;
-import com.amazonaws.serverless.proxy.internal.testutils.MockLambdaContext;
-import com.amazonaws.serverless.proxy.spark.filter.CustomHeaderFilter;
-import com.amazonaws.serverless.proxy.spark.filter.UnauthenticatedFilter;
-
-import org.junit.jupiter.api.AfterAll;
-import org.junit.jupiter.api.Test;
-import spark.Spark;
-
-import jakarta.servlet.DispatcherType;
-import jakarta.servlet.FilterRegistration;
-
-import java.util.EnumSet;
-
-import static org.junit.jupiter.api.Assertions.*;
-import static spark.Spark.get;
-
-
-public class SparkLambdaContainerHandlerTest {
-    private static final String RESPONSE_BODY_TEXT = "hello";
-
-    @Test
-    void filters_onStartupMethod_executeFilters() {
-
-        SparkLambdaContainerHandler<AwsProxyRequest, AwsProxyResponse> handler = null;
-        try {
-            handler = SparkLambdaContainerHandler.getAwsProxyHandler();
-        } catch (ContainerInitializationException e) {
-            e.printStackTrace();
-            fail();
-        }
-
-        handler.onStartup(c -> {
-            if (c == null) {
-                fail();
-            }
-            FilterRegistration.Dynamic registration = c.addFilter("CustomHeaderFilter", CustomHeaderFilter.class);
-            // update the registration to map to a path
-            registration.addMappingForUrlPatterns(EnumSet.of(DispatcherType.REQUEST), true, "/*");
-            // servlet name mappings are disabled and will throw an exception
-        });
-
-        configureRoutes();
-
-        Spark.awaitInitialization();
-
-        AwsProxyRequest req = new AwsProxyRequestBuilder().method("GET").path("/header-filter").build();
-        AwsProxyResponse response = handler.proxy(req, new MockLambdaContext());
-
-        assertNotNull(response);
-        assertEquals(200, response.getStatusCode());
-        assertTrue(response.getMultiValueHeaders().containsKey(CustomHeaderFilter.HEADER_NAME));
-        assertEquals(CustomHeaderFilter.HEADER_VALUE, response.getMultiValueHeaders().getFirst(CustomHeaderFilter.HEADER_NAME));
-        assertEquals(RESPONSE_BODY_TEXT, response.getBody());
-
-    }
-
-    @Test
-    void filters_unauthenticatedFilter_stopRequestProcessing() {
-
-        SparkLambdaContainerHandler<AwsProxyRequest, AwsProxyResponse> handler = null;
-        try {
-            handler = SparkLambdaContainerHandler.getAwsProxyHandler();
-        } catch (ContainerInitializationException e) {
-            e.printStackTrace();
-            fail();
-        }
-
-        handler.onStartup(c -> {
-            if (c == null) {
-                fail();
-            }
-            FilterRegistration.Dynamic registration = c.addFilter("UnauthenticatedFilter", UnauthenticatedFilter.class);
-            // update the registration to map to a path
-            registration.addMappingForUrlPatterns(EnumSet.of(DispatcherType.REQUEST), true, "/unauth");
-            // servlet name mappings are disabled and will throw an exception
-        });
-
-        configureRoutes();
-        Spark.awaitInitialization();
-
-        // first we test without the custom header, we expect request processing to complete
-        // successfully
-        AwsProxyRequest req = new AwsProxyRequestBuilder().method("GET").path("/unauth").build();
-        AwsProxyResponse response = handler.proxy(req, new MockLambdaContext());
-
-        assertNotNull(response);
-        assertEquals(200, response.getStatusCode());
-        assertEquals(RESPONSE_BODY_TEXT, response.getBody());
-
-        // now we test with the custom header, this should stop request processing in the
-        // filter and return an unauthenticated response
-        AwsProxyRequest unauthReq = new AwsProxyRequestBuilder().method("GET").path("/unauth")
-                                          .header(UnauthenticatedFilter.HEADER_NAME, "1").build();
-        AwsProxyResponse unauthResp = handler.proxy(unauthReq, new MockLambdaContext());
-
-        assertNotNull(unauthResp);
-        assertEquals(UnauthenticatedFilter.RESPONSE_STATUS, unauthResp.getStatusCode());
-        assertEquals("", unauthResp.getBody());
-    }
-
-    @AfterAll
-    public static void stopSpark() {
-        Spark.stop();
-    }
-
-    private static void configureRoutes() {
-        get("/header-filter", (req, res) -> {
-            res.status(200);
-            return RESPONSE_BODY_TEXT;
-        });
-
-        get("/unauth", (req, res) -> {
-           res.status(200);
-           return RESPONSE_BODY_TEXT;
-        });
-    }
-}
diff --git a/aws-serverless-java-container-spark/src/test/java/com/amazonaws/serverless/proxy/spark/embeddedserver/LambdaEmbeddedServerTest.java b/aws-serverless-java-container-spark/src/test/java/com/amazonaws/serverless/proxy/spark/embeddedserver/LambdaEmbeddedServerTest.java
deleted file mode 100644
index 8cb34eae1..000000000
--- a/aws-serverless-java-container-spark/src/test/java/com/amazonaws/serverless/proxy/spark/embeddedserver/LambdaEmbeddedServerTest.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.amazonaws.serverless.proxy.spark.embeddedserver;
-
-
-import org.junit.jupiter.api.Test;
-
-import java.util.Optional;
-
-import static org.junit.jupiter.api.Assertions.fail;
-
-
-public class LambdaEmbeddedServerTest {
-    private static LambdaEmbeddedServer server = new LambdaEmbeddedServer(null, null, null, false);
-
-    @Test
-    void webSocket_configureWebSocket_noException() {
-        try {
-            server.configureWebSockets(null, Optional.of(0L));
-        } catch (Exception e) {
-            e.printStackTrace();
-            fail();
-        }
-    }
-}
diff --git a/aws-serverless-java-container-spark/src/test/java/com/amazonaws/serverless/proxy/spark/filter/CustomHeaderFilter.java b/aws-serverless-java-container-spark/src/test/java/com/amazonaws/serverless/proxy/spark/filter/CustomHeaderFilter.java
deleted file mode 100644
index 8f4bc99ac..000000000
--- a/aws-serverless-java-container-spark/src/test/java/com/amazonaws/serverless/proxy/spark/filter/CustomHeaderFilter.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package com.amazonaws.serverless.proxy.spark.filter;
-
-
-import jakarta.servlet.Filter;
-import jakarta.servlet.FilterChain;
-import jakarta.servlet.FilterConfig;
-import jakarta.servlet.ServletException;
-import jakarta.servlet.ServletRequest;
-import jakarta.servlet.ServletResponse;
-import jakarta.servlet.http.HttpServletResponse;
-
-import java.io.IOException;
-
-
-public class CustomHeaderFilter implements Filter {
-    public static final String HEADER_NAME = "X-Filter-Header";
-    public static final String HEADER_VALUE = "CustomHeaderFilter";
-
-    @Override
-    public void init(FilterConfig filterConfig) throws ServletException {
-
-    }
-
-    @Override
-    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
-        HttpServletResponse resp = (HttpServletResponse)servletResponse;
-        resp.addHeader(HEADER_NAME, HEADER_VALUE);
-
-        filterChain.doFilter(servletRequest, servletResponse);
-    }
-
-
-    @Override
-    public void destroy() {
-
-    }
-}
\ No newline at end of file
diff --git a/aws-serverless-java-container-spark/src/test/java/com/amazonaws/serverless/proxy/spark/filter/UnauthenticatedFilter.java b/aws-serverless-java-container-spark/src/test/java/com/amazonaws/serverless/proxy/spark/filter/UnauthenticatedFilter.java
deleted file mode 100644
index efa41a2d3..000000000
--- a/aws-serverless-java-container-spark/src/test/java/com/amazonaws/serverless/proxy/spark/filter/UnauthenticatedFilter.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package com.amazonaws.serverless.proxy.spark.filter;
-
-
-import jakarta.servlet.Filter;
-import jakarta.servlet.FilterChain;
-import jakarta.servlet.FilterConfig;
-import jakarta.servlet.ServletException;
-import jakarta.servlet.ServletRequest;
-import jakarta.servlet.ServletResponse;
-import jakarta.servlet.http.HttpServletRequest;
-import jakarta.servlet.http.HttpServletResponse;
-
-import java.io.IOException;
-
-
-public class UnauthenticatedFilter implements Filter {
-    public static final String HEADER_NAME = "X-Unauthenticated-Response";
-    public static final int RESPONSE_STATUS = 401;
-
-    @Override
-    public void init(FilterConfig filterConfig)
-            throws ServletException {
-
-    }
-
-
-    @Override
-    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)
-            throws IOException, ServletException {
-        if (((HttpServletRequest)servletRequest).getHeader(HEADER_NAME) != null) {
-            ((HttpServletResponse) servletResponse).setStatus(401);
-            return;
-        }
-        filterChain.doFilter(servletRequest, servletResponse);
-    }
-
-
-    @Override
-    public void destroy() {
-
-    }
-}
diff --git a/aws-serverless-spark-archetype/pom.xml b/aws-serverless-spark-archetype/pom.xml
deleted file mode 100644
index d0ce113fd..000000000
--- a/aws-serverless-spark-archetype/pom.xml
+++ /dev/null
@@ -1,81 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <parent>
-        <groupId>com.amazonaws.serverless</groupId>
-        <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.0.0-SNAPSHOT</version>
-    </parent>
-
-    <groupId>com.amazonaws.serverless.archetypes</groupId>
-    <artifactId>aws-serverless-spark-archetype</artifactId>
-    <version>2.0.0-SNAPSHOT</version>
-    <packaging>maven-archetype</packaging>
-
-    <scm>
-        <url>https://github.com/aws/serverless-java-container.git</url>
-      <tag>HEAD</tag>
-  </scm>
-
-    <licenses>
-        <license>
-            <name>The Apache Software License, Version 2.0</name>
-            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
-            <distribution>repo</distribution>
-        </license>
-    </licenses>
-
-    <build>
-        <resources>
-            <resource>
-                <directory>src/main/resources</directory>
-                <filtering>true</filtering>
-                <includes>
-                    <include>archetype-resources/pom.xml</include>
-                    <include>archetype-resources/README.md</include>
-                </includes>
-            </resource>
-            <resource>
-                <directory>src/main/resources</directory>
-                <filtering>false</filtering>
-                <excludes>
-                    <exclude>archetype-resources/pom.xml</exclude>
-                </excludes>
-            </resource>
-        </resources>
-
-        <extensions>
-            <extension>
-                <groupId>org.apache.maven.archetype</groupId>
-                <artifactId>archetype-packaging</artifactId>
-                <version>3.0.1</version>
-            </extension>
-        </extensions>
-
-        <pluginManagement>
-            <plugins>
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-resources-plugin</artifactId>
-                    <version>3.1.0</version>
-                    <configuration>
-                        <escapeString>\</escapeString>
-                    </configuration>
-                </plugin>
-
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-archetype-plugin</artifactId>
-                    <version>3.0.1</version>
-                    <executions>
-                        <execution>
-                            <goals>
-                                <goal>integration-test</goal>
-                            </goals>
-                        </execution>
-                    </executions>
-                </plugin>
-            </plugins>
-        </pluginManagement>
-    </build>
-</project>
diff --git a/aws-serverless-spark-archetype/src/main/resources/META-INF/maven/archetype-metadata.xml b/aws-serverless-spark-archetype/src/main/resources/META-INF/maven/archetype-metadata.xml
deleted file mode 100644
index 2ea9dca13..000000000
--- a/aws-serverless-spark-archetype/src/main/resources/META-INF/maven/archetype-metadata.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<archetype-descriptor name="aws-serverless-spark-archetype"
-                      xmlns="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0"
-                      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-                      xsi:schemaLocation="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0 http://maven.apache.org/xsd/archetype-descriptor-1.0.0.xsd">
-    <fileSets>
-        <fileSet filtered="true" packaged="true">
-            <directory>src/main/java</directory>
-            <includes>
-                <include>**/*.java</include>
-            </includes>
-        </fileSet>
-        <fileSet filtered="true" packaged="true">
-            <directory>src/test/java</directory>
-            <includes>
-                <include>**/*.java</include>
-            </includes>
-        </fileSet>
-        <fileSet>
-            <directory>src/assembly</directory>
-            <includes>
-                <include>*</include>
-            </includes>
-        </fileSet>
-        <fileSet filtered="true">
-            <directory></directory>
-            <includes>
-                <include>template.yml</include>
-                <include>README.md</include>
-                <include>build.gradle</include>
-            </includes>
-        </fileSet>
-    </fileSets>
-</archetype-descriptor>
\ No newline at end of file
diff --git a/aws-serverless-spark-archetype/src/main/resources/archetype-resources/README.md b/aws-serverless-spark-archetype/src/main/resources/archetype-resources/README.md
deleted file mode 100644
index 311c40aee..000000000
--- a/aws-serverless-spark-archetype/src/main/resources/archetype-resources/README.md
+++ /dev/null
@@ -1,99 +0,0 @@
-#set($resourceName = $artifactId)
-#macro(replaceChar $originalName, $char)
-  #if($originalName.contains($char))
-    #set($tokens = $originalName.split($char))
-    #set($newResourceName = "")
-    #foreach($token in $tokens)
-       #set($newResourceName = $newResourceName + $token.substring(0,1).toUpperCase() + $token.substring(1).toLowerCase())
-    #end
-    ${newResourceName}
-  #else
-    #set($newResourceName = $originalName.substring(0,1).toUpperCase() + $originalName.substring(1))
-    ${newResourceName}
-  #end
-#end
-#set($resourceName = "#replaceChar($resourceName, '-')")
-#set($resourceName = "#replaceChar($resourceName, '.')")
-#set($resourceName = $resourceName.replaceAll("\n", "").trim())
-# \${artifactId} serverless API
-The \${artifactId} project, created with [`aws-serverless-java-container`](https://github.com/aws/serverless-java-container).
-
-The starter project defines a simple `/ping` resource that can accept `GET` requests with its tests.
-
-The project folder also includes a `template.yml` file. You can use this [SAM](https://github.com/awslabs/serverless-application-model) file to deploy the project to AWS Lambda and Amazon API Gateway or test in local with the [SAM CLI](https://github.com/awslabs/aws-sam-cli). 
-
-#[[##]]# Pre-requisites
-* [AWS CLI](https://aws.amazon.com/cli/)
-* [SAM CLI](https://github.com/awslabs/aws-sam-cli)
-* [Gradle](https://gradle.org/) or [Maven](https://maven.apache.org/)
-
-#[[##]]# Building the project
-You can use the SAM CLI to quickly build the project
-```bash
-$ mvn archetype:generate -DartifactId=\${artifactId} -DarchetypeGroupId=com.amazonaws.serverless.archetypes -DarchetypeArtifactId=aws-serverless-jersey-archetype -DarchetypeVersion=${project.version} -DgroupId=\${groupId} -Dversion=\${version} -Dinteractive=false
-$ cd \${artifactId}
-$ sam build
-Building resource '\${resourceName}Function'
-Running JavaGradleWorkflow:GradleBuild
-Running JavaGradleWorkflow:CopyArtifacts
-
-Build Succeeded
-
-Built Artifacts  : .aws-sam/build
-Built Template   : .aws-sam/build/template.yaml
-
-Commands you can use next
-=========================
-[*] Invoke Function: sam local invoke
-[*] Deploy: sam deploy --guided
-```
-
-#[[##]]# Testing locally with the SAM CLI
-
-From the project root folder - where the `template.yml` file is located - start the API with the SAM CLI.
-
-```bash
-$ sam local start-api
-
-...
-Mounting ${groupId}.StreamLambdaHandler::handleRequest (java11) at http://127.0.0.1:3000/{proxy+} [OPTIONS GET HEAD POST PUT DELETE PATCH]
-...
-```
-
-Using a new shell, you can send a test ping request to your API:
-
-```bash
-$ curl -s http://127.0.0.1:3000/ping | python -m json.tool
-
-{
-    "pong": "Hello, World!"
-}
-``` 
-
-#[[##]]# Deploying to AWS
-To deploy the application in your AWS account, you can use the SAM CLI's guided deployment process and follow the instructions on the screen
-
-```
-$ sam deploy --guided
-```
-
-Once the deployment is completed, the SAM CLI will print out the stack's outputs, including the new application URL. You can use `curl` or a web browser to make a call to the URL
-
-```
-...
--------------------------------------------------------------------------------------------------------------
-OutputKey-Description                        OutputValue
--------------------------------------------------------------------------------------------------------------
-\${resourceName}Api - URL for application            https://xxxxxxxxxx.execute-api.us-west-2.amazonaws.com/Prod/pets
--------------------------------------------------------------------------------------------------------------
-```
-
-Copy the `OutputValue` into a browser or use curl to test your first request:
-
-```bash
-$ curl -s https://xxxxxxx.execute-api.us-west-2.amazonaws.com/Prod/ping | python -m json.tool
-
-{
-    "pong": "Hello, World!"
-}
-```
diff --git a/aws-serverless-spark-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-spark-archetype/src/main/resources/archetype-resources/build.gradle
deleted file mode 100644
index 781e31234..000000000
--- a/aws-serverless-spark-archetype/src/main/resources/archetype-resources/build.gradle
+++ /dev/null
@@ -1,40 +0,0 @@
-apply plugin: 'java'
-
-repositories {
-  mavenLocal()
-  mavenCentral()
-}
-
-dependencies {
-  implementation (
-          'com.sparkjava:spark-core:2.9.4',
-          'com.amazonaws.serverless:aws-serverless-java-container-spark:[1.0,)',
-          'com.fasterxml.jackson.core:jackson-databind:2.16.1',
-  )
-
-  testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
-  testImplementation("org.apache.httpcomponents.client5:httpclient5:5.2.1")
-  testImplementation(platform("org.junit:junit-bom:5.10.1"))
-  testImplementation("org.junit.jupiter:junit-jupiter")
-}
-
-task buildZip(type: Zip) {
-  from compileJava
-  from processResources
-  into('lib') {
-    from(configurations.compileClasspath) {
-      exclude 'jetty-http*'
-      exclude 'jetty-client*'
-      exclude 'jetty-webapp*'
-      exclude 'jetty-xml*'
-      exclude 'jetty-io*'
-      exclude 'websocket*'
-    }
-  }
-}
-
-test {
-  useJUnitPlatform()
-}
-
-build.dependsOn buildZip
diff --git a/aws-serverless-spark-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-spark-archetype/src/main/resources/archetype-resources/pom.xml
deleted file mode 100644
index 1151dd29d..000000000
--- a/aws-serverless-spark-archetype/src/main/resources/archetype-resources/pom.xml
+++ /dev/null
@@ -1,186 +0,0 @@
-#set($dollar = '$')
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <groupId>\${groupId}</groupId>
-    <artifactId>\${artifactId}</artifactId>
-    <version>\${version}</version>
-    <packaging>jar</packaging>
-
-    <name>Serverless Spark API</name>
-    <url>https://github.com/aws/serverless-java-container</url>
-
-    <properties>
-        <maven.compiler.source>1.8</maven.compiler.source>
-        <maven.compiler.target>1.8</maven.compiler.target>
-        <jackson.version>2.16.1</jackson.version>
-        <spark.version>2.9.4</spark.version>
-        <junit.version>5.10.1</junit.version>
-    </properties>
-
-    <dependencies>
-        <dependency>
-            <groupId>com.amazonaws.serverless</groupId>
-            <artifactId>aws-serverless-java-container-spark</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>com.amazonaws.serverless</groupId>
-            <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>${project.version}</version>
-            <classifier>tests</classifier>
-            <type>test-jar</type>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.httpcomponents.client5</groupId>
-            <artifactId>httpclient5</artifactId>
-            <version>5.2.1</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>com.sparkjava</groupId>
-            <artifactId>spark-core</artifactId>
-            <version>\${spark.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>com.fasterxml.jackson.core</groupId>
-            <artifactId>jackson-databind</artifactId>
-            <version>\${jackson.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.junit.jupiter</groupId>
-            <artifactId>junit-jupiter</artifactId>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-
-    <dependencyManagement>
-        <dependencies>
-            <dependency>
-                <groupId>org.junit</groupId>
-                <artifactId>junit-bom</artifactId>
-                <version>${junit.version}</version>
-                <scope>import</scope>
-                <type>pom</type>
-            </dependency>
-        </dependencies>
-    </dependencyManagement>
-
-    <profiles>
-        <profile>
-            <id>shaded-jar</id>
-            <build>
-                <plugins>
-                    <plugin>
-                        <groupId>org.apache.maven.plugins</groupId>
-                        <artifactId>maven-shade-plugin</artifactId>
-                        <version>3.2.4</version>
-                        <configuration>
-                            <createDependencyReducedPom>false</createDependencyReducedPom>
-                        </configuration>
-                        <executions>
-                            <execution>
-                                <phase>package</phase>
-                                <goals>
-                                    <goal>shade</goal>
-                                </goals>
-                                <configuration>
-                                    <artifactSet>
-                                        <excludes>
-                                            <!-- We exclude lots of Jetty stuff since we won't be running
-                                                 the HTTP server. Our primary goal is to reduce the size
-                                                 of the deployment package -->
-                                            <exclude>org.eclipse.jetty.websocket:*</exclude>
-                                            <exclude>org.eclipse.jetty:jetty-http</exclude>
-                                            <exclude>org.eclipse.jetty:jetty-client</exclude>
-                                            <exclude>org.eclipse.jetty:jetty-webapp</exclude>
-                                            <exclude>org.eclipse.jetty:jetty-xml</exclude>
-                                            <exclude>org.eclipse.jetty:jetty-io</exclude>
-                                        </excludes>
-                                    </artifactSet>
-                                </configuration>
-                            </execution>
-                        </executions>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-        <profile>
-            <id>assembly-zip</id>
-            <activation>
-                <activeByDefault>true</activeByDefault>
-            </activation>
-            <build>
-                <plugins>
-                    <!-- don't build a jar, we'll use the classes dir -->
-                    <plugin>
-                        <groupId>org.apache.maven.plugins</groupId>
-                        <artifactId>maven-jar-plugin</artifactId>
-                        <version>3.2.0</version>
-                        <executions>
-                            <execution>
-                                <id>default-jar</id>
-                                <phase>none</phase>
-                            </execution>
-                        </executions>
-                    </plugin>
-                    <plugin>
-                        <groupId>org.apache.maven.plugins</groupId>
-                        <artifactId>maven-install-plugin</artifactId>
-                        <version>3.1.1</version>
-                        <configuration>
-                            <skip>true</skip>
-                        </configuration>
-                    </plugin>
-                    <!-- select and copy only runtime dependencies to a temporary lib folder -->
-                    <plugin>
-                        <groupId>org.apache.maven.plugins</groupId>
-                        <artifactId>maven-dependency-plugin</artifactId>
-                        <version>3.6.1</version>
-                        <executions>
-                            <execution>
-                                <id>copy-dependencies</id>
-                                <phase>package</phase>
-                                <goals>
-                                    <goal>copy-dependencies</goal>
-                                </goals>
-                                <configuration>
-                                    <outputDirectory>${dollar}{project.build.directory}${dollar}{file.separator}lib</outputDirectory>
-                                    <includeScope>runtime</includeScope>
-                                </configuration>
-                            </execution>
-                        </executions>
-                    </plugin>
-                    <plugin>
-                        <groupId>org.apache.maven.plugins</groupId>
-                        <artifactId>maven-assembly-plugin</artifactId>
-                        <version>3.3.0</version>
-                        <executions>
-                            <execution>
-                                <id>zip-assembly</id>
-                                <phase>package</phase>
-                                <goals>
-                                    <goal>single</goal>
-                                </goals>
-                                <configuration>
-                                    <finalName>${dollar}{project.artifactId}-${dollar}{project.version}</finalName>
-                                    <descriptors>
-                                        <descriptor>src${dollar}{file.separator}assembly${dollar}{file.separator}bin.xml</descriptor>
-                                    </descriptors>
-                                    <attach>false</attach>
-                                </configuration>
-                            </execution>
-                        </executions>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-    </profiles>
-</project>
diff --git a/aws-serverless-spark-archetype/src/main/resources/archetype-resources/src/assembly/bin.xml b/aws-serverless-spark-archetype/src/main/resources/archetype-resources/src/assembly/bin.xml
deleted file mode 100644
index fcb935036..000000000
--- a/aws-serverless-spark-archetype/src/main/resources/archetype-resources/src/assembly/bin.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.0.0"
-          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.0.0 http://maven.apache.org/xsd/assembly-2.0.0.xsd">
-    <id>lambda-package</id>
-    <formats>
-        <format>zip</format>
-    </formats>
-    <includeBaseDirectory>false</includeBaseDirectory>
-    <fileSets>
-        <!-- copy runtime dependencies with some exclusions -->
-        <fileSet>
-            <directory>${project.build.directory}${file.separator}lib</directory>
-            <excludes>
-                <exclude>websocket*</exclude>
-                <exclude>jetty-http*</exclude>
-                <exclude>jetty-client*</exclude>
-                <exclude>jetty-webapp*</exclude>
-                <exclude>jetty-xml*</exclude>
-                <exclude>jetty-io*</exclude>
-            </excludes>
-            <outputDirectory>lib</outputDirectory>
-        </fileSet>
-        <!-- copy all classes -->
-        <fileSet>
-            <directory>${project.build.directory}${file.separator}classes</directory>
-            <includes>
-                <include>**</include>
-            </includes>
-            <outputDirectory>${file.separator}</outputDirectory>
-        </fileSet>
-    </fileSets>
-</assembly>
\ No newline at end of file
diff --git a/aws-serverless-spark-archetype/src/main/resources/archetype-resources/src/main/java/SparkResources.java b/aws-serverless-spark-archetype/src/main/resources/archetype-resources/src/main/java/SparkResources.java
deleted file mode 100644
index bc55eb43d..000000000
--- a/aws-serverless-spark-archetype/src/main/resources/archetype-resources/src/main/java/SparkResources.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package ${groupId};
-
-
-import java.util.HashMap;
-import java.util.Map;
-
-import static spark.Spark.before;
-import static spark.Spark.get;
-
-import ${groupId}.util.JsonTransformer;
-
-
-public class SparkResources {
-
-    public static void defineResources() {
-        before((request, response) -> response.type("application/json"));
-
-        get("/ping", (req, res) -> {
-            Map<String, String> pong = new HashMap<>();
-            pong.put("pong", "Hello, World!");
-            res.status(200);
-            return pong;
-        }, new JsonTransformer());
-    }
-}
\ No newline at end of file
diff --git a/aws-serverless-spark-archetype/src/main/resources/archetype-resources/src/main/java/StreamLambdaHandler.java b/aws-serverless-spark-archetype/src/main/resources/archetype-resources/src/main/java/StreamLambdaHandler.java
deleted file mode 100644
index fdd1409a5..000000000
--- a/aws-serverless-spark-archetype/src/main/resources/archetype-resources/src/main/java/StreamLambdaHandler.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package ${groupId};
-
-
-import com.amazonaws.serverless.exceptions.ContainerInitializationException;
-import com.amazonaws.serverless.proxy.model.AwsProxyRequest;
-import com.amazonaws.serverless.proxy.model.AwsProxyResponse;
-import com.amazonaws.serverless.proxy.spark.SparkLambdaContainerHandler;
-import com.amazonaws.services.lambda.runtime.Context;
-import com.amazonaws.services.lambda.runtime.RequestStreamHandler;
-
-import spark.Spark;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-
-
-public class StreamLambdaHandler implements RequestStreamHandler {
-    private static SparkLambdaContainerHandler<AwsProxyRequest, AwsProxyResponse> handler;
-    static {
-        try {
-            handler = SparkLambdaContainerHandler.getAwsProxyHandler();
-            SparkResources.defineResources();
-            Spark.awaitInitialization();
-        } catch (ContainerInitializationException e) {
-            // if we fail here. We re-throw the exception to force another cold start
-            e.printStackTrace();
-            throw new RuntimeException("Could not initialize Spark container", e);
-        }
-    }
-
-    @Override
-    public void handleRequest(InputStream inputStream, OutputStream outputStream, Context context)
-            throws IOException {
-        handler.proxyStream(inputStream, outputStream, context);
-    }
-}
diff --git a/aws-serverless-spark-archetype/src/main/resources/archetype-resources/src/main/java/util/JsonTransformer.java b/aws-serverless-spark-archetype/src/main/resources/archetype-resources/src/main/java/util/JsonTransformer.java
deleted file mode 100644
index 8df085ea1..000000000
--- a/aws-serverless-spark-archetype/src/main/resources/archetype-resources/src/main/java/util/JsonTransformer.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package ${groupId}.util;
-
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import spark.ResponseTransformer;
-
-public class JsonTransformer implements ResponseTransformer {
-
-    private ObjectMapper mapper = new ObjectMapper();
-    private Logger log = LoggerFactory.getLogger(JsonTransformer.class);
-
-    @Override
-    public String render(Object model) {
-        try {
-            return mapper.writeValueAsString(model);
-        } catch (JsonProcessingException e) {
-            log.error("Cannot serialize object", e);
-            return null;
-        }
-    }
-
-}
\ No newline at end of file
diff --git a/aws-serverless-spark-archetype/src/main/resources/archetype-resources/src/test/java/StreamLambdaHandlerTest.java b/aws-serverless-spark-archetype/src/main/resources/archetype-resources/src/test/java/StreamLambdaHandlerTest.java
deleted file mode 100644
index 26d5360bf..000000000
--- a/aws-serverless-spark-archetype/src/main/resources/archetype-resources/src/test/java/StreamLambdaHandlerTest.java
+++ /dev/null
@@ -1,89 +0,0 @@
-package ${groupId};
-
-
-import com.amazonaws.serverless.proxy.internal.LambdaContainerHandler;
-import com.amazonaws.serverless.proxy.internal.testutils.AwsProxyRequestBuilder;
-import com.amazonaws.serverless.proxy.internal.testutils.MockLambdaContext;
-import com.amazonaws.serverless.proxy.model.AwsProxyResponse;
-import com.amazonaws.services.lambda.runtime.Context;
-
-import org.junit.jupiter.api.BeforeAll;
-import org.junit.jupiter.api.Test;
-
-import jakarta.ws.rs.HttpMethod;
-import jakarta.ws.rs.core.HttpHeaders;
-import jakarta.ws.rs.core.MediaType;
-import jakarta.ws.rs.core.Response;
-
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-public class StreamLambdaHandlerTest {
-
-    private static StreamLambdaHandler handler;
-    private static Context lambdaContext;
-
-    @BeforeAll
-    public static void setUp() {
-        handler = new StreamLambdaHandler();
-        lambdaContext = new MockLambdaContext();
-    }
-
-    @Test
-    public void ping_streamRequest_respondsWithHello() {
-        InputStream requestStream = new AwsProxyRequestBuilder("/ping", HttpMethod.GET)
-                                            .header(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON)
-                                            .buildStream();
-        ByteArrayOutputStream responseStream = new ByteArrayOutputStream();
-
-        handle(requestStream, responseStream);
-
-        AwsProxyResponse response = readResponse(responseStream);
-        assertNotNull(response);
-        assertEquals(Response.Status.OK.getStatusCode(), response.getStatusCode());
-
-        assertFalse(response.isBase64Encoded());
-
-        assertTrue(response.getBody().contains("pong"));
-        assertTrue(response.getBody().contains("Hello, World!"));
-
-        assertTrue(response.getMultiValueHeaders().containsKey(HttpHeaders.CONTENT_TYPE));
-        assertTrue(response.getMultiValueHeaders().getFirst(HttpHeaders.CONTENT_TYPE).startsWith(MediaType.APPLICATION_JSON));
-    }
-
-    @Test
-    public void invalidResource_streamRequest_responds404() {
-        InputStream requestStream = new AwsProxyRequestBuilder("/pong", HttpMethod.GET)
-                                            .header(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON)
-                                            .buildStream();
-        ByteArrayOutputStream responseStream = new ByteArrayOutputStream();
-
-        handle(requestStream, responseStream);
-
-        AwsProxyResponse response = readResponse(responseStream);
-        assertNotNull(response);
-        assertEquals(Response.Status.NOT_FOUND.getStatusCode(), response.getStatusCode());
-    }
-
-    private void handle(InputStream is, ByteArrayOutputStream os) {
-        try {
-            handler.handleRequest(is, os, lambdaContext);
-        } catch (IOException e) {
-            e.printStackTrace();
-            fail(e.getMessage());
-        }
-    }
-
-    private AwsProxyResponse readResponse(ByteArrayOutputStream responseStream) {
-        try {
-            return LambdaContainerHandler.getObjectMapper().readValue(responseStream.toByteArray(), AwsProxyResponse.class);
-        } catch (IOException e) {
-            e.printStackTrace();
-            fail("Error while parsing response: " + e.getMessage());
-        }
-        return null;
-    }
-}
diff --git a/aws-serverless-spark-archetype/src/main/resources/archetype-resources/template.yml b/aws-serverless-spark-archetype/src/main/resources/archetype-resources/template.yml
deleted file mode 100644
index d45c9923b..000000000
--- a/aws-serverless-spark-archetype/src/main/resources/archetype-resources/template.yml
+++ /dev/null
@@ -1,52 +0,0 @@
-#set($resourceName = $artifactId)
-#macro(replaceChar $originalName, $char)
-  #if($originalName.contains($char))
-    #set($tokens = $originalName.split($char))
-    #set($newResourceName = "")
-    #foreach($token in $tokens)
-       #set($newResourceName = $newResourceName + $token.substring(0,1).toUpperCase() + $token.substring(1).toLowerCase())
-    #end
-    ${newResourceName}
-  #else
-    #set($newResourceName = $originalName.substring(0,1).toUpperCase() + $originalName.substring(1))
-    ${newResourceName}
-  #end
-#end
-#set($resourceName = "#replaceChar($resourceName, '-')")
-#set($resourceName = "#replaceChar($resourceName, '.')")
-#set($resourceName = $resourceName.replaceAll("\n", "").trim())
-#macro(regionVar)
-  AWS::Region
-#end
-#set($awsRegion = "#regionVar()")
-#set($awsRegion = $awsRegion.replaceAll("\n", "").trim())
-AWSTemplateFormatVersion: '2010-09-09'
-Transform: AWS::Serverless-2016-10-31
-Description: AWS Serverless Spark API - ${groupId}::${artifactId}
-Globals:
-  Api:
-    EndpointConfiguration: REGIONAL
-
-Resources:
-  ${resourceName}Function:
-    Type: AWS::Serverless::Function
-    Properties:
-      Handler: ${groupId}.StreamLambdaHandler::handleRequest
-      Runtime: java11
-      CodeUri: .
-      MemorySize: 512
-      Policies: AWSLambdaBasicExecutionRole
-      Timeout: 15
-      Events:
-        ProxyResource:
-          Type: Api
-          Properties:
-            Path: /{proxy+}
-            Method: any
-
-Outputs:
-  ${resourceName}Api:
-    Description: URL for application
-    Value: !Sub 'https://${ServerlessRestApi}.execute-api.${${awsRegion}}.amazonaws.com/Prod/ping'
-    Export:
-      Name: ${resourceName}Api
diff --git a/aws-serverless-spark-archetype/src/test/resources/projects/base/archetype.properties b/aws-serverless-spark-archetype/src/test/resources/projects/base/archetype.properties
deleted file mode 100644
index 33825ed03..000000000
--- a/aws-serverless-spark-archetype/src/test/resources/projects/base/archetype.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-groupId=test.service
-artifactId=spark-archetype-test
-version=1.0-SNAPSHOT
diff --git a/aws-serverless-spark-archetype/src/test/resources/projects/base/goal.txt b/aws-serverless-spark-archetype/src/test/resources/projects/base/goal.txt
deleted file mode 100644
index 597acc768..000000000
--- a/aws-serverless-spark-archetype/src/test/resources/projects/base/goal.txt
+++ /dev/null
@@ -1 +0,0 @@
-package
\ No newline at end of file
diff --git a/samples/spark/pet-store/README.md b/samples/spark/pet-store/README.md
deleted file mode 100644
index 2bfec99de..000000000
--- a/samples/spark/pet-store/README.md
+++ /dev/null
@@ -1,36 +0,0 @@
-# Serverless Spark example
-A basic pet store written with the [Spark framework](http://sparkjava.com/). The `StreamLambdaHandler` object is the main entry point for Lambda.
-
-The application can be deployed in an AWS account using the [Serverless Application Model](https://github.com/awslabs/serverless-application-model). The `template.yml` file in the root folder contains the application definition.
-
-## Pre-requisites
-* [AWS CLI](https://aws.amazon.com/cli/)
-* [SAM CLI](https://github.com/awslabs/aws-sam-cli)
-* [Gradle](https://gradle.org/) or [Maven](https://maven.apache.org/)
-
-## Deployment
-In a shell, navigate to the sample's folder and use the SAM CLI to build a deployable package
-```
-$ sam build
-```
-
-This command compiles the application and prepares a deployment package in the `.aws-sam` sub-directory.
-
-To deploy the application in your AWS account, you can use the SAM CLI's guided deployment process and follow the instructions on the screen
-
-```
-$ sam deploy --guided
-```
-
-Once the deployment is completed, the SAM CLI will print out the stack's outputs, including the new application URL. You can use `curl` or a web browser to make a call to the URL
-
-```
-...
----------------------------------------------------------------------------------------------------------
-OutputKey-Description                        OutputValue
----------------------------------------------------------------------------------------------------------
-PetStoreApi - URL for application            https://xxxxxxxxxx.execute-api.us-west-2.amazonaws.com/pets
----------------------------------------------------------------------------------------------------------
-
-$ curl https://xxxxxxxxxx.execute-api.us-west-2.amazonaws.com/pets
-```
\ No newline at end of file
diff --git a/samples/spark/pet-store/build.gradle b/samples/spark/pet-store/build.gradle
deleted file mode 100644
index 9e37febd0..000000000
--- a/samples/spark/pet-store/build.gradle
+++ /dev/null
@@ -1,31 +0,0 @@
-apply plugin: 'java'
-
-repositories {
-  mavenLocal()
-  mavenCentral()
-}
-
-dependencies {
-  implementation (
-          'com.sparkjava:spark-core:2.9.4',
-          'com.amazonaws.serverless:aws-serverless-java-container-spark:[1.0,)',
-          'com.fasterxml.jackson.core:jackson-databind:2.16.1',
-  )
-}
-
-task buildZip(type: Zip) {
-  from compileJava
-  from processResources
-  into('lib') {
-    from(configurations.compileClasspath) {
-      exclude 'jetty-http*'
-      exclude 'jetty-client*'
-      exclude 'jetty-webapp*'
-      exclude 'jetty-xml*'
-      exclude 'jetty-io*'
-      exclude 'websocket*'
-    }
-  }
-}
-
-build.dependsOn buildZip
diff --git a/samples/spark/pet-store/pom.xml b/samples/spark/pet-store/pom.xml
deleted file mode 100644
index f1dee6372..000000000
--- a/samples/spark/pet-store/pom.xml
+++ /dev/null
@@ -1,164 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <groupId>com.amazonaws.serverless.sample</groupId>
-    <artifactId>serverless-spark-example</artifactId>
-    <version>1.0-SNAPSHOT</version>
-    <name>Spark example for the aws-serverless-java-container library</name>
-    <description>Simple pet store written with the Spark framework</description>
-    <url>https://aws.amazon.com/lambda/</url>
-
-    <scm>
-        <url>https://github.com/aws/serverless-java-container.git</url>
-    </scm>
-
-    <licenses>
-        <license>
-            <name>The Apache Software License, Version 2.0</name>
-            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
-            <distribution>repo</distribution>
-        </license>
-    </licenses>
-
-    <properties>
-        <maven.compiler.source>1.8</maven.compiler.source>
-        <maven.compiler.target>1.8</maven.compiler.target>
-        <jackson.version>2.16.1</jackson.version>
-        <spark.version>2.9.1</spark.version>
-    </properties>
-
-    <dependencies>
-        <dependency>
-            <groupId>com.amazonaws.serverless</groupId>
-            <artifactId>aws-serverless-java-container-spark</artifactId>
-            <version>[1.6,)</version>
-        </dependency>
-
-        <dependency>
-            <groupId>com.sparkjava</groupId>
-            <artifactId>spark-core</artifactId>
-            <version>${spark.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>com.fasterxml.jackson.core</groupId>
-            <artifactId>jackson-databind</artifactId>
-            <version>${jackson.version}</version>
-        </dependency>
-    </dependencies>
-
-    <profiles>
-        <profile>
-            <id>shaded-jar</id>
-            <build>
-                <plugins>
-                    <plugin>
-                        <groupId>org.apache.maven.plugins</groupId>
-                        <artifactId>maven-shade-plugin</artifactId>
-                        <version>3.2.4</version>
-                        <configuration>
-                            <createDependencyReducedPom>false</createDependencyReducedPom>
-                        </configuration>
-                        <executions>
-                            <execution>
-                                <phase>package</phase>
-                                <goals>
-                                    <goal>shade</goal>
-                                </goals>
-                                <configuration>
-                                    <artifactSet>
-                                        <excludes>
-                                            <!-- We exclude lots of Jetty stuff since we won't be running
-                                                 the HTTP server. Our primary goal is to reduce the size
-                                                 of the deployment package -->
-                                            <exclude>org.eclipse.jetty.websocket:*</exclude>
-                                            <exclude>org.eclipse.jetty:jetty-http</exclude>
-                                            <exclude>org.eclipse.jetty:jetty-client</exclude>
-                                            <exclude>org.eclipse.jetty:jetty-webapp</exclude>
-                                            <exclude>org.eclipse.jetty:jetty-xml</exclude>
-                                            <exclude>org.eclipse.jetty:jetty-io</exclude>
-                                        </excludes>
-                                    </artifactSet>
-                                </configuration>
-                            </execution>
-                        </executions>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-        <profile>
-            <id>assembly-zip</id>
-            <activation>
-                <activeByDefault>true</activeByDefault>
-            </activation>
-            <build>
-                <plugins>
-                    <!-- don't build a jar, we'll use the classes dir -->
-                    <plugin>
-                        <groupId>org.apache.maven.plugins</groupId>
-                        <artifactId>maven-jar-plugin</artifactId>
-                        <version>3.2.0</version>
-                        <executions>
-                            <execution>
-                                <id>default-jar</id>
-                                <phase>none</phase>
-                            </execution>
-                        </executions>
-                    </plugin>
-                    <plugin>
-                        <groupId>org.apache.maven.plugins</groupId>
-                        <artifactId>maven-install-plugin</artifactId>
-                        <version>3.1.1</version>
-                        <configuration>
-                            <skip>true</skip>
-                        </configuration>
-                    </plugin>
-                    <!-- select and copy only runtime dependencies to a temporary lib folder -->
-                    <plugin>
-                        <groupId>org.apache.maven.plugins</groupId>
-                        <artifactId>maven-dependency-plugin</artifactId>
-                        <version>3.6.1</version>
-                        <executions>
-                            <execution>
-                                <id>copy-dependencies</id>
-                                <phase>package</phase>
-                                <goals>
-                                    <goal>copy-dependencies</goal>
-                                </goals>
-                                <configuration>
-                                    <outputDirectory>${project.build.directory}/lib</outputDirectory>
-                                    <includeScope>runtime</includeScope>
-                                </configuration>
-                            </execution>
-                        </executions>
-                    </plugin>
-                    <plugin>
-                        <groupId>org.apache.maven.plugins</groupId>
-                        <artifactId>maven-assembly-plugin</artifactId>
-                        <version>3.6.0</version>
-                        <executions>
-                            <execution>
-                                <id>zip-assembly</id>
-                                <phase>package</phase>
-                                <goals>
-                                    <goal>single</goal>
-                                </goals>
-                                <configuration>
-                                    <finalName>${project.artifactId}-${project.version}</finalName>
-                                    <descriptors>
-                                        <descriptor>src${file.separator}assembly${file.separator}bin.xml</descriptor>
-                                    </descriptors>
-                                    <attach>false</attach>
-                                </configuration>
-                            </execution>
-                        </executions>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-    </profiles>
-
-</project>
diff --git a/samples/spark/pet-store/src/assembly/bin.xml b/samples/spark/pet-store/src/assembly/bin.xml
deleted file mode 100644
index fcb935036..000000000
--- a/samples/spark/pet-store/src/assembly/bin.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.0.0"
-          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.0.0 http://maven.apache.org/xsd/assembly-2.0.0.xsd">
-    <id>lambda-package</id>
-    <formats>
-        <format>zip</format>
-    </formats>
-    <includeBaseDirectory>false</includeBaseDirectory>
-    <fileSets>
-        <!-- copy runtime dependencies with some exclusions -->
-        <fileSet>
-            <directory>${project.build.directory}${file.separator}lib</directory>
-            <excludes>
-                <exclude>websocket*</exclude>
-                <exclude>jetty-http*</exclude>
-                <exclude>jetty-client*</exclude>
-                <exclude>jetty-webapp*</exclude>
-                <exclude>jetty-xml*</exclude>
-                <exclude>jetty-io*</exclude>
-            </excludes>
-            <outputDirectory>lib</outputDirectory>
-        </fileSet>
-        <!-- copy all classes -->
-        <fileSet>
-            <directory>${project.build.directory}${file.separator}classes</directory>
-            <includes>
-                <include>**</include>
-            </includes>
-            <outputDirectory>${file.separator}</outputDirectory>
-        </fileSet>
-    </fileSets>
-</assembly>
\ No newline at end of file
diff --git a/samples/spark/pet-store/src/main/java/com/amazonaws/serverless/sample/spark/JsonTransformer.java b/samples/spark/pet-store/src/main/java/com/amazonaws/serverless/sample/spark/JsonTransformer.java
deleted file mode 100644
index bc1692afd..000000000
--- a/samples/spark/pet-store/src/main/java/com/amazonaws/serverless/sample/spark/JsonTransformer.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright 2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance
- * with the License. A copy of the License is located at
- *
- * http://aws.amazon.com/apache2.0/
- *
- * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES
- * OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
- * and limitations under the License.
- */
-package com.amazonaws.serverless.sample.spark;
-
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import spark.ResponseTransformer;
-
-public class JsonTransformer implements ResponseTransformer {
-
-    private ObjectMapper mapper = new ObjectMapper();
-    private Logger log = LoggerFactory.getLogger(JsonTransformer.class);
-
-    @Override
-    public String render(Object model) {
-        try {
-            return mapper.writeValueAsString(model);
-        } catch (JsonProcessingException e) {
-            log.error("Cannot serialize object", e);
-            return null;
-        }
-    }
-
-}
\ No newline at end of file
diff --git a/samples/spark/pet-store/src/main/java/com/amazonaws/serverless/sample/spark/SparkResources.java b/samples/spark/pet-store/src/main/java/com/amazonaws/serverless/sample/spark/SparkResources.java
deleted file mode 100644
index 4794b7aec..000000000
--- a/samples/spark/pet-store/src/main/java/com/amazonaws/serverless/sample/spark/SparkResources.java
+++ /dev/null
@@ -1,66 +0,0 @@
-package com.amazonaws.serverless.sample.spark;
-
-
-import com.amazonaws.serverless.proxy.internal.LambdaContainerHandler;
-import com.amazonaws.serverless.sample.spark.model.Pet;
-import com.amazonaws.serverless.sample.spark.model.PetData;
-
-import jakarta.ws.rs.core.Response;
-
-import java.util.UUID;
-
-import static spark.Spark.before;
-import static spark.Spark.get;
-import static spark.Spark.post;
-
-
-public class SparkResources {
-
-    public static void defineResources() {
-        before((request, response) -> response.type("application/json"));
-
-        post("/pets", (req, res) -> {
-            Pet newPet = LambdaContainerHandler.getObjectMapper().readValue(req.body(), Pet.class);
-            if (newPet.getName() == null || newPet.getBreed() == null) {
-                return Response.status(400).entity(new Error("Invalid name or breed")).build();
-            }
-
-            Pet dbPet = newPet;
-            dbPet.setId(UUID.randomUUID().toString());
-
-            res.status(200);
-            return dbPet;
-        }, new JsonTransformer());
-
-        get("/pets", (req, res) -> {
-            int limit = 10;
-            if (req.queryParams("limit") != null) {
-                limit = Integer.parseInt(req.queryParams("limit"));
-            }
-
-            Pet[] outputPets = new Pet[limit];
-
-            for (int i = 0; i < limit; i++) {
-                Pet newPet = new Pet();
-                newPet.setId(UUID.randomUUID().toString());
-                newPet.setName(PetData.getRandomName());
-                newPet.setBreed(PetData.getRandomBreed());
-                newPet.setDateOfBirth(PetData.getRandomDoB());
-                outputPets[i] = newPet;
-            }
-
-            res.status(200);
-            return outputPets;
-        }, new JsonTransformer());
-
-        get("/pets/:petId", (req, res) -> {
-            Pet newPet = new Pet();
-            newPet.setId(UUID.randomUUID().toString());
-            newPet.setBreed(PetData.getRandomBreed());
-            newPet.setDateOfBirth(PetData.getRandomDoB());
-            newPet.setName(PetData.getRandomName());
-            res.status(200);
-            return newPet;
-        }, new JsonTransformer());
-    }
-}
diff --git a/samples/spark/pet-store/src/main/java/com/amazonaws/serverless/sample/spark/StreamLambdaHandler.java b/samples/spark/pet-store/src/main/java/com/amazonaws/serverless/sample/spark/StreamLambdaHandler.java
deleted file mode 100644
index e02499103..000000000
--- a/samples/spark/pet-store/src/main/java/com/amazonaws/serverless/sample/spark/StreamLambdaHandler.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package com.amazonaws.serverless.sample.spark;
-
-
-import com.amazonaws.serverless.exceptions.ContainerInitializationException;
-import com.amazonaws.serverless.proxy.internal.testutils.Timer;
-import com.amazonaws.serverless.proxy.model.AwsProxyRequest;
-import com.amazonaws.serverless.proxy.model.AwsProxyResponse;
-import com.amazonaws.serverless.proxy.spark.SparkLambdaContainerHandler;
-import com.amazonaws.serverless.sample.spark.filter.CognitoIdentityFilter;
-import com.amazonaws.services.lambda.runtime.Context;
-import com.amazonaws.services.lambda.runtime.RequestStreamHandler;
-
-import spark.Spark;
-
-import jakarta.servlet.DispatcherType;
-import jakarta.servlet.FilterRegistration;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.EnumSet;
-
-
-public class StreamLambdaHandler implements RequestStreamHandler {
-    private static SparkLambdaContainerHandler<AwsProxyRequest, AwsProxyResponse> handler;
-    static {
-        try {
-            handler = SparkLambdaContainerHandler.getAwsProxyHandler();
-            SparkResources.defineResources();
-            Spark.awaitInitialization();
-
-            // we use the onStartup method of the handler to register our custom filter
-            handler.onStartup(servletContext -> {
-                FilterRegistration.Dynamic registration = servletContext.addFilter("CognitoIdentityFilter", CognitoIdentityFilter.class);
-                registration.addMappingForUrlPatterns(EnumSet.of(DispatcherType.REQUEST), false, "/*");
-            });
-        } catch (ContainerInitializationException e) {
-            // if we fail here. We re-throw the exception to force another cold start
-            e.printStackTrace();
-            throw new RuntimeException("Could not initialize Spark container", e);
-        }
-    }
-
-    public StreamLambdaHandler() {
-        // we enable the timer for debugging. This SHOULD NOT be enabled in production.
-        Timer.enable();
-    }
-
-    @Override
-    public void handleRequest(InputStream inputStream, OutputStream outputStream, Context context)
-            throws IOException {
-        handler.proxyStream(inputStream, outputStream, context);
-    }
-}
diff --git a/samples/spark/pet-store/src/main/java/com/amazonaws/serverless/sample/spark/filter/CognitoIdentityFilter.java b/samples/spark/pet-store/src/main/java/com/amazonaws/serverless/sample/spark/filter/CognitoIdentityFilter.java
deleted file mode 100644
index e45370b0b..000000000
--- a/samples/spark/pet-store/src/main/java/com/amazonaws/serverless/sample/spark/filter/CognitoIdentityFilter.java
+++ /dev/null
@@ -1,68 +0,0 @@
-package com.amazonaws.serverless.sample.spark.filter;
-
-
-import com.amazonaws.serverless.proxy.RequestReader;
-import com.amazonaws.serverless.proxy.model.AwsProxyRequestContext;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import jakarta.servlet.Filter;
-import jakarta.servlet.FilterChain;
-import jakarta.servlet.FilterConfig;
-import jakarta.servlet.ServletException;
-import jakarta.servlet.ServletRequest;
-import jakarta.servlet.ServletResponse;
-
-import java.io.IOException;
-
-
-/**
- * Simple Filter implementation that looks for a Cognito identity id in the API Gateway request context
- * and stores the value in a request attribute. The filter is registered with aws-serverless-java-container
- * in the onStartup method from the {@link com.amazonaws.serverless.sample.spring.StreamLambdaHandler} class.
- */
-public class CognitoIdentityFilter implements Filter {
-    public static final String COGNITO_IDENTITY_ATTRIBUTE = "com.amazonaws.serverless.cognitoId";
-
-    private static Logger log = LoggerFactory.getLogger(CognitoIdentityFilter.class);
-
-    @Override
-    public void init(FilterConfig filterConfig)
-            throws ServletException {
-        // nothing to do in init
-    }
-
-
-    @Override
-    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)
-            throws IOException, ServletException {
-        Object apiGwContext = servletRequest.getAttribute(RequestReader.API_GATEWAY_CONTEXT_PROPERTY);
-        if (apiGwContext == null) {
-            log.warn("API Gateway context is null");
-            filterChain.doFilter(servletRequest, servletResponse);
-        }
-        if (!AwsProxyRequestContext.class.isAssignableFrom(apiGwContext.getClass())) {
-            log.warn("API Gateway context object is not of valid type");
-            filterChain.doFilter(servletRequest, servletResponse);
-        }
-
-        AwsProxyRequestContext ctx = (AwsProxyRequestContext)apiGwContext;
-        if (ctx.getIdentity() == null) {
-            log.warn("Identity context is null");
-            filterChain.doFilter(servletRequest, servletResponse);
-        }
-        String cognitoIdentityId = ctx.getIdentity().getCognitoIdentityId();
-        if (cognitoIdentityId == null || "".equals(cognitoIdentityId.trim())) {
-            log.warn("Cognito identity id in request is null");
-        }
-        servletRequest.setAttribute(COGNITO_IDENTITY_ATTRIBUTE, cognitoIdentityId);
-        filterChain.doFilter(servletRequest, servletResponse);
-    }
-
-
-    @Override
-    public void destroy() {
-        // nothing to do in destroy
-    }
-}
diff --git a/samples/spark/pet-store/src/main/java/com/amazonaws/serverless/sample/spark/model/Error.java b/samples/spark/pet-store/src/main/java/com/amazonaws/serverless/sample/spark/model/Error.java
deleted file mode 100644
index 3577e6a3a..000000000
--- a/samples/spark/pet-store/src/main/java/com/amazonaws/serverless/sample/spark/model/Error.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright 2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance
- * with the License. A copy of the License is located at
- *
- * http://aws.amazon.com/apache2.0/
- *
- * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES
- * OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
- * and limitations under the License.
- */
-package com.amazonaws.serverless.sample.spark.model;
-
-public class Error {
-    private String message;
-
-    public Error(String errorMessage) {
-        message = errorMessage;
-    }
-
-    public String getMessage() {
-        return message;
-    }
-
-    public void setMessage(String message) {
-        this.message = message;
-    }
-}
diff --git a/samples/spark/pet-store/src/main/java/com/amazonaws/serverless/sample/spark/model/Pet.java b/samples/spark/pet-store/src/main/java/com/amazonaws/serverless/sample/spark/model/Pet.java
deleted file mode 100644
index a6f569597..000000000
--- a/samples/spark/pet-store/src/main/java/com/amazonaws/serverless/sample/spark/model/Pet.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright 2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance
- * with the License. A copy of the License is located at
- *
- * http://aws.amazon.com/apache2.0/
- *
- * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES
- * OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
- * and limitations under the License.
- */
-package com.amazonaws.serverless.sample.spark.model;
-
-import java.util.Date;
-
-public class Pet {
-    private String id;
-    private String breed;
-    private String name;
-    private Date dateOfBirth;
-
-    public String getId() {
-        return id;
-    }
-
-    public void setId(String id) {
-        this.id = id;
-    }
-
-    public String getBreed() {
-        return breed;
-    }
-
-    public void setBreed(String breed) {
-        this.breed = breed;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public void setName(String name) {
-        this.name = name;
-    }
-
-    public Date getDateOfBirth() {
-        return dateOfBirth;
-    }
-
-    public void setDateOfBirth(Date dateOfBirth) {
-        this.dateOfBirth = dateOfBirth;
-    }
-}
diff --git a/samples/spark/pet-store/src/main/java/com/amazonaws/serverless/sample/spark/model/PetData.java b/samples/spark/pet-store/src/main/java/com/amazonaws/serverless/sample/spark/model/PetData.java
deleted file mode 100644
index ba9c47db6..000000000
--- a/samples/spark/pet-store/src/main/java/com/amazonaws/serverless/sample/spark/model/PetData.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * Copyright 2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance
- * with the License. A copy of the License is located at
- *
- * http://aws.amazon.com/apache2.0/
- *
- * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES
- * OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
- * and limitations under the License.
- */
-package com.amazonaws.serverless.sample.spark.model;
-
-import java.util.*;
-import java.util.concurrent.ThreadLocalRandom;
-
-public class PetData {
-    private static List<String> breeds = new ArrayList<>();
-    static {
-        breeds.add("Afghan Hound");
-        breeds.add("Beagle");
-        breeds.add("Bernese Mountain Dog");
-        breeds.add("Bloodhound");
-        breeds.add("Dalmatian");
-        breeds.add("Jack Russell Terrier");
-        breeds.add("Norwegian Elkhound");
-    }
-
-    private static List<String> names = new ArrayList<>();
-    static {
-        names.add("Bailey");
-        names.add("Bella");
-        names.add("Max");
-        names.add("Lucy");
-        names.add("Charlie");
-        names.add("Molly");
-        names.add("Buddy");
-        names.add("Daisy");
-        names.add("Rocky");
-        names.add("Maggie");
-        names.add("Jake");
-        names.add("Sophie");
-        names.add("Jack");
-        names.add("Sadie");
-        names.add("Toby");
-        names.add("Chloe");
-        names.add("Cody");
-        names.add("Bailey");
-        names.add("Buster");
-        names.add("Lola");
-        names.add("Duke");
-        names.add("Zoe");
-        names.add("Cooper");
-        names.add("Abby");
-        names.add("Riley");
-        names.add("Ginger");
-        names.add("Harley");
-        names.add("Roxy");
-        names.add("Bear");
-        names.add("Gracie");
-        names.add("Tucker");
-        names.add("Coco");
-        names.add("Murphy");
-        names.add("Sasha");
-        names.add("Lucky");
-        names.add("Lily");
-        names.add("Oliver");
-        names.add("Angel");
-        names.add("Sam");
-        names.add("Princess");
-        names.add("Oscar");
-        names.add("Emma");
-        names.add("Teddy");
-        names.add("Annie");
-        names.add("Winston");
-        names.add("Rosie");
-    }
-
-    public static List<String> getBreeds() {
-        return breeds;
-    }
-
-    public static List<String> getNames() {
-        return names;
-    }
-
-    public static String getRandomBreed() {
-        return breeds.get(ThreadLocalRandom.current().nextInt(0, breeds.size() - 1));
-    }
-
-    public static String getRandomName() {
-        return names.get(ThreadLocalRandom.current().nextInt(0, names.size() - 1));
-    }
-
-    public static Date getRandomDoB() {
-        GregorianCalendar gc = new GregorianCalendar();
-
-        int year = ThreadLocalRandom.current().nextInt(
-                Calendar.getInstance().get(Calendar.YEAR) - 15,
-                Calendar.getInstance().get(Calendar.YEAR)
-        );
-
-        gc.set(Calendar.YEAR, year);
-
-        int dayOfYear = ThreadLocalRandom.current().nextInt(1, gc.getActualMaximum(Calendar.DAY_OF_YEAR));
-
-        gc.set(Calendar.DAY_OF_YEAR, dayOfYear);
-        return gc.getTime();
-    }
-}
diff --git a/samples/spark/pet-store/template.yml b/samples/spark/pet-store/template.yml
deleted file mode 100644
index 535e684f9..000000000
--- a/samples/spark/pet-store/template.yml
+++ /dev/null
@@ -1,32 +0,0 @@
-AWSTemplateFormatVersion: '2010-09-09'
-Transform: AWS::Serverless-2016-10-31
-Description: Example Pet Store API written with spark with the aws-serverless-java-container library
-
-Globals:
-  Api:
-    # API Gateway regional endpoints
-    EndpointConfiguration: REGIONAL
-
-Resources:
-  PetStoreFunction:
-    Type: AWS::Serverless::Function
-    Properties:
-      Handler: com.amazonaws.serverless.sample.spark.StreamLambdaHandler::handleRequest
-      Runtime: java11
-      CodeUri: .
-      MemorySize: 512
-      Policies: AWSLambdaBasicExecutionRole
-      Timeout: 20
-      Events:
-        HttpApiEvent:
-          Type: HttpApi
-          Properties:
-            TimeoutInMillis: 20000
-            PayloadFormatVersion: '1.0'
-
-Outputs:
-  SparkPetStoreApi:
-    Description: URL for application
-    Value: !Sub 'https://${ServerlessHttpApi}.execute-api.${AWS::Region}.amazonaws.com/pets'
-    Export:
-      Name: SparkPetStoreApi

From 0982dc15aa9d0bd212511ffd08c7d9745e33ca1c Mon Sep 17 00:00:00 2001
From: kibeom lee <70303094+2012160085@users.noreply.github.com>
Date: Sun, 21 Jan 2024 18:14:26 +0900
Subject: [PATCH 096/430] Deleted 2 disabled tests
 dispatch_sendsToCorrectServlet dispatchNewPath_sendsToCorrectServlet

---
 .../internal/servlet/AwsAsyncContextTest.java | 43 -------------------
 1 file changed, 43 deletions(-)

diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsAsyncContextTest.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsAsyncContextTest.java
index 9bbbc13a9..a8383b5c3 100644
--- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsAsyncContextTest.java
+++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsAsyncContextTest.java
@@ -46,49 +46,6 @@ void dispatch_amendsPath() throws InvalidRequestEventException {
         assertEquals("/srv1/hello", req.getRequestURI());
     }
 
-    @Disabled("AwsAsyncContext does not sends to servlet anymore")
-    @Test
-    void dispatch_sendsToCorrectServlet() {
-        AwsProxyHttpServletRequest req = new AwsProxyHttpServletRequest(new AwsProxyRequestBuilder("/srv1/hello", "GET").build(), lambdaCtx, null);
-        req.setResponse(handler.getContainerResponse(req, new CountDownLatch(1)));
-        req.setServletContext(ctx);
-        req.setContainerHandler(handler);
-
-        AsyncContext asyncCtx = req.startAsync();
-        handler.setDesiredStatus(201);
-        asyncCtx.dispatch();
-        assertNotNull(handler.getSelectedServlet());
-        assertEquals(srv1, handler.getSelectedServlet());
-        assertEquals(201, handler.getResponse().getStatus());
-
-        req = new AwsProxyHttpServletRequest(new AwsProxyRequestBuilder("/srv5/hello", "GET").build(), lambdaCtx, null);
-        req.setResponse(handler.getContainerResponse(req, new CountDownLatch(1)));
-        req.setServletContext(ctx);
-        req.setContainerHandler(handler);
-        asyncCtx = req.startAsync();
-        handler.setDesiredStatus(202);
-        asyncCtx.dispatch();
-        assertNotNull(handler.getSelectedServlet());
-        assertEquals(srv2, handler.getSelectedServlet());
-        assertEquals(202, handler.getResponse().getStatus());
-    }
-
-    @Disabled("AwsAsyncContext does not sends to servlet anymore")
-    @Test
-    void dispatchNewPath_sendsToCorrectServlet() throws InvalidRequestEventException {
-        AwsProxyHttpServletRequest req = (AwsProxyHttpServletRequest)reader.readRequest(new AwsProxyRequestBuilder("/srv1/hello", "GET").build(), null, lambdaCtx, LambdaContainerHandler.getContainerConfig());
-        req.setResponse(handler.getContainerResponse(req, new CountDownLatch(1)));
-        req.setServletContext(ctx);
-        req.setContainerHandler(handler);
-
-        AsyncContext asyncCtx = req.startAsync();
-        handler.setDesiredStatus(301);
-        asyncCtx.dispatch("/srv4/hello");
-        assertNotNull(handler.getSelectedServlet());
-        assertEquals(srv2, handler.getSelectedServlet());
-        assertNotNull(handler.getResponse());
-        assertEquals(301, handler.getResponse().getStatus());
-    }
 
     private AwsServletContext getCtx() {
         AwsServletContext ctx = new AwsServletContext(handler);

From 3bbeed7822b2680621b6a6561ca712d62dec6512 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Sun, 21 Jan 2024 11:02:04 +0100
Subject: [PATCH 097/430] chore(deps): update Struts to 7.0.0-M1 for testing

---
 aws-serverless-java-container-struts/pom.xml  | 47 ++++++++++++-------
 .../archetype-resources/build.gradle          | 10 ++--
 .../resources/archetype-resources/pom.xml     | 20 +++++---
 samples/struts/pet-store/build.gradle         | 14 +++---
 samples/struts/pet-store/pom.xml              | 23 +++++----
 5 files changed, 72 insertions(+), 42 deletions(-)

diff --git a/aws-serverless-java-container-struts/pom.xml b/aws-serverless-java-container-struts/pom.xml
index 767705099..0cd2a4aa9 100644
--- a/aws-serverless-java-container-struts/pom.xml
+++ b/aws-serverless-java-container-struts/pom.xml
@@ -15,7 +15,7 @@
     </parent>
 
     <properties>
-        <struts.version>6.3.0.2</struts.version>
+        <struts.version>7.0.0-M1</struts.version>
     </properties>
 
     <dependencies>
@@ -25,12 +25,24 @@
             <artifactId>aws-serverless-java-container-core</artifactId>
             <version>2.0.0-SNAPSHOT</version>
         </dependency>
+        <dependency>
+            <groupId>com.amazonaws.serverless</groupId>
+            <artifactId>aws-serverless-java-container-core</artifactId>
+            <version>2.0.0-SNAPSHOT</version>
+            <classifier>tests</classifier>
+            <type>test-jar</type>
+            <scope>test</scope>
+        </dependency>
 
         <dependency>
             <groupId>org.apache.struts</groupId>
             <artifactId>struts2-core</artifactId>
             <version>${struts.version}</version>
             <exclusions>
+                <exclusion>
+                    <groupId>org.apache.commons</groupId>
+                    <artifactId>commons-fileupload2-jakarta</artifactId>
+                </exclusion>
                 <exclusion>
                     <groupId>commons-io</groupId>
                     <artifactId>commons-io</artifactId>
@@ -71,38 +83,33 @@
         </dependency>
 
         <dependency>
-            <groupId>javax.el</groupId>
-            <artifactId>javax.el-api</artifactId>
-            <version>3.0.0</version>
+            <groupId>jakarta.el</groupId>
+            <artifactId>jakarta.el-api</artifactId>
+            <version>5.0.1</version>
             <scope>test</scope>
         </dependency>
 
         <dependency>
-            <groupId>javax.servlet</groupId>
-            <artifactId>jsp-api</artifactId>
-            <version>2.0</version>
+            <groupId>jakarta.servlet.jsp</groupId>
+            <artifactId>jakarta.servlet.jsp-api</artifactId>
+            <version>3.1.0</version>
             <scope>test</scope>
         </dependency>
 
         <dependency>
             <groupId>org.glassfish</groupId>
-            <artifactId>javax.el</artifactId>
-            <version>3.0.0</version>
+            <artifactId>jakarta.el</artifactId>
+            <version>5.0.0-M1</version>
             <scope>test</scope>
         </dependency>
     </dependencies>
 
     <dependencyManagement>
         <dependencies>
-            <dependency><!-- [CVE-2022-42889] transitive dep via Struts -->
+            <dependency>
                 <groupId>org.apache.commons</groupId>
                 <artifactId>commons-text</artifactId>
-                <version>1.10.0</version>
-            </dependency>
-            <dependency><!-- [CVE-2021-37533] transitive dep via Struts -->
-                <groupId>commons-net</groupId>
-                <artifactId>commons-net</artifactId>
-                <version>3.9.0</version>
+                <version>1.11.0</version>
             </dependency>
         </dependencies>
     </dependencyManagement>
@@ -198,4 +205,12 @@
             </plugin>
         </plugins>
     </build>
+
+    <repositories>
+        <repository>
+            <id>apache-pre-release</id>
+            <url>https://repository.apache.org/content/repositories/staging/</url>
+            <layout>default</layout>
+        </repository>
+    </repositories>
 </project>
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
index 1f03497bd..c579ff711 100644
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
@@ -18,19 +18,19 @@ dependencies {
     exclude group: 'org.apache.logging.log4j', module: 'log4j-api'
     exclude group: 'org.apache.logging.log4j', module: 'log4j-to-slf4j'
   }
-  implementation ('org.apache.struts:struts2-convention-plugin:6.1.3.1') {
+  implementation ('org.apache.struts:struts2-convention-plugin:7.0.0-M1') {
     exclude group: 'org.apache.struts', module: 'struts2-core'
   }
-  implementation ('org.apache.struts:struts2-rest-plugin:6.1.3.1') {
+  implementation ('org.apache.struts:struts2-rest-plugin:7.0.0-M1') {
     exclude group: 'org.apache.struts', module: 'struts2-core'
   }
-  implementation ('org.apache.struts:struts2-bean-validation-plugin:6.1.3.1') {
+  implementation ('org.apache.struts:struts2-bean-validation-plugin:7.0.0-M1') {
     exclude group: 'org.apache.struts', module: 'struts2-core'
   }
   implementation ('com.jgeppert.struts2:struts2-aws-lambda-support-plugin:1.4.2') {
     exclude group: 'org.apache.struts', module: 'struts2-core'
   }
-  implementation ('org.apache.struts:struts2-core:6.1.3.1') {
+  implementation ('org.apache.struts:struts2-core:7.0.0-M1') {
     exclude group: 'org.apache.logging.log4j', module: 'log4j-api'
   }
   implementation ('org.hibernate.validator:hibernate-validator:6.1.7.Final')
@@ -45,7 +45,7 @@ dependencies {
   testImplementation("org.apache.httpcomponents.client5:httpclient5:5.2.1")
   testImplementation(platform("org.junit:junit-bom:5.10.1"))
   testImplementation("org.junit.jupiter:junit-jupiter")
-  testImplementation('org.apache.struts:struts2-junit-plugin:6.1.3.1') {
+  testImplementation('org.apache.struts:struts2-junit-plugin:7.0.0-M1') {
     exclude group: 'org.apache.struts', module: 'struts2-core'
   }
 }
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
index 485fa214a..30ec31d71 100644
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
@@ -15,7 +15,7 @@
     <properties>
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
-        <struts.version>6.1.3.1</struts.version>
+        <struts.version>7.0.0-M1</struts.version>
         <jackson.version>2.16.1</jackson.version>
         <junit.version>5.10.1</junit.version>
         <log4j.version>2.22.1</log4j.version>
@@ -121,15 +121,15 @@
         </dependency>
 
         <dependency>
-            <groupId>javax.el</groupId>
-            <artifactId>javax.el-api</artifactId>
-            <version>3.0.0</version>
+            <groupId>jakarta.el</groupId>
+            <artifactId>jakarta.el-api</artifactId>
+            <version>5.0.1</version>
             <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.glassfish</groupId>
-            <artifactId>javax.el</artifactId>
-            <version>3.0.0</version>
+            <artifactId>jakarta.el</artifactId>
+            <version>5.0.0-M1</version>
             <scope>test</scope>
         </dependency>
 
@@ -175,4 +175,12 @@
             </plugin>
         </plugins>
     </build>
+
+    <repositories>
+        <repository>
+            <id>apache-pre-release</id>
+            <url>https://repository.apache.org/content/repositories/staging/</url>
+            <layout>default</layout>
+        </repository>
+    </repositories>
 </project>
diff --git a/samples/struts/pet-store/build.gradle b/samples/struts/pet-store/build.gradle
index 4982518a2..11296662f 100644
--- a/samples/struts/pet-store/build.gradle
+++ b/samples/struts/pet-store/build.gradle
@@ -13,15 +13,15 @@ configurations {
 
 dependencies {
   implementation (
-          'com.amazonaws.serverless:aws-serverless-java-container-struts:[1.9,)',
-          'org.apache.struts:struts2-convention-plugin:6.1.3.1',
-          'org.apache.struts:struts2-rest-plugin:6.1.3.1',
-          'org.apache.struts:struts2-bean-validation-plugin:6.1.3.1',
-          'org.apache.struts:struts2-junit-plugin:6.1.3.1',
+          'com.amazonaws.serverless:aws-serverless-java-container-struts:[2.0-SNAPSHOT,)',
+          'org.apache.struts:struts2-convention-plugin:7.0.0-M1',
+          'org.apache.struts:struts2-rest-plugin:7.0.0-M1',
+          'org.apache.struts:struts2-bean-validation-plugin:7.0.0-M1',
+          'org.apache.struts:struts2-junit-plugin:7.0.0-M1',
           'com.jgeppert.struts2:struts2-aws-lambda-support-plugin:1.4.2',
           'org.hibernate.validator:hibernate-validator:6.1.7.Final',
-          'org.glassfish:javax.el:3.0.0',
-          'javax.el:javax.el-api:3.0.0',
+          'org.glassfish:jakarta.el:5.0.0-M1',
+          'jakarta.el:jakarta.el-api:5.0.1',
           'com.fasterxml.jackson.core:jackson-databind:2.16.1',
           'com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.16.1',
           'org.apache.logging.log4j:log4j-core:2.22.1',
diff --git a/samples/struts/pet-store/pom.xml b/samples/struts/pet-store/pom.xml
index 6eacfc31e..c9fc14f92 100644
--- a/samples/struts/pet-store/pom.xml
+++ b/samples/struts/pet-store/pom.xml
@@ -6,7 +6,7 @@
 
     <groupId>com.amazonaws.serverless.sample</groupId>
     <artifactId>serverless-struts-example</artifactId>
-    <version>1.0-SNAPSHOT</version>
+    <version>2.0-SNAPSHOT</version>
     <name>Struts example for the aws-serverless-java-container library</name>
     <description>Simple pet store written with the Apache Struts framework</description>
     <url>https://aws.amazon.com/lambda/</url>
@@ -26,7 +26,7 @@
     <properties>
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
-        <struts.version>6.1.3.1</struts.version>
+        <struts.version>7.0.0-M1</struts.version>
         <jackson.version>2.16.1</jackson.version>
         <junit.version>4.13.2</junit.version>
         <log4j.version>2.22.1</log4j.version>
@@ -36,7 +36,7 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-struts</artifactId>
-            <version>[1.9,)</version>
+            <version>[2.0.0-SNAPSHOT,)</version>
         </dependency>
 
         <dependency>
@@ -79,13 +79,13 @@
         </dependency>
         <dependency>
             <groupId>org.glassfish</groupId>
-            <artifactId>javax.el</artifactId>
-            <version>3.0.0</version>
+            <artifactId>jakarta.el</artifactId>
+            <version>5.0.0-M1</version>
         </dependency>
         <dependency>
-            <groupId>javax.el</groupId>
-            <artifactId>javax.el-api</artifactId>
-            <version>3.0.0</version>
+            <groupId>jakarta.el</groupId>
+            <artifactId>jakarta.el-api</artifactId>
+            <version>5.0.1</version>
         </dependency>
 
         <dependency>
@@ -167,4 +167,11 @@
         </plugins>
     </build>
 
+    <repositories>
+        <repository>
+            <id>apache-pre-release</id>
+            <url>https://repository.apache.org/content/repositories/staging/</url>
+            <layout>default</layout>
+        </repository>
+    </repositories>
 </project>

From 3b637dc7bedd832110bffc390f3476b813a7a119 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 22 Jan 2024 04:06:00 +0000
Subject: [PATCH 098/430] chore(deps): bump org.owasp:dependency-check-maven
 from 9.0.8 to 9.0.9

Bumps [org.owasp:dependency-check-maven](https://github.com/jeremylong/DependencyCheck) from 9.0.8 to 9.0.9.
- [Release notes](https://github.com/jeremylong/DependencyCheck/releases)
- [Changelog](https://github.com/jeremylong/DependencyCheck/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jeremylong/DependencyCheck/compare/v9.0.8...v9.0.9)

---
updated-dependencies:
- dependency-name: org.owasp:dependency-check-maven
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 9cd64107d..0caa7b78d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -77,7 +77,7 @@
 
     <properties>
         <jacoco.minCoverage>0.7</jacoco.minCoverage>
-        <dependencyCheck.version>9.0.8</dependencyCheck.version>
+        <dependencyCheck.version>9.0.9</dependencyCheck.version>
         <jackson.version>2.16.1</jackson.version>
         <slf4j.version>2.0.11</slf4j.version>
         <junit.version>5.10.1</junit.version>

From 96b1a4a6be9102545efc3c3f6a1e147dc5664bbd Mon Sep 17 00:00:00 2001
From: kibeom lee <70303094+2012160085@users.noreply.github.com>
Date: Mon, 22 Jan 2024 18:52:34 +0900
Subject: [PATCH 099/430] Remove AwsLambdaServletContainerHandler from
 AwsAsyncContext since it is no longer dependent on
 AwsLambdaServletContainerHandler

---
 .../serverless/proxy/internal/servlet/AwsAsyncContext.java    | 4 +---
 .../internal/servlet/AwsHttpApiV2ProxyHttpServletRequest.java | 4 ++--
 .../proxy/internal/servlet/AwsProxyHttpServletRequest.java    | 4 ++--
 3 files changed, 5 insertions(+), 7 deletions(-)

diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsAsyncContext.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsAsyncContext.java
index 0dd115b9a..98e7ef8ec 100644
--- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsAsyncContext.java
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsAsyncContext.java
@@ -32,7 +32,6 @@
 public class AwsAsyncContext implements AsyncContext {
     private HttpServletRequest req;
     private HttpServletResponse res;
-    private AwsLambdaServletContainerHandler handler;
     private List<AsyncListenerHolder> listeners;
     private long timeout;
     private AtomicBoolean dispatched;
@@ -41,11 +40,10 @@ public class AwsAsyncContext implements AsyncContext {
 
     private Logger log = LoggerFactory.getLogger(AwsAsyncContext.class);
 
-    public AwsAsyncContext(HttpServletRequest request, HttpServletResponse response, AwsLambdaServletContainerHandler servletHandler) {
+    public AwsAsyncContext(HttpServletRequest request, HttpServletResponse response) {
         log.debug("Initializing async context for request: " + SecurityUtils.crlf(request.getPathInfo()) + " - " + SecurityUtils.crlf(request.getMethod()));
         req = request;
         res = response;
-        handler = servletHandler;
         listeners = new ArrayList<>();
         timeout = 3000;
         dispatched = new AtomicBoolean(false);
diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpApiV2ProxyHttpServletRequest.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpApiV2ProxyHttpServletRequest.java
index 73239a914..6fdb31f08 100644
--- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpApiV2ProxyHttpServletRequest.java
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpApiV2ProxyHttpServletRequest.java
@@ -442,7 +442,7 @@ public boolean isAsyncStarted() {
 
     @Override
     public AsyncContext startAsync() throws IllegalStateException {
-        asyncContext = new AwsAsyncContext(this, response, containerHandler);
+        asyncContext = new AwsAsyncContext(this, response);
         setAttribute(DISPATCHER_TYPE_ATTRIBUTE, DispatcherType.ASYNC);
         log.debug("Starting async context for request: " + SecurityUtils.crlf(request.getRequestContext().getRequestId()));
         return asyncContext;
@@ -450,7 +450,7 @@ public AsyncContext startAsync() throws IllegalStateException {
 
     @Override
     public AsyncContext startAsync(ServletRequest servletRequest, ServletResponse servletResponse) throws IllegalStateException {
-        asyncContext = new AwsAsyncContext((HttpServletRequest) servletRequest, (HttpServletResponse) servletResponse, containerHandler);
+        asyncContext = new AwsAsyncContext((HttpServletRequest) servletRequest, (HttpServletResponse) servletResponse);
         setAttribute(DISPATCHER_TYPE_ATTRIBUTE, DispatcherType.ASYNC);
         log.debug("Starting async context for request: " + SecurityUtils.crlf(request.getRequestContext().getRequestId()));
         return asyncContext;
diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequest.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequest.java
index 280a7e308..3e92d43dc 100644
--- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequest.java
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequest.java
@@ -495,7 +495,7 @@ public boolean isAsyncStarted() {
     @Override
     public AsyncContext startAsync()
             throws IllegalStateException {
-        asyncContext = new AwsAsyncContext(this, response, containerHandler);
+        asyncContext = new AwsAsyncContext(this, response);
         setAttribute(DISPATCHER_TYPE_ATTRIBUTE, DispatcherType.ASYNC);
         log.debug("Starting async context for request: " + SecurityUtils.crlf(request.getRequestContext().getRequestId()));
         return asyncContext;
@@ -506,7 +506,7 @@ public AsyncContext startAsync()
     public AsyncContext startAsync(ServletRequest servletRequest, ServletResponse servletResponse)
             throws IllegalStateException {
         servletRequest.setAttribute(DISPATCHER_TYPE_ATTRIBUTE, DispatcherType.ASYNC);
-        asyncContext = new AwsAsyncContext((HttpServletRequest) servletRequest, (HttpServletResponse) servletResponse, containerHandler);
+        asyncContext = new AwsAsyncContext((HttpServletRequest) servletRequest, (HttpServletResponse) servletResponse);
         log.debug("Starting async context for request: " + SecurityUtils.crlf(request.getRequestContext().getRequestId()));
         return asyncContext;
     }

From 42353cb3d3e36b47363715f8b1feab78d3a42888 Mon Sep 17 00:00:00 2001
From: mbfreder <mbfreder@amazon.com>
Date: Tue, 23 Jan 2024 17:32:02 -0800
Subject: [PATCH 100/430] Added SpringBoot3-GraphQl sample

---
 .../springboot3/graphql-pet-store/README.md   |  38 ++++
 samples/springboot3/graphql-pet-store/pom.xml | 162 ++++++++++++++++++
 .../graphql-pet-store/src/assembly/bin.xml    |  27 +++
 .../sample/springboot3/Application.java       |  49 ++++++
 .../springboot3/StreamLambdaHandler.java      |  50 ++++++
 .../controller/PetsController.java            |  21 +++
 .../filter/CognitoIdentityFilter.java         |  69 ++++++++
 .../sample/springboot3/model/Owner.java       |  20 +++
 .../sample/springboot3/model/Pet.java         |  20 +++
 .../main/resources/graphql/schema.graphqls    |  16 ++
 .../src/main/resources/logback.xml            |   5 +
 .../graphql-pet-store/template.yml            |  32 ++++
 12 files changed, 509 insertions(+)
 create mode 100644 samples/springboot3/graphql-pet-store/README.md
 create mode 100644 samples/springboot3/graphql-pet-store/pom.xml
 create mode 100644 samples/springboot3/graphql-pet-store/src/assembly/bin.xml
 create mode 100644 samples/springboot3/graphql-pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/Application.java
 create mode 100644 samples/springboot3/graphql-pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/StreamLambdaHandler.java
 create mode 100644 samples/springboot3/graphql-pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/controller/PetsController.java
 create mode 100644 samples/springboot3/graphql-pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/filter/CognitoIdentityFilter.java
 create mode 100644 samples/springboot3/graphql-pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/model/Owner.java
 create mode 100644 samples/springboot3/graphql-pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/model/Pet.java
 create mode 100644 samples/springboot3/graphql-pet-store/src/main/resources/graphql/schema.graphqls
 create mode 100644 samples/springboot3/graphql-pet-store/src/main/resources/logback.xml
 create mode 100644 samples/springboot3/graphql-pet-store/template.yml

diff --git a/samples/springboot3/graphql-pet-store/README.md b/samples/springboot3/graphql-pet-store/README.md
new file mode 100644
index 000000000..7d18a0dd7
--- /dev/null
+++ b/samples/springboot3/graphql-pet-store/README.md
@@ -0,0 +1,38 @@
+# Serverless Spring Boot 3 and Spring-graphQl example
+A basic pet store written with the [Spring Boot 3 framework](https://projects.spring.io/spring-boot/). Unlike older examples, this example uses the [Spring for GraphQl](https://docs.spring.io/spring-graphql/reference/) library. 
+
+
+The application can be deployed in an AWS account using the [Serverless Application Model](https://github.com/awslabs/serverless-application-model). The `template.yml` file in the root folder contains the application definition.
+
+## Pre-requisites
+* [AWS CLI](https://aws.amazon.com/cli/)
+* [SAM CLI](https://github.com/awslabs/aws-sam-cli)
+* [Gradle](https://gradle.org/) or [Maven](https://maven.apache.org/)
+
+## Deployment
+In a shell, navigate to the sample's folder and use the SAM CLI to build a deployable package
+```
+$ sam build
+```
+
+This command compiles the application and prepares a deployment package in the `.aws-sam` sub-directory.
+
+To deploy the application in your AWS account, you can use the SAM CLI's guided deployment process and follow the instructions on the screen
+
+```
+$ sam deploy --guided
+```
+
+Once the deployment is completed, the SAM CLI will print out the stack's outputs, including the new application URL. You can use `curl` to make a call to the URL
+
+```
+...
+---------------------------------------------------------------------------------------------------------
+OutputKey-Description                        OutputValue
+---------------------------------------------------------------------------------------------------------
+PetStoreApi - URL for application            https://xxxxxxxxxx.execute-api.us-west-2.amazonaws.com/graphQl
+---------------------------------------------------------------------------------------------------------
+
+$ curl -X POST https://xxxxxxxxxx.execute-api.us-west-2.amazonaws.com/graphQl -d '{"query":"query petDetails {\n  petById(id: \"pet-1\") {\n      id\n      name\n      breed\n      owner {\n          id\n          firstName\n          lastName\n      }\n  }\n}","operationName":"petDetails"}' -H "Content-Type: application/json"
+
+```
\ No newline at end of file
diff --git a/samples/springboot3/graphql-pet-store/pom.xml b/samples/springboot3/graphql-pet-store/pom.xml
new file mode 100644
index 000000000..35535e2a4
--- /dev/null
+++ b/samples/springboot3/graphql-pet-store/pom.xml
@@ -0,0 +1,162 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <groupId>com.amazonaws.serverless.sample</groupId>
+    <artifactId>serverless-springboot3-example</artifactId>
+    <version>2.0-SNAPSHOT</version>
+    <name>Spring Boot example for the aws-serverless-java-container library</name>
+    <description>Simple pet store written with the Spring framework and Spring Boot</description>
+    <url>https://aws.amazon.com/lambda/</url>
+
+    <parent>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-parent</artifactId>
+        <version>3.2.2</version>
+    </parent>
+
+    <licenses>
+        <license>
+            <name>The Apache Software License, Version 2.0</name>
+            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+            <distribution>repo</distribution>
+        </license>
+    </licenses>
+
+    <properties>
+        <java.version>21</java.version>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-graphql</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.springframework.boot</groupId>
+                    <artifactId>spring-boot-starter-tomcat</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.graphql</groupId>
+            <artifactId>spring-graphql-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.amazonaws.serverless</groupId>
+            <artifactId>aws-serverless-java-container-springboot3</artifactId>
+            <version>2.0.0-SNAPSHOT</version>
+        </dependency>
+    </dependencies>
+
+    <profiles>
+        <profile>
+            <id>shaded-jar</id>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.apache.maven.plugins</groupId>
+                        <artifactId>maven-shade-plugin</artifactId>
+                        <version>3.5.1</version>
+                        <configuration>
+                            <createDependencyReducedPom>false</createDependencyReducedPom>
+                        </configuration>
+                        <executions>
+                            <execution>
+                                <phase>package</phase>
+                                <goals>
+                                    <goal>shade</goal>
+                                </goals>
+                                <configuration>
+                                    <artifactSet>
+                                        <excludes>
+                                            <exclude>org.apache.tomcat.embed:*</exclude>
+                                        </excludes>
+                                    </artifactSet>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+        <profile>
+            <id>assembly-zip</id>
+            <activation>
+                <activeByDefault>true</activeByDefault>
+            </activation>
+            <build>
+                <plugins>
+                    <!-- don't build a jar, we'll use the classes dir -->
+                    <plugin>
+                        <groupId>org.apache.maven.plugins</groupId>
+                        <artifactId>maven-jar-plugin</artifactId>
+                        <version>3.3.0</version>
+                        <executions>
+                            <execution>
+                                <id>default-jar</id>
+                                <phase>none</phase>
+                            </execution>
+                        </executions>
+                    </plugin>
+                    <plugin>
+                        <groupId>org.apache.maven.plugins</groupId>
+                        <artifactId>maven-install-plugin</artifactId>
+                        <version>3.1.1</version>
+                        <configuration>
+                            <skip>true</skip>
+                        </configuration>
+                    </plugin>
+                    <!-- select and copy only runtime dependencies to a temporary lib folder -->
+                    <plugin>
+                        <groupId>org.apache.maven.plugins</groupId>
+                        <artifactId>maven-dependency-plugin</artifactId>
+                        <version>3.6.1</version>
+                        <executions>
+                            <execution>
+                                <id>copy-dependencies</id>
+                                <phase>package</phase>
+                                <goals>
+                                    <goal>copy-dependencies</goal>
+                                </goals>
+                                <configuration>
+                                    <outputDirectory>${project.build.directory}/lib</outputDirectory>
+                                    <includeScope>runtime</includeScope>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                    <plugin>
+                        <groupId>org.apache.maven.plugins</groupId>
+                        <artifactId>maven-assembly-plugin</artifactId>
+                        <version>3.6.0</version>
+                        <executions>
+                            <execution>
+                                <id>zip-assembly</id>
+                                <phase>package</phase>
+                                <goals>
+                                    <goal>single</goal>
+                                </goals>
+                                <configuration>
+                                    <finalName>${project.artifactId}-${project.version}</finalName>
+                                    <descriptors>
+                                        <descriptor>src${file.separator}assembly${file.separator}bin.xml</descriptor>
+                                    </descriptors>
+                                    <attach>false</attach>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
+
+
+</project>
diff --git a/samples/springboot3/graphql-pet-store/src/assembly/bin.xml b/samples/springboot3/graphql-pet-store/src/assembly/bin.xml
new file mode 100644
index 000000000..efc312c25
--- /dev/null
+++ b/samples/springboot3/graphql-pet-store/src/assembly/bin.xml
@@ -0,0 +1,27 @@
+<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.0.0"
+          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+          xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.0.0 http://maven.apache.org/xsd/assembly-2.0.0.xsd">
+    <id>lambda-package</id>
+    <formats>
+        <format>zip</format>
+    </formats>
+    <includeBaseDirectory>false</includeBaseDirectory>
+    <fileSets>
+        <!-- copy runtime dependencies with some exclusions -->
+        <fileSet>
+            <directory>${project.build.directory}${file.separator}lib</directory>
+            <outputDirectory>lib</outputDirectory>
+            <excludes>
+                <exclude>tomcat-embed*</exclude>
+            </excludes>
+        </fileSet>
+        <!-- copy all classes -->
+        <fileSet>
+            <directory>${project.build.directory}${file.separator}classes</directory>
+            <includes>
+                <include>**</include>
+            </includes>
+            <outputDirectory>${file.separator}</outputDirectory>
+        </fileSet>
+    </fileSets>
+</assembly>
diff --git a/samples/springboot3/graphql-pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/Application.java b/samples/springboot3/graphql-pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/Application.java
new file mode 100644
index 000000000..678477a27
--- /dev/null
+++ b/samples/springboot3/graphql-pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/Application.java
@@ -0,0 +1,49 @@
+package com.amazonaws.serverless.sample.springboot3;
+
+import com.amazonaws.serverless.sample.springboot3.controller.PetsController;
+
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Import;
+import org.springframework.web.servlet.HandlerAdapter;
+import org.springframework.web.servlet.HandlerExceptionResolver;
+import org.springframework.web.servlet.HandlerMapping;
+import org.springframework.web.servlet.ModelAndView;
+import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter;
+import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping;
+
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
+
+
+@SpringBootApplication
+@Import({ PetsController.class })
+public class Application {
+
+    // silence console logging
+    @Value("${logging.level.root:OFF}")
+    String message = "";
+
+    /*
+     * Create required HandlerMapping, to avoid several default HandlerMapping instances being created
+     */
+    @Bean
+    public HandlerMapping handlerMapping() {
+        return new RequestMappingHandlerMapping();
+    }
+
+    /*
+     * Create required HandlerAdapter, to avoid several default HandlerAdapter instances being created
+     */
+    @Bean
+    public HandlerAdapter handlerAdapter() {
+        return new RequestMappingHandlerAdapter();
+    }
+
+    public static void main(String[] args) {
+        SpringApplication.run(Application.class, args);
+    }
+}
diff --git a/samples/springboot3/graphql-pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/StreamLambdaHandler.java b/samples/springboot3/graphql-pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/StreamLambdaHandler.java
new file mode 100644
index 000000000..a65c6f1ec
--- /dev/null
+++ b/samples/springboot3/graphql-pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/StreamLambdaHandler.java
@@ -0,0 +1,50 @@
+package com.amazonaws.serverless.sample.springboot3;
+
+
+import com.amazonaws.serverless.exceptions.ContainerInitializationException;
+import com.amazonaws.serverless.proxy.internal.testutils.Timer;
+import com.amazonaws.serverless.proxy.model.AwsProxyRequest;
+import com.amazonaws.serverless.proxy.model.AwsProxyResponse;
+import com.amazonaws.serverless.proxy.spring.SpringBootLambdaContainerHandler;
+import com.amazonaws.serverless.sample.springboot3.filter.CognitoIdentityFilter;
+import com.amazonaws.services.lambda.runtime.Context;
+import com.amazonaws.services.lambda.runtime.RequestStreamHandler;
+
+import jakarta.servlet.DispatcherType;
+import jakarta.servlet.FilterRegistration;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.util.EnumSet;
+
+
+public class StreamLambdaHandler implements RequestStreamHandler {
+    private static SpringBootLambdaContainerHandler<AwsProxyRequest, AwsProxyResponse> handler;
+    static {
+        try {
+            handler = SpringBootLambdaContainerHandler.getAwsProxyHandler(Application.class);
+
+            // we use the onStartup method of the handler to register our custom filter
+            handler.onStartup(servletContext -> {
+                FilterRegistration.Dynamic registration = servletContext.addFilter("CognitoIdentityFilter", CognitoIdentityFilter.class);
+                registration.addMappingForUrlPatterns(EnumSet.of(DispatcherType.REQUEST), true, "/*");
+            });
+        } catch (ContainerInitializationException e) {
+            // if we fail here. We re-throw the exception to force another cold start
+            e.printStackTrace();
+            throw new RuntimeException("Could not initialize Spring Boot application", e);
+        }
+    }
+
+    public StreamLambdaHandler() {
+        // we enable the timer for debugging. This SHOULD NOT be enabled in production.
+        Timer.enable();
+    }
+
+    @Override
+    public void handleRequest(InputStream inputStream, OutputStream outputStream, Context context)
+            throws IOException {
+        handler.proxyStream(inputStream, outputStream, context);
+    }
+}
diff --git a/samples/springboot3/graphql-pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/controller/PetsController.java b/samples/springboot3/graphql-pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/controller/PetsController.java
new file mode 100644
index 000000000..93eb999bd
--- /dev/null
+++ b/samples/springboot3/graphql-pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/controller/PetsController.java
@@ -0,0 +1,21 @@
+package com.amazonaws.serverless.sample.springboot3.controller;
+
+import org.springframework.graphql.data.method.annotation.Argument;
+import org.springframework.graphql.data.method.annotation.QueryMapping;
+import org.springframework.graphql.data.method.annotation.SchemaMapping;
+import org.springframework.stereotype.Controller;
+import com.amazonaws.serverless.sample.springboot3.model.Owner;
+import com.amazonaws.serverless.sample.springboot3.model.Pet;
+
+@Controller
+public class PetsController {
+    @QueryMapping
+    public Pet petById(@Argument String id) {
+        return Pet.getById(id);
+    }
+
+    @SchemaMapping
+    public Owner owner(Pet pet) {
+        return Owner.getById(pet.ownerId());
+    }
+}
diff --git a/samples/springboot3/graphql-pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/filter/CognitoIdentityFilter.java b/samples/springboot3/graphql-pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/filter/CognitoIdentityFilter.java
new file mode 100644
index 000000000..d6ccae765
--- /dev/null
+++ b/samples/springboot3/graphql-pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/filter/CognitoIdentityFilter.java
@@ -0,0 +1,69 @@
+package com.amazonaws.serverless.sample.springboot3.filter;
+
+
+import com.amazonaws.serverless.proxy.RequestReader;
+import com.amazonaws.serverless.proxy.model.AwsProxyRequestContext;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import jakarta.servlet.Filter;
+import jakarta.servlet.FilterChain;
+import jakarta.servlet.FilterConfig;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.ServletRequest;
+import jakarta.servlet.ServletResponse;
+
+import java.io.IOException;
+
+
+/**
+ * Simple Filter implementation that looks for a Cognito identity id in the API Gateway request context
+ * and stores the value in a request attribute. The filter is registered with aws-serverless-java-container
+ * in the onStartup method from the {@link com.amazonaws.serverless.sample.springboot3.StreamLambdaHandler} class.
+ */
+public class CognitoIdentityFilter implements Filter {
+    public static final String COGNITO_IDENTITY_ATTRIBUTE = "com.amazonaws.serverless.cognitoId";
+
+    private static Logger log = LoggerFactory.getLogger(CognitoIdentityFilter.class);
+
+    @Override
+    public void init(FilterConfig filterConfig)
+            throws ServletException {
+        // nothing to do in init
+    }
+
+
+    @Override
+    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)
+            throws IOException, ServletException {
+        Object apiGwContext = servletRequest.getAttribute(RequestReader.API_GATEWAY_CONTEXT_PROPERTY);
+        if (apiGwContext == null) {
+            log.warn("API Gateway context is null");
+            filterChain.doFilter(servletRequest, servletResponse);
+            return;
+        }
+        if (!AwsProxyRequestContext.class.isAssignableFrom(apiGwContext.getClass())) {
+            log.warn("API Gateway context object is not of valid type");
+            filterChain.doFilter(servletRequest, servletResponse);
+        }
+
+        AwsProxyRequestContext ctx = (AwsProxyRequestContext)apiGwContext;
+        if (ctx.getIdentity() == null) {
+            log.warn("Identity context is null");
+            filterChain.doFilter(servletRequest, servletResponse);
+        }
+        String cognitoIdentityId = ctx.getIdentity().getCognitoIdentityId();
+        if (cognitoIdentityId == null || "".equals(cognitoIdentityId.trim())) {
+            log.warn("Cognito identity id in request is null");
+        }
+        servletRequest.setAttribute(COGNITO_IDENTITY_ATTRIBUTE, cognitoIdentityId);
+        filterChain.doFilter(servletRequest, servletResponse);
+    }
+
+
+    @Override
+    public void destroy() {
+        // nothing to do in destroy
+    }
+}
diff --git a/samples/springboot3/graphql-pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/model/Owner.java b/samples/springboot3/graphql-pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/model/Owner.java
new file mode 100644
index 000000000..f048e6906
--- /dev/null
+++ b/samples/springboot3/graphql-pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/model/Owner.java
@@ -0,0 +1,20 @@
+package com.amazonaws.serverless.sample.springboot3.model;
+
+import java.util.Arrays;
+import java.util.List;
+
+public record Owner (String id, String firstName, String lastName) {
+
+    private static List<Owner> owners = Arrays.asList(
+            new Owner("owner-1", "Joshua", "Bloch"),
+            new Owner("owner-2", "Douglas", "Adams"),
+            new Owner("owner-3", "Bill", "Bryson")
+    );
+
+    public static Owner getById(String id) {
+        return owners.stream()
+                .filter(owner -> owner.id().equals(id))
+                .findFirst()
+                .orElse(null);
+    }
+}
diff --git a/samples/springboot3/graphql-pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/model/Pet.java b/samples/springboot3/graphql-pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/model/Pet.java
new file mode 100644
index 000000000..f97b973d0
--- /dev/null
+++ b/samples/springboot3/graphql-pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/model/Pet.java
@@ -0,0 +1,20 @@
+package com.amazonaws.serverless.sample.springboot3.model;
+
+import java.util.Arrays;
+import java.util.List;
+
+public record Pet (String id, String name, String breed, String ownerId) {
+
+    private static List<Pet> pets = Arrays.asList(
+            new Pet("pet-1", "Alpha", "Bulldog", "owner-1"),
+            new Pet("pet-2", "Max", "German Shepherd", "owner-2"),
+            new Pet("pet-3", "Rockie", "Golden Retriever", "owner-3")
+    );
+
+    public static Pet getById(String id) {
+        return pets.stream()
+                .filter(pet -> pet.id().equals(id))
+                .findFirst()
+                .orElse(null);
+    }
+}
diff --git a/samples/springboot3/graphql-pet-store/src/main/resources/graphql/schema.graphqls b/samples/springboot3/graphql-pet-store/src/main/resources/graphql/schema.graphqls
new file mode 100644
index 000000000..293cdcc40
--- /dev/null
+++ b/samples/springboot3/graphql-pet-store/src/main/resources/graphql/schema.graphqls
@@ -0,0 +1,16 @@
+type Query {
+    petById(id: ID): Pet
+}
+
+type Pet {
+    id: ID
+    name: String
+    breed: String
+    owner: Owner
+}
+
+type Owner {
+    id: ID
+    firstName: String
+    lastName: String
+}
diff --git a/samples/springboot3/graphql-pet-store/src/main/resources/logback.xml b/samples/springboot3/graphql-pet-store/src/main/resources/logback.xml
new file mode 100644
index 000000000..8ff988992
--- /dev/null
+++ b/samples/springboot3/graphql-pet-store/src/main/resources/logback.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+    <include resource="org/springframework/boot/logging/logback/base.xml" />
+    <logger name="org.springframework" level="ERROR"/>
+</configuration>
diff --git a/samples/springboot3/graphql-pet-store/template.yml b/samples/springboot3/graphql-pet-store/template.yml
new file mode 100644
index 000000000..c6543b15f
--- /dev/null
+++ b/samples/springboot3/graphql-pet-store/template.yml
@@ -0,0 +1,32 @@
+AWSTemplateFormatVersion: '2010-09-09'
+Transform: AWS::Serverless-2016-10-31
+Description: Example Pet Store API written with SpringBoot3, Spring for GraphQl and the aws-serverless-java-container library
+
+Globals:
+  Api:
+    # API Gateway regional endpoints
+    EndpointConfiguration: REGIONAL
+
+Resources:
+  PetStoreFunction:
+    Type: AWS::Serverless::Function
+    Properties:
+      Handler: com.amazonaws.serverless.sample.springboot3.StreamLambdaHandler::handleRequest
+      Runtime: java21
+      CodeUri: .
+      MemorySize: 1512
+      Policies: AWSLambdaBasicExecutionRole
+      Timeout: 60
+      Events:
+        HttpApiEvent:
+          Type: HttpApi
+          Properties:
+            TimeoutInMillis: 20000
+            PayloadFormatVersion: '1.0'
+
+Outputs:
+  SpringBootPetStoreApi:
+    Description: URL for application
+    Value: !Sub 'https://${ServerlessHttpApi}.execute-api.${AWS::Region}.amazonaws.com/graphql'
+    Export:
+      Name: SpringBootPetStoreApi

From 1b4a659270129c8e2b90f846c13c7efc50581dc3 Mon Sep 17 00:00:00 2001
From: Neves97 <43831599+Neves97@users.noreply.github.com>
Date: Wed, 24 Jan 2024 10:42:47 -0300
Subject: [PATCH 101/430] fix: Changed Maven version range to resolve both
 SNAPSHOTs and released versions
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* pom.xml missing references fix

* Using version range

* revert  maven shade downgrade

---------

Co-authored-by: João Neves <joao.neves@beetools.com.br>
---
 samples/springboot3/pet-store/pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/samples/springboot3/pet-store/pom.xml b/samples/springboot3/pet-store/pom.xml
index 569552a71..04de7678e 100644
--- a/samples/springboot3/pet-store/pom.xml
+++ b/samples/springboot3/pet-store/pom.xml
@@ -43,7 +43,7 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-springboot3</artifactId>
-            <version>[2.0-SNAPSHOT,)</version>
+            <version>[2.0.0-SNAPSHOT,),[2.0.0-M1,)</version>
         </dependency>
     </dependencies>
 

From c30b1977659f41d0c2742bc7fb5ac6a5d4c1f0f2 Mon Sep 17 00:00:00 2001
From: Oleg Zhurakousky <ozhurakousky@vmware.com>
Date: Wed, 24 Jan 2024 19:07:06 +0100
Subject: [PATCH 102/430] Address PR comments and add sample which also
 addresses most of the PR comments from the sample PR that I have closed

Update jacoco exclusions
---
 .../proxy/AsyncInitializationWrapper.java     |   2 +-
 .../pom.xml                                   |   4 +-
 .../serverless/proxy/spring/AWSHttpUtils.java |  12 +-
 .../spring/AWSWebRuntimeInitializer.java      |   6 +-
 ...r.java => AwsSpringAotTypesProcessor.java} |   5 +-
 ...> AwsSpringWebCustomRuntimeEventLoop.java} |  27 +-
 .../resources/META-INF/spring/aot.factories   |   2 +-
 .../proxy/spring/AWSHttpUtilsTests.java       |   2 +-
 .../proxy/spring/AWSWebRuntimeTests.java      |   8 +-
 .../{build.gradle => build.gradles}           |   0
 samples/springboot3/alt-pet-store/pom.xml     |   6 -
 .../springboot3/pet-store-native/.gitignore   |  33 ++
 .../.mvn/wrapper/maven-wrapper.jar            | Bin 0 -> 62547 bytes
 .../.mvn/wrapper/maven-wrapper.properties     |  18 +
 .../springboot3/pet-store-native/Dockerfile   |  43 +++
 .../springboot3/pet-store-native/README.md    |  44 +++
 samples/springboot3/pet-store-native/mvnw     | 308 ++++++++++++++++++
 samples/springboot3/pet-store-native/mvnw.cmd | 205 ++++++++++++
 samples/springboot3/pet-store-native/pom.xml  | 122 +++++++
 .../pet-store-native/src/assembly/java.xml    |  31 ++
 .../pet-store-native/src/assembly/native.xml  |  29 ++
 .../sample/springboot3/DemoApplication.java   |  12 +
 .../sample/springboot3/HelloController.java   |  17 +
 .../controller/PetsController.java            |  82 +++++
 .../filter/CognitoIdentityFilter.java         |  69 ++++
 .../sample/springboot3/model/Error.java       |  29 ++
 .../sample/springboot3/model/Pet.java         |  55 ++++
 .../sample/springboot3/model/PetData.java     | 117 +++++++
 .../src/main/resources/META-INF/.gitignore    |   1 +
 .../src/main/resources/application.properties |   1 +
 .../pet-store-native/src/shell/java/bootstrap |   7 +
 .../src/shell/native/bootstrap                |   5 +
 .../pet-store-native/template.yaml            |  33 ++
 33 files changed, 1302 insertions(+), 33 deletions(-)
 rename aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/{AWSTypesProcessor.java => AwsSpringAotTypesProcessor.java} (92%)
 rename aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/{AWSWebRuntimeEventLoop.java => AwsSpringWebCustomRuntimeEventLoop.java} (84%)
 rename samples/springboot3/alt-pet-store/{build.gradle => build.gradles} (100%)
 create mode 100644 samples/springboot3/pet-store-native/.gitignore
 create mode 100644 samples/springboot3/pet-store-native/.mvn/wrapper/maven-wrapper.jar
 create mode 100644 samples/springboot3/pet-store-native/.mvn/wrapper/maven-wrapper.properties
 create mode 100644 samples/springboot3/pet-store-native/Dockerfile
 create mode 100644 samples/springboot3/pet-store-native/README.md
 create mode 100755 samples/springboot3/pet-store-native/mvnw
 create mode 100644 samples/springboot3/pet-store-native/mvnw.cmd
 create mode 100644 samples/springboot3/pet-store-native/pom.xml
 create mode 100644 samples/springboot3/pet-store-native/src/assembly/java.xml
 create mode 100644 samples/springboot3/pet-store-native/src/assembly/native.xml
 create mode 100644 samples/springboot3/pet-store-native/src/main/java/com/amazonaws/serverless/sample/springboot3/DemoApplication.java
 create mode 100644 samples/springboot3/pet-store-native/src/main/java/com/amazonaws/serverless/sample/springboot3/HelloController.java
 create mode 100644 samples/springboot3/pet-store-native/src/main/java/com/amazonaws/serverless/sample/springboot3/controller/PetsController.java
 create mode 100644 samples/springboot3/pet-store-native/src/main/java/com/amazonaws/serverless/sample/springboot3/filter/CognitoIdentityFilter.java
 create mode 100644 samples/springboot3/pet-store-native/src/main/java/com/amazonaws/serverless/sample/springboot3/model/Error.java
 create mode 100644 samples/springboot3/pet-store-native/src/main/java/com/amazonaws/serverless/sample/springboot3/model/Pet.java
 create mode 100644 samples/springboot3/pet-store-native/src/main/java/com/amazonaws/serverless/sample/springboot3/model/PetData.java
 create mode 100644 samples/springboot3/pet-store-native/src/main/resources/META-INF/.gitignore
 create mode 100644 samples/springboot3/pet-store-native/src/main/resources/application.properties
 create mode 100644 samples/springboot3/pet-store-native/src/shell/java/bootstrap
 create mode 100644 samples/springboot3/pet-store-native/src/shell/native/bootstrap
 create mode 100644 samples/springboot3/pet-store-native/template.yaml

diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/AsyncInitializationWrapper.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/AsyncInitializationWrapper.java
index b6b9b037d..f5264e5f8 100644
--- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/AsyncInitializationWrapper.java
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/AsyncInitializationWrapper.java
@@ -47,7 +47,7 @@ public class AsyncInitializationWrapper extends InitializationWrapper {
     private static final boolean ASYNC_INIT_DISABLED = !INITIALIZATION_TYPE.equals(INITIALIZATION_TYPE_ON_DEMAND);
     private static final int INIT_GRACE_TIME_MS = Integer.parseInt(System.getenv().getOrDefault(
             INIT_GRACE_TIME_ENVIRONMENT_VARIABLE_NAME, Integer.toString(DEFAULT_INIT_GRACE_TIME_MS)));
-    private static final int LAMBDA_MAX_INIT_TIME_MS = 10_000;
+    public static final int LAMBDA_MAX_INIT_TIME_MS = 10_000;
 
     private CountDownLatch initializationLatch;
     private final long actualStartTime;
diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml
index 82b87b468..e7ab41cd9 100644
--- a/aws-serverless-java-container-springboot3/pom.xml
+++ b/aws-serverless-java-container-springboot3/pom.xml
@@ -203,8 +203,8 @@
                     <dataFile>${basedir}/target/coverage-reports/jacoco-unit.exec</dataFile>
                     <excludes>
                         <!-- Native AOT implementation is currently not covered (due to complexity of the test setup) -->
-                        <exclude>com/amazonaws/serverless/proxy/spring/AWSWebRuntimeEventLoop*</exclude>
-                        <exclude>com/amazonaws/serverless/proxy/spring/AWSTypesProcessor*</exclude>
+                        <exclude>com/amazonaws/serverless/proxy/spring/AwsSpringWebCustomRuntimeEventLoop*</exclude>
+                        <exclude>com/amazonaws/serverless/proxy/spring/AwsSpringAotTypesProcessor*</exclude>
                     </excludes>
                 </configuration>
                 <executions>
diff --git a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AWSHttpUtils.java b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AWSHttpUtils.java
index aa2edefe7..e19226b84 100644
--- a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AWSHttpUtils.java
+++ b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AWSHttpUtils.java
@@ -14,6 +14,7 @@
 import org.springframework.util.MultiValueMapAdapter;
 import org.springframework.util.StringUtils;
 
+import com.amazonaws.serverless.proxy.AsyncInitializationWrapper;
 import com.amazonaws.serverless.proxy.AwsHttpApiV2SecurityContextWriter;
 import com.amazonaws.serverless.proxy.AwsProxySecurityContextWriter;
 import com.amazonaws.serverless.proxy.RequestReader;
@@ -29,18 +30,21 @@
 import jakarta.servlet.ServletContext;
 import jakarta.servlet.http.HttpServletRequest;
 
-public class AWSHttpUtils {
+class AWSHttpUtils {
 	
-	private static Log logger = LogFactory.getLog(AWSWebRuntimeEventLoop.class);
+	private static Log logger = LogFactory.getLog(AWSHttpUtils.class);
 	
+	private AWSHttpUtils() {
+		
+	}
 	
-	public static AwsProxyResponse serviceAWS(String gatewayEvent, ServerlessMVC mvc, ObjectMapper mapper, AwsProxyHttpServletResponseWriter responseWriter) {
+	public static AwsProxyResponse processRequest(String gatewayEvent, ServerlessMVC mvc, ObjectMapper mapper, AwsProxyHttpServletResponseWriter responseWriter) {
 		HttpServletRequest request = AWSHttpUtils.generateHttpServletRequest(gatewayEvent, null, mvc.getServletContext(), mapper);
 		CountDownLatch latch = new CountDownLatch(1);
         AwsHttpServletResponse response = new AwsHttpServletResponse(request, latch);
 		try {
 			mvc.service(request, response);
-			latch.await(10, TimeUnit.SECONDS);
+			latch.await(AsyncInitializationWrapper.LAMBDA_MAX_INIT_TIME_MS, TimeUnit.SECONDS);
 			AwsProxyResponse awsResponse = responseWriter.writeResponse(response, null);
 			return awsResponse;
 		} 
diff --git a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AWSWebRuntimeInitializer.java b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AWSWebRuntimeInitializer.java
index 4d09e6ba2..e6dbd878f 100644
--- a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AWSWebRuntimeInitializer.java
+++ b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AWSWebRuntimeInitializer.java
@@ -45,9 +45,9 @@ public void initialize(GenericApplicationContext context) {
 		}
 		
 		if (context instanceof ServletWebServerApplicationContext && isCustomRuntime(environment)) {
-			if (context.getBeanFactory().getBeanNamesForType(AWSWebRuntimeEventLoop.class, false, false).length == 0) {
-				context.registerBean(StringUtils.uncapitalize(AWSWebRuntimeEventLoop.class.getSimpleName()),
-						SmartLifecycle.class, () -> new AWSWebRuntimeEventLoop((ServletWebServerApplicationContext) context));
+			if (context.getBeanFactory().getBeanNamesForType(AwsSpringWebCustomRuntimeEventLoop.class, false, false).length == 0) {
+				context.registerBean(StringUtils.uncapitalize(AwsSpringWebCustomRuntimeEventLoop.class.getSimpleName()),
+						SmartLifecycle.class, () -> new AwsSpringWebCustomRuntimeEventLoop((ServletWebServerApplicationContext) context));
 			}
 		}
 	}
diff --git a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AWSTypesProcessor.java b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringAotTypesProcessor.java
similarity index 92%
rename from aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AWSTypesProcessor.java
rename to aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringAotTypesProcessor.java
index 70e961c88..f7fbe9e25 100644
--- a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AWSTypesProcessor.java
+++ b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringAotTypesProcessor.java
@@ -28,6 +28,7 @@
 import com.amazonaws.serverless.proxy.model.ApiGatewayRequestIdentity;
 import com.amazonaws.serverless.proxy.model.AwsProxyRequest;
 import com.amazonaws.serverless.proxy.model.AwsProxyRequestContext;
+import com.amazonaws.serverless.proxy.model.AwsProxyResponse;
 import com.amazonaws.serverless.proxy.model.Headers;
 import com.amazonaws.serverless.proxy.model.MultiValuedTreeMap;
 import com.amazonaws.serverless.proxy.model.SingleValueHeaders;
@@ -40,7 +41,7 @@
  *
  * @author Oleg Zhurakousky
  */
-public class AWSTypesProcessor implements BeanFactoryInitializationAotProcessor {
+public class AwsSpringAotTypesProcessor implements BeanFactoryInitializationAotProcessor {
 
 	@Override
 	public BeanFactoryInitializationAotContribution processAheadOfTime(ConfigurableListableBeanFactory beanFactory) {
@@ -55,6 +56,8 @@ public void applyTo(GenerationContext generationContext, BeanFactoryInitializati
 			
 			runtimeHints.reflection().registerType(AwsProxyRequest.class,
 					MemberCategory.INVOKE_PUBLIC_METHODS, MemberCategory.INVOKE_PUBLIC_CONSTRUCTORS, MemberCategory.DECLARED_FIELDS, MemberCategory.DECLARED_CLASSES);
+			runtimeHints.reflection().registerType(AwsProxyResponse.class,
+					MemberCategory.INVOKE_PUBLIC_METHODS, MemberCategory.INVOKE_PUBLIC_CONSTRUCTORS, MemberCategory.DECLARED_FIELDS, MemberCategory.DECLARED_CLASSES);
 			runtimeHints.reflection().registerType(SingleValueHeaders.class,
 					MemberCategory.INVOKE_PUBLIC_METHODS, MemberCategory.INVOKE_PUBLIC_CONSTRUCTORS, MemberCategory.DECLARED_FIELDS, MemberCategory.DECLARED_CLASSES);
 			runtimeHints.reflection().registerType(JsonToken.class,
diff --git a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AWSWebRuntimeEventLoop.java b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringWebCustomRuntimeEventLoop.java
similarity index 84%
rename from aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AWSWebRuntimeEventLoop.java
rename to aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringWebCustomRuntimeEventLoop.java
index a09f0c0d7..4bb81059f 100644
--- a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AWSWebRuntimeEventLoop.java
+++ b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringWebCustomRuntimeEventLoop.java
@@ -48,9 +48,9 @@
  * @author Mark Sailes
  *
  */
-public final class AWSWebRuntimeEventLoop implements SmartLifecycle {
+public final class AwsSpringWebCustomRuntimeEventLoop implements SmartLifecycle {
 
-	private static Log logger = LogFactory.getLog(AWSWebRuntimeEventLoop.class);
+	private static Log logger = LogFactory.getLog(AwsSpringWebCustomRuntimeEventLoop.class);
 
 	static final String LAMBDA_VERSION_DATE = "2018-06-01";
 	private static final String LAMBDA_ERROR_URL_TEMPLATE = "http://{0}/{1}/runtime/invocation/{2}/error";
@@ -65,7 +65,7 @@ public final class AWSWebRuntimeEventLoop implements SmartLifecycle {
 
 	private ExecutorService executor = Executors.newSingleThreadExecutor();
 
-	public AWSWebRuntimeEventLoop(ServletWebServerApplicationContext applicationContext) {
+	public AwsSpringWebCustomRuntimeEventLoop(ServletWebServerApplicationContext applicationContext) {
 		this.applicationContext = applicationContext;
 	}
 
@@ -110,7 +110,7 @@ private void eventLoop(ServletWebServerApplicationContext context) {
 		RequestEntity<Void> requestEntity = RequestEntity.get(URI.create(eventUri))
 				.header("User-Agent", USER_AGENT_VALUE).build();
 		RestTemplate rest = new RestTemplate();
-		ObjectMapper mapper = context.getBean(ObjectMapper.class);
+		ObjectMapper mapper = new ObjectMapper();//.getBean(ObjectMapper.class);
 		mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
 		AwsProxyHttpServletResponseWriter responseWriter = new AwsProxyHttpServletResponseWriter();
 
@@ -128,16 +128,23 @@ private void eventLoop(ServletWebServerApplicationContext context) {
 				try {
 					logger.debug("Submitting request to the user's web application");
 					
-					AwsProxyResponse awsResponse = AWSHttpUtils.serviceAWS(incomingEvent.getBody(), mvc, mapper, responseWriter);
-					
+					AwsProxyResponse awsResponse = AWSHttpUtils.processRequest(incomingEvent.getBody(), mvc, mapper, responseWriter);
 					if (logger.isDebugEnabled()) {
-						logger.debug("Received response - body:" + awsResponse.getBody() + 
-								"; status:" + awsResponse.getStatusCode() + "; headers:" + awsResponse.getHeaders());
+						logger.debug("Received response - body: " + awsResponse.getBody() + 
+								"; status: " + awsResponse.getStatusCode() + "; headers: " + awsResponse.getHeaders());
 					}
+
 					String invocationUrl = MessageFormat.format(LAMBDA_INVOCATION_URL_TEMPLATE, runtimeApi,
 							LAMBDA_VERSION_DATE, requestId);
-		            ResponseEntity<Object> result = rest.exchange(RequestEntity.post(URI.create(invocationUrl))
-							.header("User-Agent", USER_AGENT_VALUE).body(awsResponse, AwsProxyResponse.class), Object.class);
+					
+		            ResponseEntity<byte[]> result = rest.exchange(RequestEntity.post(URI.create(invocationUrl))
+							.header("User-Agent", USER_AGENT_VALUE).body(awsResponse), byte[].class);
+		            if (logger.isDebugEnabled()) {
+						logger.debug("Response sent: body: " + result.getBody() + 
+								"; status: " + result.getStatusCode() + "; headers: " + result.getHeaders());
+					}
+		            System.out.println("==> status " + result.getStatusCode());
+		            System.out.println("==> body " + result.getBody());
 		            logger.debug("Response submitted back to the AWS Gateway");
 		            if (logger.isInfoEnabled()) {
 						logger.info("Result POST status: " + result);
diff --git a/aws-serverless-java-container-springboot3/src/main/resources/META-INF/spring/aot.factories b/aws-serverless-java-container-springboot3/src/main/resources/META-INF/spring/aot.factories
index 779aeae9d..44acc0d83 100644
--- a/aws-serverless-java-container-springboot3/src/main/resources/META-INF/spring/aot.factories
+++ b/aws-serverless-java-container-springboot3/src/main/resources/META-INF/spring/aot.factories
@@ -1 +1 @@
-org.springframework.beans.factory.aot.BeanFactoryInitializationAotProcessor=com.amazonaws.serverless.proxy.spring.AWSTypesProcessor
\ No newline at end of file
+org.springframework.beans.factory.aot.BeanFactoryInitializationAotProcessor=com.amazonaws.serverless.proxy.spring.AwsSpringAotTypesProcessor
\ No newline at end of file
diff --git a/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/AWSHttpUtilsTests.java b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/AWSHttpUtilsTests.java
index 741162f67..61adfdcee 100644
--- a/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/AWSHttpUtilsTests.java
+++ b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/AWSHttpUtilsTests.java
@@ -221,7 +221,7 @@ public void validateRequestResponse(String jsonEvent) throws Exception {
     	try (ConfigurableApplicationContext context = SpringApplication.run(EmptyApplication.class);) {
     		ServerlessMVC mvc = ServerlessMVC.INSTANCE((ServletWebServerApplicationContext) context);
     		AwsProxyHttpServletResponseWriter responseWriter = new AwsProxyHttpServletResponseWriter();
-    		AwsProxyResponse awsResponse = AWSHttpUtils.serviceAWS(jsonEvent, mvc, mapper, responseWriter);
+    		AwsProxyResponse awsResponse = AWSHttpUtils.processRequest(jsonEvent, mvc, mapper, responseWriter);
     		assertEquals("hello", awsResponse.getBody());
     		assertEquals(200, awsResponse.getStatusCode());
     	}
diff --git a/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/AWSWebRuntimeTests.java b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/AWSWebRuntimeTests.java
index f6eb7d92d..9903e8f8b 100644
--- a/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/AWSWebRuntimeTests.java
+++ b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/AWSWebRuntimeTests.java
@@ -19,14 +19,14 @@ public void after() {
 	@Test
     public void testWebRuntimeInitialization() throws Exception {
     	try (ConfigurableApplicationContext context = SpringApplication.run(EmptyApplication.class);) {
-    		assertFalse(context.getBeansOfType(AWSWebRuntimeEventLoop.class).size() > 0);
+    		assertFalse(context.getBeansOfType(AwsSpringWebCustomRuntimeEventLoop.class).size() > 0);
     	}
     	System.setProperty("_HANDLER", "foo");
-    	AWSWebRuntimeEventLoop loop = null;
+    	AwsSpringWebCustomRuntimeEventLoop loop = null;
     	try (ConfigurableApplicationContext context = SpringApplication.run(EmptyApplication.class);) {
     		Thread.sleep(100);
-    		assertTrue(context.getBeansOfType(AWSWebRuntimeEventLoop.class).size() > 0);
-    		loop = context.getBean(AWSWebRuntimeEventLoop.class);
+    		assertTrue(context.getBeansOfType(AwsSpringWebCustomRuntimeEventLoop.class).size() > 0);
+    		loop = context.getBean(AwsSpringWebCustomRuntimeEventLoop.class);
     		assertTrue(loop.isRunning());
     	}
     	assertFalse(loop.isRunning());
diff --git a/samples/springboot3/alt-pet-store/build.gradle b/samples/springboot3/alt-pet-store/build.gradles
similarity index 100%
rename from samples/springboot3/alt-pet-store/build.gradle
rename to samples/springboot3/alt-pet-store/build.gradles
diff --git a/samples/springboot3/alt-pet-store/pom.xml b/samples/springboot3/alt-pet-store/pom.xml
index cf67ee6fb..a39244f9a 100644
--- a/samples/springboot3/alt-pet-store/pom.xml
+++ b/samples/springboot3/alt-pet-store/pom.xml
@@ -32,12 +32,6 @@
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter</artifactId>
-<!--            <exclusions>-->
-<!--                <exclusion>-->
-<!--                    <groupId>org.springframework.boot</groupId>-->
-<!--                    <artifactId>spring-boot-starter-tomcat</artifactId>-->
-<!--                </exclusion>-->
-<!--            </exclusions>-->
         </dependency>
 
         <dependency>
diff --git a/samples/springboot3/pet-store-native/.gitignore b/samples/springboot3/pet-store-native/.gitignore
new file mode 100644
index 000000000..549e00a2a
--- /dev/null
+++ b/samples/springboot3/pet-store-native/.gitignore
@@ -0,0 +1,33 @@
+HELP.md
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
diff --git a/samples/springboot3/pet-store-native/.mvn/wrapper/maven-wrapper.jar b/samples/springboot3/pet-store-native/.mvn/wrapper/maven-wrapper.jar
new file mode 100644
index 0000000000000000000000000000000000000000..cb28b0e37c7d206feb564310fdeec0927af4123a
GIT binary patch
literal 62547
zcmb5V1CS=sk~Z9!wr$(CZEL#U=Co~N+O}=mwr$(Cds^S@-Tij=#=rmlVk@E|Dyp8$
z$UKz?`Q$l@GN3=8fq)=^fVx`E)Pern1@-q?PE1vZPD);!LGdpP^)C$aAFx&{CzjH`
zpQV9;fd0PyFPNN=yp*_@iYmRFcvOrKbU!1a*o)t$0ex(~3z5?bw11HQYW_uDngyer
za60w&wz^`W&Z!0XSH^cLNR&k>%)Vr|$}(wfBzmSbuK^)dy#xr@_NZVszJASn12dw;
z-KbI5yz=2awY0>OUF)&crfPu&tVl|!>g*#ur@K=$@8N05<_Mldg}X`N6O<~3|Dpk3
z<UIRcbhf^wCy5@WX~(j;#aN);In?VFeoy+)_ZgQb$iI2^KR3XSzn<ATnEu1}{}}=E
z9|!|G14A?8e*r}LXP~u#i?PkWfMfkna90NdJ3C{Ce<6nVufz<k%>RWb!e7z<{Mr96
z^C<tn;J@ue|L?6p{|{;U|F^a5{|hbu&`I~-b^cc{W=ISH+yB)C^EVjL{<}_5F-0+X
zQ89TDDKV9*Xd!42CRni-J~8^-u8>{%ROigEIapRGbFA5g4XoQAe_Y1ii3Ci!KV`?$
zZ2Hy<C%~!g%>1VP#hVp>OOqe~m|lo@^276Ik<~*6eRSOe;$wn_0@St#cJy}qI#RP=
zHVMXyFYYX%T_k3MNbtOX{<*_6Htq*o|7~MkS|A|A|8AqKl!%zTirAJGz;R<3&F7_N
z)uC9$9K1M-)g0#}tnM(lO2k~W&4xT7gshgZ1-y2Yo-q9Li7%zguh7W#kGfnjo7Cl6
z!^wTtP392HU0aVB!$cPHjdK}yi7xNMp+KVZy3_u}+lBCloJ&C?#NE@y$_{Uv83*iV
zhDOcv`=|CiyQ5)C4fghUmxmwBP0fvuR>aV`bZ3{Q4&6-(M@5sHt0M(}WetqItGB1C
z<I^6UkIt-$#>CU-)_n-VD;(6T1%0(@6%U`UgUwgJCCdXvI#f%79Elbg4^yucgfW1^
zNF!|C39SaXsqU9kIimX0vZ`U29)>O|Kfs*hXBXC;Cs9_Zos3%8lu)JGm~c19+j8Va
z)~kFfHouwMbfRHJ``%9mLj_bCx!<)O9XNq&uH(>(Q0V7-gom7$kxSpjpPiYGG{IT8
zKdjoDkkMTL9-|vXDuUL=B-K)nVaSFd5TsX0v1C$ETE1Ajnhe9ept?d;xVCWMc$MbR
zL{-oP*vjp_3%f0b8h!Qija6rzq~E!#7X~8^ZUb#@rnF~sG0hx^Ok?G9dwmit494OT
z_WQzm_sR_#%|I`jx5(6aJYTLv;3U#e@*^jms9#~U`eHOZZEB~yn=4UA(=_U#pYn5e
zeeaDmq-$-)&)5Y}h1zDbftv>|?GjQ=)qUw*^<?4Qug_064CXwb#|8rsLI=CxwcLMz
zHjR>CkcAG#o%I8i186AbS@;qrezPCQYWHe=q-5zF>xO*Kk|VTZD<z}3d$|FhBQ-9;
zqXBmTu5iJ4hp;Gs+m1*Vmumq~RFG#&_!3&SYE_j%M~{|r=-+{W#^QN9Rw+$1+{%u6
ztTEKsz<ibfGp7oB*V_V?r`nNQhejgKB9M!aO%fqpSOLYrkD4c!#z&skA|))ZO{*`k
zJiGGtOZX4GRzoXF0Sim5*SgIy_(pgr5T!XTFXdq0d|T}AI&|e)cS&s~zT6ahCt1l1
zT|;3k<!J&(m^dI)-x>;t={XqrKfR|{itr~k71VS?cBc=9zgeFbpeQf*Wad-tAW7(o
ze6RbNeu31Uebi}b0>|=7ZjH*J+zSj8fy|+T)+X{N8Vv^d+USG3arWZ?pz)WD)VW}P
z0!D>}01W#e@VWTL8w1m|h`D(EnHc*C5#1WK4<w{2hR-Qu&>G|C5ViXO$YzKfJkda#
z2c2*qXI-StLW*7_c-%Dws+D#Kkv^gL!_=GMn?Y^0J7*3le!!fTzSux%=1T$O8oy8j
z%)PQ9!O+>+y+Dw*r`*}y4SpUa21pWJ$gEDXCZg8L+B!pYWd8X;jRBQkN_b=#tb6Nx
zVodM4k?gF&R&P=s`B3d@M5Qvr;1;i_w1AI=*rH(G1kVRMC`_nohm~Ie5^YW<LklCW
zh?^^=kj`^XEK69~Ax?b9{=IxK!iA{9zQKS!OQBs_q=bOVeg`#Vca$a>YqZMV2<`J*
z`i)p799U_mcUjKYn!^T&hu7`Lw$PkddV&W(ni)y|9f}rGr|i-7nnfH6nyB$Q{(*Nv
zZz@~rzWM#V@sjT3ewv9c`pP@xM6D!StnV@qCdO${loe(4Gy00NDF5&@Ku;h2P+Vh7
z(X6De$cX5@V}DH<wT@;7^h<^tnD`tVgF}!?NK3t*7|j8KqjdQQ5uVLe^{23OdE6J2
zi-0=62~C{kkvIc0W}2vwiFG56-KK++>XG?K^6mV>XiT768Ee^ye&Cs=2yefVcFn|G
zBz$~J(ld&1j@%`sBK^^0Gs$I$q9{R}!HhVu|B@Bhb29PF(%U6#P|T|{ughrfjB@s-
zZ)nWbT=6f6aVyk86h(0{NqFg#_d-&q^A@E2l0Iu0(C1@^s6Y-G0r32qll>aW3cHP#
zyH`KWu&2?XrIGVB6LOgb+$1zrsW>c2!a(2Y!TnGSAg(|akb#ROpk$~$h}jiY&nWEz
zmMxk4&H$8yk(6GKOLQCx$Ji-5H%$Oo4l7~@gbHzNj;iC%_g-+`hCf=YA>Z&F)I1sI
z%?Mm27>#i5b5x*U%#QE0wgsN|L73Qf%Mq)<FQ&Mo1iYC<$9{B|SppV_E$JUy-=H_z
zz06Apsrs`HuztjT{?R!3GII}_EH}V95C%MNxuHj3L8US5&QZJw;l36?K5xH)l_K$0
znUElOm7XhO^~p0~<$C#{JI1?hYqwbOII}7vSC7<aaLW3&Kdf9hYl)%8s&MQZ0xq59
zwdB?`0fITRbCh@%dfBfS*U0Po3sibYz+b*`qUs70(HMcC_8}J)bfq(-w&j^SzhbH(
zn{4Ql+5QMT3&Y1k8*+0S&jQqiY{<T32~TidB2;UMTbhU4Qj8dR#m&VJ6+W<d8N^6l
zY!*TBo0I_bAo_K=Ui&{JN?&n%mE`n?vTU0YGMTwf5TnsP=8#pum}G~F<1i^z%*4Hm
z1I0;>QW@O+)a;#mQN?b8e#X%wHbZyA_F+`P%-1SZVnTPPMermk1Rpm#(;z^tMJqwt
zDMHw=^c9%?#BcjyPGZFlGOC12RN(i`QAez>VM4#BK&Tm~MZ_!#U8PR->|l+38rIqk
zap{3_ei_txm=KL<4p_ukI`9GAEZ+--)Z%)I+9LYO!c|rF=Da5DE@8%g-Zb*O-z8Tv
zzbvTzeUcYFgy{b)<cdkL$=7b>8Q6+BPl*C}p~DiX%RHMlZf;NmCH;xy=D6Ii;tGU~
zM?k;9X_E?)-wP|VRChb4LrAL*?XD6R2L(MxRFolr6GJ$C>Ihr*nv#lBU>Yklt`-bQ
zr;5c(o}R!m4PRz=CnYcQv}m?O=CA(PWBW0?)UY)5d4Kf;8-HU@=xMnA#uw{g`hK{U
zB-EQG%T-7FMuUQ;r2xgBi1w69b-Jk8Kujr>`C#&kw-kx_R_GLRC}oum#c{je^h&x9
zoEe)8uUX|SahpME4SEog-5X^wQE0^I!YEHlwawJ|l^^0kD)z{o4^I$Eha$5tzD*A8
zR<*lss4U5N*JCYl;sxBaQkB3M8VT|gXibxFR-NH4Hsmw|{={*Xk)%!$IeqpW&($DQ
zuf$~fL+;QIaK?EUfKSX;Gpbm8{<=v#$SrH~P-it--v1kL>3SbJS@>hAE2x_k1-iK#
zRN~My-v@dGN3E#c!V1(nOH>vJ{rcOVCx$5s7B?7EKe%B`bb<ObEfr$*j`M4kQDF;^
z$)<Ep9ojr!n+?@Fw@c#)27Pxjsx};#DZb2Y&}NG1g?*LP#{7$EO((8w#!RKKv8+s!
zmv=7waG@<#niQdBy4YRHFJYrx3N5-4$8=1zh$))fFm1IA*BJyQ#7kx>x(8}km#t2a
z1A~COG(S4C7~h~k+3;NkxdA4gbB7bRVbm%$DXK0TSBI=Ph6f+PA@$t){_NrRLb`jp
zn1u=O0C8%&`rdQgO3kEi#QqiBQcBcbG3<hi%oScTlJZoPB79~!s@@L+Y$N(R9Hx$4
zV5*-?&7y$QGs;^8evwiVm6-BL!fam-?7{M?Mz0#DP0!a3UjblLaFBgObQXLaEa7QC
zDpwbhz~C1Q3t7E>wqPrJ8+0r<`L0Co-n8y-NbWbx;}DTq@F<bOLiVNd9q}vMnA%*P
zTc~6w2P#ybh5aX13s80NZKZzTE}CBpehKRdZ&stlyBvCO(}_UMi#aFz(mWPfxAV>D
z1b)B$b>Nwx^2;+oIcgW(4I`5DeLE$mWYYc7#tishbd;Y!oQLxI>?6_zq7Ej)92xAZ
z!D0mfl|v4EC<3(06V8m+BS)Vx90b=xBSTwTznptIbt5u5KD54$vwl|kp#RpZuJ*k)
z>jw52JS&x<m<yy)V<(rx5_MF@vO5QoqfZORCiaA`)1Q1l`h33tsqFS>)9&g3RDXGV
zE<BxgBMRv3bbTT<YJb#v^>lux37>A=`#5(UuRx&d4qxrV<38_w?#plbw03l9>Nz$Y
zZS;fNq6>cGvoASa2y(D&qR9_{@tVrnvduek+riBR#VCG|4Ne^w@mf2<b0Xn$^ftK!
zUQQ=+H;=)de`O~X*S(2dn6pgOy`*q?!IKY(-85~U2Gh@^{B#GK&9Ncm`w8x~G+T?}
z6e!Pw(-fFN3z<tqfaPSdVWzKF)K0r^?aG98G(0wAdhqEV1~UDK(?ujKF>Y;-k90%V
zpA6dVw|naH;pM~VAwLcQZ|pyTEr;_S2GpkB?7)+?cW{0yE$G43`viTn+^}IPNlDo3
zmE`*)*tFe^=p+a{a5xR;H0r=&!u9y)kYUv@;NU<!rIJfL66+0T%iYwZHC+LgKD!GA
zL2IuLX8^c^t$6){JO|ImKi}$)?tUU7S6^uOiZVyRkp*dn$0c%G9<kf89AYO}@9xx9
z9}W$KUx0n+k54zm6XQXH_DXzKo%rRiC%91{+rV3g0E`)|+bwNc=}IWGAm7f`2V%5y
zS}OkQ*mi}5r`P)1wTtFn;fX9JUa%smlf(Kflj`0L3o$nkMG5TjYE`e$?2%mjPk2<<
z@~hjWcveKi26iD=1NNvKVI*7kpxS`Rlp3vF-c*L}o_Sy)!+^VjHA9NQDkE0RH5Qc2
zX$jj#Cpi}!WUiJT^gN>KZ)`u-KFTv0S&FTEQc;D3d|KEKSxirI9TtAWe#h<v>vOXV
z>807~TWI~^rL?)WMmi!T!j-vjsw@f11?#jNTu^cmjp!+A1f__Dw!7oqF>&r$V7gc<
z?6D92h~Y?faUD+I8V!w~8Z%ws5<LtywtI0$0z0`d=2}3Z9=A0Nhc(xGwuR&T+hlz^
zpBVI%AC{;K=EAv4;Pu18IQ)TS;&I$>S{20(AkaTZc>=z`ZK=>ik1td7Op#vAnD;8S
zh<>2tmEZiSm-nEjua<oYdF>WVE)aUXp$BumSS;qw#Xy7-yeq)(<{2G#ap8z)+lTi(
ziMb<AO!rU+vI9Y9hi52#H5Z_Oqm-X<*c418GCXRIFf$<tw{O+jDt#P>-iig6!==yk
zb6{;1hs`#qO5OJQlcJ|62g!?fbI^6v-(`tAQ%Drjcm!`-$%Q#@yw3pf`mXjN>=BSH
z(Nftnf50zUUTK;htPt0ONKJq1_d0!a^g>DeNCNpoyZhsnch+s|jXg1!NnEv%li2yw
zL}Y=P3u`S%Fj)lhWv0vF4}R;rh4&}2YB8B!|7^}a{#O<YYC_ba{El6}Ou&a<3Fhm!
zWDn>ac|%oFdMToRrWxEIEN<0CG@_j#R4%R4i0$*6xzzr}^`rI!#y9Xkr{+Rt9G$*@
zQ}XJ+_dl^9@(QYdlXLIMI_Q2uSl>N9g*YXMjddFvVouadTFwyNOT0uG$p!rGF5*`1
z&xsKPj&;t10m&pdPv+LpZd$pyI_v1IJnMD%kWn{vY=O3k1sJRYwPoDV1S4OfVz4FB
z$^ygjgHCW=ySKSsoSA&wSlq83JB+O-)s>>e@a{_FjB{@=AlrX7wq>JE=n@<VNDUqc
zh~=-r|3**!2l@2xq|N`ONQ7-|ogAJ1GDdO+<~Ax$1`bZf4)lgr29AzN8kU|oLufuD
z$&K}$P+@i;(ygU(QN|<5(uAyWa738GnWHWiN6I6!PGnV8a)&y`P4!vLsPn~CvoI^o
zKg{wpJQ(t-7z+J-&O^Qme5kxli`1H)xp|*RZZ0#qPA0i-+9of1z8>}@fba(;n4EG|
zge1i<k^HPrn!xB(<|f-FjrKZqoqiCL1e<flKspuwQ5ZoKOYu()w<!e?N#;wLE7z*4
zG(Bzt+nS_Z*J>)?NE@M@DC5eEv<yyjW!;#w_S-OlYe-x;CkMMU#HIo*%j_sJ|Cy#)
zkZ&q)Chy)V5L&8V(Tf)awl$WSJ|3mss6}ULPPV09D<^2JcPWnBLUXEA2g(DskHZEX
zh<A}_J$sedQb5DQjysSgNx53|i{tv92H!GN?ub3~h|&e&S}j)f4$Dhjf8=}CibXBg
zRNnPI#Uh&jhJ=FG`GQQlD@SFHCdozVHPGau7-azcajduK#~&3I9~JgFQV~wyE@*Hy
zSfZ<l*RlF4OEN#Yp?10_&j<V*9k}ya)dzR97ej*2%CqTGW9~ok2aaYM7AiFPZi>4;
z#R~0aNssmFHANL@-eDq2_jFn=MXE9y>1FZH4&v<}vEdB6Kz^l)X%%X@E#4)ahB(KY
zx8RH+1*6b|o1$_lRqi^)qoLs;eV5zkKSN;HDwJIx#ceKS!A$ZJ-BpJSc*zl+D~EM2
zm@Kpq2M*kX`;gES_Dd1Y#UH`i!#1HdehqP^{DA-AW^dV(UPu|O<jvzCHjx?S&$X_@
zI63*jpF(JzqsSD70uo-eumPq+*u>@Hvr>?X3^~=1i<W7`R1=`lXYRLQ>aRa~AVXbj
z-yGL<(5}*)su2Tj#oIt+c6Gh}$0|sUYGGDzNMX+$Oi$e&UJt3&kwu)HX+XP{es(S3
z%9C9y({_fu>^BKjI7k;mZ4DKrdqxw`IM#8{Sh?X(6WE4S6-9M}U0&e32fV$2w{`19
zd=9JfCaYm@J$;nSG3(|byYDqh>c%`JW)W*Y0&K~g6)W?AvVP&DsF_6!fG3i%j^Q>R
zR_j5@NguaZB{&XjXF+~6m|utO*pxq$8?0GjW0J-e6Lnf0c@}hvom8KOnirhjOM7!n
zP#Iv^0_BqJI?hR5+Dl}p!7X}^NvFOCGvh9y*hgik<&X)3UcEBCdUr$Dt8?0f&LSur
ze*n!(V(7umZ%UCS>Hf(g=}39OcvGbf2+D;OZ089m_nUbdCE0PXJfnyrIlLXGh2D!m
zK=C#{JmoHY1ws47L0zeWkxxV=A%V8a&E^w%;fBp`PN_ndicD@oN?p?Bu~20>;h;W`
ztV=hI*Ts$6JXOwOY?sOk_1xjzNYA#40dD}|js#3V{SLhPEkn5>Ma+cGQ<o%qL<Q%n
z)p-m&QK15=GqmN<;E8=EA~$;A7zz7Gvv;^(c7@{n0c?w(sxQfHbV|Xpndn6B*C-VZ
zEgAOnx3+LF)@Qm`l532w37Q*TT(kKzuIq(^E9dw?fI0f$1gWd$=7wA+rX4l87liYB
z-Dx?;<Z)WFw+M|B0>i*#`g-*g56Q&@!dg)|1YpLai3Bu8a;l2fnD6&)MZ~hS%&J}k
z2p-wG=S|5YGy*Rcnm<9VIVq%~`Q{g(Vq4V)CP257v06=M2W|8AgZO0CC_}HVQ>`VU
zy;2LDlG1iwIeMj?l40_`21Qsm?d=1~6f4@_&`lp~pIeXnR)wF0z7FH&wu~L~mfmMr
zY4_w6tc{ZP&sa&Ui@UxZ*!UovRT})(p!GtQh~+AMZ6wcqMXM*4r@EaUdt>;Qs2Nt8
zDCJi#^Rwx|T|j_kZi6K!X>Ir%%UxaH>m6I9Yp;Sr;DKJ@{)dz4hpG>jX?>iiXzVQ0
zR$IzL8q11KPvIWIT{hU`TrFyI0YQh`#>J4XE*3;v^07C004~FC7TlRVVC}<}LC4h_
zZjZ)2*#)JyXPHcwte!}{y%i_!{^KwF9qzIRst@oUu~4m;1J_qR;Pz1KSI{rXY5_I_
z%gWC*%bNsb;v?>+TbM$qT`_U8{-g@egY=7+SN#(?RE<2nfrWrOn2OXK!ek7v`aDrH
zxCoFHyA&@^@m+#Y(*cohQ4B76me;)(t}{#7?E$_u#1fv)vUE5K;jmlgYI0$Mo!*EA
zf?dx$4L(?nyFbv|AF1kB!$P_q)wk1*@L<tI7)z|y;PAN-6?~)dmYAN5!m0%1M~LEF
z_<N}*>0>m<Jl7mrsl1+U-CsdkE{<0<uQ+i9Ep&l3?XC6Qx3CRj#I$i6V|7Gr^YPk6
zhuACdME6iF5tO0Sp&bG~!gP0FuN>SC(A8f4Rgmv1HG;QDWFj<(1oz)JHr+cP|EPET
zSD~QW&W(W?1PF-iZ()b|UrnB(#wG^NR!*X}t~OS-21dpXq)h)YcdA(1A`2n<G!shH
zgorijds{aB^i!X<=rORMTpWa4MGZ>zVFax9rx~WuN=SVt`OIR=eE@$^9&Gx_HCfN=
zI(V`)Jn+tJPF~mS?ED7#InwS&6<j%wm+|6WL34>OfH;qDzI_8@t>In6<x;*Gw*Yw%
z?iUIMsuaBB=x1Cv6H=|API5-Qjn3UQjCj{RP52pTmlOdCLoPdsSxY-;mqhdyM_>nl
zo}q{Ds*cTG*w3CH{Mw9*Zs|iDH^KqmhlLp_+wfw<q}t*Kwoi;C?nA6#x0ph>IS24G
z{c@fdgqy^Y)RNpI7va^nYr9;18t|j=AYDMpj)j1oNE;8+QQ)ap8O??lv%jbrb*a;}
z?OvnGXbtE9zt;TOyWc|$9BeSGQbfNZR`o_C!kMr|mzFvN+5;g2TgFo8DzgS2kkuw@
z=`Gq?xbAPzyf3MQ^ZXp>Gx4GwPD))qv<1EreWT!S@H-IpO{TPP1se8Yv8f@Xw>B}Y
z@#;egDL_+0WDA)AuP5@5Dyefuu&0g;P>ro9Qr>@2-VDrb(-whYxmWgkRGE(KC2LwS
z;ya>ASBlDMtcZCCD8h+Awq1%A|Hbx)rpn`REck#(J^SbjiHXe-jBp!?>~DC7Wb?mC
z_AN+^nOt;3tPnaRZBEpB6s|hCcFouWlA{3QJHP!EPBq1``CIsgMC<oiD!Y(*FZo;w
zV*qp3$&_F}b^rx3Q6+fj$mjwGERLlcI%ETo!VJMbFW)lV>YD#80(bsKpvwO)0#)1{
zos6v&9c=%W0G-T@9sfSLxeGZvnHk$SnHw57+5X4!u1dvH0YwOvuZ7M^2YOKra0dqR
zD`K@MTs(k@h>V<EOiB@Xpd=4(gUz@lE$jYOjyzm1&}<*!Rs!qBN&`PnJiRsJa<k3x
zn#=TN^5f&_3c?qRw>eI5UYI%n7#3L_WXVnpu$Vr-g}gEE>Y8ZQQsj_w<T+=4cBDUI
z3zkp6^ti5DdbC^)?WXC;d}!usTUL-UzoIL5Du@K0<KA78gAyOK-yYRC*Dg5fjkwYO
zROF(tM+b{E9J8!0hI##?+y~?U%m;fQFs^v{N_m5_8?LCHDZDZ$0*kX%bW|LbZjWQL
zTB=`B<b3rU-=J8L4|s0;0ViUpp^UW}G1IV2Ab5ThMPGCza-Xd~0YC60zSbU;gKl$N
z9~Y%0O9IHHIzU>bl&t6nj{;ga4q8SN#Z<H$(mh`y2lbG1u)2RcX{0)zUiZ0`we*v?
zRWs*-YCyVK70gkZd#3DJF$S`(#`gu(PtwS=>6cBZepMoyv7MF-tnnZp*(8jq848yZ
zsG_fP$Y-rtCAPPI7QC^nzQjlk;p3tk88!1dJuEFZ!BoB;c!T>L>xSD<#+4X%*;_IB
z0bZ%-SLOi5DV7uo{z}YLKHsOHfFIYlu8h(?gRs9@bbzk&dkvw*CWnV;GTAKOZfbY9
z(nKOTQ?fRRs(pr@KsUDq@*P`YUk4j=m?FIoIr)pHUCSE84|Qcf6GucZBRt;6oq_8Z
zP^R{LRMo?8>5oaye)Jgg9?H}q?%m@2bBI!XOOP1B0s$%htwA&XuR`=chDc2)ebgna
zFWvevD|V882V)@vt|>eeB+@<-L0^6NN%B5BREi8K=GwHVh6X>kCN+R3l{%oJw5g>F
zrj$rp$<x5{%Dd&c{zb=gqx|vjc$u+fQ~<=xa?|zwdGhl8?Rl}lAn?rTtF})J<_=<P
zZ<#BOvz#B`F%`?6pTYJ{XYKa0#X{@Itb@mF36=$j02&pwTyYm8wM_$O&f-@(m*T>9
zhepggNYDlBLM;Q*C<EOEy)e)av?`jZL9pOkqXYZ-rxvq`ZR8Dyp?#G?%a7?}>B&%w
zW+aY{Mj{=;Rc0dkUw~k)SwgT$RVEn+1QV;%<*FZg!1OcfOcLiF@~k$`IG|E8J0?R2
zk?iDGLR*b|9#WhNLtavx0&=Nx2NII{!@1T78VEA*I#65C`b5)8cGclxKQoVFM$P({
zLw<xqIAwsC7xGcp);pEM8LO0_(juAhdE3&t7P&jX@-eLqa<ai0ronDF_^r<;v+U|@
zC@$mmN@tejs)}KagB^2WXSC}ikckk+&RWL=^a{_cQaKr&N)+{KR&7~tyf}%abFX6q
zG71?g)D|Tr(C01Nx%MTj!z}=Yr1f20h6VmGKd5I!KY`Be@*2IG1gFw|%Cn(qlPd0O
z84OzfiAvR7_?7y;9-_0j7*MBGvi}S5uA$+K{Vpz->JKo9!9xN4Q8a2F`xL&_>KZfN
zOK?5jP%CT{^m4_jZ<Ofk;wOk0vVOYQ2{V0>ahnn4DrqgTr%(e_({|z2`C2NrR6=v9
z*|55wrjpExm3M&wQ^P?rQPmkI9Z9jlcB~4IfYuLaBV95OGm#E|YwBvj5Z}L~f`&wc
zrFo!zLX*C{d2}OGE{YCxyPDNV(%RZ7;;6oM*5a>5LmLy~_NIuhXTy-*>*^oo1L;`o
zlY#igc#sXmsfGHA{Vu$lCq$&Ok|9~pSl5Q3csNqZc-!a;O@R$G28a@Sg#&gnrYFsk
z&OjZtfIdsr%RV)bh>{>f883aoWuYCPDP{_)%yQhVdYh;6(EOO=;ztX1>n-LcOvCIr
zKPLkb`WG2;>r)LTp!~AlXjf-Oe3k`Chvw$l7SB2bA=x3s$;;VTFL0QcHliysKd^*n
zg-SNbtPnMAIBX7uiwi&vS)`dunX$}x)f=iwHH;OS6jZ9dYJ^w<lfOFp$uO|PqoKe=
zJgz#|0g$+Tl)t5#cE|+_jV8KY{V%c$Laj$p@i%@32}FkwW7Hb8JMPZxY9fn_slCD}
zH625V)Eo!6f!MlU+AeeHsx?FceCG-wq-|dg>Q=F#j9U{wJ9eGH<w^dj^Nd_mNS^fO
zCRQ7>^#vzm$HIm->xSO>WQ~nwLYQ8FS|?l!vWL<%j1~P<+07ZMKkTqE0F*Oy1FchM
z2(Nx-db%$WC~|loN~e!U`A4)V4@A|gPZh`TA18`y<vaS#sbRre(fEOZ<ZQ`PS>O1{
z(?VA_M6SYp-A#%JEppNHsV~kgW+*Ez=?H?GV!<$F^nOd+SZX(f0IoC#@A=TDv4B2M
z%G-laS}yqR0f+qnYW_e7E;5$Q!eO-%XWZML++hz$Xaq@c%2&ognqB2%k;Cs!WA6vl
z{6s3fwj*0Q_odHNXd(8234^=Asmc0#8ChzaSyIeCkO(wxqC=R`cZY1|TSK)EYx{W9
z!YXa8GER#Hx<^$eY>{d;u8*+0ocvY0f#D-}KO!`zyDD$%z1*2KI>T+Xmp)%%7c$P<
zvTF;ea#Zfzz51>&s<=tS74(t=Hm0dIncn~&zaxiohmQn>6x`R+%vT%~Dhc%RQ=Cj^
z&%gxxQo!zAsu6Z+Ud#P!%3is<<Hm1si9=xqaKmm4T>%*dJXe!*wZ-yidw|zw|C`cR
z`fiF^(yZt?p{ZX|8Ita<vJx0h&Nk}<hSUDZRD<|&3qOD7?uWd_MHD?1H1opJQfK+d
ztW7^b`(!2!%0cA+sr8KiD%0qLS0%s<S9`%W(R&h~TE3h!$P#l4TvGq@cp|%E&_3^y
z)wRvYW~ti8P<ruWC7N_&I5xZQLj$BkxrB4gt)%%>)UC$=fg6wOve?w+8ww|^7OQ0d
zN<D?s`3%O<hBdpfAJ73<>(3dmJ@mV8>74I$kQl8NM%aC+2l?<ziJOP3Nj$NBO$Zm5
za7tbYQO&zQsL8Y=lnnT@|2VtTDL)By(tj`_(D_k?kCmSKk>ZQ2pqkMs{&q(|4hwNM
z^xYnjj)q6uAK@m|H$g2ARS2($e9aqGYlEED9sT?~{isH3Sk}kjmZ05Atkgh^M6VNP
zX7@!i@k$yRsDK8RA1iqi0}#Phs7y(bKYAQbO9y=~10?8cXtIC4@gF#xZS;y3mAI`h
zZ^VmqwJ%W>kisQ!J6R?Zjcgar;Il%$jI*@y)B+fn^53<Z3}PY#ocRlS*4m6#eoc*D
z^G4bdDB%8R-xxSKw5X5N!@e@w<Cs)^$joR^dZ5p4{FPwT#LD@(RTvw82CuOhFPl}+
z-t<#hW3VmFyMwO^TrJ!LH~VAE$u^5iDMQ8BrteWL+0G@xEL`0_ME&_{X8`Ca!4abw
zAeWBDLb|k>jQd0`)=C~w%Lo?qw!q3fVi{~2arObUM{s=q)hgBn64~)W0tyi?(vlFb
z>tCE=B1c<v0(}7W0uhz(M(kMsw*YQ}w47E-&mhm6Ef1{TWF*PKwy=?0P*XW5qxT5`
zMC-?k44FrWAoLah+xtR$qBCfvVaKNt!O1KcH}mpwZ#c?O<Mu=BC@E&wD%$^p;{`J1
zUetF6jPkG{-O6%w->bfyY=V38fUGN(#vmn1aY!@v_c70}pa(Lrle-(-SH8Nd!emQF
zf3kz0cE~KzB%37B24|e=l4)<zlUVRGOPfvL4Ry<L1?}(JT*BC*@(p8NKIw11BVO*c
zzi`zk>L}g1AF@v%J*A;5F7li!>I0`lfO9TR+ak<Y$te4Zeg@NF38$FC=!n~!7Q}qT
z3E%7{E;d&)fB#sHG`!-w#VhkdO+nVCm}QNg+6YL|h|F__jT5<r@Eopd=*+*zY=lBX
zXJQnD37?aWyLx;>`xyqWnj5iwJ$>t_vp(bet2p(jRD;5Q9x2*`|FA4#5cfo8SF@cW
zeO{H7C0_YJ*P@_BEvm2dB}pUDYXq@G1^Ee#NY9Q`l`$BUXb01#lmQk^{g3?aaP~(*
zD;INgi#8TDZ&*@ZKhx$jA^H-H1Lp`%`O{Y{@_o!+7ST}{Ng^P;X>~Bci{|Qdf1{}p
z_kK+z<tDd@=j>L;>D30r6~R?|h!5NKYOi6X&I5)|ME+NG>d9^`hxKpU^)KBOpZiU^
z;|SzGWtbaclC-%9(zR-|q}kB8H&($nsB1LPAkgcm+Qs@cAov{IXxo5PHrH(8DuEMb
z3_R#>7^jjGeS7$!`}m8!8$z|)I~{dhd)SvoH9oR9#LjO{{8O&r7w{d9V1z^syn&E6
z{DG0vlQF_Yb3*|>RzVop^{$mWp|%NDYj@4{d*-@O^<(=L=DMFIQHEp-dtz@1Rumd;
zadt^4B#(uUyM6aeUJkGl0GfaULpR!2Ql&q$nEV^+SiDptdPbuJ=VJ)`czZ@&HPUuj
zc5dSRB&xk)dI~;6N?wkzI}}4K3i%I=EnlKGpPJ9hu?mNzH7|H0j(mN3(ubdaps3GM
z1i+9gk=!$mH=L#LRDf4!mXw0;uxSUIXhl|#h*uK+fQPilJc8RCK9GNPt=X^8`*;3$
zBBo77gkGB5F8a8)*OR10nK&~8CEMPVQyhY>i`PS{L^-*WAz$ljtU%zlG1lm%%U4Zw
zms0oZR8b|`>4U1X*9JLQQ>m9MF5%ppoafz^;`7DbmmIENrc$hucekkE4I83WhT%(9
zMaE;f7`g4B#vl(#tNP8$3q{$&oY*oa0HLX6D?xTW3M6f<^{%CK4OE1Pmfue`M6Dh=
z&Z-zrq$^xhP%|hU&)(+2KSSpeHgX^0?gRZ5wA8@%%9~@|*Ylux1M{WQ4ekG(T+_b`
zb6<oz^lbvev~V++$rC}$*BvgYAXG{?KcIztrX(y~IHHGjmZtf0C<OUlY*_4T&#6N5
z9I`6{eOqqp+TfjYP;y%aa_8?>I)QRGp%fRF)^T?i^j&JDBhfNU9?>Sl6WVMM%S?7<
ze|4ga<QQ%CFfC2!(F<jzks4u#PD$-vhPNI`buJHWN_8GSmKZP&!ezm)`pb_ufq%|e
z65VysTK{G$XMb<1f0?oTC!h20sft+iltsTHV$jShMg}xAzdvOAnbl^SH4Io@{;7|w
zcmm=LTua$mgYz83sR&vPS*oAGv0XRT^v%u-f-e|2uvTE0Gexp+zUUh*2Aeh)6}0n*
z6-@#lYzgcXQ9MmM(2<G4N5BX>DbPooB=F4Y=>~_+y~Q1{Ox@%q>v+_ZIOfnz5y+qy
zhi+^!CE*Lv-}>g^%G=bGLqD(aTN;yHDBH#<M$qg){m{{Q?t%NZ{J?a__4EZDzviFa
zm*MAJF9ZVu^8C9+ne|_}FKOUtCS+x5>tOC=X02}QU~Xdme``Wn>N>6{VwgU~Z>g+0
zxv0`>>iSfu$baHMw8(^FL6QWe;}(U>@;8j)t)yHAOj?SdeH;evFx-kpU@nT>lsrUt
zqhV}2pD^5bC4786guG1`5|fK@pE6xcT#ns)vR|^?A08G62teHaE&<GZV+LvneF;S#
z68Wn}!rRkgqGaX6A_ow8EmDIWBl|GIqJxlxNhE#>p`ZrCBj_Swt*~dVt=5*RK6Y{%
zABqK$X59BnrK3r3u=wxklRnA1uh+q`<b)RM<`VYR#Tj&jFv8I!vxF0~E2AGvt})TF
zM4DI~n<>?T0kE1YhvDWF4OY#<(+V|R@R%tdkq2huF(!Ip+EpZF3zr*|9pmKHPo)Cu
z;H+^s&`Ql}u=Jt~ZWj`bAw|i-3#7(2WuRU3DU{BW8`?!O?YO1M$*MMTsaEM!5Jyp~
z!gp6yR4$O%wQ8%dyz43ZPeoJwy;o;yg=S0^Y}%|)to>=N^`!3VMf1~}OZ`Dl$q&|w
z9$!i3!i1uAgPTuKSWdBrDr*N$g=E#mdqfj*h;Z}OG`{n245+g;IKfdn!&gF2OtHaD
zyGDzj@@d2!P(_Ux)3v;1ABTj__{w*kaRF-1YVU`})Acgk?(T*1YqEve3=5)8bkZK*
z!Tu<iq|P2`%F?J$)p|je2QMGIMZ2uQp_h@y-2G1Sdah5zN$MlgauhJ_S?DV|LPgo3
zy5@seq+HX~oFS@o{3}f1b%{xH5rZ+``=g_jA~NT11)`8ASoww?bFpmkOYPKJLN%zY
z#G=)BG8w4pvGQhd)zYf%ZbJ93=mTw|TF&1&U993<+v<$LGO!)AJOm399>s*e$h@^u
z>#zV0771Bix~r&h2FJ9)%N{>s>?2tk1$bId)1#G;OKgn-U8jUo^<QlyOD0m1h~yc9
zYT#r5TFa%e#Znr=VS)J8%MMo_req|4=S?B33f1PSc%hek1)1YQU-d5MwWR)q{_5Dw
z5=9oVB{#GZF0eecabm;6NDFL9BCyNJ=OBBmn{iM3umir}Zs#^GkuV;mNx)+(nzUhm
za=8_JmcdIqGaDw8$Nac*nUyqFG3QM(c@Q7<O+zJi+6L1W`{B!c@eUQHYVv2<_pzKm
z{Yazs3^VMCH}1;u!_KAXh~!;i#>AK;Hu)hQEi}swD(264kAS-SBCD$R(Ro0rh8~Le
zzRwxbz_JHDbD+hTX15AWmVw!#rC)-zeZahQQmo6F<p_)?;#yLR0`(}T(+Mw<^A<!v
zc35M9X*Jx1F#{d03NAsMf@PKoBty#Ypo0aqna_Kuym{4XET%)T9bJwPZ{^tb5jBfr
z*c%no6c#ooY>G1)ah3uuyIuTMof}RO!`Y3^Fxn_-G$23RDOh(@NU?r6`*S?#E50)w
zpcsgDZ-iO{;EesgDQq9;p*C#QH(sp~2w^zAJWaUL%@yo)iIL6y8;e_}=dwQc%k%;H
zFt5lenH*`}LWd+fPqi;exJeRZgl&nLR%|a!%1x0RQ54cgyWBYrL>sskcAtPxi&8c(
zw_K?sI*3n%S;lKiYpveBN08{rgV&-B1NN5Jiu07~%n#%&f!(R(z1)xsxtRBkg#+Lv
zh21zX?aYDd_f}qdA`Os<SbTR6gd5&=nL3UG#AuZUynK!i-YNc=2BCEbZ?L)$b<a8R
ztX7zJC>*j!eC<5)iUJ&Twj7?*p%vEOGElGhpRZsccM!<<I|PU&)~CLHRCdx^CfXu#
zsW!u!iTd$hJWe)wvI32v??s)XOU|ph)!DfqAs>k}DeC;TY;rULQs3e}lZyP#UVb=6
zB$Dkm2FaHWUXr7<{R&46sfZ)&(HXxB_=e`%LZci`s7L6c-L7iF&wdmTJz`*^=jD~*
zpOZ@<L`81Cqd*Yjy{6K>jcq8LezVkE^M6D9^QgZqnX&x*mr1_<yBUD`Uyb@wHjYjP
zR#yL2!>Cf#R9R3&{i3%v#}V$UZzGC;Or*=Dw5SXBC6NV|sGZp^#%RTimyaj@!ZuyJ
z6C+r}O1TsAzV9PAa*Gd!9#FQMl)ZLHzTr99biAqA(dz-m9LeIeKny3YB=*+|#-Gq#
zaErUR5Z*Wh^e<+wcm70eW;f-g=YTbMiDX)AznDM6B73)T4r%nq+*hKcKF?)#vbv?K
zPMe=sFCuC*ZqsBP<kLDXB+;25f0Z(q<`_UcS2#i?okbKY2v?D0X1#iP{=mJbgcND@
z&#MyXSlI=3U0Ep8#+@<?%U2V_k!NYVk+@qUfG#m=g{?a)8cJ##l4wA+d6wL8LN&#T
zf0sflzjQ~tY85=sKWgn>h-?g!m*O`}6<}Pfj}&#3Y1n9|Y@cUdD5GX_)6Sx9pPfS7
zxkt?g6ZwJ+50C7qrh6dMFmr7qah`FskT_H=GC92vkVh$WfZa2%5L99_DxyM{$#6HQ
zx$VR-Wwt!q9JL2{ybEGJr$^?!V4m_BqDqt!mbs=QjHf340+^a{)waVvP0+98(BA$M
ztWr&sM=juyYgvf`(SC}+y@QtYgU>0ghJ6VbU}|kEraR&&W%#;!#KI?le%g`e>ZV<h
zy-v0ocOwQIK`Y=pL1GCjC0E5)ML4*UQ=f3`r>PiDrneh#&1(Y?uiMo^f5qo@{JE<b
zbyE=O{D7Qvv(BAPE3PepyXNc{qS%VT<a4X6oAW#|L(A)d#}HD$tYR*#$<xHb{D5S?
z#hQC*tmq@dwj2X@i`K;kOsJoV2<+AncW1k=WIExam*|8Z5AI?tB7BM(oxVe`c9BSp
zj>r(p9>8GhDa+PC9yG;lX+D?hQ^fZB&Sdox219zUj_5;+n<0@Wi3@DK`MU8FM!OFJ
z8*_mTA-u!Ab#95FRVWTIqAL#BVQGxE_s?>Ql|@0o9vos&r<_4d!+Q6(_270)6#lu$
zV!j$a?_V0I<(3Z=J7C-K0a^Kc1Go9p&T6yQeAD+)dG-$a&%Fo0AOte~_Z&_m2@ue~
z9cKFf-A41Dz31Ooj9FSR`l?H5UtdP?JS=UU$jF#znE1k@0g%K?KQuwZkfDI3Ai)(q
z#x_Yo6WR_Y@#6I_02S&NpcP<%sw!!M_3#*8qa+*4rS@x=i{-2K#*Qr)*Q$-{<_(<|
z0730e+rubnT38*m;|$-4!1r6u&Ua2kO_s-(7*NGgDTe##%I>_9uW;X__b_k)xlv$;
zW%K2hsmr>5e^Z~`tS-eUgWmSF9}Yg8E}qydSVX0nYZMX_x94QK?tw2>^;raVTqstR
zIrNAX2`X~|h->dTOb9IrA!i5INpLV}99ES|i0ldzC`;R$FBY5&7+TIy8%GO8SZ37_
zw=^Swk?z+j-&0-cTE|LU0q@IKRa&C6ZlXbSa2vN5r-)*f<3{wLV*uJUw980AFkWN7
zKh{?97GmVu-0rs9FB6ludy|n`gN5p~?y51aJzBg6#+-=0pWdZ2n4xTiQ=&3As-!-6
zFlb|ssAJEJL#s8(=odfz8^9b#@RrvNE4gjuEITzAd7R4+rq$yEJKXP?6D@yM7xZ&^
z@%jnE3}bteJo{p(l`hu`Yvzg9I#~>(T;>c;ufeLfc!m3D&RaQS=gAtEO-WbI+f_#|
zaVpq-<%~=27U8*qlVCuI6z9@j)#R!z3{jc>&I(qT-8IBW57_$z5Qm3gVC1TcWJNc%
zDk?H3%QHno@fu9nT%L^K)=<y5j8-3OLoCwml<m#@a2$TO^5(_-we401|7KH(F{xle
zu=0_Sg!kbGYy25rD<nZeZ{kAp9*E_*bc7OM{Of}>#sRiRNg|=%<E|Ca3Q|0x7HSHc
z{ld(ilKgxux4G(17ZVL?iyT{C;CgvryHzGF6mGg|va{LJT=9ILH6TokVZBad;E0>M
zR;8BE)QA<ZwMA{E(`T1LMmc2??84y!^Qh`i-9QajvsfolrXdPS`Q41!Rg4pyt1mVf
zx*lGrA^{XxdZv_6j?V}P@D!0xPC8+KS#?u1SgI<35ORP@C0bz5Xjdj;rLcsg+tCdC
zgfu@@W1QO6<po<L<4lPGE32&BU=t-L?E|M_jtx~p$PYEIbsn@A+$E4%vB25$MS_c*
zNAYWBv$3w;nQbk(yDwgDE>4#Dsg^EakzttRg9pkfIrF3iVYVM#*_<jJZhSj+=C5$}
z+9-V?yuj3z;(V-yx3cFktR2b%>+#3X+~qeZc^WQJvEyVlO@9=0pl!ayNOh|{j0j^a
z+zi_$_0QKhwArW)sJ$wji;A`?$ecbr?(4x5%2pLgh#wggbt)#T^2R3a9m+>GcrUxU
z*u-WTgHAN*e!0;Wa%1k)J_P(Vdp>vwrROTVae@6Wn04q4JL-)g&bWO6PWGuN2Q*s9
zn47Q2bIn4=!P1k0jN_U#+`Ah59zRD??jY?s;<z4_rwa|@e<wNXd%o&3A}eKXx<yjF
zTTkpcsgA7NIv=}eBSBJ^;M!1|c2jX0s@_}Q)#6>U;k@%q87=dM*_yvLN0->qswJWb
z<x!&rY&2O<B(q~zx_=-q{T8<qLr>Imaj{Ah&`)C$u#E0mfZh;iyyWNyEg;w0v%QS5
zGXqad{`>!XZJ%+nT+DiVm;<DrU}w%S2N4HKC&HhxABT$X!|G*WV|7%39mrQX81uPj
zv#2wpFJ2uxd+9@K%YoXcA{LS)<WFCt@2@sf$I>lahOGmZyeqJ-;D&!S3d%CQS4ZFM
zkzq5U^O|vIsU_erz_^^$|D0E3(i*&fF-fN}8!k3ugsUmW1{&dgnk!|>z2At?h^^T@
zWN_|`?#UM!FwqmSAgD6Hw%VM|fEAlhIA~^S@d@o<`-sxtE(|<><#76_5^l)Xr|l}Q
zd@7Fa8Bj1ICqcy2fKl1rD4TYd84)PG5Ee2W4Nt@NNmpJWvc3q@@*c;~%^Vasf2H`y
z+~U-19wtFT?@yIFc4SE_ab?s@wEUfSkOED}+qVjjy>=eac2^S^+|_3%cjH%EUTJ&r
znp9q?RbStJcT*Vi{3KDa^jr4>{5x+?!1)8c2SqiCEzE$TQ+`3KPQQnG8_Qk<^)y_o
zt1Q^f{#yCUt!1e(3;E6y?>p+7sGAYLp`lA3c~Y`re9q&`c6>0?c0E2Ap5seFv92#X
z1Vldj!7A8@8tWr&?%;EBQ_Fwd)8A3!wIx`V!~~h(!$pCy7=&*+*uIzG@*d%*{qG#4
zX0^}}sRN^N=p{w(+yjv%xwb!%lnVTE7l1l6gJwQmq_G83J&Y98$S!r*L8}IiIa2E=
zE!0tbOuEDb*No0-KB{zjo1k#_4FHtr{!)>o+Y@bll}Sa6D^xktI0H&l{jKAK)A(iz
zB-N00F?~Z}Y7tG+vp)-q*v71(C}65$-=uXx^|R$xx9zZip-V>Hqeyfd(wteM)+!!H
z$s+>g4I@+`h2>C|J;PhvtOq)`xm4;CyF}R<)!ma3T{Vf_5|zo;D4YI4ZDBkE(vMeE
zb#ZV;n}CgA0w8x!UC2&5Z(K)9bibj#?~>R(72lFx_Am~jS?;7mo~p+05~XGD+(wV4
zEVYnf0N5+-<tP?1gB|glI&`j;EH@4!XKT+aAk1Z@L9<=6LSY9eH82@H$6Lx;1Bxcv
z%5^A}uY?_hP^bayLLK7J%)3cT_fR_18XOQ&cV*aaMGjT;&gDDL^BhVUh(<4F4hH3c
zF$M|KB70L-z@{I4cBYj0`fF_cxCFUjnxu>7O+Gc1L!sPGUHv<6=cV8}*m$m`kBs@z
zy;goR(?J^JrB7uXXpD00+SD0luk!vK3wwp(N%|X!HmO{xC#OMYQ&a7Yqv-54iEUK4
zVH;)rY6)pUX~ESvQK^w|&}>J{I?YlvOhpMgt-JB}m5Br`Q9X+^8+Xa%S81hO<1t#h
zbS+MljFP1J0GGN<u*_}U>R1}KwE=cfey%;@n&@Kli+Z5d>daJjbvuO3dW{r$1FT0j
zR$c9$t~P50P+NhG^krLH%k}wsQ%mm+@#c;-c9>rYy;8#(jZ|KA8RrmnN2~>w0ciU7
zGiLC?Q^{^Ox-9F()RE^>Xq(MAbGaT0^6jc>M5^*&uc@YGt5Iw4i{6_z5}H$oO`arY
z4BT(POK%DnxbH>P$A;OWPb@gYS96F7`j<s%D8sEa?)~9qI9NM3KMj#n>Tn6JO@hdM
za>_p!1mf?ULJZb1w-+HamqN__2CtI%VK`k^(++Ga0%z*z@k0wYJDqT^)~%|4O299;
zh1_iRtc7you(kOK8?Q$R7v-@Qk4+i=8GD2_zI0%{Ra`_prF{+UPW^m5MCA&4ZUpZb
z2*!)KA8b--Upp~U%f+rsmCmV~!Y>Gzl#yVvZER2h;f&rkdx{r#9mc8DZMJaQXs?SL
zCg3#>xR6ve8&YkP*`Z=lng|Ow+h@t*!Ial*XQg3P;VS8@E1C)VS`?L9N+rxlD7bxC
z3@Ag)Vu?#ykY`ND+GvRYTUP&-KDMiqly$Z~uFXt^)4Jjk9RIs*&$?-UPM*d7&m${m
zm12kaN3mV1J|c6f$>V+{lvHp~XVW3DU0;cBR>7|)4bo{xa1-ts<jLa&I4xP(P^UY(
zK^=O2Qw>-lYU-Q-b)_fVVl`EP5X}+J9Ez<Ex`Qpu&R?yHFbL<2c$Q;V!e@I{V!wKR
z7!xcCG-NprVU;C3WX5sx<d|M#WS7cM_k_jEf*uBp3nkhd&!k<vHt0u1^hAKyJwmds
zD7D_NpsMmlXl7Pc(mkTV?`LXRZzE08JLC1i<|KcEEW;jr4E%J$z2FYEQ?magWT$MG
z5w|PTM+AV^Sz~TIthAm)ZPhU}8DhAq7D0JyIc%3i?Lvo$+)+sNEg@Y_iByf8V2Q85
zOBboV@sg~jAmogcwCVaT#eK6@Ti}WBL@#n_)Y$X%FM3dWWfN(uT+lfa2-U^=q|fkx
zfXo?m>T20x8XIv=m7witdu7!3Lh=KE#OyKpT1GWk{YAo^ny|fvZt<+jmsFs=l*%e&
zmRkBt5ccv4O7!HAyv2~rsq*(FmMTm?@TX3&1`nu|7C^F{ad%GLuoX}R<meu_@4fM<
z-!2h@6;xk4-$>l}6`)uHF_xlx^gVca+mGH4T8u8;q{S*x3=j;kelz^atO~)v!Q_BT
z4H6%IA}bvfuk0_vweELeEl8N5w-Q1GF!@f{VKnbyYB2?}d&QvI-j}~RI_+9t9$tC2
z94<uJXj74`(inSXhxsnvUvEd#uSMCc1>m=3eLi=sQb^S5;fqP?3aaXc&<O}>`}`lq
z&M8dOXvxx9Y1^u_ZQHhO+qP}nwkvJhwoz$Mp6Q<HKIeJn^xWlLUhMzd5i4S?cZUYb
z6zvSUafe`@8T+`8>c<DM&nrWh7UU9263B#n^4BDg74A^>q^7M#eWm}!3U@s07hop`
zW24|J{t$aB`W>uBTssEvYMyi$hkaOqWh+^(RV_1MYn<UF!6R+6a*Lj<8=h{-?ucW$
zthY`+xpL?cA9;vun}VrgvC8xfggo(n`UW5QQnEM9{=2t&ulrf<ou?+PTg}FaPVkUK
z!ULy9w0m6I{74gD^)2=Q1#||EMU|xRm9B##^iD(a5&SE|{_Jmif_=MGbb`J5E~Qx9
z_bJ^2g>E0XPgW?7sBDk=Cqs(;$qrPEflqa0ZE?A3cBfW%0RPA235Wb6@=R_d>Sez;
z`spwa50bq?-zh+id~Q!T`AYn`$GHzs;jxIw(A1_Ql&f|qP}|bon#H;sjKmSDM!nyn
z>bU8l%3DB3F+$}|J^da!!pN|DO!Ndc2J)wMk!+Rr1hes#V}5o(?(yQSphn|9_aU<-
zn|nsDS{^x&tweP;Ft`2ur>Koo2IdXJDsr6<Dg_v>IN)7vB41Yy-^Wbo9*2th2QA@C
zE0-0Gk12YOO?d_Gu<sRH1Tl4a&{tqUwG+=b{V(|ew{P^Bv|#t!gRP>u6b3&(PIL`d
zh4{`k54hu9o%v1K3PGuccez-wdC<&2fp)>`qIIaf)R{5un7-vwm=>LD7ibnJ$|KyE
zzw`X*tM0S|V(I3vf454PY{yA5lbE+36_<1kd=&0Xy4jfvUKZ<i&B?KmWgU&frLdAP
zWQ!={R`S{V1#z7QsU$DOBZ}@t9L25+0o>0$Jq!AG4KS7DrE9rph;dK^6*#CIU9qu7
z?)6O`TN&MCWGmUVd1@E2ow2`vZ1A#nGo8_n!dmX77DCgAP1va*ILU+!a&$zdm6Pa6
z4#|*&3dM+r_RJb%!0}7X!An&T4a4@ejqNJ;=1YVQ{J6|oURuj8MBZ8i7l=zz%S4-;
zL}=M^wU43lZVwNJgN|#xIfo$aZfY#odZ6~z?aNn=oR1@zDb=a(o3w`IGu&j>6lYxL
z&MtqINe4Z>bdsHNkVIu$Dbq0wc#<Qh#Z1Sj<sL6gy91C$%5L#9E+9Z38PSLBc_wZ#
zw|DPH+@N@+NzI`Yk=!!wo}kHdjI&@6w?ord2!kF@AT~x2`XWz9Ahe=y_FcM!rgunh
zQpY}tyZU`~2PzLgpnZaWvrVr}q4NYSIrMP#qVu3VkD&#L;Pqe~h5=>X-xev221e~L
zbm8kJ(Xzij$gF4Ij0(yuR?H1hShSy@{WXsHyKtAedk4O!IdpR{E32Oqp{1TD{usJi
zGG@{3A$x%R*pp8b$RQo4w&eDhN`&b~iZ2m3U>@9p1o5kXoEVmHX7I6Uw4dn((mFw`
zilWrqFd=F5sH$&*<FBNV=|$b8j|g-!@cv81Z2hQ&!)rw%dhEENOk>(eJB52zaLwRe
zz`sruIc=Ck75>v5P5kd>B2u=drvGPg6s&k5^W!%CDxtRO)V6_Y_QP{%7B>E~vyMLG
zhrfn8kijyK&bX+rZsnSJ26!j$1x+V!Pyn|ph%sXWr9^f&lf|C;+I^Fi_4;`-LJI&F
zr;5O@#4jZX=Yaw0`pUy<vDqB`SgkGph~aVnBU5HD3ev5}{n-#9m0-lppcQkPV77Oc
zaP${nyX~TZ#;{=UVHO&#@iCI-$A|xRH23$iAf1l*1@OZN&VKJT@UVKzlS10YqAQxD
z*>fF4J8A9wE#7_9!X|_s8~<rFKR+K|kGm@OA?G1Qn4|Qw^xGx~6?VY8tV6tpFL&?B
zElwzoUtJv6YBv4<Lck>YUzWu&#E^%4NxUA3*jK-F5R3LP2|msHBLmiMIzVpPAEX)2
zLKYjm3VI4r#7|nP^}-}rL+Q4?LqlmBnbL+R8P%8VmV{`wP0=~2)LptW_i682*sUR#
z+EifOk_cWVKg-iWr^Qf4cs^3&@BFRC6n0vu{HqZzNqW1{m)3K@gi$i}O(hT`f#bT-
z8PqCdSj~FncPNmMKl9i9QPH1OMhvd42zLL~qWVup#nIJRg_?7KQ-g3jGTt5ywN;Qx
zwmz4dddJYIOsC8VqC2R%NQ>zm=PJH70kS|EsEB>2Otmtf-18`jUGA6kMZL3vEASDN
zNX%?0+=vgsUz!dxZ@~)eU17m4pN3xGC0T;#a@b9Iu0g_v*a3|ck^s_DVA^%yH-wt=
zm1)7&q6&Rq#)nc9PQ6DKD{NU=&ul10rTiIe!)x^PS~=K(wX9|?k&{Mv&S$iL9@H7=
zG0w~UxKXLF003zJ-H%fGA4Db9{~#p&Bl7ki^SWwv2sfoAlrLMvza)uh;7Aa_@FL4b
z4G>`j5Mn9e5JrrN#R$wiB(!6@lU@49(tawM&oma6lB$-^!Pmmo;&j57CDmKi)y<h(
zXqL}YElO`Y&m@UsMkK{MCtzLA*X<`cp4aT(>esg~P;lJPy9D(!;n;^1ql)$5uYf~f
z&GywSWx=ABov_%8pCx=g-gww_u26?5st=rdeExu?5dvj^C?ZZxDv@Si^nX~2qA&K=
z2jr;{=L(x~9GLXrIGXs>dehU^D}_NMCMegdtNVWyx)8xHT6Qu!R>?%@RvAD<fTWPT
zbQXf<n()O!xQ#Pbk5h~n7YIct6olxrfE6UPNC}gtKvBtr-K-SW`|*EHXUdOp{F#XY
z?JsnO90yJ*O~g9z->s9er;NMkweUBFNrBm1F5e0_>^%CwM6ui}K_MpRqLS0*@lAcj
zB6TTCBv>w2qh)qU3*kN+6tPmMQx|5Z0A4n67U-nss90Ec_rDF}r)IR4PE{$8;BSt=
zT%6|jyD^(w6a*A5>_|TkMqx~e$n@8{`q?|)Q&Y4UWcI!yP-8AwBQ#P`%M&ib;}pli
z9KAPU_9txQ3zOM#(x}*lN8q$2(Tq1yT4RN0!t~|&RdQMXfm!81d0ZuyD}aG3r4+g`
z8Aevs3E_ssRAMR+&*Q30M!J5&o%^(3$ZJ=PLZ9<@x^0nb>dm17;8EQJE>hLgR(Wc%
zn_LXw|5=<mgh;A%n|KRFf=!tm*s+<J31t9T4~m;{d98+{UM8O9Y3n(H4jT2x1<3ek
zRCP96)YpgXmLb5T8RCO#=@H=-mI|8WPy(|UYm-$kz(=0t1MzP~=;TJ|q`O5>b$6%X
zS~ClDAZ?wdQrtKcV9>_v1_IXqy)?<@cGGq#!H`DNOE1hb4*P_@tGbMy6r@iCN=NiA
zL1jLwuMw&N-e9H(v7>HGwqegSgD{GSzZ@sZ?g5Y`fuZ^X2hL=qeFO(;u|QZl1|HmW
zYv+kq#fq_Kzr_<t;$1-t3`$OEY~3n_q{T)Rou@A)3;+fK`61#)M28uxu-pQIoi3k&
z@@D|N0vw;}fCrrk_Bpr~YT-f~A@MB7zNgvCzi#3OND*De1`PU2K-mM~#&}W>LaezT
zqIkG6R+ve#k6!xy*}@Kz@jcRaG9g|~<nqgOn62L}JrNDZjU4F@aV<%LlNo-^2n?i7
z%|1$7{FswZK|-=pEJmMwPA8WqjwJ0M>j5fAYegGOE0k8+qtF?E<xze>gI99h*W}Cw
z7TP&T0tz4QxiW<gb)txWm7#_bTxNntXapy5bDUCo7H4xD&DjOE8;<3;GBa57DJYnZ
zYz#6XyFIk6(k%&!?Xc#tisS?+poLN_Fmul~V%YHM0M1E@z)4~ejjf`6?8DH0(3-bD
z5P#*bHnbbLTN#v_{!WmT$r@`&i~2Nc`t|XmZ-^%oLL+Cr3zKt~sMp~37c*-Pxa>!r
zF4?|!WiNo=$ZCyrom-ep7y}(MVWOWxL+9?AlhX<>p||=VzvX`lUX(EdR^e5m%Rp_q
zim6JL6{>S%OKoX(0FS>c1zY|;&!%i-sSE>ybYX3&^>zb`NPj7?N^ydh=s=0fpyyz%
zraFILQ17_9<<sDR30@KDNwyojVnat(lC)gJgvUt1uzobNU;2o@xr#!#7^%#jK1iuD
z7r}e067z-?(;GTSgBQ+#sj?SrF6s4ypglFZq~$VVzLvf5FWezR$nLUzNjEQ0AJo<2
zcB9bvm4&6HiBoIY+zQ8CO2E#{Cc9O-tpSb&=P>ettJJt~I+sl=&CPH<r$$NF*gAE`
z_p=lr4JlXKZS)N-Lgmklh}r`zrQ{F%X!spf9^b}Sx9!|LuKV_)@Z30(8oPaQFU>wz
zC9dEb#QFQcY?bk11Y=tEl{t+2IG`QFmYS>ECl;kv=N6&_xJLQt>}ZQiFSf+!D*4Ar
zGJ~LFB7e_2AQaxg*h{$!eJ6=smO(d2ZNmwzcy3OG@)kNymCWS44|>fP^<x&)TY2iy
zd8=u_8UI{JryjD7&f;g$C^xsXX)jROQB+P<9-s1k)feVpMDGRaUZv%fcb`-jy=~ss
z2~a=oT+WYe*ma=*p7E0FtZVj%@!udd*G!ub{?}?k&l5G4t2p4Dx<t007{2niswln#
zJMOhvLlrOsY00{9LqPI>7QkJHkE9JmLryhcxFASKb4GYkJ|u^Fj=VdF0%6kgKllkt
zC|_ov2R4cJ2QjjYjT6jE#J1J<<H4Z-B>xaNC>Xm;0SX<`LuW*}*{yQ3c9{Zl=<9NP
z^2g5rAdO!-b4XfeBrXa4f{M0&VDrq+ps&2C8FYl@S59?edhp~7ee>GR$zQI4r8ONi
zP^OA+8zrTAxOMx5ZBS03RS@J_V`3{QsOxznx6Yt*$IuEd3%R|Ki&zZkjNvrxlPD$m
z%K+rwM!`E&Z46ogX<Y)q$<-O!`Ps?Y)6-+4tJ~;H3Ps$sZq7IohvmIlPfMkf>Cu!3
z8use`FJJ?g_xi?~?MxZYXEu=F=XTC8P3{W*CbG3Wk)^31nD~W>*cJ@W4xg%Qqo7rq
z`pUu8wL!6Cm~@niI*YmQ+NbldAlQRh?L!)upVZ)|1{2;0gh38FD&8h#V{7tR&&J}I
zX1?;dBqK}5XVyv;l(%?@IVMYj3lL4r)Wx9$<99}{B92UthUfHW3DvGth^Q0-=kcJ1
z!*I9xYAc$5N$~rXV>_VzPVv`6CeX(A_j3*ZkeB~lor#8O-k+0OOYzTkri@PVRRpOP
zmB<rRnO}WV)476D7x6~ub!@M-2Qd&zYv%Y%g+p`hDE8{Z4h*5&$sOT^IWG0SZcgjg
z`O&$?XW-TG7xurfM}NI&k*kC+!S8#;INUOgNU?v=AX%E6_4nPaC)wkVTqoUuVAo1w
z)SkErj=K?#WGW12?ghp5<R>V|NKlJT?y4Q82er)@l<zX`5TroC<yK7LQ3#{#fD~vf
z#zjU7|ANemL(L4B*I^%$>K&P%CeLbRw8f+ZC9R)twg5ayJ-Va!hbpPlhs?>297lC8
zvD*WtsmSS{t{}hMPS;JjNf)`_WzqoEt~Pd0T;+_0g*?p=dEQ0#Aemzg_czxPUspzI
z^H5oelpi$Z{#zG$emQJ#$q#|K%a0_x5`|;7XGMuQ7lQB9zsnh6b75B9@>ZatHR_6c
z0(k}`kfHic{V|@;ghTu>UOZ_jFClp>UT#piDniL(5ZNYXWeW0VRfBerxamg4su5<;
z(}Ct2AhR@I-ro0}DdZLRtgI@dm+V`cRZjgV-H+aXm5|Mgz`aZX63i<|oHk-E)cABn
z0$NR?(>fla7)Ong28FZSi9Yk0LtYl5lZw5wT!K5=fYT$avgkMKJWx~V#i@7~6_{dM
zxDDPIW2l{O2Elv#i^cjYg~lGHRj(W*9gD`(FILKY$R`tL2qo&rtU*c;li!V`O$aV{
z!m|n!FAB2>MR_FVN*Ktv5+2dW4rr3YmfEheyD+48%USM#q6)w%#2}~=5yZE1LLcth
zF%VtefH&#AcMx7)JNC$P>~OFuG6sK}F7V$D7m!{ixz&inpAVpFXiu^QruAw@Sc7Y2
z_A^V(2W_+KTGRp2aQSMAg<x6%12zeS27=o$@PonK4GuYkkc8_oNyZ_fx!DpPP7rH)
zq%QZ$f)JMRFv;DSDXcQg2>yV#b3@{?5q@hPEP6oF3^}|@8GuD6iKbX;!LI!L=P#Za
zL$Zuv#=x3fseRMZ()#SQcXv->xW`C|6<d<qjTnlR-zB%D{uMGag>quwqL1M&KByBj
z2V`}(uL4JB-hUs6304@%QL~S6VF^6ZI=e-Nm9Tc^7gWLd*HM-^S&0d1NuObw-Y3e>
zqSXR3>u^~aDQx>tHzn9x?XRk}+__h_LvS~3Fa`#+m*MB9qG(g(GY-^;wO|i#x^?CR
zVsOitW{)5m7YV<iB~ZA&0a?gaYj)AUbCPcfrFo{aih&&1c1xLcoR<G$zDt-`y;52O
zV(4ER?6nKAl>{kb&Z!eXmI}pxP_^kI{}#<BeMXLv4!<Y5yd3DDTG;6mav){xh&<>_
zgjaG)(y7RO*u`io)9E{kXo@kDHrbP;mO`v2Hei32u~HxyuS)acL!R(MUiOKsKCRtv
z#H4&dEtrDz|MLy<&(dV!`Pr-J2RVuX1OUME@1%*GzLOchqoc94!9QF$QnrTrRzl`K
zYz}h+XD4&p|5Pg33fh+ch;6#w*H5`@6xA;;S5)H>i$}ii2d*l_1qHxY<N-feyD&<Z
zSh);bmV8lzMD7Oi=KVNpO%WrkpZUGof1Cd3k?r*Mj;}|oUdl^1J2?mWCwczlSvE8@
zf-qqQ$nDS*hH;1`!sN1#G&zfAFlMU!<No`4=-gY5r9wU_VWyNmA+1rOmx>`L3g=t?
z!-H0J5>kDt$4DQ{@V3$htxCI;N+$d^K^ad8q~&)NCV6wa5(D${P!Y2w(XF!8d0GpJ
zRa=xLRQ;=8`J2+A334};LOIhU`HQ*0v4Upn?w|sciL|{AJSrG_(%-(W9EZb%>EAGG
zpDY?z1rQLps`nbC<D;Ix7t&)6xy-i{Jj_>tzqJ#@wxU4}(j!ZQ{`g`g*SXlLah*W9
zyuh)UWoRCknQtd~Lk#BT_qjwj&Kw8U)w=owaJ;A5ae}3)y>{neYNS`|VHJdcSEBF#
zBJ6a;T)u;^i#L~LVF-X7!E$SggILXMlsEy~v}K*DM2)f@U~g|Q6I-Pss@)`>fgFWx
zsq&7pe!|VA-h;@=fBF{(mR1^{1>ukTYUdyF^#A+(|I<gJqOQ6jg8T)FMHHpBPgGK5
zE}58wj%Al%5^NPj%w`M)s*q5kGz>_&nm{<l*KzZnQFE4XeMQM#I+V|Dz4Na6hUVen
zA*vA7=OQ}~W-e0b+4H_-d_9@_{qe@>_xaKn3h4&yMyym2k-wMFg(s@ez=DPmuB%`|
z6;e@HQKB(|!PU1sW)W6~x|=8m6rL~4dQ9LTk|RzL-_(_77B4I~ZG=q7K%qHiv!FD8
zmt;V<xb90THH1F906CDtzY$k*9<R<^yt=Q=vzV{L7Z@ac%h;3(!g~_M-N8~hZ49%f
z;2fRrBUA68yuh&NwybUr-qPWMOvylxN(@ENBDNX<AP5tln;>nhb{ymaydv2V;X-5p
zTt2ln?kaB9&(dH_X70^@rrCfz)nwfa9LYTHXO(IPcTEf$QiEhTpl??L+`Eetyqof8
zzl=q)?KdYni!C_9b8Z3xm7r5<5ZG-0uA`u^7Dm7k4mAsQ(rkoWy*^DZJa~#y6+hNG
zh?7{D9$a9LS`a@SvZ5?C{JUHovWU9KI}z8YV4pWftx21v*Q;MpU{+b@<PdxGK$c*n
zpG?R=tLjB3=pzQZ@@XZUs9n-cts(SYf{`Q#-58^tK)<+772q6Z+*FaD;sr}NlJ9Si
zInq4cesgHKy2w4L^={z4S>>Or(}pwO^fu0qA3_k_Bo2}lIxvmMhucG-o>O=+R6YxZ
zjs!o%K1AA*q#&bs@~%YA@C;}?!7yIml1`%lT3Cvq4)%A)U0o1)7HM;mm4-ZZK2`Lj
zLo?!Kq1G1y1lk>$U~_tOW=%XFoyIui^Cdk511&V}x#n4JeB7>bpQkYIkpGQRHxH$L
z%tS=WHC~upIXSem>=TTv?BLsQ37AO88(X+L1bI<;Bt>eY!}w<J%2~a3^@;GQk-L-C
zp_J}STi66}cCpD?yd2DLDK)?bL{zsEa;Yzr1%-LoPI<vng{B&CHG|a_62_DzDrV_u
z3z4x~1LRva!GmFdtnrHSAc2yaUc!Cyf{ABgQ%2pNT*ePKCB?1Y65@QKb?Hn?Okx*m
zuuh#hvvIwvgw_JvaXD1DYw~%J(wIR^9nK2;#L3Ewio+`dQ=pzJn{E+OT5`EcoISZ1
zv&u0redRAlvpR2?#kd^{j%t*BItx|k0jG-si_+H>jYoBn#2RGEP49&ZH-Z_}R_JK_
z>o*_y!pOI6?Vf*{x-XT;^(<Sm4wo-g1O%XK31IFzsULSCiFjjG{JwSgescYW!`7Q(
z(lWE=TH<W^E1d;WGreR^`tJlrn>_0}2twfk`*)_lLl0H-g|}BC?dm7CU|^-gNJ~rx
z($>97WTKf71$?2|V$Ybpf~Aj@ZZOcb3#uRq51%4^ts-#RMrJhgm|K3QpCsPGW=2dZ
zAr5-HYX!D*o#Q&2;jL%X?0{}yH}j*(JC4ck;u%=a_D6CrXyBIM&O#7QWgc?@7MCsY
zfH6&xgQm<Z9PS~NG{?F{__J>G$U6Miu$iF(*6d8Mq3Z+en_Fi`6VFF=i6L8+;Hr6J
zmT=k0A2T{9Ghh9@)|G5R-<3A|qe_a#ipsFs6Yd!}Lcdl8k)I22-)F^4O&GP&1ljl~
z!REpRoer@}YTSWM&mueNci|^H?GbJcfC_Y@?Y+e4Yw?Qoy@VLy_8u2d#0W~C6j(pe
zyO6SqpGhB-;)%3lwMGseMkWH0EgErnd9a_pLaxbWJug8$meJoY@o-5kNv&A$MJZ=U
z^fXPLqV6m3#x%4V*OYD<mz!OaL}G{(x(Zn78ch1cePsE^2e~@JWbe|e#aji@$i+vw
z*8J;y4M0v}tb1U|FW0&Qpm_VSbXqDMqhHM<w*8{FF3nKrzBf&1<UYE4ofE$1=iab1
zSH=CO(;$8FovU-~BWd|QO1Y8ABjzdgp)2#Qn&vY50Bs?ueU3Z?TY1r*DTWdyAKwy#
zyv{HOXJ_D3J~Qr@c4s#I_SQAK!-vW<+Zd7ukiJM&Z<)rpu6%QJDBb8oQ@=*vaq}(%
zXdsu8J~^V~wFm2<kU*+D?yEfRnsLCcx$Vn0B))s<KVMOI))4fSq6xZ1AAA0}*-#*>
zUPS&WHikdN<{#Yj|EFQ`UojD4`Zh*CZO4C<on#erRU}n(9~z=`cu;wGrU+`(CL${P
z6~rcrAqg0N#KD3V7qOZ#F$N@3r1<N1n`h|_3s;_whb+9KrYA+un3IQx=cdQSZdU;@
zgMwn+<8Aln_pXUQE8nkorU06BR{|gu#H&WDdwOaf0_?>v`w^&*FfqBi`iXsWg%%a<
zk@*c%j1+xib(4q^nHHO^y5d8iNkvczbqZ5;^ZVu%*PJ!O?X-CoNP*&tOU!5%bwUEw
zQN?P*a=KKlu{`7<n9R(Rg=cLB;D7@qEqwKxaR$R5qJXWA`_I@Zax-;YzxU$uN!#@+
zxQ+y}!5iv{M*E0X{_@u(?G00e5M$<Et|XW<8ewXQ(_LyR(YYJ?$fgKq0do2vh$Kca
zw?+1$t|WsGEvTr>GoA}DE=#nDibRgecw>-*da~7&wgow}|DyCJq!-Lp8a~(zR@tO1
zgu(4s4HptPGn(HmN2ayYs@g+yx1n`nU3KM{tQHhMHBw7f#gwru$=C()`aKZAl^dYc
ze7fC)8EZEXOryk6AD&-4L+4cJ&M@3;;{R)mi4=`ti7IZByr^|_HNsjcNFu?mIE)jD
za2j)FPwRY!R_YR-<hoOsQFHS<|15PbFdJG%afYG1Ze2oItOe*f5_ElPml|ounhrI%
zPE~{!7Y|K~F}fVS)JHSLQ9qeB{$pu16pZ*XbuKoPEL>P?URm0Pti*<n3H9u0W?_sE
z00=RF0hE4FPL-k`ZzxGAE|;a6hnI>e#5jmfK)6EvaKCT{h)kbJl{AGr1Ekt}pG?^e
z*botRf-RsB8q10BTroj{ZP**)2zkXTF+{9<4@$aNDreO7%tttKkR3z`3lj<k1`ZYn
zYn_o{o)z234lQeHSKdd%2@i*_5D0hBkRc}A4oBVwcURG%PTph~Aq76Z&z?&)wfN2H
zEyzH@>d?heAJEe<0%4zYK?};Ur*!a>PbGYFFi(OF-%wyzbKeBdbkjv^i9mn@UocSS
z4;J%-Q$l`zb&r*Pb`U;3@qkc=8QaPE9KwmlVwAf01sa*uI2*N`9U^3*1lLsM9dJ(4
zZBkU}os|5YT#Z;PD8xVv!yo$-n{-n4JM5ukjnTciniiT`(cZ6sD6~67e5_?8am%!w
zeCLUxq~7x-!Xg#PgKV&caC@7mu<86am{WaXo(lAemt4~I$utSp(URWpYNo$RvU*$N
z#%iiA+h`(E;BUg;=I!#EaxO89bUK3*v5Nc3GPmURC5TqzC|))DsFNtJICH6oBW6#q
z+B(<B&`b9YiYge3DOuymRDK2Ze%Ya;wCKX+X%fftd$edeGX@n_Xz5!TRa=fD=^U~M
z9?bZP5VCP0D8WHc?fR-t9w8NRm`liv)^bH)sENnIqPv$6BPTnOKd>N{ey+^mk_{!@
z)VhAWXG=_0j|0f9iJ;c404PiIFqK)(AD05Xh`Fk`r$^b`v+>*g+_+h@r)e+ELJ45)
z?20~u<}HQyQ5AsBz(teF9!!_GLXnm{5Z0e{Ki*@!=&3x4-RcjBn##DDzHJ|KSZ5(E
z9=tFZ)p~-}x%9sCY27)2i>(E-^OiYT?<djgmQHIMPtc347Rv=Q*y(&jD_CtKeZj3^
zXckY#)f|4;6KEIhi&4E9syFn2>_)a;yXAGR$y+E`myMd;xDA#_Q49t*E}&ql#H~|x
z2J2R1_#2lt91NnF!uqW%_=HlbF?A{B{n>}9$g5QF!bh_a7LTU~Jyz}7>W5{_LAov{
zy<f8Mj}O*?NVx0nb9^h$m`({QXlJitjfsb>2_dmGy)d)&7^bJyUjEw%3xj{cuG0Eo
zwL*XQB*Oi=r&HIIecC1%lbE;Y-*5|cL955S+2@uR18JDL<0;;Uc2Q9JEyo1R!!sz_
z#BqnkGfbLP#oQJk3y}nwMd(3Tt^PVA#zXnYF7D0W1)#+`i?<h^`5@8s0};`La7O&3
zhp1*He|{36n4=20msPq<-nH)Vr-1P9p?^Sgf1RhutsNa%fqHCSrog4h>@cm}fBkKD
z+Mpcuim53|v7;8Tv(KraEyOK`HvJq^;rlNzOjIbW&HJDFqW>doN&j7)`RDv#v|PQ+
z03WnB4Y4X@Fe-@%3;He*FjY1MFmkyv0>64Cp~FIDKQTwmFP~_CxZOf{8gPy}I<=JC
zo%_bmue&$UU0|GG%%99eI!m#5Y1MD3AsJqG#gt3u{%sj5&tQ&xZpP%fcKdYPtr<3$
zAeqgZ=vdjA;Xi##r%!J+yhK)TDP3%C7Y#J|&N^))dRk&qJSU*b;1W%t1;j#2{l~#{
zo8QYEny2AY>N{z4S6|uBzYp>7nP_tqX#!DfgQfeY6CO7ZRJ10&$5Rc+BEPb{ns!Bi
z`y;v{>LQheel`}&OniUiNtQv@;EQP5iR&MitbPCYvoZgL76Tqu#lruAI`#g9F#j!=
z^FLRVg0?m$=BCaL`u{ZnNKV>N`O$<S-}rug$^e;;5bSaiQ44v9GSU!DfSLQltFSzB
zn<Uo&fJvC)#$$D-jE@CZ6qM?JPJtfsI~qh0W2lGG{?v(jn*8p5HJ$l*-`V*FP#c`l
zciNQ!&xZWTvC!S7=-M@pPa!dT-m36Ap?Bz_m+VzBZiY{#2%PG>SuDvY`AoyfIzL9~
zo|bs1ADo<cNN?Q_OHXjI$ec4@qo=F|(hUs8s7RPlcy?;gq;6K5opD?9>XMr{tRGL%
zA#cLu%kuMrYQX<hZ7Iw}=nua>Jq8(&qS|UYUxdCla(;SJLYIdQp)1luCxniVg~duy
zUTPo9%ev2~W}Vbm-*=!DKv$%TktO$2rF~7-W-{ODp{sL%yQY_tcupR@HlA0f#^1l8
zbi><!?|KPxHdmqcLGCA9m(j#`++<&}(&XhVJ8#DI8lJsTrZ_I2ba5dickr#z1C14L
zARHh$4(yoq4BX%le0cKlppSF|mqqsSFNIdLjx3eh*i)vMq{|VrF&}cuPY^qT>MV~o
zz)zl1a?sGv)E}kP$4v3CQgTjpSJo?s>_$e>s2i+M^D5EfrwjFAo(8E%(^ROV0vz0o
z-cg0jIk24n!wxZainfH)+?MGu@kg$XgaMY-^H}z^vG~X<yMuIo-a6T+WY8{EBZ<YF
zgIK3JQ7h0t@xF_LwVF`lQWmQur#u(uv>C7z2;p2Kv`b^3S#b5ssMOJ7724v>S36dD
zeypxJ<=E~<BYo6*3!=tpc)T%a*%irgA?_1qXBc`bLnzV>sD4f5wX060RIF-AR0#{Z
z=&y$r8A-e6q18lIF{@O9Mi%dYSYT6erw!@zrl=u<Z9I?E*@RAMygn<|c0_8g?p;(p
zfPx}z^qO^Qzk8()=VB}L9MnNWVGdH1n-KK|f2?iVcCs@U=m4vcb6)DDZRRD!+uX!~
z5AUsL2g0>j>o(3=M*Bg4E$#bLhNUPO+Mn}>+IVN-`>5gM7tT7jre|&*_t;Tpk%PJL
z%$qScr*q7OJ6?p&;VjEZ&*A;wHv2GdJ+fE;d(Qj#pmf2WL5#s^ZrXYC8x7)>5vq_7
zMCL}T{jNMA5`}6P5#PaMJDB2~TVt;!yEP)WEDAoi9PUt89S2Cj?+E0V(=_sv4Vn6b
z_kS6~X!G;PKK>vZF@gWpg8Zuh%YX^2UYPdCg7?EH#^gkdOWpy(%RnXyyrhmJT~UJw
zAR;%Zgb6z(mS+o9MT|Sc6O({!i0pzk;s9?Dq)%tTW3*XdM3zhPn*`z45$Bg!P4xfy
zD*{>30*JsSk?bQ-DgG62v>Vw-w`SA}{*Za7%N(d-mr@~xq5&OvPa*F2Q3Mqzzf%Oe
z4N$`+<=;f5_$9nBd=PhPRU>9_2N8M`tT<-fcvc&!qkoAo4J{e3&;6(YoF8Wd&A+>;
z|MSKXb~83~{=byCWHm57tRs{!AI<5papN(zKssb_p_WT@0kL0T0Z5#KLbz%zfk?f7
zR!vXBs36XaNcq5usS7<>skM_*P$e*^8y1ksiuokbsGFQ_{-8BAMfu!Z6G=88;>Fxt
z|F-RU{=9i6obkTa0k~L#g;9ot8GCSxjAsyeN~1;^E=o5`m%u7dO1C*nn1gklHCBUw
z;R(LgZ}sHld`c%&=S+Vx%;_I1*36P`WYx%&AboA1W@P;BvuFW+ng*wh?^aH4-b7So
zG?9kFs_6ma85@wo!Z`L)B#zQAZz{Mc7S%d<*_4cKYaKRSY`#<{w?}4*Z>f2gvK`P1
zfT~v?LkvzaxnV|3^^P5UZa1I@u*4>TdXADYkent$d1q;jzE~%v?@rFYC~<iuzNW%}
z&<lxOtzR5tXjdhmeb!y=WrS>jB;IM5n_U0;r>5Xmdu{;2%zCwa&n>vnRC^&+dUZKy
zt=@Lfsb$dsMP}Bn;3sb+u76jBKX(|0P-^P!&CUJ!;M?R?z7)$0DXkMG*ccBLj+xI)
zYP=jIl88MY5Jyf@wKN--x@We~_^#kM2#Xg$0yD+2Tu^MZ1w%AIpCToT-qQbctHpc_
z>Z97ECB%ak;R<4hEt6bVqgYm(!~^Yx9?6_FUDqQQVk=HETy<x)ZU@wf8)=!&Y<kLu
zWGerSV5;uV(Ss~f-EUMF)7Ym3J?WvQZ+?`N_<3?}HeeDQ-1ttMn)aC7AevC8EgEXH
z%S9@IG4_1#WR>Wpi!O^<IK-?FeeY}~nnY1FZ!#{Hc~vB?+1Xfd%eQU-Fz`Cgc$MPc
zJ*{#l+8TrVKtVO0=0YFbpI~=(9m3E1Hfr2twqinP2$}j5075saj!Jcicg94oK|i+8
zDl-J<L^)2JWHjmN|3SU_s3DUZx8tInwW%?b(lDwb@rF!1ps7M7=Nqz$9G~Cxug%*D
zk0KH=IY))>`EZ_5AoSv@VbUzsqusIZ;yX<ySVYL1RqLJ9ph2V-I0=X%mbaI5NYGY-
zOCSz51^BclM<BdRc>!4CsMiznO}S{4e>^0`c<)c~mC#*{90@<TgXxqXpzQO-^6-9A
z;MAg`aC@Xb9WYm2?BfkSp<l@Cz)#4$+-ZP-Z(TTR5jv!%rmHkPa#-jOmPUQ1`vYIN
z*i!$1v@F~bV^|NUC%4skZDdFeO8TN|*49y@ooDsu*dv`zvGm3dt~j>+T@%<X$qZ4=
zC<*3d<{q~=wgaC#P!?5+;PE-S6hA(BQYtIWJsl|UgDH(zPhb4vsLA7wRGGcVa@k^<
z`tx^3M8PjL6V_hJfVLahnUsH>EQ~>bovc8n_$bvqkOU7CrYe8uI5~{3O7EijeX`js
z-$LNz4pJA7_V5~JA_Wl*uSrQYSh9Wm($%@jowv^fSPW<~kK&M*hAleywHd?7v{`;Y
zBhL2+-O+7QK_)7XOJAbdTV-S`!I)t~GE8z+fV<jIMC<~}(~#V85VKLFZ3MMr=8TOf
z!O}{i>7y;wp#!wj75drv;R*UdSh(}u$%{V<Wr71S(c#5gegx<RaRY;Lfj%D5%wVIh
z@Eu=8wLLhqQN?Rf3hWjS_5BVdSd5dK$sn^Z-#{FnV@iS)32Bj=$-IdA&P}YWyW+s|
zh2uz)4XLn^dMcj#V$2!^b#h1ajv8iX`7TXq<}Q?bv0&`ZK9Oy=5z$bbx4SS;V{o6;
z$xAk2M;3;GlZt#F+$ZlK^aX)AGBe!XAJrpY5!I*Qp!5Y}Ab#w6+Kswz-p<r?=w&BH
z_w=QBP~5SARP5IBSfxFt|D~0~Cv+$B0IBe}JEwjiDYtO&w{SS`Sj@Ns;Y(yp4@dlw
zIj_O0&qwwg1~og*!DSet<t4o9>Sd0gLeFp;h6FkiVz%g=EY3G#>RU;alRy;vQmk*|
z@x-ba0XKE%IyL4OYw6IXzMiS(q^UDk=t(#XgkuF`{P?=k8k3r)rmhkv`vg@kiWd34
z-~t+1aV3SabTbG=nQYs>3~E<}{5@0g**LAWi*~SfRZhGcgP{e5T!0M7CU}`f@r8xI
z0bx%sI!?5);-wG+Mx&S=NRfIi>V-wP(n&$X0Bhd)qI^ch%96s6&u7qpiK8ijA=X_R
zk&|9f$GXf-;VgnrxV83Cp-Q!!sHH`5O^o~qZu!xny1t?(Au(EAn)D??v<1Uo;#<u<
zt6DFiiRcr7k_5;zi{u5+#zM)GD;ml~eC2M%zm-TR>m7-M@ovk|()C(`o>QMTp}F?>
zakm3bHBKUjH-MHXDow7#Z|@wea1X9ePH;%YA)fCZ9-MD)p^(p!2E`aU9nmJlm;CXQ
zkx~$WQ`Yq{1h5k>E>Ex{Z=P=)<Ej#49vg41$|RJU>N*0b8_O({IeKg?vqQ)hk=JHe
z5iqUKm!~mLP0fnRwkCO<t=1DRCN#BFPI+29>(xxTV@&p+o8wdSP$jZofYP}yEkvSc
z5yD-^>04{zTP7X44q9Af&-wgt7k|XtncO&L@y-wFFR44RsPu57FRvIBaI^Pqy_*DV
z@i13CsaR5@X@xH=NT3}T`_vsy!a02n80eQqya=-p7#YW`Jc0z!QglGg`1zeg6uXwI
zsB~hlNMo)kFL(V3Q1<%8yoI6X7ncn-&&Uh3rL@S(6@wKAXt6Wr=a2ObI7}8$D-FoI
z>AJA>WsBEMi5ba6JhJ%9EAi&ocd(ZsD|MsXwu@X;2h#|(bSWu@2{+c7soC`<N-us%
zwC+KRPSF!$&8)ag6}`g_W=Y-FR2io?sYDG><oM_V+}8_KtB~@SC$d-cD`MA@W9s(W
zx0!iijKByVNV3^bVcwjuDKK?M9F!E?{ffzq99|(HQ+4zKI~u?0a^E@e{AIDEvDBYk
zYPT4IdE4)A94g1Xh+f4GUL6s=ACPZOl_9c)(=U}he!^wCLDC!}yG1Nt${uC8^aj|;
z#3`-LSzZ5zOO@UC7f8(=d<14ISnk$nhZ`JDnRVD?mMvQG+L0(FqQXT8WbeQc%6m1&
z(Cw2K;RGd|d#YJ9o8~=V=J037p#6G|cLa5pm}G~UUQ2op<9c8mE$v#^Oz*(TBCIvk
zg57HvUxHy}{XwN#I+re(dXLe?r^7y2QcoDFeZ5J1y*U9F0LG3sO2`m+hfT8iII;N{
zCCGR-edT&mlO}jC;rdyzyEOf@(mr5$)Bnicm8{6<rU`rFU<#Ks-TiHXy^;NV5~}Sh
zGMGEH(013&d6v862FTkB#x1K8@RR<KO|=>%uo{sMYq&Vyufb)?OI59ds)O+kyE8@G
z@tlpNr0<P9!P}mChFSI3w8y_T<$MOFAvwvu40PR-Z43LeTZfb^;_!{%XdCE(alpS)
z$+(yv=PSz*uP~i@XpoH5SX}0j6IH?ddb5%iD=`438V7ZQtAm*>UO~}qd0HQve6njJ
zda2+l$gdX7AvvGhxM6OToCuQ|Zw|9!g1)O+7>~{KNvASjp9#Cqc<Jjn%6{ep4~BAW
z2JOQW>e-or+y5xdzWL3g<qZzU;EfCG!yYQi_9zCslh((Y84!DNy9K1Ss5CWp^Dg4}
zVvpwj+11JZQi<);*r$4PzZIl+dw1-i3+p?&H?zfhkjB;66CZy$eg8g!zsYk*9T8{Z
zs*fqVjgU?qZnJpDE@C;X4vLC;px~iLTiarv5<28ZvU)^X|BGD17eg>L<X0xLdX3ay
zOGs5DA)8(lJx~r@Em<2wsQ~@A>Wt2oa+T(I+{j(&bF1laUsJB{<yrlcGHK}8AUhC?
zoIVSfR^Gs9OoAB$lw6C~g~<TN_RE77mV})YIN<3x_HML@`slvWlDpsZbyRh#Xv(hw
zs&)uHejiIS2hRZQl6tZTX|FfXIcE_}N66@%@H^d^^#z$b{Lh|W>fOgE-B}qslaS>C
z)TjzG8XecbS%a+?yT!0QmTex?E478;D|sL*oS4C<IT~42EoCkv<fU$56uJp3HHsR$
zo;gN33YHOV73J$E;RfCP$fQ~7SLTRE(igk5nZC4-D|24<emnkf&1IY7H)IY8JCQL8
zC*{_--jSlZgbzo9tjGu}$YGpIuQ|F0O-di|Ru08rXB}ZLHm}(rGEmtR-*g9e2!J=y
z!Ab<m`RIWboe>-g0Tq(YoH|eyxJ#1j088C|U-w5id`%Sz7X_w#l+U9+)$|2no<}5J
zRb_9@0esSr?n}HvVGbD5@$p$8k4?qOe-GNOk3-K^Mw>Xg+drCKi5@$GTeijpI;;IG
ziD<&go`ptLC&^<0jw^l0aY?_pUUK+xp#0Bk66iQ29vpR)VBE{JOJ&OL^gKsN<&t<|
zCMLTYM<?a@L*q&V6@aF{`o8}~9937t!vg&HGL*mp0C@kMIQqw<xcmnHcqqltNzm5X
z`e$1rWo~2qGoEqz!EFDZy-BvRzU&V&g*(>SDG5Ie9O>6Dl#T{@cscz<F*(G9a3U(n
z4-?gMvbFW%3%;+Q9*~|WAtYZv-f=fw&5_mN)epX#i!JYyEYEH4hv(eiJpfgPngYKC
z2!ehXQKsnZOVdovW$GZ0hF^=b+96*}=IPfgf?_czLPF>%)}?tC#?rj>iwQ0!YUk~R
z$rB-k=fa9x&631Z9Mfqj_GRoS1MzqSMEdaZ2!isP19Sr>qG8!yL(WWF)_&{F)r<r7
zFroT<t<|(9`RC}+mJTJX^yO|b7wx}?$Z+X`Cb%Z*NKI=vcStd*b(s|Irgw4o?SX_N
zTwm!T?4{_!I%w1Pwr~hE?f27<9dGk~3)6>>KnJGSciSp!P0fqHr+G=fGO02Q#9gHK
zpwz+yhpC4w*<9JO@#(MdkZcWbdCO5B!H`Z|nV?UtcBo96$BgX+7VYMwp@b-%;BrJu
zMd*K!{1txv{kHKPDs9?WZrz_^o1Tq2P=+=|E=Oy4#WE{>9}*9(apqhmE`&AeBzQgQ
zELFLCmb~q|6y0FCt|B}*uI*ayZ#6=$BpGtF{Jfye#Q>FZ?BPnk)*Qmd?rNG^tvFUU
z_b&antYsZnUR6<MWPiRKgXZ@POHas$PRDijxVN<aT5RsZTD8jV)w0rx;2cB#e7v@^
zli|!E67Pz6Nh*6Ko#;2$Tkma9H-dh|gL&Qw_Ma;`Bd$s<fA3OZ@cW0$=Y&KziJ3B8
zKT|gu`#lkpcmi#a(Wck|Z8>Q9tQUy81r$&ovT#fy;(Db4F&M*C=KxQgHDrRcVR#d+
z0(D<YzCl%cGT`5RbSZIpuxzhv!aWxCI>|*9#u`w_%2o3faI{?dNd9$#5nj1PROHNq
z7HJ(;7B1ThyM>a@Fo^lJb2ls2lD`}ocREH|5pKN;$>gFyM6k)kZG;lA;@kSJIqUhf
zX%dhcN(Jtomz4(rNng&1br3Xx33EvCWz%o8s;<SUZU<|9r5~p(SV8=KJ;)AvZ0B-&
zB=E0>SpRiKEUFd+KJ+u|gn|J85dZ)Exc&=V|Ns8Xs#P>qv6PX&VAJXJ(ILZO!WJd0
z`+|f5HrEj~isRN7?dBHotcPI7;6W48*%<fsA6?s2cD$ET7tiOHOuu8{I=ZeHF>J(9
zftl1Tr`bKH*WNdFx+h;BZ+`p!qKl~|Zt5izh}#pU9FQKE97#$@*pf38Hr8A+<SbF3
zC^w<foHbyyOtGd=_gp6XQF^KKPR`4-t;!23(jm*{(kqu6&^dB!g#9D4&E-~<^#KJZ
zhUOcK4_&|zR|G~FIBmUj8%fQ?3wZI><tm1qUtJwNrndD)mLb!2^vE(xn6Zu*+6*6?
zPPSY5>`N+50U3$6h%^!4<EJ8U1GnMmv3ME^QWN=ocJxF7vFG$bic{y61q8Ey+=PX4
zqa@uPq3xd1<5-a`hbL1bD{M5O3-cZE;%+mdd}KC?L7UXo6&*{k&o3Bi_Av)Q7(5SA
z2DDCn@dO9)hBoFDTbczfa}2B}DTyI~ZpFY2#e{-Js68;{W$GM6q3JexIeR&%!J=RY
zNeqOBHPMaHd1DbnSoS#zk;f^5sq1oQVm8R98V;_Mx{(M-jI~B!2tHmcL32fx@>fBN
zjh^cl#8qW5OZbvxCfYzKHuyeKLF4z^@~+oqlz9(Hx8vypIiUlt!(vs}_t#4@nh$s;
z>FYERg*KD#Xs+W4q-V-IBQK!)M1)Aa+h+V+is)z!_=gEn&^ci7<<lSp%cV$cgU+d!
zB{6&V-FV{Shk*=MDDJ-mhS_<?j0Sx02?kne9cQCm#nj^O;A7F(ot;U`HCqZy$umDj
z$VhLew_}Z~_K^q(HLZ1_CG#0e)Vf5ht1%!atKtcPv%Q`L+S^Jp;F6jF#R16)E0Gx@
z%I}&fkuPDQ5vlAMqK-Z2F>DEEmYcoSh?WdXUsP7O4)&lQXA(BVM5jI8s6;m<h<nYc
zYbjfRUOcR4OD+U;Xxnj4!p-5ssl<tF%ROb5NL(aKEYxMl!Omsn5tVq6m&@xe9R2ty
zaD)OvJ6OOvVnaP@n|@!1J94bXw<KSpX4^fAg>O}94AC0gG(`>|T)yuV1l~i-ejCCt
zoejDhX0nrZDP|x9u4zp%S2UeDzV`o#pBGu1tZ-$<9TIbN=ALwhQ0=9S{8#}Uu8n-~
z5~xIvUhLSz@c@0|me$CdZCpZl(vQw@a0Y4^{T0w_>pOkwI^x4KkBf3qGmm)nG|Ps5
z_XTY~^b^mL&_*yjl~RRIi&eS(>y?y}O4-)nWyTEPpQAb#Xz8SnnfIL+nAcNL9nqV9
zRL|eyF)RKI5-kJO6}>Q89XmgY@b1&!JI>g3ryZ@jN2v3vm7O`AL!BTWNouJzV+$+Y
zYY}u%i>K6=IYU2O$2TAyVjGt?wgF9xCj;?EK(8fWu!!~48`3u^W$eUlCh*91PLxu1
zR<rN@kH9P?SNX2s^Aazw5IaX7ziWE8THeG60EjU<A$lRyC^WY!o&QLhlUyuPiN25=
zU%UxW)3QEWRW)v1qr`{rxmznF66&k*@0ST;;{>Y(F7Q3s7h$Q-p&L$ucN}it*-9KR
z_<<V9aZ_zaq3i4pukzhO4HK+G$rb3ekIm>wHu?!dav0$P+PI3{J8?{+l|n&2YMLV2
z+hRta$A5WpCXl1RNbYBsX8IGX{2v>U|8_I-JD56K|GexW>}F_e_g_1r?08v8Kz{V$
zT=6aGMk>ibvRO@Yrc@ezaD0%ydHkXGHrR{7>q~~tO7ChJflwa4-xL|@#YIJejC5VT
zInU4CjQ9V0+lClQY=vh^s4MadwQmk7li{54Y;Ht}gkZOIh9(vfK?3kXLoD72!lHD#
zwI-Jg|IhT=Y#s|tso1PWp;|aJ2}M?Y{ETyYG<86woO_b+WVRh<9eJu#i5jxKu(s~3
z4mz+@3=aNl^xt{E2_xewFIsHJfCzEkqQ0<7e|{vT>{;WlICA|DW4c@^A*osWudRAP
zJut4A^wh@}XW4*&iFq|rOUqg*x%1F+hu3U6Am;CLXMF&({;q0uEWG2w2lZtg)prt`
z=5@!oRH~lpncz1yO4+)?>NkO4NEgP4U~VPmfw~CEWo`!#AeTySp3qOE<yqk==w-Fh
zZoMZ&lPYg)Bf{l|^Ec9eHrZHNCIgHA99HK~=g9g$6}JC&SpU*3CM#@74A3F-q;H%b
z?|h7~p3*QyKz79VOM&F)%{IJOaV|%(P^+tYv(Wwoh$JQz(gr}bJQ5GRK7C{yczU*Z
z0d@glsmT!7B#p$>#{<xc=qKc7RmbL$iD3w2I>oUW>FwHkZ3rBaFeISHfiVSB7%}M)
z=10EZ1Ec&<kbU9nte?Sr<dBzRXU#i$*kS$Owlw|Bhmq(T@<et$=Ga&nut&%m$aDFo
z4)XQZ)Cl|y6@#9nrY4Bc@)ztgx@#SpqT)}Gurk@SSEbxhd|F%HO-p5^V(jP^YS&&J
z+%c?oG&5Rvm9?m;x&9<%WaOISo}X}ji<*e=QA(7qDLSq^Y2N2^47cAW)I;Cqh>l;4
zG98m5sU!pVqojGEFh8P{2|!ReQ&hfDEH2dmTVkrS;$dN~G2v-qnxn^A2VeHqY@;P}
zudZD5vHtVvB*loIDF1M7AEEvS&h0;X`u}!1vj6S-NmdbeL=r{*T2J6^VA7F`S`CDd
zY|=AA6|9Tu8>ND6fQhfK4;L3vAdJPBA}d6YOyKP&ZVi%z6{lbkE|VyB*p1_julR^k
zqBwjkqmFK=u&e8MfArjW-(Ei8{rWso1vt5NhUdN|zpXqK{ylJ8@}wq-nV~L4bIjtt
zt$&(1FTIs+aw}{&0SO4*sa0H2h&7g}VN5uYjfed5h7eGp$2Wu*@<SPMp)XHv{s5It
zX&Tv-;;C<TNZ%Oi$|qe=DKAP7j<WeX)KI8N5@^t#2{|BFvgbdm__-Qf7x1hUrN=s;
z7kJoEjE4RpS=m~PP%CvnU~QHxAtAS3Xi!_Hz}%@uZNH%Ip>m9WIr0kxOc}fX9eOWh
zFKfV>+SD$@kESKYm{F*J9<G?3TsD|4f)J8N&K`NhMJ_{$tOBOGp*NSq=4&}<2m<9d
zfkc(GDpy0`)tH9_e^)uW`pEK>0XQjr$!<~v(J%&RMuQM+6CkmnYZDGlOUdq}%)VA&
zl#acS%XE2KuX~7IamK`og@C`21~*cEEc#PZM6HT*Veb_l&Ej~j0zL7p0Eo`mMu(=X
zJ$v;&Lya75I4C^saKROgfi(fdP0C$GM3WyZn%mm3yEI>|S&O(u{{S<}ihUp#`X&_z
zmQBma;82#`C;dR5Sx09e07FvtJLhZ{9R~|$FCdU6TDNUwTc9kNct?8e@o2MpQDrkg
zN?G+aYtTjiUPA=RX5o{4RYu}6;)ET>TcgL^VpfIpluJ|lQR(_)>6k%L^FZmoK-Wm-
zR5qy0P)hm8yvqOL>>Z;k4U}!s?%1~7v7K~m+gh=0c9Ip_9UC3nwr$%^I>yU6`;2kV
z-uJ%y-afzA7;BC7jc-=XnpHK+Kf*tcOS>f5ab2&J&5hIOfXzs=&cz|Qmrpu6Z);`R
z0%3^dioK5x?o7t~SK7u5m{dyUZ#QUPqBHYn@jETeG>VU=ieZuJ;mm<dNK^GW-iRN;
zJMLxWuu(|x_mSRGSd*~}JU=A=3LvF_&rALrxn(a&qn=Fr_0RX(+v|)95jZ9I%y5OJ
z8k#%`EfqvwTjiiNk#8u<7<<OCg8%m8PJOi6XCeKq?fIF~GZ;IgeNbzjX{I!)rOGo^
zb(S|7*C-(e9n2||up+Eq!v`F|goG<|KJCGIpNY`t-zw(!Oj>^j>dZM7))cw?a`w8R
z%3M0R=kdOt^W^$Kq5Z%aJ(a$<BgXoK?$Zt>(*qFpy^W}Ij$h+Jnmc9eaP(vB@{@8t
zz=RQ$x4XYC#enS$fxh@;cSZ|D%7ug;0z{C8I8h{KocN-cyv3UG_nk99UNS<TfllVb
z-!E;EJV-QhI;5;*do3PgAKGT_k_}E!36!e!iSgcK`5T5K3hKY>4ki^OFkYea`q`rs
zG@qdMI;4ogcd5Tr`di1JBg4I*6CFvCID_2SN5&)DZG&wXW{|c+BdQ4)G9_{YGA@A*
zaf}o^hQFJCFtzt&*ua~%3NylCjLtqWTfmA-@zw;@*?d&RE3O8G&d;AVC|rZrU}jx#
zC-9SF`9;CbQ(?07o8Q9E12vi)EP@tOIYKEKnO@-o!ggkC)^#L-c40iZtb4Y-cS>$I
zTn~+>rn*Ts>*y*z^b3-fAlne+M-*%ecrI^rmKAVv23cB`aWD?JDJ5NIafRvRr*~~C
z)99Afs`BPK!5BFT)b_^8GyH*{22}yDq;be`GnPl=vW+ITnaqzl(uYOHhXi}S!P+QZ
z4SwfEPuu&z4t#?6Zaw}bvN{;|80DfxCTuOdz-}iY%AO}SBj1nx1(*F%3A-zdxU0aj
z`zzw9-l?C(2H7rtBA*_)*rea>G?SnBgv#L)17oe57KFyDgzE36&tlDunHKKW$?}ta
ztJc>6h<^^#x1@iTYrc}__pe0yf1OnQmoTjWaCG`#Cbdb?g5kXaXd-7;tfx?>Y-gI|
zt7_K}yT5WM-2?bD<z<eYLu_3x*<lg4bNkg&D$DcqDqv0>-}ym*?~sZ{FgkQ9tXFSF
zls=QGy?fZ=+(@M>P3Y>@O{f<p(Y+FVc%_jL8>44yU^fP>zNzIQ0(&O$JCd_!p?2;}
zI6E1j@`DxzgJv<TxXyL6^5n6)9{m}0v}k;7Il-V;FrjRC7sP(l2GP$hLwm*ric@k^
zpKW~m=Z9d3LPKuy#Ucv7a@GH5iTvMk)qgz%LDMhkNzB60$ywRO@V`F(#{}<$+Lzyk
zBGN|@S`&Q)ohmZ&m1+)n<8~&A63wF&lPan&L2^TRqD`G{H|Ez8+V?0N6_h=G)a((g
zqk8bNicvM$w>qcE@zgapQ?tophO14`=14DUZ*#@%rRi``pi0lkNgidSs<J+2dQpWP
zSDpqd{>HGjXK8gO{drQoNqR&tRjM4>^DtW`)fiRFO4LE=Z+nCBS~|B3gZsh`Y?-$g
z@8@Z$D7C!L9l=SWoE;(+*YirPLWvBd$5Ztn3J3EaGM+#pW#@{3%yksGqy(2Bt5PVE
zf*fICtPp77%}5j#0G8<=v=)LR>-a3dxja8cy3m$=MZ2#$8mbLvxE%NptMd+L?mG`v
zF1cANFv17DqP^P5)AYH<qPZ>DQWHk*s~HFq6OaJ3h#BUqUOMkh)~!(ptZ2WP!<pQs
z&7F8EdRVinVjx8S$;n{FFXXP7?z`wh%X8F%_j6OZfP!YKwNK{_hTgMk`8l|R`k0g~
zjrs#dgW3~0Nn;R7I;#3U)OIgYRi``Wo>_$TBV}!@>Ta#eQS_{ffgpfiRbyw1f)X4S
z_iU`lNuTy86;%!sF3yh<Px`V<rt7>?$5zjW4F?6<RtQC7ry0E-s_eBi_2aOz8iVH2
zt#@RE?5z9_ib|#LgwePCOZ+O-0?8nMWnF9@Qxo)lnG!d2D%|!$Ny!F0V-rWZH}wkB
zXfNBtIgQ4Lxh`g6$J?XUYp$_ps^}$3QKZbp4cdiH4mu@G|E;UZF$iW{edF)%+vl;m
z^WM@E+-}BoQ<rONOrab`qWGwfZ;?225504qe{vAdjrB&mDGlO!YXucN+JL*#{%tw4
zY(+V<+|9nKcfC23)=f;6uUS8fw`xw%H-2V}ojn9a|NQ_xM(+@rpQuWuf=~FHZ_&sx
z4W*sE`8Hkj)Ajca*g!($O~EOpNb=&m`Y5L<H+z6&)|%jzlJzgm_rSJZ|D%InCX@h+
zSmxs#QM^Jg-n_a4`#f}UuN^W6^d(NXmexrcLT-&u2(cBpfR^vmW+G_LA>E9Ts-TnA
zDyx5p1h$Z3IsHv7b*Q{5(bkPc{<PyT7!j#AF)9vzxj{PMQWZ6=RK#rka^r-LIw{y1
zl8+)PnvSw4s`Ev6nl+~E2BiyS%|0{nOgVs+!F)ee|7R?3yUB)jeU)#FUs|%@zfl$Z
zcP#&dgF5{K!-dKJd7&|QtB!7?maaaBXcrzGUCTrpi9sbQTuO#IK8G!j5O1}Cw!Y1{
zP3KMCH`bkark`*-hB<4c(j=Ei(;^`=wazKa<7j*&_5JVbtNgbmrb0nM5mDAKgnlUS
zwLhnZs);FZ9rTOv(p&cZr=>f`2Wfxg*Z#IvQ;W_q9|GqXGj<@abo)FyPtzI~i25&o
zC!cJR%0!}lLf^L2eAfZg7Z69wp{J?D6UhXr%vvAn?%)7Ngct4Hrs@LZqD9qFHYAWy
z4l=2LI?ER&$He2n`RiG&nsfLv?8$Cl)&d8a-~-N`I|&EPa@Y=v@>0Gl?jlt>AUY;H
z`**5bpS#VGhdp4pKbf3iEF*>-eXg_$bqt5Dc%q0+)R50>zd^l7sN5R5Z)Ut+oz-8_
zJ`Z9HE9(=wRTD)T=%GZTEi9K5naPzlfE$|3GYGLRCLsnqLi8Sc6y&iskqA&Z$#7Ng
z7Q@C0)6k;J$TlQ+VKZ5)-Ff_BNoIMm+~!@Cv1yAUI-U!R)LHc@+nSUzo$GlRb+8W<
zYPG%NFfr;!(RlnvBbN~~EpT6Xj5*^Z&73tdIQ$LZu`vkfzdTKa5|JJtQ_rm4g$9LO
zKtgYVdW=b<2WGM3I_j|Rd8gZ3j;)S#AT(aP^d>9wrtQS_+K>pZDX^?mN!Z>f^jP@1
zlJ;i79_MgOAJa`%S9EdVn>ip{d!k6c5%zizdIoB9Nr!n`*X#%6xP1?vHKc6*6+vKx
zmEt|f^02)S_u_wlW_<`7uLQU%{wdH0iojOf_=}2=(krE<*!~kn%==#0Zz`?8v@4gP
zPB=-O-W=OO3tD19%eX>PZj3YfrCt0sEjgTd#b$buAgBri#)wW14x7QcHf2Cneuizz
z368r7`zpf`YltXY9|2V{stf8VCHgKXVGjv$m!hdDf0gi`(Q!(Pyg~FO28Vr#!BYP|
zI)qG2?Ho=1Us9dTml}-ZOR?g5Vk)f+r=dbCN*N1=qNfG>UCLeA8pd3Ub-pRx1b3FA
zEn`CIMf`2Mt3>>#3RkE19o}aMzi^C`+Z>8iIPHSdTdmjCdJBtNmd9o0^LrJc9|U9c
zD~=FUnSyghk7jScMWT|SHkP(&DK$Z=n&lGm+FDTpGxfoIyKV)H6^nY~INQ#=OtIT!
zyB*J=(#oHf=S)MNOncW->!c0r0H#=2QzobO&f@x&Y8sYi-)Ld;83zO$9@nPPhD}yt
z{P`*fT@Z(?YAmF{1)C;o?G@dfd2$c+=Av*|;P@Yz1KnclB-Z-fJQ-=+T*g>0B7!g#
zQH{dHt_%wj=wlmT&m59)TQ~xK)gB6f^EY$=1zcbGf~Q>p_PzDCHR6lndGmqPY2)&w
z$Th^K%1v@KeY-5DpLr4zeJcHqB`HqX0A$e)AIm(Y(hNQk5uqovcuch0v=`DU5YC3y
z-5i&?5@i$icVgS3@YrU<+aBw+WUaTr5Ya9$)S>!<@Q?5PsQIz560=q4wGE3Ycs*vK
z8@ys>cpbG8Ff74#oVzfy)S@LK27V5-0h|;_<C4*KrhuTT(XjS_*82Kt`QAr82sMML
zS-68!S>~=j1TTZ9_1LrbBUHb?)F4fc)&F7hX1v160!vJc!aRI>vp*bYK=CB(Qbtw7
zDr2O^J%%#zHa7M5hGBh#<F)PMv7e0c?twyo1lAE?Qmn<A$&;r6kkp=J7ctT0G~ud(
zMc1r=k{0w~t7ygcr6;fLb?|A1(*8k>8(2IBAk}zdhAk$`=QYe^0P6Bb+j5X)Grmi$
z6YH?*kx9hX>KCI04iaM_wzSVD+%EWS)@DR&<qlaqW5;DH_L|$%=*-?eL>n<W8Ry`O
zI|rLQaLSJ*n{eNuE0(3oOg*Hqdf-ps5^iq&rbN$n&<e;(vOh5iQW!`9j?8UY(`Sd6
z;!k9YqT}tJmu<qCo*-k->WsSBc2VIZ>C(jX((ZiV0=cp}rtTO&|GMvbmE4FpBF5Rd
z6ZG=>X&>N3?ZN2^11pXEP4L?XUo`qrwxgQm4X~RCttXmZAhnhu4KDK=VkKq?@@Q_Z
za`*<UMhK^|d#jpx|2R{30s1lZpK)wnk7>x<R|(DD`xAWNFjr?s<+131A-D2OogpLo
z4@|nTJi**aW@#MR?t&wG57pY!WQ1&i^l3tfvZRtM!_&0MR1s`i*Fsp2h>yHrsAEsR
zV(7)2+|h)<aEEu;*DiK*)T&{?t@NsM`Fl3>%EHHLD3>Qg{>G|ns_%5g5aSzA#z91R
zMDKNuIt@|t?PkPsjCxUy&fu^At*yUYdBV!R_KOyVb?DO&z$GLJh9~b|3ELsysL7U6
zp24`RH+;%C(!bWHtX&*bF!l-jEXsR_|K~XL+9c+$`<11IzZ4>se?JZh1Ds60y#7sW
zoh+O!Tuqd}w)1VxzL>W?;A=$xf1Os={m;|NbvBxm+JC@H^Fj$J=?t2XqL|2KWl$3+
zz$K+#_-KW(t<BO`=w8&{5PfdIQ3)fbJ}8XZ>)MEg6zBSF8XqU$IUhHj+&VwsZqd7)
ztjz$#CZrccfmFdi_1$#&wl~A<U*BXXA3F{M{iiFJ5^Vdf9$UCACCMLJ5P*6%*8;4n
zL@GqW9u%v&$)(Z&&`OVEtKdKQe~dNEB$7rmX^UiQu!G;I`1fpM$|_$Uu2tLt7<Km6
z`*`c!>*RisBaBy~)w|txu1QrvR1?)2mb&m2N$C(5MS%hSX)VJnb@ZGXB5^%(<#1L@
zL^>fBd+dEe`&hxXM<0A9tviIs^BDkByJdc~mtTYr!%F7Q1XnK2$%h$Ob30*hSP$Bt
zDd#w{2Z%x^Wpv8!)<D=t_6B>hm>6u01mY!xmPgwZ#Q0148)SxJc3Udt!-&}eRO^LN
ze26pQB!Jhg&Z>#FD>`C`sU44><=v>O>tJdLs!HPpV#AM32^J@Za-9J(CQjKxpzXao
zQfRkWP%g9P8XV21MmoHfx{DICLSc*t4qVeQL9t}<nRGFav!f()eCpq+YW_GwK-fnV
z?jqb}{AK_5<`9$kah)(SO=agaV}Q{e-pb3ZxN)+$*i_7LT6ioBMQ_?b;=xzVyshDc
zeCnBznuBw}_vL2>&Pz0rM}YTba@XsD=XMW@FxFM{QYQJHvM(JsUSa3mcTUl9^qcVA
zBveO--fqw%{#QGR1vy;x88+qMcgzmcYc#8U`CPPt6bl?uj%w_`b~9JliftnOa|ziW
z|6(q&STs_*0{KNa(Z79@{`X&JY1^+;Xa69b|Dd7D&H!hVf6&hh4NZ5v0pt&DEsMpo
zMr0ak4U%PP5+e(ja@sKj)2IONU+B`cVR&53WbXAm5=K>~>@0Qh7kK*=iU^KaC~-ir
zYFQA7@!SSrZyYEp95i%GCj*1WgtDId*icG=rKu~O#ZtEB2^+&4+s_Tv1;2OIjh~pG
zcfHczxNp>;OeocnVoL-HyKU!i!v0vWF_jJs&O1zm%4%40S7_FVNX1;R4h^c1u9V@f
z`YzP6l>w>%a#*jk(Y82xQ@`@L(*zD&H>NY`iH(iyEU5R$qwTKC5jm4>BikQGHp^)u
z-RQ`UCa70hJaYQeA=HtU1;fyxkcB2oY&q&->r-G9pis)t$`508$?eDDueFdW=n5hJ
z08lH$dKN$y#OEE@k{#|<%GYY=_c~fHfC@pD54KSP9{Ek@T47ez$;m$}i<r~s6c)TJ
zDCEQMN<71?Zuq`iOv09SPmJw?(dhlCAwXunqM`?P$)+klct;@=2<#s1FPu_WQI#N3
za|!GhV}(&!)`Mzf2+_>wR}3?)hbkwS$@p2iVH0IM$lB*XYA+#}-re|UNzCE)SOYwy
z=Y!fkG4&I%3J(_H#UsV#SjHulRIVcpJ`utDTY{k&6?#fzt~@Om=L(vs6cxAJxkIWI
z@H7)f2h%9!jl@C!lm+X4uu;TT6o0pd<Av!LwKdbG0cihYuL4!k943i{SwfXpXc4>7
zteFQ(ND@djf#o2kTkjcgT=dHs7ukmP0&l8{f;o3JuHGd2Op*?p7?Ct=jA*tIg{MZk
z$2Lsc0e8Tdcwr<wO@`i)rYT++Z=4_u(Wpvbm=)@;vy@S|GaEZy44KcddbPYE|6M@^
z>jx|_Ok?9uB3Il|^2FF%X#ck}WoIvrzQXN%kT$9NI{79Wm~gZ3`8I+O`)`n30feZ(
zDO-fl6I<e~IF_1;5TLCuI8uZHkS_a&(7lCr>G3c^8S;Y_M-)+^CmM0tT^g0?H#<c*
z9oHF>>H8!oC8W%oU!~3|DJ?)~LT9*&GAQG13zOGq6gs*={cu<uRfLW*5SCw{NoEua
z&>|(V7{R$y@{-iV*9q@AD(#Ktb}J&3&k|5Djs$)9WM7!6#EaJ_ilvbfUvyh8c?-{n
zfu<JZD#;FE(0Hg&r_rW=qAj53>FrC0u6}UJZ7aj@(cNG_(CKgjQQTA-UK@-MVmick
zot}6F%@jhq(*}!rVFp5d6?dg|G}M*moyLriI!PQDI;E1L1eOa6>F9E6&mdLD>^0jJ
z09l?1PptuV65gm=)VYiv<5?*<+MH~*G|$~9Z3XEy@B1-M(}o&*Fr9Sv6NYAP#`h{p
zbwbUE3xeJ;vD}QMqECN)!yvDHRwb7c1s6IRmW!094`?Fm!l~45w)0X`Hg+6Y0-xf#
zSMemBdE)Q=e^58HR{kWrL5-H0X6pDu%o{0=#!KxGp0A;6{N5kI+EoY_eTE%2q|rwm
zekNeLY-R?<KePvv70Vg%1Kd{Y<xoVBHOhBx_+afLZ<)^ME+36xS{!a+M8miopa^2e
zP`@au48k)(7S$Q<@?bU?%y#yRJ0ma4zA9BgIk2?wu5Al@8}#Q*l?q3Me(vt&q2CD_
zrpldR^R#w2+=LX~h4Ne{M_J2qS#n>htk!YP2|@dbd8TWG4#G)=bXlE{^ZTb^Q$}Er
zz)Fp)ul24tBtQFIegdI37`K$VR3tVdi<(fIsu{#QMx=$&CK9M8oN%3Mk;>ZPd-;Q-
zn|sSKSnc-S0yrw#TlA$+p{J~u=u98s>IoL@cNLOxH=+1m?;t1bR$vR=M$US&Z8DO3
z_&zhQuId1$wVNsS=X?&s(ecIi#00o{kuPs6kpYkL$jMyGW8U7mlCVaZeEL=HsIxqm
zFRLxWin8B>!Dc#9Z#t0RNQiR-@5J+=;tC7|1D*~rxcwHa5iIVD@99cCFE@BukUC-S
z^iJdt?dwU)kH2VY9?|zVShMbZctzFRz5Q4tiXa^>@U%jDYq}$rSyc#p2wXr}mc0qq
z^lT>$y)N(Qg0dwmEwTopneoU(y)>Mj+f{iHM0o|>ZtCg-itPj4addYz??aE)Rp&hk
z_SI)%XeSf=SjZq18h!Cc>Xy&EynnxdHQ){(x@g|ZA%`3LU^KzX02c5N;F#tEk1)7v
z(|V9tO3>?^X|kQ*rRBf4>mWW2$-Lx})|M7z125&VHcxsCqB!<$l1F$zCrJ+nm0f3Z
z%Hq^=SKpHyV2@Y*Cu2x>fXC0SscnR*($zEB{KOniJcpn@e`PMH*_Q6*0Z^8RNCEvZ
z+UU9!927p9YZ&g=bnUvQUZc<V;^M<G%xS@R=D@0n9X`Vox8ALZT{5e&UC13mPi90i
zst7`}8|AC_dvKuSZ3kE8z|`c;8Tq+ePI!(x`ob;<PQR7NR)oke4*L{$RMcI%3^c#)
z#3#~B>disyn;-4;ACXOe-Xor9K8Qbp{ldE17+G@VQT+9ZJQ*9dZoXfU2u<x^@|i5=
z)IRH;tJ>e|mMhrrZk2R7&~YjFW4`BTq45UwVc6JORKU)wBCTa<qAkDbMtHS5cvwoc
zi-ghZoS5)0kO58#)A||SRT7?((k*G<ak?B}`^qYVVBIGQ(H~`Yn^dGO3m#nN=SECX
zFhSqSY*6eJUMX<PVP=z@QM$z6KmSF7wvl%F{vWc{;1`Sd9~9=Y7EVrI6!;$;;%ge=
zzY&OvByIUG4SMKPS*l8#lBmQTROA9&vztUKu|y}b1_T-cbqm2nd9mIsedAy^kfHN9
z<VFxBs2`I57vU(US=&6wUqBG+N+wt8U3%*0$$uzVL-OCi$0?A6#L)oonW0D+v~772
zt(11yp0ejyN?Q%09k$D!EtaQuY84dwrXz`irPcU-1U@F*(Nr`vE=%?M%5AlWFiS)t
z1gW#mM^F)|N&<$U3--LL)~-MOzmCk2sl-VNF%i{*i~UB>nITh0GD}s$`C5pb(9{b9
znwee6j%?-UV)_7opOioCf5@C<E+c!Y4u^LhuF~FEKiGi0V}<VK1xq)}xH~SM1A*jR
zm3nN6EGZ)pHplKXOgc06=u1#k(zkgR1b^!min7`9vqG}on{xqBeR@uBG3%Asv*hKC
z%J;MvD7|-!6l04OAjwTuxWVsQ)+!!_O~y&0F1pJ_x9<bhZ6@5n!W^!(O~%Qr%CJY=
zL8c@gpswPIJe!n+mg7pixWC2KatsRHsO)C?NF}Q4)K2Ti)L#<d1I4^iJR>?@w^@g&
z&6<hPh>8+oMmV;5JW@TT63&CSDrfYL2$L)pVseDtAwPwleEM3F^-Ufn3PpfxFmx6o
zQ`Wq9x#d$e`VKn5LOXNsrqhGao7~|s(u~drPrZ+;aP!C%z4NskZstCbAibD}O%8Ij
zb~C(taxco~WzJLxhL1T}3ctXMbV6}_z=IZN9L0|SxLSe`$X`<)BhM`$1&&)e_}fCh
z=idVL<+u6Vn{&ksP*ZLlMo$fC`dtzF_?~L?4Rril2G4%v5^7sUa^&8aMtMX&mtapl
zD(dW|cisM3fqMaB`8?QbkyiUl2g>hMB5EoS&IB8T<h-K}Xwcy|!mwXLSJ7_p93fG3
zWGXigT_FQk=(qVGJc`g6QPn^je?h+amV7%|{ulkKqt8iq^b02IUoiO}5bgiMha14r
z<bNaD4XXNI<s#Cj&7TfO9ShNta8*H=*?<nEettB;*<Va*WPdCI?AFdS<<{CvuV7vT
zy{}Q9b^|H$#8CbdDcUf}--yNUP29{(-F&-JGc*4Il%|_%%<uP<P?nq_NPXd?mfUuZ
zMsxGH-edKDZF<sWm5;?XW?|*>doC<zYA0Oib(G1n*?x}Iq%^f0n@bTq$^^$YS+tDM
z3O6248R>~)b$nT=`%GgU`k-)+8}`)F*~I~DXMaTP%kZftx11~?iALs5J+&Rom#p%Y
z>dH}-euH4u=_V3hc6^*2WMtL!9%yRTJ93p}@aV0zdY*?xchFI>m+UivV=;aMFp0P~
zwB8P)wvV6D-GL?6hJ#g7Hy7=2i^&Od#S=j!;Rc_yj<nF~-j#2GDgTDCWkmDd9J`gC
zLMuzQ?@%h6Wh%oGRazY5?Bm%IdDA=4q?YWF4Sv%U+9*R)9{^Kg?q?13kP7__{#wS^
zQl?T2056te!$}HnP|G(AKWbO{F(EL+<lZqJM1By>O!*4aN7{vqzg2t-R|Dav%_NDk
z`H_FVlSi==(~f-#65VmQ{EE92<E8GKieH498+7wRW#_u9DlI3Cby!Ls^b|LT9X6Ho
zv(ZKw?R4Emc2w@IpmKeQoXTCmXWS0J2uJV;5+>x<03lwo5p)s=ZJ^L7PlS>132Whr
zR6v~t(#I+(`usYLCoO;Rt8j&b^5g_xgs*98Gp|N}b>-`HtVm)Msc<Xj$}ya?vHydV
zA=vN{+|GqZ)(_1~n8M=D-M1l7KjPZJ!qzt+!W%HQk9GyyC(;R@f308pa<s6ENT@Q{
z+;q#~;OA}|)<$f6J<?qbV(6uzVLqvxucbH*lgS<A7}5AW{rdWM+sZ(%kVP1fJ$W=K
zy>D)71y?(K6DRCZV26RsHPHKk)EKKZA%C99t3$t^B0<vvo)G_8YN2#-z?}PnjKLRV
zMF0KT^dFG<S8XLz#pXZ2;``uvkb_2vR+<wEA~m+wfbP9R&A^_<YSCQ~EYd}1q8wfC
zHnHLV0p|y${{|w4(r4zE=+NjEP_N3xzdmt(emTxEH9q-B_;r<3Ly!pq92wpcPw}47
zdRb2PNLKGBl4l?xtn}yhwW%_vXM^pjXxq&8qVGz5Kkj97Z|a7HXOT@@#|ZxA3WBhF
zPrZy?CUN}a`QS87$0HLN!ZXv-*?Q>-k5@?E>A-YMbFe?>ms?J?_guHHNU(;id*>xH
zTrtam+Aq?n@-y@uY@A?hy?1qX^eLu_RaH4Ave?A8NapgQF=C%XI7wlcCf4<6BRo_%
zBXxxc*A6-3CruF?3i8HOdbc%>N=-iiOF+9HX|ht6SCkz;A^am&qi_I&qk1B(x<=(m
z>QG)nswCOLl_1{SZ@_eE#m^qb6#6DoMsB*)`17ui+XvF%(}|J4G$z2G*;E!1ERnAH
z@q%=#uV6kBddqy4=g>!VTV)9*1=i{wJ}Ep!I*?)uJdA(LwE?(!?;}_u=^M2NShWC_
z*7l4aBJ=!QVU2-iehgb`$vOI8zkm{W%QO~?xOD;NgI;Iqa3#^$^U5D&McReLe&qs#
zR<<lIr`pbL!li_7kZeK}>^@QpR4#W~Laz+QBsPt@3L#KF`Yr8}jgHe;5(<zs`u#E_
zEu6e5$x!l(wNZ7}LTip%m?o2q6g!hY@F5iq{O&$wO#ur-BIXscI+Q$Krn7PT_J<<|
z`Lpp3T8$IgW(`ZEch55Tr8R@=@5Om1nbE)Vv(292uRl^|AdrdK0t)gB<-!{CDxb0f
zOO&*2{gbqkS-~a8i9&ccGW(DS5{f7qp*Ey`T~b}d>cfpQ=;Zjtbt;c%y^#-m=hqOT
z;KAYakW+$w0&F}>K10&SiPcD9SrDOuczj@U#W})5jGU-_htU`U6Q%wdy((%?J}y+$
z=$4jw1N&#xa0nJo)qTxG{D(`3*#8tY|67hJRF;)r6F|#I`Ar6I0aafR<U5lrJPQgT
zf@nhx7Nydl1Savval4U;rfyhI`waeo|Jus4bY9r+8-MAk_74;xdxsm7!=DrBN0|$H
z@9*!B-3W_kl({-VOWk<Xz>a=kr-Z0I^}9xf^u;G5iEQCbpv3b#S#%H|HYHsQaHK$!
zU#3Fpz8*^pK%RRmX<_09eIVziB0jOgPgFnI-*QcwEBtBiO#v!>{W1cLNXyw3D9M|A
z*oGy(u8BkDA1c;MsXmpK^-~pl=We^RYnhZ4bz*)Q)C2G+E3tgx9PzU0T>c|1ilS!T
zyE=bz`=wskDiOi!@!l?Y))#%{FM`}7r~X)i1)1*c6_2Q!_1{)fp%cS|YF+Q-CB%d<
z=zYus`Vt@Mx*a7V)=mpLS$-5viaKgNB=+zN657qy0qR94!cTtX-Z%KBCg4OKw7b=t
zr=`7q5Ox=lJ%!G5WIyNQC1xpqYU0<e(q_pNb4EKEaQ9G(?Hd{anjulzgD0pMCmq-K
zWaUP)LqaTR7N^#=_Mhl76HX6c@^>{!I$hyrk!6%De$gp<_*Gc?ES(OwY8U^)Kjgc{
zSlhpXDb|;{+y9`u{EuMz54rlky2~p6xX2>MV6BZ&k`$q%q7v(xYps2wr9e8^4<;CB
zc)eA<kvQPmw4$p(IPl||fea*!g6|iiC~w^c$?``vaeC%h>T~B^rjzO6<4BDDH;il6
zFsM8jL+agQ;zazW(uiQjM%fPf2N~_p{cy29XP11_lQFpt`t#9nlk}>fv((FZt-dBa
zuMIc4HmPHW04n0TTG9ug9;&OV9euL$Ib|+M7}}L~z4e%%%<qv#JL{%>b|r<G;vD^5
zNT`!8?Zrk{nZ6$)buIANW8~=A*b*wu3t$k?ao&7EfJn;bJVP|2qiMPwswvFMtB$5O
zn_dM-#TG;u3MkS~dfv4LOY}Ke0G>~6OQj(S2d7XfYn#xp8;KQ55UYu#gY*De5j6Cc
z#R%?rqwpy7I1(kpU7B*Pq=etXeYUn<K1FAFc&lV69S`~?gz<oy+nILJtD5zKj3&_#
zQUm;smLma<(MRI}a<Uq|J=7?$(?uVPP(MseqU~8<^m5T6E(Tov(Mgb9bR`k0@KO`1
zqnA-;DxI1h?f1FtgV2r}B^qIsi`f#}IA*fUkUef+I}m9;rO~E!jBUrGsMsKmaVrz0
zh_g(z2URF{4VcpnDRnSJ+>04jg%ZPjYqQNa$==yTG=6KX+=;i2Xg+kjV2T*Gc!(ef
z`Q4fR*TA=M5-}z+s%YO+!K{k}S**ic&>o4_Tmv$EQTOp7F6TXPCj-UTXy?OQ<ls)j
z-5-M-F%GJ7RW+H-JiQZkST=O)d`;C;Pv$vP*TN$LA*=iFE@)5cNU6TX*H(hJFu@?s
zmj{E*uE6sT3uoD)4;Gml3T2#(0z)W0qb{bA@`*`&VJ=R@A<1t`Y1(qAc{ym6G|i}F
zBGDN3m^02GkM>=%*y62Qajk{rXbR%jMCOFMiVE3KekQa4xR}B%=iPtd8BXo~q$OX_
zSp910{Ew;m|GATsq_XiJ3w@s(jrj^NDtr(Dp!`Ve!Oq?|EJ9=vY2>IfrV{rT%(jiY
zi}W@jA2iqd=?q>s;3%?@oi7~Ndo3Ge-2!zX58j(w&zVlPuXm3rcHb7O0RsM|!Ys(b
zh<z+m3~TL^(&&Jtr#SnIN4~11AiI>(=*&Aywo3vuJoWZnU!u2_4bNkDTc&&bCYc%T
zM~~xYxS#3KXFzQ@OXdc%9QDOxqiTd_<fgK9y0x~~kUTV;<B&f_-Tg$t^aI+zfhy>>
zT;(DX9{5dIuC4pO_xy+3{Ov)1I7j!Z)<V!m4nK%vFD3-h_oUR-^20iy?)^5HmPW2N
z_$`l7>6&nHUvTRP>VU5dm#<il%&q#mOWTm)Cg3hydn%XT$ndu0-6fT^6QI7k@bi*q
z)|RKCdKV0iq19&pMb`8WDML8zm?!@IR3A<KpPb!i;)9wdKlob&G+{l@$M~hSH~OeT
z7wFo|ER`(5=U9Noi7zpnk7)7vZ8h;ywTE&Gjnn42wQWRBWZu%X^ll4j%Mi~f-H0%p
z>849icG)cvl0QOPkCIzG^lOp4#UcNr`VhBp(Ha%8@KPlvT*5u!v_$b#b~%sn3K{mu
zaxeD%Q~{;Lw03ZAq(Pc<UD7Y?b@Gw@1v|oz?@4dnt}kf856G<#&}pp=?lY^?C_{{c
z^{D-crn@4gL!lNERn?o-EO5nCUgeTRmMZQz+~@>-IVj>n*h3l2{sqioCMGatQY0kx
zi`1(WWDQ=;gmLSGptEQ%UFC)th@|71<8eiRtX&Mx@#1q#nMF_BMfQdS>!!Qkx2o}=
zuqRi?`UOX5P3fP%M+71Q$ctH4Av}bXED#fQ`KR4!b~60nsAv^*M7c-x`|~B}XIuq%
zlqIJOf><N=sYlp6#!uh>WvlhQ<Rt<63lPj-fDriiDa8MYJlM?%Ao(P4y4WkHf#KvR
zP%02vnCl?n5upo(3kZd;N(pk=uaTAYtF}ik+WLR?2f<3<J$-+p>@Uw$du|14)tZ?;
zPNZ|xZSwp1y+d4sut8E4*l2JWR|~o0A9vD-<?+N;GE5dY@>?<CNM5*xWUWDY>zC-w
zDc@=wE1YKb*OMSi_Kx}&w;#h3>sHp|8^hnA3w?-WK)X?@Z2dgV7`9Cupf-B2RE4x^
zwlw+~!V9C^tyb`J;m2}ksD`w}G9`yu(^--{SQ+wt^Fu4Li~Fft!3QO`upSkAU?o;#
z(1Q%GUVWbbkTK-M=T+ULkk3s6Dc9`G4CO6|=&<KbOFBlY-RRT^c{#WxwN-V_A8;G`
zGWOi;#de&MK7mY3K0Ve6X#{cw)L6Gtad%C<<Xg>-S&D+rbJQ$`Y-xL~o<EnPk6B#j
zvv@_OX%zc>l;kc(l)VbU>{&>bV+*?ua;$bnDc29RW+Ig16)Vf6=L|fMR_P2b7>6}0
zdlB#-gj|j*C~M=F^2=K*k~=tl6YM3SXXi&K-`EvEXnWz&4D-^hQRBJI3gKKDj^6|>
z*WhHSim1qAffNt60Mve9lfw^+&0bx-AM0%j>QP3%W=S@(l=(nrJ678mRQ(#+sI@d{
zdb#5fo#T;hK7xJ=M58wZf|?DHwD%!OZ3JrTGV5#{cfQwuiMvz%!CQ}CubJ7`z?<y9
z|C*`VTK!+Tj{~Zb%KtII$_<O%`|Ue1Ni&HhGc9ykZKzTrtSXvP&|&vQoJ`P+F$G)d
zH}%gLNGkAB-Y3vE<jr*iy>@rSF<+KHNV2goc)a6hP0oHB@3LLKSH2w{um&J*z1Ka2
zLIR>lvOvh>Oxe%?3A@v<_T|}${zf_&@C~^FCo#jB(W9VLO?DX{)n(BQ0(V0`mI|9Y
z#U3WwxixJkU_NTvA>5q(A@r2dnEXJp#6B=pww$XGU}~1~c``UKqQb=^*2P|4Dq*_!
zhY^i61Sy%T5$Td0O6^C>h(<nglq256xJy|$dp+t~?<5Mh)t@*id}?lo;OTh2equ6Q
z6Imgbvd~>xVvT!}Y##WeT8+s+Uuz=7)~V$>!zU;%d>H)rm*6^IrsCma%|cifwDLk_
z!^W2voQ)D;I$=v2E>iSaBw!d7aD+|LWl2iD!cBw`Q5p1~fk_xGiPi8e^mY&#viTAk
zmaKL8m;JQ4bY(n<q7FTi$+xX1_SpTqXYDqr<p3U<m*_g8vw)GG^O_YY6Bfr5lz9Ok
zr~LX;2|8o}c0Z^>6uBZt02z#noM<c^rb*}ZzFV<=yjuAzBrU`x(nWvPBDfT3PX~}}
z3Doo1IDuLDqa;A=-tiIaefFE7()?&h+rAO85y5!7w%#gWb~^GSQkKi;=7E&0JZ-v0
zU^YC`i$~It>MxTfF-RzjKre-c+@B)#J3pN-Zv7F}JtAwNk3j?OkpVCL6W1)Q$FLAj
zGI!tX;g`O<QQ*h(B+&a@%0TQLZQzC`=_1x7YISx;gcD+89G69uc@~@K2;updjESr;
zmt5o@9q12kl|}}l8^H&f>{%pt=0|q54Jyj##w*4e*|_;Us2Tn?!#^R(>u}|FAw1G_
z#wQsagnj9$TAC`2B_XgB$wNq~Sxgl?#0+QWWcB{G`c6~&SosbtRt}Tukw`TQ!oG1=
zYyL(y<;Wh+H24>=E}Gs=Hs<SQ2GhiuV3Az+{drOj5Pe_+jic!MFM*sPCAZ!k`P;X9
zs(){l=^qjNA3VQ8%gZ2fA?Y*I*tBzGA5@5Fm`G}$SW-elL_mTF3B()-W{HNQaGEln
zVr;;SYDOVIYw5FKR<W1|Uc;wVP_g(zLOiIxp;i&|ccDVN>2%fg;&Qdvr74{E!R?Bd
zIRQ?{{xkLJ_44P@y3^#(Be%(pk%$liKbUUo76wSoVfJmt9iTKL3z{uW6L&?jYg>EY
zsx{<T6R=`Zjz?z`<vL|4n47yi$F7jyysEJmnTK}xaU~PbHW2<I+_M1iV=RS$RkN*U
z*FN}AXd%$TeQ;`)qB~%Z1C23=M27-4W?-(P!P!7po~o=P`<E-T7KI^WQDLEnM=_k(
zMk>kRiW@q%<$VZvbS(TKKTO4{Ad6l^IeY(F^3}=mX9|FZmQ`~R<!Q@HG}gvv3UXBV
z<p3ea$V8wgm{kO)(bIT4cquV|iDVqonkQTy7FKdgMEE1^cW44wCHO}UzZTs!M#Xr&
zp6U$_qH1QrFs#MfH`R4EOJC+9tly;)MTJy#r5^bkLTt4W;Y(P*<)k4q?32+gib;7n
zRhd#0oFRt16e1-F5&=d2j;QFIbj12&CD0)iw%l7LqG~UsI_6q4FG+zZRn&409VBH+
z5Sg}y?1xYpnbbI7V-ZSNXU+8sc-12>ErNxlBPl3ast}W$T4V?SW=6kIGn@-^`qJv|
zZXwhK4Kl1a4E}nLI`rdOi?^pd6;LZ-|8G&INHgOeC5q{_#s+SXb0r(;5ryHFsoTJD
zx$VtNDh=-Tx3t!NTlk=hgAaSM)#U}e>_-Ex(|JoX*hWmBPPdTIa-2(BIOUJ|Iddy|
zwY*J%z%W$}*;uSoB!BIJB6N6UhQUIQE_yz_qzI>J^KBi}BY>=s6i!&Tc@qiz!=i?7
zxiX$U`wY+pL|g$eMs`>($`tgd_(wYg79#sL4Fo+aAXig?OQz2#X0Qak(8U8^&8==C
z#-0^IygzQfJG4SWwS5vko2aaOJn*kM+f1-)aG{T43VJA<p``IHHz+Q+YTtZiQ4(JS
zX+EScn94Wgz4Lsq=}&oqX5?MHq@;?i>gxdP(fJ4&U{XR90*#a)G8+clOwdF?hJ?D)
zmxu>0>M|g_QRHe_7G|q6o`C>9x4xd$Gl7lAuR~+FtNid=%DRsnf}YI*yOToWO%xnP
zY*1G5yDn<c-v!aWMHW?Ij!Go=T|IryIuWjCYE<>TGv{{x<GQ9wOOw3m0T;_tt%J`q
z74Ah7*BAD6gIzK2Kp|m4>g5FhWU65q3-|-(+-rJ2WCeSJn(7Az>ej4Jp9+l-GyZ_|
zJ8}>iA4g|}q1AhEEv#uWR&$g&Uyht?fVU<mo*~tGG*v0ZIb)5oiI%N2C04^*&oE5e
zS~q>(qk(j?^D`))s>oG08pow!f>P1u71P%oL2)UC4GeS87&G?{)NE;D=my1Q9{~;y
zJULE=bG6jXE28Y11YmoZoo945`MM*`v%5b=_02*0cwzDve#3(4M}NPt`)?SCa|7*q
z-94ks(R6WH-l9fE4m4}10WSu&O`|;ZCIT%vL$_pbABY!}s33@~gIvZ0H4co|=_-T$
zF#lC7r`89_+RL9wYN=E3YwR?2{$^ki(KKd>smX(Wh*^VmQh|Ob<Jh+3^WFPB2~REY
z*Xyw_SsEfsb(q(%pbTm5&<w>5$n_%N{!{9xP~LJO0^=V?BK8AbCEFBhDd$^yih$>U
z(o{RReCU{#zHSEavFNdc8Yt<%N9pd1flD{ZVSWQu*ea1t#$J5f6*6;<i!*-Gu<#qw
zr4Q4AO-Z6(w#=ZPw!1z_R-|)05@KW<hl5udA5yTYJkNv_eBFdl61c*?AkP7$oOc?x
z<x<!;`V=49<iDlT3SA4x&zF*$Z^XZ&!Mv^X>tCx=&;EIN^S}<jK*rsfCni57MfFoh
zaI&dwJHbZ$fc&)D{`$tAV(2+G`HsSbn!eT1PR;K&nTDU^{oe;JO_f60Ts-ll?r8Ik
zPnp?LA_75_MH)D5aT>*3s%=M#)`~=nz!&Q0&{EP|9nzWyS<#!QxP;!E8&3D}?QKh^
zqGum|+;xu9QE=F#fe2ws5+y1Igr&l`fLyLKry=1}(W+2W`waeOR`ZXlW1B{|;4sE3
zn^ZVlR11hiV~p<~TaSen8I~ay#7Ql=-_|U@$8yjZsZ=Vi+^`JV2+kn+oiSUi<eH8y
z@$I6vg3guJ-8kGpiIyCuSUy6A;a(i3;+woj=cQ2g#wgs~1lh+Z>%omO_+7}saXnJ9
z5ETil<PEat5SwKtc2Q!f*eI%Erm%4Z|LSFO>bag(g#jZPopCgJu+n@(i7g}3EK2@N
zd64$77H5a`i%b%a^iRjMaprwzWz(`=7E6QY)o)gek7H)yZ-BLw^6FAoHwTj9nJtWc
ztKaytMlWGLg29W{?gr|rx&snb@XyvR_}x3fmC>d=-nQp5ab3*whTw}DfUcKlMDDx`
z-%?ek^*|Kqooy#>2lfklZ|jN4X$&n6f)RNNPl(+0S>t(8xSeOGj~X0CGRrWmm(WXT
z))DDW_t&y$D#2`9<-+JT0x1==26*gpWPV~IF=rePVF%e-I&y$@5eo~A+>yZ&z6&7>
z*INESfBHGNegTWga&d@;n;FSCGyW?}e_Qw#GTLHo*fWxuuG@I~5VA!A1pOdRTiPA~
z^AGe(yo=9bwLJD}@oDf$d+34~=(vIuPtOKiP}obDc|?@hY}J*@V|UynBeAkYa?S{@
z_f$U=K+>deTAi&=a*xv>Ruyw$UsTWY=Yn=xjf;s)6NQu>_niQ_idmzIwuL`Scf)f=
zyzK?D5a5)^D@H&qN%F6Zd0JeXX*Knbe~VLe^gi|?JK67&mB4jrapV-$`hCQT;C{%T
z*pjxB+Y|~LD9bmMN%Iq}S$F$x1yWU7@GcR91V8h;!O2I5MN_rq*gRx(k8T!1WSDTp
zr9eJO4$~H94aG^6k5p8k<Om<4^qIVR$}7-89S^Cv*!ogfj$eEPw!O(2IX)cH)b7Uj
z(D{$6AkG~zWBFXWE-m0(g0#;Me9`&$f<u4*0Yi#94G`ohUqed@1;=Jkgm1|*U|vTh
zt&nM}VN$MI(5Pb8Io*fnt5>=kFJ>4lnY0q_Bsa$@vTRW6uY?slH|Qt)Yu6Yun&pfJ
zBi!h;6x?FDs&79#PT*HSCEUsKws#s%TFy*=2PAfb`>gEPBn+D-WdfXA?MkB=<8kb_
z1+4D11mdHG0EcAyg4dneLtfJ8)RyHQl@6hWJNe(d_EjyCHf7%Xsd)S4A-4COz{G@%
z5xQ!P>AS@H@;4W<KcB|c{cOQ*2g|H}`X;Eo??m94U0Z$av_gm_-II2mAV*#d0QEB7
zsxjDOx=tIvaYk6XFlXDDM(R)(hRc(eGSZ)Vhbz^iN`K7?4P>s)N91)3A6PleMe2<&
z!(zv#%Uc?N`(Xmm)OJPYt)BM`nRjoWA&P0Yxl@c9Y02zlPH1J5l$nhPrMwu=atkz4
z)a-1+OEL;d@ctx=s<<+3Sv1VYy0RY<X+ux=2KtT`Vu|w~vi~*GQywuIz7Q_V!Hn=y
z)ZU6YkR>miji|#hy$66#`5;u~BkH4^$EGZ-Y4xyZ=%3KuaeLYKAUr$xMtIh_5mga>
zPz<#G0mQ7IxEw-yO}BueN}RaFlg$RwCDB)vLF$wDu%qZyLYsPKdcb<wALyt@*8W0U
zqSWfMa(_N(R=CrXFJc*SPB7&bo#W1MPzwLctt;6o8MA$uNlEm#qF^&@-Pig^Y~zDf
zQ$poL$<#~N=SdF3)gUAOAiS!ip^ss&mIhwdqMwR^;cN&W&Dre3&C9-tq_YijOMQwi
z$+oHul7HFXyNU-uuiEq1^63NOXgwnU@1O+oYJm64lf`6-Eh)=6E~{BWUTOawUj1M=
ztB-#zP;`DkLY0HB3vw>HD23$qn9i#JFqIo#OK?u7db2-$GatzO!On87%}Br};~#}n
zziVB;qf_4(K$u>Qyz$ln_kBGS!CD-t4Y}9oxL@7@Sx*?NOAzdeINUD>Hl#*V%pfA;
zSA`==YatS*G*crJ3`3ll4)vKss&)UtY#7ZxiVoG%9(4<%`WWcjX2jV(^g7Yhj+h5J
z$5=?S=tuCyEt74^6jo@6y|@~N>&cVfFNtaRl=)Gm!vR;Bc$3-;ySCI$%kdmjQ|si`
z{$q_YCe6vjy6re9jGN|`43D``)1PODtz0)vhV4XV36nVpOnMx2uM%qZ<3TtcI%>BQ
zf0(J`{JqPPJxw><pYvIVsSl6PJoMGZQho;>k#&nIvoZ5e9Sno)<M+aWI>B2r+E0G}
z@&M|zf4E0Q$O*NBR2<R=T|-dFe=pgLp}i{RB)8(%@x~v%=j6^BdSt6*N6>I;?i7N}
z@2^Su#`%qeX}m3cbSojiLk#84kvW1fICNPS`OyT0SpUoA0(s^2m~J<^eKE!dhJx_N
zG_T}0&(<*an>oF=@?6?55g&IxSgY3?7|@pmDRE6gJyJNPH6un~%0hZ@?h=hI6O$b^
z)29#<4$E)cE-5IFbRpk9JVrw$$966UDyw;Iym4OY4Fc!&s1ZH4BJ1-$9<)Zt1c)N-
zU^&9hsk6z?3%<9kGKHW|6~k;&cghtWz`oz`_YjVuvy;B;T67=L2c6=8`7WyTBv*QH
zNv*bo1#KOk{O&)@&pkd*?v+kcJ8tM>AGx$~WMhH{L40_N=bkrVg+^p!H)IqXCQf2_
z0fPig=8CEo>p4vE(nc^DKbZ|9_Xo}$i<nrsc7=?}L#k*l;@(0MupF7>4zJ`jVh95;
z5%aNP3@``=EJ=Vt9U`y+$YtX;%OPzgZ_3+;+mh{p#W&y4-%%Bf`LhOy-*kB0qnB^m
z_nBTz_b?-`F$*ymByshU>D)za2g`0j^ioo;A#QeL@x3@|+_!=YXA5f6Xg(Ack&WOg
zJ<2i|Fd6OmyH!@YSMVxb;=M)ZDhBt)4`5T*>cUXWPG#%@$&*<VQf|_QEj^;1*YoCf
zJ#NA#h99M>>K&u3#|`fm2mj*FKVf?du{xZ}WKWETTFhq6_fO$PS5(ItF=3~pFp~*j
z!ys1<4EL1)#{`mz@gW|t-FpPkd%pK)n_R<XGG4d(`l+MhcMBN~`esM~IYYy6_!rFx
zi{d8*%ew{lp})MvPrpY_KPlU6Z~JBl>b)F;z7cQ6dym_>YI3&e!=!m006oS3Mjq{q
ze%hNzW=G0jpfl2K(x`CDuZCsJV*hm9T~%5n<kIXgQNQAP!`L&M6@X9sbN#(*m#<@h
z%}-Wzi=wtGP^movMlGquoiO4?o3`i5{PXH>7R_g}VFpk`G((D^MWVMAmRp--T{`P;
zwMgD<;e`fm`g3|fPns|6qnd{|FCHY*YAguXH(?%sx%4+Gu|Y)_8mk4EljxmP+MP`*
z`SUbI{TCIN2OV+$y#g->Jqv#$wL;}4xJmah#$0`v^ughM_XjTA$B}ux)JZuY5-GW4
zKy440I+w=ZtE-_i+0xImq}vyzD68?8;94-5L~_O6Ty>X3itdA-x?6P(c4jkr+f!H(
zUDeqiG>3bn^Sf8(`_YwqPeJ9&-@OCQZm4X{FfRMeBtN4E9Ca@;GVpU*L>lVb;@=PH
zTQvTr?^jKyCKh&ZVOI*<<KC*~^3XVwVfca^38Eb{nv~0qIE}HZeQ1PH6@xX9j=JR&
zV9g(^6{BGm>y%<p+?m`qz>T*Aw(XCPr<m!ia5g4Y#nP}ajxm*wuXj;<P^VUy{hE2!
z{HfFfv$G5;{*d4Nyh9w2DD45oj0yXra&b;S<;yi7y4TTHH^RF`4tmVV2(-)2zT|Uc
zBp#RP``Xi6u<*MDkF@RXW4gC*!c<^Me7Y`|BW#!50N68ocGHaqPqwv@$&c)|C!ZhL
zZa1&Cd{-{UBact(QP7|N;&zbI?F6FmH3##E^#4Q2`A_-A_`j|D|3k^iRJU+LUBdRQ
z#E7AbiK6Q^`0*VXW3AS@rC&BcMh4#BkR%<g*cI-CStF2Fgn%kPuBToy-S(u@j%<UY
z>FC=39*y$A`FSzxBiQ#W+uW10d8&gYp4{teh;^p@anft+z$5!Hv&@h0X-@xJ<hC0V
z5NQ!<23a&gVCZX7Py!Q<C!5dfrk3jph84fTdJG>G>hbTCxjDwMiWK@1b%8wYL6BrV
zT41m}tX8g-`P@vj4T!Mlk8F0S!MA`^J=SCy9-jdwDe^hVDa`WwyI^H@ryt=F5y6>b
zT8&iI6&j8edAfX^ycgWbnMZQ26Q~`LmdEScKC8|~$Jgyw(>18NAQ$9AwCRmri!96L
zp^)b0P2CR-9S%cG$#rU}MXnx21T#031o>2VrDs@sa-FpjfvgLPW>Q&LHUoNOtmkt#
zoDZ=5OGp{^vO~=p29^`aXd8K?(+f-bW`N$U;-o;%f?RcR!k02Nod2h^^8ly%Z67#E
zC3|IOuj~^YBO=Fklo@3mvd6I<BO-f+$R;_6;)m=|cJxzrgpiUwGE4Y>{Z*&FZ>iq*
zxh|JuJoo2$p8MJ3zO@dQ;%1#~Mrm<Be@2cYu0c%^GGOhc(C21=on-T=Hcb7}5n>48
zB0053<snZ_Q)+q9Am)fE)VXwukarzr;x1>{1bDi_a@jo<4!@!`w4}B(&Qb`~IeSBh
zu+_yIYl2Wgk+?x4pCmAM>x_SqBPUj#c`C`k>_fp@qPlAAwD$!zOxRkL7;=|nu(#ut
zyF^;&hm-D_;ji{d6rOloACu5*NkF4IC3@rifMG(|^Skv$H&^YnYL*rpw=UCi;JOuz
zN*NX(7wZXS4tF@6PIWAs%*j!$RoL*3sh)}iry%thDvN5AUM888q_(>|Tzt|Yea<bs
zFUsz!G2e(z4SIrgldINq>3AyMYBgm$H_<iyV88GPvpUO1LF{eir>`F^v2%)bux)3s
znFIEBDK;-JS5SH|;1?afJb<*=c5puu=w<j}*^B{~H`bf2`bj2Jt_)m{0#y^mx0(Sx
zuAP%sBaS@P+JTZYuAqVen-Wz}1l0)ac}>%tv#ihn*R!^Hd$KWAp4$#`joJ*)$kNtZ
z2Al6h>Z>(u?3tmzA4^d+jLKx{97!Pb4;CX&u;M||**7zXI7hO6nrdMx*Xa=|-`#1^
zBQ?Ha&7cd7hN=%y4yUp?zl8~Lo;%mQrDe8!ce-W_K94FFMN*g(w8q-_K5S+c<WmVG
zEEJ_sK9zmSF@5;*&Y{LdAHgZbCWE5(MGvPND(SspeWbOl$2fe-X^VCFwU<RH@A$4F
zWD{_$Q`{myCbTh+F2OF=mmBNduFRWz!P!CH?nI)kzg9K%+ND>0<Wxop{UDcr4KWc{
zw4K5(a^$*)5|QJFh@ofNM0PwBD|*gtyuDIrgZdHfXaetIrMMgQ@RRhM*i&yqB&rsq
zD3F`z`*bm>{<BbM=$*(FdA(Gj<CG^PtKUjqsWj@?x%}j+moBaC^0S87XD-EW{!Pi{
zRcb3F^pu4_<|Y(ao3>o29X&PzpV;UJE^!xnFc%b@>kvW4m#xiOj-L*DadC&2N#0Us
z;<-(m1WB7$=j6hjcPC6JB)D3T2#IC`ibu#yi!uK7W2!j|Z>~RaJ*&XXy#ytIk2DIp
z5?Qd^s90_?ILjU#>ZWk5HXts}grg_!Gmgm!d?e<PC~eDJ`^;k<9pBwEtRZ90pBYRH
zr3Ef+CHDEOF133^Q}voowOX+u5LlN`IJH4CHOliZ?(b5lFH}t6qj2E8;t>LGR7xEP
zvTCrslV~94ym5_i<5oqy(@@?wN}lIdtiY8=?|Ng!XeYnly`@9wCGx2S$3x|0x8T2h
zz7A85Vb2>s44rKpI_4Y7_Pnd2^mYj2%^jM|Du>u4`^Psda^JIP%*DK6bo`Vf&f{!%
zDTYCwF5Nhi=)QhU2$@eQv&ZzxsX+Hl+gP6kW|e!n9IU2>Vh~cioI{>4WvR}t*4Hpz
z%5z?HjLGoka}Q3AbX9AkY|Yjf^M(>@tBAI9JO5pDCQu0R3Nns>)LC#vB2p96C*?K?
zvX$un$sBDx$1=+NNj*@Oa@u*b@O*XBr_sg@8sCUq-|LK!MUmC)epklrv}5O_^<{NP
zX16|c$9Wtbks3y7geI^tF5oRZJu;<AG~5!X7b-Hose24+z1b3X{`Nh1zT%@AoU%>v
zwkW8j+8Ccxo9stEDOT_Go&j%$KCgVO7pm+^%PKEPBZqbMw%s@732XS{cX+wCSjH1s
z<N2eX3UI%~%NcIGj+WJ1-MLJ%y-DgbEUi$rLe5CSFuv7!tR>5)bc=g**<^NNsroY`
z?}fHHlg<QL0w)w?&3&%!s29Is7#D;{ac0DC<z+8iMC9rd$M|XX4}upw{OS!0afhhy
z25U;3R8OPS$P|$sRuCBSNBRV1Y;9&!rl$(VF575rTy8APLiIuy->u^B?2r{^^gQ&j
zbF~T((>|Yg&C5WKL8DCnl1}Z3!YHFW2S1|;Xr0`Uz-;=FxEwYc4QpeAtnm7^f~uzX
zl;xA!?>MLR?tL80Iudm;mi{!ewL91KhG7Hsa-XepKi<2mc6%zf0GwtbfJ1Zf-<@Xu
z#|XWDzv|04t)&9Id!UxAAkN{t5qC%%8-WV3i;3duS19%m2||Y{!3pR1=g|zQYAMqc
zff)_2nj-O4wfxy;UNM?|Uieo!^J$A*uDe>@V(N<I!snfp?W5N{&W1iY`Z(Zv1XDHj
z-7DTH_m4n%W?oI+)+wQ>KH;KS;Y_dtE8${p>RdcrW;=2*fj4~d?OG0l-(g?ik}vz}
z)5-wDppVts>K-=|@{=!53?=8)Jw#<?>RGpS_FWpbwtn}{v!JEJ$q-sr7F6&OPBuI#
zuVNFM<b6fa@+xc7C?{)>Pte79XgEu!P&qRq8u4J>r%$l-IQ00Lin90(_KtC)aR_de
zxN=pY2<1b29_^AG2WJIGmmX4rv3$!`l15{e(H!1^+x9voZ6;882YAE12q7+lgy+>)
zj|s0CyzI9=Mo!R}&LXB`&DYpZ7c?0r(&KNV+~TULd0y^e;G{KVR4nL0KvU9mr8&$^
zxrM-9<BULp1ie>P8zE`J?aZ(iB~Rz<{vvnk2HaZU#K$aVFfYnbAXVUOLU#A<S+lSO
z$`#MSd^_uYn>s5JvS%+<hPj+ns1{FB7u^@{5W2OSA;(lkBGQzyEY0Ha8n~H5Sh>26
zi$sNuPY}dLGUS$0g&;oBqhzv2dY`l3@6Na403M!Sh${B|7(y|_cONa;6BrtUe@ZzV
z7SThtHT8k?Rwc)(Z}@BP#H@JJHz&GR&M=E@P9KJ89yQKmRh&I~%vbL1L-K3E>7>CH
z)Y!=jXVb1iPrAoAZZ3}3wU*5~nrV!ZjL5zqJ<@NwjHCZC>68Cc<{&E_#<Qr;)a#5U
z-N8nc#TSx%6ok}vq^}6b$S`sUhAFXGdJN6bT-e6mKD4yfjCU=BSBz3h%adGPrv9<7
zhGGH^$AzxLlC%{f_yLj)(U<<!JP#W$VM-E%bq7P!;7QpWxeRrcbhFE$nnX7l=vHZ#
zsWZIFP3)oOH0w;bQY>S;E*jOdjtg<E19=)ZmgJ~#+wPiPod(%4MWJtYgaNl#MF68#
ziob0|PDpDrQ<pz6`J5g5Ozn^m;PmeJA(q!m_WBWYI2?j>?uKN|l`P8sjz&Qf7a^z9
z;{3-8T+H4y99_zc;JYIvs!sk$G<SQ;H#Zk<G@5RNMQ_4+lLlR)NF^9fAPYY=`c7y=
z{B4l8bd1+ODEeDYwbGRq1?f7&J%sF$Xxuex2!Tg$VR(o&gqAvnLUvLYc0L1wR(>}`
z??mt*Mm9Z@glCZb!X?!xXD-21sFDPEpZOK{sbQseQ$%6~b;n+*z0hRoR}0Pe>B|#t
z$XrVcXv8M|q*Z8MY&r9J0A=d^1bHpjrUXu)qEj~$%%=gZp`^~%O*lzxUquG^p6;n;
z^(3HL+hx4gRP?4N*b2p9!^|2~rcw3!9nQj$vmZusbXYz_x^AVc`3qBFm(jS9ueU5h
z^AnNnbswfQ2Jq=W=T+p-V|nQco@<U0PTc0<;7^LTft>bOAH$pLQZ+BKH8E$iM>IDz
z3|wc?QP`yI=X5YTlp8h}%<Zy)pZp01CF`uRauFaMQI&q5+qHc-F3Cps<+{X=y{3(Q
zt#A~eZw^4;3cu4g*yr$fD;$t%)a+Q93qyhwt-JOrDe>p6{Deq?S0QD$Ug>i<VsT{Z
zNZf&Nn9Yp98S`@4qUbBQMy*q$-3E>h1SdPZg237Rl{S~=Ha4~-ckMoIWMn+X@@`V6
z#HHZj>MQbt$Qqp*9T(cjc^lxZ7UO(>PwzF-qEr(wo`vaulxdall|KP`7p4gd`2<O(
z1N8n;6?Wd&gsWVF75@Ydo$ft|Er-=z?zxs6zd+i?P?cAPVQw{Z$*(@N^lO#~C|q(&
z@$`AIK-3^SBuU&OMr__YtzFdNu>3&Jy=#sAes*0diLB(U$Nx46<srT4sk6o6P7=%O
zhw>VQvP)8idSs8^zaV91xw*O-JMH=)FoJshRob|_)O)ojtfP))WHCr(;*2;VMQ75^
zfN@a^f#o<|*9X;3IcGodLUz-3i~FAu+zI4c5h+nW^h_!^)b*B_xw-l4O$TB(ixaqW
ziMoa%i=BeS<-F45kMO;Tw|FWa`G<G3-xOKhWGvmJx|VXIPEX-V)szfTbyZZ|3z?)U
zc^%hH(1XG2nj5Naz~yvoz^R-hpmMmJmJFYgn!JD=!p+QH0Pr}?k8nVkTAK0y|1bF6
zoe&NVW={Km=KK1S1JaHkWoKKUQ|~l%hNO0dr#zWHmgZJznoEwWm3drKdVX1U6#L5#
zQWoapXYd5EER}9eKX%8Crr;J*BU)>2c!SuOA3CbowPhF6csf1|&qqugUrj;UgGHm|
z;j^yoH?MZhR;AYOW_XW2Lg2j%%ejL)B@*bUMD`g<#Z${1+fa57r7X<h|8nBv8r>82
zcqY-cfPnK%Y^3@s<qw39I3*A%a&Yr;y*!1LsA=td!6Lk^l}EQY)stIuf#mjU!CHAN
z%_7ndcshx}XztT;N<<N+cZw*^DxGG5)9IEDE8Q*-2_bA%d-<SA8Na9gb9H8>zRner
zt)bBToYCph6Jv*W+&t?&9FG4(Iu<!o(3LVe*X2KV9iK4%?pBR-1s<PB2~1fo>2w46
z4B#AcFy_^J@f*6<{>CN}Sj969*DYV*e7<61U>GoN{tz!Do90+jApFueVY_IW(MQF;
zl?4yA_(MvMwN&pWKVyg{3uU_+y6RMdot2vu%mC?st=N0pf-~JZXE?3JFf)j<{1xsU
z`2ephz)#HzsW<ft&J}W0BCk)zh`<=a+Z~$D&vD5)aiqR=aJA>EP!inHm2hI(V(~@W
zY7gGU-lO52cHD&SY)>QHgy$=>^X%u0TQZfCizro!*weMyvZC=;MWOawdAx~`3C*W`
z%^#^$uRP;gyqEE0<(i8xcQY$oc+6mY#z{-XFxsO1(cN8<M}(uexsybCZ<}?BPuLwP
z^{{b#pPOqjey#%Qd{&nv!!bLOaw*P)s{IHOW+JvNEi{WIa(FPm7xx-IfrDgNm#{js
zM)FIJsCh$*b(5CM>Y)>p;^q9|5bk`Z*p|c!?(rErw#y;yT(%@c7trQBv6cj)$3>pI
z>tz+;IB?D=aQV=s(n)o63*yn8dX1m7#Z4G{%fF@K2o5n3jxR~mU?nzMi#;}8e#(>{
zy{Z4!AI)jZ8TY;nq1aq}tq;~=zzoTv)er06oeX3;9{uP{LWR*2%9cmE%S^`~!BW>X
zn3PZFTf3g*dG68~^1*q@#^Ge(_8puPEFLD8OS|0b2a{5e=N4S%;~f3tC>F6UxK#v9
z)N-#Mv8=ePCh1KsUKD1A8jF<m)s1*e(Ok^!*@9Xtd%5^n@@B7YEsvFcvetT!kL);|
zvZ=Rt08Glh&xQ14c~@xfh?|gsRgH|<5tr$_5)L{4e+G*M4fJTEGsd9rqlF6u-?!i&
zz1&M^b0xcHLHgk+^DNBwfpX5x!jGLySKeYx>_%$MPf|_yCN9oy%*@um6D{w*2|4GY
zb}gafrSC+f=b*W{)!a!fqwZ9)K>fk=i4qf!4M?0v{CMNTo2A9}mQzV=%3UT&i{3{W
z>ulG#M!K7%jPf6Mjff9BMslgQq3zIogY);Cv3v;&b#;^=sh#(Bn%W)H*bHNaLwdpq
z85%fUTUJJNjYO_426T2TBj<?NSs;23Ek0pi`55pxf$Vc%b@&Y?;cmh?dMI_>0D{6t
zw&S_HZ|C?pI_2q(9Fas&@uJs6nVX;P*5K#6p|#)_(8PM-{L(;2wl`ma{ZAd5gA)?y
z>0GSLoK<*FwW+G8@-M3vcffg7I(qm7lzF)n`Q9iCv<vWIg-udr&$6Fj<FG)__)$*P
zQ^aMTptP8LKS(=EGfm@w4RpEKhbV9WC&9qo%Gydx9UxiX0^YYzBv|u%Z$U6!@P0Im
zyWvV(m(%xve^3U7XyCWs0@{xg`24NshRdia$;)YK@x$d00t21?m#_!kGu#Sv_P_-2
z*GUD;ntm69^-GNX;o-oDz@@kEBC7rvaetsWh)eS|Hr8HBy?z$`>p*mn7=|CjlpG{x
z&r0n<qKJPGH4ljTR{Fos4%ZKnX@ONLDDp1{-Gh>}XLWZ!>=lynUr7D`6n`7a_ZgT<
zm!i;&?Fb0Q2QmqmCHfZ7ex=_tU~(7b)L?RIvPyEAU=gLIZ-VTAA~WR00yKyTXg^(G
zqWLZJs!FnQYMOH3*fN&Tn(IKMLf{Ki?pRo8zZJ6YVyj)y0^)-sR}2-)%mI(Aw2AgT
zbbp1T{qB(OSNJd0cVBH^tI>HR(q+#*lmi@LWe*rZz&M2h1L_=50uZ1e*n#E*`6?aw
zj`ka&JpceRGe@}Ey1)Q~O}0qHRg4K_u>4e1arvJ7Q9!=t5AuzG`n=a-f0}{+ln<V+
z1M4)Dhm5O>CE#zu$`oVn44eS&T?N*wz~t~E&<X{ANWdYcze&LUZVFg>oQDBrB_MSg
z_yVrQehWbD0xHX|v-hpselAu;O7s;P*!uAT`dr~}Lie=tknaGoiU?;*8Cwgala-65
zosOB4mATbdXJFujzgA4?UkCKE093A1KM?W&Pw>A?IACqg1z~IZYkdP70EeCfjii(n
z3k%ax?4|rY(87N&_vhsyVK1zp@uils|B%`(V4e3%sj5f|i(eIhiSg-fHK1Pb0-mS^
zeh?WA7#{hhNci5e;?n*iVy|)iJiR>|8{TN3!=VBC2dN)~^ISSW_(g<^rHr$)nVrdA
z39BMa5w<WZpdDM8xMIAifHkR~C~eIOXmNBeGe5HQ{*?9eTxf6=^ilwlO##W6?s-p_
ziAD!V2Dem2z&#z1pPw^M;L{DS0I5a*rL{K;_!`iDSmp;X4zApXTQ1S<y;yz%G#{Wg
ze+y_oQHukFeo-s1`Zu?-a0N^#S|NX-U$7hVuLQJTzRm9eKRPuB>l5q+5F@)4b%5->
zA^-P20l_e^S2PTa&HE2wf3jf)#)2ITVXzndeuMpPo8}kphQKhegB%QO+yBpDpgkcl
z1nlPp14#+^bIA7__h16pMFECzKJ3p4`;Rf$gnr%{!5#oG42AH&X8hV8061%4W91ku
z`OW_hyI+uBOqYXkVC&BqoKWmv;|{O|4d#Nay<)gkxBr^^N48(VDF7Sj#H1i3>9138
zkhxAU7;M)I18&d!Yw!V9zQA0tp(G4<8U5GX{YoYCQ?p56FxcD-2FwO5fqyx@__=$L
zeK6Sg3>XQv)qz1?zW-k$_j`-)tf+yRU_%fXrenc>$^70d1Q-W?T#vy;6#Y-Q-<2)+
z5i<sy_VBO4zb#epTUHG1aQR=;4u07RE@AK^KMdNu>Tl6MA7j9m&oBhRXTKr*$3gec
z3E;zX457RGZwUvD$l&8e42Qb^cbq>zYy@ive8`2N9vk=#6+AQlZZ7qk=?(ap1q0n0
z{B9Fte-{Gi-Tvax1)M+d1}Fyg@9X~sh1m|hsDcZuYOnxriBPN;z)q3<=-yBN2iM6V
A?*IS*

literal 0
HcmV?d00001

diff --git a/samples/springboot3/pet-store-native/.mvn/wrapper/maven-wrapper.properties b/samples/springboot3/pet-store-native/.mvn/wrapper/maven-wrapper.properties
new file mode 100644
index 000000000..7d02699af
--- /dev/null
+++ b/samples/springboot3/pet-store-native/.mvn/wrapper/maven-wrapper.properties
@@ -0,0 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.7/apache-maven-3.8.7-bin.zip
+wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar
diff --git a/samples/springboot3/pet-store-native/Dockerfile b/samples/springboot3/pet-store-native/Dockerfile
new file mode 100644
index 000000000..b86403b6c
--- /dev/null
+++ b/samples/springboot3/pet-store-native/Dockerfile
@@ -0,0 +1,43 @@
+FROM arm64v8/amazonlinux:2
+
+RUN yum -y update \
+    && yum install -y tar unzip gzip bzip2-devel ed gcc gcc-c++ gcc-gfortran \
+    less libcurl-devel openssl openssl-devel readline-devel xz-devel \
+    zlib-devel glibc-static libcxx libcxx-devel llvm-toolset-7 zlib-static \
+    && rm -rf /var/cache/yum
+
+ENV GRAAL_VERSION 21.0.2
+ENV GRAAL_FOLDERNAME graalvm-community-openjdk-${GRAAL_VERSION}
+ENV ARCHITECTURE aarch64
+RUN curl -4 -L https://github.com/graalvm/graalvm-ce-builds/releases/download/jdk-${GRAAL_VERSION}/graalvm-community-jdk-${GRAAL_VERSION}_linux-${ARCHITECTURE}_bin.tar.gz | tar -xvz
+RUN mv graalvm-community-openjdk-${GRAAL_VERSION}* /usr/lib/graalvm
+RUN rm -rf $GRAAL_FOLDERNAME
+
+# Graal maven plugin requires Maven 3.3.x
+ENV MVN_VERSION 3.6.3
+ENV MVN_FOLDERNAME apache-maven-${MVN_VERSION}
+ENV MVN_FILENAME apache-maven-${MVN_VERSION}-bin.tar.gz
+RUN curl -4 -L https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/${MVN_VERSION}/${MVN_FILENAME} | tar -xvz
+RUN mv $MVN_FOLDERNAME /usr/lib/maven
+RUN rm -rf $MVN_FOLDERNAME
+
+# Gradle
+ENV GRADLE_VERSION 7.4.1
+ENV GRADLE_FOLDERNAME gradle-${GRADLE_VERSION}
+ENV GRADLE_FILENAME gradle-${GRADLE_VERSION}-bin.zip
+RUN curl -LO https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-bin.zip	
+RUN unzip gradle-${GRADLE_VERSION}-bin.zip
+RUN mv $GRADLE_FOLDERNAME /usr/lib/gradle
+RUN rm -rf $GRADLE_FOLDERNAME
+
+VOLUME /project
+WORKDIR /project
+
+#RUN /usr/lib/graalvm/bin/gu install native-image
+#RUN ln -s /usr/lib/graalvm/bin/native-image /usr/bin/native-image
+RUN ln -s /usr/lib/maven/bin/mvn /usr/bin/mvn
+RUN ln -s /usr/lib/gradle/bin/gradle /usr/bin/gradle
+
+ENV JAVA_HOME /usr/lib/graalvm
+
+WORKDIR /pet-store-native
diff --git a/samples/springboot3/pet-store-native/README.md b/samples/springboot3/pet-store-native/README.md
new file mode 100644
index 000000000..07eac9c73
--- /dev/null
+++ b/samples/springboot3/pet-store-native/README.md
@@ -0,0 +1,44 @@
+In this sample, you'll build a native GraalVM image for running web workloads in AWS Lambda.
+
+
+## To build the sample on macOS (Apple silicon arm64)
+
+You first need to build the function, then you will deploy it to AWS Lambda.
+
+### Step 1 - Build the native image
+
+Before starting the build, you must clone or download the code in **function-sample-aws-native**.
+
+1. Change into the project directory: `samples/springboot3/function-sample-aws-serverless-web-native`
+2. Run the following to build a Docker container image which will be used to create the Lambda function zip file. 
+   ```
+   docker build -t "al2-graalvm21:native-web" .
+   ```
+3. Start the container
+   ```
+   docker run -dit -v `pwd`:`pwd` -w `pwd` -v ~/.m2:/root/.m2 al2-graalvm21:native-web
+   ```
+4. In Docker, open the image terminal. 
+
+   > Your working directory should default to the project root. Verify by running `ls` to view the files.
+
+6. From inside the container, build the Lambda function:
+   ```
+   ./mvnw clean -Pnative native:compile -DskipTests
+   ```
+
+After the build finishes, you need to deploy the function.
+You can do it manually or you can use SAM (AWS Serverless Application Model) with the included template.yaml file.
+If you chose SAM simply execute the following command.
+ ```
+   sam deploy --guided
+ ```
+ This will deploy your application and will attach an AWS API Gateway
+Once the deployment is finished you shouild see the following:
+```
+Key                  ServerlessWebNativeApi
+Description          URL for application
+Value                https://xxxxxxxx.execute-api.us-east-2.amazonaws.com/pets 
+```
+
+You can now simply execute GET on this URL and see the listing fo all pets. 
diff --git a/samples/springboot3/pet-store-native/mvnw b/samples/springboot3/pet-store-native/mvnw
new file mode 100755
index 000000000..8d937f4c1
--- /dev/null
+++ b/samples/springboot3/pet-store-native/mvnw
@@ -0,0 +1,308 @@
+#!/bin/sh
+# ----------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+# ----------------------------------------------------------------------------
+
+# ----------------------------------------------------------------------------
+# Apache Maven Wrapper startup batch script, version 3.2.0
+#
+# Required ENV vars:
+# ------------------
+#   JAVA_HOME - location of a JDK home dir
+#
+# Optional ENV vars
+# -----------------
+#   MAVEN_OPTS - parameters passed to the Java VM when running Maven
+#     e.g. to debug Maven itself, use
+#       set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+#   MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+# ----------------------------------------------------------------------------
+
+if [ -z "$MAVEN_SKIP_RC" ] ; then
+
+  if [ -f /usr/local/etc/mavenrc ] ; then
+    . /usr/local/etc/mavenrc
+  fi
+
+  if [ -f /etc/mavenrc ] ; then
+    . /etc/mavenrc
+  fi
+
+  if [ -f "$HOME/.mavenrc" ] ; then
+    . "$HOME/.mavenrc"
+  fi
+
+fi
+
+# OS specific support.  $var _must_ be set to either true or false.
+cygwin=false;
+darwin=false;
+mingw=false
+case "$(uname)" in
+  CYGWIN*) cygwin=true ;;
+  MINGW*) mingw=true;;
+  Darwin*) darwin=true
+    # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
+    # See https://developer.apple.com/library/mac/qa/qa1170/_index.html
+    if [ -z "$JAVA_HOME" ]; then
+      if [ -x "/usr/libexec/java_home" ]; then
+        JAVA_HOME="$(/usr/libexec/java_home)"; export JAVA_HOME
+      else
+        JAVA_HOME="/Library/Java/Home"; export JAVA_HOME
+      fi
+    fi
+    ;;
+esac
+
+if [ -z "$JAVA_HOME" ] ; then
+  if [ -r /etc/gentoo-release ] ; then
+    JAVA_HOME=$(java-config --jre-home)
+  fi
+fi
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched
+if $cygwin ; then
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME=$(cygpath --unix "$JAVA_HOME")
+  [ -n "$CLASSPATH" ] &&
+    CLASSPATH=$(cygpath --path --unix "$CLASSPATH")
+fi
+
+# For Mingw, ensure paths are in UNIX format before anything is touched
+if $mingw ; then
+  [ -n "$JAVA_HOME" ] && [ -d "$JAVA_HOME" ] &&
+    JAVA_HOME="$(cd "$JAVA_HOME" || (echo "cannot cd into $JAVA_HOME."; exit 1); pwd)"
+fi
+
+if [ -z "$JAVA_HOME" ]; then
+  javaExecutable="$(which javac)"
+  if [ -n "$javaExecutable" ] && ! [ "$(expr "\"$javaExecutable\"" : '\([^ ]*\)')" = "no" ]; then
+    # readlink(1) is not available as standard on Solaris 10.
+    readLink=$(which readlink)
+    if [ ! "$(expr "$readLink" : '\([^ ]*\)')" = "no" ]; then
+      if $darwin ; then
+        javaHome="$(dirname "\"$javaExecutable\"")"
+        javaExecutable="$(cd "\"$javaHome\"" && pwd -P)/javac"
+      else
+        javaExecutable="$(readlink -f "\"$javaExecutable\"")"
+      fi
+      javaHome="$(dirname "\"$javaExecutable\"")"
+      javaHome=$(expr "$javaHome" : '\(.*\)/bin')
+      JAVA_HOME="$javaHome"
+      export JAVA_HOME
+    fi
+  fi
+fi
+
+if [ -z "$JAVACMD" ] ; then
+  if [ -n "$JAVA_HOME"  ] ; then
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+      # IBM's JDK on AIX uses strange locations for the executables
+      JAVACMD="$JAVA_HOME/jre/sh/java"
+    else
+      JAVACMD="$JAVA_HOME/bin/java"
+    fi
+  else
+    JAVACMD="$(\unset -f command 2>/dev/null; \command -v java)"
+  fi
+fi
+
+if [ ! -x "$JAVACMD" ] ; then
+  echo "Error: JAVA_HOME is not defined correctly." >&2
+  echo "  We cannot execute $JAVACMD" >&2
+  exit 1
+fi
+
+if [ -z "$JAVA_HOME" ] ; then
+  echo "Warning: JAVA_HOME environment variable is not set."
+fi
+
+# traverses directory structure from process work directory to filesystem root
+# first directory with .mvn subdirectory is considered project base directory
+find_maven_basedir() {
+  if [ -z "$1" ]
+  then
+    echo "Path not specified to find_maven_basedir"
+    return 1
+  fi
+
+  basedir="$1"
+  wdir="$1"
+  while [ "$wdir" != '/' ] ; do
+    if [ -d "$wdir"/.mvn ] ; then
+      basedir=$wdir
+      break
+    fi
+    # workaround for JBEAP-8937 (on Solaris 10/Sparc)
+    if [ -d "${wdir}" ]; then
+      wdir=$(cd "$wdir/.." || exit 1; pwd)
+    fi
+    # end of workaround
+  done
+  printf '%s' "$(cd "$basedir" || exit 1; pwd)"
+}
+
+# concatenates all lines of a file
+concat_lines() {
+  if [ -f "$1" ]; then
+    # Remove \r in case we run on Windows within Git Bash
+    # and check out the repository with auto CRLF management
+    # enabled. Otherwise, we may read lines that are delimited with
+    # \r\n and produce $'-Xarg\r' rather than -Xarg due to word
+    # splitting rules.
+    tr -s '\r\n' ' ' < "$1"
+  fi
+}
+
+log() {
+  if [ "$MVNW_VERBOSE" = true ]; then
+    printf '%s\n' "$1"
+  fi
+}
+
+BASE_DIR=$(find_maven_basedir "$(dirname "$0")")
+if [ -z "$BASE_DIR" ]; then
+  exit 1;
+fi
+
+MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}; export MAVEN_PROJECTBASEDIR
+log "$MAVEN_PROJECTBASEDIR"
+
+##########################################################################################
+# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
+# This allows using the maven wrapper in projects that prohibit checking in binary data.
+##########################################################################################
+wrapperJarPath="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar"
+if [ -r "$wrapperJarPath" ]; then
+    log "Found $wrapperJarPath"
+else
+    log "Couldn't find $wrapperJarPath, downloading it ..."
+
+    if [ -n "$MVNW_REPOURL" ]; then
+      wrapperUrl="$MVNW_REPOURL/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar"
+    else
+      wrapperUrl="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar"
+    fi
+    while IFS="=" read -r key value; do
+      # Remove '\r' from value to allow usage on windows as IFS does not consider '\r' as a separator ( considers space, tab, new line ('\n'), and custom '=' )
+      safeValue=$(echo "$value" | tr -d '\r')
+      case "$key" in (wrapperUrl) wrapperUrl="$safeValue"; break ;;
+      esac
+    done < "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.properties"
+    log "Downloading from: $wrapperUrl"
+
+    if $cygwin; then
+      wrapperJarPath=$(cygpath --path --windows "$wrapperJarPath")
+    fi
+
+    if command -v wget > /dev/null; then
+        log "Found wget ... using wget"
+        [ "$MVNW_VERBOSE" = true ] && QUIET="" || QUIET="--quiet"
+        if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
+            wget $QUIET "$wrapperUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath"
+        else
+            wget $QUIET --http-user="$MVNW_USERNAME" --http-password="$MVNW_PASSWORD" "$wrapperUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath"
+        fi
+    elif command -v curl > /dev/null; then
+        log "Found curl ... using curl"
+        [ "$MVNW_VERBOSE" = true ] && QUIET="" || QUIET="--silent"
+        if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
+            curl $QUIET -o "$wrapperJarPath" "$wrapperUrl" -f -L || rm -f "$wrapperJarPath"
+        else
+            curl $QUIET --user "$MVNW_USERNAME:$MVNW_PASSWORD" -o "$wrapperJarPath" "$wrapperUrl" -f -L || rm -f "$wrapperJarPath"
+        fi
+    else
+        log "Falling back to using Java to download"
+        javaSource="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/MavenWrapperDownloader.java"
+        javaClass="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/MavenWrapperDownloader.class"
+        # For Cygwin, switch paths to Windows format before running javac
+        if $cygwin; then
+          javaSource=$(cygpath --path --windows "$javaSource")
+          javaClass=$(cygpath --path --windows "$javaClass")
+        fi
+        if [ -e "$javaSource" ]; then
+            if [ ! -e "$javaClass" ]; then
+                log " - Compiling MavenWrapperDownloader.java ..."
+                ("$JAVA_HOME/bin/javac" "$javaSource")
+            fi
+            if [ -e "$javaClass" ]; then
+                log " - Running MavenWrapperDownloader.java ..."
+                ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$wrapperUrl" "$wrapperJarPath") || rm -f "$wrapperJarPath"
+            fi
+        fi
+    fi
+fi
+##########################################################################################
+# End of extension
+##########################################################################################
+
+# If specified, validate the SHA-256 sum of the Maven wrapper jar file
+wrapperSha256Sum=""
+while IFS="=" read -r key value; do
+  case "$key" in (wrapperSha256Sum) wrapperSha256Sum=$value; break ;;
+  esac
+done < "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.properties"
+if [ -n "$wrapperSha256Sum" ]; then
+  wrapperSha256Result=false
+  if command -v sha256sum > /dev/null; then
+    if echo "$wrapperSha256Sum  $wrapperJarPath" | sha256sum -c > /dev/null 2>&1; then
+      wrapperSha256Result=true
+    fi
+  elif command -v shasum > /dev/null; then
+    if echo "$wrapperSha256Sum  $wrapperJarPath" | shasum -a 256 -c > /dev/null 2>&1; then
+      wrapperSha256Result=true
+    fi
+  else
+    echo "Checksum validation was requested but neither 'sha256sum' or 'shasum' are available."
+    echo "Please install either command, or disable validation by removing 'wrapperSha256Sum' from your maven-wrapper.properties."
+    exit 1
+  fi
+  if [ $wrapperSha256Result = false ]; then
+    echo "Error: Failed to validate Maven wrapper SHA-256, your Maven wrapper might be compromised." >&2
+    echo "Investigate or delete $wrapperJarPath to attempt a clean download." >&2
+    echo "If you updated your Maven version, you need to update the specified wrapperSha256Sum property." >&2
+    exit 1
+  fi
+fi
+
+MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin; then
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME=$(cygpath --path --windows "$JAVA_HOME")
+  [ -n "$CLASSPATH" ] &&
+    CLASSPATH=$(cygpath --path --windows "$CLASSPATH")
+  [ -n "$MAVEN_PROJECTBASEDIR" ] &&
+    MAVEN_PROJECTBASEDIR=$(cygpath --path --windows "$MAVEN_PROJECTBASEDIR")
+fi
+
+# Provide a "standardized" way to retrieve the CLI args that will
+# work with both Windows and non-Windows executions.
+MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $*"
+export MAVEN_CMD_LINE_ARGS
+
+WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+# shellcheck disable=SC2086 # safe args
+exec "$JAVACMD" \
+  $MAVEN_OPTS \
+  $MAVEN_DEBUG_OPTS \
+  -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
+  "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
+  ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
diff --git a/samples/springboot3/pet-store-native/mvnw.cmd b/samples/springboot3/pet-store-native/mvnw.cmd
new file mode 100644
index 000000000..f80fbad3e
--- /dev/null
+++ b/samples/springboot3/pet-store-native/mvnw.cmd
@@ -0,0 +1,205 @@
+@REM ----------------------------------------------------------------------------
+@REM Licensed to the Apache Software Foundation (ASF) under one
+@REM or more contributor license agreements.  See the NOTICE file
+@REM distributed with this work for additional information
+@REM regarding copyright ownership.  The ASF licenses this file
+@REM to you under the Apache License, Version 2.0 (the
+@REM "License"); you may not use this file except in compliance
+@REM with the License.  You may obtain a copy of the License at
+@REM
+@REM    http://www.apache.org/licenses/LICENSE-2.0
+@REM
+@REM Unless required by applicable law or agreed to in writing,
+@REM software distributed under the License is distributed on an
+@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+@REM KIND, either express or implied.  See the License for the
+@REM specific language governing permissions and limitations
+@REM under the License.
+@REM ----------------------------------------------------------------------------
+
+@REM ----------------------------------------------------------------------------
+@REM Apache Maven Wrapper startup batch script, version 3.2.0
+@REM
+@REM Required ENV vars:
+@REM JAVA_HOME - location of a JDK home dir
+@REM
+@REM Optional ENV vars
+@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
+@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending
+@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
+@REM     e.g. to debug Maven itself, use
+@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+@REM ----------------------------------------------------------------------------
+
+@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
+@echo off
+@REM set title of command window
+title %0
+@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
+@if "%MAVEN_BATCH_ECHO%" == "on"  echo %MAVEN_BATCH_ECHO%
+
+@REM set %HOME% to equivalent of $HOME
+if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
+
+@REM Execute a user defined script before this one
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
+@REM check for pre script, once with legacy .bat ending and once with .cmd ending
+if exist "%USERPROFILE%\mavenrc_pre.bat" call "%USERPROFILE%\mavenrc_pre.bat" %*
+if exist "%USERPROFILE%\mavenrc_pre.cmd" call "%USERPROFILE%\mavenrc_pre.cmd" %*
+:skipRcPre
+
+@setlocal
+
+set ERROR_CODE=0
+
+@REM To isolate internal variables from possible post scripts, we use another setlocal
+@setlocal
+
+@REM ==== START VALIDATION ====
+if not "%JAVA_HOME%" == "" goto OkJHome
+
+echo.
+echo Error: JAVA_HOME not found in your environment. >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+:OkJHome
+if exist "%JAVA_HOME%\bin\java.exe" goto init
+
+echo.
+echo Error: JAVA_HOME is set to an invalid directory. >&2
+echo JAVA_HOME = "%JAVA_HOME%" >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+@REM ==== END VALIDATION ====
+
+:init
+
+@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
+@REM Fallback to current working directory if not found.
+
+set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
+IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
+
+set EXEC_DIR=%CD%
+set WDIR=%EXEC_DIR%
+:findBaseDir
+IF EXIST "%WDIR%"\.mvn goto baseDirFound
+cd ..
+IF "%WDIR%"=="%CD%" goto baseDirNotFound
+set WDIR=%CD%
+goto findBaseDir
+
+:baseDirFound
+set MAVEN_PROJECTBASEDIR=%WDIR%
+cd "%EXEC_DIR%"
+goto endDetectBaseDir
+
+:baseDirNotFound
+set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
+cd "%EXEC_DIR%"
+
+:endDetectBaseDir
+
+IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
+
+@setlocal EnableExtensions EnableDelayedExpansion
+for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
+@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
+
+:endReadAdditionalConfig
+
+SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
+set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
+set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+set WRAPPER_URL="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar"
+
+FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
+    IF "%%A"=="wrapperUrl" SET WRAPPER_URL=%%B
+)
+
+@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
+@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
+if exist %WRAPPER_JAR% (
+    if "%MVNW_VERBOSE%" == "true" (
+        echo Found %WRAPPER_JAR%
+    )
+) else (
+    if not "%MVNW_REPOURL%" == "" (
+        SET WRAPPER_URL="%MVNW_REPOURL%/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar"
+    )
+    if "%MVNW_VERBOSE%" == "true" (
+        echo Couldn't find %WRAPPER_JAR%, downloading it ...
+        echo Downloading from: %WRAPPER_URL%
+    )
+
+    powershell -Command "&{"^
+		"$webclient = new-object System.Net.WebClient;"^
+		"if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
+		"$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
+		"}"^
+		"[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%WRAPPER_URL%', '%WRAPPER_JAR%')"^
+		"}"
+    if "%MVNW_VERBOSE%" == "true" (
+        echo Finished downloading %WRAPPER_JAR%
+    )
+)
+@REM End of extension
+
+@REM If specified, validate the SHA-256 sum of the Maven wrapper jar file
+SET WRAPPER_SHA_256_SUM=""
+FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
+    IF "%%A"=="wrapperSha256Sum" SET WRAPPER_SHA_256_SUM=%%B
+)
+IF NOT %WRAPPER_SHA_256_SUM%=="" (
+    powershell -Command "&{"^
+       "$hash = (Get-FileHash \"%WRAPPER_JAR%\" -Algorithm SHA256).Hash.ToLower();"^
+       "If('%WRAPPER_SHA_256_SUM%' -ne $hash){"^
+       "  Write-Output 'Error: Failed to validate Maven wrapper SHA-256, your Maven wrapper might be compromised.';"^
+       "  Write-Output 'Investigate or delete %WRAPPER_JAR% to attempt a clean download.';"^
+       "  Write-Output 'If you updated your Maven version, you need to update the specified wrapperSha256Sum property.';"^
+       "  exit 1;"^
+       "}"^
+       "}"
+    if ERRORLEVEL 1 goto error
+)
+
+@REM Provide a "standardized" way to retrieve the CLI args that will
+@REM work with both Windows and non-Windows executions.
+set MAVEN_CMD_LINE_ARGS=%*
+
+%MAVEN_JAVA_EXE% ^
+  %JVM_CONFIG_MAVEN_PROPS% ^
+  %MAVEN_OPTS% ^
+  %MAVEN_DEBUG_OPTS% ^
+  -classpath %WRAPPER_JAR% ^
+  "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" ^
+  %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
+if ERRORLEVEL 1 goto error
+goto end
+
+:error
+set ERROR_CODE=1
+
+:end
+@endlocal & set ERROR_CODE=%ERROR_CODE%
+
+if not "%MAVEN_SKIP_RC%"=="" goto skipRcPost
+@REM check for post script, once with legacy .bat ending and once with .cmd ending
+if exist "%USERPROFILE%\mavenrc_post.bat" call "%USERPROFILE%\mavenrc_post.bat"
+if exist "%USERPROFILE%\mavenrc_post.cmd" call "%USERPROFILE%\mavenrc_post.cmd"
+:skipRcPost
+
+@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
+if "%MAVEN_BATCH_PAUSE%"=="on" pause
+
+if "%MAVEN_TERMINATE_CMD%"=="on" exit %ERROR_CODE%
+
+cmd /C exit /B %ERROR_CODE%
diff --git a/samples/springboot3/pet-store-native/pom.xml b/samples/springboot3/pet-store-native/pom.xml
new file mode 100644
index 000000000..1c33325e4
--- /dev/null
+++ b/samples/springboot3/pet-store-native/pom.xml
@@ -0,0 +1,122 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<groupId>org.springframework.boot</groupId>
+		<artifactId>spring-boot-starter-parent</artifactId>
+		<version>3.2.0-SNAPSHOT</version>
+		<relativePath /> <!-- lookup parent from repository -->
+	</parent>
+	<groupId>com.amazonaws.serverless.sample</groupId>
+	<artifactId>pet-store-native</artifactId>
+	<version>0.0.1-SNAPSHOT</version><!-- @releaser:version-check-off -->
+	<name>pet-store-native</name>
+	<description>Sample of AWS with Spring Native</description>
+	<properties>
+		<java.version>21</java.version>
+		<spring-cloud.version>2022.0.5-SNAPSHOT</spring-cloud.version>
+	</properties>
+	<dependencies>
+		<dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter</artifactId>
+        </dependency>
+		<dependency>
+			<groupId>com.amazonaws.serverless</groupId>
+    		<artifactId>aws-serverless-java-container-springboot3</artifactId>
+        	<version>2.0.0-SNAPSHOT</version>
+		</dependency>
+		<dependency>
+			<groupId>com.amazonaws</groupId>
+			<artifactId>aws-lambda-java-events</artifactId>
+			<version>3.9.0</version>
+		</dependency>
+		<dependency>
+			<groupId>com.amazonaws</groupId>
+			<artifactId>aws-lambda-java-core</artifactId>
+			<version>1.1.0</version>
+			<scope>provided</scope>
+		</dependency>
+
+		<dependency>
+			<groupId>org.springframework.boot</groupId>
+			<artifactId>spring-boot-starter-test</artifactId>
+			<scope>test</scope>
+		</dependency>
+	</dependencies>
+	<dependencyManagement>
+		<dependencies>
+			<dependency>
+				<groupId>org.springframework.cloud</groupId>
+				<artifactId>spring-cloud-dependencies</artifactId>
+				<version>${spring-cloud.version}</version>
+				<type>pom</type>
+				<scope>import</scope>
+			</dependency>
+		</dependencies>
+	</dependencyManagement>
+	
+	<profiles>
+		<profile>
+			<id>native</id>
+			<build>
+				<plugins>
+					<plugin>
+						<groupId>org.springframework.boot</groupId>
+						<artifactId>spring-boot-maven-plugin</artifactId>
+						<configuration>
+			                <jvmArguments>-agentlib:native-image-agent=config-merge-dir=src/main/resources/META-INF/native-image/ --enable-preview
+			                    </jvmArguments>
+			                <compilerArguments>--enable-preview
+			                    </compilerArguments>
+			            </configuration>
+					</plugin>
+					<plugin>
+						<groupId>org.graalvm.buildtools</groupId>
+						<artifactId>native-maven-plugin</artifactId>
+						<configuration>
+							<buildArgs>
+								<buildArg>--enable-url-protocols=http --enable-preview</buildArg>
+							</buildArgs>
+						</configuration>
+						<executions>
+							<execution>
+								<goals>
+									<goal>build</goal>
+								</goals>
+								<phase>package</phase>
+							</execution>
+							<execution>
+								<id>test</id>
+								<goals>
+									<goal>test</goal>
+								</goals>
+								<phase>test</phase>
+							</execution>
+						</executions>
+					</plugin>
+					<plugin>
+						<artifactId>maven-assembly-plugin</artifactId>
+						<executions>
+							<execution>
+								<id>native-zip</id>
+								<phase>package</phase>
+								<goals>
+									<goal>single</goal>
+								</goals>
+								<inherited>false</inherited>
+							</execution>
+						</executions>
+						<configuration>
+							<descriptors>
+								<descriptor>src/assembly/native.xml</descriptor>
+							</descriptors>
+						</configuration>
+					</plugin>
+				</plugins>
+			</build>
+		</profile>
+	</profiles>
+</project>
\ No newline at end of file
diff --git a/samples/springboot3/pet-store-native/src/assembly/java.xml b/samples/springboot3/pet-store-native/src/assembly/java.xml
new file mode 100644
index 000000000..bd4961b58
--- /dev/null
+++ b/samples/springboot3/pet-store-native/src/assembly/java.xml
@@ -0,0 +1,31 @@
+<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 https://maven.apache.org/xsd/assembly-1.1.2.xsd">
+	<id>java-zip</id>
+	<formats>
+		<format>zip</format>
+	</formats>
+	<baseDirectory></baseDirectory>
+	<fileSets>
+		<fileSet>
+			<directory>target/classes</directory>
+			<outputDirectory>/</outputDirectory>
+		</fileSet>
+		<fileSet>
+			<directory>src/shell/java</directory>
+			<outputDirectory>/</outputDirectory>
+			<useDefaultExcludes>true</useDefaultExcludes>
+			<fileMode>0775</fileMode>
+			<includes>
+				<include>bootstrap</include>
+			</includes>
+		</fileSet>
+	</fileSets>
+	<dependencySets>
+		<dependencySet>
+			<outputDirectory>/lib</outputDirectory>
+			<unpack>false</unpack>
+			<scope>runtime</scope>
+		</dependencySet>
+	</dependencySets>
+</assembly>
\ No newline at end of file
diff --git a/samples/springboot3/pet-store-native/src/assembly/native.xml b/samples/springboot3/pet-store-native/src/assembly/native.xml
new file mode 100644
index 000000000..9bd97a5b7
--- /dev/null
+++ b/samples/springboot3/pet-store-native/src/assembly/native.xml
@@ -0,0 +1,29 @@
+<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 https://maven.apache.org/xsd/assembly-1.1.2.xsd">
+	<id>native-zip</id>
+	<formats>
+		<format>zip</format>
+	</formats>
+	<baseDirectory></baseDirectory>
+	<fileSets>
+		<fileSet>
+			<directory>src/shell/native</directory>
+			<outputDirectory>/</outputDirectory>
+			<useDefaultExcludes>true</useDefaultExcludes>
+			<fileMode>0775</fileMode>
+			<includes>
+				<include>bootstrap</include>
+			</includes>
+		</fileSet>
+		<fileSet>
+			<directory>target</directory>
+			<outputDirectory>/</outputDirectory>
+			<useDefaultExcludes>true</useDefaultExcludes>
+			<fileMode>0775</fileMode>
+			<includes>
+				<include>pet-store-native</include>
+			</includes>
+		</fileSet>
+	</fileSets>
+</assembly>
\ No newline at end of file
diff --git a/samples/springboot3/pet-store-native/src/main/java/com/amazonaws/serverless/sample/springboot3/DemoApplication.java b/samples/springboot3/pet-store-native/src/main/java/com/amazonaws/serverless/sample/springboot3/DemoApplication.java
new file mode 100644
index 000000000..bf53a01f8
--- /dev/null
+++ b/samples/springboot3/pet-store-native/src/main/java/com/amazonaws/serverless/sample/springboot3/DemoApplication.java
@@ -0,0 +1,12 @@
+package com.amazonaws.serverless.sample.springboot3;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+public class DemoApplication {
+
+	public static void main(String[] args) throws Exception {
+		SpringApplication.run(DemoApplication.class, args);
+	}
+}
diff --git a/samples/springboot3/pet-store-native/src/main/java/com/amazonaws/serverless/sample/springboot3/HelloController.java b/samples/springboot3/pet-store-native/src/main/java/com/amazonaws/serverless/sample/springboot3/HelloController.java
new file mode 100644
index 000000000..2c3fcfb01
--- /dev/null
+++ b/samples/springboot3/pet-store-native/src/main/java/com/amazonaws/serverless/sample/springboot3/HelloController.java
@@ -0,0 +1,17 @@
+package com.amazonaws.serverless.sample.springboot3;
+
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+public class HelloController {
+	
+	public HelloController() {
+		System.out.println("Creating controller");
+	}
+
+    @GetMapping("/hello")
+    public String something(){
+        return "Hello World";
+    }
+}
diff --git a/samples/springboot3/pet-store-native/src/main/java/com/amazonaws/serverless/sample/springboot3/controller/PetsController.java b/samples/springboot3/pet-store-native/src/main/java/com/amazonaws/serverless/sample/springboot3/controller/PetsController.java
new file mode 100644
index 000000000..849286fec
--- /dev/null
+++ b/samples/springboot3/pet-store-native/src/main/java/com/amazonaws/serverless/sample/springboot3/controller/PetsController.java
@@ -0,0 +1,82 @@
+/*
+ * Copyright 2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance
+ * with the License. A copy of the License is located at
+ *
+ * http://aws.amazon.com/apache2.0/
+ *
+ * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES
+ * OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
+ * and limitations under the License.
+ */
+package com.amazonaws.serverless.sample.springboot3.controller;
+
+
+
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.servlet.config.annotation.EnableWebMvc;
+
+import com.amazonaws.serverless.sample.springboot3.model.Pet;
+import com.amazonaws.serverless.sample.springboot3.model.PetData;
+
+import java.security.Principal;
+import java.util.Optional;
+import java.util.UUID;
+
+
+@RestController
+@EnableWebMvc
+public class PetsController {
+    @PostMapping(path = "/pets")
+    public Pet createPet(@RequestBody Pet newPet) {
+    	System.out.println("==> Creating Pet: " + newPet);
+        if (newPet.getName() == null || newPet.getBreed() == null) {
+            return null;
+        }
+
+        Pet dbPet = newPet;
+        dbPet.setId(UUID.randomUUID().toString());
+        return dbPet;
+    }
+
+    @GetMapping(path = "/pets")
+    public Pet[] listPets(@RequestParam("limit") Optional<Integer> limit, Principal principal) {
+    	System.out.println("==> Listing Pets");
+        int queryLimit = 10;
+        if (limit.isPresent()) {
+            queryLimit = limit.get();
+        }
+
+        Pet[] outputPets = new Pet[queryLimit];
+
+        for (int i = 0; i < queryLimit; i++) {
+            Pet newPet = new Pet();
+            newPet.setId(UUID.randomUUID().toString());
+            newPet.setName(PetData.getRandomName());
+            newPet.setBreed(PetData.getRandomBreed());
+            newPet.setDateOfBirth(PetData.getRandomDoB());
+            outputPets[i] = newPet;
+        }
+
+        return outputPets;
+    }
+
+    @GetMapping(path = "/pets/{petId}")
+    public Pet listPets() {
+    	System.out.println("==> Listing Pets");
+        Pet newPet = new Pet();
+        newPet.setId(UUID.randomUUID().toString());
+        newPet.setBreed(PetData.getRandomBreed());
+        newPet.setDateOfBirth(PetData.getRandomDoB());
+        newPet.setName(PetData.getRandomName());
+        return newPet;
+    }
+
+}
diff --git a/samples/springboot3/pet-store-native/src/main/java/com/amazonaws/serverless/sample/springboot3/filter/CognitoIdentityFilter.java b/samples/springboot3/pet-store-native/src/main/java/com/amazonaws/serverless/sample/springboot3/filter/CognitoIdentityFilter.java
new file mode 100644
index 000000000..d6ccae765
--- /dev/null
+++ b/samples/springboot3/pet-store-native/src/main/java/com/amazonaws/serverless/sample/springboot3/filter/CognitoIdentityFilter.java
@@ -0,0 +1,69 @@
+package com.amazonaws.serverless.sample.springboot3.filter;
+
+
+import com.amazonaws.serverless.proxy.RequestReader;
+import com.amazonaws.serverless.proxy.model.AwsProxyRequestContext;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import jakarta.servlet.Filter;
+import jakarta.servlet.FilterChain;
+import jakarta.servlet.FilterConfig;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.ServletRequest;
+import jakarta.servlet.ServletResponse;
+
+import java.io.IOException;
+
+
+/**
+ * Simple Filter implementation that looks for a Cognito identity id in the API Gateway request context
+ * and stores the value in a request attribute. The filter is registered with aws-serverless-java-container
+ * in the onStartup method from the {@link com.amazonaws.serverless.sample.springboot3.StreamLambdaHandler} class.
+ */
+public class CognitoIdentityFilter implements Filter {
+    public static final String COGNITO_IDENTITY_ATTRIBUTE = "com.amazonaws.serverless.cognitoId";
+
+    private static Logger log = LoggerFactory.getLogger(CognitoIdentityFilter.class);
+
+    @Override
+    public void init(FilterConfig filterConfig)
+            throws ServletException {
+        // nothing to do in init
+    }
+
+
+    @Override
+    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)
+            throws IOException, ServletException {
+        Object apiGwContext = servletRequest.getAttribute(RequestReader.API_GATEWAY_CONTEXT_PROPERTY);
+        if (apiGwContext == null) {
+            log.warn("API Gateway context is null");
+            filterChain.doFilter(servletRequest, servletResponse);
+            return;
+        }
+        if (!AwsProxyRequestContext.class.isAssignableFrom(apiGwContext.getClass())) {
+            log.warn("API Gateway context object is not of valid type");
+            filterChain.doFilter(servletRequest, servletResponse);
+        }
+
+        AwsProxyRequestContext ctx = (AwsProxyRequestContext)apiGwContext;
+        if (ctx.getIdentity() == null) {
+            log.warn("Identity context is null");
+            filterChain.doFilter(servletRequest, servletResponse);
+        }
+        String cognitoIdentityId = ctx.getIdentity().getCognitoIdentityId();
+        if (cognitoIdentityId == null || "".equals(cognitoIdentityId.trim())) {
+            log.warn("Cognito identity id in request is null");
+        }
+        servletRequest.setAttribute(COGNITO_IDENTITY_ATTRIBUTE, cognitoIdentityId);
+        filterChain.doFilter(servletRequest, servletResponse);
+    }
+
+
+    @Override
+    public void destroy() {
+        // nothing to do in destroy
+    }
+}
diff --git a/samples/springboot3/pet-store-native/src/main/java/com/amazonaws/serverless/sample/springboot3/model/Error.java b/samples/springboot3/pet-store-native/src/main/java/com/amazonaws/serverless/sample/springboot3/model/Error.java
new file mode 100644
index 000000000..320f21582
--- /dev/null
+++ b/samples/springboot3/pet-store-native/src/main/java/com/amazonaws/serverless/sample/springboot3/model/Error.java
@@ -0,0 +1,29 @@
+/*
+ * Copyright 2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance
+ * with the License. A copy of the License is located at
+ *
+ * http://aws.amazon.com/apache2.0/
+ *
+ * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES
+ * OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
+ * and limitations under the License.
+ */
+package com.amazonaws.serverless.sample.springboot3.model;
+
+public class Error {
+    private String message;
+
+    public Error(String errorMessage) {
+        message = errorMessage;
+    }
+
+    public String getMessage() {
+        return message;
+    }
+
+    public void setMessage(String message) {
+        this.message = message;
+    }
+}
diff --git a/samples/springboot3/pet-store-native/src/main/java/com/amazonaws/serverless/sample/springboot3/model/Pet.java b/samples/springboot3/pet-store-native/src/main/java/com/amazonaws/serverless/sample/springboot3/model/Pet.java
new file mode 100644
index 000000000..4f0c4ba8e
--- /dev/null
+++ b/samples/springboot3/pet-store-native/src/main/java/com/amazonaws/serverless/sample/springboot3/model/Pet.java
@@ -0,0 +1,55 @@
+/*
+ * Copyright 2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance
+ * with the License. A copy of the License is located at
+ *
+ * http://aws.amazon.com/apache2.0/
+ *
+ * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES
+ * OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
+ * and limitations under the License.
+ */
+package com.amazonaws.serverless.sample.springboot3.model;
+
+import java.util.Date;
+
+
+public class Pet {
+    private String id;
+    private String breed;
+    private String name;
+    private Date dateOfBirth;
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getBreed() {
+        return breed;
+    }
+
+    public void setBreed(String breed) {
+        this.breed = breed;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public Date getDateOfBirth() {
+        return dateOfBirth;
+    }
+
+    public void setDateOfBirth(Date dateOfBirth) {
+        this.dateOfBirth = dateOfBirth;
+    }
+}
diff --git a/samples/springboot3/pet-store-native/src/main/java/com/amazonaws/serverless/sample/springboot3/model/PetData.java b/samples/springboot3/pet-store-native/src/main/java/com/amazonaws/serverless/sample/springboot3/model/PetData.java
new file mode 100644
index 000000000..68ea3c18b
--- /dev/null
+++ b/samples/springboot3/pet-store-native/src/main/java/com/amazonaws/serverless/sample/springboot3/model/PetData.java
@@ -0,0 +1,117 @@
+/*
+ * Copyright 2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance
+ * with the License. A copy of the License is located at
+ *
+ * http://aws.amazon.com/apache2.0/
+ *
+ * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES
+ * OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
+ * and limitations under the License.
+ */
+package com.amazonaws.serverless.sample.springboot3.model;
+
+
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.GregorianCalendar;
+import java.util.List;
+import java.util.concurrent.ThreadLocalRandom;
+
+
+public class PetData {
+    private static List<String> breeds = new ArrayList<>();
+    static {
+        breeds.add("Afghan Hound");
+        breeds.add("Beagle");
+        breeds.add("Bernese Mountain Dog");
+        breeds.add("Bloodhound");
+        breeds.add("Dalmatian");
+        breeds.add("Jack Russell Terrier");
+        breeds.add("Norwegian Elkhound");
+    }
+
+    private static List<String> names = new ArrayList<>();
+    static {
+        names.add("Bailey");
+        names.add("Bella");
+        names.add("Max");
+        names.add("Lucy");
+        names.add("Charlie");
+        names.add("Molly");
+        names.add("Buddy");
+        names.add("Daisy");
+        names.add("Rocky");
+        names.add("Maggie");
+        names.add("Jake");
+        names.add("Sophie");
+        names.add("Jack");
+        names.add("Sadie");
+        names.add("Toby");
+        names.add("Chloe");
+        names.add("Cody");
+        names.add("Bailey");
+        names.add("Buster");
+        names.add("Lola");
+        names.add("Duke");
+        names.add("Zoe");
+        names.add("Cooper");
+        names.add("Abby");
+        names.add("Riley");
+        names.add("Ginger");
+        names.add("Harley");
+        names.add("Roxy");
+        names.add("Bear");
+        names.add("Gracie");
+        names.add("Tucker");
+        names.add("Coco");
+        names.add("Murphy");
+        names.add("Sasha");
+        names.add("Lucky");
+        names.add("Lily");
+        names.add("Oliver");
+        names.add("Angel");
+        names.add("Sam");
+        names.add("Princess");
+        names.add("Oscar");
+        names.add("Emma");
+        names.add("Teddy");
+        names.add("Annie");
+        names.add("Winston");
+        names.add("Rosie");
+    }
+
+    public static List<String> getBreeds() {
+        return breeds;
+    }
+
+    public static List<String> getNames() {
+        return names;
+    }
+
+    public static String getRandomBreed() {
+        return breeds.get(ThreadLocalRandom.current().nextInt(0, breeds.size() - 1));
+    }
+
+    public static String getRandomName() {
+        return names.get(ThreadLocalRandom.current().nextInt(0, names.size() - 1));
+    }
+
+    public static Date getRandomDoB() {
+        GregorianCalendar gc = new GregorianCalendar();
+
+        int year = ThreadLocalRandom.current().nextInt(
+                Calendar.getInstance().get(Calendar.YEAR) - 15,
+                Calendar.getInstance().get(Calendar.YEAR)
+        );
+
+        gc.set(Calendar.YEAR, year);
+
+        int dayOfYear = ThreadLocalRandom.current().nextInt(1, gc.getActualMaximum(Calendar.DAY_OF_YEAR));
+
+        gc.set(Calendar.DAY_OF_YEAR, dayOfYear);
+        return gc.getTime();
+    }
+}
diff --git a/samples/springboot3/pet-store-native/src/main/resources/META-INF/.gitignore b/samples/springboot3/pet-store-native/src/main/resources/META-INF/.gitignore
new file mode 100644
index 000000000..0726bbaa2
--- /dev/null
+++ b/samples/springboot3/pet-store-native/src/main/resources/META-INF/.gitignore
@@ -0,0 +1 @@
+/native-image/
diff --git a/samples/springboot3/pet-store-native/src/main/resources/application.properties b/samples/springboot3/pet-store-native/src/main/resources/application.properties
new file mode 100644
index 000000000..8b1378917
--- /dev/null
+++ b/samples/springboot3/pet-store-native/src/main/resources/application.properties
@@ -0,0 +1 @@
+
diff --git a/samples/springboot3/pet-store-native/src/shell/java/bootstrap b/samples/springboot3/pet-store-native/src/shell/java/bootstrap
new file mode 100644
index 000000000..4586728a7
--- /dev/null
+++ b/samples/springboot3/pet-store-native/src/shell/java/bootstrap
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+cd ${LAMBDA_TASK_ROOT:-.}
+
+java -Dspring.main.web-application-type=none -Dlogging.level.org.springframework=DEBUG \
+  -noverify -XX:TieredStopAtLevel=1 -Xss256K -XX:MaxMetaspaceSize=128M \
+  -cp .:`echo lib/*.jar | tr ' ' :` com.amazonaws.serverless.sample.springboot3.DemoApplication
\ No newline at end of file
diff --git a/samples/springboot3/pet-store-native/src/shell/native/bootstrap b/samples/springboot3/pet-store-native/src/shell/native/bootstrap
new file mode 100644
index 000000000..0156b090b
--- /dev/null
+++ b/samples/springboot3/pet-store-native/src/shell/native/bootstrap
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+cd ${LAMBDA_TASK_ROOT:-.}
+
+./pet-store-native -Dlogging.level.org.springframework=DEBUG -Dlogging.level.com.amazonaws.serverless.proxy.spring=DEBUG
diff --git a/samples/springboot3/pet-store-native/template.yaml b/samples/springboot3/pet-store-native/template.yaml
new file mode 100644
index 000000000..bb6ace59e
--- /dev/null
+++ b/samples/springboot3/pet-store-native/template.yaml
@@ -0,0 +1,33 @@
+AWSTemplateFormatVersion: '2010-09-09'
+Transform: AWS::Serverless-2016-10-31
+Description: Serverless Java Container GraalVM
+Resources:
+  ServerlessWebNativeFunction:
+    Type: AWS::Serverless::Function
+    Properties:
+      MemorySize: 512
+      FunctionName: pet-store-native
+      Timeout: 15
+      CodeUri: ./target/pet-store-native-0.0.1-SNAPSHOT-native-zip.zip
+      Handler: NOP
+      Runtime: provided.al2
+      Architectures:
+        - arm64
+      Events:
+        HttpApiEvent:
+          Type: HttpApi
+          Properties:
+            TimeoutInMillis: 20000
+            PayloadFormatVersion: '1.0'
+        
+Globals:
+  Api:
+    # API Gateway regional endpoints
+    EndpointConfiguration: REGIONAL
+Outputs:
+  ServerlessWebNativeApi:
+    Description: URL for application
+    Value: !Sub 'https://${ServerlessHttpApi}.execute-api.${AWS::Region}.amazonaws.com/pets'
+    Export:
+      Name: ServerlessWebNativeApi
+      
\ No newline at end of file

From 0b9384f40da14066b8121ab3a62d201b4395036f Mon Sep 17 00:00:00 2001
From: Oleg Zhurakousky <ozhurakousky@vmware.com>
Date: Wed, 24 Jan 2024 21:50:40 +0100
Subject: [PATCH 103/430] Fix gradle file name

---
 samples/springboot3/alt-pet-store/{build.gradles => build.gradle} | 0
 1 file changed, 0 insertions(+), 0 deletions(-)
 rename samples/springboot3/alt-pet-store/{build.gradles => build.gradle} (100%)

diff --git a/samples/springboot3/alt-pet-store/build.gradles b/samples/springboot3/alt-pet-store/build.gradle
similarity index 100%
rename from samples/springboot3/alt-pet-store/build.gradles
rename to samples/springboot3/alt-pet-store/build.gradle

From cc462ff952ef8d6bb3dc617f0bfb5bbda57ab6c5 Mon Sep 17 00:00:00 2001
From: mbfreder <mbfreder@amazon.com>
Date: Wed, 24 Jan 2024 13:53:20 -0800
Subject: [PATCH 104/430] Deleted unused imports

---
 samples/springboot3/graphql-pet-store/README.md             | 2 +-
 .../serverless/sample/springboot3/Application.java          | 6 ------
 samples/springboot3/graphql-pet-store/template.yml          | 2 +-
 3 files changed, 2 insertions(+), 8 deletions(-)

diff --git a/samples/springboot3/graphql-pet-store/README.md b/samples/springboot3/graphql-pet-store/README.md
index 7d18a0dd7..e5bfad120 100644
--- a/samples/springboot3/graphql-pet-store/README.md
+++ b/samples/springboot3/graphql-pet-store/README.md
@@ -1,4 +1,4 @@
-# Serverless Spring Boot 3 and Spring-graphQl example
+# Serverless Spring Boot 3 with GraphQL example
 A basic pet store written with the [Spring Boot 3 framework](https://projects.spring.io/spring-boot/). Unlike older examples, this example uses the [Spring for GraphQl](https://docs.spring.io/spring-graphql/reference/) library. 
 
 
diff --git a/samples/springboot3/graphql-pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/Application.java b/samples/springboot3/graphql-pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/Application.java
index 678477a27..9cf0ea610 100644
--- a/samples/springboot3/graphql-pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/Application.java
+++ b/samples/springboot3/graphql-pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/Application.java
@@ -5,19 +5,13 @@
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Import;
 import org.springframework.web.servlet.HandlerAdapter;
-import org.springframework.web.servlet.HandlerExceptionResolver;
 import org.springframework.web.servlet.HandlerMapping;
-import org.springframework.web.servlet.ModelAndView;
 import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter;
 import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping;
 
-import jakarta.servlet.http.HttpServletRequest;
-import jakarta.servlet.http.HttpServletResponse;
-
 
 @SpringBootApplication
 @Import({ PetsController.class })
diff --git a/samples/springboot3/graphql-pet-store/template.yml b/samples/springboot3/graphql-pet-store/template.yml
index c6543b15f..ce5dcc6b1 100644
--- a/samples/springboot3/graphql-pet-store/template.yml
+++ b/samples/springboot3/graphql-pet-store/template.yml
@@ -14,7 +14,7 @@ Resources:
       Handler: com.amazonaws.serverless.sample.springboot3.StreamLambdaHandler::handleRequest
       Runtime: java21
       CodeUri: .
-      MemorySize: 1512
+      MemorySize: 1024
       Policies: AWSLambdaBasicExecutionRole
       Timeout: 60
       Events:

From ec852727da1c15f5d6e9ad361efdba73bc9bd383 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Thu, 25 Jan 2024 09:05:27 +0000
Subject: [PATCH 105/430] chore(deps-dev): bump
 org.apache.httpcomponents.client5:httpclient5

Bumps [org.apache.httpcomponents.client5:httpclient5](https://github.com/apache/httpcomponents-client) from 5.3 to 5.3.1.
- [Changelog](https://github.com/apache/httpcomponents-client/blob/rel/v5.3.1/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.3...rel/v5.3.1)

---
updated-dependencies:
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 0caa7b78d..541d6bcce 100644
--- a/pom.xml
+++ b/pom.xml
@@ -119,7 +119,7 @@
         <dependency>
             <groupId>org.apache.httpcomponents.client5</groupId>
             <artifactId>httpclient5</artifactId>
-            <version>5.3</version>
+            <version>5.3.1</version>
             <scope>test</scope>
         </dependency>
 

From f532873c1c893581cb86f92b7c7464dd756c7486 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Thu, 25 Jan 2024 09:05:32 +0000
Subject: [PATCH 106/430] chore(deps-dev): bump org.mockito:mockito-core from
 5.9.0 to 5.10.0

Bumps [org.mockito:mockito-core](https://github.com/mockito/mockito) from 5.9.0 to 5.10.0.
- [Release notes](https://github.com/mockito/mockito/releases)
- [Commits](https://github.com/mockito/mockito/compare/v5.9.0...v5.10.0)

---
updated-dependencies:
- dependency-name: org.mockito:mockito-core
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 0caa7b78d..04a4b58ea 100644
--- a/pom.xml
+++ b/pom.xml
@@ -81,7 +81,7 @@
         <jackson.version>2.16.1</jackson.version>
         <slf4j.version>2.0.11</slf4j.version>
         <junit.version>5.10.1</junit.version>
-        <mockito.version>5.9.0</mockito.version>
+        <mockito.version>5.10.0</mockito.version>
         <hamcrest.version>1.3</hamcrest.version>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     </properties>

From 8f0fc79094c8d7025d47ce21d384b08d871a341e Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Thu, 25 Jan 2024 13:44:40 +0100
Subject: [PATCH 107/430] feat: native Spring Web workloads (#335) - consistent
 naming

---
 ...java => AwsSpringHttpProcessingUtils.java} | 44 ++++---------------
 .../AwsSpringWebCustomRuntimeEventLoop.java   |  4 +-
 ...va => AwsSpringWebRuntimeInitializer.java} |  4 +-
 ...pringDelegatingLambdaContainerHandler.java |  2 +-
 .../main/resources/META-INF/spring.factories  |  2 +-
 ...=> AwsSpringHttpProcessingUtilsTests.java} |  8 ++--
 6 files changed, 18 insertions(+), 46 deletions(-)
 rename aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/{AWSHttpUtils.java => AwsSpringHttpProcessingUtils.java} (84%)
 rename aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/{AWSWebRuntimeInitializer.java => AwsSpringWebRuntimeInitializer.java} (92%)
 rename aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/{AWSHttpUtilsTests.java => AwsSpringHttpProcessingUtilsTests.java} (96%)

diff --git a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AWSHttpUtils.java b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtils.java
similarity index 84%
rename from aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AWSHttpUtils.java
rename to aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtils.java
index e19226b84..25a9c9cda 100644
--- a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AWSHttpUtils.java
+++ b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtils.java
@@ -30,16 +30,16 @@
 import jakarta.servlet.ServletContext;
 import jakarta.servlet.http.HttpServletRequest;
 
-class AWSHttpUtils {
+class AwsSpringHttpProcessingUtils {
 	
-	private static Log logger = LogFactory.getLog(AWSHttpUtils.class);
+	private static Log logger = LogFactory.getLog(AwsSpringHttpProcessingUtils.class);
 	
-	private AWSHttpUtils() {
+	private AwsSpringHttpProcessingUtils() {
 		
 	}
 	
 	public static AwsProxyResponse processRequest(String gatewayEvent, ServerlessMVC mvc, ObjectMapper mapper, AwsProxyHttpServletResponseWriter responseWriter) {
-		HttpServletRequest request = AWSHttpUtils.generateHttpServletRequest(gatewayEvent, null, mvc.getServletContext(), mapper);
+		HttpServletRequest request = AwsSpringHttpProcessingUtils.generateHttpServletRequest(gatewayEvent, null, mvc.getServletContext(), mapper);
 		CountDownLatch latch = new CountDownLatch(1);
         AwsHttpServletResponse response = new AwsHttpServletResponse(request, latch);
 		try {
@@ -56,7 +56,7 @@ public static AwsProxyResponse processRequest(String gatewayEvent, ServerlessMVC
 	
 	public static String extractVersion() {
 		try {
-			String path = AWSHttpUtils.class.getProtectionDomain().getCodeSource().getLocation().toString();
+			String path = AwsSpringHttpProcessingUtils.class.getProtectionDomain().getCodeSource().getLocation().toString();
 			int endIndex = path.lastIndexOf('.');
 			if (endIndex < 0) {
 				return "UNKNOWN-VERSION";
@@ -94,8 +94,8 @@ public static HttpServletRequest generateHttpServletRequest(String jsonRequest,
 				? new AwsHttpApiV2SecurityContextWriter()
 				: new AwsProxySecurityContextWriter();
 		HttpServletRequest httpServletRequest = "2.0".equals(_request.get("version"))
-				? AWSHttpUtils.generateRequest2(jsonRequest, lambdaContext, securityWriter, mapper, servletContext)
-				: AWSHttpUtils.generateRequest1(jsonRequest, lambdaContext, securityWriter, mapper, servletContext);
+				? AwsSpringHttpProcessingUtils.generateRequest2(jsonRequest, lambdaContext, securityWriter, mapper, servletContext)
+				: AwsSpringHttpProcessingUtils.generateRequest1(jsonRequest, lambdaContext, securityWriter, mapper, servletContext);
 		return httpServletRequest;
 	}
 
@@ -155,33 +155,5 @@ private static <T> T readValue(String json, Class<T> clazz, ObjectMapper mapper)
 			throw new IllegalStateException(e);
 		}
 	}
-	
-//	public static class ProxyServletConfig implements ServletConfig {
-//
-//		private final ServletContext servletContext;
-//
-//		public ProxyServletConfig(ServletContext servletContext) {
-//			this.servletContext = servletContext;
-//		}
-//
-//		@Override
-//		public String getServletName() {
-//			return DispatcherServletAutoConfiguration.DEFAULT_DISPATCHER_SERVLET_BEAN_NAME;
-//		}
-//
-//		@Override
-//		public ServletContext getServletContext() {
-//			return this.servletContext;
-//		}
-//
-//		@Override
-//		public Enumeration<String> getInitParameterNames() {
-//			return Collections.enumeration(new ArrayList<String>());
-//		}
-//
-//		@Override
-//		public String getInitParameter(String name) {
-//			return null;
-//		}
-//	}
+
 }
diff --git a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringWebCustomRuntimeEventLoop.java b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringWebCustomRuntimeEventLoop.java
index 4bb81059f..705cc80cc 100644
--- a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringWebCustomRuntimeEventLoop.java
+++ b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringWebCustomRuntimeEventLoop.java
@@ -57,7 +57,7 @@ public final class AwsSpringWebCustomRuntimeEventLoop implements SmartLifecycle
 	private static final String LAMBDA_RUNTIME_URL_TEMPLATE = "http://{0}/{1}/runtime/invocation/next";
 	private static final String LAMBDA_INVOCATION_URL_TEMPLATE = "http://{0}/{1}/runtime/invocation/{2}/response";
 	private static final String USER_AGENT_VALUE = String.format("spring-cloud-function/%s-%s",
-			System.getProperty("java.runtime.version"), AWSHttpUtils.extractVersion());
+			System.getProperty("java.runtime.version"), AwsSpringHttpProcessingUtils.extractVersion());
 
 	private final ServletWebServerApplicationContext applicationContext;
 
@@ -128,7 +128,7 @@ private void eventLoop(ServletWebServerApplicationContext context) {
 				try {
 					logger.debug("Submitting request to the user's web application");
 					
-					AwsProxyResponse awsResponse = AWSHttpUtils.processRequest(incomingEvent.getBody(), mvc, mapper, responseWriter);
+					AwsProxyResponse awsResponse = AwsSpringHttpProcessingUtils.processRequest(incomingEvent.getBody(), mvc, mapper, responseWriter);
 					if (logger.isDebugEnabled()) {
 						logger.debug("Received response - body: " + awsResponse.getBody() + 
 								"; status: " + awsResponse.getStatusCode() + "; headers: " + awsResponse.getHeaders());
diff --git a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AWSWebRuntimeInitializer.java b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringWebRuntimeInitializer.java
similarity index 92%
rename from aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AWSWebRuntimeInitializer.java
rename to aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringWebRuntimeInitializer.java
index e6dbd878f..4f47121df 100644
--- a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AWSWebRuntimeInitializer.java
+++ b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringWebRuntimeInitializer.java
@@ -32,9 +32,9 @@
  * @author Dave Syer
  * @author Oleg Zhurakousky
  */
-public class AWSWebRuntimeInitializer implements ApplicationContextInitializer<GenericApplicationContext> {
+public class AwsSpringWebRuntimeInitializer implements ApplicationContextInitializer<GenericApplicationContext> {
 
-	private static Log logger = LogFactory.getLog(AWSWebRuntimeInitializer.class);
+	private static Log logger = LogFactory.getLog(AwsSpringWebRuntimeInitializer.class);
 
 	@Override
 	public void initialize(GenericApplicationContext context) {
diff --git a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/SpringDelegatingLambdaContainerHandler.java b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/SpringDelegatingLambdaContainerHandler.java
index 7bbd8347b..47d78fca3 100644
--- a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/SpringDelegatingLambdaContainerHandler.java
+++ b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/SpringDelegatingLambdaContainerHandler.java
@@ -61,7 +61,7 @@ public SpringDelegatingLambdaContainerHandler(Class<?>... startupClasses) {
 
     @Override
     public void handleRequest(InputStream input, OutputStream output, Context lambdaContext) throws IOException {
-        HttpServletRequest httpServletRequest = AWSHttpUtils
+        HttpServletRequest httpServletRequest = AwsSpringHttpProcessingUtils
         		.generateHttpServletRequest(input, lambdaContext, this.mvc.getServletContext(), this.mapper);
         CountDownLatch latch = new CountDownLatch(1);
         AwsHttpServletResponse httpServletResponse = new AwsHttpServletResponse(httpServletRequest, latch);
diff --git a/aws-serverless-java-container-springboot3/src/main/resources/META-INF/spring.factories b/aws-serverless-java-container-springboot3/src/main/resources/META-INF/spring.factories
index a50819954..cd5c2e70b 100644
--- a/aws-serverless-java-container-springboot3/src/main/resources/META-INF/spring.factories
+++ b/aws-serverless-java-container-springboot3/src/main/resources/META-INF/spring.factories
@@ -1,2 +1,2 @@
 org.springframework.context.ApplicationContextInitializer=\
-com.amazonaws.serverless.proxy.spring.AWSWebRuntimeInitializer
+com.amazonaws.serverless.proxy.spring.AwsSpringWebRuntimeInitializer
diff --git a/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/AWSHttpUtilsTests.java b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtilsTests.java
similarity index 96%
rename from aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/AWSHttpUtilsTests.java
rename to aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtilsTests.java
index 61adfdcee..d77322b1a 100644
--- a/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/AWSHttpUtilsTests.java
+++ b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtilsTests.java
@@ -30,7 +30,7 @@
 
 import jakarta.servlet.http.HttpServletRequest;
 
-public class AWSHttpUtilsTests {
+public class AwsSpringHttpProcessingUtilsTests {
 	
 	private static String API_GATEWAY_EVENT = "{\n"
             + "    \"version\": \"1.0\",\n"
@@ -195,7 +195,7 @@ public static Collection<String> data() {
 	public void validateHttpServletRequestGenerationWithInputStream(String jsonEvent) {
 		ByteArrayInputStream inputStream = new ByteArrayInputStream(jsonEvent.getBytes(StandardCharsets.UTF_8));
 		ServerlessServletContext servletContext = new ServerlessServletContext();
-		HttpServletRequest request = AWSHttpUtils.generateHttpServletRequest(inputStream, null, servletContext, mapper);
+		HttpServletRequest request = AwsSpringHttpProcessingUtils.generateHttpServletRequest(inputStream, null, servletContext, mapper);
 		// spot check some headers
 		assertEquals("curl/7.79.1", request.getHeader("User-Agent"));
 		assertEquals("443", request.getHeader("X-Forwarded-Port"));
@@ -207,7 +207,7 @@ public void validateHttpServletRequestGenerationWithInputStream(String jsonEvent
     @ParameterizedTest
 	public void validateHttpServletRequestGenerationWithJson(String jsonEvent) {
 		ServerlessServletContext servletContext = new ServerlessServletContext();
-		HttpServletRequest request = AWSHttpUtils.generateHttpServletRequest(jsonEvent, null, servletContext, mapper);
+		HttpServletRequest request = AwsSpringHttpProcessingUtils.generateHttpServletRequest(jsonEvent, null, servletContext, mapper);
 		// spot check some headers
 		assertEquals("curl/7.79.1", request.getHeader("User-Agent"));
 		assertEquals("443", request.getHeader("X-Forwarded-Port"));
@@ -221,7 +221,7 @@ public void validateRequestResponse(String jsonEvent) throws Exception {
     	try (ConfigurableApplicationContext context = SpringApplication.run(EmptyApplication.class);) {
     		ServerlessMVC mvc = ServerlessMVC.INSTANCE((ServletWebServerApplicationContext) context);
     		AwsProxyHttpServletResponseWriter responseWriter = new AwsProxyHttpServletResponseWriter();
-    		AwsProxyResponse awsResponse = AWSHttpUtils.processRequest(jsonEvent, mvc, mapper, responseWriter);
+    		AwsProxyResponse awsResponse = AwsSpringHttpProcessingUtils.processRequest(jsonEvent, mvc, mapper, responseWriter);
     		assertEquals("hello", awsResponse.getBody());
     		assertEquals(200, awsResponse.getStatusCode());
     	}

From 1bd5f7241766c715c9966c0f869fd73cbe58b649 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Thu, 25 Jan 2024 13:49:13 +0100
Subject: [PATCH 108/430] feat: native Spring Web workloads (#335) - polishing

---
 .../serverless/proxy/spring/AwsSpringHttpProcessingUtils.java   | 2 +-
 .../proxy/spring/AwsSpringWebCustomRuntimeEventLoop.java        | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtils.java b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtils.java
index 25a9c9cda..e1bf9fe7e 100644
--- a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtils.java
+++ b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtils.java
@@ -132,7 +132,7 @@ private static HttpServletRequest generateRequest2(String request, Context lambd
 		ServerlessHttpServletRequest httpRequest = new ServerlessHttpServletRequest(servletContext,
 				v2Request.getRequestContext().getHttp().getMethod(), v2Request.getRequestContext().getHttp().getPath());
 		
-		v2Request.getHeaders().forEach((k,v) -> httpRequest.setHeader(k, v));
+		v2Request.getHeaders().forEach(httpRequest::setHeader);
 	
 		if (StringUtils.hasText(v2Request.getBody())) {
 			httpRequest.setContentType("application/json");
diff --git a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringWebCustomRuntimeEventLoop.java b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringWebCustomRuntimeEventLoop.java
index 705cc80cc..7e19683c6 100644
--- a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringWebCustomRuntimeEventLoop.java
+++ b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringWebCustomRuntimeEventLoop.java
@@ -63,7 +63,7 @@ public final class AwsSpringWebCustomRuntimeEventLoop implements SmartLifecycle
 
 	private volatile boolean running;
 
-	private ExecutorService executor = Executors.newSingleThreadExecutor();
+	private final ExecutorService executor = Executors.newSingleThreadExecutor();
 
 	public AwsSpringWebCustomRuntimeEventLoop(ServletWebServerApplicationContext applicationContext) {
 		this.applicationContext = applicationContext;

From 227b2a7654cccf75b368872313e3f2c91f30c05f Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Thu, 25 Jan 2024 14:06:03 +0100
Subject: [PATCH 109/430] feat: native Spring Web workloads (#335) - use newer
 dependency versions for sample

---
 samples/springboot3/pet-store-native/pom.xml | 25 +++++++++++++++++---
 1 file changed, 22 insertions(+), 3 deletions(-)

diff --git a/samples/springboot3/pet-store-native/pom.xml b/samples/springboot3/pet-store-native/pom.xml
index 1c33325e4..6ca921205 100644
--- a/samples/springboot3/pet-store-native/pom.xml
+++ b/samples/springboot3/pet-store-native/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.springframework.boot</groupId>
 		<artifactId>spring-boot-starter-parent</artifactId>
-		<version>3.2.0-SNAPSHOT</version>
+		<version>3.2.2</version>
 		<relativePath /> <!-- lookup parent from repository -->
 	</parent>
 	<groupId>com.amazonaws.serverless.sample</groupId>
@@ -31,12 +31,12 @@
 		<dependency>
 			<groupId>com.amazonaws</groupId>
 			<artifactId>aws-lambda-java-events</artifactId>
-			<version>3.9.0</version>
+			<version>3.11.4</version>
 		</dependency>
 		<dependency>
 			<groupId>com.amazonaws</groupId>
 			<artifactId>aws-lambda-java-core</artifactId>
-			<version>1.1.0</version>
+			<version>1.2.3</version>
 			<scope>provided</scope>
 		</dependency>
 
@@ -119,4 +119,23 @@
 			</build>
 		</profile>
 	</profiles>
+
+	<repositories>
+		<repository>
+			<id>spring-snapshots</id>
+			<name>Spring Snapshots</name>
+			<url>https://repo.spring.io/snapshot</url>
+			<snapshots>
+				<enabled>true</enabled>
+			</snapshots>
+		</repository>
+		<repository>
+			<id>spring-milestones</id>
+			<name>Spring Milestones</name>
+			<url>https://repo.spring.io/milestone</url>
+			<snapshots>
+				<enabled>false</enabled>
+			</snapshots>
+		</repository>
+	</repositories>
 </project>
\ No newline at end of file

From 01606c1fbcd50b918d95cdc84f0d7056a1d8b889 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Thu, 25 Jan 2024 14:07:26 +0100
Subject: [PATCH 110/430] feat: native Spring Web workloads (#335) - removed
 System.out.println in favor of proper logging

---
 .../proxy/spring/AwsSpringWebCustomRuntimeEventLoop.java       | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringWebCustomRuntimeEventLoop.java b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringWebCustomRuntimeEventLoop.java
index 7e19683c6..4c3484a24 100644
--- a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringWebCustomRuntimeEventLoop.java
+++ b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringWebCustomRuntimeEventLoop.java
@@ -143,9 +143,6 @@ private void eventLoop(ServletWebServerApplicationContext context) {
 						logger.debug("Response sent: body: " + result.getBody() + 
 								"; status: " + result.getStatusCode() + "; headers: " + result.getHeaders());
 					}
-		            System.out.println("==> status " + result.getStatusCode());
-		            System.out.println("==> body " + result.getBody());
-		            logger.debug("Response submitted back to the AWS Gateway");
 		            if (logger.isInfoEnabled()) {
 						logger.info("Result POST status: " + result);
 					}

From 4ff8c4169a935c7b660cdcf11bb3cdcc585924bd Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Thu, 25 Jan 2024 16:18:15 +0100
Subject: [PATCH 111/430] feat: native Spring Web workloads (#335) - update
 sample to Amazon Linux 2023

---
 .../springboot3/pet-store-native/Dockerfile   | 31 +++++++------------
 .../pet-store-native/template.yaml            |  2 +-
 2 files changed, 13 insertions(+), 20 deletions(-)

diff --git a/samples/springboot3/pet-store-native/Dockerfile b/samples/springboot3/pet-store-native/Dockerfile
index b86403b6c..d885d9261 100644
--- a/samples/springboot3/pet-store-native/Dockerfile
+++ b/samples/springboot3/pet-store-native/Dockerfile
@@ -1,25 +1,25 @@
-FROM arm64v8/amazonlinux:2
+FROM public.ecr.aws/amazonlinux/amazonlinux:2023
 
 RUN yum -y update \
-    && yum install -y tar unzip gzip bzip2-devel ed gcc gcc-c++ gcc-gfortran \
+    && yum install -y unzip tar gzip bzip2-devel ed gcc gcc-c++ gcc-gfortran \
     less libcurl-devel openssl openssl-devel readline-devel xz-devel \
-    zlib-devel glibc-static libcxx libcxx-devel llvm-toolset-7 zlib-static \
+    zlib-devel glibc-static zlib-static \
     && rm -rf /var/cache/yum
 
+# Graal VM
 ENV GRAAL_VERSION 21.0.2
-ENV GRAAL_FOLDERNAME graalvm-community-openjdk-${GRAAL_VERSION}
-ENV ARCHITECTURE aarch64
-RUN curl -4 -L https://github.com/graalvm/graalvm-ce-builds/releases/download/jdk-${GRAAL_VERSION}/graalvm-community-jdk-${GRAAL_VERSION}_linux-${ARCHITECTURE}_bin.tar.gz | tar -xvz
+ENV GRAAL_FILENAME graalvm-community-jdk-${GRAAL_VERSION}_linux-x64_bin.tar.gz
+RUN curl -4 -L https://github.com/graalvm/graalvm-ce-builds/releases/download/jdk-${GRAAL_VERSION}/${GRAAL_FILENAME} | tar -xvz
 RUN mv graalvm-community-openjdk-${GRAAL_VERSION}* /usr/lib/graalvm
-RUN rm -rf $GRAAL_FOLDERNAME
+ENV JAVA_HOME /usr/lib/graalvm
 
-# Graal maven plugin requires Maven 3.3.x
-ENV MVN_VERSION 3.6.3
+# Maven
+ENV MVN_VERSION 3.9.6
 ENV MVN_FOLDERNAME apache-maven-${MVN_VERSION}
 ENV MVN_FILENAME apache-maven-${MVN_VERSION}-bin.tar.gz
-RUN curl -4 -L https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/${MVN_VERSION}/${MVN_FILENAME} | tar -xvz
+RUN curl -4 -L https://archive.apache.org/dist/maven/maven-3/${MVN_VERSION}/binaries/${MVN_FILENAME} | tar -xvz
 RUN mv $MVN_FOLDERNAME /usr/lib/maven
-RUN rm -rf $MVN_FOLDERNAME
+RUN ln -s /usr/lib/maven/bin/mvn /usr/bin/mvn
 
 # Gradle
 ENV GRADLE_VERSION 7.4.1
@@ -28,16 +28,9 @@ ENV GRADLE_FILENAME gradle-${GRADLE_VERSION}-bin.zip
 RUN curl -LO https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-bin.zip	
 RUN unzip gradle-${GRADLE_VERSION}-bin.zip
 RUN mv $GRADLE_FOLDERNAME /usr/lib/gradle
-RUN rm -rf $GRADLE_FOLDERNAME
+RUN ln -s /usr/lib/gradle/bin/gradle /usr/bin/gradle
 
 VOLUME /project
 WORKDIR /project
 
-#RUN /usr/lib/graalvm/bin/gu install native-image
-#RUN ln -s /usr/lib/graalvm/bin/native-image /usr/bin/native-image
-RUN ln -s /usr/lib/maven/bin/mvn /usr/bin/mvn
-RUN ln -s /usr/lib/gradle/bin/gradle /usr/bin/gradle
-
-ENV JAVA_HOME /usr/lib/graalvm
-
 WORKDIR /pet-store-native
diff --git a/samples/springboot3/pet-store-native/template.yaml b/samples/springboot3/pet-store-native/template.yaml
index bb6ace59e..e081c7710 100644
--- a/samples/springboot3/pet-store-native/template.yaml
+++ b/samples/springboot3/pet-store-native/template.yaml
@@ -10,7 +10,7 @@ Resources:
       Timeout: 15
       CodeUri: ./target/pet-store-native-0.0.1-SNAPSHOT-native-zip.zip
       Handler: NOP
-      Runtime: provided.al2
+      Runtime: provided.al2023
       Architectures:
         - arm64
       Events:

From 9be742ab075cdee6f9ad62e3894b90c432678625 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Thu, 25 Jan 2024 16:47:17 +0100
Subject: [PATCH 112/430] feat: native Spring Web workloads (#335) - update
 README for sample

---
 samples/springboot3/pet-store-native/README.md | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/samples/springboot3/pet-store-native/README.md b/samples/springboot3/pet-store-native/README.md
index 07eac9c73..831353e5a 100644
--- a/samples/springboot3/pet-store-native/README.md
+++ b/samples/springboot3/pet-store-native/README.md
@@ -7,9 +7,9 @@ You first need to build the function, then you will deploy it to AWS Lambda.
 
 ### Step 1 - Build the native image
 
-Before starting the build, you must clone or download the code in **function-sample-aws-native**.
+Before starting the build, you must clone or download the code in **pet-store-native**.
 
-1. Change into the project directory: `samples/springboot3/function-sample-aws-serverless-web-native`
+1. Change into the project directory: `samples/springboot3/pet-store-native`
 2. Run the following to build a Docker container image which will be used to create the Lambda function zip file. 
    ```
    docker build -t "al2-graalvm21:native-web" .

From cb178853f6e9bf0f0f4e0b0c6cd43c35e32bee0e Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Fri, 26 Jan 2024 09:08:43 +0100
Subject: [PATCH 113/430] feat: native Spring Web workloads (#335) - use latest
 runtime version

---
 samples/springboot3/alt-pet-store/template.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/samples/springboot3/alt-pet-store/template.yml b/samples/springboot3/alt-pet-store/template.yml
index 8a51c8d1d..c883f0850 100644
--- a/samples/springboot3/alt-pet-store/template.yml
+++ b/samples/springboot3/alt-pet-store/template.yml
@@ -14,7 +14,7 @@ Resources:
 #      AutoPublishAlias: bcn
       FunctionName: pet-store-boot-3
       Handler: com.amazonaws.serverless.proxy.spring.SpringDelegatingLambdaContainerHandler::handleRequest
-      Runtime: java17
+      Runtime: java21
       SnapStart:
         ApplyOn: PublishedVersions
       CodeUri: .

From 3ef9aab69464519abce3158f4e93713540b56e24 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Fri, 26 Jan 2024 11:04:24 +0100
Subject: [PATCH 114/430] feat: native Spring Web workloads (#335) - native and
 non-native Handler should use same processing logic

---
 .../proxy/AsyncInitializationWrapper.java        |  2 +-
 .../spring/AwsSpringHttpProcessingUtils.java     | 10 +++++++---
 .../AwsSpringWebCustomRuntimeEventLoop.java      |  6 ++++--
 .../SpringDelegatingLambdaContainerHandler.java  | 16 +++-------------
 .../AwsSpringHttpProcessingUtilsTests.java       |  4 +++-
 5 files changed, 18 insertions(+), 20 deletions(-)

diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/AsyncInitializationWrapper.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/AsyncInitializationWrapper.java
index f5264e5f8..b6b9b037d 100644
--- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/AsyncInitializationWrapper.java
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/AsyncInitializationWrapper.java
@@ -47,7 +47,7 @@ public class AsyncInitializationWrapper extends InitializationWrapper {
     private static final boolean ASYNC_INIT_DISABLED = !INITIALIZATION_TYPE.equals(INITIALIZATION_TYPE_ON_DEMAND);
     private static final int INIT_GRACE_TIME_MS = Integer.parseInt(System.getenv().getOrDefault(
             INIT_GRACE_TIME_ENVIRONMENT_VARIABLE_NAME, Integer.toString(DEFAULT_INIT_GRACE_TIME_MS)));
-    public static final int LAMBDA_MAX_INIT_TIME_MS = 10_000;
+    private static final int LAMBDA_MAX_INIT_TIME_MS = 10_000;
 
     private CountDownLatch initializationLatch;
     private final long actualStartTime;
diff --git a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtils.java b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtils.java
index e1bf9fe7e..d268bd2e4 100644
--- a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtils.java
+++ b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtils.java
@@ -33,18 +33,22 @@
 class AwsSpringHttpProcessingUtils {
 	
 	private static Log logger = LogFactory.getLog(AwsSpringHttpProcessingUtils.class);
+	private static final int LAMBDA_MAX_REQUEST_DURATION_MINUTES = 15;
 	
 	private AwsSpringHttpProcessingUtils() {
 		
 	}
 	
-	public static AwsProxyResponse processRequest(String gatewayEvent, ServerlessMVC mvc, ObjectMapper mapper, AwsProxyHttpServletResponseWriter responseWriter) {
-		HttpServletRequest request = AwsSpringHttpProcessingUtils.generateHttpServletRequest(gatewayEvent, null, mvc.getServletContext(), mapper);
+	public static AwsProxyResponse processRequest(HttpServletRequest request, ServerlessMVC mvc, 
+												  AwsProxyHttpServletResponseWriter responseWriter) {
 		CountDownLatch latch = new CountDownLatch(1);
         AwsHttpServletResponse response = new AwsHttpServletResponse(request, latch);
 		try {
 			mvc.service(request, response);
-			latch.await(AsyncInitializationWrapper.LAMBDA_MAX_INIT_TIME_MS, TimeUnit.SECONDS);
+			boolean requestTimedOut = !latch.await(LAMBDA_MAX_REQUEST_DURATION_MINUTES, TimeUnit.MINUTES); // timeout is potentially lower as user configures it
+			if (requestTimedOut) {
+				logger.warn("request timed out after " + LAMBDA_MAX_REQUEST_DURATION_MINUTES + " minutes");
+			}
 			AwsProxyResponse awsResponse = responseWriter.writeResponse(response, null);
 			return awsResponse;
 		} 
diff --git a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringWebCustomRuntimeEventLoop.java b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringWebCustomRuntimeEventLoop.java
index 4c3484a24..db71d56c0 100644
--- a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringWebCustomRuntimeEventLoop.java
+++ b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringWebCustomRuntimeEventLoop.java
@@ -127,8 +127,10 @@ private void eventLoop(ServletWebServerApplicationContext context) {
 				
 				try {
 					logger.debug("Submitting request to the user's web application");
-					
-					AwsProxyResponse awsResponse = AwsSpringHttpProcessingUtils.processRequest(incomingEvent.getBody(), mvc, mapper, responseWriter);
+
+					AwsProxyResponse awsResponse = AwsSpringHttpProcessingUtils.processRequest(
+							AwsSpringHttpProcessingUtils.generateHttpServletRequest(incomingEvent.getBody(),
+									null, mvc.getServletContext(), mapper), mvc, responseWriter);
 					if (logger.isDebugEnabled()) {
 						logger.debug("Received response - body: " + awsResponse.getBody() + 
 								"; status: " + awsResponse.getStatusCode() + "; headers: " + awsResponse.getHeaders());
diff --git a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/SpringDelegatingLambdaContainerHandler.java b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/SpringDelegatingLambdaContainerHandler.java
index 47d78fca3..f1a3b526e 100644
--- a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/SpringDelegatingLambdaContainerHandler.java
+++ b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/SpringDelegatingLambdaContainerHandler.java
@@ -3,13 +3,11 @@
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
-import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.TimeUnit;
 
+import com.amazonaws.serverless.proxy.model.AwsProxyResponse;
 import org.springframework.cloud.function.serverless.web.FunctionClassUtils;
 import org.springframework.cloud.function.serverless.web.ServerlessMVC;
 
-import com.amazonaws.serverless.proxy.internal.servlet.AwsHttpServletResponse;
 import com.amazonaws.serverless.proxy.internal.servlet.AwsProxyHttpServletResponseWriter;
 import com.amazonaws.services.lambda.runtime.Context;
 import com.amazonaws.services.lambda.runtime.RequestStreamHandler;
@@ -63,15 +61,7 @@ public SpringDelegatingLambdaContainerHandler(Class<?>... startupClasses) {
     public void handleRequest(InputStream input, OutputStream output, Context lambdaContext) throws IOException {
         HttpServletRequest httpServletRequest = AwsSpringHttpProcessingUtils
         		.generateHttpServletRequest(input, lambdaContext, this.mvc.getServletContext(), this.mapper);
-        CountDownLatch latch = new CountDownLatch(1);
-        AwsHttpServletResponse httpServletResponse = new AwsHttpServletResponse(httpServletRequest, latch);
-        try {
-            this.mvc.service(httpServletRequest, httpServletResponse);
-            latch.await(10, TimeUnit.SECONDS);
-            this.mapper.writeValue(output, responseWriter.writeResponse(httpServletResponse, lambdaContext));
-        }
-        catch (Exception e) {
-            throw new IllegalStateException(e);
-        }
+        AwsProxyResponse awsProxyResponse = AwsSpringHttpProcessingUtils.processRequest(httpServletRequest, mvc, responseWriter);
+        this.mapper.writeValue(output, awsProxyResponse);
     }
 }
diff --git a/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtilsTests.java b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtilsTests.java
index d77322b1a..a04361e7e 100644
--- a/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtilsTests.java
+++ b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtilsTests.java
@@ -221,7 +221,9 @@ public void validateRequestResponse(String jsonEvent) throws Exception {
     	try (ConfigurableApplicationContext context = SpringApplication.run(EmptyApplication.class);) {
     		ServerlessMVC mvc = ServerlessMVC.INSTANCE((ServletWebServerApplicationContext) context);
     		AwsProxyHttpServletResponseWriter responseWriter = new AwsProxyHttpServletResponseWriter();
-    		AwsProxyResponse awsResponse = AwsSpringHttpProcessingUtils.processRequest(jsonEvent, mvc, mapper, responseWriter);
+    		AwsProxyResponse awsResponse = AwsSpringHttpProcessingUtils.processRequest(
+					AwsSpringHttpProcessingUtils.generateHttpServletRequest(jsonEvent, null,
+							mvc.getServletContext(), mapper), mvc, responseWriter);
     		assertEquals("hello", awsResponse.getBody());
     		assertEquals(200, awsResponse.getStatusCode());
     	}

From c21a826a9b9409689586243f52e2a87b164405b0 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Fri, 26 Jan 2024 11:24:57 +0100
Subject: [PATCH 115/430] feat: native Spring Web workloads (#335) - add
 -march=compatibility to avoid infrequent CPU features error

---
 samples/springboot3/pet-store-native/pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/samples/springboot3/pet-store-native/pom.xml b/samples/springboot3/pet-store-native/pom.xml
index 6ca921205..c02774bbf 100644
--- a/samples/springboot3/pet-store-native/pom.xml
+++ b/samples/springboot3/pet-store-native/pom.xml
@@ -78,7 +78,7 @@
 						<artifactId>native-maven-plugin</artifactId>
 						<configuration>
 							<buildArgs>
-								<buildArg>--enable-url-protocols=http --enable-preview</buildArg>
+								<buildArg>--enable-url-protocols=http --enable-preview -march=compatibility</buildArg>
 							</buildArgs>
 						</configuration>
 						<executions>

From 1fa314ba6f020029cb81bd37cd2827f52d20684f Mon Sep 17 00:00:00 2001
From: kibeom lee <70303094+2012160085@users.noreply.github.com>
Date: Sat, 27 Jan 2024 01:31:09 +0900
Subject: [PATCH 116/430] Refactor Dispatch Start Check for Atomicity

---
 .../serverless/proxy/internal/servlet/AwsAsyncContext.java   | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsAsyncContext.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsAsyncContext.java
index 98e7ef8ec..d64af8966 100644
--- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsAsyncContext.java
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsAsyncContext.java
@@ -69,12 +69,11 @@ public boolean hasOriginalRequestAndResponse() {
     @Override
     public void dispatch() {
         log.debug("Dispatching request");
+
         if (dispatched.get()) {
             throw new IllegalStateException("Dispatching already started");
         }
-        if (!dispatchStarted.get()) {
-            dispatchStarted.set(true);
-        } else {
+        if (dispatchStarted.getAndSet(true)) {
             dispatched.set(true);
             notifyListeners(NotificationType.START_ASYNC, null);
         }

From 16cce27e23bf55bdc153ace416cbf8f18240cb78 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Fri, 26 Jan 2024 18:16:20 +0100
Subject: [PATCH 117/430] chore: don't run dependency check everytime (NVD API
 limits) but using CI instead

---
 .../workflows/continuous-integration-workflow.yml   | 13 +++++++++++++
 aws-serverless-java-container-core/pom.xml          |  7 -------
 aws-serverless-java-container-jersey/pom.xml        |  7 -------
 aws-serverless-java-container-spring/pom.xml        |  7 -------
 aws-serverless-java-container-springboot3/pom.xml   |  7 -------
 5 files changed, 13 insertions(+), 28 deletions(-)

diff --git a/.github/workflows/continuous-integration-workflow.yml b/.github/workflows/continuous-integration-workflow.yml
index b0acd32ad..cca7cfe78 100644
--- a/.github/workflows/continuous-integration-workflow.yml
+++ b/.github/workflows/continuous-integration-workflow.yml
@@ -94,3 +94,16 @@ jobs:
 #      - uses: actions/checkout@v3
 #      - name: Build latest
 #        run: ./gha_build.sh struts true true
+
+  owasp-dependency-check:
+    name: Verify dependencies with OWASP checker
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v3
+      - name: Set up JDK 17
+        uses: actions/setup-java@v3
+        with:
+          distribution: 'corretto'
+          java-version: 17
+      - name: Build latest
+        run: mvn -q org.owasp:dependency-check-maven:check
\ No newline at end of file
diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml
index 2a290f85f..77417a01a 100644
--- a/aws-serverless-java-container-core/pom.xml
+++ b/aws-serverless-java-container-core/pom.xml
@@ -160,13 +160,6 @@
                     <failBuildOnCVSS>7</failBuildOnCVSS>
                     <failOnError>false</failOnError>
                 </configuration>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>check</goal>
-                        </goals>
-                    </execution>
-                </executions>
             </plugin>
         </plugins>
     </build>
diff --git a/aws-serverless-java-container-jersey/pom.xml b/aws-serverless-java-container-jersey/pom.xml
index 4bc7456e1..926e8df7b 100644
--- a/aws-serverless-java-container-jersey/pom.xml
+++ b/aws-serverless-java-container-jersey/pom.xml
@@ -198,13 +198,6 @@
                     <failBuildOnCVSS>7</failBuildOnCVSS>
                     <failOnError>false</failOnError>
                 </configuration>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>check</goal>
-                        </goals>
-                    </execution>
-                </executions>
             </plugin>
         </plugins>
     </build>
diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml
index 5a5ff5470..776c720c9 100644
--- a/aws-serverless-java-container-spring/pom.xml
+++ b/aws-serverless-java-container-spring/pom.xml
@@ -241,13 +241,6 @@
                     <failBuildOnCVSS>7</failBuildOnCVSS>
                     <failOnError>false</failOnError>
                 </configuration>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>check</goal>
-                        </goals>
-                    </execution>
-                </executions>
             </plugin>
         </plugins>
     </build>
diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml
index 9b4d941c9..42a1edf7b 100644
--- a/aws-serverless-java-container-springboot3/pom.xml
+++ b/aws-serverless-java-container-springboot3/pom.xml
@@ -276,13 +276,6 @@
                     <failBuildOnCVSS>7</failBuildOnCVSS>
                     <failOnError>false</failOnError>
                 </configuration>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>check</goal>
-                        </goals>
-                    </execution>
-                </executions>
             </plugin>
         </plugins>
     </build>

From e1acefc727741e0ae0e9c4d34ce52afd41b7265e Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Fri, 26 Jan 2024 20:48:13 +0100
Subject: [PATCH 118/430] chore: don't run dependency check everytime (NVD API
 limits) but using CI instead

---
 .../continuous-integration-workflow.yml        | 15 +--------------
 .github/workflows/owasp-dependency-check.yml   | 18 ++++++++++++++++++
 2 files changed, 19 insertions(+), 14 deletions(-)
 create mode 100644 .github/workflows/owasp-dependency-check.yml

diff --git a/.github/workflows/continuous-integration-workflow.yml b/.github/workflows/continuous-integration-workflow.yml
index cca7cfe78..fec3f5ca9 100644
--- a/.github/workflows/continuous-integration-workflow.yml
+++ b/.github/workflows/continuous-integration-workflow.yml
@@ -93,17 +93,4 @@ jobs:
 #    steps:
 #      - uses: actions/checkout@v3
 #      - name: Build latest
-#        run: ./gha_build.sh struts true true
-
-  owasp-dependency-check:
-    name: Verify dependencies with OWASP checker
-    runs-on: ubuntu-latest
-    steps:
-      - uses: actions/checkout@v3
-      - name: Set up JDK 17
-        uses: actions/setup-java@v3
-        with:
-          distribution: 'corretto'
-          java-version: 17
-      - name: Build latest
-        run: mvn -q org.owasp:dependency-check-maven:check
\ No newline at end of file
+#        run: ./gha_build.sh struts true true
\ No newline at end of file
diff --git a/.github/workflows/owasp-dependency-check.yml b/.github/workflows/owasp-dependency-check.yml
new file mode 100644
index 000000000..fa2657740
--- /dev/null
+++ b/.github/workflows/owasp-dependency-check.yml
@@ -0,0 +1,18 @@
+name: OWASP dependency check
+on:
+  schedule:
+    - cron: "10 10 * * 3"
+
+jobs:
+  owasp-dependency-check:
+    name: Verify dependencies with OWASP checker
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v3
+      - name: Set up JDK 17
+        uses: actions/setup-java@v3
+        with:
+          distribution: 'corretto'
+          java-version: 17
+      - name: Build latest
+        run: mvn -q package org.owasp:dependency-check-maven:check
\ No newline at end of file

From 4533c4be0338b136687f85e234bdb3a6a62cbe23 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Tue, 30 Jan 2024 07:42:52 +0100
Subject: [PATCH 119/430] feat: native Spring Web workloads (#335) - use
 spring-cloud-function-serverless-web 4.0.6 release

---
 aws-serverless-java-container-springboot3/pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml
index 3b3cbd2bc..b6b9c749b 100644
--- a/aws-serverless-java-container-springboot3/pom.xml
+++ b/aws-serverless-java-container-springboot3/pom.xml
@@ -25,7 +25,7 @@
         <dependency>
             <groupId>org.springframework.cloud</groupId>
             <artifactId>spring-cloud-function-serverless-web</artifactId>
-            <version>4.0.6-SNAPSHOT</version>
+            <version>4.0.6</version>
         </dependency>
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>

From 948f76c57de10d3887b93df83b446c1963ef5238 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Tue, 30 Jan 2024 08:00:09 +0100
Subject: [PATCH 120/430] chore(deps): use ${springboot.version} for
 spring-boot-starter-data-jpa

---
 aws-serverless-java-container-springboot3/pom.xml | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml
index 96518a79a..ecd0d6ab3 100644
--- a/aws-serverless-java-container-springboot3/pom.xml
+++ b/aws-serverless-java-container-springboot3/pom.xml
@@ -194,7 +194,7 @@
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-data-jpa</artifactId>
-            <version>3.2.1</version>
+            <version>${springboot.version}</version>
             <scope>test</scope>
             <exclusions>
                 <exclusion>
@@ -326,8 +326,8 @@
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-compiler-plugin</artifactId>
                 <configuration>
-                    <source>10</source>
-                    <target>10</target>
+                    <source>17</source>
+                    <target>17</target>
                 </configuration>
             </plugin>
         </plugins>

From 58b296fb49c403aacef133ffe483eff2d4c2a6e7 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Tue, 30 Jan 2024 11:41:27 +0100
Subject: [PATCH 121/430] refactor: extract InitializableLambdaContainerHandler
 interface to be used by SpringDelegatingLambdaContainerHandler later on

---
 .../proxy/AsyncInitializationWrapper.java     | 16 +++++-----
 .../proxy/InitializationWrapper.java          |  8 ++---
 .../InitializableLambdaContainerHandler.java  | 31 +++++++++++++++++++
 .../internal/LambdaContainerHandler.java      |  3 +-
 4 files changed, 45 insertions(+), 13 deletions(-)
 create mode 100644 aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/InitializableLambdaContainerHandler.java

diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/AsyncInitializationWrapper.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/AsyncInitializationWrapper.java
index b6b9b037d..57f4e8a06 100644
--- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/AsyncInitializationWrapper.java
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/AsyncInitializationWrapper.java
@@ -13,7 +13,7 @@
 package com.amazonaws.serverless.proxy;
 
 import com.amazonaws.serverless.exceptions.ContainerInitializationException;
-import com.amazonaws.serverless.proxy.internal.LambdaContainerHandler;
+import com.amazonaws.serverless.proxy.internal.InitializableLambdaContainerHandler;
 import com.amazonaws.services.lambda.runtime.Context;
 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import org.slf4j.Logger;
@@ -26,10 +26,10 @@
 
 /**
  * An async implementation of the <code>InitializationWrapper</code> interface. This initializer calls the
- * {@link LambdaContainerHandler#initialize()} in a separate thread. Then uses a latch to wait for the maximum Lambda
+ * {@link InitializableLambdaContainerHandler#initialize()} in a separate thread. Then uses a latch to wait for the maximum Lambda
  * initialization time of 10 seconds, if the <code>initialize</code> method takes longer than 10 seconds to return, the
- * {@link #start(LambdaContainerHandler)} returns control to the caller and lets the initialization thread continue in
- * the background. The {@link LambdaContainerHandler#proxy(Object, Context)} automatically waits for the latch of the
+ * {@link #start(InitializableLambdaContainerHandler)} returns control to the caller and lets the initialization thread continue in
+ * the background. The {@link com.amazonaws.serverless.proxy.internal.LambdaContainerHandler#proxy(Object, Context)} automatically waits for the latch of the
  * initializer to be released.
  *
  * The constructor of this class expects an epoch long. This is meant to be as close as possible to the time the Lambda
@@ -72,7 +72,7 @@ public AsyncInitializationWrapper() {
     }
 
     @Override
-    public void start(LambdaContainerHandler handler) throws ContainerInitializationException {
+    public void start(InitializableLambdaContainerHandler handler) throws ContainerInitializationException {
         if(ASYNC_INIT_DISABLED){
             log.info("Async init disabled due to \"{}\" initialization", INITIALIZATION_TYPE);
             super.start(handler);
@@ -107,18 +107,18 @@ public long getActualStartTimeMs() {
 
     @Override
     public CountDownLatch getInitializationLatch() {
-        if(ASYNC_INIT_DISABLED){
+        if (ASYNC_INIT_DISABLED){
             return super.getInitializationLatch();
         }
         return initializationLatch;
     }
 
     private static class AsyncInitializer implements Runnable {
-        private LambdaContainerHandler handler;
+        private final InitializableLambdaContainerHandler handler;
         private CountDownLatch initLatch;
         private Logger log = LoggerFactory.getLogger(AsyncInitializationWrapper.class);
 
-        AsyncInitializer(CountDownLatch latch, LambdaContainerHandler h) {
+        AsyncInitializer(CountDownLatch latch, InitializableLambdaContainerHandler h) {
             initLatch = latch;
             handler = h;
         }
diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/InitializationWrapper.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/InitializationWrapper.java
index f7c96f8f4..a261b6cc8 100644
--- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/InitializationWrapper.java
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/InitializationWrapper.java
@@ -13,13 +13,13 @@
 package com.amazonaws.serverless.proxy;
 
 import com.amazonaws.serverless.exceptions.ContainerInitializationException;
-import com.amazonaws.serverless.proxy.internal.LambdaContainerHandler;
+import com.amazonaws.serverless.proxy.internal.InitializableLambdaContainerHandler;
 
 import java.util.concurrent.CountDownLatch;
 
 /**
- * This class is in charge of initializing a {@link LambdaContainerHandler}.
- * In most cases, this means calling the {@link LambdaContainerHandler#initialize()} method. Some implementations may
+ * This class is in charge of initializing a {@link InitializableLambdaContainerHandler}.
+ * In most cases, this means calling the {@link InitializableLambdaContainerHandler#initialize()} method. Some implementations may
  * require additional initialization steps, in this case implementations should provide their own
  * <code>InitializationWrapper</code>. This library includes an async implementation of this class
  * {@link AsyncInitializationWrapper} for frameworks that are likely to take longer than 10 seconds to start.
@@ -31,7 +31,7 @@ public class InitializationWrapper {
      * @param handler The container handler to be initializer
      * @throws ContainerInitializationException If anything goes wrong during container initialization.
      */
-    public void start(LambdaContainerHandler handler) throws ContainerInitializationException {
+    public void start(InitializableLambdaContainerHandler handler) throws ContainerInitializationException {
         handler.initialize();
     }
 
diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/InitializableLambdaContainerHandler.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/InitializableLambdaContainerHandler.java
new file mode 100644
index 000000000..daf4a69d9
--- /dev/null
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/InitializableLambdaContainerHandler.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright 2024 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance
+ * with the License. A copy of the License is located at
+ *
+ * http://aws.amazon.com/apache2.0/
+ *
+ * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES
+ * OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
+ * and limitations under the License.
+ */
+package com.amazonaws.serverless.proxy.internal;
+
+import com.amazonaws.serverless.exceptions.ContainerInitializationException;
+
+/**
+ * Interface to define initialization/ cold-start related methods.
+ * See also the documentation for
+ * <a href="https://docs.aws.amazon.com/lambda/latest/operatorguide/execution-environments.html">
+ *     AWS Lambda Execution Environments</a>.
+ */
+public interface InitializableLambdaContainerHandler {
+
+    /**
+     * This method is called on the first (cold) invocation
+     *
+     * @throws ContainerInitializationException in case initialization fails
+     */
+    void initialize() throws ContainerInitializationException;
+}
diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/LambdaContainerHandler.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/LambdaContainerHandler.java
index f14251600..ff978456b 100644
--- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/LambdaContainerHandler.java
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/LambdaContainerHandler.java
@@ -45,7 +45,8 @@
  * @param <ContainerRequestType> The request type for the wrapped Java container
  * @param <ContainerResponseType> The response or response writer type for the wrapped Java container
  */
-public abstract class LambdaContainerHandler<RequestType, ResponseType, ContainerRequestType, ContainerResponseType> {
+public abstract class LambdaContainerHandler<RequestType, ResponseType, ContainerRequestType, ContainerResponseType>
+        implements InitializableLambdaContainerHandler {
 
     //-------------------------------------------------------------
     // Constants

From 88f6e4aa07b3cecf644bb4c0d96f366f10a03377 Mon Sep 17 00:00:00 2001
From: Oleg Zhurakousky <ozhurakousky@vmware.com>
Date: Tue, 30 Jan 2024 15:27:39 +0100
Subject: [PATCH 122/430] GH-754 Fix request parameter parsing

While concentrating on REST we somehow ignored standard request parameters. This fix addresses it for both v1 and v2 requests as well as adds tests and additional endpoint to a sample to verify

Resolves #754

polishing
---
 .../spring/AwsSpringHttpProcessingUtils.java  | 22 ++++++++++++++++-
 ...DelegatingLambdaContainerHandlerTests.java | 24 ++++++++++++++++++-
 .../spring/servletapp/ServletApplication.java | 18 ++++++++++++--
 samples/springboot3/alt-pet-store/README.md   | 19 ++++++++++++++-
 .../controller/PetsController.java            | 13 ++++++++++
 5 files changed, 91 insertions(+), 5 deletions(-)

diff --git a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtils.java b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtils.java
index d268bd2e4..c7e507f39 100644
--- a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtils.java
+++ b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtils.java
@@ -2,7 +2,10 @@
 
 import java.io.InputStream;
 import java.nio.charset.StandardCharsets;
+import java.util.Iterator;
 import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Set;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
 
@@ -10,6 +13,7 @@
 import org.apache.commons.logging.LogFactory;
 import org.springframework.cloud.function.serverless.web.ServerlessHttpServletRequest;
 import org.springframework.cloud.function.serverless.web.ServerlessMVC;
+import org.springframework.util.CollectionUtils;
 import org.springframework.util.FileCopyUtils;
 import org.springframework.util.MultiValueMapAdapter;
 import org.springframework.util.StringUtils;
@@ -109,6 +113,9 @@ private static HttpServletRequest generateRequest1(String request, Context lambd
 		AwsProxyRequest v1Request = readValue(request, AwsProxyRequest.class, mapper);
 		
 		ServerlessHttpServletRequest httpRequest = new ServerlessHttpServletRequest(servletContext, v1Request.getHttpMethod(), v1Request.getPath());
+
+		populateQueryStringparameters(v1Request.getQueryStringParameters(), httpRequest);
+		
 		if (v1Request.getMultiValueHeaders() != null) {
 			MultiValueMapAdapter headers = new MultiValueMapAdapter(v1Request.getMultiValueHeaders());
 			httpRequest.setHeaders(headers);
@@ -128,16 +135,21 @@ private static HttpServletRequest generateRequest1(String request, Context lambd
 				securityWriter.writeSecurityContext(v1Request, lambdaContext));
 		return httpRequest;
 	}
+	
+	
 
 	@SuppressWarnings({ "rawtypes", "unchecked" })
 	private static HttpServletRequest generateRequest2(String request, Context lambdaContext,
 			SecurityContextWriter securityWriter, ObjectMapper mapper, ServletContext servletContext) {
 		HttpApiV2ProxyRequest v2Request = readValue(request, HttpApiV2ProxyRequest.class, mapper);
+		
+		
 		ServerlessHttpServletRequest httpRequest = new ServerlessHttpServletRequest(servletContext,
 				v2Request.getRequestContext().getHttp().getMethod(), v2Request.getRequestContext().getHttp().getPath());
+		populateQueryStringparameters(v2Request.getQueryStringParameters(), httpRequest);
 		
 		v2Request.getHeaders().forEach(httpRequest::setHeader);
-	
+		
 		if (StringUtils.hasText(v2Request.getBody())) {
 			httpRequest.setContentType("application/json");
 			httpRequest.setContent(v2Request.getBody().getBytes(StandardCharsets.UTF_8));
@@ -151,6 +163,14 @@ private static HttpServletRequest generateRequest2(String request, Context lambd
 		return httpRequest;
 	}
 	
+	private static void populateQueryStringparameters(Map<String, String> requestParameters, ServerlessHttpServletRequest httpRequest) {
+		if (!CollectionUtils.isEmpty(requestParameters)) {
+			for (Entry<String, String> entry : requestParameters.entrySet()) {
+				httpRequest.setParameter(entry.getKey(), entry.getValue());
+			}
+		}
+	}
+	
 	private static <T> T readValue(String json, Class<T> clazz, ObjectMapper mapper) {
 		try {
 			return mapper.readValue(json, clazz);
diff --git a/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/SpringDelegatingLambdaContainerHandlerTests.java b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/SpringDelegatingLambdaContainerHandlerTests.java
index dabc30e24..ff1f209b5 100644
--- a/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/SpringDelegatingLambdaContainerHandlerTests.java
+++ b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/SpringDelegatingLambdaContainerHandlerTests.java
@@ -13,6 +13,7 @@
 
 import org.junit.jupiter.params.ParameterizedTest;
 import org.junit.jupiter.params.provider.MethodSource;
+import org.springframework.cloud.function.serverless.web.ServerlessServletContext;
 import org.springframework.util.CollectionUtils;
 
 import com.amazonaws.serverless.proxy.spring.servletapp.MessageData;
@@ -72,12 +73,16 @@ public class SpringDelegatingLambdaContainerHandlerTests {
             + "    },\n"
             + "    \"queryStringParameters\": {\n"
             + "        \"abc\": \"xyz\",\n"
+            + "        \"name\": \"Ricky\",\n"
             + "        \"foo\": \"baz\"\n"
             + "    },\n"
             + "    \"multiValueQueryStringParameters\": {\n"
             + "        \"abc\": [\n"
             + "            \"xyz\"\n"
             + "        ],\n"
+            + "        \"name\": [\n"
+            + "            \"Ricky\"\n"
+            + "        ],\n"
             + "        \"foo\": [\n"
             + "            \"bar\",\n"
             + "            \"baz\"\n"
@@ -124,7 +129,7 @@ public class SpringDelegatingLambdaContainerHandlerTests {
             "  \"version\": \"2.0\",\n" +
             "  \"routeKey\": \"$default\",\n" +
             "  \"rawPath\": \"/my/path\",\n" +
-            "  \"rawQueryString\": \"parameter1=value1&parameter1=value2&parameter2=value\",\n" +
+            "  \"rawQueryString\": \"parameter1=value1&parameter1=value2&name=Ricky&parameter2=value\",\n" +
             "  \"cookies\": [\n" +
             "    \"cookie1\",\n" +
             "    \"cookie2\"\n" +
@@ -135,6 +140,7 @@ public class SpringDelegatingLambdaContainerHandlerTests {
             "  },\n" +
             "  \"queryStringParameters\": {\n" +
             "    \"parameter1\": \"value1,value2\",\n" +
+            "    \"name\": \"Ricky\",\n" +
             "    \"parameter2\": \"value\"\n" +
             "  },\n" +
             "  \"requestContext\": {\n" +
@@ -202,6 +208,22 @@ public static Collection<String> data() {
         return Arrays.asList(new String[]{API_GATEWAY_EVENT, API_GATEWAY_EVENT_V2});
     }
 
+    @MethodSource("data")
+    @ParameterizedTest
+    public void validateComplesrequest(String jsonEvent) throws Exception {
+        initServletAppTest();
+        InputStream targetStream = new ByteArrayInputStream(this.generateHttpRequest(jsonEvent, "POST", 
+        		"/foo/male/list/24", "{\"name\":\"bob\"}", null));
+        ByteArrayOutputStream output = new ByteArrayOutputStream();
+        handler.handleRequest(targetStream, output, null);
+        Map result = mapper.readValue(output.toString(StandardCharsets.UTF_8), Map.class);
+        assertEquals(200, result.get("statusCode"));
+        String[] respponseBody = ((String) result.get("body")).split("/");
+        assertEquals("male", respponseBody[0]);
+        assertEquals("24", respponseBody[1]);
+        assertEquals("Ricky", respponseBody[2]);
+    }
+    
     @MethodSource("data")
     @ParameterizedTest
     public void testAsyncPost(String jsonEvent) throws Exception {
diff --git a/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/servletapp/ServletApplication.java b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/servletapp/ServletApplication.java
index 0cb001ed1..9f01859aa 100644
--- a/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/servletapp/ServletApplication.java
+++ b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/servletapp/ServletApplication.java
@@ -1,9 +1,13 @@
 package com.amazonaws.serverless.proxy.spring.servletapp;
 
 import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
-import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Import;
+import org.springframework.http.MediaType;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
 
 @SpringBootApplication(exclude = {
         org.springframework.boot.autoconfigure.security.reactive.ReactiveUserDetailsServiceAutoConfiguration.class,
@@ -14,5 +18,15 @@
         org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration.class
 })
 @Import(MessageController.class)
+@RestController
 public class ServletApplication {
+	
+	@RequestMapping(path = "/foo/{gender}/list/{age}", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
+    public String complexRequest(
+            @PathVariable("gender") String gender,
+            @PathVariable("age") String age,
+            @RequestParam("name") String name
+    ) {
+		return gender + "/" + age + "/" + name;
+	}
 }
diff --git a/samples/springboot3/alt-pet-store/README.md b/samples/springboot3/alt-pet-store/README.md
index d8cf8383d..b91cd42f6 100644
--- a/samples/springboot3/alt-pet-store/README.md
+++ b/samples/springboot3/alt-pet-store/README.md
@@ -36,4 +36,21 @@ PetStoreApi - URL for application            https://xxxxxxxxxx.execute-api.us-w
 ---------------------------------------------------------------------------------------------------------
 
 $ curl https://xxxxxxxxxx.execute-api.us-west-2.amazonaws.com/pets
-```
\ No newline at end of file
+```
+
+You can also try a complex request passing both path and request parameters to  complex endpoint such as this:
+
+
+```
+@RequestMapping(path = "/foo/{gender}/bar/{age}", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
+public String complexRequest(@RequestBody String body,
+        @PathVariable("gender") String gender,
+        @PathVariable("age") String age,
+        @RequestParam("name") String name
+)
+```
+For example.
+
+```
+curl -d '{"key1":"value1", "key2":"value2"}' -H "Content-Type: application/json" -X POST https://zuhd709386.execute-api.us-east-2.amazonaws.com/foo/male/bar/25?name=Ricky
+```
diff --git a/samples/springboot3/alt-pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/controller/PetsController.java b/samples/springboot3/alt-pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/controller/PetsController.java
index 680e629d3..769db35f3 100644
--- a/samples/springboot3/alt-pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/controller/PetsController.java
+++ b/samples/springboot3/alt-pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/controller/PetsController.java
@@ -17,6 +17,8 @@
 import com.amazonaws.serverless.sample.springboot3.model.Pet;
 import com.amazonaws.serverless.sample.springboot3.model.PetData;
 
+import org.springframework.http.MediaType;
+import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
@@ -32,6 +34,7 @@
 @RestController
 @EnableWebMvc
 public class PetsController {
+	
     @RequestMapping(path = "/pets", method = RequestMethod.POST)
     public Pet createPet(@RequestBody Pet newPet) {
         if (newPet.getName() == null || newPet.getBreed() == null) {
@@ -73,5 +76,15 @@ public Pet listPets() {
         newPet.setName(PetData.getRandomName());
         return newPet;
     }
+    
+    @RequestMapping(path = "/foo/{gender}/bar/{age}", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
+    public String complexRequest(@RequestBody String body,
+            @PathVariable("gender") String gender,
+            @PathVariable("age") String age,
+            @RequestParam("name") String name
+    ) {
+    	System.out.println("Body: " + body + " - " + gender + "/" + age + "/" + name);
+		return gender + "/" + age + "/" + name;
+	}
 
 }

From 9c181eccdf4613aeee16c44e327df1f5169b448e Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 31 Jan 2024 07:18:41 +0000
Subject: [PATCH 123/430] chore(deps-dev): bump com.h2database:h2 from 2.2.222
 to 2.2.224

Bumps [com.h2database:h2](https://github.com/h2database/h2database) from 2.2.222 to 2.2.224.
- [Release notes](https://github.com/h2database/h2database/releases)
- [Commits](https://github.com/h2database/h2database/compare/version-2.2.222...version-2.2.224)

---
updated-dependencies:
- dependency-name: com.h2database:h2
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 aws-serverless-java-container-springboot3/pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml
index ecd0d6ab3..93373d31f 100644
--- a/aws-serverless-java-container-springboot3/pom.xml
+++ b/aws-serverless-java-container-springboot3/pom.xml
@@ -226,7 +226,7 @@
         <dependency>
             <groupId>com.h2database</groupId>
             <artifactId>h2</artifactId>
-            <version>2.2.222</version>
+            <version>2.2.224</version>
             <scope>test</scope>
         </dependency>
 

From 316c7a4094a5c066f07ca98ef24f00d6d432eb83 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Wed, 31 Jan 2024 10:47:40 +0100
Subject: [PATCH 124/430] chore: add new samples to dependabot config

---
 .github/dependabot.yml | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/.github/dependabot.yml b/.github/dependabot.yml
index 81c896308..7633e7636 100644
--- a/.github/dependabot.yml
+++ b/.github/dependabot.yml
@@ -25,6 +25,26 @@ updates:
     directory: "/samples/springboot3/pet-store"
     schedule:
       interval: "weekly"
+  - package-ecosystem: maven
+    directory: "/samples/springboot3/alt-pet-store"
+    schedule:
+      interval: "weekly"
+  - package-ecosystem: gradle
+    directory: "/samples/springboot3/alt-pet-store"
+    schedule:
+      interval: "weekly"
+  - package-ecosystem: maven
+    directory: "/samples/springboot3/graphql-pet-store"
+    schedule:
+      interval: "weekly"
+  - package-ecosystem: maven
+    directory: "/samples/springboot3/pet-store-native"
+    schedule:
+      interval: "weekly"
+  - package-ecosystem: gradle
+    directory: "/samples/springboot3/pet-store-native"
+    schedule:
+      interval: "weekly"
   - package-ecosystem: maven
     directory: "/samples/jersey/pet-store"
     schedule:

From 5da788a70f84a14df1aace1693d5fce2f49297b0 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Wed, 31 Jan 2024 10:57:40 +0100
Subject: [PATCH 125/430] chore: modify CI build to check for backwards
 compatibility

---
 .../continuous-integration-workflow.yml       | 34 +++++++------------
 1 file changed, 12 insertions(+), 22 deletions(-)

diff --git a/.github/workflows/continuous-integration-workflow.yml b/.github/workflows/continuous-integration-workflow.yml
index fec3f5ca9..2718637a1 100644
--- a/.github/workflows/continuous-integration-workflow.yml
+++ b/.github/workflows/continuous-integration-workflow.yml
@@ -58,12 +58,8 @@ jobs:
           java-version: 17
       - name: Build latest
         run: ./gha_build.sh spring true true
-#      - name: Build Spring 5.0
-#        run: ./gha_build.sh spring false false -Dspring.version=5.0.20.RELEASE -Dspring-security.version=5.0.19.RELEASE -Ddependency-check.skip=true
-#      - name: Build Spring 5.1
-#        run: ./gha_build.sh spring false false -Dspring.version=5.1.20.RELEASE -Dspring-security.version=5.1.13.RELEASE -Ddependency-check.skip=true
-#      - name: Build Spring 5.2
-#        run: ./gha_build.sh spring false false -Dspring.version=5.2.21.RELEASE -Dspring-security.version=5.2.15.RELEASE -Ddependency-check.skip=true
+      - name: Build with Spring 6.0.x
+        run: ./gha_build.sh spring false false -Dspring.version=6.0.16 -Dspring-security.version=6.1.6 -Ddependency-check.skip=true
 
   build_springboot3:
     name: Build and test SpringBoot 3
@@ -77,20 +73,14 @@ jobs:
           java-version: 17
       - name: Build latest
         run: ./gha_build.sh springboot3 true true
-      # https://github.com/spring-projects/spring-boot/wiki/Supported-Versions
-#      - name: Build Spring Boot 2.2
-#        run: ./gha_build.sh springboot2 false false -Dspringboot.version=2.2.13.RELEASE -Dspring.version=5.2.15.RELEASE -Dspringsecurity.version=5.2.8.RELEASE -Ddependency-check.skip=true
-#      - name: Build Spring Boot 2.3
-#        run: ./gha_build.sh springboot2 false false -Dspringboot.version=2.3.12.RELEASE -Dspring.version=5.2.15.RELEASE -Dspringsecurity.version=5.3.9.RELEASE -Ddependency-check.skip=true
-#      - name: Build Spring Boot 2.4
-#        run: ./gha_build.sh springboot2 false false -Dspringboot.version=2.4.13 -Dspring.version=5.3.13 -Dspringsecurity.version=5.4.9 -Ddependency-check.skip=true
-#      - name: Build Spring Boot 2.5
-#        run: ./gha_build.sh springboot2 false false -Dspringboot.version=2.5.14 -Dspring.version=5.3.20 -Dspringsecurity.version=5.5.8 -Ddependency-check.skip=true
+      # Build with additional supported versions https://spring.io/projects/spring-boot#support
+      - name: Build with Spring Boot 3.1.x
+        run: ./gha_build.sh springboot3 false false -Dspringboot.version=3.1.8 -Dspring.version=6.0.16 -Dspringsecurity.version=6.1.6 -Ddependency-check.skip=true
 
-#  build_struts2:
-#    name: Build and test Struts
-#    runs-on: ubuntu-latest
-#    steps:
-#      - uses: actions/checkout@v3
-#      - name: Build latest
-#        run: ./gha_build.sh struts true true
\ No newline at end of file
+  build_struts2:
+    name: Build and test Struts
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v3
+      - name: Build latest
+        run: ./gha_build.sh struts true true
\ No newline at end of file

From 638fc69e3595bb097b7e8b3b1f2a5ac7a2fa8b6f Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Wed, 31 Jan 2024 11:04:03 +0100
Subject: [PATCH 126/430] chore: modify CI build to include all samples

---
 gha_build.sh | 37 +++++++++++++++----------------------
 1 file changed, 15 insertions(+), 22 deletions(-)

diff --git a/gha_build.sh b/gha_build.sh
index 036ac4bee..f89c61103 100755
--- a/gha_build.sh
+++ b/gha_build.sh
@@ -51,10 +51,6 @@ function archetype {
     if [[ "$?" -ne 0 ]]; then
         exit 1
     fi
-#    cd ${ARCHETYPE_TEST_DIR}/${PROJ_NAME} && ./gradlew wrapper --gradle-version 5.0
-#    if [[ "$?" -ne 0 ]]; then
-#        exit 1
-#    fi
     cd ${ARCHETYPE_TEST_DIR}/${PROJ_NAME} && ./gradlew -q clean build
     if [[ "$?" -ne 0 ]]; then
         exit 1
@@ -62,24 +58,21 @@ function archetype {
 }
 
 function sample {
-    # force to pet store for now. In the future we may loop over all samples
-    SAMPLE_FOLDER=${WORKING_DIR}/samples/$1/pet-store
-    cd ${SAMPLE_FOLDER} && mvn -q clean package
-    if [[ "$?" -ne 0 ]]; then
-        exit 1
-    fi
-    cd ${SAMPLE_FOLDER} && gradle -q wrapper
-    if [[ "$?" -ne 0 ]]; then
-        exit 1
-    fi
-#    cd ${SAMPLE_FOLDER} && ./gradlew wrapper --gradle-version 5.0
-#    if [[ "$?" -ne 0 ]]; then
-#        exit 1
-#    fi
-    cd ${SAMPLE_FOLDER} && ./gradlew -q clean build
-    if [[ "$?" -ne 0 ]]; then
-        exit 1
-    fi
+    for d in ${WORKING_DIR}/samples/$1/*/ ; do
+        SAMPLE_FOLDER="$d"
+        cd ${SAMPLE_FOLDER} && mvn -q clean package
+        if [[ "$?" -ne 0 ]]; then
+            exit 1
+        fi
+        cd ${SAMPLE_FOLDER} && gradle -q wrapper
+        if [[ "$?" -ne 0 ]]; then
+            exit 1
+        fi
+        cd ${SAMPLE_FOLDER} && ./gradlew -q clean build
+        if [[ "$?" -ne 0 ]]; then
+            exit 1
+        fi
+    done
 }
 
 # set up the master pom otherwise we won't be able to find new dependencies

From f5c679199852091daf44d37d240c10b2c498d240 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Wed, 31 Jan 2024 11:28:14 +0100
Subject: [PATCH 127/430] chore: modify CI build to check for backwards
 compatibility

---
 .github/workflows/continuous-integration-workflow.yml | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/.github/workflows/continuous-integration-workflow.yml b/.github/workflows/continuous-integration-workflow.yml
index 2718637a1..c304624f9 100644
--- a/.github/workflows/continuous-integration-workflow.yml
+++ b/.github/workflows/continuous-integration-workflow.yml
@@ -58,8 +58,8 @@ jobs:
           java-version: 17
       - name: Build latest
         run: ./gha_build.sh spring true true
-      - name: Build with Spring 6.0.x
-        run: ./gha_build.sh spring false false -Dspring.version=6.0.16 -Dspring-security.version=6.1.6 -Ddependency-check.skip=true
+#      - name: Build with Spring 6.0.x
+#        run: ./gha_build.sh spring false false -Dspring.version=6.0.16 -Dspring-security.version=6.1.6 -Ddependency-check.skip=true
 
   build_springboot3:
     name: Build and test SpringBoot 3
@@ -82,5 +82,10 @@ jobs:
     runs-on: ubuntu-latest
     steps:
       - uses: actions/checkout@v3
+      - name: Set up JDK 17
+        uses: actions/setup-java@v3
+        with:
+          distribution: 'corretto'
+          java-version: 17
       - name: Build latest
         run: ./gha_build.sh struts true true
\ No newline at end of file

From db50d8a688c81147916ec4be671faa7807bd9b4d Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Wed, 31 Jan 2024 11:30:05 +0100
Subject: [PATCH 128/430] chore(deps): use Spring Cloud release BOM instead of
 SNAPSHOT

---
 samples/springboot3/pet-store-native/pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/samples/springboot3/pet-store-native/pom.xml b/samples/springboot3/pet-store-native/pom.xml
index c02774bbf..6d69941b6 100644
--- a/samples/springboot3/pet-store-native/pom.xml
+++ b/samples/springboot3/pet-store-native/pom.xml
@@ -16,7 +16,7 @@
 	<description>Sample of AWS with Spring Native</description>
 	<properties>
 		<java.version>21</java.version>
-		<spring-cloud.version>2022.0.5-SNAPSHOT</spring-cloud.version>
+		<spring-cloud.version>2022.0.5</spring-cloud.version>
 	</properties>
 	<dependencies>
 		<dependency>

From 803230cf38ac8f122e3aae6b00e7e9d82777109f Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Wed, 31 Jan 2024 11:36:34 +0100
Subject: [PATCH 129/430] chore: use Java 17 as compilation baseline (no 21
 features in use)

---
 samples/springboot3/graphql-pet-store/pom.xml | 2 +-
 samples/springboot3/pet-store-native/pom.xml  | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/samples/springboot3/graphql-pet-store/pom.xml b/samples/springboot3/graphql-pet-store/pom.xml
index 35535e2a4..ed781b9e3 100644
--- a/samples/springboot3/graphql-pet-store/pom.xml
+++ b/samples/springboot3/graphql-pet-store/pom.xml
@@ -25,7 +25,7 @@
     </licenses>
 
     <properties>
-        <java.version>21</java.version>
+        <java.version>17</java.version>
     </properties>
 
     <dependencies>
diff --git a/samples/springboot3/pet-store-native/pom.xml b/samples/springboot3/pet-store-native/pom.xml
index 6d69941b6..2348fb8d8 100644
--- a/samples/springboot3/pet-store-native/pom.xml
+++ b/samples/springboot3/pet-store-native/pom.xml
@@ -15,7 +15,7 @@
 	<name>pet-store-native</name>
 	<description>Sample of AWS with Spring Native</description>
 	<properties>
-		<java.version>21</java.version>
+		<java.version>17</java.version>
 		<spring-cloud.version>2022.0.5</spring-cloud.version>
 	</properties>
 	<dependencies>

From 928d826f094c93b274d52027b2a03fc733f9cfcf Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Wed, 31 Jan 2024 14:32:44 +0100
Subject: [PATCH 130/430] chore: modify CI build to make gradle optional

---
 gha_build.sh | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/gha_build.sh b/gha_build.sh
index f89c61103..247e09105 100755
--- a/gha_build.sh
+++ b/gha_build.sh
@@ -64,13 +64,15 @@ function sample {
         if [[ "$?" -ne 0 ]]; then
             exit 1
         fi
-        cd ${SAMPLE_FOLDER} && gradle -q wrapper
-        if [[ "$?" -ne 0 ]]; then
-            exit 1
-        fi
-        cd ${SAMPLE_FOLDER} && ./gradlew -q clean build
-        if [[ "$?" -ne 0 ]]; then
-            exit 1
+        if [ -n "$(find ${SAMPLE_FOLDER} -name '*gradle*' | head -1)" ]; then
+            cd ${SAMPLE_FOLDER} && gradle -q wrapper
+            if [[ "$?" -ne 0 ]]; then
+                exit 1
+            fi
+            cd ${SAMPLE_FOLDER} && ./gradlew -q clean build
+            if [[ "$?" -ne 0 ]]; then
+                exit 1
+            fi
         fi
     done
 }

From 87076f2d802b7ec806d1c4ef8f4f2970122af3d4 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Wed, 31 Jan 2024 14:37:34 +0100
Subject: [PATCH 131/430] chore: modify CI build for Struts (not released at
 the moment)

---
 .github/workflows/continuous-integration-workflow.yml | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/.github/workflows/continuous-integration-workflow.yml b/.github/workflows/continuous-integration-workflow.yml
index c304624f9..741ef5c2d 100644
--- a/.github/workflows/continuous-integration-workflow.yml
+++ b/.github/workflows/continuous-integration-workflow.yml
@@ -88,4 +88,6 @@ jobs:
           distribution: 'corretto'
           java-version: 17
       - name: Build latest
-        run: ./gha_build.sh struts true true
\ No newline at end of file
+        run: ./gha_build.sh struts false false
+# temporarily disabled archetype and samples as Struts is not released at the moment
+#        run: ./gha_build.sh struts true true
\ No newline at end of file

From a3c4b69e68786225f8ae7e0ab12f8e1e4e3c6209 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Wed, 31 Jan 2024 14:59:20 +0100
Subject: [PATCH 132/430] chore: don't run dependency check everytime (NVD API
 limits) but using CI instead

---
 aws-serverless-java-container-struts/pom.xml | 7 -------
 1 file changed, 7 deletions(-)

diff --git a/aws-serverless-java-container-struts/pom.xml b/aws-serverless-java-container-struts/pom.xml
index 0cd2a4aa9..beed495f9 100644
--- a/aws-serverless-java-container-struts/pom.xml
+++ b/aws-serverless-java-container-struts/pom.xml
@@ -195,13 +195,6 @@
                     <failBuildOnCVSS>7</failBuildOnCVSS>
                     <failOnError>false</failOnError>
                 </configuration>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>check</goal>
-                        </goals>
-                    </execution>
-                </executions>
             </plugin>
         </plugins>
     </build>

From 96e8253922eb266d176197789f64e3773ffc060a Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Mon, 5 Feb 2024 06:49:17 +0100
Subject: [PATCH 133/430] chore(deps): update JUnit to 5.10.2, closes #759

---
 .../src/main/resources/archetype-resources/build.gradle         | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 .../src/main/resources/archetype-resources/build.gradle         | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 .../src/main/resources/archetype-resources/build.gradle         | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 .../src/main/resources/archetype-resources/build.gradle         | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 pom.xml                                                         | 2 +-
 9 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
index ad5acbacd..b23f0b90f 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
@@ -23,7 +23,7 @@ dependencies {
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
   testImplementation("org.apache.httpcomponents.client5:httpclient5:5.2.1")
-  testImplementation(platform("org.junit:junit-bom:5.10.1"))
+  testImplementation(platform("org.junit:junit-bom:5.10.2"))
   testImplementation("org.junit.jupiter:junit-jupiter")
 }
 
diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
index d5f7c0c7e..a52141649 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
@@ -17,7 +17,7 @@
 
         <jersey.version>3.1.5</jersey.version>
         <jackson.version>2.16.1</jackson.version>
-        <junit.version>5.10.1</junit.version>
+        <junit.version>5.10.2</junit.version>
     </properties>
 
     <dependencies>
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
index 1f1d1af7c..d26a9630d 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
@@ -19,7 +19,7 @@ dependencies {
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
   testImplementation("org.apache.httpcomponents.client5:httpclient5:5.2.1")
-  testImplementation(platform("org.junit:junit-bom:5.10.1"))
+  testImplementation(platform("org.junit:junit-bom:5.10.2"))
   testImplementation("org.junit.jupiter:junit-jupiter")
 }
 
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
index 5aa0330b2..48ce0a0d1 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
@@ -17,7 +17,7 @@
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
         <spring.version>6.1.3</spring.version>
-        <junit.version>5.10.1</junit.version>
+        <junit.version>5.10.2</junit.version>
         <log4j.version>2.22.1</log4j.version>
     </properties>
 
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
index 2f2ebee1a..2eff24495 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
@@ -15,7 +15,7 @@ dependencies {
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
   testImplementation("org.apache.httpcomponents.client5:httpclient5:5.2.1")
-  testImplementation(platform("org.junit:junit-bom:5.10.1"))
+  testImplementation(platform("org.junit:junit-bom:5.10.2"))
   testImplementation("org.junit.jupiter:junit-jupiter")
 }
 
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
index f990dda8b..ef49a79f2 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
@@ -21,7 +21,7 @@
 
     <properties>
         <java.version>17</java.version>
-        <junit.version>5.10.1</junit.version>
+        <junit.version>5.10.2</junit.version>
     </properties>
 
     <dependencies>
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
index c579ff711..803913771 100644
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
@@ -43,7 +43,7 @@ dependencies {
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
   testImplementation("org.apache.httpcomponents.client5:httpclient5:5.2.1")
-  testImplementation(platform("org.junit:junit-bom:5.10.1"))
+  testImplementation(platform("org.junit:junit-bom:5.10.2"))
   testImplementation("org.junit.jupiter:junit-jupiter")
   testImplementation('org.apache.struts:struts2-junit-plugin:7.0.0-M1') {
     exclude group: 'org.apache.struts', module: 'struts2-core'
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
index 30ec31d71..91b764f03 100644
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
@@ -17,7 +17,7 @@
         <maven.compiler.target>1.8</maven.compiler.target>
         <struts.version>7.0.0-M1</struts.version>
         <jackson.version>2.16.1</jackson.version>
-        <junit.version>5.10.1</junit.version>
+        <junit.version>5.10.2</junit.version>
         <log4j.version>2.22.1</log4j.version>
     </properties>
 
diff --git a/pom.xml b/pom.xml
index 0c1dac880..74f0bbc3e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -80,7 +80,7 @@
         <dependencyCheck.version>9.0.9</dependencyCheck.version>
         <jackson.version>2.16.1</jackson.version>
         <slf4j.version>2.0.11</slf4j.version>
-        <junit.version>5.10.1</junit.version>
+        <junit.version>5.10.2</junit.version>
         <mockito.version>5.10.0</mockito.version>
         <hamcrest.version>1.3</hamcrest.version>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

From eae6ce8fa9b2d4f94cd6e1a5293ad721e8f7b45a Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Mon, 5 Feb 2024 07:00:58 +0100
Subject: [PATCH 134/430] chore(deps): update Struts to 7.0.0-M2 for testing

---
 aws-serverless-java-container-struts/pom.xml         | 12 +-----------
 .../main/resources/archetype-resources/build.gradle  | 10 +++++-----
 .../src/main/resources/archetype-resources/pom.xml   |  2 +-
 samples/struts/pet-store/build.gradle                |  8 ++++----
 samples/struts/pet-store/pom.xml                     |  2 +-
 5 files changed, 12 insertions(+), 22 deletions(-)

diff --git a/aws-serverless-java-container-struts/pom.xml b/aws-serverless-java-container-struts/pom.xml
index beed495f9..d04470e6d 100644
--- a/aws-serverless-java-container-struts/pom.xml
+++ b/aws-serverless-java-container-struts/pom.xml
@@ -15,7 +15,7 @@
     </parent>
 
     <properties>
-        <struts.version>7.0.0-M1</struts.version>
+        <struts.version>7.0.0-M2</struts.version>
     </properties>
 
     <dependencies>
@@ -38,16 +38,6 @@
             <groupId>org.apache.struts</groupId>
             <artifactId>struts2-core</artifactId>
             <version>${struts.version}</version>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.apache.commons</groupId>
-                    <artifactId>commons-fileupload2-jakarta</artifactId>
-                </exclusion>
-                <exclusion>
-                    <groupId>commons-io</groupId>
-                    <artifactId>commons-io</artifactId>
-                </exclusion>
-            </exclusions>
         </dependency>
         <dependency>
             <groupId>org.apache.struts</groupId>
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
index 803913771..499ede045 100644
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
@@ -18,19 +18,19 @@ dependencies {
     exclude group: 'org.apache.logging.log4j', module: 'log4j-api'
     exclude group: 'org.apache.logging.log4j', module: 'log4j-to-slf4j'
   }
-  implementation ('org.apache.struts:struts2-convention-plugin:7.0.0-M1') {
+  implementation ('org.apache.struts:struts2-convention-plugin:7.0.0-M2') {
     exclude group: 'org.apache.struts', module: 'struts2-core'
   }
-  implementation ('org.apache.struts:struts2-rest-plugin:7.0.0-M1') {
+  implementation ('org.apache.struts:struts2-rest-plugin:7.0.0-M2') {
     exclude group: 'org.apache.struts', module: 'struts2-core'
   }
-  implementation ('org.apache.struts:struts2-bean-validation-plugin:7.0.0-M1') {
+  implementation ('org.apache.struts:struts2-bean-validation-plugin:7.0.0-M2') {
     exclude group: 'org.apache.struts', module: 'struts2-core'
   }
   implementation ('com.jgeppert.struts2:struts2-aws-lambda-support-plugin:1.4.2') {
     exclude group: 'org.apache.struts', module: 'struts2-core'
   }
-  implementation ('org.apache.struts:struts2-core:7.0.0-M1') {
+  implementation ('org.apache.struts:struts2-core:7.0.0-M2') {
     exclude group: 'org.apache.logging.log4j', module: 'log4j-api'
   }
   implementation ('org.hibernate.validator:hibernate-validator:6.1.7.Final')
@@ -45,7 +45,7 @@ dependencies {
   testImplementation("org.apache.httpcomponents.client5:httpclient5:5.2.1")
   testImplementation(platform("org.junit:junit-bom:5.10.2"))
   testImplementation("org.junit.jupiter:junit-jupiter")
-  testImplementation('org.apache.struts:struts2-junit-plugin:7.0.0-M1') {
+  testImplementation('org.apache.struts:struts2-junit-plugin:7.0.0-M2') {
     exclude group: 'org.apache.struts', module: 'struts2-core'
   }
 }
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
index 91b764f03..64fe17396 100644
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
@@ -15,7 +15,7 @@
     <properties>
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
-        <struts.version>7.0.0-M1</struts.version>
+        <struts.version>7.0.0-M2</struts.version>
         <jackson.version>2.16.1</jackson.version>
         <junit.version>5.10.2</junit.version>
         <log4j.version>2.22.1</log4j.version>
diff --git a/samples/struts/pet-store/build.gradle b/samples/struts/pet-store/build.gradle
index 11296662f..cca8f65e7 100644
--- a/samples/struts/pet-store/build.gradle
+++ b/samples/struts/pet-store/build.gradle
@@ -14,10 +14,10 @@ configurations {
 dependencies {
   implementation (
           'com.amazonaws.serverless:aws-serverless-java-container-struts:[2.0-SNAPSHOT,)',
-          'org.apache.struts:struts2-convention-plugin:7.0.0-M1',
-          'org.apache.struts:struts2-rest-plugin:7.0.0-M1',
-          'org.apache.struts:struts2-bean-validation-plugin:7.0.0-M1',
-          'org.apache.struts:struts2-junit-plugin:7.0.0-M1',
+          'org.apache.struts:struts2-convention-plugin:7.0.0-M2',
+          'org.apache.struts:struts2-rest-plugin:7.0.0-M2',
+          'org.apache.struts:struts2-bean-validation-plugin:7.0.0-M2',
+          'org.apache.struts:struts2-junit-plugin:7.0.0-M2',
           'com.jgeppert.struts2:struts2-aws-lambda-support-plugin:1.4.2',
           'org.hibernate.validator:hibernate-validator:6.1.7.Final',
           'org.glassfish:jakarta.el:5.0.0-M1',
diff --git a/samples/struts/pet-store/pom.xml b/samples/struts/pet-store/pom.xml
index c9fc14f92..b23a44802 100644
--- a/samples/struts/pet-store/pom.xml
+++ b/samples/struts/pet-store/pom.xml
@@ -26,7 +26,7 @@
     <properties>
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
-        <struts.version>7.0.0-M1</struts.version>
+        <struts.version>7.0.0-M2</struts.version>
         <jackson.version>2.16.1</jackson.version>
         <junit.version>4.13.2</junit.version>
         <log4j.version>2.22.1</log4j.version>

From 755752d4749b08160ea7472485f09d79e1e5eeb7 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Mon, 5 Feb 2024 07:04:14 +0100
Subject: [PATCH 135/430] chore(deps): update Struts to 7.0.0-M2 for testing

---
 aws-serverless-java-container-struts/pom.xml | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/aws-serverless-java-container-struts/pom.xml b/aws-serverless-java-container-struts/pom.xml
index d04470e6d..f7a8f3846 100644
--- a/aws-serverless-java-container-struts/pom.xml
+++ b/aws-serverless-java-container-struts/pom.xml
@@ -38,6 +38,12 @@
             <groupId>org.apache.struts</groupId>
             <artifactId>struts2-core</artifactId>
             <version>${struts.version}</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>commons-io</groupId>
+                    <artifactId>commons-io</artifactId>
+                </exclusion>
+            </exclusions>
         </dependency>
         <dependency>
             <groupId>org.apache.struts</groupId>

From 5ed73c02138194e617ac7c5ad4fb66363cfea2d0 Mon Sep 17 00:00:00 2001
From: Maximilian Schellhorn <mxschell@amazon.de>
Date: Mon, 5 Feb 2024 17:09:06 +0100
Subject: [PATCH 136/430] GraalVM sample

---
 .../springboot3/pet-store-native/Dockerfile   |  2 +-
 .../springboot3/pet-store-native/README.md    | 28 ++++++-------------
 samples/springboot3/pet-store-native/pom.xml  |  2 --
 .../pet-store-native/template.yaml            |  5 ++--
 4 files changed, 13 insertions(+), 24 deletions(-)

diff --git a/samples/springboot3/pet-store-native/Dockerfile b/samples/springboot3/pet-store-native/Dockerfile
index d885d9261..8c3955861 100644
--- a/samples/springboot3/pet-store-native/Dockerfile
+++ b/samples/springboot3/pet-store-native/Dockerfile
@@ -25,7 +25,7 @@ RUN ln -s /usr/lib/maven/bin/mvn /usr/bin/mvn
 ENV GRADLE_VERSION 7.4.1
 ENV GRADLE_FOLDERNAME gradle-${GRADLE_VERSION}
 ENV GRADLE_FILENAME gradle-${GRADLE_VERSION}-bin.zip
-RUN curl -LO https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-bin.zip	
+RUN curl -LO https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-bin.zip
 RUN unzip gradle-${GRADLE_VERSION}-bin.zip
 RUN mv $GRADLE_FOLDERNAME /usr/lib/gradle
 RUN ln -s /usr/lib/gradle/bin/gradle /usr/bin/gradle
diff --git a/samples/springboot3/pet-store-native/README.md b/samples/springboot3/pet-store-native/README.md
index 831353e5a..c890090f7 100644
--- a/samples/springboot3/pet-store-native/README.md
+++ b/samples/springboot3/pet-store-native/README.md
@@ -1,7 +1,7 @@
 In this sample, you'll build a native GraalVM image for running web workloads in AWS Lambda.
 
 
-## To build the sample on macOS (Apple silicon arm64)
+## To build the sample
 
 You first need to build the function, then you will deploy it to AWS Lambda.
 
@@ -10,31 +10,21 @@ You first need to build the function, then you will deploy it to AWS Lambda.
 Before starting the build, you must clone or download the code in **pet-store-native**.
 
 1. Change into the project directory: `samples/springboot3/pet-store-native`
-2. Run the following to build a Docker container image which will be used to create the Lambda function zip file. 
+2. Run the following to build a Docker container image which will include all the necessary dependencies to build the application 
    ```
-   docker build -t "al2-graalvm21:native-web" .
+   docker build -t al2023-graalvm21:native-web .
    ```
-3. Start the container
+3. Build the application within the previously created build image
    ```
-   docker run -dit -v `pwd`:`pwd` -w `pwd` -v ~/.m2:/root/.m2 al2-graalvm21:native-web
+   docker run -it -v `pwd`:`pwd` -w `pwd` -v ~/.m2:/root/.m2 al2023-graalvm21:native-web ./mvnw clean -Pnative package -DskipTests
    ```
-4. In Docker, open the image terminal. 
-
-   > Your working directory should default to the project root. Verify by running `ls` to view the files.
-
-6. From inside the container, build the Lambda function:
-   ```
-   ./mvnw clean -Pnative native:compile -DskipTests
-   ```
-
-After the build finishes, you need to deploy the function.
-You can do it manually or you can use SAM (AWS Serverless Application Model) with the included template.yaml file.
-If you chose SAM simply execute the following command.
+4. After the build finishes, you need to deploy the function:
  ```
    sam deploy --guided
  ```
- This will deploy your application and will attach an AWS API Gateway
-Once the deployment is finished you shouild see the following:
+
+This will deploy your application and will attach an AWS API Gateway
+Once the deployment is finished you should see the following:
 ```
 Key                  ServerlessWebNativeApi
 Description          URL for application
diff --git a/samples/springboot3/pet-store-native/pom.xml b/samples/springboot3/pet-store-native/pom.xml
index 2348fb8d8..045c8eb96 100644
--- a/samples/springboot3/pet-store-native/pom.xml
+++ b/samples/springboot3/pet-store-native/pom.xml
@@ -69,8 +69,6 @@
 						<configuration>
 			                <jvmArguments>-agentlib:native-image-agent=config-merge-dir=src/main/resources/META-INF/native-image/ --enable-preview
 			                    </jvmArguments>
-			                <compilerArguments>--enable-preview
-			                    </compilerArguments>
 			            </configuration>
 					</plugin>
 					<plugin>
diff --git a/samples/springboot3/pet-store-native/template.yaml b/samples/springboot3/pet-store-native/template.yaml
index e081c7710..dc05e1be7 100644
--- a/samples/springboot3/pet-store-native/template.yaml
+++ b/samples/springboot3/pet-store-native/template.yaml
@@ -11,8 +11,9 @@ Resources:
       CodeUri: ./target/pet-store-native-0.0.1-SNAPSHOT-native-zip.zip
       Handler: NOP
       Runtime: provided.al2023
-      Architectures:
-        - arm64
+#     If you want to build for ARM64 uncomment the following lines
+#      Architectures:
+#        - arm64
       Events:
         HttpApiEvent:
           Type: HttpApi

From 6e5fa5205ae0bd5efacb35eb9daa3a84d36acf03 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 6 Feb 2024 06:02:39 +0000
Subject: [PATCH 137/430] chore(deps): bump slf4j.version from 2.0.11 to 2.0.12

Bumps `slf4j.version` from 2.0.11 to 2.0.12.

Updates `org.slf4j:slf4j-api` from 2.0.11 to 2.0.12

Updates `org.slf4j:slf4j-simple` from 2.0.11 to 2.0.12

---
updated-dependencies:
- dependency-name: org.slf4j:slf4j-api
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.slf4j:slf4j-simple
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 74f0bbc3e..5d409adb9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -79,7 +79,7 @@
         <jacoco.minCoverage>0.7</jacoco.minCoverage>
         <dependencyCheck.version>9.0.9</dependencyCheck.version>
         <jackson.version>2.16.1</jackson.version>
-        <slf4j.version>2.0.11</slf4j.version>
+        <slf4j.version>2.0.12</slf4j.version>
         <junit.version>5.10.2</junit.version>
         <mockito.version>5.10.0</mockito.version>
         <hamcrest.version>1.3</hamcrest.version>

From c35a5eb1d45588fe20b894d6b8d65ead11f1c795 Mon Sep 17 00:00:00 2001
From: deki <deki@users.noreply.github.com>
Date: Tue, 6 Feb 2024 06:20:52 +0000
Subject: [PATCH 138/430] chore: release - prepare release
 aws-serverless-java-container-2.0.0

---
 aws-serverless-java-container-core/pom.xml        | 4 ++--
 aws-serverless-java-container-jersey/pom.xml      | 8 ++++----
 aws-serverless-java-container-spring/pom.xml      | 8 ++++----
 aws-serverless-java-container-springboot3/pom.xml | 8 ++++----
 aws-serverless-jersey-archetype/pom.xml           | 6 +++---
 aws-serverless-spring-archetype/pom.xml           | 6 +++---
 aws-serverless-springboot3-archetype/pom.xml      | 6 +++---
 pom.xml                                           | 4 ++--
 8 files changed, 25 insertions(+), 25 deletions(-)

diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml
index 77417a01a..5af14d2ac 100644
--- a/aws-serverless-java-container-core/pom.xml
+++ b/aws-serverless-java-container-core/pom.xml
@@ -6,12 +6,12 @@
     <name>AWS Serverless Java container support - Core</name>
     <description>Allows Java applications written for a servlet container to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.0.0-SNAPSHOT</version>
+    <version>2.0.0</version>
 
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.0.0-SNAPSHOT</version>
+        <version>2.0.0</version>
         <relativePath>..</relativePath>
     </parent>
 
diff --git a/aws-serverless-java-container-jersey/pom.xml b/aws-serverless-java-container-jersey/pom.xml
index 926e8df7b..befc26a3e 100644
--- a/aws-serverless-java-container-jersey/pom.xml
+++ b/aws-serverless-java-container-jersey/pom.xml
@@ -6,12 +6,12 @@
     <name>AWS Serverless Java container support - Jersey implementation</name>
     <description>Allows Java applications written for Jersey to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.0.0-SNAPSHOT</version>
+    <version>2.0.0</version>
 
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.0.0-SNAPSHOT</version>
+        <version>2.0.0</version>
         <relativePath>..</relativePath>
     </parent>
 
@@ -24,7 +24,7 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.0.0-SNAPSHOT</version>
+            <version>2.0.0</version>
             <exclusions>
                 <exclusion>
                     <groupId>com.fasterxml.jackson.core</groupId>
@@ -35,7 +35,7 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.0.0-SNAPSHOT</version>
+            <version>2.0.0</version>
             <classifier>tests</classifier>
             <type>test-jar</type>
             <scope>test</scope>
diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml
index 776c720c9..bed19c802 100644
--- a/aws-serverless-java-container-spring/pom.xml
+++ b/aws-serverless-java-container-spring/pom.xml
@@ -6,12 +6,12 @@
     <name>AWS Serverless Java container support - Spring implementation</name>
     <description>Allows Java applications written for the Spring framework to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.0.0-SNAPSHOT</version>
+    <version>2.0.0</version>
 
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.0.0-SNAPSHOT</version>
+        <version>2.0.0</version>
         <relativePath>..</relativePath>
     </parent>
 
@@ -25,12 +25,12 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.0.0-SNAPSHOT</version>
+            <version>2.0.0</version>
         </dependency>
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.0.0-SNAPSHOT</version>
+            <version>2.0.0</version>
             <classifier>tests</classifier>
             <type>test-jar</type>
             <scope>test</scope>
diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml
index 93373d31f..a1b658e3a 100644
--- a/aws-serverless-java-container-springboot3/pom.xml
+++ b/aws-serverless-java-container-springboot3/pom.xml
@@ -3,7 +3,7 @@
     <parent>
         <artifactId>aws-serverless-java-container</artifactId>
         <groupId>com.amazonaws.serverless</groupId>
-        <version>2.0.0-SNAPSHOT</version>
+        <version>2.0.0</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
@@ -12,7 +12,7 @@
     <name>AWS Serverless Java container support - SpringBoot 3 implementation</name>
     <description>Allows Java applications written for SpringBoot 3 to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.0.0-SNAPSHOT</version>
+    <version>2.0.0</version>
 
     <properties>
         <spring.version>6.1.3</spring.version>
@@ -30,12 +30,12 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.0.0-SNAPSHOT</version>
+            <version>2.0.0</version>
         </dependency>
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.0.0-SNAPSHOT</version>
+            <version>2.0.0</version>
             <classifier>tests</classifier>
             <type>test-jar</type>
             <scope>test</scope>
diff --git a/aws-serverless-jersey-archetype/pom.xml b/aws-serverless-jersey-archetype/pom.xml
index 15fd76b80..a1b21a9be 100644
--- a/aws-serverless-jersey-archetype/pom.xml
+++ b/aws-serverless-jersey-archetype/pom.xml
@@ -4,17 +4,17 @@
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.0.0-SNAPSHOT</version>
+        <version>2.0.0</version>
     </parent>
 
     <groupId>com.amazonaws.serverless.archetypes</groupId>
     <artifactId>aws-serverless-jersey-archetype</artifactId>
-    <version>2.0.0-SNAPSHOT</version>
+    <version>2.0.0</version>
     <packaging>maven-archetype</packaging>
 
     <scm>
         <url>https://github.com/aws/serverless-java-container.git</url>
-      <tag>HEAD</tag>
+      <tag>aws-serverless-java-container-2.0.0</tag>
   </scm>
 
     <licenses>
diff --git a/aws-serverless-spring-archetype/pom.xml b/aws-serverless-spring-archetype/pom.xml
index b5891f921..0b2849cbd 100644
--- a/aws-serverless-spring-archetype/pom.xml
+++ b/aws-serverless-spring-archetype/pom.xml
@@ -4,17 +4,17 @@
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.0.0-SNAPSHOT</version>
+        <version>2.0.0</version>
     </parent>
 
     <groupId>com.amazonaws.serverless.archetypes</groupId>
     <artifactId>aws-serverless-spring-archetype</artifactId>
-    <version>2.0.0-SNAPSHOT</version>
+    <version>2.0.0</version>
     <packaging>maven-archetype</packaging>
 
     <scm>
         <url>https://github.com/aws/serverless-java-container.git</url>
-      <tag>HEAD</tag>
+      <tag>aws-serverless-java-container-2.0.0</tag>
   </scm>
 
     <licenses>
diff --git a/aws-serverless-springboot3-archetype/pom.xml b/aws-serverless-springboot3-archetype/pom.xml
index a6cf366b3..32f3e2304 100644
--- a/aws-serverless-springboot3-archetype/pom.xml
+++ b/aws-serverless-springboot3-archetype/pom.xml
@@ -4,17 +4,17 @@
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.0.0-SNAPSHOT</version>
+        <version>2.0.0</version>
     </parent>
 
     <groupId>com.amazonaws.serverless.archetypes</groupId>
     <artifactId>aws-serverless-springboot3-archetype</artifactId>
-    <version>2.0.0-SNAPSHOT</version>
+    <version>2.0.0</version>
     <packaging>maven-archetype</packaging>
 
     <scm>
         <url>https://github.com/aws/serverless-java-container.git</url>
-      <tag>HEAD</tag>
+      <tag>aws-serverless-java-container-2.0.0</tag>
   </scm>
 
     <licenses>
diff --git a/pom.xml b/pom.xml
index 5d409adb9..e5542dcaf 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
     <groupId>com.amazonaws.serverless</groupId>
     <artifactId>aws-serverless-java-container</artifactId>
     <packaging>pom</packaging>
-    <version>2.0.0-SNAPSHOT</version>
+    <version>2.0.0</version>
     <name>AWS Serverless Java container</name>
     <description>A Java framework to run Spring, Spring Boot, Jersey, Spark, and Struts applications inside AWS Lambda</description>
     <url>https://github.com/aws/serverless-java-container</url>
@@ -37,7 +37,7 @@
     <scm>
         <url>https://github.com/aws/serverless-java-container</url>
         <connection>scm:git:https://github.com/aws/serverless-java-container.git</connection>
-      <tag>HEAD</tag>
+      <tag>aws-serverless-java-container-2.0.0</tag>
     </scm>
 
     <repositories>

From cda4585fd8125a56f978705ecaf92e610520d458 Mon Sep 17 00:00:00 2001
From: deki <deki@users.noreply.github.com>
Date: Tue, 6 Feb 2024 06:20:54 +0000
Subject: [PATCH 139/430] chore: release - prepare for next development
 iteration

---
 aws-serverless-java-container-core/pom.xml        | 4 ++--
 aws-serverless-java-container-jersey/pom.xml      | 8 ++++----
 aws-serverless-java-container-spring/pom.xml      | 8 ++++----
 aws-serverless-java-container-springboot3/pom.xml | 8 ++++----
 aws-serverless-jersey-archetype/pom.xml           | 6 +++---
 aws-serverless-spring-archetype/pom.xml           | 6 +++---
 aws-serverless-springboot3-archetype/pom.xml      | 6 +++---
 pom.xml                                           | 4 ++--
 8 files changed, 25 insertions(+), 25 deletions(-)

diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml
index 5af14d2ac..8f743057a 100644
--- a/aws-serverless-java-container-core/pom.xml
+++ b/aws-serverless-java-container-core/pom.xml
@@ -6,12 +6,12 @@
     <name>AWS Serverless Java container support - Core</name>
     <description>Allows Java applications written for a servlet container to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.0.0</version>
+    <version>2.1.0-SNAPSHOT</version>
 
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.0.0</version>
+        <version>2.1.0-SNAPSHOT</version>
         <relativePath>..</relativePath>
     </parent>
 
diff --git a/aws-serverless-java-container-jersey/pom.xml b/aws-serverless-java-container-jersey/pom.xml
index befc26a3e..4ee96cea5 100644
--- a/aws-serverless-java-container-jersey/pom.xml
+++ b/aws-serverless-java-container-jersey/pom.xml
@@ -6,12 +6,12 @@
     <name>AWS Serverless Java container support - Jersey implementation</name>
     <description>Allows Java applications written for Jersey to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.0.0</version>
+    <version>2.1.0-SNAPSHOT</version>
 
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.0.0</version>
+        <version>2.1.0-SNAPSHOT</version>
         <relativePath>..</relativePath>
     </parent>
 
@@ -24,7 +24,7 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.0.0</version>
+            <version>2.1.0-SNAPSHOT</version>
             <exclusions>
                 <exclusion>
                     <groupId>com.fasterxml.jackson.core</groupId>
@@ -35,7 +35,7 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.0.0</version>
+            <version>2.1.0-SNAPSHOT</version>
             <classifier>tests</classifier>
             <type>test-jar</type>
             <scope>test</scope>
diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml
index bed19c802..6154ca2e5 100644
--- a/aws-serverless-java-container-spring/pom.xml
+++ b/aws-serverless-java-container-spring/pom.xml
@@ -6,12 +6,12 @@
     <name>AWS Serverless Java container support - Spring implementation</name>
     <description>Allows Java applications written for the Spring framework to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.0.0</version>
+    <version>2.1.0-SNAPSHOT</version>
 
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.0.0</version>
+        <version>2.1.0-SNAPSHOT</version>
         <relativePath>..</relativePath>
     </parent>
 
@@ -25,12 +25,12 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.0.0</version>
+            <version>2.1.0-SNAPSHOT</version>
         </dependency>
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.0.0</version>
+            <version>2.1.0-SNAPSHOT</version>
             <classifier>tests</classifier>
             <type>test-jar</type>
             <scope>test</scope>
diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml
index a1b658e3a..a36c66657 100644
--- a/aws-serverless-java-container-springboot3/pom.xml
+++ b/aws-serverless-java-container-springboot3/pom.xml
@@ -3,7 +3,7 @@
     <parent>
         <artifactId>aws-serverless-java-container</artifactId>
         <groupId>com.amazonaws.serverless</groupId>
-        <version>2.0.0</version>
+        <version>2.1.0-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
@@ -12,7 +12,7 @@
     <name>AWS Serverless Java container support - SpringBoot 3 implementation</name>
     <description>Allows Java applications written for SpringBoot 3 to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.0.0</version>
+    <version>2.1.0-SNAPSHOT</version>
 
     <properties>
         <spring.version>6.1.3</spring.version>
@@ -30,12 +30,12 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.0.0</version>
+            <version>2.1.0-SNAPSHOT</version>
         </dependency>
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.0.0</version>
+            <version>2.1.0-SNAPSHOT</version>
             <classifier>tests</classifier>
             <type>test-jar</type>
             <scope>test</scope>
diff --git a/aws-serverless-jersey-archetype/pom.xml b/aws-serverless-jersey-archetype/pom.xml
index a1b21a9be..f4ae15675 100644
--- a/aws-serverless-jersey-archetype/pom.xml
+++ b/aws-serverless-jersey-archetype/pom.xml
@@ -4,17 +4,17 @@
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.0.0</version>
+        <version>2.1.0-SNAPSHOT</version>
     </parent>
 
     <groupId>com.amazonaws.serverless.archetypes</groupId>
     <artifactId>aws-serverless-jersey-archetype</artifactId>
-    <version>2.0.0</version>
+    <version>2.1.0-SNAPSHOT</version>
     <packaging>maven-archetype</packaging>
 
     <scm>
         <url>https://github.com/aws/serverless-java-container.git</url>
-      <tag>aws-serverless-java-container-2.0.0</tag>
+      <tag>HEAD</tag>
   </scm>
 
     <licenses>
diff --git a/aws-serverless-spring-archetype/pom.xml b/aws-serverless-spring-archetype/pom.xml
index 0b2849cbd..07c5e4e90 100644
--- a/aws-serverless-spring-archetype/pom.xml
+++ b/aws-serverless-spring-archetype/pom.xml
@@ -4,17 +4,17 @@
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.0.0</version>
+        <version>2.1.0-SNAPSHOT</version>
     </parent>
 
     <groupId>com.amazonaws.serverless.archetypes</groupId>
     <artifactId>aws-serverless-spring-archetype</artifactId>
-    <version>2.0.0</version>
+    <version>2.1.0-SNAPSHOT</version>
     <packaging>maven-archetype</packaging>
 
     <scm>
         <url>https://github.com/aws/serverless-java-container.git</url>
-      <tag>aws-serverless-java-container-2.0.0</tag>
+      <tag>HEAD</tag>
   </scm>
 
     <licenses>
diff --git a/aws-serverless-springboot3-archetype/pom.xml b/aws-serverless-springboot3-archetype/pom.xml
index 32f3e2304..a1057f354 100644
--- a/aws-serverless-springboot3-archetype/pom.xml
+++ b/aws-serverless-springboot3-archetype/pom.xml
@@ -4,17 +4,17 @@
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.0.0</version>
+        <version>2.1.0-SNAPSHOT</version>
     </parent>
 
     <groupId>com.amazonaws.serverless.archetypes</groupId>
     <artifactId>aws-serverless-springboot3-archetype</artifactId>
-    <version>2.0.0</version>
+    <version>2.1.0-SNAPSHOT</version>
     <packaging>maven-archetype</packaging>
 
     <scm>
         <url>https://github.com/aws/serverless-java-container.git</url>
-      <tag>aws-serverless-java-container-2.0.0</tag>
+      <tag>HEAD</tag>
   </scm>
 
     <licenses>
diff --git a/pom.xml b/pom.xml
index e5542dcaf..959b6ab21 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
     <groupId>com.amazonaws.serverless</groupId>
     <artifactId>aws-serverless-java-container</artifactId>
     <packaging>pom</packaging>
-    <version>2.0.0</version>
+    <version>2.1.0-SNAPSHOT</version>
     <name>AWS Serverless Java container</name>
     <description>A Java framework to run Spring, Spring Boot, Jersey, Spark, and Struts applications inside AWS Lambda</description>
     <url>https://github.com/aws/serverless-java-container</url>
@@ -37,7 +37,7 @@
     <scm>
         <url>https://github.com/aws/serverless-java-container</url>
         <connection>scm:git:https://github.com/aws/serverless-java-container.git</connection>
-      <tag>aws-serverless-java-container-2.0.0</tag>
+      <tag>HEAD</tag>
     </scm>
 
     <repositories>

From f326bb2c5d01d3c6cb4811fad8643add5da97ed5 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Tue, 6 Feb 2024 10:35:40 +0100
Subject: [PATCH 140/430] fix: Changed Maven version range to resolve both
 SNAPSHOTs and released versions

---
 samples/springboot3/alt-pet-store/pom.xml     | 2 +-
 samples/springboot3/graphql-pet-store/pom.xml | 2 +-
 samples/springboot3/pet-store-native/pom.xml  | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/samples/springboot3/alt-pet-store/pom.xml b/samples/springboot3/alt-pet-store/pom.xml
index afda4120e..dcefb27d0 100644
--- a/samples/springboot3/alt-pet-store/pom.xml
+++ b/samples/springboot3/alt-pet-store/pom.xml
@@ -37,7 +37,7 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-springboot3</artifactId>
-            <version>2.0.0-SNAPSHOT</version>
+            <version>[2.0.0-SNAPSHOT,),[2.0.0-M1,)</version>
         </dependency>
     </dependencies>
 
diff --git a/samples/springboot3/graphql-pet-store/pom.xml b/samples/springboot3/graphql-pet-store/pom.xml
index ed781b9e3..df71fb76e 100644
--- a/samples/springboot3/graphql-pet-store/pom.xml
+++ b/samples/springboot3/graphql-pet-store/pom.xml
@@ -51,7 +51,7 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-springboot3</artifactId>
-            <version>2.0.0-SNAPSHOT</version>
+            <version>[2.0.0-SNAPSHOT,),[2.0.0-M1,)</version>
         </dependency>
     </dependencies>
 
diff --git a/samples/springboot3/pet-store-native/pom.xml b/samples/springboot3/pet-store-native/pom.xml
index 045c8eb96..857be1b0b 100644
--- a/samples/springboot3/pet-store-native/pom.xml
+++ b/samples/springboot3/pet-store-native/pom.xml
@@ -26,7 +26,7 @@
 		<dependency>
 			<groupId>com.amazonaws.serverless</groupId>
     		<artifactId>aws-serverless-java-container-springboot3</artifactId>
-        	<version>2.0.0-SNAPSHOT</version>
+        	<version>[2.0.0-SNAPSHOT,),[2.0.0-M1,)</version>
 		</dependency>
 		<dependency>
 			<groupId>com.amazonaws</groupId>

From 10ce3d85ac7416a3a94461bfe961d008b83e5d2f Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Tue, 6 Feb 2024 10:51:37 +0100
Subject: [PATCH 141/430] chore: adjust versions after release

---
 aws-serverless-java-container-struts/pom.xml | 8 ++++----
 aws-serverless-struts-archetype/pom.xml      | 4 ++--
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/aws-serverless-java-container-struts/pom.xml b/aws-serverless-java-container-struts/pom.xml
index f7a8f3846..ff4071933 100644
--- a/aws-serverless-java-container-struts/pom.xml
+++ b/aws-serverless-java-container-struts/pom.xml
@@ -6,12 +6,12 @@
     <name>AWS Serverless Java container support - Struts implementation</name>
     <description>Allows Java applications written for the Struts framework to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.0.0-SNAPSHOT</version>
+    <version>2.1.0-SNAPSHOT</version>
 
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.0.0-SNAPSHOT</version>
+        <version>2.1.0-SNAPSHOT</version>
     </parent>
 
     <properties>
@@ -23,12 +23,12 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.0.0-SNAPSHOT</version>
+            <version>2.0.0</version>
         </dependency>
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.0.0-SNAPSHOT</version>
+            <version>2.0.0</version>
             <classifier>tests</classifier>
             <type>test-jar</type>
             <scope>test</scope>
diff --git a/aws-serverless-struts-archetype/pom.xml b/aws-serverless-struts-archetype/pom.xml
index 0e12ca517..27c530046 100644
--- a/aws-serverless-struts-archetype/pom.xml
+++ b/aws-serverless-struts-archetype/pom.xml
@@ -4,12 +4,12 @@
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.0.0-SNAPSHOT</version>
+        <version>2.1.0-SNAPSHOT</version>
     </parent>
 
     <groupId>com.amazonaws.serverless.archetypes</groupId>
     <artifactId>aws-serverless-struts-archetype</artifactId>
-    <version>2.0.0-SNAPSHOT</version>
+    <version>2.1.0-SNAPSHOT</version>
     <packaging>maven-archetype</packaging>
 
     <scm>

From 2623b12b418a7102170e2d2e1452123372f1e418 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Tue, 6 Feb 2024 11:02:34 +0100
Subject: [PATCH 142/430] add blogpost

---
 README.md | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/README.md b/README.md
index 174576470..b88fb16db 100644
--- a/README.md
+++ b/README.md
@@ -44,6 +44,10 @@ public class StreamLambdaHandler implements RequestStreamHandler {
 
 ## Public Examples
 
+### Blogs
+
+- [Re-platforming Java applications using the updated AWS Serverless Java Container](https://aws.amazon.com/blogs/compute/re-platforming-java-applications-using-the-updated-aws-serverless-java-container/)
+
 ### Workshops
 
 - [Java on AWS Lambda](https://catalog.workshops.aws/java-on-aws-lambda) From Serverful to Serverless Java with AWS Lambda in 2 hours

From 776c7979c9200009402cb34ea07b97c55395d4ef Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 12 Feb 2024 04:24:23 +0000
Subject: [PATCH 143/430] chore(deps): bump
 com.github.spotbugs:spotbugs-maven-plugin

Bumps [com.github.spotbugs:spotbugs-maven-plugin](https://github.com/spotbugs/spotbugs-maven-plugin) from 4.8.3.0 to 4.8.3.1.
- [Release notes](https://github.com/spotbugs/spotbugs-maven-plugin/releases)
- [Commits](https://github.com/spotbugs/spotbugs-maven-plugin/compare/spotbugs-maven-plugin-4.8.3.0...spotbugs-maven-plugin-4.8.3.1)

---
updated-dependencies:
- dependency-name: com.github.spotbugs:spotbugs-maven-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 959b6ab21..3af72a5d3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -249,7 +249,7 @@
                 <plugin>
                     <groupId>com.github.spotbugs</groupId>
                     <artifactId>spotbugs-maven-plugin</artifactId>
-                    <version>4.8.3.0</version>
+                    <version>4.8.3.1</version>
                     <configuration>
                         <!--
                             Enables analysis which takes more memory but finds more bugs.

From ccaf9150f90d2db23fac0b3b8c55f2428248da8b Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 12 Feb 2024 04:24:33 +0000
Subject: [PATCH 144/430] chore(deps): bump commons-codec:commons-codec from
 1.16.0 to 1.16.1

Bumps [commons-codec:commons-codec](https://github.com/apache/commons-codec) from 1.16.0 to 1.16.1.
- [Changelog](https://github.com/apache/commons-codec/blob/master/RELEASE-NOTES.txt)
- [Commits](https://github.com/apache/commons-codec/compare/rel/commons-codec-1.16.0...rel/commons-codec-1.16.1)

---
updated-dependencies:
- dependency-name: commons-codec:commons-codec
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 aws-serverless-java-container-jersey/pom.xml | 2 +-
 aws-serverless-java-container-spring/pom.xml | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/aws-serverless-java-container-jersey/pom.xml b/aws-serverless-java-container-jersey/pom.xml
index 4ee96cea5..683ff7e7c 100644
--- a/aws-serverless-java-container-jersey/pom.xml
+++ b/aws-serverless-java-container-jersey/pom.xml
@@ -64,7 +64,7 @@
         <dependency>
             <groupId>commons-codec</groupId>
             <artifactId>commons-codec</artifactId>
-            <version>1.16.0</version>
+            <version>1.16.1</version>
             <scope>test</scope>
         </dependency>
 
diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml
index 6154ca2e5..af19b3c8e 100644
--- a/aws-serverless-java-container-spring/pom.xml
+++ b/aws-serverless-java-container-spring/pom.xml
@@ -53,7 +53,7 @@
         <dependency>
             <groupId>commons-codec</groupId>
             <artifactId>commons-codec</artifactId>
-            <version>1.16.0</version>
+            <version>1.16.1</version>
             <scope>test</scope>
         </dependency>
 

From 88595725bae1e536a94effdc66f9e1efe1b196cb Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Fri, 23 Feb 2024 07:07:12 +0100
Subject: [PATCH 145/430] chore(deps): Update Spring dependencies (framework to
 6.1.4, security to 6.2.2, boot to 3.2.2)

---
 aws-serverless-java-container-core/pom.xml                  | 2 +-
 aws-serverless-java-container-spring/pom.xml                | 4 ++--
 aws-serverless-java-container-springboot3/pom.xml           | 6 +++---
 .../src/main/resources/archetype-resources/build.gradle     | 4 ++--
 .../src/main/resources/archetype-resources/pom.xml          | 2 +-
 .../src/main/resources/archetype-resources/build.gradle     | 2 +-
 .../src/main/resources/archetype-resources/pom.xml          | 2 +-
 samples/spring/pet-store/build.gradle                       | 4 ++--
 samples/spring/pet-store/pom.xml                            | 2 +-
 samples/springboot3/alt-pet-store/build.gradle              | 2 +-
 samples/springboot3/alt-pet-store/pom.xml                   | 2 +-
 samples/springboot3/graphql-pet-store/pom.xml               | 2 +-
 samples/springboot3/pet-store-native/pom.xml                | 2 +-
 samples/springboot3/pet-store/build.gradle                  | 2 +-
 samples/springboot3/pet-store/pom.xml                       | 2 +-
 15 files changed, 20 insertions(+), 20 deletions(-)

diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml
index 8f743057a..ab040a112 100644
--- a/aws-serverless-java-container-core/pom.xml
+++ b/aws-serverless-java-container-core/pom.xml
@@ -60,7 +60,7 @@
         <dependency>
             <groupId>org.springframework.security</groupId>
             <artifactId>spring-security-web</artifactId>
-            <version>6.2.1</version>
+            <version>6.2.2</version>
             <scope>test</scope>
         </dependency>
     </dependencies>
diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml
index af19b3c8e..b2f1c12d6 100644
--- a/aws-serverless-java-container-spring/pom.xml
+++ b/aws-serverless-java-container-spring/pom.xml
@@ -16,8 +16,8 @@
     </parent>
 
     <properties>
-        <spring.version>6.1.3</spring.version>
-        <spring-security.version>6.2.1</spring-security.version>
+        <spring.version>6.1.4</spring.version>
+        <spring-security.version>6.2.2</spring-security.version>
     </properties>
 
     <dependencies>
diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml
index a36c66657..6560ee0c7 100644
--- a/aws-serverless-java-container-springboot3/pom.xml
+++ b/aws-serverless-java-container-springboot3/pom.xml
@@ -15,9 +15,9 @@
     <version>2.1.0-SNAPSHOT</version>
 
     <properties>
-        <spring.version>6.1.3</spring.version>
-        <springboot.version>3.2.2</springboot.version>
-        <springsecurity.version>6.2.1</springsecurity.version>
+        <spring.version>6.1.4</spring.version>
+        <springboot.version>3.2.3</springboot.version>
+        <springsecurity.version>6.2.2</springsecurity.version>
     </properties>
 
     <dependencies>
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
index d26a9630d..79570e92a 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
@@ -7,8 +7,8 @@ repositories {
 
 dependencies {
   implementation (
-          'org.springframework:spring-webmvc:6.1.3',
-          'org.springframework:spring-context:6.1.3',
+          'org.springframework:spring-webmvc:6.1.4',
+          'org.springframework:spring-context:6.1.4',
           'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)',
           'org.apache.logging.log4j:log4j-core:2.22.1',
           'org.apache.logging.log4j:log4j-api:2.22.1',
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
index 48ce0a0d1..2bcfc0d81 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
@@ -16,7 +16,7 @@
     <properties>
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
-        <spring.version>6.1.3</spring.version>
+        <spring.version>6.1.4</spring.version>
         <junit.version>5.10.2</junit.version>
         <log4j.version>2.22.1</log4j.version>
     </properties>
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
index 2eff24495..6fe3e6df2 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
@@ -9,7 +9,7 @@ repositories {
 
 dependencies {
   implementation (
-          'org.springframework.boot:spring-boot-starter-web:3.2.2',
+          'org.springframework.boot:spring-boot-starter-web:3.2.3',
           'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)',
   )
 
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
index ef49a79f2..e444e3fa2 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
@@ -16,7 +16,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.2.2</version>
+        <version>3.2.3</version>
     </parent>
 
     <properties>
diff --git a/samples/spring/pet-store/build.gradle b/samples/spring/pet-store/build.gradle
index 586773bdd..6662c379d 100644
--- a/samples/spring/pet-store/build.gradle
+++ b/samples/spring/pet-store/build.gradle
@@ -7,8 +7,8 @@ repositories {
 
 dependencies {
   implementation (
-          'org.springframework:spring-webmvc:6.1.3',
-          'org.springframework:spring-context:6.1.3',
+          'org.springframework:spring-webmvc:6.1.4',
+          'org.springframework:spring-context:6.1.4',
           'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)',
           'org.apache.logging.log4j:log4j-core:2.22.1',
           'org.apache.logging.log4j:log4j-api:2.22.1',
diff --git a/samples/spring/pet-store/pom.xml b/samples/spring/pet-store/pom.xml
index 6c0fb81e2..31865e36f 100644
--- a/samples/spring/pet-store/pom.xml
+++ b/samples/spring/pet-store/pom.xml
@@ -24,7 +24,7 @@
     </licenses>
 
     <properties>
-        <spring.version>6.1.3</spring.version>
+        <spring.version>6.1.4</spring.version>
         <log4j.version>2.22.1</log4j.version>
         <maven.compiler.source>17</maven.compiler.source>
         <maven.compiler.target>17</maven.compiler.target>
diff --git a/samples/springboot3/alt-pet-store/build.gradle b/samples/springboot3/alt-pet-store/build.gradle
index b59cc9720..602b56338 100644
--- a/samples/springboot3/alt-pet-store/build.gradle
+++ b/samples/springboot3/alt-pet-store/build.gradle
@@ -9,7 +9,7 @@ repositories {
 
 dependencies {
   implementation (
-          implementation('org.springframework.boot:spring-boot-starter-web:3.2.2') {
+          implementation('org.springframework.boot:spring-boot-starter-web:3.2.3') {
             exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat'
           },
           'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)',
diff --git a/samples/springboot3/alt-pet-store/pom.xml b/samples/springboot3/alt-pet-store/pom.xml
index dcefb27d0..ca0a96251 100644
--- a/samples/springboot3/alt-pet-store/pom.xml
+++ b/samples/springboot3/alt-pet-store/pom.xml
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.2.2</version>
+        <version>3.2.3</version>
     </parent>
 
     <licenses>
diff --git a/samples/springboot3/graphql-pet-store/pom.xml b/samples/springboot3/graphql-pet-store/pom.xml
index df71fb76e..442aecdd7 100644
--- a/samples/springboot3/graphql-pet-store/pom.xml
+++ b/samples/springboot3/graphql-pet-store/pom.xml
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.2.2</version>
+        <version>3.2.3</version>
     </parent>
 
     <licenses>
diff --git a/samples/springboot3/pet-store-native/pom.xml b/samples/springboot3/pet-store-native/pom.xml
index 857be1b0b..c5a6e6f70 100644
--- a/samples/springboot3/pet-store-native/pom.xml
+++ b/samples/springboot3/pet-store-native/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.springframework.boot</groupId>
 		<artifactId>spring-boot-starter-parent</artifactId>
-		<version>3.2.2</version>
+		<version>3.2.3</version>
 		<relativePath /> <!-- lookup parent from repository -->
 	</parent>
 	<groupId>com.amazonaws.serverless.sample</groupId>
diff --git a/samples/springboot3/pet-store/build.gradle b/samples/springboot3/pet-store/build.gradle
index b59cc9720..602b56338 100644
--- a/samples/springboot3/pet-store/build.gradle
+++ b/samples/springboot3/pet-store/build.gradle
@@ -9,7 +9,7 @@ repositories {
 
 dependencies {
   implementation (
-          implementation('org.springframework.boot:spring-boot-starter-web:3.2.2') {
+          implementation('org.springframework.boot:spring-boot-starter-web:3.2.3') {
             exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat'
           },
           'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)',
diff --git a/samples/springboot3/pet-store/pom.xml b/samples/springboot3/pet-store/pom.xml
index 04de7678e..287096561 100644
--- a/samples/springboot3/pet-store/pom.xml
+++ b/samples/springboot3/pet-store/pom.xml
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.2.2</version>
+        <version>3.2.3</version>
     </parent>
 
     <licenses>

From 3e282bca95e1cfdb621d5cc7b094b136af41f734 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Mon, 26 Feb 2024 09:50:53 +0100
Subject: [PATCH 146/430] chore(deps): Update maven-shade-plugin to 3.5.2

---
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 samples/jersey/pet-store/pom.xml                                | 2 +-
 samples/spring/pet-store/pom.xml                                | 2 +-
 samples/springboot3/alt-pet-store/pom.xml                       | 2 +-
 samples/springboot3/graphql-pet-store/pom.xml                   | 2 +-
 samples/springboot3/pet-store/pom.xml                           | 2 +-
 8 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
index a52141649..8f01b03a6 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
@@ -107,7 +107,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-shade-plugin</artifactId>
-                        <version>3.5.1</version>
+                        <version>3.5.2</version>
                         <configuration>
                             <createDependencyReducedPom>false</createDependencyReducedPom>
                         </configuration>
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
index 2bcfc0d81..e5807be42 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
@@ -119,7 +119,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-shade-plugin</artifactId>
-                        <version>3.5.1</version>
+                        <version>3.5.2</version>
                         <executions>
                             <execution>
                                 <phase>package</phase>
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
index e444e3fa2..a6184962c 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
@@ -83,7 +83,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-shade-plugin</artifactId>
-                        <version>3.5.1</version>
+                        <version>3.5.2</version>
                         <configuration>
                             <createDependencyReducedPom>false</createDependencyReducedPom>
                         </configuration>
diff --git a/samples/jersey/pet-store/pom.xml b/samples/jersey/pet-store/pom.xml
index 7a5ed7fba..c7400aa81 100644
--- a/samples/jersey/pet-store/pom.xml
+++ b/samples/jersey/pet-store/pom.xml
@@ -85,7 +85,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-shade-plugin</artifactId>
-                        <version>3.5.1</version>
+                        <version>3.5.2</version>
                         <configuration>
                             <createDependencyReducedPom>false</createDependencyReducedPom>
                         </configuration>
diff --git a/samples/spring/pet-store/pom.xml b/samples/spring/pet-store/pom.xml
index 31865e36f..e2618e879 100644
--- a/samples/spring/pet-store/pom.xml
+++ b/samples/spring/pet-store/pom.xml
@@ -95,7 +95,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-shade-plugin</artifactId>
-                        <version>3.5.1</version>
+                        <version>3.5.2</version>
                         <executions>
                             <execution>
                                 <phase>package</phase>
diff --git a/samples/springboot3/alt-pet-store/pom.xml b/samples/springboot3/alt-pet-store/pom.xml
index ca0a96251..9ed6784f9 100644
--- a/samples/springboot3/alt-pet-store/pom.xml
+++ b/samples/springboot3/alt-pet-store/pom.xml
@@ -49,7 +49,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-shade-plugin</artifactId>
-                        <version>3.5.1</version>
+                        <version>3.5.2</version>
                         <configuration>
                             <createDependencyReducedPom>false</createDependencyReducedPom>
                         </configuration>
diff --git a/samples/springboot3/graphql-pet-store/pom.xml b/samples/springboot3/graphql-pet-store/pom.xml
index 442aecdd7..8857b1c0c 100644
--- a/samples/springboot3/graphql-pet-store/pom.xml
+++ b/samples/springboot3/graphql-pet-store/pom.xml
@@ -63,7 +63,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-shade-plugin</artifactId>
-                        <version>3.5.1</version>
+                        <version>3.5.2</version>
                         <configuration>
                             <createDependencyReducedPom>false</createDependencyReducedPom>
                         </configuration>
diff --git a/samples/springboot3/pet-store/pom.xml b/samples/springboot3/pet-store/pom.xml
index 287096561..f0ae6a3ee 100644
--- a/samples/springboot3/pet-store/pom.xml
+++ b/samples/springboot3/pet-store/pom.xml
@@ -55,7 +55,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-shade-plugin</artifactId>
-                        <version>3.5.1</version>
+                        <version>3.5.2</version>
                         <configuration>
                             <createDependencyReducedPom>false</createDependencyReducedPom>
                         </configuration>

From 4e83ca47c8d66cd1ceaf7d442213013941e8c75f Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Mon, 26 Feb 2024 09:51:27 +0100
Subject: [PATCH 147/430] chore(deps): Update Log4J to 2.23.0

---
 .../src/main/resources/archetype-resources/build.gradle     | 6 +++---
 .../src/main/resources/archetype-resources/pom.xml          | 2 +-
 .../src/main/resources/archetype-resources/build.gradle     | 6 +++---
 .../src/main/resources/archetype-resources/pom.xml          | 2 +-
 samples/spring/pet-store/build.gradle                       | 6 +++---
 samples/spring/pet-store/pom.xml                            | 2 +-
 samples/struts/pet-store/build.gradle                       | 4 ++--
 samples/struts/pet-store/pom.xml                            | 2 +-
 8 files changed, 15 insertions(+), 15 deletions(-)

diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
index 79570e92a..a79ea420a 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
@@ -10,9 +10,9 @@ dependencies {
           'org.springframework:spring-webmvc:6.1.4',
           'org.springframework:spring-context:6.1.4',
           'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)',
-          'org.apache.logging.log4j:log4j-core:2.22.1',
-          'org.apache.logging.log4j:log4j-api:2.22.1',
-          'org.apache.logging.log4j:log4j-slf4j-impl:2.22.1',
+          'org.apache.logging.log4j:log4j-core:2.23.0',
+          'org.apache.logging.log4j:log4j-api:2.23.0',
+          'org.apache.logging.log4j:log4j-slf4j-impl:2.23.0',
           'com.fasterxml.jackson.core:jackson-databind:2.16.1',
           'com.amazonaws:aws-lambda-java-log4j2:1.6.0',
   )
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
index e5807be42..37fd08e1e 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
@@ -18,7 +18,7 @@
         <maven.compiler.target>1.8</maven.compiler.target>
         <spring.version>6.1.4</spring.version>
         <junit.version>5.10.2</junit.version>
-        <log4j.version>2.22.1</log4j.version>
+        <log4j.version>2.23.0</log4j.version>
     </properties>
 
     <dependencies>
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
index 499ede045..a0cb6e805 100644
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
@@ -36,9 +36,9 @@ dependencies {
   implementation ('org.hibernate.validator:hibernate-validator:6.1.7.Final')
   implementation ('com.fasterxml.jackson.core:jackson-databind:2.16.1')
   implementation ('com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.16.1')
-  implementation ('org.apache.logging.log4j:log4j-core:2.22.1')
-  implementation ('org.apache.logging.log4j:log4j-api:2.22.1')
-  implementation ('org.apache.logging.log4j:log4j-slf4j-impl:2.22.1')
+  implementation ('org.apache.logging.log4j:log4j-core:2.23.0')
+  implementation ('org.apache.logging.log4j:log4j-api:2.23.0')
+  implementation ('org.apache.logging.log4j:log4j-slf4j-impl:2.23.0')
   implementation ('com.amazonaws:aws-lambda-java-log4j2:1.6.0')
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
index 64fe17396..616f9e6b6 100644
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
@@ -18,7 +18,7 @@
         <struts.version>7.0.0-M2</struts.version>
         <jackson.version>2.16.1</jackson.version>
         <junit.version>5.10.2</junit.version>
-        <log4j.version>2.22.1</log4j.version>
+        <log4j.version>2.23.0</log4j.version>
     </properties>
 
     <dependencies>
diff --git a/samples/spring/pet-store/build.gradle b/samples/spring/pet-store/build.gradle
index 6662c379d..1c90ee09c 100644
--- a/samples/spring/pet-store/build.gradle
+++ b/samples/spring/pet-store/build.gradle
@@ -10,9 +10,9 @@ dependencies {
           'org.springframework:spring-webmvc:6.1.4',
           'org.springframework:spring-context:6.1.4',
           'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)',
-          'org.apache.logging.log4j:log4j-core:2.22.1',
-          'org.apache.logging.log4j:log4j-api:2.22.1',
-          'org.apache.logging.log4j:log4j-slf4j-impl:2.22.1',
+          'org.apache.logging.log4j:log4j-core:2.23.0',
+          'org.apache.logging.log4j:log4j-api:2.23.0',
+          'org.apache.logging.log4j:log4j-slf4j-impl:2.23.0',
           'com.fasterxml.jackson.core:jackson-databind:2.16.1',
           'com.amazonaws:aws-lambda-java-log4j2:1.6.0',
   )
diff --git a/samples/spring/pet-store/pom.xml b/samples/spring/pet-store/pom.xml
index e2618e879..d271fadaa 100644
--- a/samples/spring/pet-store/pom.xml
+++ b/samples/spring/pet-store/pom.xml
@@ -25,7 +25,7 @@
 
     <properties>
         <spring.version>6.1.4</spring.version>
-        <log4j.version>2.22.1</log4j.version>
+        <log4j.version>2.23.0</log4j.version>
         <maven.compiler.source>17</maven.compiler.source>
         <maven.compiler.target>17</maven.compiler.target>
     </properties>
diff --git a/samples/struts/pet-store/build.gradle b/samples/struts/pet-store/build.gradle
index cca8f65e7..8396babfa 100644
--- a/samples/struts/pet-store/build.gradle
+++ b/samples/struts/pet-store/build.gradle
@@ -24,8 +24,8 @@ dependencies {
           'jakarta.el:jakarta.el-api:5.0.1',
           'com.fasterxml.jackson.core:jackson-databind:2.16.1',
           'com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.16.1',
-          'org.apache.logging.log4j:log4j-core:2.22.1',
-          'org.apache.logging.log4j:log4j-api:2.22.1',
+          'org.apache.logging.log4j:log4j-core:2.23.0',
+          'org.apache.logging.log4j:log4j-api:2.23.0',
           'com.amazonaws:aws-lambda-java-log4j2:1.6.0',
   )
 }
diff --git a/samples/struts/pet-store/pom.xml b/samples/struts/pet-store/pom.xml
index b23a44802..02fbd8fe4 100644
--- a/samples/struts/pet-store/pom.xml
+++ b/samples/struts/pet-store/pom.xml
@@ -29,7 +29,7 @@
         <struts.version>7.0.0-M2</struts.version>
         <jackson.version>2.16.1</jackson.version>
         <junit.version>4.13.2</junit.version>
-        <log4j.version>2.22.1</log4j.version>
+        <log4j.version>2.23.0</log4j.version>
     </properties>
 
     <dependencies>

From 38ce9172e75c71e0281fa1d0d63e6625016fcc96 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Mon, 26 Feb 2024 10:03:28 +0100
Subject: [PATCH 148/430] chore(deps): Update Struts to 7.0.0-M3

---
 aws-serverless-java-container-struts/pom.xml           |  2 +-
 .../main/resources/archetype-resources/build.gradle    | 10 +++++-----
 .../src/main/resources/archetype-resources/pom.xml     |  2 +-
 samples/struts/pet-store/build.gradle                  |  8 ++++----
 samples/struts/pet-store/pom.xml                       |  2 +-
 5 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/aws-serverless-java-container-struts/pom.xml b/aws-serverless-java-container-struts/pom.xml
index ff4071933..0ce204cad 100644
--- a/aws-serverless-java-container-struts/pom.xml
+++ b/aws-serverless-java-container-struts/pom.xml
@@ -15,7 +15,7 @@
     </parent>
 
     <properties>
-        <struts.version>7.0.0-M2</struts.version>
+        <struts.version>7.0.0-M3</struts.version>
     </properties>
 
     <dependencies>
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
index a0cb6e805..05d94f004 100644
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
@@ -18,19 +18,19 @@ dependencies {
     exclude group: 'org.apache.logging.log4j', module: 'log4j-api'
     exclude group: 'org.apache.logging.log4j', module: 'log4j-to-slf4j'
   }
-  implementation ('org.apache.struts:struts2-convention-plugin:7.0.0-M2') {
+  implementation ('org.apache.struts:struts2-convention-plugin:7.0.0-M3') {
     exclude group: 'org.apache.struts', module: 'struts2-core'
   }
-  implementation ('org.apache.struts:struts2-rest-plugin:7.0.0-M2') {
+  implementation ('org.apache.struts:struts2-rest-plugin:7.0.0-M3') {
     exclude group: 'org.apache.struts', module: 'struts2-core'
   }
-  implementation ('org.apache.struts:struts2-bean-validation-plugin:7.0.0-M2') {
+  implementation ('org.apache.struts:struts2-bean-validation-plugin:7.0.0-M3') {
     exclude group: 'org.apache.struts', module: 'struts2-core'
   }
   implementation ('com.jgeppert.struts2:struts2-aws-lambda-support-plugin:1.4.2') {
     exclude group: 'org.apache.struts', module: 'struts2-core'
   }
-  implementation ('org.apache.struts:struts2-core:7.0.0-M2') {
+  implementation ('org.apache.struts:struts2-core:7.0.0-M3') {
     exclude group: 'org.apache.logging.log4j', module: 'log4j-api'
   }
   implementation ('org.hibernate.validator:hibernate-validator:6.1.7.Final')
@@ -45,7 +45,7 @@ dependencies {
   testImplementation("org.apache.httpcomponents.client5:httpclient5:5.2.1")
   testImplementation(platform("org.junit:junit-bom:5.10.2"))
   testImplementation("org.junit.jupiter:junit-jupiter")
-  testImplementation('org.apache.struts:struts2-junit-plugin:7.0.0-M2') {
+  testImplementation('org.apache.struts:struts2-junit-plugin:7.0.0-M3') {
     exclude group: 'org.apache.struts', module: 'struts2-core'
   }
 }
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
index 616f9e6b6..b157b1603 100644
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
@@ -15,7 +15,7 @@
     <properties>
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
-        <struts.version>7.0.0-M2</struts.version>
+        <struts.version>7.0.0-M3</struts.version>
         <jackson.version>2.16.1</jackson.version>
         <junit.version>5.10.2</junit.version>
         <log4j.version>2.23.0</log4j.version>
diff --git a/samples/struts/pet-store/build.gradle b/samples/struts/pet-store/build.gradle
index 8396babfa..c0eba57e4 100644
--- a/samples/struts/pet-store/build.gradle
+++ b/samples/struts/pet-store/build.gradle
@@ -14,10 +14,10 @@ configurations {
 dependencies {
   implementation (
           'com.amazonaws.serverless:aws-serverless-java-container-struts:[2.0-SNAPSHOT,)',
-          'org.apache.struts:struts2-convention-plugin:7.0.0-M2',
-          'org.apache.struts:struts2-rest-plugin:7.0.0-M2',
-          'org.apache.struts:struts2-bean-validation-plugin:7.0.0-M2',
-          'org.apache.struts:struts2-junit-plugin:7.0.0-M2',
+          'org.apache.struts:struts2-convention-plugin:7.0.0-M3',
+          'org.apache.struts:struts2-rest-plugin:7.0.0-M3',
+          'org.apache.struts:struts2-bean-validation-plugin:7.0.0-M3',
+          'org.apache.struts:struts2-junit-plugin:7.0.0-M3',
           'com.jgeppert.struts2:struts2-aws-lambda-support-plugin:1.4.2',
           'org.hibernate.validator:hibernate-validator:6.1.7.Final',
           'org.glassfish:jakarta.el:5.0.0-M1',
diff --git a/samples/struts/pet-store/pom.xml b/samples/struts/pet-store/pom.xml
index 02fbd8fe4..9e389939c 100644
--- a/samples/struts/pet-store/pom.xml
+++ b/samples/struts/pet-store/pom.xml
@@ -26,7 +26,7 @@
     <properties>
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
-        <struts.version>7.0.0-M2</struts.version>
+        <struts.version>7.0.0-M3</struts.version>
         <jackson.version>2.16.1</jackson.version>
         <junit.version>4.13.2</junit.version>
         <log4j.version>2.23.0</log4j.version>

From d22f63ff32987d5c3ad5479ba639b28a7153dec6 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Mon, 26 Feb 2024 10:25:22 +0100
Subject: [PATCH 149/430] chore: disable CI build for Struts as it is not
 released right now

---
 .../continuous-integration-workflow.yml       | 25 +++++++++----------
 1 file changed, 12 insertions(+), 13 deletions(-)

diff --git a/.github/workflows/continuous-integration-workflow.yml b/.github/workflows/continuous-integration-workflow.yml
index 741ef5c2d..dd2e7b1cd 100644
--- a/.github/workflows/continuous-integration-workflow.yml
+++ b/.github/workflows/continuous-integration-workflow.yml
@@ -77,17 +77,16 @@ jobs:
       - name: Build with Spring Boot 3.1.x
         run: ./gha_build.sh springboot3 false false -Dspringboot.version=3.1.8 -Dspring.version=6.0.16 -Dspringsecurity.version=6.1.6 -Ddependency-check.skip=true
 
-  build_struts2:
-    name: Build and test Struts
-    runs-on: ubuntu-latest
-    steps:
-      - uses: actions/checkout@v3
-      - name: Set up JDK 17
-        uses: actions/setup-java@v3
-        with:
-          distribution: 'corretto'
-          java-version: 17
-      - name: Build latest
-        run: ./gha_build.sh struts false false
-# temporarily disabled archetype and samples as Struts is not released at the moment
+# temporarily disabled as Struts is not released at the moment
+#  build_struts2:
+#    name: Build and test Struts
+#    runs-on: ubuntu-latest
+#    steps:
+#      - uses: actions/checkout@v3
+#      - name: Set up JDK 17
+#        uses: actions/setup-java@v3
+#        with:
+#          distribution: 'corretto'
+#          java-version: 17
+#      - name: Build latest
 #        run: ./gha_build.sh struts true true
\ No newline at end of file

From 04aa97fe0eb581e4ab9386603fb37c0735d45b63 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 4 Mar 2024 04:41:52 +0000
Subject: [PATCH 150/430] chore(deps): bump
 com.h3xstream.findsecbugs:findsecbugs-plugin

Bumps [com.h3xstream.findsecbugs:findsecbugs-plugin](https://github.com/find-sec-bugs/find-sec-bugs) from 1.12.0 to 1.13.0.
- [Release notes](https://github.com/find-sec-bugs/find-sec-bugs/releases)
- [Changelog](https://github.com/find-sec-bugs/find-sec-bugs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/find-sec-bugs/find-sec-bugs/compare/version-1.12.0...version-1.13.0)

---
updated-dependencies:
- dependency-name: com.h3xstream.findsecbugs:findsecbugs-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 3af72a5d3..a9c4a7c27 100644
--- a/pom.xml
+++ b/pom.xml
@@ -270,7 +270,7 @@
                             <plugin>
                                 <groupId>com.h3xstream.findsecbugs</groupId>
                                 <artifactId>findsecbugs-plugin</artifactId>
-                                <version>1.12.0</version>
+                                <version>1.13.0</version>
                             </plugin>
                         </plugins>
                     </configuration>

From acfb5fd4e5729d6ba5f8fbd7d5df81bfe44c2329 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 4 Mar 2024 04:42:16 +0000
Subject: [PATCH 151/430] chore(deps-dev): bump org.mockito:mockito-core from
 5.10.0 to 5.11.0

Bumps [org.mockito:mockito-core](https://github.com/mockito/mockito) from 5.10.0 to 5.11.0.
- [Release notes](https://github.com/mockito/mockito/releases)
- [Commits](https://github.com/mockito/mockito/compare/v5.10.0...v5.11.0)

---
updated-dependencies:
- dependency-name: org.mockito:mockito-core
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 3af72a5d3..8cb137adb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -81,7 +81,7 @@
         <jackson.version>2.16.1</jackson.version>
         <slf4j.version>2.0.12</slf4j.version>
         <junit.version>5.10.2</junit.version>
-        <mockito.version>5.10.0</mockito.version>
+        <mockito.version>5.11.0</mockito.version>
         <hamcrest.version>1.3</hamcrest.version>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     </properties>

From 333b52139ceefef145a7871959c2bb79c2152e4e Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 4 Mar 2024 04:42:21 +0000
Subject: [PATCH 152/430] chore(deps-dev): bump
 jakarta.activation:jakarta.activation-api

Bumps [jakarta.activation:jakarta.activation-api](https://github.com/jakartaee/jaf-api) from 2.1.2 to 2.1.3.
- [Release notes](https://github.com/jakartaee/jaf-api/releases)
- [Commits](https://github.com/jakartaee/jaf-api/compare/2.1.2...2.1.3)

---
updated-dependencies:
- dependency-name: jakarta.activation:jakarta.activation-api
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 aws-serverless-java-container-spring/pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml
index b2f1c12d6..09aa41f10 100644
--- a/aws-serverless-java-container-spring/pom.xml
+++ b/aws-serverless-java-container-spring/pom.xml
@@ -67,7 +67,7 @@
         <dependency>
             <groupId>jakarta.activation</groupId>
             <artifactId>jakarta.activation-api</artifactId>
-            <version>2.1.2</version>
+            <version>2.1.3</version>
             <scope>test</scope>
         </dependency>
 

From b577efa56cd27ce0ecd7d6df499e0196a8a21513 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Fri, 22 Mar 2024 13:46:49 +0100
Subject: [PATCH 153/430] chore(deps): Update Spring dependencies (framework to
 6.1.5, security to 6.2.3, boot to 3.2.4)

---
 aws-serverless-java-container-core/pom.xml                  | 2 +-
 aws-serverless-java-container-spring/pom.xml                | 4 ++--
 aws-serverless-java-container-springboot3/pom.xml           | 6 +++---
 .../src/main/resources/archetype-resources/build.gradle     | 4 ++--
 .../src/main/resources/archetype-resources/pom.xml          | 2 +-
 .../src/main/resources/archetype-resources/build.gradle     | 2 +-
 .../src/main/resources/archetype-resources/pom.xml          | 2 +-
 samples/spring/pet-store/build.gradle                       | 4 ++--
 samples/spring/pet-store/pom.xml                            | 2 +-
 samples/springboot3/alt-pet-store/build.gradle              | 2 +-
 samples/springboot3/alt-pet-store/pom.xml                   | 2 +-
 samples/springboot3/graphql-pet-store/pom.xml               | 2 +-
 samples/springboot3/pet-store-native/pom.xml                | 2 +-
 samples/springboot3/pet-store/build.gradle                  | 2 +-
 samples/springboot3/pet-store/pom.xml                       | 2 +-
 15 files changed, 20 insertions(+), 20 deletions(-)

diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml
index ab040a112..05e2f75d9 100644
--- a/aws-serverless-java-container-core/pom.xml
+++ b/aws-serverless-java-container-core/pom.xml
@@ -60,7 +60,7 @@
         <dependency>
             <groupId>org.springframework.security</groupId>
             <artifactId>spring-security-web</artifactId>
-            <version>6.2.2</version>
+            <version>6.2.3</version>
             <scope>test</scope>
         </dependency>
     </dependencies>
diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml
index b2f1c12d6..236634ec5 100644
--- a/aws-serverless-java-container-spring/pom.xml
+++ b/aws-serverless-java-container-spring/pom.xml
@@ -16,8 +16,8 @@
     </parent>
 
     <properties>
-        <spring.version>6.1.4</spring.version>
-        <spring-security.version>6.2.2</spring-security.version>
+        <spring.version>6.1.5</spring.version>
+        <spring-security.version>6.2.3</spring-security.version>
     </properties>
 
     <dependencies>
diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml
index 6560ee0c7..23ceec081 100644
--- a/aws-serverless-java-container-springboot3/pom.xml
+++ b/aws-serverless-java-container-springboot3/pom.xml
@@ -15,9 +15,9 @@
     <version>2.1.0-SNAPSHOT</version>
 
     <properties>
-        <spring.version>6.1.4</spring.version>
-        <springboot.version>3.2.3</springboot.version>
-        <springsecurity.version>6.2.2</springsecurity.version>
+        <spring.version>6.1.5</spring.version>
+        <springboot.version>3.2.4</springboot.version>
+        <springsecurity.version>6.2.3</springsecurity.version>
     </properties>
 
     <dependencies>
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
index a79ea420a..1c2300ba7 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
@@ -7,8 +7,8 @@ repositories {
 
 dependencies {
   implementation (
-          'org.springframework:spring-webmvc:6.1.4',
-          'org.springframework:spring-context:6.1.4',
+          'org.springframework:spring-webmvc:6.1.5',
+          'org.springframework:spring-context:6.1.5',
           'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)',
           'org.apache.logging.log4j:log4j-core:2.23.0',
           'org.apache.logging.log4j:log4j-api:2.23.0',
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
index 37fd08e1e..2c83b024f 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
@@ -16,7 +16,7 @@
     <properties>
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
-        <spring.version>6.1.4</spring.version>
+        <spring.version>6.1.5</spring.version>
         <junit.version>5.10.2</junit.version>
         <log4j.version>2.23.0</log4j.version>
     </properties>
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
index 6fe3e6df2..58322b33b 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
@@ -9,7 +9,7 @@ repositories {
 
 dependencies {
   implementation (
-          'org.springframework.boot:spring-boot-starter-web:3.2.3',
+          'org.springframework.boot:spring-boot-starter-web:3.2.4',
           'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)',
   )
 
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
index a6184962c..ece2d44fc 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
@@ -16,7 +16,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.2.3</version>
+        <version>3.2.4</version>
     </parent>
 
     <properties>
diff --git a/samples/spring/pet-store/build.gradle b/samples/spring/pet-store/build.gradle
index 1c90ee09c..3c5194f6f 100644
--- a/samples/spring/pet-store/build.gradle
+++ b/samples/spring/pet-store/build.gradle
@@ -7,8 +7,8 @@ repositories {
 
 dependencies {
   implementation (
-          'org.springframework:spring-webmvc:6.1.4',
-          'org.springframework:spring-context:6.1.4',
+          'org.springframework:spring-webmvc:6.1.5',
+          'org.springframework:spring-context:6.1.5',
           'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)',
           'org.apache.logging.log4j:log4j-core:2.23.0',
           'org.apache.logging.log4j:log4j-api:2.23.0',
diff --git a/samples/spring/pet-store/pom.xml b/samples/spring/pet-store/pom.xml
index d271fadaa..279c4d1fb 100644
--- a/samples/spring/pet-store/pom.xml
+++ b/samples/spring/pet-store/pom.xml
@@ -24,7 +24,7 @@
     </licenses>
 
     <properties>
-        <spring.version>6.1.4</spring.version>
+        <spring.version>6.1.5</spring.version>
         <log4j.version>2.23.0</log4j.version>
         <maven.compiler.source>17</maven.compiler.source>
         <maven.compiler.target>17</maven.compiler.target>
diff --git a/samples/springboot3/alt-pet-store/build.gradle b/samples/springboot3/alt-pet-store/build.gradle
index 602b56338..746782c86 100644
--- a/samples/springboot3/alt-pet-store/build.gradle
+++ b/samples/springboot3/alt-pet-store/build.gradle
@@ -9,7 +9,7 @@ repositories {
 
 dependencies {
   implementation (
-          implementation('org.springframework.boot:spring-boot-starter-web:3.2.3') {
+          implementation('org.springframework.boot:spring-boot-starter-web:3.2.4') {
             exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat'
           },
           'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)',
diff --git a/samples/springboot3/alt-pet-store/pom.xml b/samples/springboot3/alt-pet-store/pom.xml
index 9ed6784f9..90388e15e 100644
--- a/samples/springboot3/alt-pet-store/pom.xml
+++ b/samples/springboot3/alt-pet-store/pom.xml
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.2.3</version>
+        <version>3.2.4</version>
     </parent>
 
     <licenses>
diff --git a/samples/springboot3/graphql-pet-store/pom.xml b/samples/springboot3/graphql-pet-store/pom.xml
index 8857b1c0c..dd28aef85 100644
--- a/samples/springboot3/graphql-pet-store/pom.xml
+++ b/samples/springboot3/graphql-pet-store/pom.xml
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.2.3</version>
+        <version>3.2.4</version>
     </parent>
 
     <licenses>
diff --git a/samples/springboot3/pet-store-native/pom.xml b/samples/springboot3/pet-store-native/pom.xml
index c5a6e6f70..ae5dbda1f 100644
--- a/samples/springboot3/pet-store-native/pom.xml
+++ b/samples/springboot3/pet-store-native/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.springframework.boot</groupId>
 		<artifactId>spring-boot-starter-parent</artifactId>
-		<version>3.2.3</version>
+		<version>3.2.4</version>
 		<relativePath /> <!-- lookup parent from repository -->
 	</parent>
 	<groupId>com.amazonaws.serverless.sample</groupId>
diff --git a/samples/springboot3/pet-store/build.gradle b/samples/springboot3/pet-store/build.gradle
index 602b56338..746782c86 100644
--- a/samples/springboot3/pet-store/build.gradle
+++ b/samples/springboot3/pet-store/build.gradle
@@ -9,7 +9,7 @@ repositories {
 
 dependencies {
   implementation (
-          implementation('org.springframework.boot:spring-boot-starter-web:3.2.3') {
+          implementation('org.springframework.boot:spring-boot-starter-web:3.2.4') {
             exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat'
           },
           'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)',
diff --git a/samples/springboot3/pet-store/pom.xml b/samples/springboot3/pet-store/pom.xml
index f0ae6a3ee..a4390bd9d 100644
--- a/samples/springboot3/pet-store/pom.xml
+++ b/samples/springboot3/pet-store/pom.xml
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.2.3</version>
+        <version>3.2.4</version>
     </parent>
 
     <licenses>

From b39343812a00680fe6ce644a71dafbbbe4f4da65 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Fri, 22 Mar 2024 14:14:19 +0100
Subject: [PATCH 154/430] chore(deps): Update Jackson to 2.17.0

---
 .../src/main/resources/archetype-resources/build.gradle       | 2 +-
 .../src/main/resources/archetype-resources/pom.xml            | 2 +-
 .../src/main/resources/archetype-resources/build.gradle       | 2 +-
 .../src/main/resources/archetype-resources/build.gradle       | 4 ++--
 .../src/main/resources/archetype-resources/pom.xml            | 2 +-
 pom.xml                                                       | 2 +-
 samples/jersey/pet-store/build.gradle                         | 2 +-
 samples/jersey/pet-store/pom.xml                              | 2 +-
 samples/spring/pet-store/build.gradle                         | 2 +-
 samples/struts/pet-store/build.gradle                         | 4 ++--
 samples/struts/pet-store/pom.xml                              | 2 +-
 11 files changed, 13 insertions(+), 13 deletions(-)

diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
index b23f0b90f..d4a6549ba 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
@@ -8,7 +8,7 @@ repositories {
 dependencies {
   implementation (
           'com.amazonaws.serverless:aws-serverless-java-container-jersey:[2.0-SNAPSHOT,)',
-          'com.fasterxml.jackson.core:jackson-databind:2.16.1',
+          'com.fasterxml.jackson.core:jackson-databind:2.17.0',
   )
 
   implementation("org.glassfish.jersey.media:jersey-media-json-jackson:3.1.5") {
diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
index 8f01b03a6..be45d80a5 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
@@ -16,7 +16,7 @@
         <maven.compiler.target>1.8</maven.compiler.target>
 
         <jersey.version>3.1.5</jersey.version>
-        <jackson.version>2.16.1</jackson.version>
+        <jackson.version>2.17.0</jackson.version>
         <junit.version>5.10.2</junit.version>
     </properties>
 
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
index 1c2300ba7..1bc4c4c0e 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
@@ -13,7 +13,7 @@ dependencies {
           'org.apache.logging.log4j:log4j-core:2.23.0',
           'org.apache.logging.log4j:log4j-api:2.23.0',
           'org.apache.logging.log4j:log4j-slf4j-impl:2.23.0',
-          'com.fasterxml.jackson.core:jackson-databind:2.16.1',
+          'com.fasterxml.jackson.core:jackson-databind:2.17.0',
           'com.amazonaws:aws-lambda-java-log4j2:1.6.0',
   )
 
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
index 05d94f004..48cecba3e 100644
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
@@ -34,8 +34,8 @@ dependencies {
     exclude group: 'org.apache.logging.log4j', module: 'log4j-api'
   }
   implementation ('org.hibernate.validator:hibernate-validator:6.1.7.Final')
-  implementation ('com.fasterxml.jackson.core:jackson-databind:2.16.1')
-  implementation ('com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.16.1')
+  implementation ('com.fasterxml.jackson.core:jackson-databind:2.17.0')
+  implementation ('com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.17.0')
   implementation ('org.apache.logging.log4j:log4j-core:2.23.0')
   implementation ('org.apache.logging.log4j:log4j-api:2.23.0')
   implementation ('org.apache.logging.log4j:log4j-slf4j-impl:2.23.0')
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
index b157b1603..e18351a65 100644
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
@@ -16,7 +16,7 @@
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
         <struts.version>7.0.0-M3</struts.version>
-        <jackson.version>2.16.1</jackson.version>
+        <jackson.version>2.17.0</jackson.version>
         <junit.version>5.10.2</junit.version>
         <log4j.version>2.23.0</log4j.version>
     </properties>
diff --git a/pom.xml b/pom.xml
index cddde7bc1..437e8ae34 100644
--- a/pom.xml
+++ b/pom.xml
@@ -78,7 +78,7 @@
     <properties>
         <jacoco.minCoverage>0.7</jacoco.minCoverage>
         <dependencyCheck.version>9.0.9</dependencyCheck.version>
-        <jackson.version>2.16.1</jackson.version>
+        <jackson.version>2.17.0</jackson.version>
         <slf4j.version>2.0.12</slf4j.version>
         <junit.version>5.10.2</junit.version>
         <mockito.version>5.11.0</mockito.version>
diff --git a/samples/jersey/pet-store/build.gradle b/samples/jersey/pet-store/build.gradle
index 475f60fa0..9d9b88465 100644
--- a/samples/jersey/pet-store/build.gradle
+++ b/samples/jersey/pet-store/build.gradle
@@ -8,7 +8,7 @@ repositories {
 dependencies {
   implementation (
           'com.amazonaws.serverless:aws-serverless-java-container-jersey:[2.0-SNAPSHOT,)',
-          'com.fasterxml.jackson.core:jackson-databind:2.16.1',
+          'com.fasterxml.jackson.core:jackson-databind:2.17.0',
   )
 
   implementation("org.glassfish.jersey.media:jersey-media-json-jackson:3.1.5") {
diff --git a/samples/jersey/pet-store/pom.xml b/samples/jersey/pet-store/pom.xml
index c7400aa81..c2e91ef44 100644
--- a/samples/jersey/pet-store/pom.xml
+++ b/samples/jersey/pet-store/pom.xml
@@ -27,7 +27,7 @@
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
         <jersey.version>3.1.5</jersey.version>
-        <jackson.version>2.16.1</jackson.version>
+        <jackson.version>2.17.0</jackson.version>
     </properties>
 
     <dependencies>
diff --git a/samples/spring/pet-store/build.gradle b/samples/spring/pet-store/build.gradle
index 3c5194f6f..1a82fd4f9 100644
--- a/samples/spring/pet-store/build.gradle
+++ b/samples/spring/pet-store/build.gradle
@@ -13,7 +13,7 @@ dependencies {
           'org.apache.logging.log4j:log4j-core:2.23.0',
           'org.apache.logging.log4j:log4j-api:2.23.0',
           'org.apache.logging.log4j:log4j-slf4j-impl:2.23.0',
-          'com.fasterxml.jackson.core:jackson-databind:2.16.1',
+          'com.fasterxml.jackson.core:jackson-databind:2.17.0',
           'com.amazonaws:aws-lambda-java-log4j2:1.6.0',
   )
 }
diff --git a/samples/struts/pet-store/build.gradle b/samples/struts/pet-store/build.gradle
index c0eba57e4..557a1d290 100644
--- a/samples/struts/pet-store/build.gradle
+++ b/samples/struts/pet-store/build.gradle
@@ -22,8 +22,8 @@ dependencies {
           'org.hibernate.validator:hibernate-validator:6.1.7.Final',
           'org.glassfish:jakarta.el:5.0.0-M1',
           'jakarta.el:jakarta.el-api:5.0.1',
-          'com.fasterxml.jackson.core:jackson-databind:2.16.1',
-          'com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.16.1',
+          'com.fasterxml.jackson.core:jackson-databind:2.17.0',
+          'com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.17.0',
           'org.apache.logging.log4j:log4j-core:2.23.0',
           'org.apache.logging.log4j:log4j-api:2.23.0',
           'com.amazonaws:aws-lambda-java-log4j2:1.6.0',
diff --git a/samples/struts/pet-store/pom.xml b/samples/struts/pet-store/pom.xml
index 9e389939c..f720e9c9a 100644
--- a/samples/struts/pet-store/pom.xml
+++ b/samples/struts/pet-store/pom.xml
@@ -27,7 +27,7 @@
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
         <struts.version>7.0.0-M3</struts.version>
-        <jackson.version>2.16.1</jackson.version>
+        <jackson.version>2.17.0</jackson.version>
         <junit.version>4.13.2</junit.version>
         <log4j.version>2.23.0</log4j.version>
     </properties>

From 96e0e7cc563a5be44799d2766b54b6fe470c01eb Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Fri, 22 Mar 2024 14:15:08 +0100
Subject: [PATCH 155/430] chore(deps): Update maven-assembly-plugin to 3.7.0

---
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 samples/jersey/pet-store/pom.xml                                | 2 +-
 samples/spring/pet-store/pom.xml                                | 2 +-
 samples/springboot3/alt-pet-store/pom.xml                       | 2 +-
 samples/springboot3/graphql-pet-store/pom.xml                   | 2 +-
 samples/springboot3/pet-store/pom.xml                           | 2 +-
 samples/struts/pet-store/pom.xml                                | 2 +-
 10 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
index be45d80a5..f2eb920c3 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
@@ -172,7 +172,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-assembly-plugin</artifactId>
-                        <version>3.6.0</version>
+                        <version>3.7.0</version>
                         <executions>
                             <execution>
                                 <id>zip-assembly</id>
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
index 2c83b024f..1f759772b 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
@@ -195,7 +195,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-assembly-plugin</artifactId>
-                        <version>3.6.0</version>
+                        <version>3.7.0</version>
                         <executions>
                             <execution>
                                 <id>zip-assembly</id>
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
index ece2d44fc..3947c9de6 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
@@ -155,7 +155,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-assembly-plugin</artifactId>
-                        <version>3.6.0</version>
+                        <version>3.7.0</version>
                         <executions>
                             <execution>
                                 <id>zip-assembly</id>
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
index e18351a65..fe83e8869 100644
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
@@ -157,7 +157,7 @@
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-assembly-plugin</artifactId>
-                <version>3.6.0</version>
+                <version>3.7.0</version>
                 <configuration>
                     <descriptors>
                         <descriptor>src/main/assembly/dist.xml</descriptor>
diff --git a/samples/jersey/pet-store/pom.xml b/samples/jersey/pet-store/pom.xml
index c2e91ef44..7ed1aa1f5 100644
--- a/samples/jersey/pet-store/pom.xml
+++ b/samples/jersey/pet-store/pom.xml
@@ -150,7 +150,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-assembly-plugin</artifactId>
-                        <version>3.6.0</version>
+                        <version>3.7.0</version>
                         <executions>
                             <execution>
                                 <id>zip-assembly</id>
diff --git a/samples/spring/pet-store/pom.xml b/samples/spring/pet-store/pom.xml
index 279c4d1fb..46efbe5d9 100644
--- a/samples/spring/pet-store/pom.xml
+++ b/samples/spring/pet-store/pom.xml
@@ -171,7 +171,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-assembly-plugin</artifactId>
-                        <version>3.6.0</version>
+                        <version>3.7.0</version>
                         <executions>
                             <execution>
                                 <id>zip-assembly</id>
diff --git a/samples/springboot3/alt-pet-store/pom.xml b/samples/springboot3/alt-pet-store/pom.xml
index 90388e15e..a2855b876 100644
--- a/samples/springboot3/alt-pet-store/pom.xml
+++ b/samples/springboot3/alt-pet-store/pom.xml
@@ -121,7 +121,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-assembly-plugin</artifactId>
-                        <version>3.6.0</version>
+                        <version>3.7.0</version>
                         <executions>
                             <execution>
                                 <id>zip-assembly</id>
diff --git a/samples/springboot3/graphql-pet-store/pom.xml b/samples/springboot3/graphql-pet-store/pom.xml
index dd28aef85..c566bfcae 100644
--- a/samples/springboot3/graphql-pet-store/pom.xml
+++ b/samples/springboot3/graphql-pet-store/pom.xml
@@ -135,7 +135,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-assembly-plugin</artifactId>
-                        <version>3.6.0</version>
+                        <version>3.7.0</version>
                         <executions>
                             <execution>
                                 <id>zip-assembly</id>
diff --git a/samples/springboot3/pet-store/pom.xml b/samples/springboot3/pet-store/pom.xml
index a4390bd9d..8bee4a39f 100644
--- a/samples/springboot3/pet-store/pom.xml
+++ b/samples/springboot3/pet-store/pom.xml
@@ -127,7 +127,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-assembly-plugin</artifactId>
-                        <version>3.6.0</version>
+                        <version>3.7.0</version>
                         <executions>
                             <execution>
                                 <id>zip-assembly</id>
diff --git a/samples/struts/pet-store/pom.xml b/samples/struts/pet-store/pom.xml
index f720e9c9a..f29dc226f 100644
--- a/samples/struts/pet-store/pom.xml
+++ b/samples/struts/pet-store/pom.xml
@@ -148,7 +148,7 @@
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-assembly-plugin</artifactId>
-                <version>3.6.0</version>
+                <version>3.7.0</version>
                 <configuration>
                     <descriptors>
                         <descriptor>src/main/assembly/dist.xml</descriptor>

From 0ba5586ae1b0c1f805251dff2dc36891a86f26c9 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Fri, 22 Mar 2024 14:16:11 +0100
Subject: [PATCH 156/430] chore(deps): Update Log4J to 2.23.1

---
 .../src/main/resources/archetype-resources/build.gradle     | 6 +++---
 .../src/main/resources/archetype-resources/pom.xml          | 2 +-
 .../src/main/resources/archetype-resources/build.gradle     | 6 +++---
 .../src/main/resources/archetype-resources/pom.xml          | 2 +-
 samples/spring/pet-store/build.gradle                       | 6 +++---
 samples/spring/pet-store/pom.xml                            | 2 +-
 samples/struts/pet-store/build.gradle                       | 4 ++--
 samples/struts/pet-store/pom.xml                            | 2 +-
 8 files changed, 15 insertions(+), 15 deletions(-)

diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
index 1bc4c4c0e..0a4d5d6b7 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
@@ -10,9 +10,9 @@ dependencies {
           'org.springframework:spring-webmvc:6.1.5',
           'org.springframework:spring-context:6.1.5',
           'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)',
-          'org.apache.logging.log4j:log4j-core:2.23.0',
-          'org.apache.logging.log4j:log4j-api:2.23.0',
-          'org.apache.logging.log4j:log4j-slf4j-impl:2.23.0',
+          'org.apache.logging.log4j:log4j-core:2.23.1',
+          'org.apache.logging.log4j:log4j-api:2.23.1',
+          'org.apache.logging.log4j:log4j-slf4j-impl:2.23.1',
           'com.fasterxml.jackson.core:jackson-databind:2.17.0',
           'com.amazonaws:aws-lambda-java-log4j2:1.6.0',
   )
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
index 1f759772b..c40b951d6 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
@@ -18,7 +18,7 @@
         <maven.compiler.target>1.8</maven.compiler.target>
         <spring.version>6.1.5</spring.version>
         <junit.version>5.10.2</junit.version>
-        <log4j.version>2.23.0</log4j.version>
+        <log4j.version>2.23.1</log4j.version>
     </properties>
 
     <dependencies>
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
index 48cecba3e..f8b3469d5 100644
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
@@ -36,9 +36,9 @@ dependencies {
   implementation ('org.hibernate.validator:hibernate-validator:6.1.7.Final')
   implementation ('com.fasterxml.jackson.core:jackson-databind:2.17.0')
   implementation ('com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.17.0')
-  implementation ('org.apache.logging.log4j:log4j-core:2.23.0')
-  implementation ('org.apache.logging.log4j:log4j-api:2.23.0')
-  implementation ('org.apache.logging.log4j:log4j-slf4j-impl:2.23.0')
+  implementation ('org.apache.logging.log4j:log4j-core:2.23.1')
+  implementation ('org.apache.logging.log4j:log4j-api:2.23.1')
+  implementation ('org.apache.logging.log4j:log4j-slf4j-impl:2.23.1')
   implementation ('com.amazonaws:aws-lambda-java-log4j2:1.6.0')
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
index fe83e8869..ad4979312 100644
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
@@ -18,7 +18,7 @@
         <struts.version>7.0.0-M3</struts.version>
         <jackson.version>2.17.0</jackson.version>
         <junit.version>5.10.2</junit.version>
-        <log4j.version>2.23.0</log4j.version>
+        <log4j.version>2.23.1</log4j.version>
     </properties>
 
     <dependencies>
diff --git a/samples/spring/pet-store/build.gradle b/samples/spring/pet-store/build.gradle
index 1a82fd4f9..304891e8f 100644
--- a/samples/spring/pet-store/build.gradle
+++ b/samples/spring/pet-store/build.gradle
@@ -10,9 +10,9 @@ dependencies {
           'org.springframework:spring-webmvc:6.1.5',
           'org.springframework:spring-context:6.1.5',
           'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)',
-          'org.apache.logging.log4j:log4j-core:2.23.0',
-          'org.apache.logging.log4j:log4j-api:2.23.0',
-          'org.apache.logging.log4j:log4j-slf4j-impl:2.23.0',
+          'org.apache.logging.log4j:log4j-core:2.23.1',
+          'org.apache.logging.log4j:log4j-api:2.23.1',
+          'org.apache.logging.log4j:log4j-slf4j-impl:2.23.1',
           'com.fasterxml.jackson.core:jackson-databind:2.17.0',
           'com.amazonaws:aws-lambda-java-log4j2:1.6.0',
   )
diff --git a/samples/spring/pet-store/pom.xml b/samples/spring/pet-store/pom.xml
index 46efbe5d9..584b96582 100644
--- a/samples/spring/pet-store/pom.xml
+++ b/samples/spring/pet-store/pom.xml
@@ -25,7 +25,7 @@
 
     <properties>
         <spring.version>6.1.5</spring.version>
-        <log4j.version>2.23.0</log4j.version>
+        <log4j.version>2.23.1</log4j.version>
         <maven.compiler.source>17</maven.compiler.source>
         <maven.compiler.target>17</maven.compiler.target>
     </properties>
diff --git a/samples/struts/pet-store/build.gradle b/samples/struts/pet-store/build.gradle
index 557a1d290..66fb4929b 100644
--- a/samples/struts/pet-store/build.gradle
+++ b/samples/struts/pet-store/build.gradle
@@ -24,8 +24,8 @@ dependencies {
           'jakarta.el:jakarta.el-api:5.0.1',
           'com.fasterxml.jackson.core:jackson-databind:2.17.0',
           'com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.17.0',
-          'org.apache.logging.log4j:log4j-core:2.23.0',
-          'org.apache.logging.log4j:log4j-api:2.23.0',
+          'org.apache.logging.log4j:log4j-core:2.23.1',
+          'org.apache.logging.log4j:log4j-api:2.23.1',
           'com.amazonaws:aws-lambda-java-log4j2:1.6.0',
   )
 }
diff --git a/samples/struts/pet-store/pom.xml b/samples/struts/pet-store/pom.xml
index f29dc226f..f854cd33d 100644
--- a/samples/struts/pet-store/pom.xml
+++ b/samples/struts/pet-store/pom.xml
@@ -29,7 +29,7 @@
         <struts.version>7.0.0-M3</struts.version>
         <jackson.version>2.17.0</jackson.version>
         <junit.version>4.13.2</junit.version>
-        <log4j.version>2.23.0</log4j.version>
+        <log4j.version>2.23.1</log4j.version>
     </properties>
 
     <dependencies>

From 10b41f5de02cf618aad688999ee92c0dcd47fdfd Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Fri, 22 Mar 2024 14:46:55 +0100
Subject: [PATCH 157/430] chore(deps): Update maven-assembly-plugin to 3.7.1

---
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 samples/jersey/pet-store/pom.xml                                | 2 +-
 samples/spring/pet-store/pom.xml                                | 2 +-
 samples/springboot3/alt-pet-store/pom.xml                       | 2 +-
 samples/springboot3/graphql-pet-store/pom.xml                   | 2 +-
 samples/springboot3/pet-store/pom.xml                           | 2 +-
 samples/struts/pet-store/pom.xml                                | 2 +-
 10 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
index f2eb920c3..a6defc76a 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
@@ -172,7 +172,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-assembly-plugin</artifactId>
-                        <version>3.7.0</version>
+                        <version>3.7.1</version>
                         <executions>
                             <execution>
                                 <id>zip-assembly</id>
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
index c40b951d6..a218c78d7 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
@@ -195,7 +195,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-assembly-plugin</artifactId>
-                        <version>3.7.0</version>
+                        <version>3.7.1</version>
                         <executions>
                             <execution>
                                 <id>zip-assembly</id>
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
index 3947c9de6..80bc10761 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
@@ -155,7 +155,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-assembly-plugin</artifactId>
-                        <version>3.7.0</version>
+                        <version>3.7.1</version>
                         <executions>
                             <execution>
                                 <id>zip-assembly</id>
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
index ad4979312..f4655f0c7 100644
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
@@ -157,7 +157,7 @@
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-assembly-plugin</artifactId>
-                <version>3.7.0</version>
+                <version>3.7.1</version>
                 <configuration>
                     <descriptors>
                         <descriptor>src/main/assembly/dist.xml</descriptor>
diff --git a/samples/jersey/pet-store/pom.xml b/samples/jersey/pet-store/pom.xml
index 7ed1aa1f5..6c7b1ed50 100644
--- a/samples/jersey/pet-store/pom.xml
+++ b/samples/jersey/pet-store/pom.xml
@@ -150,7 +150,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-assembly-plugin</artifactId>
-                        <version>3.7.0</version>
+                        <version>3.7.1</version>
                         <executions>
                             <execution>
                                 <id>zip-assembly</id>
diff --git a/samples/spring/pet-store/pom.xml b/samples/spring/pet-store/pom.xml
index 584b96582..a0803162d 100644
--- a/samples/spring/pet-store/pom.xml
+++ b/samples/spring/pet-store/pom.xml
@@ -171,7 +171,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-assembly-plugin</artifactId>
-                        <version>3.7.0</version>
+                        <version>3.7.1</version>
                         <executions>
                             <execution>
                                 <id>zip-assembly</id>
diff --git a/samples/springboot3/alt-pet-store/pom.xml b/samples/springboot3/alt-pet-store/pom.xml
index a2855b876..5dc89a9b4 100644
--- a/samples/springboot3/alt-pet-store/pom.xml
+++ b/samples/springboot3/alt-pet-store/pom.xml
@@ -121,7 +121,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-assembly-plugin</artifactId>
-                        <version>3.7.0</version>
+                        <version>3.7.1</version>
                         <executions>
                             <execution>
                                 <id>zip-assembly</id>
diff --git a/samples/springboot3/graphql-pet-store/pom.xml b/samples/springboot3/graphql-pet-store/pom.xml
index c566bfcae..6b78c1a88 100644
--- a/samples/springboot3/graphql-pet-store/pom.xml
+++ b/samples/springboot3/graphql-pet-store/pom.xml
@@ -135,7 +135,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-assembly-plugin</artifactId>
-                        <version>3.7.0</version>
+                        <version>3.7.1</version>
                         <executions>
                             <execution>
                                 <id>zip-assembly</id>
diff --git a/samples/springboot3/pet-store/pom.xml b/samples/springboot3/pet-store/pom.xml
index 8bee4a39f..5ae6787a2 100644
--- a/samples/springboot3/pet-store/pom.xml
+++ b/samples/springboot3/pet-store/pom.xml
@@ -127,7 +127,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-assembly-plugin</artifactId>
-                        <version>3.7.0</version>
+                        <version>3.7.1</version>
                         <executions>
                             <execution>
                                 <id>zip-assembly</id>
diff --git a/samples/struts/pet-store/pom.xml b/samples/struts/pet-store/pom.xml
index f854cd33d..04b43c51f 100644
--- a/samples/struts/pet-store/pom.xml
+++ b/samples/struts/pet-store/pom.xml
@@ -148,7 +148,7 @@
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-assembly-plugin</artifactId>
-                <version>3.7.0</version>
+                <version>3.7.1</version>
                 <configuration>
                     <descriptors>
                         <descriptor>src/main/assembly/dist.xml</descriptor>

From c029401a65ed1ea95d3a3886756c6ecfaa3815e5 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 25 Mar 2024 04:52:49 +0000
Subject: [PATCH 158/430] chore(deps): bump
 org.apache.maven.plugins:maven-compiler-plugin

Bumps [org.apache.maven.plugins:maven-compiler-plugin](https://github.com/apache/maven-compiler-plugin) from 3.12.1 to 3.13.0.
- [Release notes](https://github.com/apache/maven-compiler-plugin/releases)
- [Commits](https://github.com/apache/maven-compiler-plugin/compare/maven-compiler-plugin-3.12.1...maven-compiler-plugin-3.13.0)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-compiler-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 437e8ae34..622eb6b09 100644
--- a/pom.xml
+++ b/pom.xml
@@ -190,7 +190,7 @@
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-compiler-plugin</artifactId>
-                    <version>3.12.1</version>
+                    <version>3.13.0</version>
                     <configuration>
                         <source>1.8</source>
                         <target>1.8</target>

From 5857ab43dd37f11be1c950177d147800045edb1b Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 25 Mar 2024 04:52:55 +0000
Subject: [PATCH 159/430] chore(deps): bump
 org.apache.maven.plugins:maven-gpg-plugin

Bumps [org.apache.maven.plugins:maven-gpg-plugin](https://github.com/apache/maven-gpg-plugin) from 3.1.0 to 3.2.1.
- [Release notes](https://github.com/apache/maven-gpg-plugin/releases)
- [Commits](https://github.com/apache/maven-gpg-plugin/compare/maven-gpg-plugin-3.1.0...maven-gpg-plugin-3.2.1)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-gpg-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 437e8ae34..4397e6a43 100644
--- a/pom.xml
+++ b/pom.xml
@@ -292,7 +292,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-gpg-plugin</artifactId>
-                        <version>3.1.0</version>
+                        <version>3.2.1</version>
                         <executions>
                             <execution>
                                 <id>sign-artifacts</id>

From a3b98a749692cff04db15345a08a399380fb24b0 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 25 Mar 2024 04:53:02 +0000
Subject: [PATCH 160/430] chore(deps): bump org.owasp:dependency-check-maven
 from 9.0.9 to 9.0.10

Bumps [org.owasp:dependency-check-maven](https://github.com/jeremylong/DependencyCheck) from 9.0.9 to 9.0.10.
- [Release notes](https://github.com/jeremylong/DependencyCheck/releases)
- [Changelog](https://github.com/jeremylong/DependencyCheck/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jeremylong/DependencyCheck/compare/v9.0.9...v9.0.10)

---
updated-dependencies:
- dependency-name: org.owasp:dependency-check-maven
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 437e8ae34..f095ebe40 100644
--- a/pom.xml
+++ b/pom.xml
@@ -77,7 +77,7 @@
 
     <properties>
         <jacoco.minCoverage>0.7</jacoco.minCoverage>
-        <dependencyCheck.version>9.0.9</dependencyCheck.version>
+        <dependencyCheck.version>9.0.10</dependencyCheck.version>
         <jackson.version>2.17.0</jackson.version>
         <slf4j.version>2.0.12</slf4j.version>
         <junit.version>5.10.2</junit.version>

From 17afb9a418f9a66b2a91e3483fa84eed626aaa2f Mon Sep 17 00:00:00 2001
From: Oleg Zhurakousky <ozhurakousky@vmware.com>
Date: Tue, 26 Mar 2024 11:52:47 +0100
Subject: [PATCH 161/430] GH-805 Fix web context initialization during
 snapstart

Also updated to s-c-function-serverless-webb 4.1.1-SNAPSHOT
This commit forces wait for full context initialization if context is created during snapstart creation
---
 aws-serverless-java-container-springboot3/pom.xml             | 2 +-
 .../proxy/spring/SpringDelegatingLambdaContainerHandler.java  | 4 ++++
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml
index 23ceec081..def9c9015 100644
--- a/aws-serverless-java-container-springboot3/pom.xml
+++ b/aws-serverless-java-container-springboot3/pom.xml
@@ -25,7 +25,7 @@
         <dependency>
             <groupId>org.springframework.cloud</groupId>
             <artifactId>spring-cloud-function-serverless-web</artifactId>
-            <version>4.0.6</version>
+            <version>4.1.1-SNAPSHOT</version>
         </dependency>
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
diff --git a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/SpringDelegatingLambdaContainerHandler.java b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/SpringDelegatingLambdaContainerHandler.java
index f1a3b526e..56ebe8305 100644
--- a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/SpringDelegatingLambdaContainerHandler.java
+++ b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/SpringDelegatingLambdaContainerHandler.java
@@ -53,6 +53,10 @@ public SpringDelegatingLambdaContainerHandler() {
     public SpringDelegatingLambdaContainerHandler(Class<?>... startupClasses) {
         this.startupClasses = startupClasses;
         this.mvc = ServerlessMVC.INSTANCE(this.startupClasses);
+        if (System.getenv().containsKey("AWS_LAMBDA_INITIALIZATION_TYPE") 
+        		&& System.getenv().get("AWS_LAMBDA_INITIALIZATION_TYPE").equals("snap-start")) {
+    		mvc.waitForContext();
+    	}
         this.mapper = new ObjectMapper();
         this.responseWriter = new AwsProxyHttpServletResponseWriter();
     }

From bae68010a8ee07e89cfe160ada60fddf5297e8c0 Mon Sep 17 00:00:00 2001
From: Jonathan Ifegunni <jonife@amazon.com>
Date: Tue, 26 Mar 2024 15:44:51 -0700
Subject: [PATCH 162/430] Add support for Iam Authorizer

---
 .../proxy/model/HttpApiV2AuthorizerMap.java   | 32 ++++++-
 .../proxy/model/HttpApiV2IamAuthorizer.java   | 68 +++++++++++++++
 .../model/HttpApiV2ProxyRequestTest.java      | 85 +++++++++++++++++--
 3 files changed, 176 insertions(+), 9 deletions(-)
 create mode 100644 aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/model/HttpApiV2IamAuthorizer.java

diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/model/HttpApiV2AuthorizerMap.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/model/HttpApiV2AuthorizerMap.java
index 4fff028c4..2cf6d77a6 100644
--- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/model/HttpApiV2AuthorizerMap.java
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/model/HttpApiV2AuthorizerMap.java
@@ -34,16 +34,21 @@
 public class HttpApiV2AuthorizerMap extends HashMap<String, Object> {
     private static final String JWT_KEY = "jwt";
     private static final String LAMBDA_KEY = "lambda";
+    private static final String IAM_KEY = "iam";
     private static final long serialVersionUID = 42L;
 
     public HttpApiV2JwtAuthorizer getJwtAuthorizer() {
-        return (HttpApiV2JwtAuthorizer)get(JWT_KEY);
+        return (HttpApiV2JwtAuthorizer) get(JWT_KEY);
     }
 
     public Map<String, Object> getLambdaAuthorizerContext() {
         return (Map<String, Object>) get(LAMBDA_KEY);
     }
 
+    public HttpApiV2IamAuthorizer getIamAuthorizer() {
+        return (HttpApiV2IamAuthorizer) get(IAM_KEY);
+    }
+
     public boolean isJwt() {
         return containsKey(JWT_KEY);
     }
@@ -52,10 +57,18 @@ public boolean isLambda() {
         return containsKey(LAMBDA_KEY);
     }
 
+    public boolean isIam() {
+        return containsKey(IAM_KEY);
+    }
+
     public void putJwtAuthorizer(HttpApiV2JwtAuthorizer jwt) {
         put(JWT_KEY, jwt);
     }
 
+    public void putIamAuthorizer(HttpApiV2IamAuthorizer iam) {
+        put(IAM_KEY, iam);
+    }
+
     public static class HttpApiV2AuthorizerDeserializer extends StdDeserializer<HttpApiV2AuthorizerMap> {
         private static final long serialVersionUID = 42L;
 
@@ -64,11 +77,13 @@ public HttpApiV2AuthorizerDeserializer() {
         }
 
         @Override
-        public HttpApiV2AuthorizerMap deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+        public HttpApiV2AuthorizerMap deserialize(JsonParser jsonParser, DeserializationContext deserializationContext)
+                throws IOException, JsonProcessingException {
             HttpApiV2AuthorizerMap map = new HttpApiV2AuthorizerMap();
             JsonNode node = jsonParser.getCodec().readTree(jsonParser);
             if (node.has(JWT_KEY)) {
-                HttpApiV2JwtAuthorizer authorizer = LambdaContainerHandler.getObjectMapper().treeToValue(node.get(JWT_KEY), HttpApiV2JwtAuthorizer.class);
+                HttpApiV2JwtAuthorizer authorizer = LambdaContainerHandler.getObjectMapper()
+                        .treeToValue(node.get(JWT_KEY), HttpApiV2JwtAuthorizer.class);
                 map.putJwtAuthorizer(authorizer);
             }
             if (node.has(LAMBDA_KEY)) {
@@ -76,6 +91,11 @@ public HttpApiV2AuthorizerMap deserialize(JsonParser jsonParser, Deserialization
                         TypeFactory.defaultInstance().constructMapType(HashMap.class, String.class, Object.class));
                 map.put(LAMBDA_KEY, context);
             }
+            if (node.has(IAM_KEY)) {
+                HttpApiV2IamAuthorizer iam_authorizer = LambdaContainerHandler.getObjectMapper()
+                        .treeToValue(node.get(IAM_KEY), HttpApiV2IamAuthorizer.class);
+                map.putIamAuthorizer(iam_authorizer);
+            }
             // we ignore other, unknown values
             return map;
         }
@@ -89,7 +109,8 @@ public HttpApiV2AuthorizerSerializer() {
         }
 
         @Override
-        public void serialize(HttpApiV2AuthorizerMap httpApiV2AuthorizerMap, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
+        public void serialize(HttpApiV2AuthorizerMap httpApiV2AuthorizerMap, JsonGenerator jsonGenerator,
+                SerializerProvider serializerProvider) throws IOException {
             jsonGenerator.writeStartObject();
             if (httpApiV2AuthorizerMap.isJwt()) {
                 jsonGenerator.writeObjectField(JWT_KEY, httpApiV2AuthorizerMap.getJwtAuthorizer());
@@ -97,6 +118,9 @@ public void serialize(HttpApiV2AuthorizerMap httpApiV2AuthorizerMap, JsonGenerat
             if (httpApiV2AuthorizerMap.isLambda()) {
                 jsonGenerator.writeObjectField(LAMBDA_KEY, httpApiV2AuthorizerMap.getLambdaAuthorizerContext());
             }
+            if (httpApiV2AuthorizerMap.isIam()) {
+                jsonGenerator.writeObjectField(IAM_KEY, httpApiV2AuthorizerMap.get(IAM_KEY));
+            }
             jsonGenerator.writeEndObject();
         }
     }
diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/model/HttpApiV2IamAuthorizer.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/model/HttpApiV2IamAuthorizer.java
new file mode 100644
index 000000000..d2a0952ec
--- /dev/null
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/model/HttpApiV2IamAuthorizer.java
@@ -0,0 +1,68 @@
+package com.amazonaws.serverless.proxy.model;
+
+public class HttpApiV2IamAuthorizer {
+    public String accessKey;
+    public String accountId;
+    public String callerId;
+    public String cognitoIdentity;
+    public String principalOrgId;
+    public String userArn;
+    public String userId;
+
+    public String getAccessKey() {
+        return accessKey;
+    }
+
+    public String getAccountId() {
+        return accountId;
+    }
+
+    public String getCallerId() {
+        return callerId;
+    }
+
+    public String getCognitoIdentity() {
+        return cognitoIdentity;
+    }
+
+    public String getPrincipalOrgId() {
+        return principalOrgId;
+    }
+
+    public String getUserArn() {
+        return userArn;
+    }
+
+    public String getUserId() {
+        return userId;
+    }
+
+    public void setAccessKey(String accessKey) {
+        this.accessKey = accessKey;
+    }
+
+    public void setAccountId(String accountId) {
+        this.accountId = accountId;
+    }
+
+    public void setCallerId(String callerId) {
+        this.callerId = callerId;
+    }
+
+    public void setCognitoIdentity(String cognitoIdentity) {
+        this.cognitoIdentity = cognitoIdentity;
+    }
+
+    public void setPrincipalOrgId(String principalOrgId) {
+        this.principalOrgId = principalOrgId;
+    }
+
+    public void setUserArn(String userArn) {
+        this.userArn = userArn;
+    }
+
+    public void setUserId(String userId) {
+        this.userId = userId;
+    }
+
+}
\ No newline at end of file
diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/model/HttpApiV2ProxyRequestTest.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/model/HttpApiV2ProxyRequestTest.java
index 3aa7cfdfc..20ff4dff2 100644
--- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/model/HttpApiV2ProxyRequestTest.java
+++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/model/HttpApiV2ProxyRequestTest.java
@@ -129,11 +129,55 @@ public class HttpApiV2ProxyRequestTest {
             "      \"isBase64Encoded\": false,\n" +
             "      \"stageVariables\": {\"stageVariable1\": \"value1\", \"stageVariable2\": \"value2\"}\n" +
             "    }\n";
+    private static final String IAM_AUTHORIZER = "{\n" +
+            "      \"version\": \"2.0\",\n" +
+            "      \"routeKey\": \"$default\",\n" +
+            "      \"rawPath\": \"/my/path\",\n" +
+            "      \"rawQueryString\": \"parameter1=value1&parameter1=value2&parameter2=value\",\n" +
+            "      \"cookies\": [ \"cookie1\", \"cookie2\" ],\n" +
+            "      \"headers\": {\n" +
+            "        \"Header1\": \"value1\",\n" +
+            "        \"Header2\": \"value2\"\n" +
+            "      },\n" +
+            "      \"queryStringParameters\": { \"parameter1\": \"value1,value2\", \"parameter2\": \"value\" },\n" +
+            "      \"requestContext\": {\n" +
+            "        \"accountId\": \"123456789012\",\n" +
+            "        \"apiId\": \"api-id\",\n" +
+            "        \"authorizer\": {  \"iam\": {\n" +
+            "           \"accessKey\": \"AKIAIOSFODNN7EXAMPLE\",\n" +
+            "           \"accountId\": \"123456789012\",\n" +
+            "           \"callerId\": \"AIDACKCEVSQ6C2EXAMPLE\",\n" +
+            "           \"cognitoIdentity\": null,\n" +
+            "           \"principalOrgId\": \"AIDACKCEVSQORGEXAMPLE\",\n" +
+            "           \"userArn\": \"arn:aws:iam::111122223333:user/example-user\",\n" +
+            "           \"userId\": \"AIDACOSFODNN7EXAMPLE2\"\n" +
+            "           }" +
+            "        },\n" +
+            "        \"domainName\": \"id.execute-api.us-east-1.amazonaws.com\",\n" +
+            "        \"domainPrefix\": \"id\",\n" +
+            "        \"http\": {\n" +
+            "          \"method\": \"POST\",\n" +
+            "          \"path\": \"/my/path\",\n" +
+            "          \"protocol\": \"HTTP/1.1\",\n" +
+            "          \"sourceIp\": \"IP\",\n" +
+            "          \"userAgent\": \"agent\"\n" +
+            "        },\n" +
+            "        \"requestId\": \"id\",\n" +
+            "        \"routeKey\": \"$default\",\n" +
+            "        \"stage\": \"$default\",\n" +
+            "        \"time\": \"12/Mar/2020:19:03:58 +0000\",\n" +
+            "        \"timeEpoch\": 1583348638390\n" +
+            "      },\n" +
+            "      \"body\": \"Hello from Lambda\",\n" +
+            "      \"isBase64Encoded\": false,\n" +
+            "      \"stageVariables\": {\"stageVariable1\": \"value1\", \"stageVariable2\": \"value2\"}\n" +
+            "    }\n";
 
     @Test
     void deserialize_fromJsonString_authorizerPopulatedCorrectly() {
         try {
-            HttpApiV2ProxyRequest req = LambdaContainerHandler.getObjectMapper().readValue(BASE_PROXY_REQUEST, HttpApiV2ProxyRequest.class);
+            HttpApiV2ProxyRequest req = LambdaContainerHandler.getObjectMapper().readValue(BASE_PROXY_REQUEST,
+                    HttpApiV2ProxyRequest.class);
             assertTrue(req.getRequestContext().getAuthorizer().getJwtAuthorizer().getClaims().containsKey("claim1"));
             assertEquals(2, req.getRequestContext().getAuthorizer().getJwtAuthorizer().getScopes().size());
             assertEquals(RequestSource.API_GATEWAY, req.getRequestSource());
@@ -146,10 +190,12 @@ void deserialize_fromJsonString_authorizerPopulatedCorrectly() {
     @Test
     void deserialize_fromJsonString_authorizerEmptyMap() {
         try {
-            HttpApiV2ProxyRequest req = LambdaContainerHandler.getObjectMapper().readValue(NO_AUTH_PROXY, HttpApiV2ProxyRequest.class);
+            HttpApiV2ProxyRequest req = LambdaContainerHandler.getObjectMapper().readValue(NO_AUTH_PROXY,
+                    HttpApiV2ProxyRequest.class);
             assertNotNull(req.getRequestContext().getAuthorizer());
             assertFalse(req.getRequestContext().getAuthorizer().isJwt());
             assertFalse(req.getRequestContext().getAuthorizer().isLambda());
+            assertFalse(req.getRequestContext().getAuthorizer().isIam());
         } catch (JsonProcessingException e) {
             e.printStackTrace();
             fail("Exception while parsing request" + e.getMessage());
@@ -159,7 +205,8 @@ void deserialize_fromJsonString_authorizerEmptyMap() {
     @Test
     void deserialize_fromJsonString_lambdaAuthorizer() {
         try {
-            HttpApiV2ProxyRequest req = LambdaContainerHandler.getObjectMapper().readValue(LAMBDA_AUTHORIZER, HttpApiV2ProxyRequest.class);
+            HttpApiV2ProxyRequest req = LambdaContainerHandler.getObjectMapper().readValue(LAMBDA_AUTHORIZER,
+                    HttpApiV2ProxyRequest.class);
             assertNotNull(req.getRequestContext().getAuthorizer());
             assertFalse(req.getRequestContext().getAuthorizer().isJwt());
             assertTrue(req.getRequestContext().getAuthorizer().isLambda());
@@ -171,10 +218,38 @@ void deserialize_fromJsonString_lambdaAuthorizer() {
         }
     }
 
+    @Test
+    void deserialize_fromJsonString_iamAuthorizer() {
+        try {
+            HttpApiV2ProxyRequest req = LambdaContainerHandler.getObjectMapper().readValue(IAM_AUTHORIZER,
+                    HttpApiV2ProxyRequest.class);
+            assertNotNull(req.getRequestContext().getAuthorizer());
+            assertFalse(req.getRequestContext().getAuthorizer().isJwt());
+            assertFalse(req.getRequestContext().getAuthorizer().isLambda());
+            assertTrue(req.getRequestContext().getAuthorizer().isIam());
+            assertEquals("AKIAIOSFODNN7EXAMPLE",
+                    req.getRequestContext().getAuthorizer().getIamAuthorizer().getAccessKey());
+            assertEquals("123456789012", req.getRequestContext().getAuthorizer().getIamAuthorizer().getAccountId());
+            assertEquals("AIDACKCEVSQ6C2EXAMPLE",
+                    req.getRequestContext().getAuthorizer().getIamAuthorizer().getCallerId());
+            assertNull(req.getRequestContext().getAuthorizer().getIamAuthorizer().getCognitoIdentity());
+            assertEquals("AIDACKCEVSQORGEXAMPLE",
+                    req.getRequestContext().getAuthorizer().getIamAuthorizer().getPrincipalOrgId());
+            assertEquals("arn:aws:iam::111122223333:user/example-user",
+                    req.getRequestContext().getAuthorizer().getIamAuthorizer().getUserArn());
+            assertEquals("AIDACOSFODNN7EXAMPLE2",
+                    req.getRequestContext().getAuthorizer().getIamAuthorizer().getUserId());
+        } catch (JsonProcessingException e) {
+            e.printStackTrace();
+            fail("Exception while parsing request" + e.getMessage());
+        }
+    }
+
     @Test
     void deserialize_fromJsonString_isBase64EncodedPopulates() {
         try {
-            HttpApiV2ProxyRequest req = LambdaContainerHandler.getObjectMapper().readValue(BASE_PROXY_REQUEST, HttpApiV2ProxyRequest.class);
+            HttpApiV2ProxyRequest req = LambdaContainerHandler.getObjectMapper().readValue(BASE_PROXY_REQUEST,
+                    HttpApiV2ProxyRequest.class);
             assertFalse(req.isBase64Encoded());
             req = LambdaContainerHandler.getObjectMapper().readValue(NO_AUTH_PROXY, HttpApiV2ProxyRequest.class);
             assertTrue(req.isBase64Encoded());
@@ -207,4 +282,4 @@ void serialize_toJsonString_authorizerPopulatesCorrectly() {
             fail("Exception while serializing request" + e.getMessage());
         }
     }
-}
+}
\ No newline at end of file

From 79f2f49dbe9327de203921aeac75c330af678ffa Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 1 Apr 2024 04:16:00 +0000
Subject: [PATCH 163/430] chore(deps): bump org.owasp:dependency-check-maven
 from 9.0.10 to 9.1.0

Bumps [org.owasp:dependency-check-maven](https://github.com/jeremylong/DependencyCheck) from 9.0.10 to 9.1.0.
- [Release notes](https://github.com/jeremylong/DependencyCheck/releases)
- [Changelog](https://github.com/jeremylong/DependencyCheck/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jeremylong/DependencyCheck/compare/v9.0.10...v9.1.0)

---
updated-dependencies:
- dependency-name: org.owasp:dependency-check-maven
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 5e81487ec..44a8ad306 100644
--- a/pom.xml
+++ b/pom.xml
@@ -77,7 +77,7 @@
 
     <properties>
         <jacoco.minCoverage>0.7</jacoco.minCoverage>
-        <dependencyCheck.version>9.0.10</dependencyCheck.version>
+        <dependencyCheck.version>9.1.0</dependencyCheck.version>
         <jackson.version>2.17.0</jackson.version>
         <slf4j.version>2.0.12</slf4j.version>
         <junit.version>5.10.2</junit.version>

From 1469b1dc11a86f1a6a3b0a0f21db590df300fbc8 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 1 Apr 2024 04:16:19 +0000
Subject: [PATCH 164/430] chore(deps): bump
 org.apache.maven.plugins:maven-gpg-plugin

Bumps [org.apache.maven.plugins:maven-gpg-plugin](https://github.com/apache/maven-gpg-plugin) from 3.2.1 to 3.2.2.
- [Release notes](https://github.com/apache/maven-gpg-plugin/releases)
- [Commits](https://github.com/apache/maven-gpg-plugin/compare/maven-gpg-plugin-3.2.1...maven-gpg-plugin-3.2.2)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-gpg-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 5e81487ec..13e6daf65 100644
--- a/pom.xml
+++ b/pom.xml
@@ -292,7 +292,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-gpg-plugin</artifactId>
-                        <version>3.2.1</version>
+                        <version>3.2.2</version>
                         <executions>
                             <execution>
                                 <id>sign-artifacts</id>

From 82340e139f6f23cff101960bb462a56ef7bbb036 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Thu, 4 Apr 2024 15:09:35 +0200
Subject: [PATCH 165/430] chore(deps): Update to
 spring-cloud-function-serverless-web 4.1.1 release

---
 aws-serverless-java-container-springboot3/pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml
index def9c9015..50a4f5422 100644
--- a/aws-serverless-java-container-springboot3/pom.xml
+++ b/aws-serverless-java-container-springboot3/pom.xml
@@ -25,7 +25,7 @@
         <dependency>
             <groupId>org.springframework.cloud</groupId>
             <artifactId>spring-cloud-function-serverless-web</artifactId>
-            <version>4.1.1-SNAPSHOT</version>
+            <version>4.1.1</version>
         </dependency>
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>

From 2d3174cfd300f061f9ddd0b44d317a3d90b7bd93 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Thu, 4 Apr 2024 15:20:48 +0200
Subject: [PATCH 166/430] fix: Reinitialization of Spring context when using
 SnapStart #805

---
 .../proxy/AsyncInitializationWrapper.java     | 14 +++-----
 .../proxy/InitializationTypeHelper.java       | 33 +++++++++++++++++++
 ...pringDelegatingLambdaContainerHandler.java |  4 +--
 3 files changed, 40 insertions(+), 11 deletions(-)
 create mode 100644 aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/InitializationTypeHelper.java

diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/AsyncInitializationWrapper.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/AsyncInitializationWrapper.java
index 57f4e8a06..12e1590ab 100644
--- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/AsyncInitializationWrapper.java
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/AsyncInitializationWrapper.java
@@ -41,17 +41,13 @@ public class AsyncInitializationWrapper extends InitializationWrapper {
 
     private static final int DEFAULT_INIT_GRACE_TIME_MS = 150;
     private static final String INIT_GRACE_TIME_ENVIRONMENT_VARIABLE_NAME = "AWS_SERVERLESS_JAVA_CONTAINER_INIT_GRACE_TIME";
-    private static final String INITIALIZATION_TYPE_ENVIRONMENT_VARIABLE_NAME = "AWS_LAMBDA_INITIALIZATION_TYPE";
-    private static final String INITIALIZATION_TYPE_ON_DEMAND = "on-demand";
-    private static final String INITIALIZATION_TYPE = System.getenv().getOrDefault(INITIALIZATION_TYPE_ENVIRONMENT_VARIABLE_NAME,INITIALIZATION_TYPE_ON_DEMAND);
-    private static final boolean ASYNC_INIT_DISABLED = !INITIALIZATION_TYPE.equals(INITIALIZATION_TYPE_ON_DEMAND);
     private static final int INIT_GRACE_TIME_MS = Integer.parseInt(System.getenv().getOrDefault(
             INIT_GRACE_TIME_ENVIRONMENT_VARIABLE_NAME, Integer.toString(DEFAULT_INIT_GRACE_TIME_MS)));
     private static final int LAMBDA_MAX_INIT_TIME_MS = 10_000;
 
     private CountDownLatch initializationLatch;
     private final long actualStartTime;
-    private Logger log = LoggerFactory.getLogger(AsyncInitializationWrapper.class);
+    private final Logger log = LoggerFactory.getLogger(AsyncInitializationWrapper.class);
 
 
     /**
@@ -73,8 +69,8 @@ public AsyncInitializationWrapper() {
 
     @Override
     public void start(InitializableLambdaContainerHandler handler) throws ContainerInitializationException {
-        if(ASYNC_INIT_DISABLED){
-            log.info("Async init disabled due to \"{}\" initialization", INITIALIZATION_TYPE);
+        if (InitializationTypeHelper.isAsyncInitializationDisabled()){
+            log.info("Async init disabled due to \"{}\" initialization", InitializationTypeHelper.getInitializationType());
             super.start(handler);
             return;
         }
@@ -107,7 +103,7 @@ public long getActualStartTimeMs() {
 
     @Override
     public CountDownLatch getInitializationLatch() {
-        if (ASYNC_INIT_DISABLED){
+        if (InitializationTypeHelper.isAsyncInitializationDisabled()){
             return super.getInitializationLatch();
         }
         return initializationLatch;
@@ -116,7 +112,7 @@ public CountDownLatch getInitializationLatch() {
     private static class AsyncInitializer implements Runnable {
         private final InitializableLambdaContainerHandler handler;
         private CountDownLatch initLatch;
-        private Logger log = LoggerFactory.getLogger(AsyncInitializationWrapper.class);
+        private final Logger log = LoggerFactory.getLogger(AsyncInitializationWrapper.class);
 
         AsyncInitializer(CountDownLatch latch, InitializableLambdaContainerHandler h) {
             initLatch = latch;
diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/InitializationTypeHelper.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/InitializationTypeHelper.java
new file mode 100644
index 000000000..c40c5ecca
--- /dev/null
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/InitializationTypeHelper.java
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2024 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance
+ * with the License. A copy of the License is located at
+ *
+ * http://aws.amazon.com/apache2.0/
+ *
+ * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES
+ * OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
+ * and limitations under the License.
+ */
+package com.amazonaws.serverless.proxy;
+
+/**
+ * Utility class that helps determine the initialization type
+ */
+public final class InitializationTypeHelper {
+
+    private static final String INITIALIZATION_TYPE_ENVIRONMENT_VARIABLE_NAME = "AWS_LAMBDA_INITIALIZATION_TYPE";
+    private static final String INITIALIZATION_TYPE_ON_DEMAND = "on-demand";
+    private static final String INITIALIZATION_TYPE = System.getenv().getOrDefault(INITIALIZATION_TYPE_ENVIRONMENT_VARIABLE_NAME,
+            INITIALIZATION_TYPE_ON_DEMAND);
+    private static final boolean ASYNC_INIT_DISABLED = !INITIALIZATION_TYPE.equals(INITIALIZATION_TYPE_ON_DEMAND);
+
+    public static boolean isAsyncInitializationDisabled() {
+        return ASYNC_INIT_DISABLED;
+    }
+
+    public static String getInitializationType() {
+        return INITIALIZATION_TYPE;
+    }
+}
diff --git a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/SpringDelegatingLambdaContainerHandler.java b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/SpringDelegatingLambdaContainerHandler.java
index 56ebe8305..1af435c0f 100644
--- a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/SpringDelegatingLambdaContainerHandler.java
+++ b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/SpringDelegatingLambdaContainerHandler.java
@@ -4,6 +4,7 @@
 import java.io.InputStream;
 import java.io.OutputStream;
 
+import com.amazonaws.serverless.proxy.InitializationTypeHelper;
 import com.amazonaws.serverless.proxy.model.AwsProxyResponse;
 import org.springframework.cloud.function.serverless.web.FunctionClassUtils;
 import org.springframework.cloud.function.serverless.web.ServerlessMVC;
@@ -53,8 +54,7 @@ public SpringDelegatingLambdaContainerHandler() {
     public SpringDelegatingLambdaContainerHandler(Class<?>... startupClasses) {
         this.startupClasses = startupClasses;
         this.mvc = ServerlessMVC.INSTANCE(this.startupClasses);
-        if (System.getenv().containsKey("AWS_LAMBDA_INITIALIZATION_TYPE") 
-        		&& System.getenv().get("AWS_LAMBDA_INITIALIZATION_TYPE").equals("snap-start")) {
+        if (InitializationTypeHelper.isAsyncInitializationDisabled()) {
     		mvc.waitForContext();
     	}
         this.mapper = new ObjectMapper();

From c0551dd0f752ef05bd90fcad86e8413c7dd86ee4 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 8 Apr 2024 04:57:30 +0000
Subject: [PATCH 167/430] chore(deps): bump org.jacoco:jacoco-maven-plugin from
 0.8.11 to 0.8.12

Bumps [org.jacoco:jacoco-maven-plugin](https://github.com/jacoco/jacoco) from 0.8.11 to 0.8.12.
- [Release notes](https://github.com/jacoco/jacoco/releases)
- [Commits](https://github.com/jacoco/jacoco/compare/v0.8.11...v0.8.12)

---
updated-dependencies:
- dependency-name: org.jacoco:jacoco-maven-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 52d0f19a7..59a1c2f2f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -278,7 +278,7 @@
                 <plugin>
                     <groupId>org.jacoco</groupId>
                     <artifactId>jacoco-maven-plugin</artifactId>
-                    <version>0.8.11</version>
+                    <version>0.8.12</version>
                 </plugin>
             </plugins>
         </pluginManagement>

From 07ade4bd8eaefee50e3757e6e6aa282da4ae883b Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 8 Apr 2024 04:57:33 +0000
Subject: [PATCH 168/430] chore(deps): bump
 org.apache.maven.plugins:maven-source-plugin

Bumps [org.apache.maven.plugins:maven-source-plugin](https://github.com/apache/maven-source-plugin) from 3.3.0 to 3.3.1.
- [Commits](https://github.com/apache/maven-source-plugin/compare/maven-source-plugin-3.3.0...maven-source-plugin-3.3.1)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-source-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 52d0f19a7..d0a5c5586 100644
--- a/pom.xml
+++ b/pom.xml
@@ -318,7 +318,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-source-plugin</artifactId>
-                        <version>3.3.0</version>
+                        <version>3.3.1</version>
                         <executions>
                             <execution>
                                 <id>attach-sources</id>

From 928cd123be1424dda9eaae6b898faa12ea80b8e5 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 8 Apr 2024 04:57:39 +0000
Subject: [PATCH 169/430] chore(deps): bump
 com.github.spotbugs:spotbugs-annotations

Bumps [com.github.spotbugs:spotbugs-annotations](https://github.com/spotbugs/spotbugs) from 4.8.3 to 4.8.4.
- [Release notes](https://github.com/spotbugs/spotbugs/releases)
- [Changelog](https://github.com/spotbugs/spotbugs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/spotbugs/spotbugs/compare/4.8.3...4.8.4)

---
updated-dependencies:
- dependency-name: com.github.spotbugs:spotbugs-annotations
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 52d0f19a7..453be633c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -140,7 +140,7 @@
         <dependency>
             <groupId>com.github.spotbugs</groupId>
             <artifactId>spotbugs-annotations</artifactId>
-            <version>4.8.3</version>
+            <version>4.8.4</version>
             <scope>provided</scope>
         </dependency>
     </dependencies>

From 1ad9d575ba53ad322fea7a9b59e4a08ad3e54cc3 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Mon, 8 Apr 2024 09:23:58 +0200
Subject: [PATCH 170/430] chore(deps): Update Jersey to 3.1.6

---
 aws-serverless-java-container-jersey/pom.xml                  | 2 +-
 .../src/main/resources/archetype-resources/build.gradle       | 4 ++--
 .../src/main/resources/archetype-resources/pom.xml            | 2 +-
 samples/jersey/pet-store/build.gradle                         | 4 ++--
 samples/jersey/pet-store/pom.xml                              | 2 +-
 5 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/aws-serverless-java-container-jersey/pom.xml b/aws-serverless-java-container-jersey/pom.xml
index 683ff7e7c..f93cee62a 100644
--- a/aws-serverless-java-container-jersey/pom.xml
+++ b/aws-serverless-java-container-jersey/pom.xml
@@ -16,7 +16,7 @@
     </parent>
 
     <properties>
-        <jersey.version>3.1.5</jersey.version>
+        <jersey.version>3.1.6</jersey.version>
     </properties>
 
     <dependencies>
diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
index d4a6549ba..9bcd5f819 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
@@ -11,13 +11,13 @@ dependencies {
           'com.fasterxml.jackson.core:jackson-databind:2.17.0',
   )
 
-  implementation("org.glassfish.jersey.media:jersey-media-json-jackson:3.1.5") {
+  implementation("org.glassfish.jersey.media:jersey-media-json-jackson:3.1.6") {
     exclude group: 'com.fasterxml.jackson.core', module: "jackson-annotations"
     exclude group: 'com.fasterxml.jackson.core', module: "jackson-databind"
     exclude group: 'com.fasterxml.jackson.core', module: "jackson-core"
   }
 
-  implementation("org.glassfish.jersey.inject:jersey-hk2:3.1.5") {
+  implementation("org.glassfish.jersey.inject:jersey-hk2:3.1.6") {
     exclude group: 'javax.inject', module: "javax.inject"
   }
 
diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
index a6defc76a..54654aeef 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
@@ -15,7 +15,7 @@
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
 
-        <jersey.version>3.1.5</jersey.version>
+        <jersey.version>3.1.6</jersey.version>
         <jackson.version>2.17.0</jackson.version>
         <junit.version>5.10.2</junit.version>
     </properties>
diff --git a/samples/jersey/pet-store/build.gradle b/samples/jersey/pet-store/build.gradle
index 9d9b88465..04755d37f 100644
--- a/samples/jersey/pet-store/build.gradle
+++ b/samples/jersey/pet-store/build.gradle
@@ -11,13 +11,13 @@ dependencies {
           'com.fasterxml.jackson.core:jackson-databind:2.17.0',
   )
 
-  implementation("org.glassfish.jersey.media:jersey-media-json-jackson:3.1.5") {
+  implementation("org.glassfish.jersey.media:jersey-media-json-jackson:3.1.6") {
     exclude group: 'com.fasterxml.jackson.core', module: "jackson-annotations"
     exclude group: 'com.fasterxml.jackson.core', module: "jackson-databind"
     exclude group: 'com.fasterxml.jackson.core', module: "jackson-core"
   }
 
-  implementation("org.glassfish.jersey.inject:jersey-hk2:3.1.5") {
+  implementation("org.glassfish.jersey.inject:jersey-hk2:3.1.6") {
     exclude group: 'javax.inject', module: "javax.inject"
   }
 }
diff --git a/samples/jersey/pet-store/pom.xml b/samples/jersey/pet-store/pom.xml
index 6c7b1ed50..5bf6da30d 100644
--- a/samples/jersey/pet-store/pom.xml
+++ b/samples/jersey/pet-store/pom.xml
@@ -26,7 +26,7 @@
     <properties>
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
-        <jersey.version>3.1.5</jersey.version>
+        <jersey.version>3.1.6</jersey.version>
         <jackson.version>2.17.0</jackson.version>
     </properties>
 

From efd68be7438b99bf8071515789f6582e108dd61f Mon Sep 17 00:00:00 2001
From: deki <deki@users.noreply.github.com>
Date: Mon, 8 Apr 2024 08:41:37 +0000
Subject: [PATCH 171/430] chore: release - prepare release
 aws-serverless-java-container-2.0.1

---
 aws-serverless-java-container-core/pom.xml        | 4 ++--
 aws-serverless-java-container-jersey/pom.xml      | 8 ++++----
 aws-serverless-java-container-spring/pom.xml      | 8 ++++----
 aws-serverless-java-container-springboot3/pom.xml | 8 ++++----
 aws-serverless-jersey-archetype/pom.xml           | 6 +++---
 aws-serverless-spring-archetype/pom.xml           | 6 +++---
 aws-serverless-springboot3-archetype/pom.xml      | 6 +++---
 pom.xml                                           | 4 ++--
 8 files changed, 25 insertions(+), 25 deletions(-)

diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml
index 05e2f75d9..0e9c9e65f 100644
--- a/aws-serverless-java-container-core/pom.xml
+++ b/aws-serverless-java-container-core/pom.xml
@@ -6,12 +6,12 @@
     <name>AWS Serverless Java container support - Core</name>
     <description>Allows Java applications written for a servlet container to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.1.0-SNAPSHOT</version>
+    <version>2.0.1</version>
 
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.1.0-SNAPSHOT</version>
+        <version>2.0.1</version>
         <relativePath>..</relativePath>
     </parent>
 
diff --git a/aws-serverless-java-container-jersey/pom.xml b/aws-serverless-java-container-jersey/pom.xml
index f93cee62a..95ae04d52 100644
--- a/aws-serverless-java-container-jersey/pom.xml
+++ b/aws-serverless-java-container-jersey/pom.xml
@@ -6,12 +6,12 @@
     <name>AWS Serverless Java container support - Jersey implementation</name>
     <description>Allows Java applications written for Jersey to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.1.0-SNAPSHOT</version>
+    <version>2.0.1</version>
 
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.1.0-SNAPSHOT</version>
+        <version>2.0.1</version>
         <relativePath>..</relativePath>
     </parent>
 
@@ -24,7 +24,7 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.1.0-SNAPSHOT</version>
+            <version>2.0.1</version>
             <exclusions>
                 <exclusion>
                     <groupId>com.fasterxml.jackson.core</groupId>
@@ -35,7 +35,7 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.1.0-SNAPSHOT</version>
+            <version>2.0.1</version>
             <classifier>tests</classifier>
             <type>test-jar</type>
             <scope>test</scope>
diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml
index 665470224..129a280b3 100644
--- a/aws-serverless-java-container-spring/pom.xml
+++ b/aws-serverless-java-container-spring/pom.xml
@@ -6,12 +6,12 @@
     <name>AWS Serverless Java container support - Spring implementation</name>
     <description>Allows Java applications written for the Spring framework to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.1.0-SNAPSHOT</version>
+    <version>2.0.1</version>
 
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.1.0-SNAPSHOT</version>
+        <version>2.0.1</version>
         <relativePath>..</relativePath>
     </parent>
 
@@ -25,12 +25,12 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.1.0-SNAPSHOT</version>
+            <version>2.0.1</version>
         </dependency>
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.1.0-SNAPSHOT</version>
+            <version>2.0.1</version>
             <classifier>tests</classifier>
             <type>test-jar</type>
             <scope>test</scope>
diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml
index 50a4f5422..b0192475c 100644
--- a/aws-serverless-java-container-springboot3/pom.xml
+++ b/aws-serverless-java-container-springboot3/pom.xml
@@ -3,7 +3,7 @@
     <parent>
         <artifactId>aws-serverless-java-container</artifactId>
         <groupId>com.amazonaws.serverless</groupId>
-        <version>2.1.0-SNAPSHOT</version>
+        <version>2.0.1</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
@@ -12,7 +12,7 @@
     <name>AWS Serverless Java container support - SpringBoot 3 implementation</name>
     <description>Allows Java applications written for SpringBoot 3 to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.1.0-SNAPSHOT</version>
+    <version>2.0.1</version>
 
     <properties>
         <spring.version>6.1.5</spring.version>
@@ -30,12 +30,12 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.1.0-SNAPSHOT</version>
+            <version>2.0.1</version>
         </dependency>
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.1.0-SNAPSHOT</version>
+            <version>2.0.1</version>
             <classifier>tests</classifier>
             <type>test-jar</type>
             <scope>test</scope>
diff --git a/aws-serverless-jersey-archetype/pom.xml b/aws-serverless-jersey-archetype/pom.xml
index f4ae15675..186b23a2f 100644
--- a/aws-serverless-jersey-archetype/pom.xml
+++ b/aws-serverless-jersey-archetype/pom.xml
@@ -4,17 +4,17 @@
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.1.0-SNAPSHOT</version>
+        <version>2.0.1</version>
     </parent>
 
     <groupId>com.amazonaws.serverless.archetypes</groupId>
     <artifactId>aws-serverless-jersey-archetype</artifactId>
-    <version>2.1.0-SNAPSHOT</version>
+    <version>2.0.1</version>
     <packaging>maven-archetype</packaging>
 
     <scm>
         <url>https://github.com/aws/serverless-java-container.git</url>
-      <tag>HEAD</tag>
+      <tag>aws-serverless-java-container-2.0.1</tag>
   </scm>
 
     <licenses>
diff --git a/aws-serverless-spring-archetype/pom.xml b/aws-serverless-spring-archetype/pom.xml
index 07c5e4e90..77bec6e3f 100644
--- a/aws-serverless-spring-archetype/pom.xml
+++ b/aws-serverless-spring-archetype/pom.xml
@@ -4,17 +4,17 @@
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.1.0-SNAPSHOT</version>
+        <version>2.0.1</version>
     </parent>
 
     <groupId>com.amazonaws.serverless.archetypes</groupId>
     <artifactId>aws-serverless-spring-archetype</artifactId>
-    <version>2.1.0-SNAPSHOT</version>
+    <version>2.0.1</version>
     <packaging>maven-archetype</packaging>
 
     <scm>
         <url>https://github.com/aws/serverless-java-container.git</url>
-      <tag>HEAD</tag>
+      <tag>aws-serverless-java-container-2.0.1</tag>
   </scm>
 
     <licenses>
diff --git a/aws-serverless-springboot3-archetype/pom.xml b/aws-serverless-springboot3-archetype/pom.xml
index a1057f354..efde5bb27 100644
--- a/aws-serverless-springboot3-archetype/pom.xml
+++ b/aws-serverless-springboot3-archetype/pom.xml
@@ -4,17 +4,17 @@
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.1.0-SNAPSHOT</version>
+        <version>2.0.1</version>
     </parent>
 
     <groupId>com.amazonaws.serverless.archetypes</groupId>
     <artifactId>aws-serverless-springboot3-archetype</artifactId>
-    <version>2.1.0-SNAPSHOT</version>
+    <version>2.0.1</version>
     <packaging>maven-archetype</packaging>
 
     <scm>
         <url>https://github.com/aws/serverless-java-container.git</url>
-      <tag>HEAD</tag>
+      <tag>aws-serverless-java-container-2.0.1</tag>
   </scm>
 
     <licenses>
diff --git a/pom.xml b/pom.xml
index 24d8afe19..836490d0e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
     <groupId>com.amazonaws.serverless</groupId>
     <artifactId>aws-serverless-java-container</artifactId>
     <packaging>pom</packaging>
-    <version>2.1.0-SNAPSHOT</version>
+    <version>2.0.1</version>
     <name>AWS Serverless Java container</name>
     <description>A Java framework to run Spring, Spring Boot, Jersey, Spark, and Struts applications inside AWS Lambda</description>
     <url>https://github.com/aws/serverless-java-container</url>
@@ -37,7 +37,7 @@
     <scm>
         <url>https://github.com/aws/serverless-java-container</url>
         <connection>scm:git:https://github.com/aws/serverless-java-container.git</connection>
-      <tag>HEAD</tag>
+      <tag>aws-serverless-java-container-2.0.1</tag>
     </scm>
 
     <repositories>

From cec132c75e5f64b54c7c98abffd22cec69d6a36c Mon Sep 17 00:00:00 2001
From: deki <deki@users.noreply.github.com>
Date: Mon, 8 Apr 2024 08:41:38 +0000
Subject: [PATCH 172/430] chore: release - prepare for next development
 iteration

---
 aws-serverless-java-container-core/pom.xml        | 4 ++--
 aws-serverless-java-container-jersey/pom.xml      | 8 ++++----
 aws-serverless-java-container-spring/pom.xml      | 8 ++++----
 aws-serverless-java-container-springboot3/pom.xml | 8 ++++----
 aws-serverless-jersey-archetype/pom.xml           | 6 +++---
 aws-serverless-spring-archetype/pom.xml           | 6 +++---
 aws-serverless-springboot3-archetype/pom.xml      | 6 +++---
 pom.xml                                           | 4 ++--
 8 files changed, 25 insertions(+), 25 deletions(-)

diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml
index 0e9c9e65f..05e2f75d9 100644
--- a/aws-serverless-java-container-core/pom.xml
+++ b/aws-serverless-java-container-core/pom.xml
@@ -6,12 +6,12 @@
     <name>AWS Serverless Java container support - Core</name>
     <description>Allows Java applications written for a servlet container to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.0.1</version>
+    <version>2.1.0-SNAPSHOT</version>
 
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.0.1</version>
+        <version>2.1.0-SNAPSHOT</version>
         <relativePath>..</relativePath>
     </parent>
 
diff --git a/aws-serverless-java-container-jersey/pom.xml b/aws-serverless-java-container-jersey/pom.xml
index 95ae04d52..f93cee62a 100644
--- a/aws-serverless-java-container-jersey/pom.xml
+++ b/aws-serverless-java-container-jersey/pom.xml
@@ -6,12 +6,12 @@
     <name>AWS Serverless Java container support - Jersey implementation</name>
     <description>Allows Java applications written for Jersey to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.0.1</version>
+    <version>2.1.0-SNAPSHOT</version>
 
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.0.1</version>
+        <version>2.1.0-SNAPSHOT</version>
         <relativePath>..</relativePath>
     </parent>
 
@@ -24,7 +24,7 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.0.1</version>
+            <version>2.1.0-SNAPSHOT</version>
             <exclusions>
                 <exclusion>
                     <groupId>com.fasterxml.jackson.core</groupId>
@@ -35,7 +35,7 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.0.1</version>
+            <version>2.1.0-SNAPSHOT</version>
             <classifier>tests</classifier>
             <type>test-jar</type>
             <scope>test</scope>
diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml
index 129a280b3..665470224 100644
--- a/aws-serverless-java-container-spring/pom.xml
+++ b/aws-serverless-java-container-spring/pom.xml
@@ -6,12 +6,12 @@
     <name>AWS Serverless Java container support - Spring implementation</name>
     <description>Allows Java applications written for the Spring framework to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.0.1</version>
+    <version>2.1.0-SNAPSHOT</version>
 
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.0.1</version>
+        <version>2.1.0-SNAPSHOT</version>
         <relativePath>..</relativePath>
     </parent>
 
@@ -25,12 +25,12 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.0.1</version>
+            <version>2.1.0-SNAPSHOT</version>
         </dependency>
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.0.1</version>
+            <version>2.1.0-SNAPSHOT</version>
             <classifier>tests</classifier>
             <type>test-jar</type>
             <scope>test</scope>
diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml
index b0192475c..50a4f5422 100644
--- a/aws-serverless-java-container-springboot3/pom.xml
+++ b/aws-serverless-java-container-springboot3/pom.xml
@@ -3,7 +3,7 @@
     <parent>
         <artifactId>aws-serverless-java-container</artifactId>
         <groupId>com.amazonaws.serverless</groupId>
-        <version>2.0.1</version>
+        <version>2.1.0-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
@@ -12,7 +12,7 @@
     <name>AWS Serverless Java container support - SpringBoot 3 implementation</name>
     <description>Allows Java applications written for SpringBoot 3 to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.0.1</version>
+    <version>2.1.0-SNAPSHOT</version>
 
     <properties>
         <spring.version>6.1.5</spring.version>
@@ -30,12 +30,12 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.0.1</version>
+            <version>2.1.0-SNAPSHOT</version>
         </dependency>
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.0.1</version>
+            <version>2.1.0-SNAPSHOT</version>
             <classifier>tests</classifier>
             <type>test-jar</type>
             <scope>test</scope>
diff --git a/aws-serverless-jersey-archetype/pom.xml b/aws-serverless-jersey-archetype/pom.xml
index 186b23a2f..f4ae15675 100644
--- a/aws-serverless-jersey-archetype/pom.xml
+++ b/aws-serverless-jersey-archetype/pom.xml
@@ -4,17 +4,17 @@
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.0.1</version>
+        <version>2.1.0-SNAPSHOT</version>
     </parent>
 
     <groupId>com.amazonaws.serverless.archetypes</groupId>
     <artifactId>aws-serverless-jersey-archetype</artifactId>
-    <version>2.0.1</version>
+    <version>2.1.0-SNAPSHOT</version>
     <packaging>maven-archetype</packaging>
 
     <scm>
         <url>https://github.com/aws/serverless-java-container.git</url>
-      <tag>aws-serverless-java-container-2.0.1</tag>
+      <tag>HEAD</tag>
   </scm>
 
     <licenses>
diff --git a/aws-serverless-spring-archetype/pom.xml b/aws-serverless-spring-archetype/pom.xml
index 77bec6e3f..07c5e4e90 100644
--- a/aws-serverless-spring-archetype/pom.xml
+++ b/aws-serverless-spring-archetype/pom.xml
@@ -4,17 +4,17 @@
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.0.1</version>
+        <version>2.1.0-SNAPSHOT</version>
     </parent>
 
     <groupId>com.amazonaws.serverless.archetypes</groupId>
     <artifactId>aws-serverless-spring-archetype</artifactId>
-    <version>2.0.1</version>
+    <version>2.1.0-SNAPSHOT</version>
     <packaging>maven-archetype</packaging>
 
     <scm>
         <url>https://github.com/aws/serverless-java-container.git</url>
-      <tag>aws-serverless-java-container-2.0.1</tag>
+      <tag>HEAD</tag>
   </scm>
 
     <licenses>
diff --git a/aws-serverless-springboot3-archetype/pom.xml b/aws-serverless-springboot3-archetype/pom.xml
index efde5bb27..a1057f354 100644
--- a/aws-serverless-springboot3-archetype/pom.xml
+++ b/aws-serverless-springboot3-archetype/pom.xml
@@ -4,17 +4,17 @@
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.0.1</version>
+        <version>2.1.0-SNAPSHOT</version>
     </parent>
 
     <groupId>com.amazonaws.serverless.archetypes</groupId>
     <artifactId>aws-serverless-springboot3-archetype</artifactId>
-    <version>2.0.1</version>
+    <version>2.1.0-SNAPSHOT</version>
     <packaging>maven-archetype</packaging>
 
     <scm>
         <url>https://github.com/aws/serverless-java-container.git</url>
-      <tag>aws-serverless-java-container-2.0.1</tag>
+      <tag>HEAD</tag>
   </scm>
 
     <licenses>
diff --git a/pom.xml b/pom.xml
index 836490d0e..24d8afe19 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
     <groupId>com.amazonaws.serverless</groupId>
     <artifactId>aws-serverless-java-container</artifactId>
     <packaging>pom</packaging>
-    <version>2.0.1</version>
+    <version>2.1.0-SNAPSHOT</version>
     <name>AWS Serverless Java container</name>
     <description>A Java framework to run Spring, Spring Boot, Jersey, Spark, and Struts applications inside AWS Lambda</description>
     <url>https://github.com/aws/serverless-java-container</url>
@@ -37,7 +37,7 @@
     <scm>
         <url>https://github.com/aws/serverless-java-container</url>
         <connection>scm:git:https://github.com/aws/serverless-java-container.git</connection>
-      <tag>aws-serverless-java-container-2.0.1</tag>
+      <tag>HEAD</tag>
     </scm>
 
     <repositories>

From aaacbc8f721fc3a0405904c5bcd0741964952fca Mon Sep 17 00:00:00 2001
From: deki <deki@users.noreply.github.com>
Date: Mon, 8 Apr 2024 09:06:27 +0000
Subject: [PATCH 173/430] chore: release - prepare release
 aws-serverless-java-container-2.0.1

---
 aws-serverless-java-container-core/pom.xml        | 4 ++--
 aws-serverless-java-container-jersey/pom.xml      | 8 ++++----
 aws-serverless-java-container-spring/pom.xml      | 8 ++++----
 aws-serverless-java-container-springboot3/pom.xml | 8 ++++----
 aws-serverless-jersey-archetype/pom.xml           | 6 +++---
 aws-serverless-spring-archetype/pom.xml           | 6 +++---
 aws-serverless-springboot3-archetype/pom.xml      | 6 +++---
 pom.xml                                           | 4 ++--
 8 files changed, 25 insertions(+), 25 deletions(-)

diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml
index 05e2f75d9..0e9c9e65f 100644
--- a/aws-serverless-java-container-core/pom.xml
+++ b/aws-serverless-java-container-core/pom.xml
@@ -6,12 +6,12 @@
     <name>AWS Serverless Java container support - Core</name>
     <description>Allows Java applications written for a servlet container to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.1.0-SNAPSHOT</version>
+    <version>2.0.1</version>
 
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.1.0-SNAPSHOT</version>
+        <version>2.0.1</version>
         <relativePath>..</relativePath>
     </parent>
 
diff --git a/aws-serverless-java-container-jersey/pom.xml b/aws-serverless-java-container-jersey/pom.xml
index f93cee62a..95ae04d52 100644
--- a/aws-serverless-java-container-jersey/pom.xml
+++ b/aws-serverless-java-container-jersey/pom.xml
@@ -6,12 +6,12 @@
     <name>AWS Serverless Java container support - Jersey implementation</name>
     <description>Allows Java applications written for Jersey to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.1.0-SNAPSHOT</version>
+    <version>2.0.1</version>
 
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.1.0-SNAPSHOT</version>
+        <version>2.0.1</version>
         <relativePath>..</relativePath>
     </parent>
 
@@ -24,7 +24,7 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.1.0-SNAPSHOT</version>
+            <version>2.0.1</version>
             <exclusions>
                 <exclusion>
                     <groupId>com.fasterxml.jackson.core</groupId>
@@ -35,7 +35,7 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.1.0-SNAPSHOT</version>
+            <version>2.0.1</version>
             <classifier>tests</classifier>
             <type>test-jar</type>
             <scope>test</scope>
diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml
index 665470224..129a280b3 100644
--- a/aws-serverless-java-container-spring/pom.xml
+++ b/aws-serverless-java-container-spring/pom.xml
@@ -6,12 +6,12 @@
     <name>AWS Serverless Java container support - Spring implementation</name>
     <description>Allows Java applications written for the Spring framework to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.1.0-SNAPSHOT</version>
+    <version>2.0.1</version>
 
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.1.0-SNAPSHOT</version>
+        <version>2.0.1</version>
         <relativePath>..</relativePath>
     </parent>
 
@@ -25,12 +25,12 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.1.0-SNAPSHOT</version>
+            <version>2.0.1</version>
         </dependency>
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.1.0-SNAPSHOT</version>
+            <version>2.0.1</version>
             <classifier>tests</classifier>
             <type>test-jar</type>
             <scope>test</scope>
diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml
index 50a4f5422..b0192475c 100644
--- a/aws-serverless-java-container-springboot3/pom.xml
+++ b/aws-serverless-java-container-springboot3/pom.xml
@@ -3,7 +3,7 @@
     <parent>
         <artifactId>aws-serverless-java-container</artifactId>
         <groupId>com.amazonaws.serverless</groupId>
-        <version>2.1.0-SNAPSHOT</version>
+        <version>2.0.1</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
@@ -12,7 +12,7 @@
     <name>AWS Serverless Java container support - SpringBoot 3 implementation</name>
     <description>Allows Java applications written for SpringBoot 3 to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.1.0-SNAPSHOT</version>
+    <version>2.0.1</version>
 
     <properties>
         <spring.version>6.1.5</spring.version>
@@ -30,12 +30,12 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.1.0-SNAPSHOT</version>
+            <version>2.0.1</version>
         </dependency>
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.1.0-SNAPSHOT</version>
+            <version>2.0.1</version>
             <classifier>tests</classifier>
             <type>test-jar</type>
             <scope>test</scope>
diff --git a/aws-serverless-jersey-archetype/pom.xml b/aws-serverless-jersey-archetype/pom.xml
index f4ae15675..186b23a2f 100644
--- a/aws-serverless-jersey-archetype/pom.xml
+++ b/aws-serverless-jersey-archetype/pom.xml
@@ -4,17 +4,17 @@
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.1.0-SNAPSHOT</version>
+        <version>2.0.1</version>
     </parent>
 
     <groupId>com.amazonaws.serverless.archetypes</groupId>
     <artifactId>aws-serverless-jersey-archetype</artifactId>
-    <version>2.1.0-SNAPSHOT</version>
+    <version>2.0.1</version>
     <packaging>maven-archetype</packaging>
 
     <scm>
         <url>https://github.com/aws/serverless-java-container.git</url>
-      <tag>HEAD</tag>
+      <tag>aws-serverless-java-container-2.0.1</tag>
   </scm>
 
     <licenses>
diff --git a/aws-serverless-spring-archetype/pom.xml b/aws-serverless-spring-archetype/pom.xml
index 07c5e4e90..77bec6e3f 100644
--- a/aws-serverless-spring-archetype/pom.xml
+++ b/aws-serverless-spring-archetype/pom.xml
@@ -4,17 +4,17 @@
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.1.0-SNAPSHOT</version>
+        <version>2.0.1</version>
     </parent>
 
     <groupId>com.amazonaws.serverless.archetypes</groupId>
     <artifactId>aws-serverless-spring-archetype</artifactId>
-    <version>2.1.0-SNAPSHOT</version>
+    <version>2.0.1</version>
     <packaging>maven-archetype</packaging>
 
     <scm>
         <url>https://github.com/aws/serverless-java-container.git</url>
-      <tag>HEAD</tag>
+      <tag>aws-serverless-java-container-2.0.1</tag>
   </scm>
 
     <licenses>
diff --git a/aws-serverless-springboot3-archetype/pom.xml b/aws-serverless-springboot3-archetype/pom.xml
index a1057f354..efde5bb27 100644
--- a/aws-serverless-springboot3-archetype/pom.xml
+++ b/aws-serverless-springboot3-archetype/pom.xml
@@ -4,17 +4,17 @@
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.1.0-SNAPSHOT</version>
+        <version>2.0.1</version>
     </parent>
 
     <groupId>com.amazonaws.serverless.archetypes</groupId>
     <artifactId>aws-serverless-springboot3-archetype</artifactId>
-    <version>2.1.0-SNAPSHOT</version>
+    <version>2.0.1</version>
     <packaging>maven-archetype</packaging>
 
     <scm>
         <url>https://github.com/aws/serverless-java-container.git</url>
-      <tag>HEAD</tag>
+      <tag>aws-serverless-java-container-2.0.1</tag>
   </scm>
 
     <licenses>
diff --git a/pom.xml b/pom.xml
index 24d8afe19..836490d0e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
     <groupId>com.amazonaws.serverless</groupId>
     <artifactId>aws-serverless-java-container</artifactId>
     <packaging>pom</packaging>
-    <version>2.1.0-SNAPSHOT</version>
+    <version>2.0.1</version>
     <name>AWS Serverless Java container</name>
     <description>A Java framework to run Spring, Spring Boot, Jersey, Spark, and Struts applications inside AWS Lambda</description>
     <url>https://github.com/aws/serverless-java-container</url>
@@ -37,7 +37,7 @@
     <scm>
         <url>https://github.com/aws/serverless-java-container</url>
         <connection>scm:git:https://github.com/aws/serverless-java-container.git</connection>
-      <tag>HEAD</tag>
+      <tag>aws-serverless-java-container-2.0.1</tag>
     </scm>
 
     <repositories>

From 38bbea7216e89733dc4612a74b0a7a0dc365188c Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Mon, 8 Apr 2024 11:18:17 +0200
Subject: [PATCH 174/430] chore: Set versions back to SNAPSHOT to rerun release
 build

This reverts commit aaacbc8f721fc3a0405904c5bcd0741964952fca.
---
 aws-serverless-java-container-core/pom.xml        | 4 ++--
 aws-serverless-java-container-jersey/pom.xml      | 8 ++++----
 aws-serverless-java-container-spring/pom.xml      | 8 ++++----
 aws-serverless-java-container-springboot3/pom.xml | 8 ++++----
 aws-serverless-jersey-archetype/pom.xml           | 6 +++---
 aws-serverless-spring-archetype/pom.xml           | 6 +++---
 aws-serverless-springboot3-archetype/pom.xml      | 6 +++---
 pom.xml                                           | 4 ++--
 8 files changed, 25 insertions(+), 25 deletions(-)

diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml
index 0e9c9e65f..05e2f75d9 100644
--- a/aws-serverless-java-container-core/pom.xml
+++ b/aws-serverless-java-container-core/pom.xml
@@ -6,12 +6,12 @@
     <name>AWS Serverless Java container support - Core</name>
     <description>Allows Java applications written for a servlet container to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.0.1</version>
+    <version>2.1.0-SNAPSHOT</version>
 
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.0.1</version>
+        <version>2.1.0-SNAPSHOT</version>
         <relativePath>..</relativePath>
     </parent>
 
diff --git a/aws-serverless-java-container-jersey/pom.xml b/aws-serverless-java-container-jersey/pom.xml
index 95ae04d52..f93cee62a 100644
--- a/aws-serverless-java-container-jersey/pom.xml
+++ b/aws-serverless-java-container-jersey/pom.xml
@@ -6,12 +6,12 @@
     <name>AWS Serverless Java container support - Jersey implementation</name>
     <description>Allows Java applications written for Jersey to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.0.1</version>
+    <version>2.1.0-SNAPSHOT</version>
 
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.0.1</version>
+        <version>2.1.0-SNAPSHOT</version>
         <relativePath>..</relativePath>
     </parent>
 
@@ -24,7 +24,7 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.0.1</version>
+            <version>2.1.0-SNAPSHOT</version>
             <exclusions>
                 <exclusion>
                     <groupId>com.fasterxml.jackson.core</groupId>
@@ -35,7 +35,7 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.0.1</version>
+            <version>2.1.0-SNAPSHOT</version>
             <classifier>tests</classifier>
             <type>test-jar</type>
             <scope>test</scope>
diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml
index 129a280b3..665470224 100644
--- a/aws-serverless-java-container-spring/pom.xml
+++ b/aws-serverless-java-container-spring/pom.xml
@@ -6,12 +6,12 @@
     <name>AWS Serverless Java container support - Spring implementation</name>
     <description>Allows Java applications written for the Spring framework to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.0.1</version>
+    <version>2.1.0-SNAPSHOT</version>
 
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.0.1</version>
+        <version>2.1.0-SNAPSHOT</version>
         <relativePath>..</relativePath>
     </parent>
 
@@ -25,12 +25,12 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.0.1</version>
+            <version>2.1.0-SNAPSHOT</version>
         </dependency>
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.0.1</version>
+            <version>2.1.0-SNAPSHOT</version>
             <classifier>tests</classifier>
             <type>test-jar</type>
             <scope>test</scope>
diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml
index b0192475c..50a4f5422 100644
--- a/aws-serverless-java-container-springboot3/pom.xml
+++ b/aws-serverless-java-container-springboot3/pom.xml
@@ -3,7 +3,7 @@
     <parent>
         <artifactId>aws-serverless-java-container</artifactId>
         <groupId>com.amazonaws.serverless</groupId>
-        <version>2.0.1</version>
+        <version>2.1.0-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
@@ -12,7 +12,7 @@
     <name>AWS Serverless Java container support - SpringBoot 3 implementation</name>
     <description>Allows Java applications written for SpringBoot 3 to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.0.1</version>
+    <version>2.1.0-SNAPSHOT</version>
 
     <properties>
         <spring.version>6.1.5</spring.version>
@@ -30,12 +30,12 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.0.1</version>
+            <version>2.1.0-SNAPSHOT</version>
         </dependency>
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.0.1</version>
+            <version>2.1.0-SNAPSHOT</version>
             <classifier>tests</classifier>
             <type>test-jar</type>
             <scope>test</scope>
diff --git a/aws-serverless-jersey-archetype/pom.xml b/aws-serverless-jersey-archetype/pom.xml
index 186b23a2f..f4ae15675 100644
--- a/aws-serverless-jersey-archetype/pom.xml
+++ b/aws-serverless-jersey-archetype/pom.xml
@@ -4,17 +4,17 @@
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.0.1</version>
+        <version>2.1.0-SNAPSHOT</version>
     </parent>
 
     <groupId>com.amazonaws.serverless.archetypes</groupId>
     <artifactId>aws-serverless-jersey-archetype</artifactId>
-    <version>2.0.1</version>
+    <version>2.1.0-SNAPSHOT</version>
     <packaging>maven-archetype</packaging>
 
     <scm>
         <url>https://github.com/aws/serverless-java-container.git</url>
-      <tag>aws-serverless-java-container-2.0.1</tag>
+      <tag>HEAD</tag>
   </scm>
 
     <licenses>
diff --git a/aws-serverless-spring-archetype/pom.xml b/aws-serverless-spring-archetype/pom.xml
index 77bec6e3f..07c5e4e90 100644
--- a/aws-serverless-spring-archetype/pom.xml
+++ b/aws-serverless-spring-archetype/pom.xml
@@ -4,17 +4,17 @@
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.0.1</version>
+        <version>2.1.0-SNAPSHOT</version>
     </parent>
 
     <groupId>com.amazonaws.serverless.archetypes</groupId>
     <artifactId>aws-serverless-spring-archetype</artifactId>
-    <version>2.0.1</version>
+    <version>2.1.0-SNAPSHOT</version>
     <packaging>maven-archetype</packaging>
 
     <scm>
         <url>https://github.com/aws/serverless-java-container.git</url>
-      <tag>aws-serverless-java-container-2.0.1</tag>
+      <tag>HEAD</tag>
   </scm>
 
     <licenses>
diff --git a/aws-serverless-springboot3-archetype/pom.xml b/aws-serverless-springboot3-archetype/pom.xml
index efde5bb27..a1057f354 100644
--- a/aws-serverless-springboot3-archetype/pom.xml
+++ b/aws-serverless-springboot3-archetype/pom.xml
@@ -4,17 +4,17 @@
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.0.1</version>
+        <version>2.1.0-SNAPSHOT</version>
     </parent>
 
     <groupId>com.amazonaws.serverless.archetypes</groupId>
     <artifactId>aws-serverless-springboot3-archetype</artifactId>
-    <version>2.0.1</version>
+    <version>2.1.0-SNAPSHOT</version>
     <packaging>maven-archetype</packaging>
 
     <scm>
         <url>https://github.com/aws/serverless-java-container.git</url>
-      <tag>aws-serverless-java-container-2.0.1</tag>
+      <tag>HEAD</tag>
   </scm>
 
     <licenses>
diff --git a/pom.xml b/pom.xml
index 836490d0e..24d8afe19 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
     <groupId>com.amazonaws.serverless</groupId>
     <artifactId>aws-serverless-java-container</artifactId>
     <packaging>pom</packaging>
-    <version>2.0.1</version>
+    <version>2.1.0-SNAPSHOT</version>
     <name>AWS Serverless Java container</name>
     <description>A Java framework to run Spring, Spring Boot, Jersey, Spark, and Struts applications inside AWS Lambda</description>
     <url>https://github.com/aws/serverless-java-container</url>
@@ -37,7 +37,7 @@
     <scm>
         <url>https://github.com/aws/serverless-java-container</url>
         <connection>scm:git:https://github.com/aws/serverless-java-container.git</connection>
-      <tag>aws-serverless-java-container-2.0.1</tag>
+      <tag>HEAD</tag>
     </scm>
 
     <repositories>

From df173dd113f3355769a5efd8f64ca8aad1075d88 Mon Sep 17 00:00:00 2001
From: deki <deki@users.noreply.github.com>
Date: Mon, 8 Apr 2024 09:25:48 +0000
Subject: [PATCH 175/430] chore: release - prepare release
 aws-serverless-java-container-2.0.1

---
 aws-serverless-java-container-core/pom.xml        | 4 ++--
 aws-serverless-java-container-jersey/pom.xml      | 8 ++++----
 aws-serverless-java-container-spring/pom.xml      | 8 ++++----
 aws-serverless-java-container-springboot3/pom.xml | 8 ++++----
 aws-serverless-jersey-archetype/pom.xml           | 6 +++---
 aws-serverless-spring-archetype/pom.xml           | 6 +++---
 aws-serverless-springboot3-archetype/pom.xml      | 6 +++---
 pom.xml                                           | 4 ++--
 8 files changed, 25 insertions(+), 25 deletions(-)

diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml
index 05e2f75d9..0e9c9e65f 100644
--- a/aws-serverless-java-container-core/pom.xml
+++ b/aws-serverless-java-container-core/pom.xml
@@ -6,12 +6,12 @@
     <name>AWS Serverless Java container support - Core</name>
     <description>Allows Java applications written for a servlet container to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.1.0-SNAPSHOT</version>
+    <version>2.0.1</version>
 
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.1.0-SNAPSHOT</version>
+        <version>2.0.1</version>
         <relativePath>..</relativePath>
     </parent>
 
diff --git a/aws-serverless-java-container-jersey/pom.xml b/aws-serverless-java-container-jersey/pom.xml
index f93cee62a..95ae04d52 100644
--- a/aws-serverless-java-container-jersey/pom.xml
+++ b/aws-serverless-java-container-jersey/pom.xml
@@ -6,12 +6,12 @@
     <name>AWS Serverless Java container support - Jersey implementation</name>
     <description>Allows Java applications written for Jersey to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.1.0-SNAPSHOT</version>
+    <version>2.0.1</version>
 
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.1.0-SNAPSHOT</version>
+        <version>2.0.1</version>
         <relativePath>..</relativePath>
     </parent>
 
@@ -24,7 +24,7 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.1.0-SNAPSHOT</version>
+            <version>2.0.1</version>
             <exclusions>
                 <exclusion>
                     <groupId>com.fasterxml.jackson.core</groupId>
@@ -35,7 +35,7 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.1.0-SNAPSHOT</version>
+            <version>2.0.1</version>
             <classifier>tests</classifier>
             <type>test-jar</type>
             <scope>test</scope>
diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml
index 665470224..129a280b3 100644
--- a/aws-serverless-java-container-spring/pom.xml
+++ b/aws-serverless-java-container-spring/pom.xml
@@ -6,12 +6,12 @@
     <name>AWS Serverless Java container support - Spring implementation</name>
     <description>Allows Java applications written for the Spring framework to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.1.0-SNAPSHOT</version>
+    <version>2.0.1</version>
 
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.1.0-SNAPSHOT</version>
+        <version>2.0.1</version>
         <relativePath>..</relativePath>
     </parent>
 
@@ -25,12 +25,12 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.1.0-SNAPSHOT</version>
+            <version>2.0.1</version>
         </dependency>
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.1.0-SNAPSHOT</version>
+            <version>2.0.1</version>
             <classifier>tests</classifier>
             <type>test-jar</type>
             <scope>test</scope>
diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml
index 50a4f5422..b0192475c 100644
--- a/aws-serverless-java-container-springboot3/pom.xml
+++ b/aws-serverless-java-container-springboot3/pom.xml
@@ -3,7 +3,7 @@
     <parent>
         <artifactId>aws-serverless-java-container</artifactId>
         <groupId>com.amazonaws.serverless</groupId>
-        <version>2.1.0-SNAPSHOT</version>
+        <version>2.0.1</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
@@ -12,7 +12,7 @@
     <name>AWS Serverless Java container support - SpringBoot 3 implementation</name>
     <description>Allows Java applications written for SpringBoot 3 to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.1.0-SNAPSHOT</version>
+    <version>2.0.1</version>
 
     <properties>
         <spring.version>6.1.5</spring.version>
@@ -30,12 +30,12 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.1.0-SNAPSHOT</version>
+            <version>2.0.1</version>
         </dependency>
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.1.0-SNAPSHOT</version>
+            <version>2.0.1</version>
             <classifier>tests</classifier>
             <type>test-jar</type>
             <scope>test</scope>
diff --git a/aws-serverless-jersey-archetype/pom.xml b/aws-serverless-jersey-archetype/pom.xml
index f4ae15675..186b23a2f 100644
--- a/aws-serverless-jersey-archetype/pom.xml
+++ b/aws-serverless-jersey-archetype/pom.xml
@@ -4,17 +4,17 @@
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.1.0-SNAPSHOT</version>
+        <version>2.0.1</version>
     </parent>
 
     <groupId>com.amazonaws.serverless.archetypes</groupId>
     <artifactId>aws-serverless-jersey-archetype</artifactId>
-    <version>2.1.0-SNAPSHOT</version>
+    <version>2.0.1</version>
     <packaging>maven-archetype</packaging>
 
     <scm>
         <url>https://github.com/aws/serverless-java-container.git</url>
-      <tag>HEAD</tag>
+      <tag>aws-serverless-java-container-2.0.1</tag>
   </scm>
 
     <licenses>
diff --git a/aws-serverless-spring-archetype/pom.xml b/aws-serverless-spring-archetype/pom.xml
index 07c5e4e90..77bec6e3f 100644
--- a/aws-serverless-spring-archetype/pom.xml
+++ b/aws-serverless-spring-archetype/pom.xml
@@ -4,17 +4,17 @@
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.1.0-SNAPSHOT</version>
+        <version>2.0.1</version>
     </parent>
 
     <groupId>com.amazonaws.serverless.archetypes</groupId>
     <artifactId>aws-serverless-spring-archetype</artifactId>
-    <version>2.1.0-SNAPSHOT</version>
+    <version>2.0.1</version>
     <packaging>maven-archetype</packaging>
 
     <scm>
         <url>https://github.com/aws/serverless-java-container.git</url>
-      <tag>HEAD</tag>
+      <tag>aws-serverless-java-container-2.0.1</tag>
   </scm>
 
     <licenses>
diff --git a/aws-serverless-springboot3-archetype/pom.xml b/aws-serverless-springboot3-archetype/pom.xml
index a1057f354..efde5bb27 100644
--- a/aws-serverless-springboot3-archetype/pom.xml
+++ b/aws-serverless-springboot3-archetype/pom.xml
@@ -4,17 +4,17 @@
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.1.0-SNAPSHOT</version>
+        <version>2.0.1</version>
     </parent>
 
     <groupId>com.amazonaws.serverless.archetypes</groupId>
     <artifactId>aws-serverless-springboot3-archetype</artifactId>
-    <version>2.1.0-SNAPSHOT</version>
+    <version>2.0.1</version>
     <packaging>maven-archetype</packaging>
 
     <scm>
         <url>https://github.com/aws/serverless-java-container.git</url>
-      <tag>HEAD</tag>
+      <tag>aws-serverless-java-container-2.0.1</tag>
   </scm>
 
     <licenses>
diff --git a/pom.xml b/pom.xml
index 24d8afe19..836490d0e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
     <groupId>com.amazonaws.serverless</groupId>
     <artifactId>aws-serverless-java-container</artifactId>
     <packaging>pom</packaging>
-    <version>2.1.0-SNAPSHOT</version>
+    <version>2.0.1</version>
     <name>AWS Serverless Java container</name>
     <description>A Java framework to run Spring, Spring Boot, Jersey, Spark, and Struts applications inside AWS Lambda</description>
     <url>https://github.com/aws/serverless-java-container</url>
@@ -37,7 +37,7 @@
     <scm>
         <url>https://github.com/aws/serverless-java-container</url>
         <connection>scm:git:https://github.com/aws/serverless-java-container.git</connection>
-      <tag>HEAD</tag>
+      <tag>aws-serverless-java-container-2.0.1</tag>
     </scm>
 
     <repositories>

From 08c5069952b307bf8ac20a09b3c039d7eef94ba2 Mon Sep 17 00:00:00 2001
From: deki <deki@users.noreply.github.com>
Date: Mon, 8 Apr 2024 09:25:50 +0000
Subject: [PATCH 176/430] chore: release - prepare for next development
 iteration

---
 aws-serverless-java-container-core/pom.xml        | 4 ++--
 aws-serverless-java-container-jersey/pom.xml      | 8 ++++----
 aws-serverless-java-container-spring/pom.xml      | 8 ++++----
 aws-serverless-java-container-springboot3/pom.xml | 8 ++++----
 aws-serverless-jersey-archetype/pom.xml           | 6 +++---
 aws-serverless-spring-archetype/pom.xml           | 6 +++---
 aws-serverless-springboot3-archetype/pom.xml      | 6 +++---
 pom.xml                                           | 4 ++--
 8 files changed, 25 insertions(+), 25 deletions(-)

diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml
index 0e9c9e65f..05e2f75d9 100644
--- a/aws-serverless-java-container-core/pom.xml
+++ b/aws-serverless-java-container-core/pom.xml
@@ -6,12 +6,12 @@
     <name>AWS Serverless Java container support - Core</name>
     <description>Allows Java applications written for a servlet container to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.0.1</version>
+    <version>2.1.0-SNAPSHOT</version>
 
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.0.1</version>
+        <version>2.1.0-SNAPSHOT</version>
         <relativePath>..</relativePath>
     </parent>
 
diff --git a/aws-serverless-java-container-jersey/pom.xml b/aws-serverless-java-container-jersey/pom.xml
index 95ae04d52..f93cee62a 100644
--- a/aws-serverless-java-container-jersey/pom.xml
+++ b/aws-serverless-java-container-jersey/pom.xml
@@ -6,12 +6,12 @@
     <name>AWS Serverless Java container support - Jersey implementation</name>
     <description>Allows Java applications written for Jersey to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.0.1</version>
+    <version>2.1.0-SNAPSHOT</version>
 
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.0.1</version>
+        <version>2.1.0-SNAPSHOT</version>
         <relativePath>..</relativePath>
     </parent>
 
@@ -24,7 +24,7 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.0.1</version>
+            <version>2.1.0-SNAPSHOT</version>
             <exclusions>
                 <exclusion>
                     <groupId>com.fasterxml.jackson.core</groupId>
@@ -35,7 +35,7 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.0.1</version>
+            <version>2.1.0-SNAPSHOT</version>
             <classifier>tests</classifier>
             <type>test-jar</type>
             <scope>test</scope>
diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml
index 129a280b3..665470224 100644
--- a/aws-serverless-java-container-spring/pom.xml
+++ b/aws-serverless-java-container-spring/pom.xml
@@ -6,12 +6,12 @@
     <name>AWS Serverless Java container support - Spring implementation</name>
     <description>Allows Java applications written for the Spring framework to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.0.1</version>
+    <version>2.1.0-SNAPSHOT</version>
 
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.0.1</version>
+        <version>2.1.0-SNAPSHOT</version>
         <relativePath>..</relativePath>
     </parent>
 
@@ -25,12 +25,12 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.0.1</version>
+            <version>2.1.0-SNAPSHOT</version>
         </dependency>
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.0.1</version>
+            <version>2.1.0-SNAPSHOT</version>
             <classifier>tests</classifier>
             <type>test-jar</type>
             <scope>test</scope>
diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml
index b0192475c..50a4f5422 100644
--- a/aws-serverless-java-container-springboot3/pom.xml
+++ b/aws-serverless-java-container-springboot3/pom.xml
@@ -3,7 +3,7 @@
     <parent>
         <artifactId>aws-serverless-java-container</artifactId>
         <groupId>com.amazonaws.serverless</groupId>
-        <version>2.0.1</version>
+        <version>2.1.0-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
@@ -12,7 +12,7 @@
     <name>AWS Serverless Java container support - SpringBoot 3 implementation</name>
     <description>Allows Java applications written for SpringBoot 3 to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.0.1</version>
+    <version>2.1.0-SNAPSHOT</version>
 
     <properties>
         <spring.version>6.1.5</spring.version>
@@ -30,12 +30,12 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.0.1</version>
+            <version>2.1.0-SNAPSHOT</version>
         </dependency>
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.0.1</version>
+            <version>2.1.0-SNAPSHOT</version>
             <classifier>tests</classifier>
             <type>test-jar</type>
             <scope>test</scope>
diff --git a/aws-serverless-jersey-archetype/pom.xml b/aws-serverless-jersey-archetype/pom.xml
index 186b23a2f..f4ae15675 100644
--- a/aws-serverless-jersey-archetype/pom.xml
+++ b/aws-serverless-jersey-archetype/pom.xml
@@ -4,17 +4,17 @@
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.0.1</version>
+        <version>2.1.0-SNAPSHOT</version>
     </parent>
 
     <groupId>com.amazonaws.serverless.archetypes</groupId>
     <artifactId>aws-serverless-jersey-archetype</artifactId>
-    <version>2.0.1</version>
+    <version>2.1.0-SNAPSHOT</version>
     <packaging>maven-archetype</packaging>
 
     <scm>
         <url>https://github.com/aws/serverless-java-container.git</url>
-      <tag>aws-serverless-java-container-2.0.1</tag>
+      <tag>HEAD</tag>
   </scm>
 
     <licenses>
diff --git a/aws-serverless-spring-archetype/pom.xml b/aws-serverless-spring-archetype/pom.xml
index 77bec6e3f..07c5e4e90 100644
--- a/aws-serverless-spring-archetype/pom.xml
+++ b/aws-serverless-spring-archetype/pom.xml
@@ -4,17 +4,17 @@
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.0.1</version>
+        <version>2.1.0-SNAPSHOT</version>
     </parent>
 
     <groupId>com.amazonaws.serverless.archetypes</groupId>
     <artifactId>aws-serverless-spring-archetype</artifactId>
-    <version>2.0.1</version>
+    <version>2.1.0-SNAPSHOT</version>
     <packaging>maven-archetype</packaging>
 
     <scm>
         <url>https://github.com/aws/serverless-java-container.git</url>
-      <tag>aws-serverless-java-container-2.0.1</tag>
+      <tag>HEAD</tag>
   </scm>
 
     <licenses>
diff --git a/aws-serverless-springboot3-archetype/pom.xml b/aws-serverless-springboot3-archetype/pom.xml
index efde5bb27..a1057f354 100644
--- a/aws-serverless-springboot3-archetype/pom.xml
+++ b/aws-serverless-springboot3-archetype/pom.xml
@@ -4,17 +4,17 @@
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.0.1</version>
+        <version>2.1.0-SNAPSHOT</version>
     </parent>
 
     <groupId>com.amazonaws.serverless.archetypes</groupId>
     <artifactId>aws-serverless-springboot3-archetype</artifactId>
-    <version>2.0.1</version>
+    <version>2.1.0-SNAPSHOT</version>
     <packaging>maven-archetype</packaging>
 
     <scm>
         <url>https://github.com/aws/serverless-java-container.git</url>
-      <tag>aws-serverless-java-container-2.0.1</tag>
+      <tag>HEAD</tag>
   </scm>
 
     <licenses>
diff --git a/pom.xml b/pom.xml
index 836490d0e..24d8afe19 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
     <groupId>com.amazonaws.serverless</groupId>
     <artifactId>aws-serverless-java-container</artifactId>
     <packaging>pom</packaging>
-    <version>2.0.1</version>
+    <version>2.1.0-SNAPSHOT</version>
     <name>AWS Serverless Java container</name>
     <description>A Java framework to run Spring, Spring Boot, Jersey, Spark, and Struts applications inside AWS Lambda</description>
     <url>https://github.com/aws/serverless-java-container</url>
@@ -37,7 +37,7 @@
     <scm>
         <url>https://github.com/aws/serverless-java-container</url>
         <connection>scm:git:https://github.com/aws/serverless-java-container.git</connection>
-      <tag>aws-serverless-java-container-2.0.1</tag>
+      <tag>HEAD</tag>
     </scm>
 
     <repositories>

From b0058d1914ecb67a15f62329d35ee3ef1d5b8339 Mon Sep 17 00:00:00 2001
From: mbfreder <mbfreder@amazon.com>
Date: Sun, 7 Apr 2024 22:01:27 -0700
Subject: [PATCH 177/430] fix remoteHost for ALB

---
 .../servlet/AwsProxyHttpServletRequest.java   | 23 +++++++++++++++----
 .../AwsProxyHttpServletRequestTest.java       | 12 ++++++++++
 .../testutils/AwsProxyRequestBuilder.java     |  3 ++-
 3 files changed, 33 insertions(+), 5 deletions(-)

diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequest.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequest.java
index 3e92d43dc..31fc7c2c8 100644
--- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequest.java
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequest.java
@@ -21,13 +21,15 @@
 import com.amazonaws.serverless.proxy.model.RequestSource;
 import com.amazonaws.services.lambda.runtime.Context;
 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
 import jakarta.servlet.*;
-import jakarta.servlet.http.*;
+import jakarta.servlet.http.Cookie;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpUpgradeHandler;
 import jakarta.ws.rs.core.HttpHeaders;
 import jakarta.ws.rs.core.SecurityContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.io.BufferedReader;
 import java.io.IOException;
@@ -441,6 +443,13 @@ public String getRemoteAddr() {
 
     @Override
     public String getRemoteHost() {
+        if (Objects.nonNull(request.getRequestContext().getElb())) {
+            String host_header = request.getHeaders().get(HttpHeaders.HOST);
+
+            // the host header has the form host:port, so we split the string to get the host part
+            return Arrays.asList(host_header.split(":")).get(0);
+        }
+
         return request.getMultiValueHeaders().getFirst(HttpHeaders.HOST);
     }
 
@@ -471,6 +480,12 @@ public RequestDispatcher getRequestDispatcher(String s) {
 
     @Override
     public int getRemotePort() {
+        if (Objects.nonNull(request.getRequestContext().getElb())) {
+            String hostHeader = request.getHeaders().get(HttpHeaders.HOST);
+            String port = Arrays.asList(hostHeader.split(":")).get(1);
+            if (Objects.nonNull(port))
+                return Integer.parseInt(port);
+        }
         return 0;
     }
 
diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequestTest.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequestTest.java
index 76507508b..45c38843e 100644
--- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequestTest.java
+++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequestTest.java
@@ -651,6 +651,18 @@ void serverName_albHostHeader_returnsHostHeader() {
         assertEquals("testapi.us-east-1.elb.amazonaws.com", serverName);
     }
 
+    @Test
+    void getRemoteHost_albHostHeader_returnsHostHeader() {
+        initAwsProxyHttpServletRequestTest("ALB");
+        AwsProxyRequest proxyReq = new AwsProxyRequestBuilder("/test", "GET")
+                .alb().build();
+        proxyReq.getHeaders().put(HttpHeaders.HOST, "testapi.us-east-1.elb.amazonaws.com");
+        HttpServletRequest servletRequest = new AwsProxyHttpServletRequest(proxyReq, null, null);
+
+        String host = servletRequest.getRemoteHost();
+        assertEquals("testapi.us-east-1.elb.amazonaws.com", host);
+    }
+
     private AwsProxyRequestBuilder getRequestWithHeaders() {
         return new AwsProxyRequestBuilder("/hello", "GET")
                 .header(CUSTOM_HEADER_KEY, CUSTOM_HEADER_VALUE)
diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/testutils/AwsProxyRequestBuilder.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/testutils/AwsProxyRequestBuilder.java
index 9df66a891..40f0ae7ad 100644
--- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/testutils/AwsProxyRequestBuilder.java
+++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/testutils/AwsProxyRequestBuilder.java
@@ -70,7 +70,8 @@ public AwsProxyRequestBuilder(AwsProxyRequest req) {
 
     public AwsProxyRequestBuilder(String path, String httpMethod) {
         this.request = new AwsProxyRequest();
-        this.request.setMultiValueHeaders(new Headers()); // avoid NPE
+        this.request.setMultiValueHeaders(new Headers());// avoid NPE
+        this.request.setHeaders(new SingleValueHeaders());
         this.request.setHttpMethod(httpMethod);
         this.request.setPath(path);
         this.request.setMultiValueQueryStringParameters(new MultiValuedTreeMap<>());

From e6e43077925566ec6ff3ba8ec354a49e7504f9c8 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <dkieselh@amazon.com>
Date: Tue, 9 Apr 2024 08:34:04 +0200
Subject: [PATCH 178/430] Update README.md

both 1.x and 2.x are ready for use in production
---
 README.md | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/README.md b/README.md
index b88fb16db..9df70fdff 100644
--- a/README.md
+++ b/README.md
@@ -5,10 +5,10 @@ Serverless Java Container natively supports API Gateway's proxy integration mode
 
 Currently the following versions are maintained:
 
-| Version                  | Branch | Java Enterprise support | Spring versions | JAX-RS/ Jersey version | Struts support | Spark support |
-|--------------------------|--------|-------------------------|-----------------|------------------------|----------------|---------------|
-| 1.x (stable)             | [1.x](https://github.com/aws/serverless-java-container/tree/1.x)    | Java EE (javax.*)       | 5.x (Boot 2.x)  | 2.x                    | :white_check_mark: | :white_check_mark: |
-| 2.x (under development)  | [main](https://github.com/aws/serverless-java-container/tree/main)   | Jakarta EE (jakarta.*)  | 6.x (Boot 3.x)  | 3.x                    | :x:            | :x:           |
+| Version | Branch | Java Enterprise support | Spring versions | JAX-RS/ Jersey version | Struts support | Spark support |
+|---------|--------|-------------------------|-----------------|------------------------|----------------|---------------|
+| 1.x                      | [1.x](https://github.com/aws/serverless-java-container/tree/1.x)    | Java EE (javax.*)       | 5.x (Boot 2.x)  | 2.x                    | :white_check_mark: | :white_check_mark: |
+| 2.x     | [main](https://github.com/aws/serverless-java-container/tree/main)   | Jakarta EE (jakarta.*)  | 6.x (Boot 3.x)  | 3.x                    | :x:            | :x:           |
 
 Follow the quick start guides in [our wiki](https://github.com/aws/serverless-java-container/wiki) to integrate Serverless Java Container with your project:
 * [Spring quick start](https://github.com/aws/serverless-java-container/wiki/Quick-start---Spring)
@@ -58,4 +58,4 @@ public class StreamLambdaHandler implements RequestStreamHandler {
 
 ### Java samples with different frameworks 
 
-- [Dagger, Micronaut, Quarkus, Spring Boot](https://github.com/aws-samples/serverless-java-frameworks-samples/)
\ No newline at end of file
+- [Dagger, Micronaut, Quarkus, Spring Boot](https://github.com/aws-samples/serverless-java-frameworks-samples/)

From 2e33b439a9e0bc0dd072c896816b88dea2bc5d94 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 15 Apr 2024 04:14:45 +0000
Subject: [PATCH 179/430] chore(deps): bump
 com.amazonaws:aws-lambda-java-events

Bumps [com.amazonaws:aws-lambda-java-events](https://github.com/aws/aws-lambda-java-libs) from 3.11.4 to 3.11.5.
- [Commits](https://github.com/aws/aws-lambda-java-libs/commits)

---
updated-dependencies:
- dependency-name: com.amazonaws:aws-lambda-java-events
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 samples/springboot3/pet-store-native/pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/samples/springboot3/pet-store-native/pom.xml b/samples/springboot3/pet-store-native/pom.xml
index ae5dbda1f..78e609c35 100644
--- a/samples/springboot3/pet-store-native/pom.xml
+++ b/samples/springboot3/pet-store-native/pom.xml
@@ -31,7 +31,7 @@
 		<dependency>
 			<groupId>com.amazonaws</groupId>
 			<artifactId>aws-lambda-java-events</artifactId>
-			<version>3.11.4</version>
+			<version>3.11.5</version>
 		</dependency>
 		<dependency>
 			<groupId>com.amazonaws</groupId>

From 4076e132cb49fd01ae4a3934fd008fad7aa5911c Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 15 Apr 2024 04:43:10 +0000
Subject: [PATCH 180/430] chore(deps): bump
 com.github.spotbugs:spotbugs-maven-plugin

Bumps [com.github.spotbugs:spotbugs-maven-plugin](https://github.com/spotbugs/spotbugs-maven-plugin) from 4.8.3.1 to 4.8.4.0.
- [Release notes](https://github.com/spotbugs/spotbugs-maven-plugin/releases)
- [Commits](https://github.com/spotbugs/spotbugs-maven-plugin/compare/spotbugs-maven-plugin-4.8.3.1...spotbugs-maven-plugin-4.8.4.0)

---
updated-dependencies:
- dependency-name: com.github.spotbugs:spotbugs-maven-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 24d8afe19..d1d11e878 100644
--- a/pom.xml
+++ b/pom.xml
@@ -249,7 +249,7 @@
                 <plugin>
                     <groupId>com.github.spotbugs</groupId>
                     <artifactId>spotbugs-maven-plugin</artifactId>
-                    <version>4.8.3.1</version>
+                    <version>4.8.4.0</version>
                     <configuration>
                         <!--
                             Enables analysis which takes more memory but finds more bugs.

From 221bd791d7a00cac150ca10c8ba4c850f828c243 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 15 Apr 2024 04:43:26 +0000
Subject: [PATCH 181/430] chore(deps): bump slf4j.version from 2.0.12 to 2.0.13

Bumps `slf4j.version` from 2.0.12 to 2.0.13.

Updates `org.slf4j:slf4j-api` from 2.0.12 to 2.0.13

Updates `org.slf4j:slf4j-simple` from 2.0.12 to 2.0.13

---
updated-dependencies:
- dependency-name: org.slf4j:slf4j-api
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.slf4j:slf4j-simple
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 24d8afe19..76cc45906 100644
--- a/pom.xml
+++ b/pom.xml
@@ -79,7 +79,7 @@
         <jacoco.minCoverage>0.7</jacoco.minCoverage>
         <dependencyCheck.version>9.1.0</dependencyCheck.version>
         <jackson.version>2.17.0</jackson.version>
-        <slf4j.version>2.0.12</slf4j.version>
+        <slf4j.version>2.0.13</slf4j.version>
         <junit.version>5.10.2</junit.version>
         <mockito.version>5.11.0</mockito.version>
         <hamcrest.version>1.3</hamcrest.version>

From 168532bf3ff6b689354205556cb442f3eda3d884 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 15 Apr 2024 04:43:40 +0000
Subject: [PATCH 182/430] chore(deps): bump
 org.apache.maven.plugins:maven-gpg-plugin

Bumps [org.apache.maven.plugins:maven-gpg-plugin](https://github.com/apache/maven-gpg-plugin) from 3.2.2 to 3.2.3.
- [Release notes](https://github.com/apache/maven-gpg-plugin/releases)
- [Commits](https://github.com/apache/maven-gpg-plugin/compare/maven-gpg-plugin-3.2.2...maven-gpg-plugin-3.2.3)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-gpg-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 24d8afe19..94ddddd52 100644
--- a/pom.xml
+++ b/pom.xml
@@ -292,7 +292,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-gpg-plugin</artifactId>
-                        <version>3.2.2</version>
+                        <version>3.2.3</version>
                         <executions>
                             <execution>
                                 <id>sign-artifacts</id>

From 7e0e5daedc74ca970dda586352d58825ce6d954b Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Mon, 15 Apr 2024 07:29:14 +0200
Subject: [PATCH 183/430] chore(deps): Update maven-jar-plugin to 3.4.0

---
 aws-serverless-java-container-core/pom.xml                      | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 pom.xml                                                         | 2 +-
 samples/jersey/pet-store/pom.xml                                | 2 +-
 samples/spring/pet-store/pom.xml                                | 2 +-
 samples/springboot3/alt-pet-store/pom.xml                       | 2 +-
 samples/springboot3/graphql-pet-store/pom.xml                   | 2 +-
 samples/springboot3/pet-store/pom.xml                           | 2 +-
 9 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml
index 05e2f75d9..4dc3131a5 100644
--- a/aws-serverless-java-container-core/pom.xml
+++ b/aws-serverless-java-container-core/pom.xml
@@ -70,7 +70,7 @@
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-jar-plugin</artifactId>
-                <version>3.3.0</version>
+                <version>3.4.0</version>
                 <executions>
                     <execution>
                         <goals>
diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
index 54654aeef..8c5384dbf 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
@@ -134,7 +134,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-jar-plugin</artifactId>
-                        <version>3.3.0</version>
+                        <version>3.4.0</version>
                         <executions>
                             <execution>
                                 <id>default-jar</id>
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
index a218c78d7..b6ced3358 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
@@ -157,7 +157,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-jar-plugin</artifactId>
-                        <version>3.3.0</version>
+                        <version>3.4.0</version>
                         <executions>
                             <execution>
                                 <id>default-jar</id>
diff --git a/pom.xml b/pom.xml
index 94ddddd52..007021d38 100644
--- a/pom.xml
+++ b/pom.xml
@@ -216,7 +216,7 @@
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-jar-plugin</artifactId>
-                    <version>3.3.0</version>
+                    <version>3.4.0</version>
                 </plugin>
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
diff --git a/samples/jersey/pet-store/pom.xml b/samples/jersey/pet-store/pom.xml
index 5bf6da30d..9964add6e 100644
--- a/samples/jersey/pet-store/pom.xml
+++ b/samples/jersey/pet-store/pom.xml
@@ -112,7 +112,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-jar-plugin</artifactId>
-                        <version>3.3.0</version>
+                        <version>3.4.0</version>
                         <executions>
                             <execution>
                                 <id>default-jar</id>
diff --git a/samples/spring/pet-store/pom.xml b/samples/spring/pet-store/pom.xml
index a0803162d..4e823e306 100644
--- a/samples/spring/pet-store/pom.xml
+++ b/samples/spring/pet-store/pom.xml
@@ -133,7 +133,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-jar-plugin</artifactId>
-                        <version>3.3.0</version>
+                        <version>3.4.0</version>
                         <executions>
                             <execution>
                                 <id>default-jar</id>
diff --git a/samples/springboot3/alt-pet-store/pom.xml b/samples/springboot3/alt-pet-store/pom.xml
index 5dc89a9b4..ab9b608f8 100644
--- a/samples/springboot3/alt-pet-store/pom.xml
+++ b/samples/springboot3/alt-pet-store/pom.xml
@@ -83,7 +83,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-jar-plugin</artifactId>
-                        <version>3.3.0</version>
+                        <version>3.4.0</version>
                         <executions>
                             <execution>
                                 <id>default-jar</id>
diff --git a/samples/springboot3/graphql-pet-store/pom.xml b/samples/springboot3/graphql-pet-store/pom.xml
index 6b78c1a88..26b8b3c43 100644
--- a/samples/springboot3/graphql-pet-store/pom.xml
+++ b/samples/springboot3/graphql-pet-store/pom.xml
@@ -97,7 +97,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-jar-plugin</artifactId>
-                        <version>3.3.0</version>
+                        <version>3.4.0</version>
                         <executions>
                             <execution>
                                 <id>default-jar</id>
diff --git a/samples/springboot3/pet-store/pom.xml b/samples/springboot3/pet-store/pom.xml
index 5ae6787a2..a206581b2 100644
--- a/samples/springboot3/pet-store/pom.xml
+++ b/samples/springboot3/pet-store/pom.xml
@@ -89,7 +89,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-jar-plugin</artifactId>
-                        <version>3.3.0</version>
+                        <version>3.4.0</version>
                         <executions>
                             <execution>
                                 <id>default-jar</id>

From b0fd4b20c7e44074f1d048e871ee0237bd9b8872 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 22 Apr 2024 04:20:03 +0000
Subject: [PATCH 184/430] chore(deps): bump
 org.apache.maven.plugins:maven-gpg-plugin

Bumps [org.apache.maven.plugins:maven-gpg-plugin](https://github.com/apache/maven-gpg-plugin) from 3.2.3 to 3.2.4.
- [Release notes](https://github.com/apache/maven-gpg-plugin/releases)
- [Commits](https://github.com/apache/maven-gpg-plugin/compare/maven-gpg-plugin-3.2.3...maven-gpg-plugin-3.2.4)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-gpg-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index a115ef5eb..c53efed81 100644
--- a/pom.xml
+++ b/pom.xml
@@ -292,7 +292,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-gpg-plugin</artifactId>
-                        <version>3.2.3</version>
+                        <version>3.2.4</version>
                         <executions>
                             <execution>
                                 <id>sign-artifacts</id>

From a10e267e51c3d0d06902ecf1dcd8a66ba8110593 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Mon, 22 Apr 2024 06:49:02 +0200
Subject: [PATCH 185/430] chore(deps): Update Spring dependencies (framework to
 6.1.6, security to 6.2.4, boot to 3.2.5)

---
 aws-serverless-java-container-core/pom.xml                  | 2 +-
 aws-serverless-java-container-spring/pom.xml                | 4 ++--
 aws-serverless-java-container-springboot3/pom.xml           | 6 +++---
 .../src/main/resources/archetype-resources/build.gradle     | 4 ++--
 .../src/main/resources/archetype-resources/pom.xml          | 2 +-
 .../src/main/resources/archetype-resources/build.gradle     | 2 +-
 .../src/main/resources/archetype-resources/pom.xml          | 2 +-
 samples/spring/pet-store/build.gradle                       | 4 ++--
 samples/spring/pet-store/pom.xml                            | 2 +-
 samples/springboot3/alt-pet-store/build.gradle              | 2 +-
 samples/springboot3/alt-pet-store/pom.xml                   | 2 +-
 samples/springboot3/graphql-pet-store/pom.xml               | 2 +-
 samples/springboot3/pet-store-native/pom.xml                | 2 +-
 samples/springboot3/pet-store/build.gradle                  | 2 +-
 samples/springboot3/pet-store/pom.xml                       | 2 +-
 15 files changed, 20 insertions(+), 20 deletions(-)

diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml
index 4dc3131a5..9d002fb71 100644
--- a/aws-serverless-java-container-core/pom.xml
+++ b/aws-serverless-java-container-core/pom.xml
@@ -60,7 +60,7 @@
         <dependency>
             <groupId>org.springframework.security</groupId>
             <artifactId>spring-security-web</artifactId>
-            <version>6.2.3</version>
+            <version>6.2.4</version>
             <scope>test</scope>
         </dependency>
     </dependencies>
diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml
index 665470224..b24689e8a 100644
--- a/aws-serverless-java-container-spring/pom.xml
+++ b/aws-serverless-java-container-spring/pom.xml
@@ -16,8 +16,8 @@
     </parent>
 
     <properties>
-        <spring.version>6.1.5</spring.version>
-        <spring-security.version>6.2.3</spring-security.version>
+        <spring.version>6.1.6</spring.version>
+        <spring-security.version>6.2.4</spring-security.version>
     </properties>
 
     <dependencies>
diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml
index 50a4f5422..24c0a9c7c 100644
--- a/aws-serverless-java-container-springboot3/pom.xml
+++ b/aws-serverless-java-container-springboot3/pom.xml
@@ -15,9 +15,9 @@
     <version>2.1.0-SNAPSHOT</version>
 
     <properties>
-        <spring.version>6.1.5</spring.version>
-        <springboot.version>3.2.4</springboot.version>
-        <springsecurity.version>6.2.3</springsecurity.version>
+        <spring.version>6.1.6</spring.version>
+        <springboot.version>3.2.5</springboot.version>
+        <springsecurity.version>6.2.4</springsecurity.version>
     </properties>
 
     <dependencies>
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
index 0a4d5d6b7..f4fd06a9e 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
@@ -7,8 +7,8 @@ repositories {
 
 dependencies {
   implementation (
-          'org.springframework:spring-webmvc:6.1.5',
-          'org.springframework:spring-context:6.1.5',
+          'org.springframework:spring-webmvc:6.1.6',
+          'org.springframework:spring-context:6.1.6',
           'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)',
           'org.apache.logging.log4j:log4j-core:2.23.1',
           'org.apache.logging.log4j:log4j-api:2.23.1',
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
index b6ced3358..f96559fd2 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
@@ -16,7 +16,7 @@
     <properties>
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
-        <spring.version>6.1.5</spring.version>
+        <spring.version>6.1.6</spring.version>
         <junit.version>5.10.2</junit.version>
         <log4j.version>2.23.1</log4j.version>
     </properties>
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
index 58322b33b..4d917c27a 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
@@ -9,7 +9,7 @@ repositories {
 
 dependencies {
   implementation (
-          'org.springframework.boot:spring-boot-starter-web:3.2.4',
+          'org.springframework.boot:spring-boot-starter-web:3.2.5',
           'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)',
   )
 
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
index 80bc10761..0a9f1bc64 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
@@ -16,7 +16,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.2.4</version>
+        <version>3.2.5</version>
     </parent>
 
     <properties>
diff --git a/samples/spring/pet-store/build.gradle b/samples/spring/pet-store/build.gradle
index 304891e8f..b97fe0554 100644
--- a/samples/spring/pet-store/build.gradle
+++ b/samples/spring/pet-store/build.gradle
@@ -7,8 +7,8 @@ repositories {
 
 dependencies {
   implementation (
-          'org.springframework:spring-webmvc:6.1.5',
-          'org.springframework:spring-context:6.1.5',
+          'org.springframework:spring-webmvc:6.1.6',
+          'org.springframework:spring-context:6.1.6',
           'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)',
           'org.apache.logging.log4j:log4j-core:2.23.1',
           'org.apache.logging.log4j:log4j-api:2.23.1',
diff --git a/samples/spring/pet-store/pom.xml b/samples/spring/pet-store/pom.xml
index 4e823e306..42499a766 100644
--- a/samples/spring/pet-store/pom.xml
+++ b/samples/spring/pet-store/pom.xml
@@ -24,7 +24,7 @@
     </licenses>
 
     <properties>
-        <spring.version>6.1.5</spring.version>
+        <spring.version>6.1.6</spring.version>
         <log4j.version>2.23.1</log4j.version>
         <maven.compiler.source>17</maven.compiler.source>
         <maven.compiler.target>17</maven.compiler.target>
diff --git a/samples/springboot3/alt-pet-store/build.gradle b/samples/springboot3/alt-pet-store/build.gradle
index 746782c86..0ddec053b 100644
--- a/samples/springboot3/alt-pet-store/build.gradle
+++ b/samples/springboot3/alt-pet-store/build.gradle
@@ -9,7 +9,7 @@ repositories {
 
 dependencies {
   implementation (
-          implementation('org.springframework.boot:spring-boot-starter-web:3.2.4') {
+          implementation('org.springframework.boot:spring-boot-starter-web:3.2.5') {
             exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat'
           },
           'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)',
diff --git a/samples/springboot3/alt-pet-store/pom.xml b/samples/springboot3/alt-pet-store/pom.xml
index ab9b608f8..1a6c39059 100644
--- a/samples/springboot3/alt-pet-store/pom.xml
+++ b/samples/springboot3/alt-pet-store/pom.xml
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.2.4</version>
+        <version>3.2.5</version>
     </parent>
 
     <licenses>
diff --git a/samples/springboot3/graphql-pet-store/pom.xml b/samples/springboot3/graphql-pet-store/pom.xml
index 26b8b3c43..15cef264c 100644
--- a/samples/springboot3/graphql-pet-store/pom.xml
+++ b/samples/springboot3/graphql-pet-store/pom.xml
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.2.4</version>
+        <version>3.2.5</version>
     </parent>
 
     <licenses>
diff --git a/samples/springboot3/pet-store-native/pom.xml b/samples/springboot3/pet-store-native/pom.xml
index ae5dbda1f..b40ca7ad3 100644
--- a/samples/springboot3/pet-store-native/pom.xml
+++ b/samples/springboot3/pet-store-native/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.springframework.boot</groupId>
 		<artifactId>spring-boot-starter-parent</artifactId>
-		<version>3.2.4</version>
+		<version>3.2.5</version>
 		<relativePath /> <!-- lookup parent from repository -->
 	</parent>
 	<groupId>com.amazonaws.serverless.sample</groupId>
diff --git a/samples/springboot3/pet-store/build.gradle b/samples/springboot3/pet-store/build.gradle
index 746782c86..0ddec053b 100644
--- a/samples/springboot3/pet-store/build.gradle
+++ b/samples/springboot3/pet-store/build.gradle
@@ -9,7 +9,7 @@ repositories {
 
 dependencies {
   implementation (
-          implementation('org.springframework.boot:spring-boot-starter-web:3.2.4') {
+          implementation('org.springframework.boot:spring-boot-starter-web:3.2.5') {
             exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat'
           },
           'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)',
diff --git a/samples/springboot3/pet-store/pom.xml b/samples/springboot3/pet-store/pom.xml
index a206581b2..10c186a02 100644
--- a/samples/springboot3/pet-store/pom.xml
+++ b/samples/springboot3/pet-store/pom.xml
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.2.4</version>
+        <version>3.2.5</version>
     </parent>
 
     <licenses>

From 50121959b5b296c7580a58832aaf00117bd29083 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Mon, 22 Apr 2024 10:19:57 +0200
Subject: [PATCH 186/430] chore(deps): Update maven-jar-plugin to 3.4.1

---
 aws-serverless-java-container-core/pom.xml                      | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 pom.xml                                                         | 2 +-
 samples/jersey/pet-store/pom.xml                                | 2 +-
 samples/spring/pet-store/pom.xml                                | 2 +-
 samples/springboot3/alt-pet-store/pom.xml                       | 2 +-
 samples/springboot3/graphql-pet-store/pom.xml                   | 2 +-
 samples/springboot3/pet-store/pom.xml                           | 2 +-
 9 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml
index 9d002fb71..a6278f9e3 100644
--- a/aws-serverless-java-container-core/pom.xml
+++ b/aws-serverless-java-container-core/pom.xml
@@ -70,7 +70,7 @@
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-jar-plugin</artifactId>
-                <version>3.4.0</version>
+                <version>3.4.1</version>
                 <executions>
                     <execution>
                         <goals>
diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
index 8c5384dbf..a28137a87 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
@@ -134,7 +134,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-jar-plugin</artifactId>
-                        <version>3.4.0</version>
+                        <version>3.4.1</version>
                         <executions>
                             <execution>
                                 <id>default-jar</id>
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
index f96559fd2..20222c7b5 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
@@ -157,7 +157,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-jar-plugin</artifactId>
-                        <version>3.4.0</version>
+                        <version>3.4.1</version>
                         <executions>
                             <execution>
                                 <id>default-jar</id>
diff --git a/pom.xml b/pom.xml
index c53efed81..f7af293d0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -216,7 +216,7 @@
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-jar-plugin</artifactId>
-                    <version>3.4.0</version>
+                    <version>3.4.1</version>
                 </plugin>
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
diff --git a/samples/jersey/pet-store/pom.xml b/samples/jersey/pet-store/pom.xml
index 9964add6e..3914eba44 100644
--- a/samples/jersey/pet-store/pom.xml
+++ b/samples/jersey/pet-store/pom.xml
@@ -112,7 +112,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-jar-plugin</artifactId>
-                        <version>3.4.0</version>
+                        <version>3.4.1</version>
                         <executions>
                             <execution>
                                 <id>default-jar</id>
diff --git a/samples/spring/pet-store/pom.xml b/samples/spring/pet-store/pom.xml
index 42499a766..b81b475ac 100644
--- a/samples/spring/pet-store/pom.xml
+++ b/samples/spring/pet-store/pom.xml
@@ -133,7 +133,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-jar-plugin</artifactId>
-                        <version>3.4.0</version>
+                        <version>3.4.1</version>
                         <executions>
                             <execution>
                                 <id>default-jar</id>
diff --git a/samples/springboot3/alt-pet-store/pom.xml b/samples/springboot3/alt-pet-store/pom.xml
index 1a6c39059..0da1dcebc 100644
--- a/samples/springboot3/alt-pet-store/pom.xml
+++ b/samples/springboot3/alt-pet-store/pom.xml
@@ -83,7 +83,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-jar-plugin</artifactId>
-                        <version>3.4.0</version>
+                        <version>3.4.1</version>
                         <executions>
                             <execution>
                                 <id>default-jar</id>
diff --git a/samples/springboot3/graphql-pet-store/pom.xml b/samples/springboot3/graphql-pet-store/pom.xml
index 15cef264c..5e5fd76ae 100644
--- a/samples/springboot3/graphql-pet-store/pom.xml
+++ b/samples/springboot3/graphql-pet-store/pom.xml
@@ -97,7 +97,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-jar-plugin</artifactId>
-                        <version>3.4.0</version>
+                        <version>3.4.1</version>
                         <executions>
                             <execution>
                                 <id>default-jar</id>
diff --git a/samples/springboot3/pet-store/pom.xml b/samples/springboot3/pet-store/pom.xml
index 10c186a02..40120a6af 100644
--- a/samples/springboot3/pet-store/pom.xml
+++ b/samples/springboot3/pet-store/pom.xml
@@ -89,7 +89,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-jar-plugin</artifactId>
-                        <version>3.4.0</version>
+                        <version>3.4.1</version>
                         <executions>
                             <execution>
                                 <id>default-jar</id>

From 964a8dffdf7eb56020852d5986decefa1df0a4bf Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Tue, 23 Apr 2024 17:13:02 +0200
Subject: [PATCH 187/430] chore(deps): remove jakarta.el:jakarta.el-api test
 dependency definition

---
 aws-serverless-java-container-spring/pom.xml | 7 -------
 1 file changed, 7 deletions(-)

diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml
index b24689e8a..103991c5d 100644
--- a/aws-serverless-java-container-spring/pom.xml
+++ b/aws-serverless-java-container-spring/pom.xml
@@ -84,13 +84,6 @@
             <scope>test</scope>
         </dependency>
 
-        <dependency>
-            <groupId>jakarta.el</groupId>
-            <artifactId>jakarta.el-api</artifactId>
-            <version>5.0.1</version>
-            <scope>test</scope>
-        </dependency>
-
         <dependency>
             <groupId>org.glassfish.expressly</groupId>
             <artifactId>expressly</artifactId>

From 2005a5c13c7550facaa8f6e421f98afc952263e1 Mon Sep 17 00:00:00 2001
From: Oleg Zhurakousky <ozhurakousky@vmware.com>
Date: Thu, 25 Apr 2024 17:44:28 +0200
Subject: [PATCH 188/430] Uograde SCF to 4.1.2-SNAPSHOT

---
 aws-serverless-java-container-springboot3/pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml
index 24c0a9c7c..61ccfb0f0 100644
--- a/aws-serverless-java-container-springboot3/pom.xml
+++ b/aws-serverless-java-container-springboot3/pom.xml
@@ -25,7 +25,7 @@
         <dependency>
             <groupId>org.springframework.cloud</groupId>
             <artifactId>spring-cloud-function-serverless-web</artifactId>
-            <version>4.1.1</version>
+            <version>4.1.2-SNAPSHOT</version>
         </dependency>
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>

From 290bd1043c06888410d261fc2b0c6dc7941113f5 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 29 Apr 2024 04:43:06 +0000
Subject: [PATCH 189/430] chore(deps): bump commons-codec:commons-codec from
 1.16.1 to 1.17.0

Bumps [commons-codec:commons-codec](https://github.com/apache/commons-codec) from 1.16.1 to 1.17.0.
- [Changelog](https://github.com/apache/commons-codec/blob/master/RELEASE-NOTES.txt)
- [Commits](https://github.com/apache/commons-codec/compare/rel/commons-codec-1.16.1...rel/commons-codec-1.17.0)

---
updated-dependencies:
- dependency-name: commons-codec:commons-codec
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 aws-serverless-java-container-jersey/pom.xml | 2 +-
 aws-serverless-java-container-spring/pom.xml | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/aws-serverless-java-container-jersey/pom.xml b/aws-serverless-java-container-jersey/pom.xml
index f93cee62a..09f9205dc 100644
--- a/aws-serverless-java-container-jersey/pom.xml
+++ b/aws-serverless-java-container-jersey/pom.xml
@@ -64,7 +64,7 @@
         <dependency>
             <groupId>commons-codec</groupId>
             <artifactId>commons-codec</artifactId>
-            <version>1.16.1</version>
+            <version>1.17.0</version>
             <scope>test</scope>
         </dependency>
 
diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml
index 103991c5d..3c33400ac 100644
--- a/aws-serverless-java-container-spring/pom.xml
+++ b/aws-serverless-java-container-spring/pom.xml
@@ -53,7 +53,7 @@
         <dependency>
             <groupId>commons-codec</groupId>
             <artifactId>commons-codec</artifactId>
-            <version>1.16.1</version>
+            <version>1.17.0</version>
             <scope>test</scope>
         </dependency>
 

From 04a0e635e399c92ea0d22c80b8efd92e4530991b Mon Sep 17 00:00:00 2001
From: mbfreder <mbfreder@amazon.com>
Date: Sun, 28 Apr 2024 23:48:17 -0700
Subject: [PATCH 190/430] fix ArrayIndexOutOfBoundsException on getRemotePort()

---
 .../internal/servlet/AwsProxyHttpServletRequest.java  | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequest.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequest.java
index 31fc7c2c8..063f71435 100644
--- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequest.java
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequest.java
@@ -444,10 +444,10 @@ public String getRemoteAddr() {
     @Override
     public String getRemoteHost() {
         if (Objects.nonNull(request.getRequestContext().getElb())) {
-            String host_header = request.getHeaders().get(HttpHeaders.HOST);
+            String hostHeader = request.getHeaders().get(HttpHeaders.HOST);
 
             // the host header has the form host:port, so we split the string to get the host part
-            return Arrays.asList(host_header.split(":")).get(0);
+            return Arrays.asList(hostHeader.split(":")).get(0);
         }
 
         return request.getMultiValueHeaders().getFirst(HttpHeaders.HOST);
@@ -481,10 +481,9 @@ public RequestDispatcher getRequestDispatcher(String s) {
     @Override
     public int getRemotePort() {
         if (Objects.nonNull(request.getRequestContext().getElb())) {
-            String hostHeader = request.getHeaders().get(HttpHeaders.HOST);
-            String port = Arrays.asList(hostHeader.split(":")).get(1);
-            if (Objects.nonNull(port))
-                return Integer.parseInt(port);
+            String hostHeader = request.getHeaders().get(PORT_HEADER_NAME);
+            if (Objects.nonNull(hostHeader))
+                return Integer.parseInt(hostHeader);
         }
         return 0;
     }

From dbbb6611c79753815ed77f9493c42667dd6da929 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Mon, 29 Apr 2024 14:31:37 +0200
Subject: [PATCH 191/430] chore(deps): Update maven-shade-plugin to 3.5.3

---
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 samples/jersey/pet-store/pom.xml                                | 2 +-
 samples/spring/pet-store/pom.xml                                | 2 +-
 samples/springboot3/alt-pet-store/pom.xml                       | 2 +-
 samples/springboot3/graphql-pet-store/pom.xml                   | 2 +-
 samples/springboot3/pet-store/pom.xml                           | 2 +-
 8 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
index a28137a87..991ff68bf 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
@@ -107,7 +107,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-shade-plugin</artifactId>
-                        <version>3.5.2</version>
+                        <version>3.5.3</version>
                         <configuration>
                             <createDependencyReducedPom>false</createDependencyReducedPom>
                         </configuration>
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
index 20222c7b5..d93cc6cde 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
@@ -119,7 +119,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-shade-plugin</artifactId>
-                        <version>3.5.2</version>
+                        <version>3.5.3</version>
                         <executions>
                             <execution>
                                 <phase>package</phase>
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
index 0a9f1bc64..4afcfb58d 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
@@ -83,7 +83,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-shade-plugin</artifactId>
-                        <version>3.5.2</version>
+                        <version>3.5.3</version>
                         <configuration>
                             <createDependencyReducedPom>false</createDependencyReducedPom>
                         </configuration>
diff --git a/samples/jersey/pet-store/pom.xml b/samples/jersey/pet-store/pom.xml
index 3914eba44..5fa5b867d 100644
--- a/samples/jersey/pet-store/pom.xml
+++ b/samples/jersey/pet-store/pom.xml
@@ -85,7 +85,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-shade-plugin</artifactId>
-                        <version>3.5.2</version>
+                        <version>3.5.3</version>
                         <configuration>
                             <createDependencyReducedPom>false</createDependencyReducedPom>
                         </configuration>
diff --git a/samples/spring/pet-store/pom.xml b/samples/spring/pet-store/pom.xml
index b81b475ac..0900907a6 100644
--- a/samples/spring/pet-store/pom.xml
+++ b/samples/spring/pet-store/pom.xml
@@ -95,7 +95,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-shade-plugin</artifactId>
-                        <version>3.5.2</version>
+                        <version>3.5.3</version>
                         <executions>
                             <execution>
                                 <phase>package</phase>
diff --git a/samples/springboot3/alt-pet-store/pom.xml b/samples/springboot3/alt-pet-store/pom.xml
index 0da1dcebc..d5e2690d8 100644
--- a/samples/springboot3/alt-pet-store/pom.xml
+++ b/samples/springboot3/alt-pet-store/pom.xml
@@ -49,7 +49,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-shade-plugin</artifactId>
-                        <version>3.5.2</version>
+                        <version>3.5.3</version>
                         <configuration>
                             <createDependencyReducedPom>false</createDependencyReducedPom>
                         </configuration>
diff --git a/samples/springboot3/graphql-pet-store/pom.xml b/samples/springboot3/graphql-pet-store/pom.xml
index 5e5fd76ae..ff513322a 100644
--- a/samples/springboot3/graphql-pet-store/pom.xml
+++ b/samples/springboot3/graphql-pet-store/pom.xml
@@ -63,7 +63,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-shade-plugin</artifactId>
-                        <version>3.5.2</version>
+                        <version>3.5.3</version>
                         <configuration>
                             <createDependencyReducedPom>false</createDependencyReducedPom>
                         </configuration>
diff --git a/samples/springboot3/pet-store/pom.xml b/samples/springboot3/pet-store/pom.xml
index 40120a6af..5d267786e 100644
--- a/samples/springboot3/pet-store/pom.xml
+++ b/samples/springboot3/pet-store/pom.xml
@@ -55,7 +55,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-shade-plugin</artifactId>
-                        <version>3.5.2</version>
+                        <version>3.5.3</version>
                         <configuration>
                             <createDependencyReducedPom>false</createDependencyReducedPom>
                         </configuration>

From e7afb3fb23b72709a10110fdf72c3b6d22770da3 Mon Sep 17 00:00:00 2001
From: mbfreder <mbfreder@amazon.com>
Date: Mon, 29 Apr 2024 09:37:40 -0700
Subject: [PATCH 192/430] fix port header var naming

---
 .../proxy/internal/servlet/AwsProxyHttpServletRequest.java | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequest.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequest.java
index 063f71435..9a18fc8e5 100644
--- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequest.java
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequest.java
@@ -481,9 +481,10 @@ public RequestDispatcher getRequestDispatcher(String s) {
     @Override
     public int getRemotePort() {
         if (Objects.nonNull(request.getRequestContext().getElb())) {
-            String hostHeader = request.getHeaders().get(PORT_HEADER_NAME);
-            if (Objects.nonNull(hostHeader))
-                return Integer.parseInt(hostHeader);
+            String portHeader = request.getHeaders().get(PORT_HEADER_NAME);
+            if (Objects.nonNull(portHeader)) {
+                return Integer.parseInt(portHeader);
+            }
         }
         return 0;
     }

From 46d96376daffc1159872d5ebad9e35c43b0df6f7 Mon Sep 17 00:00:00 2001
From: mbfreder <mbfreder@amazon.com>
Date: Mon, 29 Apr 2024 23:28:33 -0700
Subject: [PATCH 193/430] update getRomteAddr()

---
 .../proxy/internal/servlet/AwsHttpServletRequest.java          | 1 +
 .../proxy/internal/servlet/AwsProxyHttpServletRequest.java     | 3 +++
 2 files changed, 4 insertions(+)

diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java
index d17270d98..b76fd216e 100644
--- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java
@@ -76,6 +76,7 @@ public abstract class AwsHttpServletRequest implements HttpServletRequest {
     static final String PROTOCOL_HEADER_NAME = "X-Forwarded-Proto";
     static final String HOST_HEADER_NAME = "Host";
     static final String PORT_HEADER_NAME = "X-Forwarded-Port";
+    static final String CLIENT_IP_HEADER = "X-Forwarded-For";
 
 
     //-------------------------------------------------------------
diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequest.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequest.java
index 9a18fc8e5..17d04a57c 100644
--- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequest.java
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequest.java
@@ -437,6 +437,9 @@ public String getRemoteAddr() {
         if (request.getRequestContext() == null || request.getRequestContext().getIdentity() == null) {
             return "127.0.0.1";
         }
+        if (request.getRequestContext().getElb() != null) {
+            return request.getHeaders().get(CLIENT_IP_HEADER);
+        }
         return request.getRequestContext().getIdentity().getSourceIp();
     }
 

From 6fcdd4c0a73baf8669091ec57715fed6fcf3ed99 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 6 May 2024 04:46:13 +0000
Subject: [PATCH 194/430] chore(deps): bump
 com.github.spotbugs:spotbugs-maven-plugin

Bumps [com.github.spotbugs:spotbugs-maven-plugin](https://github.com/spotbugs/spotbugs-maven-plugin) from 4.8.4.0 to 4.8.5.0.
- [Release notes](https://github.com/spotbugs/spotbugs-maven-plugin/releases)
- [Commits](https://github.com/spotbugs/spotbugs-maven-plugin/compare/spotbugs-maven-plugin-4.8.4.0...spotbugs-maven-plugin-4.8.5.0)

---
updated-dependencies:
- dependency-name: com.github.spotbugs:spotbugs-maven-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 89648fed0..683fc40dd 100644
--- a/pom.xml
+++ b/pom.xml
@@ -249,7 +249,7 @@
                 <plugin>
                     <groupId>com.github.spotbugs</groupId>
                     <artifactId>spotbugs-maven-plugin</artifactId>
-                    <version>4.8.4.0</version>
+                    <version>4.8.5.0</version>
                     <configuration>
                         <!--
                             Enables analysis which takes more memory but finds more bugs.

From 767ef676e5e389909834cbd13d9747de455df34f Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 6 May 2024 04:46:29 +0000
Subject: [PATCH 195/430] chore(deps): bump
 com.github.spotbugs:spotbugs-annotations

Bumps [com.github.spotbugs:spotbugs-annotations](https://github.com/spotbugs/spotbugs) from 4.8.4 to 4.8.5.
- [Release notes](https://github.com/spotbugs/spotbugs/releases)
- [Changelog](https://github.com/spotbugs/spotbugs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/spotbugs/spotbugs/compare/4.8.4...4.8.5)

---
updated-dependencies:
- dependency-name: com.github.spotbugs:spotbugs-annotations
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 89648fed0..a1d965849 100644
--- a/pom.xml
+++ b/pom.xml
@@ -140,7 +140,7 @@
         <dependency>
             <groupId>com.github.spotbugs</groupId>
             <artifactId>spotbugs-annotations</artifactId>
-            <version>4.8.4</version>
+            <version>4.8.5</version>
             <scope>provided</scope>
         </dependency>
     </dependencies>

From 441fd231d5fc9193604a860fc8e9dddc3604d2bf Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Tue, 7 May 2024 17:58:11 +0200
Subject: [PATCH 196/430] fix: reuse AsyncInitializationWrapper in
 SpringDelegatingLambdaContainerHandler

---
 ...pringDelegatingLambdaContainerHandler.java | 42 ++++++++++++++-----
 ...DelegatingLambdaContainerHandlerTests.java |  3 +-
 2 files changed, 33 insertions(+), 12 deletions(-)

diff --git a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/SpringDelegatingLambdaContainerHandler.java b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/SpringDelegatingLambdaContainerHandler.java
index 1af435c0f..765c4befe 100644
--- a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/SpringDelegatingLambdaContainerHandler.java
+++ b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/SpringDelegatingLambdaContainerHandler.java
@@ -4,7 +4,10 @@
 import java.io.InputStream;
 import java.io.OutputStream;
 
+import com.amazonaws.serverless.exceptions.ContainerInitializationException;
+import com.amazonaws.serverless.proxy.AsyncInitializationWrapper;
 import com.amazonaws.serverless.proxy.InitializationTypeHelper;
+import com.amazonaws.serverless.proxy.internal.InitializableLambdaContainerHandler;
 import com.amazonaws.serverless.proxy.model.AwsProxyResponse;
 import org.springframework.cloud.function.serverless.web.FunctionClassUtils;
 import org.springframework.cloud.function.serverless.web.ServerlessMVC;
@@ -38,25 +41,23 @@
  *
  */
 public class SpringDelegatingLambdaContainerHandler implements RequestStreamHandler {
-
-    private final Class<?>[] startupClasses;
-
     private final ServerlessMVC mvc;
-
     private final ObjectMapper mapper;
-
     private final AwsProxyHttpServletResponseWriter responseWriter;
 
-    public SpringDelegatingLambdaContainerHandler() {
+    public SpringDelegatingLambdaContainerHandler() throws ContainerInitializationException {
         this(new Class[] {FunctionClassUtils.getStartClass()});
     }
 
-    public SpringDelegatingLambdaContainerHandler(Class<?>... startupClasses) {
-        this.startupClasses = startupClasses;
-        this.mvc = ServerlessMVC.INSTANCE(this.startupClasses);
+    public SpringDelegatingLambdaContainerHandler(final Class<?>... startupClasses) throws ContainerInitializationException {
+        SpringDelegatingInitHandler initHandler = new SpringDelegatingInitHandler(startupClasses);
         if (InitializationTypeHelper.isAsyncInitializationDisabled()) {
-    		mvc.waitForContext();
-    	}
+            initHandler.initialize();
+    	} else {
+            AsyncInitializationWrapper asyncInitWrapper = new AsyncInitializationWrapper();
+            asyncInitWrapper.start(initHandler);
+        }
+        this.mvc = initHandler.getMvc();
         this.mapper = new ObjectMapper();
         this.responseWriter = new AwsProxyHttpServletResponseWriter();
     }
@@ -68,4 +69,23 @@ public void handleRequest(InputStream input, OutputStream output, Context lambda
         AwsProxyResponse awsProxyResponse = AwsSpringHttpProcessingUtils.processRequest(httpServletRequest, mvc, responseWriter);
         this.mapper.writeValue(output, awsProxyResponse);
     }
+
+    private static final class SpringDelegatingInitHandler implements InitializableLambdaContainerHandler {
+        private ServerlessMVC mvc;
+        private final Class<?>[] startupClasses;
+
+        public SpringDelegatingInitHandler(final Class<?>... startupClasses) {
+            this.startupClasses = startupClasses;
+        }
+
+        @Override
+        public void initialize() throws ContainerInitializationException {
+            this.mvc = ServerlessMVC.INSTANCE(this.startupClasses);
+            this.mvc.waitForContext();
+        }
+
+        public ServerlessMVC getMvc() {
+            return this.mvc;
+        }
+    }
 }
diff --git a/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/SpringDelegatingLambdaContainerHandlerTests.java b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/SpringDelegatingLambdaContainerHandlerTests.java
index ff1f209b5..2fb85e7e7 100644
--- a/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/SpringDelegatingLambdaContainerHandlerTests.java
+++ b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/SpringDelegatingLambdaContainerHandlerTests.java
@@ -11,6 +11,7 @@
 import java.util.HashMap;
 import java.util.Map;
 
+import com.amazonaws.serverless.exceptions.ContainerInitializationException;
 import org.junit.jupiter.params.ParameterizedTest;
 import org.junit.jupiter.params.provider.MethodSource;
 import org.springframework.cloud.function.serverless.web.ServerlessServletContext;
@@ -200,7 +201,7 @@ public class SpringDelegatingLambdaContainerHandlerTests {
 
     private ObjectMapper mapper = new ObjectMapper();
 
-    public void initServletAppTest()  {
+    public void initServletAppTest() throws ContainerInitializationException {
         this.handler = new SpringDelegatingLambdaContainerHandler(ServletApplication.class);
     }
 

From 201edc8d50e0764a9709159318c87c0d1e15bf77 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Wed, 8 May 2024 18:46:52 +0200
Subject: [PATCH 197/430] chore(deps): Update maven-install-plugin to 3.1.1

---
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 pom.xml                                                         | 2 +-
 samples/jersey/pet-store/pom.xml                                | 2 +-
 samples/spring/pet-store/pom.xml                                | 2 +-
 samples/springboot3/alt-pet-store/pom.xml                       | 2 +-
 samples/springboot3/graphql-pet-store/pom.xml                   | 2 +-
 samples/springboot3/pet-store/pom.xml                           | 2 +-
 9 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
index 991ff68bf..88790e7ce 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
@@ -145,7 +145,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-install-plugin</artifactId>
-                        <version>3.1.1</version>
+                        <version>3.1.2</version>
                         <configuration>
                             <skip>true</skip>
                         </configuration>
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
index d93cc6cde..dae604588 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
@@ -168,7 +168,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-install-plugin</artifactId>
-                        <version>3.1.1</version>
+                        <version>3.1.2</version>
                         <configuration>
                             <skip>true</skip>
                         </configuration>
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
index 4afcfb58d..6ffdf7fac 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
@@ -128,7 +128,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-install-plugin</artifactId>
-                        <version>3.1.1</version>
+                        <version>3.1.2</version>
                         <configuration>
                             <skip>true</skip>
                         </configuration>
diff --git a/pom.xml b/pom.xml
index 0cc6f7dc4..5cc386215 100644
--- a/pom.xml
+++ b/pom.xml
@@ -231,7 +231,7 @@
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-install-plugin</artifactId>
-                    <version>3.1.1</version>
+                    <version>3.1.2</version>
                 </plugin>
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
diff --git a/samples/jersey/pet-store/pom.xml b/samples/jersey/pet-store/pom.xml
index 5fa5b867d..ff8595519 100644
--- a/samples/jersey/pet-store/pom.xml
+++ b/samples/jersey/pet-store/pom.xml
@@ -123,7 +123,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-install-plugin</artifactId>
-                        <version>3.1.1</version>
+                        <version>3.1.2</version>
                         <configuration>
                             <skip>true</skip>
                         </configuration>
diff --git a/samples/spring/pet-store/pom.xml b/samples/spring/pet-store/pom.xml
index 0900907a6..58d38dbab 100644
--- a/samples/spring/pet-store/pom.xml
+++ b/samples/spring/pet-store/pom.xml
@@ -144,7 +144,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-install-plugin</artifactId>
-                        <version>3.1.1</version>
+                        <version>3.1.2</version>
                         <configuration>
                             <skip>true</skip>
                         </configuration>
diff --git a/samples/springboot3/alt-pet-store/pom.xml b/samples/springboot3/alt-pet-store/pom.xml
index d5e2690d8..e634f8234 100644
--- a/samples/springboot3/alt-pet-store/pom.xml
+++ b/samples/springboot3/alt-pet-store/pom.xml
@@ -94,7 +94,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-install-plugin</artifactId>
-                        <version>3.1.1</version>
+                        <version>3.1.2</version>
                         <configuration>
                             <skip>true</skip>
                         </configuration>
diff --git a/samples/springboot3/graphql-pet-store/pom.xml b/samples/springboot3/graphql-pet-store/pom.xml
index ff513322a..05e079989 100644
--- a/samples/springboot3/graphql-pet-store/pom.xml
+++ b/samples/springboot3/graphql-pet-store/pom.xml
@@ -108,7 +108,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-install-plugin</artifactId>
-                        <version>3.1.1</version>
+                        <version>3.1.2</version>
                         <configuration>
                             <skip>true</skip>
                         </configuration>
diff --git a/samples/springboot3/pet-store/pom.xml b/samples/springboot3/pet-store/pom.xml
index 5d267786e..74479a1fa 100644
--- a/samples/springboot3/pet-store/pom.xml
+++ b/samples/springboot3/pet-store/pom.xml
@@ -100,7 +100,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-install-plugin</artifactId>
-                        <version>3.1.1</version>
+                        <version>3.1.2</version>
                         <configuration>
                             <skip>true</skip>
                         </configuration>

From 825b2cfb7b7da56d34babb9a666d7993bc0a5a48 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Thu, 9 May 2024 05:16:34 +0000
Subject: [PATCH 198/430] chore(deps): bump
 org.apache.maven.plugins:maven-deploy-plugin

Bumps [org.apache.maven.plugins:maven-deploy-plugin](https://github.com/apache/maven-deploy-plugin) from 3.1.1 to 3.1.2.
- [Release notes](https://github.com/apache/maven-deploy-plugin/releases)
- [Commits](https://github.com/apache/maven-deploy-plugin/compare/maven-deploy-plugin-3.1.1...maven-deploy-plugin-3.1.2)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-deploy-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 5cc386215..92f1fb0d1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -226,7 +226,7 @@
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-deploy-plugin</artifactId>
-                    <version>3.1.1</version>
+                    <version>3.1.2</version>
                 </plugin>
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>

From ac38ef52ea253fbd74c29bc52960f3f856b718a9 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Fri, 10 May 2024 08:53:00 +0200
Subject: [PATCH 199/430] chore(deps): Update Jackson to 2.17.1

---
 .../src/main/resources/archetype-resources/build.gradle       | 2 +-
 .../src/main/resources/archetype-resources/pom.xml            | 2 +-
 .../src/main/resources/archetype-resources/build.gradle       | 2 +-
 .../src/main/resources/archetype-resources/build.gradle       | 4 ++--
 .../src/main/resources/archetype-resources/pom.xml            | 2 +-
 pom.xml                                                       | 2 +-
 samples/jersey/pet-store/build.gradle                         | 2 +-
 samples/jersey/pet-store/pom.xml                              | 2 +-
 samples/spring/pet-store/build.gradle                         | 2 +-
 samples/struts/pet-store/build.gradle                         | 4 ++--
 samples/struts/pet-store/pom.xml                              | 2 +-
 11 files changed, 13 insertions(+), 13 deletions(-)

diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
index 9bcd5f819..f0d0400c4 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
@@ -8,7 +8,7 @@ repositories {
 dependencies {
   implementation (
           'com.amazonaws.serverless:aws-serverless-java-container-jersey:[2.0-SNAPSHOT,)',
-          'com.fasterxml.jackson.core:jackson-databind:2.17.0',
+          'com.fasterxml.jackson.core:jackson-databind:2.17.1',
   )
 
   implementation("org.glassfish.jersey.media:jersey-media-json-jackson:3.1.6") {
diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
index 88790e7ce..ead8bda1c 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
@@ -16,7 +16,7 @@
         <maven.compiler.target>1.8</maven.compiler.target>
 
         <jersey.version>3.1.6</jersey.version>
-        <jackson.version>2.17.0</jackson.version>
+        <jackson.version>2.17.1</jackson.version>
         <junit.version>5.10.2</junit.version>
     </properties>
 
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
index f4fd06a9e..c11a4d917 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
@@ -13,7 +13,7 @@ dependencies {
           'org.apache.logging.log4j:log4j-core:2.23.1',
           'org.apache.logging.log4j:log4j-api:2.23.1',
           'org.apache.logging.log4j:log4j-slf4j-impl:2.23.1',
-          'com.fasterxml.jackson.core:jackson-databind:2.17.0',
+          'com.fasterxml.jackson.core:jackson-databind:2.17.1',
           'com.amazonaws:aws-lambda-java-log4j2:1.6.0',
   )
 
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
index f8b3469d5..a5123f51a 100644
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
@@ -34,8 +34,8 @@ dependencies {
     exclude group: 'org.apache.logging.log4j', module: 'log4j-api'
   }
   implementation ('org.hibernate.validator:hibernate-validator:6.1.7.Final')
-  implementation ('com.fasterxml.jackson.core:jackson-databind:2.17.0')
-  implementation ('com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.17.0')
+  implementation ('com.fasterxml.jackson.core:jackson-databind:2.17.1')
+  implementation ('com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.17.1')
   implementation ('org.apache.logging.log4j:log4j-core:2.23.1')
   implementation ('org.apache.logging.log4j:log4j-api:2.23.1')
   implementation ('org.apache.logging.log4j:log4j-slf4j-impl:2.23.1')
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
index f4655f0c7..2ef248b25 100644
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
@@ -16,7 +16,7 @@
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
         <struts.version>7.0.0-M3</struts.version>
-        <jackson.version>2.17.0</jackson.version>
+        <jackson.version>2.17.1</jackson.version>
         <junit.version>5.10.2</junit.version>
         <log4j.version>2.23.1</log4j.version>
     </properties>
diff --git a/pom.xml b/pom.xml
index 92f1fb0d1..5323a7d64 100644
--- a/pom.xml
+++ b/pom.xml
@@ -78,7 +78,7 @@
     <properties>
         <jacoco.minCoverage>0.7</jacoco.minCoverage>
         <dependencyCheck.version>9.1.0</dependencyCheck.version>
-        <jackson.version>2.17.0</jackson.version>
+        <jackson.version>2.17.1</jackson.version>
         <slf4j.version>2.0.13</slf4j.version>
         <junit.version>5.10.2</junit.version>
         <mockito.version>5.11.0</mockito.version>
diff --git a/samples/jersey/pet-store/build.gradle b/samples/jersey/pet-store/build.gradle
index 04755d37f..d74bbf0e6 100644
--- a/samples/jersey/pet-store/build.gradle
+++ b/samples/jersey/pet-store/build.gradle
@@ -8,7 +8,7 @@ repositories {
 dependencies {
   implementation (
           'com.amazonaws.serverless:aws-serverless-java-container-jersey:[2.0-SNAPSHOT,)',
-          'com.fasterxml.jackson.core:jackson-databind:2.17.0',
+          'com.fasterxml.jackson.core:jackson-databind:2.17.1',
   )
 
   implementation("org.glassfish.jersey.media:jersey-media-json-jackson:3.1.6") {
diff --git a/samples/jersey/pet-store/pom.xml b/samples/jersey/pet-store/pom.xml
index ff8595519..b623ccc68 100644
--- a/samples/jersey/pet-store/pom.xml
+++ b/samples/jersey/pet-store/pom.xml
@@ -27,7 +27,7 @@
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
         <jersey.version>3.1.6</jersey.version>
-        <jackson.version>2.17.0</jackson.version>
+        <jackson.version>2.17.1</jackson.version>
     </properties>
 
     <dependencies>
diff --git a/samples/spring/pet-store/build.gradle b/samples/spring/pet-store/build.gradle
index b97fe0554..6b3eba933 100644
--- a/samples/spring/pet-store/build.gradle
+++ b/samples/spring/pet-store/build.gradle
@@ -13,7 +13,7 @@ dependencies {
           'org.apache.logging.log4j:log4j-core:2.23.1',
           'org.apache.logging.log4j:log4j-api:2.23.1',
           'org.apache.logging.log4j:log4j-slf4j-impl:2.23.1',
-          'com.fasterxml.jackson.core:jackson-databind:2.17.0',
+          'com.fasterxml.jackson.core:jackson-databind:2.17.1',
           'com.amazonaws:aws-lambda-java-log4j2:1.6.0',
   )
 }
diff --git a/samples/struts/pet-store/build.gradle b/samples/struts/pet-store/build.gradle
index 66fb4929b..7f2fa5a4d 100644
--- a/samples/struts/pet-store/build.gradle
+++ b/samples/struts/pet-store/build.gradle
@@ -22,8 +22,8 @@ dependencies {
           'org.hibernate.validator:hibernate-validator:6.1.7.Final',
           'org.glassfish:jakarta.el:5.0.0-M1',
           'jakarta.el:jakarta.el-api:5.0.1',
-          'com.fasterxml.jackson.core:jackson-databind:2.17.0',
-          'com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.17.0',
+          'com.fasterxml.jackson.core:jackson-databind:2.17.1',
+          'com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.17.1',
           'org.apache.logging.log4j:log4j-core:2.23.1',
           'org.apache.logging.log4j:log4j-api:2.23.1',
           'com.amazonaws:aws-lambda-java-log4j2:1.6.0',
diff --git a/samples/struts/pet-store/pom.xml b/samples/struts/pet-store/pom.xml
index 04b43c51f..5e7c16d3f 100644
--- a/samples/struts/pet-store/pom.xml
+++ b/samples/struts/pet-store/pom.xml
@@ -27,7 +27,7 @@
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
         <struts.version>7.0.0-M3</struts.version>
-        <jackson.version>2.17.0</jackson.version>
+        <jackson.version>2.17.1</jackson.version>
         <junit.version>4.13.2</junit.version>
         <log4j.version>2.23.1</log4j.version>
     </properties>

From a431e2a99d6cc8c001f4e5e29ce9b72f1a18a62f Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 13 May 2024 04:14:30 +0000
Subject: [PATCH 200/430] chore(deps-dev): bump org.mockito:mockito-core from
 5.11.0 to 5.12.0

Bumps [org.mockito:mockito-core](https://github.com/mockito/mockito) from 5.11.0 to 5.12.0.
- [Release notes](https://github.com/mockito/mockito/releases)
- [Commits](https://github.com/mockito/mockito/compare/v5.11.0...v5.12.0)

---
updated-dependencies:
- dependency-name: org.mockito:mockito-core
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 5323a7d64..35c8fd610 100644
--- a/pom.xml
+++ b/pom.xml
@@ -81,7 +81,7 @@
         <jackson.version>2.17.1</jackson.version>
         <slf4j.version>2.0.13</slf4j.version>
         <junit.version>5.10.2</junit.version>
-        <mockito.version>5.11.0</mockito.version>
+        <mockito.version>5.12.0</mockito.version>
         <hamcrest.version>1.3</hamcrest.version>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     </properties>

From 4345f5187cd99444e250613fcd976facf2088d1f Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 20 May 2024 04:33:13 +0000
Subject: [PATCH 201/430] chore(deps): bump org.owasp:dependency-check-maven
 from 9.1.0 to 9.2.0

Bumps [org.owasp:dependency-check-maven](https://github.com/jeremylong/DependencyCheck) from 9.1.0 to 9.2.0.
- [Release notes](https://github.com/jeremylong/DependencyCheck/releases)
- [Changelog](https://github.com/jeremylong/DependencyCheck/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jeremylong/DependencyCheck/compare/v9.1.0...v9.2.0)

---
updated-dependencies:
- dependency-name: org.owasp:dependency-check-maven
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 35c8fd610..b1c832040 100644
--- a/pom.xml
+++ b/pom.xml
@@ -77,7 +77,7 @@
 
     <properties>
         <jacoco.minCoverage>0.7</jacoco.minCoverage>
-        <dependencyCheck.version>9.1.0</dependencyCheck.version>
+        <dependencyCheck.version>9.2.0</dependencyCheck.version>
         <jackson.version>2.17.1</jackson.version>
         <slf4j.version>2.0.13</slf4j.version>
         <junit.version>5.10.2</junit.version>

From 73c15aa80157ee8b07fabb9ab8984ae0af54cf22 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Wed, 22 May 2024 14:23:30 -0700
Subject: [PATCH 202/430] chore: simplify dependabot config using
 https://github.blog/changelog/2024-04-29-dependabot-multi-directory-configuration-public-beta-now-available/

---
 .github/dependabot.yml | 60 +++++++++++-------------------------------
 1 file changed, 16 insertions(+), 44 deletions(-)

diff --git a/.github/dependabot.yml b/.github/dependabot.yml
index 7633e7636..aaed7992c 100644
--- a/.github/dependabot.yml
+++ b/.github/dependabot.yml
@@ -6,50 +6,22 @@
 version: 2
 updates:
   - package-ecosystem: maven
-    directory: "/"
-    schedule:
-      interval: "weekly"
-  - package-ecosystem: maven
-    directory: "/samples/spring/pet-store"
-    schedule:
-      interval: "weekly"
-  - package-ecosystem: gradle
-    directory: "/samples/spring/pet-store"
-    schedule:
-      interval: "weekly"
-  - package-ecosystem: maven
-    directory: "/samples/springboot3/pet-store"
-    schedule:
-      interval: "weekly"
-  - package-ecosystem: gradle
-    directory: "/samples/springboot3/pet-store"
-    schedule:
-      interval: "weekly"
-  - package-ecosystem: maven
-    directory: "/samples/springboot3/alt-pet-store"
-    schedule:
-      interval: "weekly"
-  - package-ecosystem: gradle
-    directory: "/samples/springboot3/alt-pet-store"
-    schedule:
-      interval: "weekly"
-  - package-ecosystem: maven
-    directory: "/samples/springboot3/graphql-pet-store"
-    schedule:
-      interval: "weekly"
-  - package-ecosystem: maven
-    directory: "/samples/springboot3/pet-store-native"
+    directories:
+      - "/"
+      - "/samples/spring/pet-store"
+      - "/samples/springboot3/pet-store"
+      - "/samples/springboot3/alt-pet-store"
+      - "/samples/springboot3/graphql-pet-store"
+      - "/samples/springboot3/pet-store-native"
+      - "/samples/jersey/pet-store"
     schedule:
       interval: "weekly"
   - package-ecosystem: gradle
-    directory: "/samples/springboot3/pet-store-native"
-    schedule:
-      interval: "weekly"
-  - package-ecosystem: maven
-    directory: "/samples/jersey/pet-store"
-    schedule:
-      interval: "weekly"
-  - package-ecosystem: gradle
-    directory: "/samples/jersey/pet-store"
-    schedule:
-      interval: "weekly"
+    directories:
+      - "/samples/spring/pet-store"
+      - "/samples/springboot3/pet-store"
+      - "/samples/springboot3/alt-pet-store"
+      - "/samples/springboot3/pet-store-native"
+      - "/samples/jersey/pet-store"
+    schedule:
+      interval: "weekly"
\ No newline at end of file

From a036da0b2c18fe11ed989cfc73824135f70d5eb4 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Thu, 23 May 2024 06:21:34 -0700
Subject: [PATCH 203/430] chore(deps): Update Spring dependencies (framework to
 6.1.8, boot to 3.2.6)

---
 .github/workflows/continuous-integration-workflow.yml         | 4 ++--
 aws-serverless-java-container-spring/pom.xml                  | 2 +-
 aws-serverless-java-container-springboot3/pom.xml             | 4 ++--
 .../src/main/resources/archetype-resources/build.gradle       | 4 ++--
 .../src/main/resources/archetype-resources/pom.xml            | 2 +-
 .../src/main/resources/archetype-resources/build.gradle       | 2 +-
 .../src/main/resources/archetype-resources/pom.xml            | 2 +-
 samples/spring/pet-store/build.gradle                         | 4 ++--
 samples/spring/pet-store/pom.xml                              | 2 +-
 samples/springboot3/alt-pet-store/build.gradle                | 2 +-
 samples/springboot3/alt-pet-store/pom.xml                     | 2 +-
 samples/springboot3/graphql-pet-store/pom.xml                 | 2 +-
 samples/springboot3/pet-store-native/pom.xml                  | 2 +-
 samples/springboot3/pet-store/build.gradle                    | 2 +-
 samples/springboot3/pet-store/pom.xml                         | 2 +-
 15 files changed, 19 insertions(+), 19 deletions(-)

diff --git a/.github/workflows/continuous-integration-workflow.yml b/.github/workflows/continuous-integration-workflow.yml
index dd2e7b1cd..dbe5f05f4 100644
--- a/.github/workflows/continuous-integration-workflow.yml
+++ b/.github/workflows/continuous-integration-workflow.yml
@@ -59,7 +59,7 @@ jobs:
       - name: Build latest
         run: ./gha_build.sh spring true true
 #      - name: Build with Spring 6.0.x
-#        run: ./gha_build.sh spring false false -Dspring.version=6.0.16 -Dspring-security.version=6.1.6 -Ddependency-check.skip=true
+#        run: ./gha_build.sh spring false false -Dspring.version=6.0.16 -Dspring-security.version=6.1.8 -Ddependency-check.skip=true
 
   build_springboot3:
     name: Build and test SpringBoot 3
@@ -75,7 +75,7 @@ jobs:
         run: ./gha_build.sh springboot3 true true
       # Build with additional supported versions https://spring.io/projects/spring-boot#support
       - name: Build with Spring Boot 3.1.x
-        run: ./gha_build.sh springboot3 false false -Dspringboot.version=3.1.8 -Dspring.version=6.0.16 -Dspringsecurity.version=6.1.6 -Ddependency-check.skip=true
+        run: ./gha_build.sh springboot3 false false -Dspringboot.version=3.1.8 -Dspring.version=6.0.16 -Dspringsecurity.version=6.1.8 -Ddependency-check.skip=true
 
 # temporarily disabled as Struts is not released at the moment
 #  build_struts2:
diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml
index 3c33400ac..8aa10630f 100644
--- a/aws-serverless-java-container-spring/pom.xml
+++ b/aws-serverless-java-container-spring/pom.xml
@@ -16,7 +16,7 @@
     </parent>
 
     <properties>
-        <spring.version>6.1.6</spring.version>
+        <spring.version>6.1.8</spring.version>
         <spring-security.version>6.2.4</spring-security.version>
     </properties>
 
diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml
index 61ccfb0f0..5a0019e54 100644
--- a/aws-serverless-java-container-springboot3/pom.xml
+++ b/aws-serverless-java-container-springboot3/pom.xml
@@ -15,8 +15,8 @@
     <version>2.1.0-SNAPSHOT</version>
 
     <properties>
-        <spring.version>6.1.6</spring.version>
-        <springboot.version>3.2.5</springboot.version>
+        <spring.version>6.1.8</spring.version>
+        <springboot.version>3.2.6</springboot.version>
         <springsecurity.version>6.2.4</springsecurity.version>
     </properties>
 
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
index c11a4d917..12d909c92 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
@@ -7,8 +7,8 @@ repositories {
 
 dependencies {
   implementation (
-          'org.springframework:spring-webmvc:6.1.6',
-          'org.springframework:spring-context:6.1.6',
+          'org.springframework:spring-webmvc:6.1.8',
+          'org.springframework:spring-context:6.1.8',
           'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)',
           'org.apache.logging.log4j:log4j-core:2.23.1',
           'org.apache.logging.log4j:log4j-api:2.23.1',
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
index dae604588..89035bf68 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
@@ -16,7 +16,7 @@
     <properties>
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
-        <spring.version>6.1.6</spring.version>
+        <spring.version>6.1.8</spring.version>
         <junit.version>5.10.2</junit.version>
         <log4j.version>2.23.1</log4j.version>
     </properties>
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
index 4d917c27a..816ebaec2 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
@@ -9,7 +9,7 @@ repositories {
 
 dependencies {
   implementation (
-          'org.springframework.boot:spring-boot-starter-web:3.2.5',
+          'org.springframework.boot:spring-boot-starter-web:3.2.6',
           'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)',
   )
 
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
index 6ffdf7fac..2396c0ef1 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
@@ -16,7 +16,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.2.5</version>
+        <version>3.2.6</version>
     </parent>
 
     <properties>
diff --git a/samples/spring/pet-store/build.gradle b/samples/spring/pet-store/build.gradle
index 6b3eba933..394581eab 100644
--- a/samples/spring/pet-store/build.gradle
+++ b/samples/spring/pet-store/build.gradle
@@ -7,8 +7,8 @@ repositories {
 
 dependencies {
   implementation (
-          'org.springframework:spring-webmvc:6.1.6',
-          'org.springframework:spring-context:6.1.6',
+          'org.springframework:spring-webmvc:6.1.8',
+          'org.springframework:spring-context:6.1.8',
           'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)',
           'org.apache.logging.log4j:log4j-core:2.23.1',
           'org.apache.logging.log4j:log4j-api:2.23.1',
diff --git a/samples/spring/pet-store/pom.xml b/samples/spring/pet-store/pom.xml
index 58d38dbab..6aae5db92 100644
--- a/samples/spring/pet-store/pom.xml
+++ b/samples/spring/pet-store/pom.xml
@@ -24,7 +24,7 @@
     </licenses>
 
     <properties>
-        <spring.version>6.1.6</spring.version>
+        <spring.version>6.1.8</spring.version>
         <log4j.version>2.23.1</log4j.version>
         <maven.compiler.source>17</maven.compiler.source>
         <maven.compiler.target>17</maven.compiler.target>
diff --git a/samples/springboot3/alt-pet-store/build.gradle b/samples/springboot3/alt-pet-store/build.gradle
index 0ddec053b..9a4987860 100644
--- a/samples/springboot3/alt-pet-store/build.gradle
+++ b/samples/springboot3/alt-pet-store/build.gradle
@@ -9,7 +9,7 @@ repositories {
 
 dependencies {
   implementation (
-          implementation('org.springframework.boot:spring-boot-starter-web:3.2.5') {
+          implementation('org.springframework.boot:spring-boot-starter-web:3.2.6') {
             exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat'
           },
           'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)',
diff --git a/samples/springboot3/alt-pet-store/pom.xml b/samples/springboot3/alt-pet-store/pom.xml
index e634f8234..c2cf4da03 100644
--- a/samples/springboot3/alt-pet-store/pom.xml
+++ b/samples/springboot3/alt-pet-store/pom.xml
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.2.5</version>
+        <version>3.2.6</version>
     </parent>
 
     <licenses>
diff --git a/samples/springboot3/graphql-pet-store/pom.xml b/samples/springboot3/graphql-pet-store/pom.xml
index 05e079989..581b13bd8 100644
--- a/samples/springboot3/graphql-pet-store/pom.xml
+++ b/samples/springboot3/graphql-pet-store/pom.xml
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.2.5</version>
+        <version>3.2.6</version>
     </parent>
 
     <licenses>
diff --git a/samples/springboot3/pet-store-native/pom.xml b/samples/springboot3/pet-store-native/pom.xml
index 2b0ecf5de..d7a6fb449 100644
--- a/samples/springboot3/pet-store-native/pom.xml
+++ b/samples/springboot3/pet-store-native/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.springframework.boot</groupId>
 		<artifactId>spring-boot-starter-parent</artifactId>
-		<version>3.2.5</version>
+		<version>3.2.6</version>
 		<relativePath /> <!-- lookup parent from repository -->
 	</parent>
 	<groupId>com.amazonaws.serverless.sample</groupId>
diff --git a/samples/springboot3/pet-store/build.gradle b/samples/springboot3/pet-store/build.gradle
index 0ddec053b..9a4987860 100644
--- a/samples/springboot3/pet-store/build.gradle
+++ b/samples/springboot3/pet-store/build.gradle
@@ -9,7 +9,7 @@ repositories {
 
 dependencies {
   implementation (
-          implementation('org.springframework.boot:spring-boot-starter-web:3.2.5') {
+          implementation('org.springframework.boot:spring-boot-starter-web:3.2.6') {
             exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat'
           },
           'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)',
diff --git a/samples/springboot3/pet-store/pom.xml b/samples/springboot3/pet-store/pom.xml
index 74479a1fa..2340a3664 100644
--- a/samples/springboot3/pet-store/pom.xml
+++ b/samples/springboot3/pet-store/pom.xml
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.2.5</version>
+        <version>3.2.6</version>
     </parent>
 
     <licenses>

From 9d635d06f1fca980b20f6ec28826039b56b5bfb8 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Mon, 27 May 2024 12:55:43 +0200
Subject: [PATCH 204/430] chore(deps): Update Jersey dependency to 3.1.7

---
 aws-serverless-java-container-jersey/pom.xml                  | 2 +-
 .../src/main/resources/archetype-resources/build.gradle       | 4 ++--
 .../src/main/resources/archetype-resources/pom.xml            | 2 +-
 samples/jersey/pet-store/build.gradle                         | 4 ++--
 samples/jersey/pet-store/pom.xml                              | 2 +-
 5 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/aws-serverless-java-container-jersey/pom.xml b/aws-serverless-java-container-jersey/pom.xml
index 09f9205dc..757a84e7a 100644
--- a/aws-serverless-java-container-jersey/pom.xml
+++ b/aws-serverless-java-container-jersey/pom.xml
@@ -16,7 +16,7 @@
     </parent>
 
     <properties>
-        <jersey.version>3.1.6</jersey.version>
+        <jersey.version>3.1.7</jersey.version>
     </properties>
 
     <dependencies>
diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
index f0d0400c4..346ad59b9 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
@@ -11,13 +11,13 @@ dependencies {
           'com.fasterxml.jackson.core:jackson-databind:2.17.1',
   )
 
-  implementation("org.glassfish.jersey.media:jersey-media-json-jackson:3.1.6") {
+  implementation("org.glassfish.jersey.media:jersey-media-json-jackson:3.1.7") {
     exclude group: 'com.fasterxml.jackson.core', module: "jackson-annotations"
     exclude group: 'com.fasterxml.jackson.core', module: "jackson-databind"
     exclude group: 'com.fasterxml.jackson.core', module: "jackson-core"
   }
 
-  implementation("org.glassfish.jersey.inject:jersey-hk2:3.1.6") {
+  implementation("org.glassfish.jersey.inject:jersey-hk2:3.1.7") {
     exclude group: 'javax.inject', module: "javax.inject"
   }
 
diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
index ead8bda1c..63fca8319 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
@@ -15,7 +15,7 @@
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
 
-        <jersey.version>3.1.6</jersey.version>
+        <jersey.version>3.1.7</jersey.version>
         <jackson.version>2.17.1</jackson.version>
         <junit.version>5.10.2</junit.version>
     </properties>
diff --git a/samples/jersey/pet-store/build.gradle b/samples/jersey/pet-store/build.gradle
index d74bbf0e6..086c66fcd 100644
--- a/samples/jersey/pet-store/build.gradle
+++ b/samples/jersey/pet-store/build.gradle
@@ -11,13 +11,13 @@ dependencies {
           'com.fasterxml.jackson.core:jackson-databind:2.17.1',
   )
 
-  implementation("org.glassfish.jersey.media:jersey-media-json-jackson:3.1.6") {
+  implementation("org.glassfish.jersey.media:jersey-media-json-jackson:3.1.7") {
     exclude group: 'com.fasterxml.jackson.core', module: "jackson-annotations"
     exclude group: 'com.fasterxml.jackson.core', module: "jackson-databind"
     exclude group: 'com.fasterxml.jackson.core', module: "jackson-core"
   }
 
-  implementation("org.glassfish.jersey.inject:jersey-hk2:3.1.6") {
+  implementation("org.glassfish.jersey.inject:jersey-hk2:3.1.7") {
     exclude group: 'javax.inject', module: "javax.inject"
   }
 }
diff --git a/samples/jersey/pet-store/pom.xml b/samples/jersey/pet-store/pom.xml
index b623ccc68..5348598aa 100644
--- a/samples/jersey/pet-store/pom.xml
+++ b/samples/jersey/pet-store/pom.xml
@@ -26,7 +26,7 @@
     <properties>
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
-        <jersey.version>3.1.6</jersey.version>
+        <jersey.version>3.1.7</jersey.version>
         <jackson.version>2.17.1</jackson.version>
     </properties>
 

From 0c7a6288ab46d71b276bbe11b15875dc551cac75 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Fri, 31 May 2024 08:29:34 +0200
Subject: [PATCH 205/430] chore(deps): Update
 spring-cloud-function-serverless-web to 4.1.2

---
 aws-serverless-java-container-springboot3/pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml
index 5a0019e54..4c669a8df 100644
--- a/aws-serverless-java-container-springboot3/pom.xml
+++ b/aws-serverless-java-container-springboot3/pom.xml
@@ -25,7 +25,7 @@
         <dependency>
             <groupId>org.springframework.cloud</groupId>
             <artifactId>spring-cloud-function-serverless-web</artifactId>
-            <version>4.1.2-SNAPSHOT</version>
+            <version>4.1.2</version>
         </dependency>
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>

From e2c90ae37dd0eae055884ca62e3b8a7406acd80d Mon Sep 17 00:00:00 2001
From: deki <deki@users.noreply.github.com>
Date: Fri, 31 May 2024 06:45:22 +0000
Subject: [PATCH 206/430] chore: release - prepare release
 aws-serverless-java-container-2.0.2

---
 aws-serverless-java-container-core/pom.xml        | 4 ++--
 aws-serverless-java-container-jersey/pom.xml      | 8 ++++----
 aws-serverless-java-container-spring/pom.xml      | 8 ++++----
 aws-serverless-java-container-springboot3/pom.xml | 8 ++++----
 aws-serverless-jersey-archetype/pom.xml           | 6 +++---
 aws-serverless-spring-archetype/pom.xml           | 6 +++---
 aws-serverless-springboot3-archetype/pom.xml      | 6 +++---
 pom.xml                                           | 4 ++--
 8 files changed, 25 insertions(+), 25 deletions(-)

diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml
index a6278f9e3..096d79a07 100644
--- a/aws-serverless-java-container-core/pom.xml
+++ b/aws-serverless-java-container-core/pom.xml
@@ -6,12 +6,12 @@
     <name>AWS Serverless Java container support - Core</name>
     <description>Allows Java applications written for a servlet container to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.1.0-SNAPSHOT</version>
+    <version>2.0.2</version>
 
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.1.0-SNAPSHOT</version>
+        <version>2.0.2</version>
         <relativePath>..</relativePath>
     </parent>
 
diff --git a/aws-serverless-java-container-jersey/pom.xml b/aws-serverless-java-container-jersey/pom.xml
index 757a84e7a..cf3446a56 100644
--- a/aws-serverless-java-container-jersey/pom.xml
+++ b/aws-serverless-java-container-jersey/pom.xml
@@ -6,12 +6,12 @@
     <name>AWS Serverless Java container support - Jersey implementation</name>
     <description>Allows Java applications written for Jersey to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.1.0-SNAPSHOT</version>
+    <version>2.0.2</version>
 
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.1.0-SNAPSHOT</version>
+        <version>2.0.2</version>
         <relativePath>..</relativePath>
     </parent>
 
@@ -24,7 +24,7 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.1.0-SNAPSHOT</version>
+            <version>2.0.2</version>
             <exclusions>
                 <exclusion>
                     <groupId>com.fasterxml.jackson.core</groupId>
@@ -35,7 +35,7 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.1.0-SNAPSHOT</version>
+            <version>2.0.2</version>
             <classifier>tests</classifier>
             <type>test-jar</type>
             <scope>test</scope>
diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml
index 8aa10630f..7a1e41c1b 100644
--- a/aws-serverless-java-container-spring/pom.xml
+++ b/aws-serverless-java-container-spring/pom.xml
@@ -6,12 +6,12 @@
     <name>AWS Serverless Java container support - Spring implementation</name>
     <description>Allows Java applications written for the Spring framework to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.1.0-SNAPSHOT</version>
+    <version>2.0.2</version>
 
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.1.0-SNAPSHOT</version>
+        <version>2.0.2</version>
         <relativePath>..</relativePath>
     </parent>
 
@@ -25,12 +25,12 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.1.0-SNAPSHOT</version>
+            <version>2.0.2</version>
         </dependency>
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.1.0-SNAPSHOT</version>
+            <version>2.0.2</version>
             <classifier>tests</classifier>
             <type>test-jar</type>
             <scope>test</scope>
diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml
index 4c669a8df..d04b91a99 100644
--- a/aws-serverless-java-container-springboot3/pom.xml
+++ b/aws-serverless-java-container-springboot3/pom.xml
@@ -3,7 +3,7 @@
     <parent>
         <artifactId>aws-serverless-java-container</artifactId>
         <groupId>com.amazonaws.serverless</groupId>
-        <version>2.1.0-SNAPSHOT</version>
+        <version>2.0.2</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
@@ -12,7 +12,7 @@
     <name>AWS Serverless Java container support - SpringBoot 3 implementation</name>
     <description>Allows Java applications written for SpringBoot 3 to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.1.0-SNAPSHOT</version>
+    <version>2.0.2</version>
 
     <properties>
         <spring.version>6.1.8</spring.version>
@@ -30,12 +30,12 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.1.0-SNAPSHOT</version>
+            <version>2.0.2</version>
         </dependency>
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.1.0-SNAPSHOT</version>
+            <version>2.0.2</version>
             <classifier>tests</classifier>
             <type>test-jar</type>
             <scope>test</scope>
diff --git a/aws-serverless-jersey-archetype/pom.xml b/aws-serverless-jersey-archetype/pom.xml
index f4ae15675..bdd7de91d 100644
--- a/aws-serverless-jersey-archetype/pom.xml
+++ b/aws-serverless-jersey-archetype/pom.xml
@@ -4,17 +4,17 @@
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.1.0-SNAPSHOT</version>
+        <version>2.0.2</version>
     </parent>
 
     <groupId>com.amazonaws.serverless.archetypes</groupId>
     <artifactId>aws-serverless-jersey-archetype</artifactId>
-    <version>2.1.0-SNAPSHOT</version>
+    <version>2.0.2</version>
     <packaging>maven-archetype</packaging>
 
     <scm>
         <url>https://github.com/aws/serverless-java-container.git</url>
-      <tag>HEAD</tag>
+      <tag>aws-serverless-java-container-2.0.2</tag>
   </scm>
 
     <licenses>
diff --git a/aws-serverless-spring-archetype/pom.xml b/aws-serverless-spring-archetype/pom.xml
index 07c5e4e90..39ca9e580 100644
--- a/aws-serverless-spring-archetype/pom.xml
+++ b/aws-serverless-spring-archetype/pom.xml
@@ -4,17 +4,17 @@
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.1.0-SNAPSHOT</version>
+        <version>2.0.2</version>
     </parent>
 
     <groupId>com.amazonaws.serverless.archetypes</groupId>
     <artifactId>aws-serverless-spring-archetype</artifactId>
-    <version>2.1.0-SNAPSHOT</version>
+    <version>2.0.2</version>
     <packaging>maven-archetype</packaging>
 
     <scm>
         <url>https://github.com/aws/serverless-java-container.git</url>
-      <tag>HEAD</tag>
+      <tag>aws-serverless-java-container-2.0.2</tag>
   </scm>
 
     <licenses>
diff --git a/aws-serverless-springboot3-archetype/pom.xml b/aws-serverless-springboot3-archetype/pom.xml
index a1057f354..845f1b622 100644
--- a/aws-serverless-springboot3-archetype/pom.xml
+++ b/aws-serverless-springboot3-archetype/pom.xml
@@ -4,17 +4,17 @@
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.1.0-SNAPSHOT</version>
+        <version>2.0.2</version>
     </parent>
 
     <groupId>com.amazonaws.serverless.archetypes</groupId>
     <artifactId>aws-serverless-springboot3-archetype</artifactId>
-    <version>2.1.0-SNAPSHOT</version>
+    <version>2.0.2</version>
     <packaging>maven-archetype</packaging>
 
     <scm>
         <url>https://github.com/aws/serverless-java-container.git</url>
-      <tag>HEAD</tag>
+      <tag>aws-serverless-java-container-2.0.2</tag>
   </scm>
 
     <licenses>
diff --git a/pom.xml b/pom.xml
index b1c832040..b5f3a0b01 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
     <groupId>com.amazonaws.serverless</groupId>
     <artifactId>aws-serverless-java-container</artifactId>
     <packaging>pom</packaging>
-    <version>2.1.0-SNAPSHOT</version>
+    <version>2.0.2</version>
     <name>AWS Serverless Java container</name>
     <description>A Java framework to run Spring, Spring Boot, Jersey, Spark, and Struts applications inside AWS Lambda</description>
     <url>https://github.com/aws/serverless-java-container</url>
@@ -37,7 +37,7 @@
     <scm>
         <url>https://github.com/aws/serverless-java-container</url>
         <connection>scm:git:https://github.com/aws/serverless-java-container.git</connection>
-      <tag>HEAD</tag>
+      <tag>aws-serverless-java-container-2.0.2</tag>
     </scm>
 
     <repositories>

From 9da0d7d3216db80cd37f5e2aea557672d682a3e7 Mon Sep 17 00:00:00 2001
From: deki <deki@users.noreply.github.com>
Date: Fri, 31 May 2024 06:45:24 +0000
Subject: [PATCH 207/430] chore: release - prepare for next development
 iteration

---
 aws-serverless-java-container-core/pom.xml        | 4 ++--
 aws-serverless-java-container-jersey/pom.xml      | 8 ++++----
 aws-serverless-java-container-spring/pom.xml      | 8 ++++----
 aws-serverless-java-container-springboot3/pom.xml | 8 ++++----
 aws-serverless-jersey-archetype/pom.xml           | 6 +++---
 aws-serverless-spring-archetype/pom.xml           | 6 +++---
 aws-serverless-springboot3-archetype/pom.xml      | 6 +++---
 pom.xml                                           | 4 ++--
 8 files changed, 25 insertions(+), 25 deletions(-)

diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml
index 096d79a07..a6278f9e3 100644
--- a/aws-serverless-java-container-core/pom.xml
+++ b/aws-serverless-java-container-core/pom.xml
@@ -6,12 +6,12 @@
     <name>AWS Serverless Java container support - Core</name>
     <description>Allows Java applications written for a servlet container to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.0.2</version>
+    <version>2.1.0-SNAPSHOT</version>
 
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.0.2</version>
+        <version>2.1.0-SNAPSHOT</version>
         <relativePath>..</relativePath>
     </parent>
 
diff --git a/aws-serverless-java-container-jersey/pom.xml b/aws-serverless-java-container-jersey/pom.xml
index cf3446a56..757a84e7a 100644
--- a/aws-serverless-java-container-jersey/pom.xml
+++ b/aws-serverless-java-container-jersey/pom.xml
@@ -6,12 +6,12 @@
     <name>AWS Serverless Java container support - Jersey implementation</name>
     <description>Allows Java applications written for Jersey to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.0.2</version>
+    <version>2.1.0-SNAPSHOT</version>
 
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.0.2</version>
+        <version>2.1.0-SNAPSHOT</version>
         <relativePath>..</relativePath>
     </parent>
 
@@ -24,7 +24,7 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.0.2</version>
+            <version>2.1.0-SNAPSHOT</version>
             <exclusions>
                 <exclusion>
                     <groupId>com.fasterxml.jackson.core</groupId>
@@ -35,7 +35,7 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.0.2</version>
+            <version>2.1.0-SNAPSHOT</version>
             <classifier>tests</classifier>
             <type>test-jar</type>
             <scope>test</scope>
diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml
index 7a1e41c1b..8aa10630f 100644
--- a/aws-serverless-java-container-spring/pom.xml
+++ b/aws-serverless-java-container-spring/pom.xml
@@ -6,12 +6,12 @@
     <name>AWS Serverless Java container support - Spring implementation</name>
     <description>Allows Java applications written for the Spring framework to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.0.2</version>
+    <version>2.1.0-SNAPSHOT</version>
 
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.0.2</version>
+        <version>2.1.0-SNAPSHOT</version>
         <relativePath>..</relativePath>
     </parent>
 
@@ -25,12 +25,12 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.0.2</version>
+            <version>2.1.0-SNAPSHOT</version>
         </dependency>
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.0.2</version>
+            <version>2.1.0-SNAPSHOT</version>
             <classifier>tests</classifier>
             <type>test-jar</type>
             <scope>test</scope>
diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml
index d04b91a99..4c669a8df 100644
--- a/aws-serverless-java-container-springboot3/pom.xml
+++ b/aws-serverless-java-container-springboot3/pom.xml
@@ -3,7 +3,7 @@
     <parent>
         <artifactId>aws-serverless-java-container</artifactId>
         <groupId>com.amazonaws.serverless</groupId>
-        <version>2.0.2</version>
+        <version>2.1.0-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
@@ -12,7 +12,7 @@
     <name>AWS Serverless Java container support - SpringBoot 3 implementation</name>
     <description>Allows Java applications written for SpringBoot 3 to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.0.2</version>
+    <version>2.1.0-SNAPSHOT</version>
 
     <properties>
         <spring.version>6.1.8</spring.version>
@@ -30,12 +30,12 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.0.2</version>
+            <version>2.1.0-SNAPSHOT</version>
         </dependency>
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.0.2</version>
+            <version>2.1.0-SNAPSHOT</version>
             <classifier>tests</classifier>
             <type>test-jar</type>
             <scope>test</scope>
diff --git a/aws-serverless-jersey-archetype/pom.xml b/aws-serverless-jersey-archetype/pom.xml
index bdd7de91d..f4ae15675 100644
--- a/aws-serverless-jersey-archetype/pom.xml
+++ b/aws-serverless-jersey-archetype/pom.xml
@@ -4,17 +4,17 @@
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.0.2</version>
+        <version>2.1.0-SNAPSHOT</version>
     </parent>
 
     <groupId>com.amazonaws.serverless.archetypes</groupId>
     <artifactId>aws-serverless-jersey-archetype</artifactId>
-    <version>2.0.2</version>
+    <version>2.1.0-SNAPSHOT</version>
     <packaging>maven-archetype</packaging>
 
     <scm>
         <url>https://github.com/aws/serverless-java-container.git</url>
-      <tag>aws-serverless-java-container-2.0.2</tag>
+      <tag>HEAD</tag>
   </scm>
 
     <licenses>
diff --git a/aws-serverless-spring-archetype/pom.xml b/aws-serverless-spring-archetype/pom.xml
index 39ca9e580..07c5e4e90 100644
--- a/aws-serverless-spring-archetype/pom.xml
+++ b/aws-serverless-spring-archetype/pom.xml
@@ -4,17 +4,17 @@
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.0.2</version>
+        <version>2.1.0-SNAPSHOT</version>
     </parent>
 
     <groupId>com.amazonaws.serverless.archetypes</groupId>
     <artifactId>aws-serverless-spring-archetype</artifactId>
-    <version>2.0.2</version>
+    <version>2.1.0-SNAPSHOT</version>
     <packaging>maven-archetype</packaging>
 
     <scm>
         <url>https://github.com/aws/serverless-java-container.git</url>
-      <tag>aws-serverless-java-container-2.0.2</tag>
+      <tag>HEAD</tag>
   </scm>
 
     <licenses>
diff --git a/aws-serverless-springboot3-archetype/pom.xml b/aws-serverless-springboot3-archetype/pom.xml
index 845f1b622..a1057f354 100644
--- a/aws-serverless-springboot3-archetype/pom.xml
+++ b/aws-serverless-springboot3-archetype/pom.xml
@@ -4,17 +4,17 @@
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.0.2</version>
+        <version>2.1.0-SNAPSHOT</version>
     </parent>
 
     <groupId>com.amazonaws.serverless.archetypes</groupId>
     <artifactId>aws-serverless-springboot3-archetype</artifactId>
-    <version>2.0.2</version>
+    <version>2.1.0-SNAPSHOT</version>
     <packaging>maven-archetype</packaging>
 
     <scm>
         <url>https://github.com/aws/serverless-java-container.git</url>
-      <tag>aws-serverless-java-container-2.0.2</tag>
+      <tag>HEAD</tag>
   </scm>
 
     <licenses>
diff --git a/pom.xml b/pom.xml
index b5f3a0b01..b1c832040 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
     <groupId>com.amazonaws.serverless</groupId>
     <artifactId>aws-serverless-java-container</artifactId>
     <packaging>pom</packaging>
-    <version>2.0.2</version>
+    <version>2.1.0-SNAPSHOT</version>
     <name>AWS Serverless Java container</name>
     <description>A Java framework to run Spring, Spring Boot, Jersey, Spark, and Struts applications inside AWS Lambda</description>
     <url>https://github.com/aws/serverless-java-container</url>
@@ -37,7 +37,7 @@
     <scm>
         <url>https://github.com/aws/serverless-java-container</url>
         <connection>scm:git:https://github.com/aws/serverless-java-container.git</connection>
-      <tag>aws-serverless-java-container-2.0.2</tag>
+      <tag>HEAD</tag>
     </scm>
 
     <repositories>

From a4ae7b4ad5c40dbf9ed1926c10955114ecbfcb6c Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Fri, 31 May 2024 10:39:24 +0200
Subject: [PATCH 208/430] chore(deps): Update Spring dependencies (security to
 6.3.0, boot to 3.3.0)

---
 aws-serverless-java-container-core/pom.xml                    | 2 +-
 aws-serverless-java-container-spring/pom.xml                  | 2 +-
 aws-serverless-java-container-springboot3/pom.xml             | 4 ++--
 .../src/main/resources/archetype-resources/build.gradle       | 2 +-
 .../src/main/resources/archetype-resources/pom.xml            | 2 +-
 samples/springboot3/alt-pet-store/build.gradle                | 2 +-
 samples/springboot3/alt-pet-store/pom.xml                     | 2 +-
 samples/springboot3/graphql-pet-store/pom.xml                 | 2 +-
 samples/springboot3/pet-store-native/pom.xml                  | 2 +-
 samples/springboot3/pet-store/build.gradle                    | 2 +-
 samples/springboot3/pet-store/pom.xml                         | 2 +-
 11 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml
index a6278f9e3..6f2e18f45 100644
--- a/aws-serverless-java-container-core/pom.xml
+++ b/aws-serverless-java-container-core/pom.xml
@@ -60,7 +60,7 @@
         <dependency>
             <groupId>org.springframework.security</groupId>
             <artifactId>spring-security-web</artifactId>
-            <version>6.2.4</version>
+            <version>6.3.0</version>
             <scope>test</scope>
         </dependency>
     </dependencies>
diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml
index 8aa10630f..9fa13e6ce 100644
--- a/aws-serverless-java-container-spring/pom.xml
+++ b/aws-serverless-java-container-spring/pom.xml
@@ -17,7 +17,7 @@
 
     <properties>
         <spring.version>6.1.8</spring.version>
-        <spring-security.version>6.2.4</spring-security.version>
+        <spring-security.version>6.3.0</spring-security.version>
     </properties>
 
     <dependencies>
diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml
index 4c669a8df..7abc29eef 100644
--- a/aws-serverless-java-container-springboot3/pom.xml
+++ b/aws-serverless-java-container-springboot3/pom.xml
@@ -16,8 +16,8 @@
 
     <properties>
         <spring.version>6.1.8</spring.version>
-        <springboot.version>3.2.6</springboot.version>
-        <springsecurity.version>6.2.4</springsecurity.version>
+        <springboot.version>3.3.0</springboot.version>
+        <springsecurity.version>6.3.0</springsecurity.version>
     </properties>
 
     <dependencies>
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
index 816ebaec2..c71d8e6ea 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
@@ -9,7 +9,7 @@ repositories {
 
 dependencies {
   implementation (
-          'org.springframework.boot:spring-boot-starter-web:3.2.6',
+          'org.springframework.boot:spring-boot-starter-web:3.3.0',
           'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)',
   )
 
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
index 2396c0ef1..9c032f77b 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
@@ -16,7 +16,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.2.6</version>
+        <version>3.3.0</version>
     </parent>
 
     <properties>
diff --git a/samples/springboot3/alt-pet-store/build.gradle b/samples/springboot3/alt-pet-store/build.gradle
index 9a4987860..b4d110a08 100644
--- a/samples/springboot3/alt-pet-store/build.gradle
+++ b/samples/springboot3/alt-pet-store/build.gradle
@@ -9,7 +9,7 @@ repositories {
 
 dependencies {
   implementation (
-          implementation('org.springframework.boot:spring-boot-starter-web:3.2.6') {
+          implementation('org.springframework.boot:spring-boot-starter-web:3.3.0') {
             exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat'
           },
           'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)',
diff --git a/samples/springboot3/alt-pet-store/pom.xml b/samples/springboot3/alt-pet-store/pom.xml
index c2cf4da03..4c091d29b 100644
--- a/samples/springboot3/alt-pet-store/pom.xml
+++ b/samples/springboot3/alt-pet-store/pom.xml
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.2.6</version>
+        <version>3.3.0</version>
     </parent>
 
     <licenses>
diff --git a/samples/springboot3/graphql-pet-store/pom.xml b/samples/springboot3/graphql-pet-store/pom.xml
index 581b13bd8..e522132e7 100644
--- a/samples/springboot3/graphql-pet-store/pom.xml
+++ b/samples/springboot3/graphql-pet-store/pom.xml
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.2.6</version>
+        <version>3.3.0</version>
     </parent>
 
     <licenses>
diff --git a/samples/springboot3/pet-store-native/pom.xml b/samples/springboot3/pet-store-native/pom.xml
index d7a6fb449..826c647e4 100644
--- a/samples/springboot3/pet-store-native/pom.xml
+++ b/samples/springboot3/pet-store-native/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.springframework.boot</groupId>
 		<artifactId>spring-boot-starter-parent</artifactId>
-		<version>3.2.6</version>
+		<version>3.3.0</version>
 		<relativePath /> <!-- lookup parent from repository -->
 	</parent>
 	<groupId>com.amazonaws.serverless.sample</groupId>
diff --git a/samples/springboot3/pet-store/build.gradle b/samples/springboot3/pet-store/build.gradle
index 9a4987860..b4d110a08 100644
--- a/samples/springboot3/pet-store/build.gradle
+++ b/samples/springboot3/pet-store/build.gradle
@@ -9,7 +9,7 @@ repositories {
 
 dependencies {
   implementation (
-          implementation('org.springframework.boot:spring-boot-starter-web:3.2.6') {
+          implementation('org.springframework.boot:spring-boot-starter-web:3.3.0') {
             exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat'
           },
           'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)',
diff --git a/samples/springboot3/pet-store/pom.xml b/samples/springboot3/pet-store/pom.xml
index 2340a3664..7fe8681e6 100644
--- a/samples/springboot3/pet-store/pom.xml
+++ b/samples/springboot3/pet-store/pom.xml
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.2.6</version>
+        <version>3.3.0</version>
     </parent>
 
     <licenses>

From 2e481ce0a98e959f6cee47a56dbe9cc1d2e6a1ce Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Fri, 31 May 2024 10:42:31 +0200
Subject: [PATCH 209/430] chore(deps): Update Jakarta Websocket to 2.2.0

---
 aws-serverless-java-container-springboot3/pom.xml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml
index 7abc29eef..4ecc79d68 100644
--- a/aws-serverless-java-container-springboot3/pom.xml
+++ b/aws-serverless-java-container-springboot3/pom.xml
@@ -180,14 +180,14 @@
         <dependency>
             <groupId>jakarta.websocket</groupId>
             <artifactId>jakarta.websocket-api</artifactId>
-            <version>2.1.1</version>
+            <version>2.2.0</version>
             <scope>test</scope>
         </dependency>
 
         <dependency>
             <groupId>jakarta.websocket</groupId>
             <artifactId>jakarta.websocket-client-api</artifactId>
-            <version>2.1.1</version>
+            <version>2.2.0</version>
             <scope>test</scope>
         </dependency>
 

From 038acbd84ea0589239f1555cc4d326774550d85e Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 3 Jun 2024 04:29:46 +0000
Subject: [PATCH 210/430] chore(deps): bump
 org.apache.maven.plugins:maven-enforcer-plugin

Bumps [org.apache.maven.plugins:maven-enforcer-plugin](https://github.com/apache/maven-enforcer) from 3.4.1 to 3.5.0.
- [Release notes](https://github.com/apache/maven-enforcer/releases)
- [Commits](https://github.com/apache/maven-enforcer/compare/enforcer-3.4.1...enforcer-3.5.0)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-enforcer-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index b1c832040..c0956faa9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -169,7 +169,7 @@
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-enforcer-plugin</artifactId>
-                    <version>3.4.1</version>
+                    <version>3.5.0</version>
                     <executions>
                         <execution>
                             <id>enforce</id>

From 9a9ddb674cd076993460069dd7cb090b9b988870 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 3 Jun 2024 04:29:51 +0000
Subject: [PATCH 211/430] chore(deps): bump
 org.apache.maven.plugins:maven-javadoc-plugin

Bumps [org.apache.maven.plugins:maven-javadoc-plugin](https://github.com/apache/maven-javadoc-plugin) from 3.6.3 to 3.7.0.
- [Release notes](https://github.com/apache/maven-javadoc-plugin/releases)
- [Commits](https://github.com/apache/maven-javadoc-plugin/compare/maven-javadoc-plugin-3.6.3...maven-javadoc-plugin-3.7.0)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-javadoc-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index b1c832040..f9f2175d2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -201,7 +201,7 @@
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-javadoc-plugin</artifactId>
-                    <version>3.6.3</version>
+                    <version>3.7.0</version>
                 </plugin>
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>

From 95328c3e0b8dacd9e7b60cf16a2586ed70da7b20 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Tue, 4 Jun 2024 07:02:40 +0200
Subject: [PATCH 212/430] chore(deps): Update maven-shade-plugin to 3.6.0

---
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 samples/jersey/pet-store/pom.xml                                | 2 +-
 samples/spring/pet-store/pom.xml                                | 2 +-
 samples/springboot3/alt-pet-store/pom.xml                       | 2 +-
 samples/springboot3/graphql-pet-store/pom.xml                   | 2 +-
 samples/springboot3/pet-store/pom.xml                           | 2 +-
 8 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
index 63fca8319..191ba74f5 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
@@ -107,7 +107,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-shade-plugin</artifactId>
-                        <version>3.5.3</version>
+                        <version>3.6.0</version>
                         <configuration>
                             <createDependencyReducedPom>false</createDependencyReducedPom>
                         </configuration>
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
index 89035bf68..d88b57972 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
@@ -119,7 +119,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-shade-plugin</artifactId>
-                        <version>3.5.3</version>
+                        <version>3.6.0</version>
                         <executions>
                             <execution>
                                 <phase>package</phase>
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
index 9c032f77b..f1a0d5013 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
@@ -83,7 +83,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-shade-plugin</artifactId>
-                        <version>3.5.3</version>
+                        <version>3.6.0</version>
                         <configuration>
                             <createDependencyReducedPom>false</createDependencyReducedPom>
                         </configuration>
diff --git a/samples/jersey/pet-store/pom.xml b/samples/jersey/pet-store/pom.xml
index 5348598aa..549e8b8b7 100644
--- a/samples/jersey/pet-store/pom.xml
+++ b/samples/jersey/pet-store/pom.xml
@@ -85,7 +85,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-shade-plugin</artifactId>
-                        <version>3.5.3</version>
+                        <version>3.6.0</version>
                         <configuration>
                             <createDependencyReducedPom>false</createDependencyReducedPom>
                         </configuration>
diff --git a/samples/spring/pet-store/pom.xml b/samples/spring/pet-store/pom.xml
index 6aae5db92..fbd76b978 100644
--- a/samples/spring/pet-store/pom.xml
+++ b/samples/spring/pet-store/pom.xml
@@ -95,7 +95,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-shade-plugin</artifactId>
-                        <version>3.5.3</version>
+                        <version>3.6.0</version>
                         <executions>
                             <execution>
                                 <phase>package</phase>
diff --git a/samples/springboot3/alt-pet-store/pom.xml b/samples/springboot3/alt-pet-store/pom.xml
index 4c091d29b..7d39cd9a9 100644
--- a/samples/springboot3/alt-pet-store/pom.xml
+++ b/samples/springboot3/alt-pet-store/pom.xml
@@ -49,7 +49,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-shade-plugin</artifactId>
-                        <version>3.5.3</version>
+                        <version>3.6.0</version>
                         <configuration>
                             <createDependencyReducedPom>false</createDependencyReducedPom>
                         </configuration>
diff --git a/samples/springboot3/graphql-pet-store/pom.xml b/samples/springboot3/graphql-pet-store/pom.xml
index e522132e7..6e6db6ca8 100644
--- a/samples/springboot3/graphql-pet-store/pom.xml
+++ b/samples/springboot3/graphql-pet-store/pom.xml
@@ -63,7 +63,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-shade-plugin</artifactId>
-                        <version>3.5.3</version>
+                        <version>3.6.0</version>
                         <configuration>
                             <createDependencyReducedPom>false</createDependencyReducedPom>
                         </configuration>
diff --git a/samples/springboot3/pet-store/pom.xml b/samples/springboot3/pet-store/pom.xml
index 7fe8681e6..3c6c3a927 100644
--- a/samples/springboot3/pet-store/pom.xml
+++ b/samples/springboot3/pet-store/pom.xml
@@ -55,7 +55,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-shade-plugin</artifactId>
-                        <version>3.5.3</version>
+                        <version>3.6.0</version>
                         <configuration>
                             <createDependencyReducedPom>false</createDependencyReducedPom>
                         </configuration>

From 7b73750b93381934b895200df7ad462362d078e1 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 17 Jun 2024 04:25:20 +0000
Subject: [PATCH 213/430] chore(deps): bump
 org.apache.maven.plugins:maven-surefire-plugin

Bumps [org.apache.maven.plugins:maven-surefire-plugin](https://github.com/apache/maven-surefire) from 3.2.5 to 3.3.0.
- [Release notes](https://github.com/apache/maven-surefire/releases)
- [Commits](https://github.com/apache/maven-surefire/compare/surefire-3.2.5...surefire-3.3.0)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-surefire-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index e9c467e53..237b38f54 100644
--- a/pom.xml
+++ b/pom.xml
@@ -206,7 +206,7 @@
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-surefire-plugin</artifactId>
-                    <version>3.2.5</version>
+                    <version>3.3.0</version>
                 </plugin>
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>

From 2af97118475fbf417a427fa6493726d7f1992885 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 17 Jun 2024 04:25:26 +0000
Subject: [PATCH 214/430] chore(deps): bump
 org.apache.maven.plugins:maven-release-plugin

Bumps [org.apache.maven.plugins:maven-release-plugin](https://github.com/apache/maven-release) from 3.0.1 to 3.1.0.
- [Release notes](https://github.com/apache/maven-release/releases)
- [Commits](https://github.com/apache/maven-release/compare/maven-release-3.0.1...maven-release-3.1.0)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-release-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index e9c467e53..4bfdb1512 100644
--- a/pom.xml
+++ b/pom.xml
@@ -236,7 +236,7 @@
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-release-plugin</artifactId>
-                    <version>3.0.1</version>
+                    <version>3.1.0</version>
                     <configuration>
                         <releaseProfiles>serverless-java-container-release</releaseProfiles>
                         <preparationGoals>clean verify install</preparationGoals>

From 9463113c314b16fcad299f2455ac68ccb5c52660 Mon Sep 17 00:00:00 2001
From: mbfreder <mbfreder@amazon.com>
Date: Wed, 19 Jun 2024 06:55:59 -0700
Subject: [PATCH 215/430] fix: Error with version 2.0.2 when multi-value header
 is active in alb

---
 .../servlet/AwsProxyHttpServletRequest.java   | 29 ++++++++++++-------
 .../AwsProxyHttpServletRequestTest.java       | 16 +++++++++-
 2 files changed, 33 insertions(+), 12 deletions(-)

diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequest.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequest.java
index 17d04a57c..fe514e65d 100644
--- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequest.java
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequest.java
@@ -437,8 +437,10 @@ public String getRemoteAddr() {
         if (request.getRequestContext() == null || request.getRequestContext().getIdentity() == null) {
             return "127.0.0.1";
         }
-        if (request.getRequestContext().getElb() != null) {
-            return request.getHeaders().get(CLIENT_IP_HEADER);
+        if (request.getRequestSource().equals(RequestSource.ALB)) {
+            return Objects.nonNull(request.getHeaders()) ?
+                    request.getHeaders().get(CLIENT_IP_HEADER) :
+                    request.getMultiValueHeaders().getFirst(CLIENT_IP_HEADER);
         }
         return request.getRequestContext().getIdentity().getSourceIp();
     }
@@ -446,14 +448,16 @@ public String getRemoteAddr() {
 
     @Override
     public String getRemoteHost() {
-        if (Objects.nonNull(request.getRequestContext().getElb())) {
-            String hostHeader = request.getHeaders().get(HttpHeaders.HOST);
-
-            // the host header has the form host:port, so we split the string to get the host part
-            return Arrays.asList(hostHeader.split(":")).get(0);
+        String hostHeader;
+        if (request.getRequestSource().equals(RequestSource.ALB)) {
+            hostHeader = Objects.nonNull(request.getHeaders()) ?
+                    request.getHeaders().get(HttpHeaders.HOST) :
+                    request.getMultiValueHeaders().getFirst(HttpHeaders.HOST);
+        } else {
+            hostHeader = request.getMultiValueHeaders().getFirst(HttpHeaders.HOST);
         }
-
-        return request.getMultiValueHeaders().getFirst(HttpHeaders.HOST);
+        // the host header has the form host:port, so we split the string to get the host part
+        return Arrays.asList(hostHeader.split(":")).get(0);
     }
 
 
@@ -483,8 +487,11 @@ public RequestDispatcher getRequestDispatcher(String s) {
 
     @Override
     public int getRemotePort() {
-        if (Objects.nonNull(request.getRequestContext().getElb())) {
-            String portHeader = request.getHeaders().get(PORT_HEADER_NAME);
+        if (request.getRequestSource().equals(RequestSource.ALB)) {
+            String portHeader;
+            portHeader = Objects.nonNull(request.getHeaders()) ?
+                    request.getHeaders().get(PORT_HEADER_NAME) :
+                    request.getMultiValueHeaders().getFirst(PORT_HEADER_NAME);
             if (Objects.nonNull(portHeader)) {
                 return Integer.parseInt(portHeader);
             }
diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequestTest.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequestTest.java
index 45c38843e..4edcf5241 100644
--- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequestTest.java
+++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequestTest.java
@@ -652,10 +652,11 @@ void serverName_albHostHeader_returnsHostHeader() {
     }
 
     @Test
-    void getRemoteHost_albHostHeader_returnsHostHeader() {
+    void getRemoteHost_albHostHeader_singleValue_returnsHostHeader() {
         initAwsProxyHttpServletRequestTest("ALB");
         AwsProxyRequest proxyReq = new AwsProxyRequestBuilder("/test", "GET")
                 .alb().build();
+        proxyReq.setMultiValueHeaders(null);
         proxyReq.getHeaders().put(HttpHeaders.HOST, "testapi.us-east-1.elb.amazonaws.com");
         HttpServletRequest servletRequest = new AwsProxyHttpServletRequest(proxyReq, null, null);
 
@@ -663,6 +664,19 @@ void getRemoteHost_albHostHeader_returnsHostHeader() {
         assertEquals("testapi.us-east-1.elb.amazonaws.com", host);
     }
 
+    @Test
+    void getRemoteHost_albHostHeader_multiValue_returnsHostHeader() {
+        initAwsProxyHttpServletRequestTest("ALB");
+        AwsProxyRequest proxyReq = new AwsProxyRequestBuilder("/test", "GET")
+                .header(HttpHeaders.HOST, "testapi.us-east-1.elb.amazonaws.com")
+                .alb().build();
+        proxyReq.setHeaders(null);
+        HttpServletRequest servletRequest = new AwsProxyHttpServletRequest(proxyReq, null, null);
+
+        String host = servletRequest.getRemoteHost();
+        assertEquals("testapi.us-east-1.elb.amazonaws.com", host);
+    }
+
     private AwsProxyRequestBuilder getRequestWithHeaders() {
         return new AwsProxyRequestBuilder("/hello", "GET")
                 .header(CUSTOM_HEADER_KEY, CUSTOM_HEADER_VALUE)

From f98ac96e4da221d2a5d6468b8f26feb0760623c3 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Thu, 20 Jun 2024 13:47:54 +0200
Subject: [PATCH 216/430] chore(deps): Update Spring dependencies (framework to
 6.1.10, security to 6.3.1, boot to 3.3.1)

---
 .github/workflows/continuous-integration-workflow.yml      | 7 +++++--
 aws-serverless-java-container-core/pom.xml                 | 2 +-
 aws-serverless-java-container-spring/pom.xml               | 4 ++--
 aws-serverless-java-container-springboot3/pom.xml          | 6 +++---
 .../src/main/resources/archetype-resources/build.gradle    | 4 ++--
 .../src/main/resources/archetype-resources/pom.xml         | 2 +-
 .../src/main/resources/archetype-resources/build.gradle    | 2 +-
 .../src/main/resources/archetype-resources/pom.xml         | 2 +-
 samples/spring/pet-store/build.gradle                      | 4 ++--
 samples/spring/pet-store/pom.xml                           | 2 +-
 samples/springboot3/alt-pet-store/build.gradle             | 2 +-
 samples/springboot3/alt-pet-store/pom.xml                  | 2 +-
 samples/springboot3/graphql-pet-store/pom.xml              | 2 +-
 samples/springboot3/pet-store-native/pom.xml               | 2 +-
 samples/springboot3/pet-store/build.gradle                 | 2 +-
 samples/springboot3/pet-store/pom.xml                      | 2 +-
 16 files changed, 25 insertions(+), 22 deletions(-)

diff --git a/.github/workflows/continuous-integration-workflow.yml b/.github/workflows/continuous-integration-workflow.yml
index dbe5f05f4..25228263a 100644
--- a/.github/workflows/continuous-integration-workflow.yml
+++ b/.github/workflows/continuous-integration-workflow.yml
@@ -4,6 +4,7 @@ on:
   pull_request:
     branches:
       - main
+      - 2.0.x
       - 1.x
   workflow_dispatch:
 
@@ -59,7 +60,7 @@ jobs:
       - name: Build latest
         run: ./gha_build.sh spring true true
 #      - name: Build with Spring 6.0.x
-#        run: ./gha_build.sh spring false false -Dspring.version=6.0.16 -Dspring-security.version=6.1.8 -Ddependency-check.skip=true
+#        run: ./gha_build.sh spring false false -Dspring.version=6.0.16 -Dspring-security.version=6.1.10 -Ddependency-check.skip=true
 
   build_springboot3:
     name: Build and test SpringBoot 3
@@ -75,7 +76,9 @@ jobs:
         run: ./gha_build.sh springboot3 true true
       # Build with additional supported versions https://spring.io/projects/spring-boot#support
       - name: Build with Spring Boot 3.1.x
-        run: ./gha_build.sh springboot3 false false -Dspringboot.version=3.1.8 -Dspring.version=6.0.16 -Dspringsecurity.version=6.1.8 -Ddependency-check.skip=true
+        run: ./gha_build.sh springboot3 false false -Dspringboot.version=3.1.12 -Dspring.version=6.0.21 -Dspringsecurity.version=6.1.9 -Ddependency-check.skip=true
+      - name: Build with Spring Boot 3.2.x
+        run: ./gha_build.sh springboot3 false false -Dspringboot.version=3.2.7 -Dspring.version=6.1.10 -Dspringsecurity.version=6.2.5 -Ddependency-check.skip=true
 
 # temporarily disabled as Struts is not released at the moment
 #  build_struts2:
diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml
index 6f2e18f45..c412ea545 100644
--- a/aws-serverless-java-container-core/pom.xml
+++ b/aws-serverless-java-container-core/pom.xml
@@ -60,7 +60,7 @@
         <dependency>
             <groupId>org.springframework.security</groupId>
             <artifactId>spring-security-web</artifactId>
-            <version>6.3.0</version>
+            <version>6.3.1</version>
             <scope>test</scope>
         </dependency>
     </dependencies>
diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml
index 9fa13e6ce..d82547e64 100644
--- a/aws-serverless-java-container-spring/pom.xml
+++ b/aws-serverless-java-container-spring/pom.xml
@@ -16,8 +16,8 @@
     </parent>
 
     <properties>
-        <spring.version>6.1.8</spring.version>
-        <spring-security.version>6.3.0</spring-security.version>
+        <spring.version>6.1.10</spring.version>
+        <spring-security.version>6.3.1</spring-security.version>
     </properties>
 
     <dependencies>
diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml
index 4ecc79d68..b64ebd6fe 100644
--- a/aws-serverless-java-container-springboot3/pom.xml
+++ b/aws-serverless-java-container-springboot3/pom.xml
@@ -15,9 +15,9 @@
     <version>2.1.0-SNAPSHOT</version>
 
     <properties>
-        <spring.version>6.1.8</spring.version>
-        <springboot.version>3.3.0</springboot.version>
-        <springsecurity.version>6.3.0</springsecurity.version>
+        <spring.version>6.1.10</spring.version>
+        <springboot.version>3.3.1</springboot.version>
+        <springsecurity.version>6.3.1</springsecurity.version>
     </properties>
 
     <dependencies>
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
index 12d909c92..e444282e7 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
@@ -7,8 +7,8 @@ repositories {
 
 dependencies {
   implementation (
-          'org.springframework:spring-webmvc:6.1.8',
-          'org.springframework:spring-context:6.1.8',
+          'org.springframework:spring-webmvc:6.1.10',
+          'org.springframework:spring-context:6.1.10',
           'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)',
           'org.apache.logging.log4j:log4j-core:2.23.1',
           'org.apache.logging.log4j:log4j-api:2.23.1',
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
index d88b57972..e8d39e982 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
@@ -16,7 +16,7 @@
     <properties>
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
-        <spring.version>6.1.8</spring.version>
+        <spring.version>6.1.10</spring.version>
         <junit.version>5.10.2</junit.version>
         <log4j.version>2.23.1</log4j.version>
     </properties>
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
index c71d8e6ea..07387e7f8 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
@@ -9,7 +9,7 @@ repositories {
 
 dependencies {
   implementation (
-          'org.springframework.boot:spring-boot-starter-web:3.3.0',
+          'org.springframework.boot:spring-boot-starter-web:3.3.1',
           'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)',
   )
 
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
index f1a0d5013..263f4ef57 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
@@ -16,7 +16,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.3.0</version>
+        <version>3.3.1</version>
     </parent>
 
     <properties>
diff --git a/samples/spring/pet-store/build.gradle b/samples/spring/pet-store/build.gradle
index 394581eab..9ef83f2d7 100644
--- a/samples/spring/pet-store/build.gradle
+++ b/samples/spring/pet-store/build.gradle
@@ -7,8 +7,8 @@ repositories {
 
 dependencies {
   implementation (
-          'org.springframework:spring-webmvc:6.1.8',
-          'org.springframework:spring-context:6.1.8',
+          'org.springframework:spring-webmvc:6.1.10',
+          'org.springframework:spring-context:6.1.10',
           'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)',
           'org.apache.logging.log4j:log4j-core:2.23.1',
           'org.apache.logging.log4j:log4j-api:2.23.1',
diff --git a/samples/spring/pet-store/pom.xml b/samples/spring/pet-store/pom.xml
index fbd76b978..e8a76ac65 100644
--- a/samples/spring/pet-store/pom.xml
+++ b/samples/spring/pet-store/pom.xml
@@ -24,7 +24,7 @@
     </licenses>
 
     <properties>
-        <spring.version>6.1.8</spring.version>
+        <spring.version>6.1.10</spring.version>
         <log4j.version>2.23.1</log4j.version>
         <maven.compiler.source>17</maven.compiler.source>
         <maven.compiler.target>17</maven.compiler.target>
diff --git a/samples/springboot3/alt-pet-store/build.gradle b/samples/springboot3/alt-pet-store/build.gradle
index b4d110a08..0982e1302 100644
--- a/samples/springboot3/alt-pet-store/build.gradle
+++ b/samples/springboot3/alt-pet-store/build.gradle
@@ -9,7 +9,7 @@ repositories {
 
 dependencies {
   implementation (
-          implementation('org.springframework.boot:spring-boot-starter-web:3.3.0') {
+          implementation('org.springframework.boot:spring-boot-starter-web:3.3.1') {
             exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat'
           },
           'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)',
diff --git a/samples/springboot3/alt-pet-store/pom.xml b/samples/springboot3/alt-pet-store/pom.xml
index 7d39cd9a9..c4ce5ff57 100644
--- a/samples/springboot3/alt-pet-store/pom.xml
+++ b/samples/springboot3/alt-pet-store/pom.xml
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.3.0</version>
+        <version>3.3.1</version>
     </parent>
 
     <licenses>
diff --git a/samples/springboot3/graphql-pet-store/pom.xml b/samples/springboot3/graphql-pet-store/pom.xml
index 6e6db6ca8..7f3c30ba7 100644
--- a/samples/springboot3/graphql-pet-store/pom.xml
+++ b/samples/springboot3/graphql-pet-store/pom.xml
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.3.0</version>
+        <version>3.3.1</version>
     </parent>
 
     <licenses>
diff --git a/samples/springboot3/pet-store-native/pom.xml b/samples/springboot3/pet-store-native/pom.xml
index 826c647e4..5345e7f86 100644
--- a/samples/springboot3/pet-store-native/pom.xml
+++ b/samples/springboot3/pet-store-native/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.springframework.boot</groupId>
 		<artifactId>spring-boot-starter-parent</artifactId>
-		<version>3.3.0</version>
+		<version>3.3.1</version>
 		<relativePath /> <!-- lookup parent from repository -->
 	</parent>
 	<groupId>com.amazonaws.serverless.sample</groupId>
diff --git a/samples/springboot3/pet-store/build.gradle b/samples/springboot3/pet-store/build.gradle
index b4d110a08..0982e1302 100644
--- a/samples/springboot3/pet-store/build.gradle
+++ b/samples/springboot3/pet-store/build.gradle
@@ -9,7 +9,7 @@ repositories {
 
 dependencies {
   implementation (
-          implementation('org.springframework.boot:spring-boot-starter-web:3.3.0') {
+          implementation('org.springframework.boot:spring-boot-starter-web:3.3.1') {
             exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat'
           },
           'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)',
diff --git a/samples/springboot3/pet-store/pom.xml b/samples/springboot3/pet-store/pom.xml
index 3c6c3a927..b582abb02 100644
--- a/samples/springboot3/pet-store/pom.xml
+++ b/samples/springboot3/pet-store/pom.xml
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.3.0</version>
+        <version>3.3.1</version>
     </parent>
 
     <licenses>

From 8ec710296dec04781ed44d864ea3826c100caf0e Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 24 Jun 2024 04:51:31 +0000
Subject: [PATCH 217/430] chore(deps): bump
 com.github.spotbugs:spotbugs-annotations

Bumps [com.github.spotbugs:spotbugs-annotations](https://github.com/spotbugs/spotbugs) from 4.8.5 to 4.8.6.
- [Release notes](https://github.com/spotbugs/spotbugs/releases)
- [Changelog](https://github.com/spotbugs/spotbugs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/spotbugs/spotbugs/compare/4.8.5...4.8.6)

---
updated-dependencies:
- dependency-name: com.github.spotbugs:spotbugs-annotations
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 999f74797..cdd3fca1d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -140,7 +140,7 @@
         <dependency>
             <groupId>com.github.spotbugs</groupId>
             <artifactId>spotbugs-annotations</artifactId>
-            <version>4.8.5</version>
+            <version>4.8.6</version>
             <scope>provided</scope>
         </dependency>
     </dependencies>

From 9e4190b35d13c8452f062679e863d0be9578c943 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 24 Jun 2024 04:51:39 +0000
Subject: [PATCH 218/430] chore(deps): bump
 org.apache.maven.plugins:maven-clean-plugin

Bumps [org.apache.maven.plugins:maven-clean-plugin](https://github.com/apache/maven-clean-plugin) from 3.3.2 to 3.4.0.
- [Release notes](https://github.com/apache/maven-clean-plugin/releases)
- [Commits](https://github.com/apache/maven-clean-plugin/compare/maven-clean-plugin-3.3.2...maven-clean-plugin-3.4.0)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-clean-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 999f74797..203ca2be1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -211,7 +211,7 @@
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-clean-plugin</artifactId>
-                    <version>3.3.2</version>
+                    <version>3.4.0</version>
                 </plugin>
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>

From b62d9860e8843a9eff8fbdbe0c420ab72166098a Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Mon, 24 Jun 2024 15:19:50 +0200
Subject: [PATCH 219/430] chore(deps): Update maven-jar-plugin to 3.4.2

---
 aws-serverless-java-container-core/pom.xml                      | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 pom.xml                                                         | 2 +-
 samples/jersey/pet-store/pom.xml                                | 2 +-
 samples/spring/pet-store/pom.xml                                | 2 +-
 samples/springboot3/alt-pet-store/pom.xml                       | 2 +-
 samples/springboot3/graphql-pet-store/pom.xml                   | 2 +-
 samples/springboot3/pet-store/pom.xml                           | 2 +-
 10 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml
index c412ea545..10e06b180 100644
--- a/aws-serverless-java-container-core/pom.xml
+++ b/aws-serverless-java-container-core/pom.xml
@@ -70,7 +70,7 @@
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-jar-plugin</artifactId>
-                <version>3.4.1</version>
+                <version>3.4.2</version>
                 <executions>
                     <execution>
                         <goals>
diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
index 191ba74f5..936a72c97 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
@@ -134,7 +134,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-jar-plugin</artifactId>
-                        <version>3.4.1</version>
+                        <version>3.4.2</version>
                         <executions>
                             <execution>
                                 <id>default-jar</id>
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
index e8d39e982..af417c9a3 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
@@ -157,7 +157,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-jar-plugin</artifactId>
-                        <version>3.4.1</version>
+                        <version>3.4.2</version>
                         <executions>
                             <execution>
                                 <id>default-jar</id>
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
index 263f4ef57..1bd162b54 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
@@ -117,7 +117,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-jar-plugin</artifactId>
-                        <version>3.2.0</version>
+                        <version>3.4.2</version>
                         <executions>
                             <execution>
                                 <id>default-jar</id>
diff --git a/pom.xml b/pom.xml
index 203ca2be1..e2ea58f78 100644
--- a/pom.xml
+++ b/pom.xml
@@ -216,7 +216,7 @@
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-jar-plugin</artifactId>
-                    <version>3.4.1</version>
+                    <version>3.4.2</version>
                 </plugin>
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
diff --git a/samples/jersey/pet-store/pom.xml b/samples/jersey/pet-store/pom.xml
index 549e8b8b7..80ae54fb0 100644
--- a/samples/jersey/pet-store/pom.xml
+++ b/samples/jersey/pet-store/pom.xml
@@ -112,7 +112,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-jar-plugin</artifactId>
-                        <version>3.4.1</version>
+                        <version>3.4.2</version>
                         <executions>
                             <execution>
                                 <id>default-jar</id>
diff --git a/samples/spring/pet-store/pom.xml b/samples/spring/pet-store/pom.xml
index e8a76ac65..dcaf874b2 100644
--- a/samples/spring/pet-store/pom.xml
+++ b/samples/spring/pet-store/pom.xml
@@ -133,7 +133,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-jar-plugin</artifactId>
-                        <version>3.4.1</version>
+                        <version>3.4.2</version>
                         <executions>
                             <execution>
                                 <id>default-jar</id>
diff --git a/samples/springboot3/alt-pet-store/pom.xml b/samples/springboot3/alt-pet-store/pom.xml
index c4ce5ff57..91704d7fe 100644
--- a/samples/springboot3/alt-pet-store/pom.xml
+++ b/samples/springboot3/alt-pet-store/pom.xml
@@ -83,7 +83,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-jar-plugin</artifactId>
-                        <version>3.4.1</version>
+                        <version>3.4.2</version>
                         <executions>
                             <execution>
                                 <id>default-jar</id>
diff --git a/samples/springboot3/graphql-pet-store/pom.xml b/samples/springboot3/graphql-pet-store/pom.xml
index 7f3c30ba7..1a9c13976 100644
--- a/samples/springboot3/graphql-pet-store/pom.xml
+++ b/samples/springboot3/graphql-pet-store/pom.xml
@@ -97,7 +97,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-jar-plugin</artifactId>
-                        <version>3.4.1</version>
+                        <version>3.4.2</version>
                         <executions>
                             <execution>
                                 <id>default-jar</id>
diff --git a/samples/springboot3/pet-store/pom.xml b/samples/springboot3/pet-store/pom.xml
index b582abb02..22caaa309 100644
--- a/samples/springboot3/pet-store/pom.xml
+++ b/samples/springboot3/pet-store/pom.xml
@@ -89,7 +89,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-jar-plugin</artifactId>
-                        <version>3.4.1</version>
+                        <version>3.4.2</version>
                         <executions>
                             <execution>
                                 <id>default-jar</id>

From eb921c1b97999171b96685e9bd06634110eb609d Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 26 Jun 2024 14:43:16 +0000
Subject: [PATCH 220/430] chore(deps): bump
 com.amazonaws:aws-lambda-java-events

Bumps [com.amazonaws:aws-lambda-java-events](https://github.com/aws/aws-lambda-java-libs) from 3.11.5 to 3.11.6.
- [Commits](https://github.com/aws/aws-lambda-java-libs/commits)

---
updated-dependencies:
- dependency-name: com.amazonaws:aws-lambda-java-events
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 samples/springboot3/pet-store-native/pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/samples/springboot3/pet-store-native/pom.xml b/samples/springboot3/pet-store-native/pom.xml
index 5345e7f86..1e10f9c35 100644
--- a/samples/springboot3/pet-store-native/pom.xml
+++ b/samples/springboot3/pet-store-native/pom.xml
@@ -31,7 +31,7 @@
 		<dependency>
 			<groupId>com.amazonaws</groupId>
 			<artifactId>aws-lambda-java-events</artifactId>
-			<version>3.11.5</version>
+			<version>3.11.6</version>
 		</dependency>
 		<dependency>
 			<groupId>com.amazonaws</groupId>

From a8e4801d9a6fae29f72735f69482a09f4a4714ad Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 1 Jul 2024 05:06:38 +0000
Subject: [PATCH 221/430] chore(deps): bump
 com.github.spotbugs:spotbugs-maven-plugin

Bumps [com.github.spotbugs:spotbugs-maven-plugin](https://github.com/spotbugs/spotbugs-maven-plugin) from 4.8.5.0 to 4.8.6.1.
- [Release notes](https://github.com/spotbugs/spotbugs-maven-plugin/releases)
- [Commits](https://github.com/spotbugs/spotbugs-maven-plugin/compare/spotbugs-maven-plugin-4.8.5.0...spotbugs-maven-plugin-4.8.6.1)

---
updated-dependencies:
- dependency-name: com.github.spotbugs:spotbugs-maven-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 7fddf84d0..3a20f6864 100644
--- a/pom.xml
+++ b/pom.xml
@@ -249,7 +249,7 @@
                 <plugin>
                     <groupId>com.github.spotbugs</groupId>
                     <artifactId>spotbugs-maven-plugin</artifactId>
-                    <version>4.8.5.0</version>
+                    <version>4.8.6.1</version>
                     <configuration>
                         <!--
                             Enables analysis which takes more memory but finds more bugs.

From e4ac1ac0f0a1871dac35610329cfb888d114fc9d Mon Sep 17 00:00:00 2001
From: Maximilian Schellhorn <mxschell@amazon.de>
Date: Fri, 5 Jul 2024 12:55:54 +0200
Subject: [PATCH 222/430] fix: Added GraalVM Runtime Hints for HttpApiV2

---
 .../spring/AwsSpringAotTypesProcessor.java    | 26 ++++++++++++++-----
 1 file changed, 19 insertions(+), 7 deletions(-)

diff --git a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringAotTypesProcessor.java b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringAotTypesProcessor.java
index f7fbe9e25..b64855636 100644
--- a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringAotTypesProcessor.java
+++ b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringAotTypesProcessor.java
@@ -16,6 +16,7 @@
 
 package com.amazonaws.serverless.proxy.spring;
 
+import com.amazonaws.serverless.proxy.model.*;
 import org.springframework.aot.generate.GenerationContext;
 import org.springframework.aot.hint.MemberCategory;
 import org.springframework.aot.hint.RuntimeHints;
@@ -25,13 +26,6 @@
 import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
 
 import com.amazonaws.serverless.proxy.internal.servlet.AwsHttpServletResponse;
-import com.amazonaws.serverless.proxy.model.ApiGatewayRequestIdentity;
-import com.amazonaws.serverless.proxy.model.AwsProxyRequest;
-import com.amazonaws.serverless.proxy.model.AwsProxyRequestContext;
-import com.amazonaws.serverless.proxy.model.AwsProxyResponse;
-import com.amazonaws.serverless.proxy.model.Headers;
-import com.amazonaws.serverless.proxy.model.MultiValuedTreeMap;
-import com.amazonaws.serverless.proxy.model.SingleValueHeaders;
 import com.fasterxml.jackson.core.JsonToken;
 
 /**
@@ -73,6 +67,24 @@ public void applyTo(GenerationContext generationContext, BeanFactoryInitializati
 			runtimeHints.reflection().registerType(AwsHttpServletResponse.class,
 					MemberCategory.INVOKE_PUBLIC_METHODS, MemberCategory.INVOKE_PUBLIC_CONSTRUCTORS, 
 					MemberCategory.DECLARED_FIELDS, MemberCategory.DECLARED_CLASSES, MemberCategory.INTROSPECT_DECLARED_METHODS);
+			runtimeHints.reflection().registerType(HttpApiV2ProxyRequest.class,
+					MemberCategory.INVOKE_PUBLIC_METHODS, MemberCategory.INVOKE_PUBLIC_CONSTRUCTORS,
+					MemberCategory.DECLARED_FIELDS, MemberCategory.DECLARED_CLASSES, MemberCategory.INTROSPECT_DECLARED_METHODS);
+			runtimeHints.reflection().registerType(HttpApiV2HttpContext.class,
+					MemberCategory.INVOKE_PUBLIC_METHODS, MemberCategory.INVOKE_PUBLIC_CONSTRUCTORS,
+					MemberCategory.DECLARED_FIELDS, MemberCategory.DECLARED_CLASSES, MemberCategory.INTROSPECT_DECLARED_METHODS);
+			runtimeHints.reflection().registerType(HttpApiV2ProxyRequestContext.class,
+					MemberCategory.INVOKE_PUBLIC_METHODS, MemberCategory.INVOKE_PUBLIC_CONSTRUCTORS,
+					MemberCategory.DECLARED_FIELDS, MemberCategory.DECLARED_CLASSES, MemberCategory.INTROSPECT_DECLARED_METHODS);
+			runtimeHints.reflection().registerType(HttpApiV2AuthorizerMap.class,
+					MemberCategory.INVOKE_PUBLIC_METHODS, MemberCategory.INVOKE_PUBLIC_CONSTRUCTORS,
+					MemberCategory.DECLARED_FIELDS, MemberCategory.DECLARED_CLASSES, MemberCategory.INTROSPECT_DECLARED_METHODS);
+			runtimeHints.reflection().registerType(HttpApiV2AuthorizerMap.HttpApiV2AuthorizerDeserializer.class,
+					MemberCategory.INVOKE_PUBLIC_METHODS, MemberCategory.INVOKE_PUBLIC_CONSTRUCTORS,
+					MemberCategory.DECLARED_FIELDS, MemberCategory.DECLARED_CLASSES, MemberCategory.INTROSPECT_DECLARED_METHODS);
+			runtimeHints.reflection().registerType(HttpApiV2AuthorizerMap.HttpApiV2AuthorizerSerializer.class,
+					MemberCategory.INVOKE_PUBLIC_METHODS, MemberCategory.INVOKE_PUBLIC_CONSTRUCTORS,
+					MemberCategory.DECLARED_FIELDS, MemberCategory.DECLARED_CLASSES, MemberCategory.INTROSPECT_DECLARED_METHODS);
 		}
 
 	}

From 448bb1dc70d58ce6489ef4b7768756a6cb4e7ff1 Mon Sep 17 00:00:00 2001
From: Maximilian Schellhorn <mxschell@amazon.de>
Date: Fri, 5 Jul 2024 13:07:29 +0200
Subject: [PATCH 223/430] fix: Added GraalVM Runtime Hints for HttpApiV2 and
 Authorizers

---
 .../serverless/proxy/spring/AwsSpringAotTypesProcessor.java | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringAotTypesProcessor.java b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringAotTypesProcessor.java
index b64855636..87e9ead04 100644
--- a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringAotTypesProcessor.java
+++ b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringAotTypesProcessor.java
@@ -85,6 +85,12 @@ public void applyTo(GenerationContext generationContext, BeanFactoryInitializati
 			runtimeHints.reflection().registerType(HttpApiV2AuthorizerMap.HttpApiV2AuthorizerSerializer.class,
 					MemberCategory.INVOKE_PUBLIC_METHODS, MemberCategory.INVOKE_PUBLIC_CONSTRUCTORS,
 					MemberCategory.DECLARED_FIELDS, MemberCategory.DECLARED_CLASSES, MemberCategory.INTROSPECT_DECLARED_METHODS);
+			runtimeHints.reflection().registerType(HttpApiV2IamAuthorizer.class,
+					MemberCategory.INVOKE_PUBLIC_METHODS, MemberCategory.INVOKE_PUBLIC_CONSTRUCTORS,
+					MemberCategory.DECLARED_FIELDS, MemberCategory.DECLARED_CLASSES, MemberCategory.INTROSPECT_DECLARED_METHODS);
+			runtimeHints.reflection().registerType(HttpApiV2JwtAuthorizer.class,
+					MemberCategory.INVOKE_PUBLIC_METHODS, MemberCategory.INVOKE_PUBLIC_CONSTRUCTORS,
+					MemberCategory.DECLARED_FIELDS, MemberCategory.DECLARED_CLASSES, MemberCategory.INTROSPECT_DECLARED_METHODS);
 		}
 
 	}

From ef2959cef2fdb9c602ac1233e47d80aaa7e97cdb Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Fri, 5 Jul 2024 14:31:46 +0200
Subject: [PATCH 224/430] chore(deps): Update maven-dependency-plugin to 3.7.1
 (fixes #915)

---
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 samples/jersey/pet-store/pom.xml                                | 2 +-
 samples/spring/pet-store/pom.xml                                | 2 +-
 samples/springboot3/alt-pet-store/pom.xml                       | 2 +-
 samples/springboot3/graphql-pet-store/pom.xml                   | 2 +-
 samples/springboot3/pet-store-native/pom.xml                    | 2 +-
 samples/springboot3/pet-store/pom.xml                           | 2 +-
 9 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
index 936a72c97..abce8f578 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
@@ -154,7 +154,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-dependency-plugin</artifactId>
-                        <version>3.6.1</version>
+                        <version>3.7.1</version>
                         <executions>
                             <execution>
                                 <id>copy-dependencies</id>
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
index af417c9a3..9f2a6b5a0 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
@@ -177,7 +177,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-dependency-plugin</artifactId>
-                        <version>3.6.1</version>
+                        <version>3.7.1</version>
                         <executions>
                             <execution>
                                 <id>copy-dependencies</id>
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
index 1bd162b54..d2edc2ddb 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
@@ -137,7 +137,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-dependency-plugin</artifactId>
-                        <version>3.6.1</version>
+                        <version>3.7.1</version>
                         <executions>
                             <execution>
                                 <id>copy-dependencies</id>
diff --git a/samples/jersey/pet-store/pom.xml b/samples/jersey/pet-store/pom.xml
index 80ae54fb0..4511654f3 100644
--- a/samples/jersey/pet-store/pom.xml
+++ b/samples/jersey/pet-store/pom.xml
@@ -132,7 +132,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-dependency-plugin</artifactId>
-                        <version>3.6.1</version>
+                        <version>3.7.1</version>
                         <executions>
                             <execution>
                                 <id>copy-dependencies</id>
diff --git a/samples/spring/pet-store/pom.xml b/samples/spring/pet-store/pom.xml
index dcaf874b2..fcc610a6e 100644
--- a/samples/spring/pet-store/pom.xml
+++ b/samples/spring/pet-store/pom.xml
@@ -153,7 +153,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-dependency-plugin</artifactId>
-                        <version>3.6.1</version>
+                        <version>3.7.1</version>
                         <executions>
                             <execution>
                                 <id>copy-dependencies</id>
diff --git a/samples/springboot3/alt-pet-store/pom.xml b/samples/springboot3/alt-pet-store/pom.xml
index 91704d7fe..944aac50d 100644
--- a/samples/springboot3/alt-pet-store/pom.xml
+++ b/samples/springboot3/alt-pet-store/pom.xml
@@ -103,7 +103,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-dependency-plugin</artifactId>
-                        <version>3.6.1</version>
+                        <version>3.7.1</version>
                         <executions>
                             <execution>
                                 <id>copy-dependencies</id>
diff --git a/samples/springboot3/graphql-pet-store/pom.xml b/samples/springboot3/graphql-pet-store/pom.xml
index 1a9c13976..45f235878 100644
--- a/samples/springboot3/graphql-pet-store/pom.xml
+++ b/samples/springboot3/graphql-pet-store/pom.xml
@@ -117,7 +117,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-dependency-plugin</artifactId>
-                        <version>3.6.1</version>
+                        <version>3.7.1</version>
                         <executions>
                             <execution>
                                 <id>copy-dependencies</id>
diff --git a/samples/springboot3/pet-store-native/pom.xml b/samples/springboot3/pet-store-native/pom.xml
index 1e10f9c35..6a2e5ee4c 100644
--- a/samples/springboot3/pet-store-native/pom.xml
+++ b/samples/springboot3/pet-store-native/pom.xml
@@ -16,7 +16,7 @@
 	<description>Sample of AWS with Spring Native</description>
 	<properties>
 		<java.version>17</java.version>
-		<spring-cloud.version>2022.0.5</spring-cloud.version>
+		<spring-cloud.version>2023.0.2</spring-cloud.version>
 	</properties>
 	<dependencies>
 		<dependency>
diff --git a/samples/springboot3/pet-store/pom.xml b/samples/springboot3/pet-store/pom.xml
index 22caaa309..22a974479 100644
--- a/samples/springboot3/pet-store/pom.xml
+++ b/samples/springboot3/pet-store/pom.xml
@@ -109,7 +109,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-dependency-plugin</artifactId>
-                        <version>3.6.1</version>
+                        <version>3.7.1</version>
                         <executions>
                             <execution>
                                 <id>copy-dependencies</id>

From d4af785542ff652ca65782a642435ab5cfc06ffa Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 8 Jul 2024 04:58:22 +0000
Subject: [PATCH 225/430] chore(deps): bump
 com.github.spotbugs:spotbugs-maven-plugin

Bumps [com.github.spotbugs:spotbugs-maven-plugin](https://github.com/spotbugs/spotbugs-maven-plugin) from 4.8.6.1 to 4.8.6.2.
- [Release notes](https://github.com/spotbugs/spotbugs-maven-plugin/releases)
- [Commits](https://github.com/spotbugs/spotbugs-maven-plugin/compare/spotbugs-maven-plugin-4.8.6.1...spotbugs-maven-plugin-4.8.6.2)

---
updated-dependencies:
- dependency-name: com.github.spotbugs:spotbugs-maven-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 3a20f6864..b5c3b6059 100644
--- a/pom.xml
+++ b/pom.xml
@@ -249,7 +249,7 @@
                 <plugin>
                     <groupId>com.github.spotbugs</groupId>
                     <artifactId>spotbugs-maven-plugin</artifactId>
-                    <version>4.8.6.1</version>
+                    <version>4.8.6.2</version>
                     <configuration>
                         <!--
                             Enables analysis which takes more memory but finds more bugs.

From 8100a778d1b03f0e9b72b2073c2f71ab7ffa4402 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Mon, 8 Jul 2024 07:28:03 +0200
Subject: [PATCH 226/430] chore(deps): Update Jackson version to 2.17.2 (fixes
 #921)

---
 .../src/main/resources/archetype-resources/build.gradle       | 2 +-
 .../src/main/resources/archetype-resources/pom.xml            | 2 +-
 .../src/main/resources/archetype-resources/build.gradle       | 2 +-
 .../src/main/resources/archetype-resources/build.gradle       | 4 ++--
 .../src/main/resources/archetype-resources/pom.xml            | 2 +-
 pom.xml                                                       | 2 +-
 samples/jersey/pet-store/build.gradle                         | 2 +-
 samples/jersey/pet-store/pom.xml                              | 2 +-
 samples/spring/pet-store/build.gradle                         | 2 +-
 samples/struts/pet-store/build.gradle                         | 4 ++--
 samples/struts/pet-store/pom.xml                              | 2 +-
 11 files changed, 13 insertions(+), 13 deletions(-)

diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
index 346ad59b9..41df3e819 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
@@ -8,7 +8,7 @@ repositories {
 dependencies {
   implementation (
           'com.amazonaws.serverless:aws-serverless-java-container-jersey:[2.0-SNAPSHOT,)',
-          'com.fasterxml.jackson.core:jackson-databind:2.17.1',
+          'com.fasterxml.jackson.core:jackson-databind:2.17.2',
   )
 
   implementation("org.glassfish.jersey.media:jersey-media-json-jackson:3.1.7") {
diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
index abce8f578..e5130a51e 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
@@ -16,7 +16,7 @@
         <maven.compiler.target>1.8</maven.compiler.target>
 
         <jersey.version>3.1.7</jersey.version>
-        <jackson.version>2.17.1</jackson.version>
+        <jackson.version>2.17.2</jackson.version>
         <junit.version>5.10.2</junit.version>
     </properties>
 
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
index e444282e7..1768618df 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
@@ -13,7 +13,7 @@ dependencies {
           'org.apache.logging.log4j:log4j-core:2.23.1',
           'org.apache.logging.log4j:log4j-api:2.23.1',
           'org.apache.logging.log4j:log4j-slf4j-impl:2.23.1',
-          'com.fasterxml.jackson.core:jackson-databind:2.17.1',
+          'com.fasterxml.jackson.core:jackson-databind:2.17.2',
           'com.amazonaws:aws-lambda-java-log4j2:1.6.0',
   )
 
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
index a5123f51a..117566158 100644
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
@@ -34,8 +34,8 @@ dependencies {
     exclude group: 'org.apache.logging.log4j', module: 'log4j-api'
   }
   implementation ('org.hibernate.validator:hibernate-validator:6.1.7.Final')
-  implementation ('com.fasterxml.jackson.core:jackson-databind:2.17.1')
-  implementation ('com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.17.1')
+  implementation ('com.fasterxml.jackson.core:jackson-databind:2.17.2')
+  implementation ('com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.17.2')
   implementation ('org.apache.logging.log4j:log4j-core:2.23.1')
   implementation ('org.apache.logging.log4j:log4j-api:2.23.1')
   implementation ('org.apache.logging.log4j:log4j-slf4j-impl:2.23.1')
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
index 2ef248b25..f462e99a9 100644
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
@@ -16,7 +16,7 @@
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
         <struts.version>7.0.0-M3</struts.version>
-        <jackson.version>2.17.1</jackson.version>
+        <jackson.version>2.17.2</jackson.version>
         <junit.version>5.10.2</junit.version>
         <log4j.version>2.23.1</log4j.version>
     </properties>
diff --git a/pom.xml b/pom.xml
index b5c3b6059..4b6e21671 100644
--- a/pom.xml
+++ b/pom.xml
@@ -78,7 +78,7 @@
     <properties>
         <jacoco.minCoverage>0.7</jacoco.minCoverage>
         <dependencyCheck.version>9.2.0</dependencyCheck.version>
-        <jackson.version>2.17.1</jackson.version>
+        <jackson.version>2.17.2</jackson.version>
         <slf4j.version>2.0.13</slf4j.version>
         <junit.version>5.10.2</junit.version>
         <mockito.version>5.12.0</mockito.version>
diff --git a/samples/jersey/pet-store/build.gradle b/samples/jersey/pet-store/build.gradle
index 086c66fcd..21734669c 100644
--- a/samples/jersey/pet-store/build.gradle
+++ b/samples/jersey/pet-store/build.gradle
@@ -8,7 +8,7 @@ repositories {
 dependencies {
   implementation (
           'com.amazonaws.serverless:aws-serverless-java-container-jersey:[2.0-SNAPSHOT,)',
-          'com.fasterxml.jackson.core:jackson-databind:2.17.1',
+          'com.fasterxml.jackson.core:jackson-databind:2.17.2',
   )
 
   implementation("org.glassfish.jersey.media:jersey-media-json-jackson:3.1.7") {
diff --git a/samples/jersey/pet-store/pom.xml b/samples/jersey/pet-store/pom.xml
index 4511654f3..34b953aa0 100644
--- a/samples/jersey/pet-store/pom.xml
+++ b/samples/jersey/pet-store/pom.xml
@@ -27,7 +27,7 @@
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
         <jersey.version>3.1.7</jersey.version>
-        <jackson.version>2.17.1</jackson.version>
+        <jackson.version>2.17.2</jackson.version>
     </properties>
 
     <dependencies>
diff --git a/samples/spring/pet-store/build.gradle b/samples/spring/pet-store/build.gradle
index 9ef83f2d7..931e516ed 100644
--- a/samples/spring/pet-store/build.gradle
+++ b/samples/spring/pet-store/build.gradle
@@ -13,7 +13,7 @@ dependencies {
           'org.apache.logging.log4j:log4j-core:2.23.1',
           'org.apache.logging.log4j:log4j-api:2.23.1',
           'org.apache.logging.log4j:log4j-slf4j-impl:2.23.1',
-          'com.fasterxml.jackson.core:jackson-databind:2.17.1',
+          'com.fasterxml.jackson.core:jackson-databind:2.17.2',
           'com.amazonaws:aws-lambda-java-log4j2:1.6.0',
   )
 }
diff --git a/samples/struts/pet-store/build.gradle b/samples/struts/pet-store/build.gradle
index 7f2fa5a4d..3240cc4cd 100644
--- a/samples/struts/pet-store/build.gradle
+++ b/samples/struts/pet-store/build.gradle
@@ -22,8 +22,8 @@ dependencies {
           'org.hibernate.validator:hibernate-validator:6.1.7.Final',
           'org.glassfish:jakarta.el:5.0.0-M1',
           'jakarta.el:jakarta.el-api:5.0.1',
-          'com.fasterxml.jackson.core:jackson-databind:2.17.1',
-          'com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.17.1',
+          'com.fasterxml.jackson.core:jackson-databind:2.17.2',
+          'com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.17.2',
           'org.apache.logging.log4j:log4j-core:2.23.1',
           'org.apache.logging.log4j:log4j-api:2.23.1',
           'com.amazonaws:aws-lambda-java-log4j2:1.6.0',
diff --git a/samples/struts/pet-store/pom.xml b/samples/struts/pet-store/pom.xml
index 5e7c16d3f..995f71e88 100644
--- a/samples/struts/pet-store/pom.xml
+++ b/samples/struts/pet-store/pom.xml
@@ -27,7 +27,7 @@
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
         <struts.version>7.0.0-M3</struts.version>
-        <jackson.version>2.17.1</jackson.version>
+        <jackson.version>2.17.2</jackson.version>
         <junit.version>4.13.2</junit.version>
         <log4j.version>2.23.1</log4j.version>
     </properties>

From f1e0d3c4f144985e191bdfa8423e3140ed371af5 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Mon, 8 Jul 2024 07:29:00 +0200
Subject: [PATCH 227/430] chore(deps): Update JUnit version to 5.10.3 (fixes
 #922)

---
 .../src/main/resources/archetype-resources/build.gradle         | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 .../src/main/resources/archetype-resources/build.gradle         | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 .../src/main/resources/archetype-resources/build.gradle         | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 .../src/main/resources/archetype-resources/build.gradle         | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 pom.xml                                                         | 2 +-
 9 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
index 41df3e819..0c8a117c2 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
@@ -23,7 +23,7 @@ dependencies {
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
   testImplementation("org.apache.httpcomponents.client5:httpclient5:5.2.1")
-  testImplementation(platform("org.junit:junit-bom:5.10.2"))
+  testImplementation(platform("org.junit:junit-bom:5.10.3"))
   testImplementation("org.junit.jupiter:junit-jupiter")
 }
 
diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
index e5130a51e..1389f62f1 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
@@ -17,7 +17,7 @@
 
         <jersey.version>3.1.7</jersey.version>
         <jackson.version>2.17.2</jackson.version>
-        <junit.version>5.10.2</junit.version>
+        <junit.version>5.10.3</junit.version>
     </properties>
 
     <dependencies>
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
index 1768618df..7599cad7a 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
@@ -19,7 +19,7 @@ dependencies {
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
   testImplementation("org.apache.httpcomponents.client5:httpclient5:5.2.1")
-  testImplementation(platform("org.junit:junit-bom:5.10.2"))
+  testImplementation(platform("org.junit:junit-bom:5.10.3"))
   testImplementation("org.junit.jupiter:junit-jupiter")
 }
 
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
index 9f2a6b5a0..88e424424 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
@@ -17,7 +17,7 @@
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
         <spring.version>6.1.10</spring.version>
-        <junit.version>5.10.2</junit.version>
+        <junit.version>5.10.3</junit.version>
         <log4j.version>2.23.1</log4j.version>
     </properties>
 
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
index 07387e7f8..2e6da08d2 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
@@ -15,7 +15,7 @@ dependencies {
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
   testImplementation("org.apache.httpcomponents.client5:httpclient5:5.2.1")
-  testImplementation(platform("org.junit:junit-bom:5.10.2"))
+  testImplementation(platform("org.junit:junit-bom:5.10.3"))
   testImplementation("org.junit.jupiter:junit-jupiter")
 }
 
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
index d2edc2ddb..affb9e192 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
@@ -21,7 +21,7 @@
 
     <properties>
         <java.version>17</java.version>
-        <junit.version>5.10.2</junit.version>
+        <junit.version>5.10.3</junit.version>
     </properties>
 
     <dependencies>
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
index 117566158..1a76702e6 100644
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
@@ -43,7 +43,7 @@ dependencies {
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
   testImplementation("org.apache.httpcomponents.client5:httpclient5:5.2.1")
-  testImplementation(platform("org.junit:junit-bom:5.10.2"))
+  testImplementation(platform("org.junit:junit-bom:5.10.3"))
   testImplementation("org.junit.jupiter:junit-jupiter")
   testImplementation('org.apache.struts:struts2-junit-plugin:7.0.0-M3') {
     exclude group: 'org.apache.struts', module: 'struts2-core'
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
index f462e99a9..257692445 100644
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
@@ -17,7 +17,7 @@
         <maven.compiler.target>1.8</maven.compiler.target>
         <struts.version>7.0.0-M3</struts.version>
         <jackson.version>2.17.2</jackson.version>
-        <junit.version>5.10.2</junit.version>
+        <junit.version>5.10.3</junit.version>
         <log4j.version>2.23.1</log4j.version>
     </properties>
 
diff --git a/pom.xml b/pom.xml
index 4b6e21671..4d8638354 100644
--- a/pom.xml
+++ b/pom.xml
@@ -80,7 +80,7 @@
         <dependencyCheck.version>9.2.0</dependencyCheck.version>
         <jackson.version>2.17.2</jackson.version>
         <slf4j.version>2.0.13</slf4j.version>
-        <junit.version>5.10.2</junit.version>
+        <junit.version>5.10.3</junit.version>
         <mockito.version>5.12.0</mockito.version>
         <hamcrest.version>1.3</hamcrest.version>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

From e120e54707f047d2df3cb4c171f1e5e21560bc2d Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 15 Jul 2024 04:13:14 +0000
Subject: [PATCH 228/430] chore(deps): bump
 org.apache.maven.plugins:maven-release-plugin

Bumps [org.apache.maven.plugins:maven-release-plugin](https://github.com/apache/maven-release) from 3.1.0 to 3.1.1.
- [Release notes](https://github.com/apache/maven-release/releases)
- [Commits](https://github.com/apache/maven-release/compare/maven-release-3.1.0...maven-release-3.1.1)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-release-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 4d8638354..84a5dccd1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -236,7 +236,7 @@
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-release-plugin</artifactId>
-                    <version>3.1.0</version>
+                    <version>3.1.1</version>
                     <configuration>
                         <releaseProfiles>serverless-java-container-release</releaseProfiles>
                         <preparationGoals>clean verify install</preparationGoals>

From e468531e2a41f12812395766523d5a4e2eface3a Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 15 Jul 2024 04:13:21 +0000
Subject: [PATCH 229/430] chore(deps): bump org.owasp:dependency-check-maven
 from 9.2.0 to 10.0.2

Bumps [org.owasp:dependency-check-maven](https://github.com/jeremylong/DependencyCheck) from 9.2.0 to 10.0.2.
- [Release notes](https://github.com/jeremylong/DependencyCheck/releases)
- [Changelog](https://github.com/jeremylong/DependencyCheck/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jeremylong/DependencyCheck/compare/v9.2.0...v10.0.2)

---
updated-dependencies:
- dependency-name: org.owasp:dependency-check-maven
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 4d8638354..e8ad287d3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -77,7 +77,7 @@
 
     <properties>
         <jacoco.minCoverage>0.7</jacoco.minCoverage>
-        <dependencyCheck.version>9.2.0</dependencyCheck.version>
+        <dependencyCheck.version>10.0.2</dependencyCheck.version>
         <jackson.version>2.17.2</jackson.version>
         <slf4j.version>2.0.13</slf4j.version>
         <junit.version>5.10.3</junit.version>

From ca960e7c4bf24bcc357f65f15067bec10c0c5fa3 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Mon, 15 Jul 2024 07:06:33 +0200
Subject: [PATCH 230/430] chore(deps):
 https://github.blog/changelog/2024-06-25-simplified-dependabot-yml-configuration-with-multi-directory-key-directories-and-wildcard-glob-support/

---
 .github/dependabot.yml | 15 +++------------
 1 file changed, 3 insertions(+), 12 deletions(-)

diff --git a/.github/dependabot.yml b/.github/dependabot.yml
index aaed7992c..6dfe9ec49 100644
--- a/.github/dependabot.yml
+++ b/.github/dependabot.yml
@@ -7,21 +7,12 @@ version: 2
 updates:
   - package-ecosystem: maven
     directories:
-      - "/"
-      - "/samples/spring/pet-store"
-      - "/samples/springboot3/pet-store"
-      - "/samples/springboot3/alt-pet-store"
-      - "/samples/springboot3/graphql-pet-store"
-      - "/samples/springboot3/pet-store-native"
-      - "/samples/jersey/pet-store"
+      - "**/*"
     schedule:
       interval: "weekly"
+    open-pull-requests-limit: 20
   - package-ecosystem: gradle
     directories:
-      - "/samples/spring/pet-store"
-      - "/samples/springboot3/pet-store"
-      - "/samples/springboot3/alt-pet-store"
-      - "/samples/springboot3/pet-store-native"
-      - "/samples/jersey/pet-store"
+      - "**/*"
     schedule:
       interval: "weekly"
\ No newline at end of file

From 3b6db4e5474981fc0948e81a7bcbc4603ef4cdb8 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 15 Jul 2024 05:07:28 +0000
Subject: [PATCH 231/430] chore(deps): bump
 org.apache.maven.plugins:maven-surefire-plugin

Bumps [org.apache.maven.plugins:maven-surefire-plugin](https://github.com/apache/maven-surefire) from 3.3.0 to 3.3.1.
- [Release notes](https://github.com/apache/maven-surefire/releases)
- [Commits](https://github.com/apache/maven-surefire/compare/surefire-3.3.0...surefire-3.3.1)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-surefire-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 8736f0da5..794e1680a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -206,7 +206,7 @@
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-surefire-plugin</artifactId>
-                    <version>3.3.0</version>
+                    <version>3.3.1</version>
                 </plugin>
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>

From 1f4a3702897993253734d97266b7739873df69f1 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 15 Jul 2024 05:09:03 +0000
Subject: [PATCH 232/430] chore(deps-dev): bump commons-codec:commons-codec

Bumps [commons-codec:commons-codec](https://github.com/apache/commons-codec) from 1.15 to 1.17.1.
- [Changelog](https://github.com/apache/commons-codec/blob/master/RELEASE-NOTES.txt)
- [Commits](https://github.com/apache/commons-codec/commits)

---
updated-dependencies:
- dependency-name: commons-codec:commons-codec
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 aws-serverless-java-container-struts/pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/aws-serverless-java-container-struts/pom.xml b/aws-serverless-java-container-struts/pom.xml
index 0ce204cad..f402003ab 100644
--- a/aws-serverless-java-container-struts/pom.xml
+++ b/aws-serverless-java-container-struts/pom.xml
@@ -68,7 +68,7 @@
         <dependency>
             <groupId>commons-codec</groupId>
             <artifactId>commons-codec</artifactId>
-            <version>1.15</version>
+            <version>1.17.1</version>
             <scope>test</scope>
         </dependency>
 

From dbb4b1a96c7a4b0872a2518748734060973654a5 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 15 Jul 2024 05:09:36 +0000
Subject: [PATCH 233/430] chore(deps): bump
 org.apache.maven.plugins:maven-resources-plugin

Bumps [org.apache.maven.plugins:maven-resources-plugin](https://github.com/apache/maven-resources-plugin) from 3.1.0 to 3.3.1.
- [Release notes](https://github.com/apache/maven-resources-plugin/releases)
- [Commits](https://github.com/apache/maven-resources-plugin/compare/maven-resources-plugin-3.1.0...maven-resources-plugin-3.3.1)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-resources-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 aws-serverless-struts-archetype/pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/aws-serverless-struts-archetype/pom.xml b/aws-serverless-struts-archetype/pom.xml
index 27c530046..9d6cda35c 100644
--- a/aws-serverless-struts-archetype/pom.xml
+++ b/aws-serverless-struts-archetype/pom.xml
@@ -57,7 +57,7 @@
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-resources-plugin</artifactId>
-                    <version>3.1.0</version>
+                    <version>3.3.1</version>
                     <configuration>
                         <escapeString>\</escapeString>
                     </configuration>

From 1612377be58457d6be8b63218acf884a211bc058 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 15 Jul 2024 05:10:37 +0000
Subject: [PATCH 234/430] chore(deps): bump
 com.amazonaws:aws-lambda-java-events

Bumps [com.amazonaws:aws-lambda-java-events](https://github.com/aws/aws-lambda-java-libs) from 3.11.6 to 3.12.0.
- [Commits](https://github.com/aws/aws-lambda-java-libs/commits)

---
updated-dependencies:
- dependency-name: com.amazonaws:aws-lambda-java-events
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 samples/springboot3/pet-store-native/pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/samples/springboot3/pet-store-native/pom.xml b/samples/springboot3/pet-store-native/pom.xml
index 6a2e5ee4c..2b26aa576 100644
--- a/samples/springboot3/pet-store-native/pom.xml
+++ b/samples/springboot3/pet-store-native/pom.xml
@@ -31,7 +31,7 @@
 		<dependency>
 			<groupId>com.amazonaws</groupId>
 			<artifactId>aws-lambda-java-events</artifactId>
-			<version>3.11.6</version>
+			<version>3.12.0</version>
 		</dependency>
 		<dependency>
 			<groupId>com.amazonaws</groupId>

From 1f17d06b80b5aaaf6b64a7943923c7134189f634 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Mon, 15 Jul 2024 07:25:58 +0200
Subject: [PATCH 235/430] chore(deps): updated some struts dependency (although
 currently not released)

---
 aws-serverless-java-container-struts/pom.xml     | 16 +++-------------
 .../resources/archetype-resources/build.gradle   | 12 ++++++------
 .../main/resources/archetype-resources/pom.xml   |  4 ++--
 samples/struts/pet-store/build.gradle            | 10 +++++-----
 samples/struts/pet-store/pom.xml                 |  4 ++--
 5 files changed, 18 insertions(+), 28 deletions(-)

diff --git a/aws-serverless-java-container-struts/pom.xml b/aws-serverless-java-container-struts/pom.xml
index 0ce204cad..1b93c2c9e 100644
--- a/aws-serverless-java-container-struts/pom.xml
+++ b/aws-serverless-java-container-struts/pom.xml
@@ -15,7 +15,7 @@
     </parent>
 
     <properties>
-        <struts.version>7.0.0-M3</struts.version>
+        <struts.version>7.0.0-M8</struts.version>
     </properties>
 
     <dependencies>
@@ -23,12 +23,12 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.0.0</version>
+            <version>2.1.0-SNAPSHOT</version>
         </dependency>
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.0.0</version>
+            <version>2.1.0-SNAPSHOT</version>
             <classifier>tests</classifier>
             <type>test-jar</type>
             <scope>test</scope>
@@ -100,16 +100,6 @@
         </dependency>
     </dependencies>
 
-    <dependencyManagement>
-        <dependencies>
-            <dependency>
-                <groupId>org.apache.commons</groupId>
-                <artifactId>commons-text</artifactId>
-                <version>1.11.0</version>
-            </dependency>
-        </dependencies>
-    </dependencyManagement>
-
     <build>
         <plugins>
             <plugin>
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
index 1a76702e6..26a1dd231 100644
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
@@ -18,19 +18,19 @@ dependencies {
     exclude group: 'org.apache.logging.log4j', module: 'log4j-api'
     exclude group: 'org.apache.logging.log4j', module: 'log4j-to-slf4j'
   }
-  implementation ('org.apache.struts:struts2-convention-plugin:7.0.0-M3') {
+  implementation ('org.apache.struts:struts2-convention-plugin:7.0.0-M8') {
     exclude group: 'org.apache.struts', module: 'struts2-core'
   }
-  implementation ('org.apache.struts:struts2-rest-plugin:7.0.0-M3') {
+  implementation ('org.apache.struts:struts2-rest-plugin:7.0.0-M8') {
     exclude group: 'org.apache.struts', module: 'struts2-core'
   }
-  implementation ('org.apache.struts:struts2-bean-validation-plugin:7.0.0-M3') {
+  implementation ('org.apache.struts:struts2-bean-validation-plugin:7.0.0-M8') {
     exclude group: 'org.apache.struts', module: 'struts2-core'
   }
-  implementation ('com.jgeppert.struts2:struts2-aws-lambda-support-plugin:1.4.2') {
+  implementation ('com.jgeppert.struts2:struts2-aws-lambda-support-plugin:1.4.3') {
     exclude group: 'org.apache.struts', module: 'struts2-core'
   }
-  implementation ('org.apache.struts:struts2-core:7.0.0-M3') {
+  implementation ('org.apache.struts:struts2-core:7.0.0-M8') {
     exclude group: 'org.apache.logging.log4j', module: 'log4j-api'
   }
   implementation ('org.hibernate.validator:hibernate-validator:6.1.7.Final')
@@ -45,7 +45,7 @@ dependencies {
   testImplementation("org.apache.httpcomponents.client5:httpclient5:5.2.1")
   testImplementation(platform("org.junit:junit-bom:5.10.3"))
   testImplementation("org.junit.jupiter:junit-jupiter")
-  testImplementation('org.apache.struts:struts2-junit-plugin:7.0.0-M3') {
+  testImplementation('org.apache.struts:struts2-junit-plugin:7.0.0-M8') {
     exclude group: 'org.apache.struts', module: 'struts2-core'
   }
 }
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
index 257692445..25b256eb9 100644
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
@@ -15,7 +15,7 @@
     <properties>
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
-        <struts.version>7.0.0-M3</struts.version>
+        <struts.version>7.0.0-M8</struts.version>
         <jackson.version>2.17.2</jackson.version>
         <junit.version>5.10.3</junit.version>
         <log4j.version>2.23.1</log4j.version>
@@ -71,7 +71,7 @@
         <dependency>
             <groupId>com.jgeppert.struts2</groupId>
             <artifactId>struts2-aws-lambda-support-plugin</artifactId>
-            <version>1.4.2</version>
+            <version>1.4.3</version>
         </dependency>
 
         <!-- bean validation based on hibernate validators-->
diff --git a/samples/struts/pet-store/build.gradle b/samples/struts/pet-store/build.gradle
index 3240cc4cd..5fdd43e54 100644
--- a/samples/struts/pet-store/build.gradle
+++ b/samples/struts/pet-store/build.gradle
@@ -14,11 +14,11 @@ configurations {
 dependencies {
   implementation (
           'com.amazonaws.serverless:aws-serverless-java-container-struts:[2.0-SNAPSHOT,)',
-          'org.apache.struts:struts2-convention-plugin:7.0.0-M3',
-          'org.apache.struts:struts2-rest-plugin:7.0.0-M3',
-          'org.apache.struts:struts2-bean-validation-plugin:7.0.0-M3',
-          'org.apache.struts:struts2-junit-plugin:7.0.0-M3',
-          'com.jgeppert.struts2:struts2-aws-lambda-support-plugin:1.4.2',
+          'org.apache.struts:struts2-convention-plugin:7.0.0-M8',
+          'org.apache.struts:struts2-rest-plugin:7.0.0-M8',
+          'org.apache.struts:struts2-bean-validation-plugin:7.0.0-M8',
+          'org.apache.struts:struts2-junit-plugin:7.0.0-M8',
+          'com.jgeppert.struts2:struts2-aws-lambda-support-plugin:1.4.3',
           'org.hibernate.validator:hibernate-validator:6.1.7.Final',
           'org.glassfish:jakarta.el:5.0.0-M1',
           'jakarta.el:jakarta.el-api:5.0.1',
diff --git a/samples/struts/pet-store/pom.xml b/samples/struts/pet-store/pom.xml
index 995f71e88..9c466a3a5 100644
--- a/samples/struts/pet-store/pom.xml
+++ b/samples/struts/pet-store/pom.xml
@@ -26,7 +26,7 @@
     <properties>
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
-        <struts.version>7.0.0-M3</struts.version>
+        <struts.version>7.0.0-M8</struts.version>
         <jackson.version>2.17.2</jackson.version>
         <junit.version>4.13.2</junit.version>
         <log4j.version>2.23.1</log4j.version>
@@ -68,7 +68,7 @@
         <dependency>
             <groupId>com.jgeppert.struts2</groupId>
             <artifactId>struts2-aws-lambda-support-plugin</artifactId>
-            <version>1.4.2</version>
+            <version>1.4.3</version>
         </dependency>
 
         <!-- bean validation based on hibernate validators-->

From 78b940281dc87ae83451860609b8aa5a03587b25 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Mon, 15 Jul 2024 07:31:16 +0200
Subject: [PATCH 236/430] chore(deps-dev): Bumps
 org.apache.httpcomponents.client5:httpclient5 from 5.2.1 to 5.3.1.

---
 .../src/main/resources/archetype-resources/build.gradle         | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 .../src/main/resources/archetype-resources/build.gradle         | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 .../src/main/resources/archetype-resources/build.gradle         | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 .../src/main/resources/archetype-resources/build.gradle         | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 8 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
index 0c8a117c2..9a10c3e99 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
@@ -22,7 +22,7 @@ dependencies {
   }
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
-  testImplementation("org.apache.httpcomponents.client5:httpclient5:5.2.1")
+  testImplementation("org.apache.httpcomponents.client5:httpclient5:5.3.1")
   testImplementation(platform("org.junit:junit-bom:5.10.3"))
   testImplementation("org.junit.jupiter:junit-jupiter")
 }
diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
index 1389f62f1..12bbde8f2 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
@@ -37,7 +37,7 @@
         <dependency>
             <groupId>org.apache.httpcomponents.client5</groupId>
             <artifactId>httpclient5</artifactId>
-            <version>5.2.1</version>
+            <version>5.3.1</version>
             <scope>test</scope>
         </dependency>
 
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
index 7599cad7a..df2dda90b 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
@@ -18,7 +18,7 @@ dependencies {
   )
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
-  testImplementation("org.apache.httpcomponents.client5:httpclient5:5.2.1")
+  testImplementation("org.apache.httpcomponents.client5:httpclient5:5.3.1")
   testImplementation(platform("org.junit:junit-bom:5.10.3"))
   testImplementation("org.junit.jupiter:junit-jupiter")
 }
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
index 88e424424..2837d9c84 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
@@ -38,7 +38,7 @@
         <dependency>
             <groupId>org.apache.httpcomponents.client5</groupId>
             <artifactId>httpclient5</artifactId>
-            <version>5.2.1</version>
+            <version>5.3.1</version>
             <scope>test</scope>
         </dependency>
 
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
index 2e6da08d2..aac160ec3 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
@@ -14,7 +14,7 @@ dependencies {
   )
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
-  testImplementation("org.apache.httpcomponents.client5:httpclient5:5.2.1")
+  testImplementation("org.apache.httpcomponents.client5:httpclient5:5.3.1")
   testImplementation(platform("org.junit:junit-bom:5.10.3"))
   testImplementation("org.junit.jupiter:junit-jupiter")
 }
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
index affb9e192..48ec5772f 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
@@ -41,7 +41,7 @@
         <dependency>
             <groupId>org.apache.httpcomponents.client5</groupId>
             <artifactId>httpclient5</artifactId>
-            <version>5.2.1</version>
+            <version>5.3.1</version>
             <scope>test</scope>
         </dependency>
 
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
index 26a1dd231..28a42f182 100644
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
@@ -42,7 +42,7 @@ dependencies {
   implementation ('com.amazonaws:aws-lambda-java-log4j2:1.6.0')
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
-  testImplementation("org.apache.httpcomponents.client5:httpclient5:5.2.1")
+  testImplementation("org.apache.httpcomponents.client5:httpclient5:5.3.1")
   testImplementation(platform("org.junit:junit-bom:5.10.3"))
   testImplementation("org.junit.jupiter:junit-jupiter")
   testImplementation('org.apache.struts:struts2-junit-plugin:7.0.0-M8') {
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
index 25b256eb9..1f8e981ff 100644
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
@@ -38,7 +38,7 @@
         <dependency>
             <groupId>org.apache.httpcomponents.client5</groupId>
             <artifactId>httpclient5</artifactId>
-            <version>5.2.1</version>
+            <version>5.3.1</version>
             <scope>test</scope>
         </dependency>
 

From 85e93476ba515491e8d979b731d0888013212ab1 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 22 Jul 2024 05:07:38 +0000
Subject: [PATCH 237/430] chore(deps): bump org.owasp:dependency-check-maven
 from 10.0.2 to 10.0.3

Bumps [org.owasp:dependency-check-maven](https://github.com/jeremylong/DependencyCheck) from 10.0.2 to 10.0.3.
- [Release notes](https://github.com/jeremylong/DependencyCheck/releases)
- [Changelog](https://github.com/jeremylong/DependencyCheck/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jeremylong/DependencyCheck/compare/v10.0.2...v10.0.3)

---
updated-dependencies:
- dependency-name: org.owasp:dependency-check-maven
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 794e1680a..ec5efeeb6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -77,7 +77,7 @@
 
     <properties>
         <jacoco.minCoverage>0.7</jacoco.minCoverage>
-        <dependencyCheck.version>10.0.2</dependencyCheck.version>
+        <dependencyCheck.version>10.0.3</dependencyCheck.version>
         <jackson.version>2.17.2</jackson.version>
         <slf4j.version>2.0.13</slf4j.version>
         <junit.version>5.10.3</junit.version>

From 60d84ac7b51584e50ebc1584ff93f34d813649d8 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 22 Jul 2024 05:07:42 +0000
Subject: [PATCH 238/430] chore(deps-dev): bump com.h2database:h2 from 2.2.224
 to 2.3.230

Bumps [com.h2database:h2](https://github.com/h2database/h2database) from 2.2.224 to 2.3.230.
- [Release notes](https://github.com/h2database/h2database/releases)
- [Commits](https://github.com/h2database/h2database/compare/version-2.2.224...version-2.3.230)

---
updated-dependencies:
- dependency-name: com.h2database:h2
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 aws-serverless-java-container-springboot3/pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml
index b64ebd6fe..ad3ac15a2 100644
--- a/aws-serverless-java-container-springboot3/pom.xml
+++ b/aws-serverless-java-container-springboot3/pom.xml
@@ -226,7 +226,7 @@
         <dependency>
             <groupId>com.h2database</groupId>
             <artifactId>h2</artifactId>
-            <version>2.2.224</version>
+            <version>2.3.230</version>
             <scope>test</scope>
         </dependency>
 

From 76d5b655c1056966e57b85d5e7a40573bae104c3 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 22 Jul 2024 05:07:44 +0000
Subject: [PATCH 239/430] chore(deps): bump commons-codec:commons-codec from
 1.17.0 to 1.17.1

Bumps [commons-codec:commons-codec](https://github.com/apache/commons-codec) from 1.17.0 to 1.17.1.
- [Changelog](https://github.com/apache/commons-codec/blob/master/RELEASE-NOTES.txt)
- [Commits](https://github.com/apache/commons-codec/compare/rel/commons-codec-1.17.0...rel/commons-codec-1.17.1)

---
updated-dependencies:
- dependency-name: commons-codec:commons-codec
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 aws-serverless-java-container-jersey/pom.xml | 2 +-
 aws-serverless-java-container-spring/pom.xml | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/aws-serverless-java-container-jersey/pom.xml b/aws-serverless-java-container-jersey/pom.xml
index 757a84e7a..ea428d88e 100644
--- a/aws-serverless-java-container-jersey/pom.xml
+++ b/aws-serverless-java-container-jersey/pom.xml
@@ -64,7 +64,7 @@
         <dependency>
             <groupId>commons-codec</groupId>
             <artifactId>commons-codec</artifactId>
-            <version>1.17.0</version>
+            <version>1.17.1</version>
             <scope>test</scope>
         </dependency>
 
diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml
index d82547e64..e94a90816 100644
--- a/aws-serverless-java-container-spring/pom.xml
+++ b/aws-serverless-java-container-spring/pom.xml
@@ -53,7 +53,7 @@
         <dependency>
             <groupId>commons-codec</groupId>
             <artifactId>commons-codec</artifactId>
-            <version>1.17.0</version>
+            <version>1.17.1</version>
             <scope>test</scope>
         </dependency>
 

From 11fbe3afa98453570a6cf43849a3dc8a0c876380 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 22 Jul 2024 05:07:46 +0000
Subject: [PATCH 240/430] chore(deps): bump
 org.apache.maven.plugins:maven-javadoc-plugin

Bumps [org.apache.maven.plugins:maven-javadoc-plugin](https://github.com/apache/maven-javadoc-plugin) from 3.7.0 to 3.8.0.
- [Release notes](https://github.com/apache/maven-javadoc-plugin/releases)
- [Commits](https://github.com/apache/maven-javadoc-plugin/compare/maven-javadoc-plugin-3.7.0...maven-javadoc-plugin-3.8.0)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-javadoc-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 794e1680a..fe6148677 100644
--- a/pom.xml
+++ b/pom.xml
@@ -201,7 +201,7 @@
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-javadoc-plugin</artifactId>
-                    <version>3.7.0</version>
+                    <version>3.8.0</version>
                 </plugin>
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>

From 2bddeae3501d9c11fa337cef2e178031699af978 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Mon, 29 Jul 2024 12:25:33 +0200
Subject: [PATCH 241/430] chore(deps): Update Spring dependencies (framework to
 6.1.11, boot to 3.3.2)

---
 aws-serverless-java-container-spring/pom.xml                  | 2 +-
 aws-serverless-java-container-springboot3/pom.xml             | 4 ++--
 .../src/main/resources/archetype-resources/build.gradle       | 4 ++--
 .../src/main/resources/archetype-resources/pom.xml            | 2 +-
 .../src/main/resources/archetype-resources/build.gradle       | 2 +-
 .../src/main/resources/archetype-resources/pom.xml            | 2 +-
 samples/spring/pet-store/build.gradle                         | 4 ++--
 samples/spring/pet-store/pom.xml                              | 2 +-
 samples/springboot3/alt-pet-store/build.gradle                | 2 +-
 samples/springboot3/alt-pet-store/pom.xml                     | 2 +-
 samples/springboot3/graphql-pet-store/pom.xml                 | 2 +-
 samples/springboot3/pet-store-native/pom.xml                  | 2 +-
 samples/springboot3/pet-store/build.gradle                    | 2 +-
 samples/springboot3/pet-store/pom.xml                         | 2 +-
 14 files changed, 17 insertions(+), 17 deletions(-)

diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml
index d82547e64..10e68ab88 100644
--- a/aws-serverless-java-container-spring/pom.xml
+++ b/aws-serverless-java-container-spring/pom.xml
@@ -16,7 +16,7 @@
     </parent>
 
     <properties>
-        <spring.version>6.1.10</spring.version>
+        <spring.version>6.1.11</spring.version>
         <spring-security.version>6.3.1</spring-security.version>
     </properties>
 
diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml
index b64ebd6fe..19e96815a 100644
--- a/aws-serverless-java-container-springboot3/pom.xml
+++ b/aws-serverless-java-container-springboot3/pom.xml
@@ -15,8 +15,8 @@
     <version>2.1.0-SNAPSHOT</version>
 
     <properties>
-        <spring.version>6.1.10</spring.version>
-        <springboot.version>3.3.1</springboot.version>
+        <spring.version>6.1.11</spring.version>
+        <springboot.version>3.3.2</springboot.version>
         <springsecurity.version>6.3.1</springsecurity.version>
     </properties>
 
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
index df2dda90b..627258e76 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
@@ -7,8 +7,8 @@ repositories {
 
 dependencies {
   implementation (
-          'org.springframework:spring-webmvc:6.1.10',
-          'org.springframework:spring-context:6.1.10',
+          'org.springframework:spring-webmvc:6.1.11',
+          'org.springframework:spring-context:6.1.11',
           'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)',
           'org.apache.logging.log4j:log4j-core:2.23.1',
           'org.apache.logging.log4j:log4j-api:2.23.1',
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
index 2837d9c84..fb7ea1d6a 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
@@ -16,7 +16,7 @@
     <properties>
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
-        <spring.version>6.1.10</spring.version>
+        <spring.version>6.1.11</spring.version>
         <junit.version>5.10.3</junit.version>
         <log4j.version>2.23.1</log4j.version>
     </properties>
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
index aac160ec3..b472edd18 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
@@ -9,7 +9,7 @@ repositories {
 
 dependencies {
   implementation (
-          'org.springframework.boot:spring-boot-starter-web:3.3.1',
+          'org.springframework.boot:spring-boot-starter-web:3.3.2',
           'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)',
   )
 
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
index 48ec5772f..dbf6328bc 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
@@ -16,7 +16,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.3.1</version>
+        <version>3.3.2</version>
     </parent>
 
     <properties>
diff --git a/samples/spring/pet-store/build.gradle b/samples/spring/pet-store/build.gradle
index 931e516ed..7c61f9aee 100644
--- a/samples/spring/pet-store/build.gradle
+++ b/samples/spring/pet-store/build.gradle
@@ -7,8 +7,8 @@ repositories {
 
 dependencies {
   implementation (
-          'org.springframework:spring-webmvc:6.1.10',
-          'org.springframework:spring-context:6.1.10',
+          'org.springframework:spring-webmvc:6.1.11',
+          'org.springframework:spring-context:6.1.11',
           'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)',
           'org.apache.logging.log4j:log4j-core:2.23.1',
           'org.apache.logging.log4j:log4j-api:2.23.1',
diff --git a/samples/spring/pet-store/pom.xml b/samples/spring/pet-store/pom.xml
index fcc610a6e..5521b4c07 100644
--- a/samples/spring/pet-store/pom.xml
+++ b/samples/spring/pet-store/pom.xml
@@ -24,7 +24,7 @@
     </licenses>
 
     <properties>
-        <spring.version>6.1.10</spring.version>
+        <spring.version>6.1.11</spring.version>
         <log4j.version>2.23.1</log4j.version>
         <maven.compiler.source>17</maven.compiler.source>
         <maven.compiler.target>17</maven.compiler.target>
diff --git a/samples/springboot3/alt-pet-store/build.gradle b/samples/springboot3/alt-pet-store/build.gradle
index 0982e1302..60efe6a78 100644
--- a/samples/springboot3/alt-pet-store/build.gradle
+++ b/samples/springboot3/alt-pet-store/build.gradle
@@ -9,7 +9,7 @@ repositories {
 
 dependencies {
   implementation (
-          implementation('org.springframework.boot:spring-boot-starter-web:3.3.1') {
+          implementation('org.springframework.boot:spring-boot-starter-web:3.3.2') {
             exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat'
           },
           'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)',
diff --git a/samples/springboot3/alt-pet-store/pom.xml b/samples/springboot3/alt-pet-store/pom.xml
index 944aac50d..f4313cf72 100644
--- a/samples/springboot3/alt-pet-store/pom.xml
+++ b/samples/springboot3/alt-pet-store/pom.xml
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.3.1</version>
+        <version>3.3.2</version>
     </parent>
 
     <licenses>
diff --git a/samples/springboot3/graphql-pet-store/pom.xml b/samples/springboot3/graphql-pet-store/pom.xml
index 45f235878..57868b535 100644
--- a/samples/springboot3/graphql-pet-store/pom.xml
+++ b/samples/springboot3/graphql-pet-store/pom.xml
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.3.1</version>
+        <version>3.3.2</version>
     </parent>
 
     <licenses>
diff --git a/samples/springboot3/pet-store-native/pom.xml b/samples/springboot3/pet-store-native/pom.xml
index 2b26aa576..b939c1b94 100644
--- a/samples/springboot3/pet-store-native/pom.xml
+++ b/samples/springboot3/pet-store-native/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.springframework.boot</groupId>
 		<artifactId>spring-boot-starter-parent</artifactId>
-		<version>3.3.1</version>
+		<version>3.3.2</version>
 		<relativePath /> <!-- lookup parent from repository -->
 	</parent>
 	<groupId>com.amazonaws.serverless.sample</groupId>
diff --git a/samples/springboot3/pet-store/build.gradle b/samples/springboot3/pet-store/build.gradle
index 0982e1302..60efe6a78 100644
--- a/samples/springboot3/pet-store/build.gradle
+++ b/samples/springboot3/pet-store/build.gradle
@@ -9,7 +9,7 @@ repositories {
 
 dependencies {
   implementation (
-          implementation('org.springframework.boot:spring-boot-starter-web:3.3.1') {
+          implementation('org.springframework.boot:spring-boot-starter-web:3.3.2') {
             exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat'
           },
           'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)',
diff --git a/samples/springboot3/pet-store/pom.xml b/samples/springboot3/pet-store/pom.xml
index 22a974479..10546c8ec 100644
--- a/samples/springboot3/pet-store/pom.xml
+++ b/samples/springboot3/pet-store/pom.xml
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.3.1</version>
+        <version>3.3.2</version>
     </parent>
 
     <licenses>

From 3800547e9d34a8b4e88cd46358c3bdef981aba1b Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Thu, 1 Aug 2024 10:37:50 +0000
Subject: [PATCH 242/430] chore(deps): bump
 com.amazonaws:aws-lambda-java-events

Bumps [com.amazonaws:aws-lambda-java-events](https://github.com/aws/aws-lambda-java-libs) from 3.12.0 to 3.13.0.
- [Commits](https://github.com/aws/aws-lambda-java-libs/commits)

---
updated-dependencies:
- dependency-name: com.amazonaws:aws-lambda-java-events
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 samples/springboot3/pet-store-native/pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/samples/springboot3/pet-store-native/pom.xml b/samples/springboot3/pet-store-native/pom.xml
index b939c1b94..223755107 100644
--- a/samples/springboot3/pet-store-native/pom.xml
+++ b/samples/springboot3/pet-store-native/pom.xml
@@ -31,7 +31,7 @@
 		<dependency>
 			<groupId>com.amazonaws</groupId>
 			<artifactId>aws-lambda-java-events</artifactId>
-			<version>3.12.0</version>
+			<version>3.13.0</version>
 		</dependency>
 		<dependency>
 			<groupId>com.amazonaws</groupId>

From db0f4bc4cb3ea6f9b42ae76682f440cdeff0c9fd Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Mon, 5 Aug 2024 07:27:55 +0200
Subject: [PATCH 243/430] chore: add groups to dependabot configuration

---
 .github/dependabot.yml | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/.github/dependabot.yml b/.github/dependabot.yml
index 6dfe9ec49..0c40bd978 100644
--- a/.github/dependabot.yml
+++ b/.github/dependabot.yml
@@ -8,11 +8,25 @@ updates:
   - package-ecosystem: maven
     directories:
       - "**/*"
+    groups:
+      jersey:
+        patterns:
+          - "org.glassfish.jersey:*"
+      spring:
+        patterns:
+          - "org.springframework:*"
     schedule:
       interval: "weekly"
     open-pull-requests-limit: 20
   - package-ecosystem: gradle
     directories:
       - "**/*"
+    groups:
+      jersey:
+        patterns:
+          - "org.glassfish.jersey:*"
+      spring:
+        patterns:
+          - "org.springframework:*"
     schedule:
       interval: "weekly"
\ No newline at end of file

From 42d998b39297f45b9af4af9c15c90956e5ee2cc4 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Mon, 5 Aug 2024 08:59:43 +0200
Subject: [PATCH 244/430] chore(deps): Update Jersey dependency to 3.1.8

---
 aws-serverless-java-container-jersey/pom.xml                  | 2 +-
 .../src/main/resources/archetype-resources/build.gradle       | 4 ++--
 .../src/main/resources/archetype-resources/pom.xml            | 2 +-
 samples/jersey/pet-store/build.gradle                         | 4 ++--
 samples/jersey/pet-store/pom.xml                              | 2 +-
 5 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/aws-serverless-java-container-jersey/pom.xml b/aws-serverless-java-container-jersey/pom.xml
index ea428d88e..bf3958182 100644
--- a/aws-serverless-java-container-jersey/pom.xml
+++ b/aws-serverless-java-container-jersey/pom.xml
@@ -16,7 +16,7 @@
     </parent>
 
     <properties>
-        <jersey.version>3.1.7</jersey.version>
+        <jersey.version>3.1.8</jersey.version>
     </properties>
 
     <dependencies>
diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
index 9a10c3e99..8df319599 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
@@ -11,13 +11,13 @@ dependencies {
           'com.fasterxml.jackson.core:jackson-databind:2.17.2',
   )
 
-  implementation("org.glassfish.jersey.media:jersey-media-json-jackson:3.1.7") {
+  implementation("org.glassfish.jersey.media:jersey-media-json-jackson:3.1.8") {
     exclude group: 'com.fasterxml.jackson.core', module: "jackson-annotations"
     exclude group: 'com.fasterxml.jackson.core', module: "jackson-databind"
     exclude group: 'com.fasterxml.jackson.core', module: "jackson-core"
   }
 
-  implementation("org.glassfish.jersey.inject:jersey-hk2:3.1.7") {
+  implementation("org.glassfish.jersey.inject:jersey-hk2:3.1.8") {
     exclude group: 'javax.inject', module: "javax.inject"
   }
 
diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
index 12bbde8f2..947b827d2 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
@@ -15,7 +15,7 @@
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
 
-        <jersey.version>3.1.7</jersey.version>
+        <jersey.version>3.1.8</jersey.version>
         <jackson.version>2.17.2</jackson.version>
         <junit.version>5.10.3</junit.version>
     </properties>
diff --git a/samples/jersey/pet-store/build.gradle b/samples/jersey/pet-store/build.gradle
index 21734669c..db641d14b 100644
--- a/samples/jersey/pet-store/build.gradle
+++ b/samples/jersey/pet-store/build.gradle
@@ -11,13 +11,13 @@ dependencies {
           'com.fasterxml.jackson.core:jackson-databind:2.17.2',
   )
 
-  implementation("org.glassfish.jersey.media:jersey-media-json-jackson:3.1.7") {
+  implementation("org.glassfish.jersey.media:jersey-media-json-jackson:3.1.8") {
     exclude group: 'com.fasterxml.jackson.core', module: "jackson-annotations"
     exclude group: 'com.fasterxml.jackson.core', module: "jackson-databind"
     exclude group: 'com.fasterxml.jackson.core', module: "jackson-core"
   }
 
-  implementation("org.glassfish.jersey.inject:jersey-hk2:3.1.7") {
+  implementation("org.glassfish.jersey.inject:jersey-hk2:3.1.8") {
     exclude group: 'javax.inject', module: "javax.inject"
   }
 }
diff --git a/samples/jersey/pet-store/pom.xml b/samples/jersey/pet-store/pom.xml
index 34b953aa0..5736c49d7 100644
--- a/samples/jersey/pet-store/pom.xml
+++ b/samples/jersey/pet-store/pom.xml
@@ -26,7 +26,7 @@
     <properties>
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
-        <jersey.version>3.1.7</jersey.version>
+        <jersey.version>3.1.8</jersey.version>
         <jackson.version>2.17.2</jackson.version>
     </properties>
 

From 72bd0d2c7d0b663783a826ee27035195953fe930 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Mon, 19 Aug 2024 07:33:47 +0200
Subject: [PATCH 245/430] chore(deps): add more groups to dependabot.yml

---
 .github/dependabot.yml | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/.github/dependabot.yml b/.github/dependabot.yml
index 0c40bd978..0cbe65d79 100644
--- a/.github/dependabot.yml
+++ b/.github/dependabot.yml
@@ -11,10 +11,16 @@ updates:
     groups:
       jersey:
         patterns:
-          - "org.glassfish.jersey:*"
+          - "org.glassfish.jersey.*:*"
       spring:
         patterns:
           - "org.springframework:*"
+      slf4j:
+        patterns:
+          - "org.slf4j:*"
+      junit:
+        patterns:
+          - "org.junit:*"
     schedule:
       interval: "weekly"
     open-pull-requests-limit: 20
@@ -28,5 +34,8 @@ updates:
       spring:
         patterns:
           - "org.springframework:*"
+      slf4j:
+        patterns:
+          - "org.slf4j:*"
     schedule:
       interval: "weekly"
\ No newline at end of file

From 8d6a29d19f7d479b1c92ab37fa67765a4510950e Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Mon, 19 Aug 2024 09:22:21 +0200
Subject: [PATCH 246/430] chore(deps): update SLF4J version

---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 417da6926..c810299f0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -79,7 +79,7 @@
         <jacoco.minCoverage>0.7</jacoco.minCoverage>
         <dependencyCheck.version>10.0.3</dependencyCheck.version>
         <jackson.version>2.17.2</jackson.version>
-        <slf4j.version>2.0.13</slf4j.version>
+        <slf4j.version>2.0.16</slf4j.version>
         <junit.version>5.10.3</junit.version>
         <mockito.version>5.12.0</mockito.version>
         <hamcrest.version>1.3</hamcrest.version>

From 6a9902a01b621c5a2b9e5f18c2e9a8c8a23f58b3 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Mon, 19 Aug 2024 09:26:10 +0200
Subject: [PATCH 247/430] chore(deps): update JUnit version to 5.11.0

---
 .../src/main/resources/archetype-resources/build.gradle         | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 .../src/main/resources/archetype-resources/build.gradle         | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 .../src/main/resources/archetype-resources/build.gradle         | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 .../src/main/resources/archetype-resources/build.gradle         | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 pom.xml                                                         | 2 +-
 9 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
index 8df319599..bed896193 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
@@ -23,7 +23,7 @@ dependencies {
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
   testImplementation("org.apache.httpcomponents.client5:httpclient5:5.3.1")
-  testImplementation(platform("org.junit:junit-bom:5.10.3"))
+  testImplementation(platform("org.junit:junit-bom:5.11.0"))
   testImplementation("org.junit.jupiter:junit-jupiter")
 }
 
diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
index 947b827d2..f2367ba21 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
@@ -17,7 +17,7 @@
 
         <jersey.version>3.1.8</jersey.version>
         <jackson.version>2.17.2</jackson.version>
-        <junit.version>5.10.3</junit.version>
+        <junit.version>5.11.0</junit.version>
     </properties>
 
     <dependencies>
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
index 627258e76..0d5483919 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
@@ -19,7 +19,7 @@ dependencies {
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
   testImplementation("org.apache.httpcomponents.client5:httpclient5:5.3.1")
-  testImplementation(platform("org.junit:junit-bom:5.10.3"))
+  testImplementation(platform("org.junit:junit-bom:5.11.0"))
   testImplementation("org.junit.jupiter:junit-jupiter")
 }
 
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
index fb7ea1d6a..3422f4f24 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
@@ -17,7 +17,7 @@
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
         <spring.version>6.1.11</spring.version>
-        <junit.version>5.10.3</junit.version>
+        <junit.version>5.11.0</junit.version>
         <log4j.version>2.23.1</log4j.version>
     </properties>
 
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
index b472edd18..a22582d1e 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
@@ -15,7 +15,7 @@ dependencies {
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
   testImplementation("org.apache.httpcomponents.client5:httpclient5:5.3.1")
-  testImplementation(platform("org.junit:junit-bom:5.10.3"))
+  testImplementation(platform("org.junit:junit-bom:5.11.0"))
   testImplementation("org.junit.jupiter:junit-jupiter")
 }
 
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
index dbf6328bc..c13ba13d7 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
@@ -21,7 +21,7 @@
 
     <properties>
         <java.version>17</java.version>
-        <junit.version>5.10.3</junit.version>
+        <junit.version>5.11.0</junit.version>
     </properties>
 
     <dependencies>
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
index 28a42f182..8d96159a7 100644
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
@@ -43,7 +43,7 @@ dependencies {
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
   testImplementation("org.apache.httpcomponents.client5:httpclient5:5.3.1")
-  testImplementation(platform("org.junit:junit-bom:5.10.3"))
+  testImplementation(platform("org.junit:junit-bom:5.11.0"))
   testImplementation("org.junit.jupiter:junit-jupiter")
   testImplementation('org.apache.struts:struts2-junit-plugin:7.0.0-M8') {
     exclude group: 'org.apache.struts', module: 'struts2-core'
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
index 1f8e981ff..5803bd2e6 100644
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
@@ -17,7 +17,7 @@
         <maven.compiler.target>1.8</maven.compiler.target>
         <struts.version>7.0.0-M8</struts.version>
         <jackson.version>2.17.2</jackson.version>
-        <junit.version>5.10.3</junit.version>
+        <junit.version>5.11.0</junit.version>
         <log4j.version>2.23.1</log4j.version>
     </properties>
 
diff --git a/pom.xml b/pom.xml
index c810299f0..a6ce83e94 100644
--- a/pom.xml
+++ b/pom.xml
@@ -80,7 +80,7 @@
         <dependencyCheck.version>10.0.3</dependencyCheck.version>
         <jackson.version>2.17.2</jackson.version>
         <slf4j.version>2.0.16</slf4j.version>
-        <junit.version>5.10.3</junit.version>
+        <junit.version>5.11.0</junit.version>
         <mockito.version>5.12.0</mockito.version>
         <hamcrest.version>1.3</hamcrest.version>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

From 67b85433f57d7f3b048436ffea8b0ccf1c3e4b76 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Tue, 20 Aug 2024 09:24:48 +0200
Subject: [PATCH 248/430] chore(deps): Update
 spring-cloud-function-serverless-web to 4.1.3

---
 aws-serverless-java-container-springboot3/pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml
index 7c7972c77..295dd4afd 100644
--- a/aws-serverless-java-container-springboot3/pom.xml
+++ b/aws-serverless-java-container-springboot3/pom.xml
@@ -25,7 +25,7 @@
         <dependency>
             <groupId>org.springframework.cloud</groupId>
             <artifactId>spring-cloud-function-serverless-web</artifactId>
-            <version>4.1.2</version>
+            <version>4.1.3</version>
         </dependency>
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>

From 5b29e9621f712fdcafe9e462862f6882e7d67f38 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Fri, 23 Aug 2024 07:21:37 +0000
Subject: [PATCH 249/430] chore(deps): bump
 org.apache.maven.plugins:maven-deploy-plugin

Bumps [org.apache.maven.plugins:maven-deploy-plugin](https://github.com/apache/maven-deploy-plugin) from 3.1.2 to 3.1.3.
- [Release notes](https://github.com/apache/maven-deploy-plugin/releases)
- [Commits](https://github.com/apache/maven-deploy-plugin/compare/maven-deploy-plugin-3.1.2...maven-deploy-plugin-3.1.3)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-deploy-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index a6ce83e94..9aac9de65 100644
--- a/pom.xml
+++ b/pom.xml
@@ -226,7 +226,7 @@
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-deploy-plugin</artifactId>
-                    <version>3.1.2</version>
+                    <version>3.1.3</version>
                 </plugin>
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>

From cfc5f93ece4163f6e95fc8530274fcf5728b636d Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Fri, 23 Aug 2024 07:21:53 +0000
Subject: [PATCH 250/430] chore(deps-dev): bump com.h2database:h2 from 2.3.230
 to 2.3.232

Bumps [com.h2database:h2](https://github.com/h2database/h2database) from 2.3.230 to 2.3.232.
- [Release notes](https://github.com/h2database/h2database/releases)
- [Commits](https://github.com/h2database/h2database/compare/version-2.3.230...version-2.3.232)

---
updated-dependencies:
- dependency-name: com.h2database:h2
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 aws-serverless-java-container-springboot3/pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml
index 295dd4afd..23d590d19 100644
--- a/aws-serverless-java-container-springboot3/pom.xml
+++ b/aws-serverless-java-container-springboot3/pom.xml
@@ -226,7 +226,7 @@
         <dependency>
             <groupId>com.h2database</groupId>
             <artifactId>h2</artifactId>
-            <version>2.3.230</version>
+            <version>2.3.232</version>
             <scope>test</scope>
         </dependency>
 

From 035e7ccaadbc7c9f727885d76335539496fd80af Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Fri, 23 Aug 2024 07:21:57 +0000
Subject: [PATCH 251/430] chore(deps): bump
 org.apache.maven.plugins:maven-surefire-plugin

Bumps [org.apache.maven.plugins:maven-surefire-plugin](https://github.com/apache/maven-surefire) from 3.3.1 to 3.4.0.
- [Release notes](https://github.com/apache/maven-surefire/releases)
- [Commits](https://github.com/apache/maven-surefire/compare/surefire-3.3.1...surefire-3.4.0)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-surefire-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index a6ce83e94..3d65a98fe 100644
--- a/pom.xml
+++ b/pom.xml
@@ -206,7 +206,7 @@
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-surefire-plugin</artifactId>
-                    <version>3.3.1</version>
+                    <version>3.4.0</version>
                 </plugin>
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>

From 1ef0ec2b266bf60d7e06dc26f6f46be1d8e90066 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Fri, 23 Aug 2024 07:22:50 +0000
Subject: [PATCH 252/430] chore(deps-dev): bump com.h2database:h2

Bumps [com.h2database:h2](https://github.com/h2database/h2database) from 2.3.230 to 2.3.232.
- [Release notes](https://github.com/h2database/h2database/releases)
- [Commits](https://github.com/h2database/h2database/compare/version-2.3.230...version-2.3.232)

---
updated-dependencies:
- dependency-name: com.h2database:h2
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 aws-serverless-java-container-springboot3/pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml
index 295dd4afd..23d590d19 100644
--- a/aws-serverless-java-container-springboot3/pom.xml
+++ b/aws-serverless-java-container-springboot3/pom.xml
@@ -226,7 +226,7 @@
         <dependency>
             <groupId>com.h2database</groupId>
             <artifactId>h2</artifactId>
-            <version>2.3.230</version>
+            <version>2.3.232</version>
             <scope>test</scope>
         </dependency>
 

From 0fc74307e15464afd42c6e3af8dddb600ac9bdf0 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Fri, 23 Aug 2024 09:35:44 +0200
Subject: [PATCH 253/430] chore(deps): Update Spring dependencies (framework to
 6.1.12, security to 6.3.3, boot to 3.3.3)

---
 aws-serverless-java-container-core/pom.xml                  | 2 +-
 aws-serverless-java-container-spring/pom.xml                | 4 ++--
 aws-serverless-java-container-springboot3/pom.xml           | 6 +++---
 .../src/main/resources/archetype-resources/build.gradle     | 4 ++--
 .../src/main/resources/archetype-resources/pom.xml          | 2 +-
 .../src/main/resources/archetype-resources/build.gradle     | 2 +-
 .../src/main/resources/archetype-resources/pom.xml          | 2 +-
 samples/spring/pet-store/build.gradle                       | 4 ++--
 samples/spring/pet-store/pom.xml                            | 2 +-
 samples/springboot3/alt-pet-store/build.gradle              | 2 +-
 samples/springboot3/alt-pet-store/pom.xml                   | 2 +-
 samples/springboot3/graphql-pet-store/pom.xml               | 2 +-
 samples/springboot3/pet-store-native/pom.xml                | 2 +-
 samples/springboot3/pet-store/build.gradle                  | 2 +-
 samples/springboot3/pet-store/pom.xml                       | 2 +-
 15 files changed, 20 insertions(+), 20 deletions(-)

diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml
index 10e06b180..f3b93880a 100644
--- a/aws-serverless-java-container-core/pom.xml
+++ b/aws-serverless-java-container-core/pom.xml
@@ -60,7 +60,7 @@
         <dependency>
             <groupId>org.springframework.security</groupId>
             <artifactId>spring-security-web</artifactId>
-            <version>6.3.1</version>
+            <version>6.3.3</version>
             <scope>test</scope>
         </dependency>
     </dependencies>
diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml
index adf8d0f2b..0130a93cd 100644
--- a/aws-serverless-java-container-spring/pom.xml
+++ b/aws-serverless-java-container-spring/pom.xml
@@ -16,8 +16,8 @@
     </parent>
 
     <properties>
-        <spring.version>6.1.11</spring.version>
-        <spring-security.version>6.3.1</spring-security.version>
+        <spring.version>6.1.12</spring.version>
+        <spring-security.version>6.3.3</spring-security.version>
     </properties>
 
     <dependencies>
diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml
index 295dd4afd..b4dbf1cd9 100644
--- a/aws-serverless-java-container-springboot3/pom.xml
+++ b/aws-serverless-java-container-springboot3/pom.xml
@@ -15,9 +15,9 @@
     <version>2.1.0-SNAPSHOT</version>
 
     <properties>
-        <spring.version>6.1.11</spring.version>
-        <springboot.version>3.3.2</springboot.version>
-        <springsecurity.version>6.3.1</springsecurity.version>
+        <spring.version>6.1.12</spring.version>
+        <springboot.version>3.3.3</springboot.version>
+        <springsecurity.version>6.3.3</springsecurity.version>
     </properties>
 
     <dependencies>
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
index 0d5483919..daaf61428 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
@@ -7,8 +7,8 @@ repositories {
 
 dependencies {
   implementation (
-          'org.springframework:spring-webmvc:6.1.11',
-          'org.springframework:spring-context:6.1.11',
+          'org.springframework:spring-webmvc:6.1.12',
+          'org.springframework:spring-context:6.1.12',
           'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)',
           'org.apache.logging.log4j:log4j-core:2.23.1',
           'org.apache.logging.log4j:log4j-api:2.23.1',
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
index 3422f4f24..759b3ad27 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
@@ -16,7 +16,7 @@
     <properties>
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
-        <spring.version>6.1.11</spring.version>
+        <spring.version>6.1.12</spring.version>
         <junit.version>5.11.0</junit.version>
         <log4j.version>2.23.1</log4j.version>
     </properties>
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
index a22582d1e..c14e9e847 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
@@ -9,7 +9,7 @@ repositories {
 
 dependencies {
   implementation (
-          'org.springframework.boot:spring-boot-starter-web:3.3.2',
+          'org.springframework.boot:spring-boot-starter-web:3.3.3',
           'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)',
   )
 
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
index c13ba13d7..5a869829f 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
@@ -16,7 +16,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.3.2</version>
+        <version>3.3.3</version>
     </parent>
 
     <properties>
diff --git a/samples/spring/pet-store/build.gradle b/samples/spring/pet-store/build.gradle
index 7c61f9aee..796b98c29 100644
--- a/samples/spring/pet-store/build.gradle
+++ b/samples/spring/pet-store/build.gradle
@@ -7,8 +7,8 @@ repositories {
 
 dependencies {
   implementation (
-          'org.springframework:spring-webmvc:6.1.11',
-          'org.springframework:spring-context:6.1.11',
+          'org.springframework:spring-webmvc:6.1.12',
+          'org.springframework:spring-context:6.1.12',
           'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)',
           'org.apache.logging.log4j:log4j-core:2.23.1',
           'org.apache.logging.log4j:log4j-api:2.23.1',
diff --git a/samples/spring/pet-store/pom.xml b/samples/spring/pet-store/pom.xml
index 5521b4c07..44e9aaf73 100644
--- a/samples/spring/pet-store/pom.xml
+++ b/samples/spring/pet-store/pom.xml
@@ -24,7 +24,7 @@
     </licenses>
 
     <properties>
-        <spring.version>6.1.11</spring.version>
+        <spring.version>6.1.12</spring.version>
         <log4j.version>2.23.1</log4j.version>
         <maven.compiler.source>17</maven.compiler.source>
         <maven.compiler.target>17</maven.compiler.target>
diff --git a/samples/springboot3/alt-pet-store/build.gradle b/samples/springboot3/alt-pet-store/build.gradle
index 60efe6a78..444656eda 100644
--- a/samples/springboot3/alt-pet-store/build.gradle
+++ b/samples/springboot3/alt-pet-store/build.gradle
@@ -9,7 +9,7 @@ repositories {
 
 dependencies {
   implementation (
-          implementation('org.springframework.boot:spring-boot-starter-web:3.3.2') {
+          implementation('org.springframework.boot:spring-boot-starter-web:3.3.3') {
             exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat'
           },
           'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)',
diff --git a/samples/springboot3/alt-pet-store/pom.xml b/samples/springboot3/alt-pet-store/pom.xml
index f4313cf72..6c27f7c3d 100644
--- a/samples/springboot3/alt-pet-store/pom.xml
+++ b/samples/springboot3/alt-pet-store/pom.xml
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.3.2</version>
+        <version>3.3.3</version>
     </parent>
 
     <licenses>
diff --git a/samples/springboot3/graphql-pet-store/pom.xml b/samples/springboot3/graphql-pet-store/pom.xml
index 57868b535..be77bc8d7 100644
--- a/samples/springboot3/graphql-pet-store/pom.xml
+++ b/samples/springboot3/graphql-pet-store/pom.xml
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.3.2</version>
+        <version>3.3.3</version>
     </parent>
 
     <licenses>
diff --git a/samples/springboot3/pet-store-native/pom.xml b/samples/springboot3/pet-store-native/pom.xml
index 223755107..d97fe615e 100644
--- a/samples/springboot3/pet-store-native/pom.xml
+++ b/samples/springboot3/pet-store-native/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.springframework.boot</groupId>
 		<artifactId>spring-boot-starter-parent</artifactId>
-		<version>3.3.2</version>
+		<version>3.3.3</version>
 		<relativePath /> <!-- lookup parent from repository -->
 	</parent>
 	<groupId>com.amazonaws.serverless.sample</groupId>
diff --git a/samples/springboot3/pet-store/build.gradle b/samples/springboot3/pet-store/build.gradle
index 60efe6a78..444656eda 100644
--- a/samples/springboot3/pet-store/build.gradle
+++ b/samples/springboot3/pet-store/build.gradle
@@ -9,7 +9,7 @@ repositories {
 
 dependencies {
   implementation (
-          implementation('org.springframework.boot:spring-boot-starter-web:3.3.2') {
+          implementation('org.springframework.boot:spring-boot-starter-web:3.3.3') {
             exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat'
           },
           'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)',
diff --git a/samples/springboot3/pet-store/pom.xml b/samples/springboot3/pet-store/pom.xml
index 10546c8ec..e2832acfa 100644
--- a/samples/springboot3/pet-store/pom.xml
+++ b/samples/springboot3/pet-store/pom.xml
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.3.2</version>
+        <version>3.3.3</version>
     </parent>
 
     <licenses>

From 1faca719891f083170109875ef6f0a630a817e60 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Fri, 23 Aug 2024 09:47:39 +0200
Subject: [PATCH 254/430] chore: add groups to dependabot configuration

---
 .github/dependabot.yml | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/.github/dependabot.yml b/.github/dependabot.yml
index 0cbe65d79..cc36223dc 100644
--- a/.github/dependabot.yml
+++ b/.github/dependabot.yml
@@ -21,6 +21,9 @@ updates:
       junit:
         patterns:
           - "org.junit:*"
+      maven-install-plugin:
+        patterns:
+          - "org.apache.maven.plugins:maven-install-plugin"
     schedule:
       interval: "weekly"
     open-pull-requests-limit: 20

From 69818ed0707454400cb71c0b7e8cb46b67b1dd4a Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Fri, 23 Aug 2024 07:48:59 +0000
Subject: [PATCH 255/430] chore(deps): bump the maven-install-plugin group
 across 15 directories with 1 update

Bumps the maven-install-plugin group with 1 update in the / directory: [org.apache.maven.plugins:maven-install-plugin](https://github.com/apache/maven-install-plugin).
Bumps the maven-install-plugin group with 1 update in the /aws-serverless-java-container-core directory: [org.apache.maven.plugins:maven-install-plugin](https://github.com/apache/maven-install-plugin).
Bumps the maven-install-plugin group with 1 update in the /aws-serverless-java-container-jersey directory: [org.apache.maven.plugins:maven-install-plugin](https://github.com/apache/maven-install-plugin).
Bumps the maven-install-plugin group with 1 update in the /aws-serverless-java-container-spring directory: [org.apache.maven.plugins:maven-install-plugin](https://github.com/apache/maven-install-plugin).
Bumps the maven-install-plugin group with 1 update in the /aws-serverless-java-container-springboot3 directory: [org.apache.maven.plugins:maven-install-plugin](https://github.com/apache/maven-install-plugin).
Bumps the maven-install-plugin group with 1 update in the /aws-serverless-java-container-struts directory: [org.apache.maven.plugins:maven-install-plugin](https://github.com/apache/maven-install-plugin).
Bumps the maven-install-plugin group with 1 update in the /aws-serverless-jersey-archetype directory: [org.apache.maven.plugins:maven-install-plugin](https://github.com/apache/maven-install-plugin).
Bumps the maven-install-plugin group with 1 update in the /aws-serverless-spring-archetype directory: [org.apache.maven.plugins:maven-install-plugin](https://github.com/apache/maven-install-plugin).
Bumps the maven-install-plugin group with 1 update in the /aws-serverless-springboot3-archetype directory: [org.apache.maven.plugins:maven-install-plugin](https://github.com/apache/maven-install-plugin).
Bumps the maven-install-plugin group with 1 update in the /aws-serverless-struts-archetype directory: [org.apache.maven.plugins:maven-install-plugin](https://github.com/apache/maven-install-plugin).
Bumps the maven-install-plugin group with 1 update in the /samples/jersey/pet-store directory: [org.apache.maven.plugins:maven-install-plugin](https://github.com/apache/maven-install-plugin).
Bumps the maven-install-plugin group with 1 update in the /samples/spring/pet-store directory: [org.apache.maven.plugins:maven-install-plugin](https://github.com/apache/maven-install-plugin).
Bumps the maven-install-plugin group with 1 update in the /samples/springboot3/alt-pet-store directory: [org.apache.maven.plugins:maven-install-plugin](https://github.com/apache/maven-install-plugin).
Bumps the maven-install-plugin group with 1 update in the /samples/springboot3/graphql-pet-store directory: [org.apache.maven.plugins:maven-install-plugin](https://github.com/apache/maven-install-plugin).
Bumps the maven-install-plugin group with 1 update in the /samples/springboot3/pet-store directory: [org.apache.maven.plugins:maven-install-plugin](https://github.com/apache/maven-install-plugin).


Updates `org.apache.maven.plugins:maven-install-plugin` from 3.1.2 to 3.1.3
- [Release notes](https://github.com/apache/maven-install-plugin/releases)
- [Commits](https://github.com/apache/maven-install-plugin/compare/maven-install-plugin-3.1.2...maven-install-plugin-3.1.3)

Updates `org.apache.maven.plugins:maven-install-plugin` from 3.1.2 to 3.1.3
- [Release notes](https://github.com/apache/maven-install-plugin/releases)
- [Commits](https://github.com/apache/maven-install-plugin/compare/maven-install-plugin-3.1.2...maven-install-plugin-3.1.3)

Updates `org.apache.maven.plugins:maven-install-plugin` from 3.1.2 to 3.1.3
- [Release notes](https://github.com/apache/maven-install-plugin/releases)
- [Commits](https://github.com/apache/maven-install-plugin/compare/maven-install-plugin-3.1.2...maven-install-plugin-3.1.3)

Updates `org.apache.maven.plugins:maven-install-plugin` from 3.1.2 to 3.1.3
- [Release notes](https://github.com/apache/maven-install-plugin/releases)
- [Commits](https://github.com/apache/maven-install-plugin/compare/maven-install-plugin-3.1.2...maven-install-plugin-3.1.3)

Updates `org.apache.maven.plugins:maven-install-plugin` from 3.1.2 to 3.1.3
- [Release notes](https://github.com/apache/maven-install-plugin/releases)
- [Commits](https://github.com/apache/maven-install-plugin/compare/maven-install-plugin-3.1.2...maven-install-plugin-3.1.3)

Updates `org.apache.maven.plugins:maven-install-plugin` from 3.1.2 to 3.1.3
- [Release notes](https://github.com/apache/maven-install-plugin/releases)
- [Commits](https://github.com/apache/maven-install-plugin/compare/maven-install-plugin-3.1.2...maven-install-plugin-3.1.3)

Updates `org.apache.maven.plugins:maven-install-plugin` from 3.1.2 to 3.1.3
- [Release notes](https://github.com/apache/maven-install-plugin/releases)
- [Commits](https://github.com/apache/maven-install-plugin/compare/maven-install-plugin-3.1.2...maven-install-plugin-3.1.3)

Updates `org.apache.maven.plugins:maven-install-plugin` from 3.1.2 to 3.1.3
- [Release notes](https://github.com/apache/maven-install-plugin/releases)
- [Commits](https://github.com/apache/maven-install-plugin/compare/maven-install-plugin-3.1.2...maven-install-plugin-3.1.3)

Updates `org.apache.maven.plugins:maven-install-plugin` from 3.1.2 to 3.1.3
- [Release notes](https://github.com/apache/maven-install-plugin/releases)
- [Commits](https://github.com/apache/maven-install-plugin/compare/maven-install-plugin-3.1.2...maven-install-plugin-3.1.3)

Updates `org.apache.maven.plugins:maven-install-plugin` from 3.1.2 to 3.1.3
- [Release notes](https://github.com/apache/maven-install-plugin/releases)
- [Commits](https://github.com/apache/maven-install-plugin/compare/maven-install-plugin-3.1.2...maven-install-plugin-3.1.3)

Updates `org.apache.maven.plugins:maven-install-plugin` from 3.1.2 to 3.1.3
- [Release notes](https://github.com/apache/maven-install-plugin/releases)
- [Commits](https://github.com/apache/maven-install-plugin/compare/maven-install-plugin-3.1.2...maven-install-plugin-3.1.3)

Updates `org.apache.maven.plugins:maven-install-plugin` from 3.1.2 to 3.1.3
- [Release notes](https://github.com/apache/maven-install-plugin/releases)
- [Commits](https://github.com/apache/maven-install-plugin/compare/maven-install-plugin-3.1.2...maven-install-plugin-3.1.3)

Updates `org.apache.maven.plugins:maven-install-plugin` from 3.1.2 to 3.1.3
- [Release notes](https://github.com/apache/maven-install-plugin/releases)
- [Commits](https://github.com/apache/maven-install-plugin/compare/maven-install-plugin-3.1.2...maven-install-plugin-3.1.3)

Updates `org.apache.maven.plugins:maven-install-plugin` from 3.1.2 to 3.1.3
- [Release notes](https://github.com/apache/maven-install-plugin/releases)
- [Commits](https://github.com/apache/maven-install-plugin/compare/maven-install-plugin-3.1.2...maven-install-plugin-3.1.3)

Updates `org.apache.maven.plugins:maven-install-plugin` from 3.1.2 to 3.1.3
- [Release notes](https://github.com/apache/maven-install-plugin/releases)
- [Commits](https://github.com/apache/maven-install-plugin/compare/maven-install-plugin-3.1.2...maven-install-plugin-3.1.3)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-install-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: maven-install-plugin
- dependency-name: org.apache.maven.plugins:maven-install-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: maven-install-plugin
- dependency-name: org.apache.maven.plugins:maven-install-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: maven-install-plugin
- dependency-name: org.apache.maven.plugins:maven-install-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: maven-install-plugin
- dependency-name: org.apache.maven.plugins:maven-install-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: maven-install-plugin
- dependency-name: org.apache.maven.plugins:maven-install-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: maven-install-plugin
- dependency-name: org.apache.maven.plugins:maven-install-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: maven-install-plugin
- dependency-name: org.apache.maven.plugins:maven-install-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: maven-install-plugin
- dependency-name: org.apache.maven.plugins:maven-install-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: maven-install-plugin
- dependency-name: org.apache.maven.plugins:maven-install-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: maven-install-plugin
- dependency-name: org.apache.maven.plugins:maven-install-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: maven-install-plugin
- dependency-name: org.apache.maven.plugins:maven-install-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: maven-install-plugin
- dependency-name: org.apache.maven.plugins:maven-install-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: maven-install-plugin
- dependency-name: org.apache.maven.plugins:maven-install-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: maven-install-plugin
- dependency-name: org.apache.maven.plugins:maven-install-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: maven-install-plugin
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml                                       | 2 +-
 samples/jersey/pet-store/pom.xml              | 2 +-
 samples/spring/pet-store/pom.xml              | 2 +-
 samples/springboot3/alt-pet-store/pom.xml     | 2 +-
 samples/springboot3/graphql-pet-store/pom.xml | 2 +-
 samples/springboot3/pet-store/pom.xml         | 2 +-
 6 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/pom.xml b/pom.xml
index a6ce83e94..7e0034f72 100644
--- a/pom.xml
+++ b/pom.xml
@@ -231,7 +231,7 @@
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-install-plugin</artifactId>
-                    <version>3.1.2</version>
+                    <version>3.1.3</version>
                 </plugin>
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
diff --git a/samples/jersey/pet-store/pom.xml b/samples/jersey/pet-store/pom.xml
index 5736c49d7..7bdc7ce40 100644
--- a/samples/jersey/pet-store/pom.xml
+++ b/samples/jersey/pet-store/pom.xml
@@ -123,7 +123,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-install-plugin</artifactId>
-                        <version>3.1.2</version>
+                        <version>3.1.3</version>
                         <configuration>
                             <skip>true</skip>
                         </configuration>
diff --git a/samples/spring/pet-store/pom.xml b/samples/spring/pet-store/pom.xml
index 44e9aaf73..6cc5a2c4b 100644
--- a/samples/spring/pet-store/pom.xml
+++ b/samples/spring/pet-store/pom.xml
@@ -144,7 +144,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-install-plugin</artifactId>
-                        <version>3.1.2</version>
+                        <version>3.1.3</version>
                         <configuration>
                             <skip>true</skip>
                         </configuration>
diff --git a/samples/springboot3/alt-pet-store/pom.xml b/samples/springboot3/alt-pet-store/pom.xml
index 6c27f7c3d..647c09d37 100644
--- a/samples/springboot3/alt-pet-store/pom.xml
+++ b/samples/springboot3/alt-pet-store/pom.xml
@@ -94,7 +94,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-install-plugin</artifactId>
-                        <version>3.1.2</version>
+                        <version>3.1.3</version>
                         <configuration>
                             <skip>true</skip>
                         </configuration>
diff --git a/samples/springboot3/graphql-pet-store/pom.xml b/samples/springboot3/graphql-pet-store/pom.xml
index be77bc8d7..2650b0f19 100644
--- a/samples/springboot3/graphql-pet-store/pom.xml
+++ b/samples/springboot3/graphql-pet-store/pom.xml
@@ -108,7 +108,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-install-plugin</artifactId>
-                        <version>3.1.2</version>
+                        <version>3.1.3</version>
                         <configuration>
                             <skip>true</skip>
                         </configuration>
diff --git a/samples/springboot3/pet-store/pom.xml b/samples/springboot3/pet-store/pom.xml
index e2832acfa..502620b92 100644
--- a/samples/springboot3/pet-store/pom.xml
+++ b/samples/springboot3/pet-store/pom.xml
@@ -100,7 +100,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-install-plugin</artifactId>
-                        <version>3.1.2</version>
+                        <version>3.1.3</version>
                         <configuration>
                             <skip>true</skip>
                         </configuration>

From 72af4526d495d7da71f4837193f5e051afb48872 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Mon, 9 Sep 2024 10:17:10 +0200
Subject: [PATCH 256/430] chore(deps): Update Log4J dependencies to 2.24.0

---
 .github/dependabot.yml                                      | 6 ++++++
 .../src/main/resources/archetype-resources/build.gradle     | 6 +++---
 .../src/main/resources/archetype-resources/pom.xml          | 2 +-
 .../src/main/resources/archetype-resources/build.gradle     | 6 +++---
 .../src/main/resources/archetype-resources/pom.xml          | 2 +-
 samples/spring/pet-store/build.gradle                       | 6 +++---
 samples/spring/pet-store/pom.xml                            | 2 +-
 samples/struts/pet-store/build.gradle                       | 4 ++--
 samples/struts/pet-store/pom.xml                            | 2 +-
 9 files changed, 21 insertions(+), 15 deletions(-)

diff --git a/.github/dependabot.yml b/.github/dependabot.yml
index cc36223dc..96dd4d8b3 100644
--- a/.github/dependabot.yml
+++ b/.github/dependabot.yml
@@ -18,6 +18,9 @@ updates:
       slf4j:
         patterns:
           - "org.slf4j:*"
+      log4j:
+        patterns:
+          - "org.apache.logging.log4j:*"
       junit:
         patterns:
           - "org.junit:*"
@@ -40,5 +43,8 @@ updates:
       slf4j:
         patterns:
           - "org.slf4j:*"
+      log4j:
+        patterns:
+          - "org.apache.logging.log4j:*"
     schedule:
       interval: "weekly"
\ No newline at end of file
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
index daaf61428..bc675d8f1 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
@@ -10,9 +10,9 @@ dependencies {
           'org.springframework:spring-webmvc:6.1.12',
           'org.springframework:spring-context:6.1.12',
           'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)',
-          'org.apache.logging.log4j:log4j-core:2.23.1',
-          'org.apache.logging.log4j:log4j-api:2.23.1',
-          'org.apache.logging.log4j:log4j-slf4j-impl:2.23.1',
+          'org.apache.logging.log4j:log4j-core:2.24.0',
+          'org.apache.logging.log4j:log4j-api:2.24.0',
+          'org.apache.logging.log4j:log4j-slf4j-impl:2.24.0',
           'com.fasterxml.jackson.core:jackson-databind:2.17.2',
           'com.amazonaws:aws-lambda-java-log4j2:1.6.0',
   )
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
index 759b3ad27..4860c66e8 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
@@ -18,7 +18,7 @@
         <maven.compiler.target>1.8</maven.compiler.target>
         <spring.version>6.1.12</spring.version>
         <junit.version>5.11.0</junit.version>
-        <log4j.version>2.23.1</log4j.version>
+        <log4j.version>2.24.0</log4j.version>
     </properties>
 
     <dependencies>
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
index 8d96159a7..64b609527 100644
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
@@ -36,9 +36,9 @@ dependencies {
   implementation ('org.hibernate.validator:hibernate-validator:6.1.7.Final')
   implementation ('com.fasterxml.jackson.core:jackson-databind:2.17.2')
   implementation ('com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.17.2')
-  implementation ('org.apache.logging.log4j:log4j-core:2.23.1')
-  implementation ('org.apache.logging.log4j:log4j-api:2.23.1')
-  implementation ('org.apache.logging.log4j:log4j-slf4j-impl:2.23.1')
+  implementation ('org.apache.logging.log4j:log4j-core:2.24.0')
+  implementation ('org.apache.logging.log4j:log4j-api:2.24.0')
+  implementation ('org.apache.logging.log4j:log4j-slf4j-impl:2.24.0')
   implementation ('com.amazonaws:aws-lambda-java-log4j2:1.6.0')
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
index 5803bd2e6..5c1c2987d 100644
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
@@ -18,7 +18,7 @@
         <struts.version>7.0.0-M8</struts.version>
         <jackson.version>2.17.2</jackson.version>
         <junit.version>5.11.0</junit.version>
-        <log4j.version>2.23.1</log4j.version>
+        <log4j.version>2.24.0</log4j.version>
     </properties>
 
     <dependencies>
diff --git a/samples/spring/pet-store/build.gradle b/samples/spring/pet-store/build.gradle
index 796b98c29..2b3e01a95 100644
--- a/samples/spring/pet-store/build.gradle
+++ b/samples/spring/pet-store/build.gradle
@@ -10,9 +10,9 @@ dependencies {
           'org.springframework:spring-webmvc:6.1.12',
           'org.springframework:spring-context:6.1.12',
           'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)',
-          'org.apache.logging.log4j:log4j-core:2.23.1',
-          'org.apache.logging.log4j:log4j-api:2.23.1',
-          'org.apache.logging.log4j:log4j-slf4j-impl:2.23.1',
+          'org.apache.logging.log4j:log4j-core:2.24.0',
+          'org.apache.logging.log4j:log4j-api:2.24.0',
+          'org.apache.logging.log4j:log4j-slf4j-impl:2.24.0',
           'com.fasterxml.jackson.core:jackson-databind:2.17.2',
           'com.amazonaws:aws-lambda-java-log4j2:1.6.0',
   )
diff --git a/samples/spring/pet-store/pom.xml b/samples/spring/pet-store/pom.xml
index 6cc5a2c4b..2949da8d9 100644
--- a/samples/spring/pet-store/pom.xml
+++ b/samples/spring/pet-store/pom.xml
@@ -25,7 +25,7 @@
 
     <properties>
         <spring.version>6.1.12</spring.version>
-        <log4j.version>2.23.1</log4j.version>
+        <log4j.version>2.24.0</log4j.version>
         <maven.compiler.source>17</maven.compiler.source>
         <maven.compiler.target>17</maven.compiler.target>
     </properties>
diff --git a/samples/struts/pet-store/build.gradle b/samples/struts/pet-store/build.gradle
index 5fdd43e54..56deb9a5d 100644
--- a/samples/struts/pet-store/build.gradle
+++ b/samples/struts/pet-store/build.gradle
@@ -24,8 +24,8 @@ dependencies {
           'jakarta.el:jakarta.el-api:5.0.1',
           'com.fasterxml.jackson.core:jackson-databind:2.17.2',
           'com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.17.2',
-          'org.apache.logging.log4j:log4j-core:2.23.1',
-          'org.apache.logging.log4j:log4j-api:2.23.1',
+          'org.apache.logging.log4j:log4j-core:2.24.0',
+          'org.apache.logging.log4j:log4j-api:2.24.0',
           'com.amazonaws:aws-lambda-java-log4j2:1.6.0',
   )
 }
diff --git a/samples/struts/pet-store/pom.xml b/samples/struts/pet-store/pom.xml
index 9c466a3a5..8e3f7f13f 100644
--- a/samples/struts/pet-store/pom.xml
+++ b/samples/struts/pet-store/pom.xml
@@ -29,7 +29,7 @@
         <struts.version>7.0.0-M8</struts.version>
         <jackson.version>2.17.2</jackson.version>
         <junit.version>4.13.2</junit.version>
-        <log4j.version>2.23.1</log4j.version>
+        <log4j.version>2.24.0</log4j.version>
     </properties>
 
     <dependencies>

From 71eac1f27ddda37038c0973de0d9fe052b06b329 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Fri, 20 Sep 2024 15:52:09 +0200
Subject: [PATCH 257/430] chore(deps): Update Spring dependencies (framework to
 6.1.13, boot to 3.3.4)

---
 aws-serverless-java-container-springboot3/pom.xml             | 4 ++--
 .../src/main/resources/archetype-resources/build.gradle       | 2 +-
 .../src/main/resources/archetype-resources/pom.xml            | 2 +-
 samples/springboot3/alt-pet-store/build.gradle                | 2 +-
 samples/springboot3/alt-pet-store/pom.xml                     | 2 +-
 samples/springboot3/graphql-pet-store/pom.xml                 | 2 +-
 samples/springboot3/pet-store-native/pom.xml                  | 2 +-
 samples/springboot3/pet-store/build.gradle                    | 2 +-
 samples/springboot3/pet-store/pom.xml                         | 2 +-
 9 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml
index f152c419e..953e8bdb0 100644
--- a/aws-serverless-java-container-springboot3/pom.xml
+++ b/aws-serverless-java-container-springboot3/pom.xml
@@ -15,8 +15,8 @@
     <version>2.1.0-SNAPSHOT</version>
 
     <properties>
-        <spring.version>6.1.12</spring.version>
-        <springboot.version>3.3.3</springboot.version>
+        <spring.version>6.1.13</spring.version>
+        <springboot.version>3.3.4</springboot.version>
         <springsecurity.version>6.3.3</springsecurity.version>
     </properties>
 
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
index c14e9e847..47925cfc3 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
@@ -9,7 +9,7 @@ repositories {
 
 dependencies {
   implementation (
-          'org.springframework.boot:spring-boot-starter-web:3.3.3',
+          'org.springframework.boot:spring-boot-starter-web:3.3.4',
           'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)',
   )
 
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
index 5a869829f..042d5a503 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
@@ -16,7 +16,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.3.3</version>
+        <version>3.3.4</version>
     </parent>
 
     <properties>
diff --git a/samples/springboot3/alt-pet-store/build.gradle b/samples/springboot3/alt-pet-store/build.gradle
index 444656eda..4e5bf5139 100644
--- a/samples/springboot3/alt-pet-store/build.gradle
+++ b/samples/springboot3/alt-pet-store/build.gradle
@@ -9,7 +9,7 @@ repositories {
 
 dependencies {
   implementation (
-          implementation('org.springframework.boot:spring-boot-starter-web:3.3.3') {
+          implementation('org.springframework.boot:spring-boot-starter-web:3.3.4') {
             exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat'
           },
           'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)',
diff --git a/samples/springboot3/alt-pet-store/pom.xml b/samples/springboot3/alt-pet-store/pom.xml
index 647c09d37..28ab529c4 100644
--- a/samples/springboot3/alt-pet-store/pom.xml
+++ b/samples/springboot3/alt-pet-store/pom.xml
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.3.3</version>
+        <version>3.3.4</version>
     </parent>
 
     <licenses>
diff --git a/samples/springboot3/graphql-pet-store/pom.xml b/samples/springboot3/graphql-pet-store/pom.xml
index 2650b0f19..38440b377 100644
--- a/samples/springboot3/graphql-pet-store/pom.xml
+++ b/samples/springboot3/graphql-pet-store/pom.xml
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.3.3</version>
+        <version>3.3.4</version>
     </parent>
 
     <licenses>
diff --git a/samples/springboot3/pet-store-native/pom.xml b/samples/springboot3/pet-store-native/pom.xml
index d97fe615e..e8c1fbc3f 100644
--- a/samples/springboot3/pet-store-native/pom.xml
+++ b/samples/springboot3/pet-store-native/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.springframework.boot</groupId>
 		<artifactId>spring-boot-starter-parent</artifactId>
-		<version>3.3.3</version>
+		<version>3.3.4</version>
 		<relativePath /> <!-- lookup parent from repository -->
 	</parent>
 	<groupId>com.amazonaws.serverless.sample</groupId>
diff --git a/samples/springboot3/pet-store/build.gradle b/samples/springboot3/pet-store/build.gradle
index 444656eda..4e5bf5139 100644
--- a/samples/springboot3/pet-store/build.gradle
+++ b/samples/springboot3/pet-store/build.gradle
@@ -9,7 +9,7 @@ repositories {
 
 dependencies {
   implementation (
-          implementation('org.springframework.boot:spring-boot-starter-web:3.3.3') {
+          implementation('org.springframework.boot:spring-boot-starter-web:3.3.4') {
             exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat'
           },
           'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)',
diff --git a/samples/springboot3/pet-store/pom.xml b/samples/springboot3/pet-store/pom.xml
index 502620b92..56b0ab8a6 100644
--- a/samples/springboot3/pet-store/pom.xml
+++ b/samples/springboot3/pet-store/pom.xml
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.3.3</version>
+        <version>3.3.4</version>
     </parent>
 
     <licenses>

From ed8d0b579520e59b48000970ed06e8be1b7e09ce Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Fri, 20 Sep 2024 16:04:05 +0200
Subject: [PATCH 258/430] chore(deps): Update Spring dependencies (framework to
 6.1.13, boot to 3.3.4)

---
 aws-serverless-java-container-spring/pom.xml                  | 2 +-
 .../src/main/resources/archetype-resources/build.gradle       | 4 ++--
 .../src/main/resources/archetype-resources/pom.xml            | 2 +-
 samples/spring/pet-store/build.gradle                         | 4 ++--
 samples/spring/pet-store/pom.xml                              | 2 +-
 5 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml
index 0130a93cd..d160a911a 100644
--- a/aws-serverless-java-container-spring/pom.xml
+++ b/aws-serverless-java-container-spring/pom.xml
@@ -16,7 +16,7 @@
     </parent>
 
     <properties>
-        <spring.version>6.1.12</spring.version>
+        <spring.version>6.1.13</spring.version>
         <spring-security.version>6.3.3</spring-security.version>
     </properties>
 
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
index bc675d8f1..145531587 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
@@ -7,8 +7,8 @@ repositories {
 
 dependencies {
   implementation (
-          'org.springframework:spring-webmvc:6.1.12',
-          'org.springframework:spring-context:6.1.12',
+          'org.springframework:spring-webmvc:6.1.13',
+          'org.springframework:spring-context:6.1.13',
           'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)',
           'org.apache.logging.log4j:log4j-core:2.24.0',
           'org.apache.logging.log4j:log4j-api:2.24.0',
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
index 4860c66e8..0e007227c 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
@@ -16,7 +16,7 @@
     <properties>
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
-        <spring.version>6.1.12</spring.version>
+        <spring.version>6.1.13</spring.version>
         <junit.version>5.11.0</junit.version>
         <log4j.version>2.24.0</log4j.version>
     </properties>
diff --git a/samples/spring/pet-store/build.gradle b/samples/spring/pet-store/build.gradle
index 2b3e01a95..ba627f2e8 100644
--- a/samples/spring/pet-store/build.gradle
+++ b/samples/spring/pet-store/build.gradle
@@ -7,8 +7,8 @@ repositories {
 
 dependencies {
   implementation (
-          'org.springframework:spring-webmvc:6.1.12',
-          'org.springframework:spring-context:6.1.12',
+          'org.springframework:spring-webmvc:6.1.13',
+          'org.springframework:spring-context:6.1.13',
           'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)',
           'org.apache.logging.log4j:log4j-core:2.24.0',
           'org.apache.logging.log4j:log4j-api:2.24.0',
diff --git a/samples/spring/pet-store/pom.xml b/samples/spring/pet-store/pom.xml
index 2949da8d9..9f2d29bba 100644
--- a/samples/spring/pet-store/pom.xml
+++ b/samples/spring/pet-store/pom.xml
@@ -24,7 +24,7 @@
     </licenses>
 
     <properties>
-        <spring.version>6.1.12</spring.version>
+        <spring.version>6.1.13</spring.version>
         <log4j.version>2.24.0</log4j.version>
         <maven.compiler.source>17</maven.compiler.source>
         <maven.compiler.target>17</maven.compiler.target>

From 6184609ac2b5ec788295ba05ea67634cc39a6bb8 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Fri, 20 Sep 2024 16:08:33 +0200
Subject: [PATCH 259/430] chore(deps): updated some struts dependencies
 (although currently not released)

---
 aws-serverless-java-container-struts/pom.xml           |  2 +-
 .../main/resources/archetype-resources/build.gradle    | 10 +++++-----
 .../src/main/resources/archetype-resources/pom.xml     |  2 +-
 samples/struts/pet-store/build.gradle                  |  8 ++++----
 samples/struts/pet-store/pom.xml                       |  2 +-
 5 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/aws-serverless-java-container-struts/pom.xml b/aws-serverless-java-container-struts/pom.xml
index e06abbf04..4546f4723 100644
--- a/aws-serverless-java-container-struts/pom.xml
+++ b/aws-serverless-java-container-struts/pom.xml
@@ -15,7 +15,7 @@
     </parent>
 
     <properties>
-        <struts.version>7.0.0-M8</struts.version>
+        <struts.version>7.0.0-M9</struts.version>
     </properties>
 
     <dependencies>
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
index 64b609527..892b44d38 100644
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
@@ -18,19 +18,19 @@ dependencies {
     exclude group: 'org.apache.logging.log4j', module: 'log4j-api'
     exclude group: 'org.apache.logging.log4j', module: 'log4j-to-slf4j'
   }
-  implementation ('org.apache.struts:struts2-convention-plugin:7.0.0-M8') {
+  implementation ('org.apache.struts:struts2-convention-plugin:7.0.0-M9') {
     exclude group: 'org.apache.struts', module: 'struts2-core'
   }
-  implementation ('org.apache.struts:struts2-rest-plugin:7.0.0-M8') {
+  implementation ('org.apache.struts:struts2-rest-plugin:7.0.0-M9') {
     exclude group: 'org.apache.struts', module: 'struts2-core'
   }
-  implementation ('org.apache.struts:struts2-bean-validation-plugin:7.0.0-M8') {
+  implementation ('org.apache.struts:struts2-bean-validation-plugin:7.0.0-M9') {
     exclude group: 'org.apache.struts', module: 'struts2-core'
   }
   implementation ('com.jgeppert.struts2:struts2-aws-lambda-support-plugin:1.4.3') {
     exclude group: 'org.apache.struts', module: 'struts2-core'
   }
-  implementation ('org.apache.struts:struts2-core:7.0.0-M8') {
+  implementation ('org.apache.struts:struts2-core:7.0.0-M9') {
     exclude group: 'org.apache.logging.log4j', module: 'log4j-api'
   }
   implementation ('org.hibernate.validator:hibernate-validator:6.1.7.Final')
@@ -45,7 +45,7 @@ dependencies {
   testImplementation("org.apache.httpcomponents.client5:httpclient5:5.3.1")
   testImplementation(platform("org.junit:junit-bom:5.11.0"))
   testImplementation("org.junit.jupiter:junit-jupiter")
-  testImplementation('org.apache.struts:struts2-junit-plugin:7.0.0-M8') {
+  testImplementation('org.apache.struts:struts2-junit-plugin:7.0.0-M9') {
     exclude group: 'org.apache.struts', module: 'struts2-core'
   }
 }
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
index 5c1c2987d..9b7fb33a7 100644
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
@@ -15,7 +15,7 @@
     <properties>
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
-        <struts.version>7.0.0-M8</struts.version>
+        <struts.version>7.0.0-M9</struts.version>
         <jackson.version>2.17.2</jackson.version>
         <junit.version>5.11.0</junit.version>
         <log4j.version>2.24.0</log4j.version>
diff --git a/samples/struts/pet-store/build.gradle b/samples/struts/pet-store/build.gradle
index 56deb9a5d..85eb0492c 100644
--- a/samples/struts/pet-store/build.gradle
+++ b/samples/struts/pet-store/build.gradle
@@ -14,10 +14,10 @@ configurations {
 dependencies {
   implementation (
           'com.amazonaws.serverless:aws-serverless-java-container-struts:[2.0-SNAPSHOT,)',
-          'org.apache.struts:struts2-convention-plugin:7.0.0-M8',
-          'org.apache.struts:struts2-rest-plugin:7.0.0-M8',
-          'org.apache.struts:struts2-bean-validation-plugin:7.0.0-M8',
-          'org.apache.struts:struts2-junit-plugin:7.0.0-M8',
+          'org.apache.struts:struts2-convention-plugin:7.0.0-M9',
+          'org.apache.struts:struts2-rest-plugin:7.0.0-M9',
+          'org.apache.struts:struts2-bean-validation-plugin:7.0.0-M9',
+          'org.apache.struts:struts2-junit-plugin:7.0.0-M9',
           'com.jgeppert.struts2:struts2-aws-lambda-support-plugin:1.4.3',
           'org.hibernate.validator:hibernate-validator:6.1.7.Final',
           'org.glassfish:jakarta.el:5.0.0-M1',
diff --git a/samples/struts/pet-store/pom.xml b/samples/struts/pet-store/pom.xml
index 8e3f7f13f..09a6e411e 100644
--- a/samples/struts/pet-store/pom.xml
+++ b/samples/struts/pet-store/pom.xml
@@ -26,7 +26,7 @@
     <properties>
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
-        <struts.version>7.0.0-M8</struts.version>
+        <struts.version>7.0.0-M9</struts.version>
         <jackson.version>2.17.2</jackson.version>
         <junit.version>4.13.2</junit.version>
         <log4j.version>2.24.0</log4j.version>

From eb25f48581b12a3f4cb06b14d6d04cb3862d389b Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Fri, 20 Sep 2024 14:12:28 +0000
Subject: [PATCH 260/430] chore(deps): bump
 org.apache.maven.plugins:maven-surefire-plugin

Bumps [org.apache.maven.plugins:maven-surefire-plugin](https://github.com/apache/maven-surefire) from 3.4.0 to 3.5.0.
- [Release notes](https://github.com/apache/maven-surefire/releases)
- [Commits](https://github.com/apache/maven-surefire/compare/surefire-3.4.0...surefire-3.5.0)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-surefire-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index b282f140f..25c610ae8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -206,7 +206,7 @@
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-surefire-plugin</artifactId>
-                    <version>3.4.0</version>
+                    <version>3.5.0</version>
                 </plugin>
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>

From 9f61d504466c8f2796c580b25c2b8f2b62953a17 Mon Sep 17 00:00:00 2001
From: kibeom lee <70303094+2012160085@users.noreply.github.com>
Date: Sun, 22 Sep 2024 15:10:34 +0900
Subject: [PATCH 261/430] Add unit test to verify cookie behavior with
 Max-Age=0

---
 .../servlet/AwsHttpServletResponseTest.java   | 22 +++++++++++++++++--
 1 file changed, 20 insertions(+), 2 deletions(-)

diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletResponseTest.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletResponseTest.java
index 6c951a4f1..88d2a5e74 100644
--- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletResponseTest.java
+++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletResponseTest.java
@@ -17,6 +17,7 @@
 import java.text.SimpleDateFormat;
 import java.time.Instant;
 import java.util.Calendar;
+import java.util.Locale;
 import java.util.TimeZone;
 import java.util.concurrent.CountDownLatch;
 import java.util.regex.Matcher;
@@ -36,7 +37,7 @@ public class AwsHttpServletResponseTest {
     private static final int MAX_AGE_VALUE = 300;
 
     private static final Pattern MAX_AGE_PATTERN = Pattern.compile("Max-Age=(-?[0-9]+)");
-    private static final Pattern EXPIRES_PATTERN = Pattern.compile("Expires=(.*)$");
+    private static final Pattern EXPIRES_PATTERN = Pattern.compile("Expires=([^;]+)");
 
     private static final String CONTENT_TYPE_WITH_CHARSET = "application/json; charset=UTF-8";
     private static final String JAVASCRIPT_CONTENT_TYPE_WITH_CHARSET = "application/javascript; charset=UTF-8";
@@ -144,6 +145,23 @@ void cookie_addCookieWithoutMaxAge_expectNoExpires() {
         assertFalse(cookieHeader.contains("Expires"));
     }
 
+    @Test
+    void cookie_addCookieWithMaxAgeZero_expectExpiresInThePast() {
+        AwsHttpServletResponse resp = new AwsHttpServletResponse(null, null);
+        Cookie zeroMaxAgeCookie = new Cookie(COOKIE_NAME, COOKIE_VALUE);
+        zeroMaxAgeCookie.setMaxAge(0);
+
+        resp.addCookie(zeroMaxAgeCookie);
+        String cookieHeader = resp.getHeader(HttpHeaders.SET_COOKIE);
+
+        Calendar cal = getExpires(cookieHeader);
+        long currentTimeMillis = System.currentTimeMillis();
+
+        assertNotNull(cookieHeader);
+        assertTrue(cal.getTimeInMillis() < currentTimeMillis);
+        assertTrue(cookieHeader.contains(COOKIE_NAME + "=" + COOKIE_VALUE));
+    }
+
     @Test
     void responseHeaders_getAwsResponseHeaders_expectLatestHeader() {
         AwsHttpServletResponse resp = new AwsHttpServletResponse(null, null);
@@ -352,7 +370,7 @@ private Calendar getExpires(String header) {
         assertTrue(ageMatcher.find());
         assertTrue(ageMatcher.groupCount() >= 1);
         String expiresString = ageMatcher.group(1);
-        SimpleDateFormat sdf = new SimpleDateFormat(AwsHttpServletResponse.HEADER_DATE_PATTERN);
+        SimpleDateFormat sdf = new SimpleDateFormat(AwsHttpServletResponse.HEADER_DATE_PATTERN, Locale.US);
         Calendar cal = Calendar.getInstance();
         try {
             cal.setTime(sdf.parse(expiresString));

From 3a720953f276b76207f099e665386c146683ec71 Mon Sep 17 00:00:00 2001
From: kibeom lee <70303094+2012160085@users.noreply.github.com>
Date: Sun, 22 Sep 2024 17:15:35 +0900
Subject: [PATCH 262/430] Add Servlet request tests to validate RFC 6265 cookie
 compliance

---
 .../servlet/AwsHttpServletRequestTest.java    | 39 +++++++++++++++++++
 1 file changed, 39 insertions(+)

diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequestTest.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequestTest.java
index 2bc433041..358d673a1 100644
--- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequestTest.java
+++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequestTest.java
@@ -26,6 +26,12 @@ public class AwsHttpServletRequestTest {
             .header(HttpHeaders.CONTENT_TYPE, "application/xml; charset=utf-8").build();
     private static final AwsProxyRequest validCookieRequest = new AwsProxyRequestBuilder("/cookie", "GET")
             .header(HttpHeaders.COOKIE, "yummy_cookie=choco; tasty_cookie=strawberry").build();
+    private static final AwsProxyRequest controlCharCookieRequest = new AwsProxyRequestBuilder("/cookie", "GET")
+            .header(HttpHeaders.COOKIE, "name=\u0007\u0009; tasty_cookie=strawberry").build();
+    private static final AwsProxyRequest unicodeCookieRequest = new AwsProxyRequestBuilder("/cookie", "GET")
+            .header(HttpHeaders.COOKIE, "yummy_cookie=chøcø; tasty_cookie=strawberry").build();
+    private static final AwsProxyRequest invalidNameCookieRequest = new AwsProxyRequestBuilder("/cookie", "GET")
+            .header(HttpHeaders.COOKIE, "yummy@cookie=choco; tasty_cookie=strawberry").build();
     private static final AwsProxyRequest complexAcceptHeader = new AwsProxyRequestBuilder("/accept", "GET")
             .header(HttpHeaders.ACCEPT, "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8").build();
     private static final AwsProxyRequest queryString = new AwsProxyRequestBuilder("/test", "GET")
@@ -75,6 +81,39 @@ void headers_parseHeaderValue_validMultipleCookie() {
         assertEquals("strawberry", values.get(1).getValue());
     }
 
+    @Test
+    void headers_parseHeaderValue_controlCharCookie() {
+        AwsProxyHttpServletRequest request = new AwsProxyHttpServletRequest(controlCharCookieRequest, mockContext, null, config);
+        Cookie[] cookies = request.getCookies();
+
+        // parse only valid cookies
+        assertEquals(1, cookies.length);
+        assertEquals("tasty_cookie", cookies[0].getName());
+        assertEquals("strawberry", cookies[0].getValue());
+    }
+
+    @Test
+    void headers_parseHeaderValue_unicodeCookie() {
+        AwsProxyHttpServletRequest request = new AwsProxyHttpServletRequest(unicodeCookieRequest, mockContext, null, config);
+        Cookie[] cookies = request.getCookies();
+
+        // parse only valid cookies
+        assertEquals(1, cookies.length);
+        assertEquals("tasty_cookie", cookies[0].getName());
+        assertEquals("strawberry", cookies[0].getValue());
+    }
+
+    @Test
+    void headers_parseHeaderValue_invalidNameCookie() {
+        AwsProxyHttpServletRequest request = new AwsProxyHttpServletRequest(invalidNameCookieRequest, mockContext, null, config);
+        Cookie[] cookies = request.getCookies();
+
+        // parse only valid cookies
+        assertEquals(1, cookies.length);
+        assertEquals("tasty_cookie", cookies[0].getName());
+        assertEquals("strawberry", cookies[0].getValue());
+    }
+
     @Test
     void headers_parseHeaderValue_complexAccept() {
         AwsProxyHttpServletRequest request = new AwsProxyHttpServletRequest(complexAcceptHeader, mockContext, null, config);

From c04fd1387cf4b20207abd43225ea06ffc8973277 Mon Sep 17 00:00:00 2001
From: kibeom lee <70303094+2012160085@users.noreply.github.com>
Date: Sun, 22 Sep 2024 19:57:39 +0900
Subject: [PATCH 263/430] feat: Introduce CookieProcessor interface and
 refactor cookie handling

- Created a `CookieProcessor` interface along with its implementation `AwsCookieProcessor` to encapsulate cookie parsing and formatting logic.
- Modified `AwsHttpServletResponse` and `AwsHttpServletRequest` to use the `CookieProcessor` for all cookie-related operations.
---
 .../internal/servlet/AwsCookieProcessor.java  | 275 ++++++++++++++++++
 .../AwsHttpApiV2ProxyHttpServletRequest.java  |  17 +-
 .../servlet/AwsHttpServletRequest.java        |  15 +-
 .../servlet/AwsHttpServletResponse.java       |  35 +--
 .../internal/servlet/CookieProcessor.java     |  23 ++
 5 files changed, 317 insertions(+), 48 deletions(-)
 create mode 100644 aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsCookieProcessor.java
 create mode 100644 aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/CookieProcessor.java

diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsCookieProcessor.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsCookieProcessor.java
new file mode 100644
index 000000000..2a8496082
--- /dev/null
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsCookieProcessor.java
@@ -0,0 +1,275 @@
+package com.amazonaws.serverless.proxy.internal.servlet;
+
+import com.amazonaws.serverless.proxy.internal.SecurityUtils;
+import jakarta.servlet.http.Cookie;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.text.DateFormat;
+import java.text.FieldPosition;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+/**
+ * Implementation of the CookieProcessor interface that provides cookie parsing and generation functionality.
+ */
+public class AwsCookieProcessor implements CookieProcessor {
+
+    // Cookie attribute constants
+    static final String COOKIE_COMMENT_ATTR = "Comment";
+    static final String COOKIE_DOMAIN_ATTR = "Domain";
+    static final String COOKIE_MAX_AGE_ATTR = "Max-Age";
+    static final String COOKIE_PATH_ATTR = "Path";
+    static final String COOKIE_SECURE_ATTR = "Secure";
+    static final String COOKIE_HTTP_ONLY_ATTR = "HttpOnly";
+    static final String COOKIE_SAME_SITE_ATTR = "SameSite";
+    static final String COOKIE_PARTITIONED_ATTR = "Partitioned";
+    static final String EMPTY_STRING = "";
+
+    // BitSet to store valid token characters as defined in RFC 2616
+    static final BitSet tokenValid = createTokenValidSet();
+
+    // BitSet to validate domain characters
+    static final BitSet domainValid = createDomainValidSet();
+
+    static final String COOKIE_DATE_PATTERN = "EEE, dd MMM yyyy HH:mm:ss z";
+
+    // ThreadLocal to ensure thread-safe creation of DateFormat instances for each thread
+    static final ThreadLocal<DateFormat> COOKIE_DATE_FORMAT = ThreadLocal.withInitial(() -> {
+        DateFormat df = new SimpleDateFormat(COOKIE_DATE_PATTERN, Locale.US);
+        df.setTimeZone(TimeZone.getTimeZone("GMT"));
+        return df;
+    });
+
+    static final String ANCIENT_DATE = COOKIE_DATE_FORMAT.get().format(new Date(10000));
+
+    static BitSet createTokenValidSet() {
+        BitSet tokenSet = new BitSet(128);
+        for (char c = '0'; c <= '9'; c++) tokenSet.set(c);
+        for (char c = 'a'; c <= 'z'; c++) tokenSet.set(c);
+        for (char c = 'A'; c <= 'Z'; c++) tokenSet.set(c);
+        for (char c : "!#$%&'*+-.^_`|~".toCharArray()) tokenSet.set(c);
+        return tokenSet;
+    }
+
+    static BitSet createDomainValidSet() {
+        BitSet domainValid = new BitSet(128);
+        for (char c = '0'; c <= '9'; c++) domainValid.set(c);
+        for (char c = 'a'; c <= 'z'; c++) domainValid.set(c);
+        for (char c = 'A'; c <= 'Z'; c++) domainValid.set(c);
+        domainValid.set('.');
+        domainValid.set('-');
+        return domainValid;
+    }
+
+    private final Logger log = LoggerFactory.getLogger(AwsCookieProcessor.class);
+
+    @Override
+    public Cookie[] parseCookieHeader(String cookieHeader) {
+        // Return an empty array if the input is null or empty after trimming
+        if (cookieHeader == null || cookieHeader.trim().isEmpty()) {
+            return new Cookie[0];
+        }
+
+        // Parse cookie header and convert to Cookie array
+        return Arrays.stream(cookieHeader.split("\\s*;\\s*"))
+                .map(this::parseCookiePair)
+                .filter(Objects::nonNull) // Filter out invalid pairs
+                .toArray(Cookie[]::new);
+    }
+
+    /**
+     * Parse a single cookie pair (name=value).
+     *
+     * @param cookiePair The cookie pair string.
+     * @return A valid Cookie object or null if the pair is invalid.
+     */
+    private Cookie parseCookiePair(String cookiePair) {
+        String[] kv = cookiePair.split("=", 2);
+
+        if (kv.length != 2) {
+            log.warn("Ignoring invalid cookie: {}", cookiePair);
+            return null;  // Skip malformed cookie pairs
+        }
+
+        String cookieName = kv[0];
+        String cookieValue = kv[1];
+
+        // Validate name and value
+        if (!isToken(cookieName)){
+            log.warn("Ignoring cookie with invalid name: {}={}", cookieName, cookieValue);
+            return null;  // Skip invalid cookie names
+        }
+
+        if (!isValidCookieValue(cookieValue)) {
+            log.warn("Ignoring cookie with invalid value: {}={}", cookieName, cookieValue);
+            return null;  // Skip invalid cookie values
+        }
+
+        // Return a new Cookie object after security processing
+        return new Cookie(SecurityUtils.crlf(cookieName), SecurityUtils.crlf(cookieValue));
+    }
+
+    @Override
+    public String generateHeader(Cookie cookie) {
+        StringBuffer header = new StringBuffer();
+        header.append(cookie.getName()).append('=');
+
+        String value = cookie.getValue();
+        if (value != null && value.length() > 0) {
+            validateCookieValue(value);
+            header.append(value);
+        }
+
+        int maxAge = cookie.getMaxAge();
+        if (maxAge > -1) {
+            header.append("; Expires=");
+            if (maxAge == 0) {
+                header.append(ANCIENT_DATE);
+            } else {
+                COOKIE_DATE_FORMAT.get().format(
+                        new Date(System.currentTimeMillis() + maxAge * 1000L), header, new FieldPosition(0));
+                header.append("; Max-Age=").append(maxAge);
+            }
+        }
+
+        String domain = cookie.getDomain();
+        if (domain != null && !domain.isEmpty()) {
+            validateDomain(domain);
+            header.append("; Domain=").append(domain);
+        }
+
+        String path = cookie.getPath();
+        if (path != null && !path.isEmpty()) {
+            validatePath(path);
+            header.append("; Path=").append(path);
+        }
+
+        if (cookie.getSecure()) {
+            header.append("; Secure");
+        }
+
+        if (cookie.isHttpOnly()) {
+            header.append("; HttpOnly");
+        }
+
+        String sameSite = cookie.getAttribute(COOKIE_SAME_SITE_ATTR);
+        if (sameSite != null) {
+            header.append("; SameSite=").append(sameSite);
+        }
+
+        String partitioned = cookie.getAttribute(COOKIE_PARTITIONED_ATTR);
+        if (EMPTY_STRING.equals(partitioned)) {
+            header.append("; Partitioned");
+        }
+
+        addAdditionalAttributes(cookie, header);
+
+        return header.toString();
+    }
+
+    private void addAdditionalAttributes(Cookie cookie, StringBuffer header) {
+        for (Map.Entry<String, String> entry : cookie.getAttributes().entrySet()) {
+            switch (entry.getKey()) {
+                case COOKIE_COMMENT_ATTR:
+                case COOKIE_DOMAIN_ATTR:
+                case COOKIE_MAX_AGE_ATTR:
+                case COOKIE_PATH_ATTR:
+                case COOKIE_SECURE_ATTR:
+                case COOKIE_HTTP_ONLY_ATTR:
+                case COOKIE_SAME_SITE_ATTR:
+                case COOKIE_PARTITIONED_ATTR:
+                    // Already handled attributes are ignored
+                    break;
+                default:
+                    validateAttribute(entry.getKey(), entry.getValue());
+                    header.append("; ").append(entry.getKey());
+                    if (!EMPTY_STRING.equals(entry.getValue())) {
+                        header.append('=').append(entry.getValue());
+                    }
+                    break;
+            }
+        }
+    }
+
+    private void validateCookieValue(String value) {
+        if (!isValidCookieValue(value)) {
+            throw new IllegalArgumentException("Invalid cookie value: " + value);
+        }
+    }
+
+    private void validateDomain(String domain) {
+        if (!isValidDomain(domain)) {
+            throw new IllegalArgumentException("Invalid cookie domain: " + domain);
+        }
+    }
+
+    private void validatePath(String path) {
+        for (char ch : path.toCharArray()) {
+            if (ch < 0x20 || ch > 0x7E || ch == ';') {
+                throw new IllegalArgumentException("Invalid cookie path: " + path);
+            }
+        }
+    }
+
+    private void validateAttribute(String name, String value) {
+        if (!isToken(name)) {
+            throw new IllegalArgumentException("Invalid cookie attribute name: " + name);
+        }
+
+        for (char ch : value.toCharArray()) {
+            if (ch < 0x20 || ch > 0x7E || ch == ';') {
+                throw new IllegalArgumentException("Invalid cookie attribute value: " + ch);
+            }
+        }
+    }
+
+    private boolean isValidCookieValue(String value) {
+        int start = 0;
+        int end = value.length();
+        boolean quoted = end > 1 && value.charAt(0) == '"' && value.charAt(end - 1) == '"';
+
+        char[] chars = value.toCharArray();
+        for (int i = start; i < end; i++) {
+            if (quoted && (i == start || i == end - 1)) {
+                continue;
+            }
+            char c = chars[i];
+            if (!isValidCookieChar(c)) return false;
+        }
+        return true;
+    }
+
+    private boolean isValidDomain(String domain) {
+        if (domain.isEmpty()) {
+            return false;
+        }
+        int prev = -1;
+        for (char c : domain.toCharArray()) {
+            if (!domainValid.get(c) || isInvalidLabelStartOrEnd(prev, c)) {
+                return false;
+            }
+            prev = c;
+        }
+        return prev != '.' && prev != '-';
+    }
+
+    private boolean isInvalidLabelStartOrEnd(int prev, char current) {
+        return (prev == '.' || prev == -1) && (current == '.' || current == '-') ||
+                (prev == '-' && current == '.');
+    }
+
+    private boolean isToken(String s) {
+        if (s.isEmpty()) return false;
+        for (char c : s.toCharArray()) {
+            if (!tokenValid.get(c)) {
+                return false;
+            }
+        }
+        return true;
+    }
+
+    private boolean isValidCookieChar(char c) {
+        return !(c < 0x21 || c > 0x7E ||  c == 0x22 || c == 0x2c || c == 0x3b || c == 0x5c || c == 0x7f);
+    }
+}
diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpApiV2ProxyHttpServletRequest.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpApiV2ProxyHttpServletRequest.java
index 6fdb31f08..537e10759 100644
--- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpApiV2ProxyHttpServletRequest.java
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpApiV2ProxyHttpServletRequest.java
@@ -37,7 +37,6 @@
 import java.time.ZonedDateTime;
 import java.time.format.DateTimeParseException;
 import java.util.*;
-import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
 public class AwsHttpApiV2ProxyHttpServletRequest extends AwsHttpServletRequest {
@@ -81,26 +80,14 @@ public Cookie[] getCookies() {
         if (headers == null || !headers.containsKey(HttpHeaders.COOKIE)) {
             rhc = new Cookie[0];
         } else {
-            rhc = parseCookieHeaderValue(headers.getFirst(HttpHeaders.COOKIE));
+            rhc = getCookieProcessor().parseCookieHeader(headers.getFirst(HttpHeaders.COOKIE));
         }
 
         Cookie[] rc;
         if (request.getCookies() == null) {
             rc = new Cookie[0];
         } else {
-            rc = request.getCookies().stream()
-                .map(c -> {
-                    int i = c.indexOf('=');
-                    if (i == -1) {
-                        return null;
-                    } else {
-                        String k = SecurityUtils.crlf(c.substring(0, i)).trim();
-                        String v = SecurityUtils.crlf(c.substring(i+1));
-                        return new Cookie(k, v);
-                    }
-                })
-                .filter(c -> c != null)
-                .toArray(Cookie[]::new);
+            rc = getCookieProcessor().parseCookieHeader(String.join("; ", request.getCookies()));
         }
 
         return Stream.concat(Arrays.stream(rhc), Arrays.stream(rc)).toArray(Cookie[]::new);
diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java
index b76fd216e..ea8ef4a1a 100644
--- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java
@@ -90,6 +90,7 @@ public abstract class AwsHttpServletRequest implements HttpServletRequest {
     private String queryString;
     private Map<String, List<Part>> multipartFormParameters;
     private Map<String, List<String>> urlEncodedFormParameters;
+    private CookieProcessor cookieProcessor;
 
     protected AwsHttpServletResponse response;
     protected AwsLambdaServletContainerHandler containerHandler;
@@ -295,12 +296,7 @@ public void setServletContext(ServletContext context) {
      * @return An array of Cookie objects from the header
      */
     protected Cookie[] parseCookieHeaderValue(String headerValue) {
-        List<HeaderValue> parsedHeaders = this.parseHeaderValue(headerValue,  ";", ",");
-
-        return parsedHeaders.stream()
-                            .filter(e -> e.getKey() != null)
-                            .map(e -> new Cookie(SecurityUtils.crlf(e.getKey()), SecurityUtils.crlf(e.getValue())))
-                            .toArray(Cookie[]::new);
+        return getCookieProcessor().parseCookieHeader(headerValue);
     }
 
 
@@ -512,6 +508,13 @@ protected Map<String, List<String>> getFormUrlEncodedParametersMap() {
         return urlEncodedFormParameters;
     }
 
+     protected CookieProcessor getCookieProcessor(){
+        if (cookieProcessor == null) {
+            cookieProcessor = new AwsCookieProcessor();
+        }
+        return cookieProcessor;
+    }
+
     @Override
     public Collection<Part> getParts()
             throws IOException, ServletException {
diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletResponse.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletResponse.java
index f82d062a7..86a72ead6 100644
--- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletResponse.java
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletResponse.java
@@ -70,6 +70,7 @@ public class AwsHttpServletResponse
     private CountDownLatch writersCountDownLatch;
     private HttpServletRequest request;
     private boolean isCommitted = false;
+    private CookieProcessor cookieProcessor;
 
     private Logger log = LoggerFactory.getLogger(AwsHttpServletResponse.class);
 
@@ -102,33 +103,7 @@ public void addCookie(Cookie cookie) {
         if (request != null && request.getDispatcherType() == DispatcherType.INCLUDE && isCommitted()) {
             throw new IllegalStateException("Cannot add Cookies for include request when response is committed");
         }
-        String cookieData = cookie.getName() + "=" + cookie.getValue();
-        if (cookie.getPath() != null) {
-            cookieData += "; Path=" + cookie.getPath();
-        }
-        if (cookie.getSecure()) {
-            cookieData += "; Secure";
-        }
-        if (cookie.isHttpOnly()) {
-            cookieData += "; HttpOnly";
-        }
-        if (cookie.getDomain() != null && !"".equals(cookie.getDomain().trim())) {
-            cookieData += "; Domain=" + cookie.getDomain();
-        }
-
-        if (cookie.getMaxAge() > 0) {
-            cookieData += "; Max-Age=" + cookie.getMaxAge();
-
-            // we always set the timezone to GMT
-            TimeZone gmtTimeZone = TimeZone.getTimeZone(COOKIE_DEFAULT_TIME_ZONE);
-            Calendar currentTimestamp = Calendar.getInstance(gmtTimeZone);
-            currentTimestamp.add(Calendar.SECOND, cookie.getMaxAge());
-            SimpleDateFormat cookieDateFormatter = new SimpleDateFormat(HEADER_DATE_PATTERN);
-            cookieDateFormatter.setTimeZone(gmtTimeZone);
-            cookieData += "; Expires=" + cookieDateFormatter.format(currentTimestamp.getTime());
-        }
-
-        setHeader(HttpHeaders.SET_COOKIE, cookieData, false);
+        setHeader(HttpHeaders.SET_COOKIE, getCookieProcessor().generateHeader(cookie), false);
     }
 
 
@@ -500,6 +475,12 @@ AwsProxyRequest getAwsProxyRequest() {
         return (AwsProxyRequest)request.getAttribute(API_GATEWAY_EVENT_PROPERTY);
     }
 
+    CookieProcessor getCookieProcessor(){
+        if (cookieProcessor == null) {
+            cookieProcessor = new AwsCookieProcessor();
+        }
+        return cookieProcessor;
+    }
 
     //-------------------------------------------------------------
     // Methods - Private
diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/CookieProcessor.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/CookieProcessor.java
new file mode 100644
index 000000000..c59dc806a
--- /dev/null
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/CookieProcessor.java
@@ -0,0 +1,23 @@
+package com.amazonaws.serverless.proxy.internal.servlet;
+
+import jakarta.servlet.http.Cookie;
+
+public interface CookieProcessor {
+    /**
+     * Parse the provided cookie header value into an array of Cookie objects.
+     *
+     * @param cookieHeader The cookie header value string to parse, e.g., "SID=31d4d96e407aad42; lang=en-US"
+     * @return An array of Cookie objects parsed from the cookie header value
+     */
+    Cookie[] parseCookieHeader(String cookieHeader);
+
+    /**
+     * Generate the Set-Cookie HTTP header value for the given Cookie.
+     *
+     * @param cookie The cookie for which the header will be generated
+     * @return The header value in a form that can be added directly to the response
+     */
+    String generateHeader(Cookie cookie);
+
+
+}

From 22bf190bf7172adc362b9f99280f17f1df2f6fbb Mon Sep 17 00:00:00 2001
From: kibeom lee <70303094+2012160085@users.noreply.github.com>
Date: Mon, 23 Sep 2024 09:29:06 +0900
Subject: [PATCH 264/430] refactor: Use `java.time` API for thread-safe cookie
 expiration handling

- Replaced the usage of `SimpleDateFormat` with `DateTimeFormatter` to ensure thread-safe date formatting.
---
 .../internal/servlet/AwsCookieProcessor.java  | 22 ++++++-------------
 1 file changed, 7 insertions(+), 15 deletions(-)

diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsCookieProcessor.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsCookieProcessor.java
index 2a8496082..0293a3c61 100644
--- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsCookieProcessor.java
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsCookieProcessor.java
@@ -4,10 +4,9 @@
 import jakarta.servlet.http.Cookie;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-
-import java.text.DateFormat;
-import java.text.FieldPosition;
-import java.text.SimpleDateFormat;
+import java.time.Instant;
+import java.time.ZoneId;
+import java.time.format.DateTimeFormatter;
 import java.util.*;
 
 /**
@@ -32,16 +31,9 @@ public class AwsCookieProcessor implements CookieProcessor {
     // BitSet to validate domain characters
     static final BitSet domainValid = createDomainValidSet();
 
-    static final String COOKIE_DATE_PATTERN = "EEE, dd MMM yyyy HH:mm:ss z";
-
-    // ThreadLocal to ensure thread-safe creation of DateFormat instances for each thread
-    static final ThreadLocal<DateFormat> COOKIE_DATE_FORMAT = ThreadLocal.withInitial(() -> {
-        DateFormat df = new SimpleDateFormat(COOKIE_DATE_PATTERN, Locale.US);
-        df.setTimeZone(TimeZone.getTimeZone("GMT"));
-        return df;
-    });
+    static final DateTimeFormatter COOKIE_DATE_FORMATTER = DateTimeFormatter.RFC_1123_DATE_TIME.withZone(ZoneId.of("GMT"));
 
-    static final String ANCIENT_DATE = COOKIE_DATE_FORMAT.get().format(new Date(10000));
+    static final String ANCIENT_DATE = COOKIE_DATE_FORMATTER.format(Instant.ofEpochMilli(10000));
 
     static BitSet createTokenValidSet() {
         BitSet tokenSet = new BitSet(128);
@@ -127,8 +119,8 @@ public String generateHeader(Cookie cookie) {
             if (maxAge == 0) {
                 header.append(ANCIENT_DATE);
             } else {
-                COOKIE_DATE_FORMAT.get().format(
-                        new Date(System.currentTimeMillis() + maxAge * 1000L), header, new FieldPosition(0));
+                Instant expiresAt = Instant.now().plusSeconds(maxAge);
+                header.append(COOKIE_DATE_FORMATTER.format(expiresAt));
                 header.append("; Max-Age=").append(maxAge);
             }
         }

From 4ab26c702f33528acd89957ade751524b396b88c Mon Sep 17 00:00:00 2001
From: kibeom lee <70303094+2012160085@users.noreply.github.com>
Date: Mon, 23 Sep 2024 09:31:34 +0900
Subject: [PATCH 265/430] refactor: Remove redundant check in cookie character
 validation

---
 .../serverless/proxy/internal/servlet/AwsCookieProcessor.java   | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsCookieProcessor.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsCookieProcessor.java
index 0293a3c61..7be78b03e 100644
--- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsCookieProcessor.java
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsCookieProcessor.java
@@ -262,6 +262,6 @@ private boolean isToken(String s) {
     }
 
     private boolean isValidCookieChar(char c) {
-        return !(c < 0x21 || c > 0x7E ||  c == 0x22 || c == 0x2c || c == 0x3b || c == 0x5c || c == 0x7f);
+        return !(c < 0x21 || c > 0x7E ||  c == 0x22 || c == 0x2c || c == 0x3b || c == 0x5c);
     }
 }

From 5d4a2316a631df4e77899a7dcf3b75651f33eecb Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Fri, 27 Sep 2024 12:22:45 +0200
Subject: [PATCH 266/430] chore: remove --enable-preview (fixes #1061)

---
 samples/springboot3/pet-store-native/Dockerfile | 2 +-
 samples/springboot3/pet-store-native/pom.xml    | 3 ++-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/samples/springboot3/pet-store-native/Dockerfile b/samples/springboot3/pet-store-native/Dockerfile
index 8c3955861..30b77503b 100644
--- a/samples/springboot3/pet-store-native/Dockerfile
+++ b/samples/springboot3/pet-store-native/Dockerfile
@@ -14,7 +14,7 @@ RUN mv graalvm-community-openjdk-${GRAAL_VERSION}* /usr/lib/graalvm
 ENV JAVA_HOME /usr/lib/graalvm
 
 # Maven
-ENV MVN_VERSION 3.9.6
+ENV MVN_VERSION 3.9.9
 ENV MVN_FOLDERNAME apache-maven-${MVN_VERSION}
 ENV MVN_FILENAME apache-maven-${MVN_VERSION}-bin.tar.gz
 RUN curl -4 -L https://archive.apache.org/dist/maven/maven-3/${MVN_VERSION}/binaries/${MVN_FILENAME} | tar -xvz
diff --git a/samples/springboot3/pet-store-native/pom.xml b/samples/springboot3/pet-store-native/pom.xml
index e8c1fbc3f..fec299574 100644
--- a/samples/springboot3/pet-store-native/pom.xml
+++ b/samples/springboot3/pet-store-native/pom.xml
@@ -76,7 +76,8 @@
 						<artifactId>native-maven-plugin</artifactId>
 						<configuration>
 							<buildArgs>
-								<buildArg>--enable-url-protocols=http --enable-preview -march=compatibility</buildArg>
+								<buildArg>--enable-url-protocols=http</buildArg>
+								<buildArg>-march=compatibility</buildArg>
 							</buildArgs>
 						</configuration>
 						<executions>

From 1770ccac825810476865ae4445cdb808fe667b9c Mon Sep 17 00:00:00 2001
From: kibeom lee <70303094+2012160085@users.noreply.github.com>
Date: Sat, 28 Sep 2024 03:33:17 +0900
Subject: [PATCH 267/430] refactor: added helper methods to simplify cookie
 attribute appending.

---
 .../internal/servlet/AwsCookieProcessor.java  | 46 +++++++++++--------
 1 file changed, 26 insertions(+), 20 deletions(-)

diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsCookieProcessor.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsCookieProcessor.java
index 7be78b03e..133d07edb 100644
--- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsCookieProcessor.java
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsCookieProcessor.java
@@ -17,6 +17,7 @@ public class AwsCookieProcessor implements CookieProcessor {
     // Cookie attribute constants
     static final String COOKIE_COMMENT_ATTR = "Comment";
     static final String COOKIE_DOMAIN_ATTR = "Domain";
+    static final String COOKIE_EXPIRES_ATTR = "Expires";
     static final String COOKIE_MAX_AGE_ATTR = "Max-Age";
     static final String COOKIE_PATH_ATTR = "Path";
     static final String COOKIE_SECURE_ATTR = "Secure";
@@ -114,45 +115,42 @@ public String generateHeader(Cookie cookie) {
         }
 
         int maxAge = cookie.getMaxAge();
-        if (maxAge > -1) {
-            header.append("; Expires=");
-            if (maxAge == 0) {
-                header.append(ANCIENT_DATE);
-            } else {
-                Instant expiresAt = Instant.now().plusSeconds(maxAge);
-                header.append(COOKIE_DATE_FORMATTER.format(expiresAt));
-                header.append("; Max-Age=").append(maxAge);
-            }
+        if (maxAge == 0) {
+            appendAttribute(header, COOKIE_EXPIRES_ATTR, ANCIENT_DATE);
+        } else if (maxAge > 0){
+            Instant expiresAt = Instant.now().plusSeconds(maxAge);
+            appendAttribute(header, COOKIE_EXPIRES_ATTR, COOKIE_DATE_FORMATTER.format(expiresAt));
+            appendAttribute(header, COOKIE_MAX_AGE_ATTR, String.valueOf(maxAge));
         }
 
         String domain = cookie.getDomain();
         if (domain != null && !domain.isEmpty()) {
             validateDomain(domain);
-            header.append("; Domain=").append(domain);
+            appendAttribute(header, COOKIE_DOMAIN_ATTR, domain);
         }
 
         String path = cookie.getPath();
         if (path != null && !path.isEmpty()) {
             validatePath(path);
-            header.append("; Path=").append(path);
+            appendAttribute(header, COOKIE_PATH_ATTR, path);
         }
 
         if (cookie.getSecure()) {
-            header.append("; Secure");
+            appendAttributeWithoutValue(header, COOKIE_SECURE_ATTR);
         }
 
         if (cookie.isHttpOnly()) {
-            header.append("; HttpOnly");
+            appendAttributeWithoutValue(header, COOKIE_HTTP_ONLY_ATTR);
         }
 
         String sameSite = cookie.getAttribute(COOKIE_SAME_SITE_ATTR);
         if (sameSite != null) {
-            header.append("; SameSite=").append(sameSite);
+            appendAttribute(header, COOKIE_SAME_SITE_ATTR, sameSite);
         }
 
         String partitioned = cookie.getAttribute(COOKIE_PARTITIONED_ATTR);
         if (EMPTY_STRING.equals(partitioned)) {
-            header.append("; Partitioned");
+            appendAttributeWithoutValue(header, COOKIE_PARTITIONED_ATTR);
         }
 
         addAdditionalAttributes(cookie, header);
@@ -160,7 +158,18 @@ public String generateHeader(Cookie cookie) {
         return header.toString();
     }
 
-    private void addAdditionalAttributes(Cookie cookie, StringBuffer header) {
+    private void appendAttribute(StringBuilder header, String name, String value) {
+        header.append("; ").append(name);
+        if (!EMPTY_STRING.equals(value)) {
+            header.append('=').append(value);
+        }
+    }
+
+    private void appendAttributeWithoutValue(StringBuilder header, String name) {
+        header.append("; ").append(name);
+    }
+
+    private void addAdditionalAttributes(Cookie cookie, StringBuilder header) {
         for (Map.Entry<String, String> entry : cookie.getAttributes().entrySet()) {
             switch (entry.getKey()) {
                 case COOKIE_COMMENT_ATTR:
@@ -175,10 +184,7 @@ private void addAdditionalAttributes(Cookie cookie, StringBuffer header) {
                     break;
                 default:
                     validateAttribute(entry.getKey(), entry.getValue());
-                    header.append("; ").append(entry.getKey());
-                    if (!EMPTY_STRING.equals(entry.getValue())) {
-                        header.append('=').append(entry.getValue());
-                    }
+                    appendAttribute(header, entry.getKey(), entry.getValue());
                     break;
             }
         }

From dfcc006fe63cb7ff231625c359d02e628ac5d0f9 Mon Sep 17 00:00:00 2001
From: kibeom lee <70303094+2012160085@users.noreply.github.com>
Date: Sat, 28 Sep 2024 03:33:33 +0900
Subject: [PATCH 268/430] refactor: replaced StringBuffer with StringBuilder.

---
 .../serverless/proxy/internal/servlet/AwsCookieProcessor.java   | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsCookieProcessor.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsCookieProcessor.java
index 133d07edb..36ade344c 100644
--- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsCookieProcessor.java
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsCookieProcessor.java
@@ -105,7 +105,7 @@ private Cookie parseCookiePair(String cookiePair) {
 
     @Override
     public String generateHeader(Cookie cookie) {
-        StringBuffer header = new StringBuffer();
+        StringBuilder header = new StringBuilder();
         header.append(cookie.getName()).append('=');
 
         String value = cookie.getValue();

From d65d772e48e9112846b38bd1f8decca8de52762a Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 30 Sep 2024 04:22:26 +0000
Subject: [PATCH 269/430] chore(deps): bump
 org.apache.maven.plugins:maven-gpg-plugin

Bumps [org.apache.maven.plugins:maven-gpg-plugin](https://github.com/apache/maven-gpg-plugin) from 3.2.4 to 3.2.7.
- [Release notes](https://github.com/apache/maven-gpg-plugin/releases)
- [Commits](https://github.com/apache/maven-gpg-plugin/compare/maven-gpg-plugin-3.2.4...maven-gpg-plugin-3.2.7)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-gpg-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 25c610ae8..de22a5a74 100644
--- a/pom.xml
+++ b/pom.xml
@@ -292,7 +292,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-gpg-plugin</artifactId>
-                        <version>3.2.4</version>
+                        <version>3.2.7</version>
                         <executions>
                             <execution>
                                 <id>sign-artifacts</id>

From 8fef6b5d19ef0d6e36c1fd7a81a50a9ef3b707bc Mon Sep 17 00:00:00 2001
From: Nicolas PETERS <nicolas.peters@canal-plus.com>
Date: Sun, 20 Oct 2024 01:43:37 +0200
Subject: [PATCH 270/430] #1084: decode body if base64 is enable

---
 .../spring/AwsSpringHttpProcessingUtils.java  | 66 +++++++++++++++----
 ...DelegatingLambdaContainerHandlerTests.java | 51 +++++++++-----
 2 files changed, 89 insertions(+), 28 deletions(-)

diff --git a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtils.java b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtils.java
index c7e507f39..a0b59d010 100644
--- a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtils.java
+++ b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtils.java
@@ -1,24 +1,26 @@
 package com.amazonaws.serverless.proxy.spring;
 
 import java.io.InputStream;
+import java.nio.charset.Charset;
 import java.nio.charset.StandardCharsets;
-import java.util.Iterator;
+import java.nio.charset.UnsupportedCharsetException;
+import java.util.Base64;
 import java.util.Map;
 import java.util.Map.Entry;
-import java.util.Set;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
 
+import org.apache.commons.io.Charsets;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.springframework.cloud.function.serverless.web.ServerlessHttpServletRequest;
 import org.springframework.cloud.function.serverless.web.ServerlessMVC;
+import org.springframework.http.HttpHeaders;
 import org.springframework.util.CollectionUtils;
 import org.springframework.util.FileCopyUtils;
 import org.springframework.util.MultiValueMapAdapter;
 import org.springframework.util.StringUtils;
 
-import com.amazonaws.serverless.proxy.AsyncInitializationWrapper;
 import com.amazonaws.serverless.proxy.AwsHttpApiV2SecurityContextWriter;
 import com.amazonaws.serverless.proxy.AwsProxySecurityContextWriter;
 import com.amazonaws.serverless.proxy.RequestReader;
@@ -120,10 +122,14 @@ private static HttpServletRequest generateRequest1(String request, Context lambd
 			MultiValueMapAdapter headers = new MultiValueMapAdapter(v1Request.getMultiValueHeaders());
 			httpRequest.setHeaders(headers);
 		}
-		if (StringUtils.hasText(v1Request.getBody())) {
-			httpRequest.setContentType("application/json");
-			httpRequest.setContent(v1Request.getBody().getBytes(StandardCharsets.UTF_8));
-		}
+        if (StringUtils.hasText(v1Request.getBody())) {
+            if (v1Request.isBase64Encoded()) {
+                httpRequest.setContent(Base64.getMimeDecoder().decode(v1Request.getBody()));
+            } else {
+                Charset charseEncoding = parseCharacterEncoding(v1Request.getHeaders().get(HttpHeaders.CONTENT_TYPE));
+                httpRequest.setContent(v1Request.getBody().getBytes(charseEncoding));
+            }
+        }
 		if (v1Request.getRequestContext() != null) {
 			httpRequest.setAttribute(RequestReader.API_GATEWAY_CONTEXT_PROPERTY, v1Request.getRequestContext());
 			httpRequest.setAttribute(RequestReader.ALB_CONTEXT_PROPERTY, v1Request.getRequestContext().getElb());
@@ -149,11 +155,15 @@ private static HttpServletRequest generateRequest2(String request, Context lambd
 		populateQueryStringparameters(v2Request.getQueryStringParameters(), httpRequest);
 		
 		v2Request.getHeaders().forEach(httpRequest::setHeader);
-		
-		if (StringUtils.hasText(v2Request.getBody())) {
-			httpRequest.setContentType("application/json");
-			httpRequest.setContent(v2Request.getBody().getBytes(StandardCharsets.UTF_8));
-		}
+
+        if (StringUtils.hasText(v2Request.getBody())) {
+            if (v2Request.isBase64Encoded()) {
+                httpRequest.setContent(Base64.getMimeDecoder().decode(v2Request.getBody()));
+            } else {
+                Charset charseEncoding = parseCharacterEncoding(v2Request.getHeaders().get(HttpHeaders.CONTENT_TYPE));
+                httpRequest.setContent(v2Request.getBody().getBytes(charseEncoding));
+            }
+        }
 		httpRequest.setAttribute(RequestReader.HTTP_API_CONTEXT_PROPERTY, v2Request.getRequestContext());
 		httpRequest.setAttribute(RequestReader.HTTP_API_STAGE_VARS_PROPERTY, v2Request.getStageVariables());
 		httpRequest.setAttribute(RequestReader.HTTP_API_EVENT_PROPERTY, v2Request);
@@ -180,4 +190,36 @@ private static <T> T readValue(String json, Class<T> clazz, ObjectMapper mapper)
 		}
 	}
 
+    static final String HEADER_KEY_VALUE_SEPARATOR = "=";
+    static final String HEADER_VALUE_SEPARATOR = ";";
+    static final String ENCODING_VALUE_KEY = "charset";
+    static protected Charset parseCharacterEncoding(String contentTypeHeader) {
+        // we only look at content-type because content-encoding should only be used for
+        // "binary" requests such as gzip/deflate.
+        Charset defaultCharset = StandardCharsets.UTF_8;
+        if (contentTypeHeader == null) {
+            return defaultCharset;
+        }
+
+        String[] contentTypeValues = contentTypeHeader.split(HEADER_VALUE_SEPARATOR);
+        if (contentTypeValues.length <= 1) {
+            return defaultCharset;
+        }
+
+        for (String contentTypeValue : contentTypeValues) {
+            if (contentTypeValue.trim().startsWith(ENCODING_VALUE_KEY)) {
+                String[] encodingValues = contentTypeValue.split(HEADER_KEY_VALUE_SEPARATOR);
+                if (encodingValues.length <= 1) {
+                    return defaultCharset;
+                }
+                try {
+                    return Charsets.toCharset(encodingValues[1]);
+                } catch (UnsupportedCharsetException ex) {
+                    return defaultCharset;
+                }
+            }
+        }
+        return defaultCharset;
+    }
+
 }
diff --git a/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/SpringDelegatingLambdaContainerHandlerTests.java b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/SpringDelegatingLambdaContainerHandlerTests.java
index 2fb85e7e7..61957fe24 100644
--- a/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/SpringDelegatingLambdaContainerHandlerTests.java
+++ b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/SpringDelegatingLambdaContainerHandlerTests.java
@@ -6,15 +6,11 @@
 import java.io.ByteArrayOutputStream;
 import java.io.InputStream;
 import java.nio.charset.StandardCharsets;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
+import java.util.*;
 
 import com.amazonaws.serverless.exceptions.ContainerInitializationException;
 import org.junit.jupiter.params.ParameterizedTest;
 import org.junit.jupiter.params.provider.MethodSource;
-import org.springframework.cloud.function.serverless.web.ServerlessServletContext;
 import org.springframework.util.CollectionUtils;
 
 import com.amazonaws.serverless.proxy.spring.servletapp.MessageData;
@@ -214,7 +210,7 @@ public static Collection<String> data() {
     public void validateComplesrequest(String jsonEvent) throws Exception {
         initServletAppTest();
         InputStream targetStream = new ByteArrayInputStream(this.generateHttpRequest(jsonEvent, "POST", 
-        		"/foo/male/list/24", "{\"name\":\"bob\"}", null));
+        		"/foo/male/list/24", "{\"name\":\"bob\"}", false,null));
         ByteArrayOutputStream output = new ByteArrayOutputStream();
         handler.handleRequest(targetStream, output, null);
         Map result = mapper.readValue(output.toString(StandardCharsets.UTF_8), Map.class);
@@ -229,7 +225,7 @@ public void validateComplesrequest(String jsonEvent) throws Exception {
     @ParameterizedTest
     public void testAsyncPost(String jsonEvent) throws Exception {
         initServletAppTest();
-        InputStream targetStream = new ByteArrayInputStream(this.generateHttpRequest(jsonEvent, "POST", "/async", "{\"name\":\"bob\"}", null));
+        InputStream targetStream = new ByteArrayInputStream(this.generateHttpRequest(jsonEvent, "POST", "/async", "{\"name\":\"bob\"}",false, null));
         ByteArrayOutputStream output = new ByteArrayOutputStream();
         handler.handleRequest(targetStream, output, null);
         Map result = mapper.readValue(output.toString(StandardCharsets.UTF_8), Map.class);
@@ -242,7 +238,7 @@ public void testAsyncPost(String jsonEvent) throws Exception {
     public void testValidate400(String jsonEvent) throws Exception {
         initServletAppTest();
         UserData ud = new UserData();
-        InputStream targetStream = new ByteArrayInputStream(this.generateHttpRequest(jsonEvent, "POST", "/validate", mapper.writeValueAsString(ud), null));
+        InputStream targetStream = new ByteArrayInputStream(this.generateHttpRequest(jsonEvent, "POST", "/validate", mapper.writeValueAsString(ud),false, null));
         ByteArrayOutputStream output = new ByteArrayOutputStream();
         handler.handleRequest(targetStream, output, null);
         Map result = mapper.readValue(output.toString(StandardCharsets.UTF_8), Map.class);
@@ -258,7 +254,7 @@ public void testValidate200(String jsonEvent) throws Exception {
         ud.setFirstName("bob");
         ud.setLastName("smith");
         ud.setEmail("foo@bar.com");
-        InputStream targetStream = new ByteArrayInputStream(this.generateHttpRequest(jsonEvent, "POST", "/validate", mapper.writeValueAsString(ud), null));
+        InputStream targetStream = new ByteArrayInputStream(this.generateHttpRequest(jsonEvent, "POST", "/validate", mapper.writeValueAsString(ud),false, null));
         ByteArrayOutputStream output = new ByteArrayOutputStream();
         handler.handleRequest(targetStream, output, null);
         Map result = mapper.readValue(output.toString(StandardCharsets.UTF_8), Map.class);
@@ -266,12 +262,31 @@ public void testValidate200(String jsonEvent) throws Exception {
         assertEquals("VALID", result.get("body"));
     }
 
+    @MethodSource("data")
+    @ParameterizedTest
+    public void testValidate200Base64(String jsonEvent) throws Exception {
+        initServletAppTest();
+        UserData ud = new UserData();
+        ud.setFirstName("bob");
+        ud.setLastName("smith");
+        ud.setEmail("foo@bar.com");
+        InputStream targetStream = new ByteArrayInputStream(this.generateHttpRequest(jsonEvent, "POST", "/validate",
+                Base64.getMimeEncoder().encodeToString(mapper.writeValueAsString(ud).getBytes()),true, null));
+
+        ByteArrayOutputStream output = new ByteArrayOutputStream();
+        handler.handleRequest(targetStream, output, null);
+        Map result = mapper.readValue(output.toString(StandardCharsets.UTF_8), Map.class);
+        assertEquals(200, result.get("statusCode"));
+        assertEquals("VALID", result.get("body"));
+    }
+
+
     @MethodSource("data")
     @ParameterizedTest
     public void messageObject_parsesObject_returnsCorrectMessage(String jsonEvent) throws Exception {
         initServletAppTest();
         InputStream targetStream = new ByteArrayInputStream(this.generateHttpRequest(jsonEvent, "POST", "/message",
-                mapper.writeValueAsString(new MessageData("test message")), null));
+                mapper.writeValueAsString(new MessageData("test message")),false, null));
         ByteArrayOutputStream output = new ByteArrayOutputStream();
         handler.handleRequest(targetStream, output, null);
         Map result = mapper.readValue(output.toString(StandardCharsets.UTF_8), Map.class);
@@ -279,6 +294,8 @@ public void messageObject_parsesObject_returnsCorrectMessage(String jsonEvent) t
         assertEquals("test message", result.get("body"));
     }
 
+
+
     @SuppressWarnings({"unchecked" })
     @MethodSource("data")
     @ParameterizedTest
@@ -289,7 +306,7 @@ void messageObject_propertiesInContentType_returnsCorrectMessage(String jsonEven
         headers.put(HttpHeaders.CONTENT_TYPE, "application/json;v=1");
         headers.put(HttpHeaders.ACCEPT, "application/json;v=1");
         InputStream targetStream = new ByteArrayInputStream(this.generateHttpRequest(jsonEvent, "POST", "/message",
-                mapper.writeValueAsString(new MessageData("test message")), headers));
+                mapper.writeValueAsString(new MessageData("test message")),false, headers));
 
         ByteArrayOutputStream output = new ByteArrayOutputStream();
         handler.handleRequest(targetStream, output, null);
@@ -297,19 +314,20 @@ void messageObject_propertiesInContentType_returnsCorrectMessage(String jsonEven
         assertEquals("test message", result.get("body"));
     }
 
-    private byte[] generateHttpRequest(String jsonEvent, String method, String path, String body, Map headers) throws Exception {
+    private byte[] generateHttpRequest(String jsonEvent, String method, String path, String body,boolean isBase64Encoded, Map headers) throws Exception {
         Map requestMap = mapper.readValue(jsonEvent, Map.class);
         if (requestMap.get("version").equals("2.0")) {
-            return generateHttpRequest2(requestMap, method, path, body, headers);
+            return generateHttpRequest2(requestMap, method, path, body, isBase64Encoded,headers);
         }
-        return generateHttpRequest(requestMap, method, path, body, headers);
+        return generateHttpRequest(requestMap, method, path, body,isBase64Encoded, headers);
     }
 
     @SuppressWarnings({ "unchecked"})
-    private byte[] generateHttpRequest(Map requestMap, String method, String path, String body, Map headers) throws Exception {
+    private byte[] generateHttpRequest(Map requestMap, String method, String path, String body,boolean isBase64Encoded, Map headers) throws Exception {
         requestMap.put("path", path);
         requestMap.put("httpMethod", method);
         requestMap.put("body", body);
+        requestMap.put("isBase64Encoded", isBase64Encoded);
         if (!CollectionUtils.isEmpty(headers)) {
             requestMap.put("headers", headers);
         }
@@ -317,12 +335,13 @@ private byte[] generateHttpRequest(Map requestMap, String method, String path, S
     }
 
     @SuppressWarnings({ "unchecked"})
-    private byte[] generateHttpRequest2(Map requestMap, String method, String path, String body, Map headers) throws Exception {
+    private byte[] generateHttpRequest2(Map requestMap, String method, String path, String body,boolean isBase64Encoded, Map headers) throws Exception {
         Map map = mapper.readValue(API_GATEWAY_EVENT_V2, Map.class);
         Map http = (Map) ((Map) map.get("requestContext")).get("http");
         http.put("path", path);
         http.put("method", method);
         map.put("body", body);
+        map.put("isBase64Encoded", isBase64Encoded);
         if (!CollectionUtils.isEmpty(headers)) {
             map.put("headers", headers);
         }

From 56edec9b9501b4ab0c8a97956f43d9ef8253c9a3 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Mon, 21 Oct 2024 08:56:55 +0200
Subject: [PATCH 271/430] chore(deps): Upgrade to Apache HttpClient 5.4

---
 .../src/main/resources/archetype-resources/build.gradle         | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 .../src/main/resources/archetype-resources/build.gradle         | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 .../src/main/resources/archetype-resources/build.gradle         | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 .../src/main/resources/archetype-resources/build.gradle         | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 pom.xml                                                         | 2 +-
 9 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
index bed896193..a00fa1958 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
@@ -22,7 +22,7 @@ dependencies {
   }
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
-  testImplementation("org.apache.httpcomponents.client5:httpclient5:5.3.1")
+  testImplementation("org.apache.httpcomponents.client5:httpclient5:5.4")
   testImplementation(platform("org.junit:junit-bom:5.11.0"))
   testImplementation("org.junit.jupiter:junit-jupiter")
 }
diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
index f2367ba21..6e7e0a807 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
@@ -37,7 +37,7 @@
         <dependency>
             <groupId>org.apache.httpcomponents.client5</groupId>
             <artifactId>httpclient5</artifactId>
-            <version>5.3.1</version>
+            <version>5.4</version>
             <scope>test</scope>
         </dependency>
 
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
index 145531587..d7a2b2279 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
@@ -18,7 +18,7 @@ dependencies {
   )
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
-  testImplementation("org.apache.httpcomponents.client5:httpclient5:5.3.1")
+  testImplementation("org.apache.httpcomponents.client5:httpclient5:5.4")
   testImplementation(platform("org.junit:junit-bom:5.11.0"))
   testImplementation("org.junit.jupiter:junit-jupiter")
 }
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
index 0e007227c..ba7626bd1 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
@@ -38,7 +38,7 @@
         <dependency>
             <groupId>org.apache.httpcomponents.client5</groupId>
             <artifactId>httpclient5</artifactId>
-            <version>5.3.1</version>
+            <version>5.4</version>
             <scope>test</scope>
         </dependency>
 
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
index 47925cfc3..8226c2861 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
@@ -14,7 +14,7 @@ dependencies {
   )
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
-  testImplementation("org.apache.httpcomponents.client5:httpclient5:5.3.1")
+  testImplementation("org.apache.httpcomponents.client5:httpclient5:5.4")
   testImplementation(platform("org.junit:junit-bom:5.11.0"))
   testImplementation("org.junit.jupiter:junit-jupiter")
 }
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
index 042d5a503..78ebeb23c 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
@@ -41,7 +41,7 @@
         <dependency>
             <groupId>org.apache.httpcomponents.client5</groupId>
             <artifactId>httpclient5</artifactId>
-            <version>5.3.1</version>
+            <version>5.4</version>
             <scope>test</scope>
         </dependency>
 
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
index 892b44d38..c31358b60 100644
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
@@ -42,7 +42,7 @@ dependencies {
   implementation ('com.amazonaws:aws-lambda-java-log4j2:1.6.0')
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
-  testImplementation("org.apache.httpcomponents.client5:httpclient5:5.3.1")
+  testImplementation("org.apache.httpcomponents.client5:httpclient5:5.4")
   testImplementation(platform("org.junit:junit-bom:5.11.0"))
   testImplementation("org.junit.jupiter:junit-jupiter")
   testImplementation('org.apache.struts:struts2-junit-plugin:7.0.0-M9') {
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
index 9b7fb33a7..1c4be66ea 100644
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
@@ -38,7 +38,7 @@
         <dependency>
             <groupId>org.apache.httpcomponents.client5</groupId>
             <artifactId>httpclient5</artifactId>
-            <version>5.3.1</version>
+            <version>5.4</version>
             <scope>test</scope>
         </dependency>
 
diff --git a/pom.xml b/pom.xml
index c00e4c5df..f2e5579e4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -119,7 +119,7 @@
         <dependency>
             <groupId>org.apache.httpcomponents.client5</groupId>
             <artifactId>httpclient5</artifactId>
-            <version>5.3.1</version>
+            <version>5.4</version>
             <scope>test</scope>
         </dependency>
 

From 3a59eff9adaf87b47ec98d33537f30a38fa27a63 Mon Sep 17 00:00:00 2001
From: Nicolas PETERS <nicolas.peters@canal-plus.com>
Date: Tue, 22 Oct 2024 00:45:51 +0200
Subject: [PATCH 272/430] #1084: default content-type: application/json

---
 .../proxy/spring/AwsSpringHttpProcessingUtils.java       | 9 ++++++++-
 .../SpringDelegatingLambdaContainerHandlerTests.java     | 1 +
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtils.java b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtils.java
index a0b59d010..9ce8f1dcd 100644
--- a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtils.java
+++ b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtils.java
@@ -123,6 +123,9 @@ private static HttpServletRequest generateRequest1(String request, Context lambd
 			httpRequest.setHeaders(headers);
 		}
         if (StringUtils.hasText(v1Request.getBody())) {
+			if (v1Request.getHeaders().get(HttpHeaders.CONTENT_TYPE)==null) {
+				httpRequest.setContentType("application/json");
+			}
             if (v1Request.isBase64Encoded()) {
                 httpRequest.setContent(Base64.getMimeDecoder().decode(v1Request.getBody()));
             } else {
@@ -156,8 +159,12 @@ private static HttpServletRequest generateRequest2(String request, Context lambd
 		
 		v2Request.getHeaders().forEach(httpRequest::setHeader);
 
+
         if (StringUtils.hasText(v2Request.getBody())) {
-            if (v2Request.isBase64Encoded()) {
+			if (v2Request.getHeaders().get(HttpHeaders.CONTENT_TYPE)==null) {
+				httpRequest.setContentType("application/json");
+			}
+			if (v2Request.isBase64Encoded()) {
                 httpRequest.setContent(Base64.getMimeDecoder().decode(v2Request.getBody()));
             } else {
                 Charset charseEncoding = parseCharacterEncoding(v2Request.getHeaders().get(HttpHeaders.CONTENT_TYPE));
diff --git a/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/SpringDelegatingLambdaContainerHandlerTests.java b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/SpringDelegatingLambdaContainerHandlerTests.java
index 61957fe24..f9f60e841 100644
--- a/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/SpringDelegatingLambdaContainerHandlerTests.java
+++ b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/SpringDelegatingLambdaContainerHandlerTests.java
@@ -345,6 +345,7 @@ private byte[] generateHttpRequest2(Map requestMap, String method, String path,
         if (!CollectionUtils.isEmpty(headers)) {
             map.put("headers", headers);
         }
+        System.out.println(map);
         return mapper.writeValueAsBytes(map);
     }
 }

From 712b8d8b327c3750f3a87ea7f8b1821343dcf68e Mon Sep 17 00:00:00 2001
From: mbfreder <mbfreder@amazon.com>
Date: Tue, 22 Oct 2024 10:49:47 -0700
Subject: [PATCH 273/430] remove logging of aws credentials

---
 .../proxy/spring/AwsSpringWebCustomRuntimeEventLoop.java      | 3 ---
 .../proxy/spring/AwsSpringWebRuntimeInitializer.java          | 4 ----
 2 files changed, 7 deletions(-)

diff --git a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringWebCustomRuntimeEventLoop.java b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringWebCustomRuntimeEventLoop.java
index db71d56c0..c015a8024 100644
--- a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringWebCustomRuntimeEventLoop.java
+++ b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringWebCustomRuntimeEventLoop.java
@@ -97,9 +97,6 @@ private void eventLoop(ServletWebServerApplicationContext context) {
 
 		Environment environment = context.getEnvironment();
 		logger.info("Starting AWSWebRuntimeEventLoop");
-		if (logger.isDebugEnabled()) {
-			logger.debug("AWS LAMBDA ENVIRONMENT: " + System.getenv());
-		}
 
 		String runtimeApi = environment.getProperty("AWS_LAMBDA_RUNTIME_API");
 		String eventUri = MessageFormat.format(LAMBDA_RUNTIME_URL_TEMPLATE, runtimeApi, LAMBDA_VERSION_DATE);
diff --git a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringWebRuntimeInitializer.java b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringWebRuntimeInitializer.java
index 4f47121df..992bc635e 100644
--- a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringWebRuntimeInitializer.java
+++ b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringWebRuntimeInitializer.java
@@ -38,11 +38,7 @@ public class AwsSpringWebRuntimeInitializer implements ApplicationContextInitial
 
 	@Override
 	public void initialize(GenericApplicationContext context) {
-		logger.info("AWS Environment: " + System.getenv());
 		Environment environment = context.getEnvironment();
-		if (logger.isDebugEnabled()) {
-			logger.debug("AWS Environment: " + System.getenv());
-		}
 		
 		if (context instanceof ServletWebServerApplicationContext && isCustomRuntime(environment)) {
 			if (context.getBeanFactory().getBeanNamesForType(AwsSpringWebCustomRuntimeEventLoop.class, false, false).length == 0) {

From b0754f3e9d0984ff59f7734f9000e54d4f265575 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Thu, 24 Oct 2024 16:56:04 +0200
Subject: [PATCH 274/430] chore(deps): Update Spring dependencies (framework to
 6.1.14, security to 6.3.4, boot to 3.3.5)

---
 aws-serverless-java-container-core/pom.xml                  | 2 +-
 aws-serverless-java-container-spring/pom.xml                | 4 ++--
 aws-serverless-java-container-springboot3/pom.xml           | 6 +++---
 .../src/main/resources/archetype-resources/build.gradle     | 4 ++--
 .../src/main/resources/archetype-resources/pom.xml          | 2 +-
 .../src/main/resources/archetype-resources/build.gradle     | 2 +-
 .../src/main/resources/archetype-resources/pom.xml          | 2 +-
 samples/spring/pet-store/build.gradle                       | 4 ++--
 samples/spring/pet-store/pom.xml                            | 2 +-
 samples/springboot3/alt-pet-store/build.gradle              | 2 +-
 samples/springboot3/alt-pet-store/pom.xml                   | 2 +-
 samples/springboot3/graphql-pet-store/pom.xml               | 2 +-
 samples/springboot3/pet-store-native/pom.xml                | 2 +-
 samples/springboot3/pet-store/build.gradle                  | 2 +-
 samples/springboot3/pet-store/pom.xml                       | 2 +-
 15 files changed, 20 insertions(+), 20 deletions(-)

diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml
index f3b93880a..6657df96f 100644
--- a/aws-serverless-java-container-core/pom.xml
+++ b/aws-serverless-java-container-core/pom.xml
@@ -60,7 +60,7 @@
         <dependency>
             <groupId>org.springframework.security</groupId>
             <artifactId>spring-security-web</artifactId>
-            <version>6.3.3</version>
+            <version>6.3.4</version>
             <scope>test</scope>
         </dependency>
     </dependencies>
diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml
index d160a911a..d133bb983 100644
--- a/aws-serverless-java-container-spring/pom.xml
+++ b/aws-serverless-java-container-spring/pom.xml
@@ -16,8 +16,8 @@
     </parent>
 
     <properties>
-        <spring.version>6.1.13</spring.version>
-        <spring-security.version>6.3.3</spring-security.version>
+        <spring.version>6.1.14</spring.version>
+        <spring-security.version>6.3.4</spring-security.version>
     </properties>
 
     <dependencies>
diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml
index 953e8bdb0..b06a34996 100644
--- a/aws-serverless-java-container-springboot3/pom.xml
+++ b/aws-serverless-java-container-springboot3/pom.xml
@@ -15,9 +15,9 @@
     <version>2.1.0-SNAPSHOT</version>
 
     <properties>
-        <spring.version>6.1.13</spring.version>
-        <springboot.version>3.3.4</springboot.version>
-        <springsecurity.version>6.3.3</springsecurity.version>
+        <spring.version>6.1.14</spring.version>
+        <springboot.version>3.3.5</springboot.version>
+        <springsecurity.version>6.3.4</springsecurity.version>
     </properties>
 
     <dependencies>
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
index d7a2b2279..7ea0c5790 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
@@ -7,8 +7,8 @@ repositories {
 
 dependencies {
   implementation (
-          'org.springframework:spring-webmvc:6.1.13',
-          'org.springframework:spring-context:6.1.13',
+          'org.springframework:spring-webmvc:6.1.14',
+          'org.springframework:spring-context:6.1.14',
           'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)',
           'org.apache.logging.log4j:log4j-core:2.24.0',
           'org.apache.logging.log4j:log4j-api:2.24.0',
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
index ba7626bd1..d59721621 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
@@ -16,7 +16,7 @@
     <properties>
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
-        <spring.version>6.1.13</spring.version>
+        <spring.version>6.1.14</spring.version>
         <junit.version>5.11.0</junit.version>
         <log4j.version>2.24.0</log4j.version>
     </properties>
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
index 8226c2861..9877ece33 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
@@ -9,7 +9,7 @@ repositories {
 
 dependencies {
   implementation (
-          'org.springframework.boot:spring-boot-starter-web:3.3.4',
+          'org.springframework.boot:spring-boot-starter-web:3.3.5',
           'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)',
   )
 
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
index 78ebeb23c..1d8b963d6 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
@@ -16,7 +16,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.3.4</version>
+        <version>3.3.5</version>
     </parent>
 
     <properties>
diff --git a/samples/spring/pet-store/build.gradle b/samples/spring/pet-store/build.gradle
index ba627f2e8..eedeaafbd 100644
--- a/samples/spring/pet-store/build.gradle
+++ b/samples/spring/pet-store/build.gradle
@@ -7,8 +7,8 @@ repositories {
 
 dependencies {
   implementation (
-          'org.springframework:spring-webmvc:6.1.13',
-          'org.springframework:spring-context:6.1.13',
+          'org.springframework:spring-webmvc:6.1.14',
+          'org.springframework:spring-context:6.1.14',
           'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)',
           'org.apache.logging.log4j:log4j-core:2.24.0',
           'org.apache.logging.log4j:log4j-api:2.24.0',
diff --git a/samples/spring/pet-store/pom.xml b/samples/spring/pet-store/pom.xml
index 9f2d29bba..9634fe9f7 100644
--- a/samples/spring/pet-store/pom.xml
+++ b/samples/spring/pet-store/pom.xml
@@ -24,7 +24,7 @@
     </licenses>
 
     <properties>
-        <spring.version>6.1.13</spring.version>
+        <spring.version>6.1.14</spring.version>
         <log4j.version>2.24.0</log4j.version>
         <maven.compiler.source>17</maven.compiler.source>
         <maven.compiler.target>17</maven.compiler.target>
diff --git a/samples/springboot3/alt-pet-store/build.gradle b/samples/springboot3/alt-pet-store/build.gradle
index 4e5bf5139..390ada6d4 100644
--- a/samples/springboot3/alt-pet-store/build.gradle
+++ b/samples/springboot3/alt-pet-store/build.gradle
@@ -9,7 +9,7 @@ repositories {
 
 dependencies {
   implementation (
-          implementation('org.springframework.boot:spring-boot-starter-web:3.3.4') {
+          implementation('org.springframework.boot:spring-boot-starter-web:3.3.5') {
             exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat'
           },
           'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)',
diff --git a/samples/springboot3/alt-pet-store/pom.xml b/samples/springboot3/alt-pet-store/pom.xml
index 28ab529c4..1bafb4797 100644
--- a/samples/springboot3/alt-pet-store/pom.xml
+++ b/samples/springboot3/alt-pet-store/pom.xml
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.3.4</version>
+        <version>3.3.5</version>
     </parent>
 
     <licenses>
diff --git a/samples/springboot3/graphql-pet-store/pom.xml b/samples/springboot3/graphql-pet-store/pom.xml
index 38440b377..dbb984dab 100644
--- a/samples/springboot3/graphql-pet-store/pom.xml
+++ b/samples/springboot3/graphql-pet-store/pom.xml
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.3.4</version>
+        <version>3.3.5</version>
     </parent>
 
     <licenses>
diff --git a/samples/springboot3/pet-store-native/pom.xml b/samples/springboot3/pet-store-native/pom.xml
index fec299574..42886dc30 100644
--- a/samples/springboot3/pet-store-native/pom.xml
+++ b/samples/springboot3/pet-store-native/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.springframework.boot</groupId>
 		<artifactId>spring-boot-starter-parent</artifactId>
-		<version>3.3.4</version>
+		<version>3.3.5</version>
 		<relativePath /> <!-- lookup parent from repository -->
 	</parent>
 	<groupId>com.amazonaws.serverless.sample</groupId>
diff --git a/samples/springboot3/pet-store/build.gradle b/samples/springboot3/pet-store/build.gradle
index 4e5bf5139..390ada6d4 100644
--- a/samples/springboot3/pet-store/build.gradle
+++ b/samples/springboot3/pet-store/build.gradle
@@ -9,7 +9,7 @@ repositories {
 
 dependencies {
   implementation (
-          implementation('org.springframework.boot:spring-boot-starter-web:3.3.4') {
+          implementation('org.springframework.boot:spring-boot-starter-web:3.3.5') {
             exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat'
           },
           'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)',
diff --git a/samples/springboot3/pet-store/pom.xml b/samples/springboot3/pet-store/pom.xml
index 56b0ab8a6..b259bcd2a 100644
--- a/samples/springboot3/pet-store/pom.xml
+++ b/samples/springboot3/pet-store/pom.xml
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.3.4</version>
+        <version>3.3.5</version>
     </parent>
 
     <licenses>

From 45df2b0aec44c44f96ccfa5649e59ea4e0c01f90 Mon Sep 17 00:00:00 2001
From: Jay Fennelly <jfennelly@commerce-architects.com>
Date: Sun, 27 Oct 2024 19:11:20 -0700
Subject: [PATCH 275/430] Fix AwsProxyRequestBuilder to be immutable when
 calling the alb() method

---
 .../testutils/AwsProxyRequestBuilder.java     |  76 +++++----
 .../testutils/AwsProxyRequestBuilderTest.java | 157 ++++++++++++++++++
 2 files changed, 199 insertions(+), 34 deletions(-)
 create mode 100644 aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/testutils/AwsProxyRequestBuilderTest.java

diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/testutils/AwsProxyRequestBuilder.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/testutils/AwsProxyRequestBuilder.java
index 40f0ae7ad..4d1bea427 100644
--- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/testutils/AwsProxyRequestBuilder.java
+++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/testutils/AwsProxyRequestBuilder.java
@@ -16,6 +16,7 @@
 import com.amazonaws.serverless.proxy.model.*;
 
 import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import org.apache.commons.io.IOUtils;
 import org.apache.hc.core5.http.ContentType;
@@ -49,7 +50,7 @@ public class AwsProxyRequestBuilder {
 
     private AwsProxyRequest request;
     private MultipartEntityBuilder multipartBuilder;
-
+    
     //-------------------------------------------------------------
     // Constructors
     //-------------------------------------------------------------
@@ -86,22 +87,41 @@ public AwsProxyRequestBuilder(String path, String httpMethod) {
         this.request.getRequestContext().setIdentity(identity);
     }
 
-
-    //-------------------------------------------------------------
+        //-------------------------------------------------------------
     // Methods - Public
     //-------------------------------------------------------------
 
     public AwsProxyRequestBuilder alb() {
-        this.request.setRequestContext(new AwsProxyRequestContext());
-        this.request.getRequestContext().setElb(new AlbContext());
-        this.request.getRequestContext().getElb().setTargetGroupArn(
+		/*
+		 * This method sets up the requestContext to look like an ALB request and also
+		 * re-encodes URL query params, since ALBs do not decode them. This now returns
+		 * a new AwsProxyRequestBuilder with the new query param state, so the original
+		 * builder maintains the original configured state and can be then be reused in
+		 * further unit tests. For now the simplest way to accomplish a deep copy is by
+		 * serializing to JSON then deserializing.
+		 */
+    	
+    	ObjectMapper objectMapper = new ObjectMapper();
+    	AwsProxyRequest albRequest = null;
+    	try {
+    		String json = objectMapper.writeValueAsString(this.request);
+    		albRequest = objectMapper.readValue(json, AwsProxyRequest.class);
+    	} catch (JsonProcessingException jpe) {
+    		throw new RuntimeException(jpe);
+    	}
+    	
+        if (albRequest.getRequestContext() == null) {
+        	albRequest.setRequestContext(new AwsProxyRequestContext());
+        }
+        albRequest.getRequestContext().setElb(new AlbContext());
+        albRequest.getRequestContext().getElb().setTargetGroupArn(
                 "arn:aws:elasticloadbalancing:us-east-1:123456789012:targetgroup/lambda-target/d6190d154bc908a5"
         );
 
         // ALB does not decode query string parameters so we re-encode them all
-        if (request.getMultiValueQueryStringParameters() != null) {
+        if (albRequest.getMultiValueQueryStringParameters() != null) {
             MultiValuedTreeMap<String, String> newQs = new MultiValuedTreeMap<>();
-            for (Map.Entry<String, List<String>> e : request.getMultiValueQueryStringParameters().entrySet()) {
+            for (Map.Entry<String, List<String>> e : albRequest.getMultiValueQueryStringParameters().entrySet()) {
                 for (String v : e.getValue()) {
                     try {
                         // this is a terrible hack. In our Spring tests we use the comma as a control character for lists
@@ -114,9 +134,9 @@ public AwsProxyRequestBuilder alb() {
                     }
                 }
             }
-            request.setMultiValueQueryStringParameters(newQs);
+            albRequest.setMultiValueQueryStringParameters(newQs);
         }
-        return this;
+        return new AwsProxyRequestBuilder(albRequest);
     }
 
     public AwsProxyRequestBuilder stage(String stageName) {
@@ -142,6 +162,9 @@ public AwsProxyRequestBuilder json() {
 
 
     public AwsProxyRequestBuilder form(String key, String value) {
+        if (key == null || value == null) {
+            throw new IllegalArgumentException("form() does not support null key or value");
+        }
         if (request.getMultiValueHeaders() == null) {
             request.setMultiValueHeaders(new Headers());
         }
@@ -150,7 +173,12 @@ public AwsProxyRequestBuilder form(String key, String value) {
         if (body == null) {
             body = "";
         }
-        body += (body.equals("")?"":"&") + key + "=" + value;
+        // URL-encode key and value to form expected body of a form post
+        try {
+            body += (body.equals("") ? "" : "&") + URLEncoder.encode(key, "UTF-8") + "=" + URLEncoder.encode(value, "UTF-8");
+        } catch (UnsupportedEncodingException ex) {
+            throw new RuntimeException("Could not encode form parameter: " + key + "=" + value, ex);
+        }
         request.setBody(body);
         return this;
     }
@@ -214,35 +242,15 @@ public AwsProxyRequestBuilder multiValueQueryString(MultiValuedTreeMap<String, S
         return this;
     }
 
-
     public AwsProxyRequestBuilder queryString(String key, String value) {
         if (this.request.getMultiValueQueryStringParameters() == null) {
             this.request.setMultiValueQueryStringParameters(new MultiValuedTreeMap<>());
         }
 
-        if (request.getRequestSource() == RequestSource.API_GATEWAY) {
-            this.request.getMultiValueQueryStringParameters().add(key, value);
-        }
-        // ALB does not decode parameters automatically like API Gateway.
-        if (request.getRequestSource() == RequestSource.ALB) {
-            try {
-                //if (URLDecoder.decode(value, ContainerConfig.DEFAULT_CONTENT_CHARSET).equals(value)) {
-                // TODO: Assume we are always given an unencoded value, smarter check here to encode
-                // only if necessary
-                this.request.getMultiValueQueryStringParameters().add(
-                        key,
-                        URLEncoder.encode(value, ContainerConfig.DEFAULT_CONTENT_CHARSET)
-                );
-                //}
-            } catch (UnsupportedEncodingException e) {
-                throw new RuntimeException(e);
-            }
-
-        }
+        this.request.getMultiValueQueryStringParameters().add(key, value);
         return this;
     }
 
-
     public AwsProxyRequestBuilder body(String body) {
         this.request.setBody(body);
         return this;
@@ -475,11 +483,11 @@ public HttpApiV2ProxyRequest toHttpApiV2Request() {
             request.getMultiValueQueryStringParameters().forEach((k, v) -> {
                 for (String s : v) {
                     rawQueryString.append("&");
-                    rawQueryString.append(k);
-                    rawQueryString.append("=");
                     try {
                         // same terrible hack as the alb() method. Because our spring tests use commas as control characters
                         // we do not encode it
+                        rawQueryString.append(URLEncoder.encode(k, "UTF-8").replaceAll("%2C", ","));
+                        rawQueryString.append("=");
                         rawQueryString.append(URLEncoder.encode(s, "UTF-8").replaceAll("%2C", ","));
                     } catch (UnsupportedEncodingException e) {
                         throw new RuntimeException(e);
diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/testutils/AwsProxyRequestBuilderTest.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/testutils/AwsProxyRequestBuilderTest.java
new file mode 100644
index 000000000..6263eeaf9
--- /dev/null
+++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/testutils/AwsProxyRequestBuilderTest.java
@@ -0,0 +1,157 @@
+package com.amazonaws.serverless.proxy.internal.testutils;
+
+import java.io.IOException;
+import java.net.URLEncoder;
+import jakarta.ws.rs.core.HttpHeaders;
+import jakarta.ws.rs.core.MediaType;
+
+import com.amazonaws.serverless.proxy.model.*;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.*;
+
+public class AwsProxyRequestBuilderTest {
+
+	private static final String TEST_KEY = "testkey";
+	private static final String TEST_VALUE = "testvalue";
+	private static final String TEST_KEY_FOR_ENCODING = "test@key 1";
+	private static final String TEST_VALUE_FOR_ENCODING = "test value!!";
+
+
+	void baseConstructorAsserts(AwsProxyRequest request) {
+		assertEquals(0, request.getMultiValueHeaders().size());
+		assertEquals(0, request.getHeaders().size());
+		assertEquals(0, request.getMultiValueQueryStringParameters().size());
+		assertNotNull(request.getRequestContext());
+		assertNotNull(request.getRequestContext().getRequestId());
+		assertNotNull(request.getRequestContext().getExtendedRequestId());
+		assertEquals("test", request.getRequestContext().getStage());
+		assertEquals("HTTP/1.1", request.getRequestContext().getProtocol());
+		assertNotNull(request.getRequestContext().getRequestTimeEpoch());
+		assertNotNull(request.getRequestContext().getIdentity());
+		assertEquals("127.0.0.1", request.getRequestContext().getIdentity().getSourceIp());
+	}
+
+	@Test
+	void constructor_path_httpMethod() {
+
+		AwsProxyRequestBuilder builder = new AwsProxyRequestBuilder("/path", "GET");
+		AwsProxyRequest request = builder.build();
+		assertEquals("/path", request.getPath());
+		assertEquals("GET", request.getHttpMethod());
+		baseConstructorAsserts(request);
+	}
+
+	@Test
+	void constructor_path_nullHttpMethod() {
+		AwsProxyRequestBuilder builder = new AwsProxyRequestBuilder("/path");
+		AwsProxyRequest request = builder.build();
+		assertNull(request.getHttpMethod());
+		assertEquals("/path", request.getPath());
+		baseConstructorAsserts(request);
+	}
+
+	@Test
+	void constructor_nullPath_nullHttpMethod() {
+		AwsProxyRequestBuilder builder = new AwsProxyRequestBuilder();
+		AwsProxyRequest request = builder.build();
+		assertNull(request.getHttpMethod());
+		assertNull(request.getPath());
+		baseConstructorAsserts(request);
+	}
+
+	@Test
+	void form_key_value() {
+		AwsProxyRequestBuilder builder = new AwsProxyRequestBuilder("/path", "POST");
+		builder.form(TEST_KEY, TEST_VALUE);
+		AwsProxyRequest request = builder.build();
+		assertEquals(1, request.getMultiValueHeaders().get(HttpHeaders.CONTENT_TYPE).size());
+		assertEquals(MediaType.APPLICATION_FORM_URLENCODED, request.getMultiValueHeaders().getFirst(HttpHeaders.CONTENT_TYPE));
+		assertNull(request.getHeaders().get(HttpHeaders.CONTENT_TYPE));
+		assertNotNull(request.getBody());
+		assertEquals(TEST_KEY + "=" + TEST_VALUE, request.getBody());
+	}
+
+	@Test
+	void form_key_nullKey_nullValue() {
+		AwsProxyRequestBuilder builder = new AwsProxyRequestBuilder("/path", "POST");
+		assertThrows(IllegalArgumentException.class, () -> builder.form(null, TEST_VALUE));
+		assertThrows(IllegalArgumentException.class, () -> builder.form(TEST_KEY, null));
+		assertThrows(IllegalArgumentException.class, () -> builder.form(null, null));
+	}
+
+	@Test
+	void form_keyEncoded_valueEncoded() throws IOException {
+		AwsProxyRequestBuilder builder = new AwsProxyRequestBuilder("/path", "POST");
+		builder.form(TEST_KEY_FOR_ENCODING, TEST_VALUE_FOR_ENCODING);
+		AwsProxyRequest request = builder.build();
+
+		assertEquals(1, request.getMultiValueHeaders().get(HttpHeaders.CONTENT_TYPE).size());
+		assertEquals(MediaType.APPLICATION_FORM_URLENCODED, request.getMultiValueHeaders().getFirst(HttpHeaders.CONTENT_TYPE));
+		assertNull(request.getHeaders().get(HttpHeaders.CONTENT_TYPE));
+		assertNotNull(request.getBody());
+		String expected = URLEncoder.encode(TEST_KEY_FOR_ENCODING, "UTF-8") + "=" + URLEncoder.encode(TEST_VALUE_FOR_ENCODING, "UTF-8");
+		assertEquals(expected, request.getBody());
+	}
+
+	@Test
+	void queryString_key_value() {
+		AwsProxyRequestBuilder builder = new AwsProxyRequestBuilder("/path", "POST");
+		builder.queryString(TEST_KEY, TEST_VALUE);
+		AwsProxyRequest request = builder.build();
+
+		assertNull(request.getQueryStringParameters());
+		assertEquals(1, request.getMultiValueQueryStringParameters().size());
+		assertEquals(TEST_KEY, request.getMultiValueQueryStringParameters().keySet().iterator().next());
+		assertEquals(TEST_VALUE, request.getMultiValueQueryStringParameters().get(TEST_KEY).get(0));
+		assertEquals(TEST_VALUE, request.getMultiValueQueryStringParameters().getFirst(TEST_KEY));
+	}
+
+	@Test
+	void queryString_keyNotEncoded_valueNotEncoded() {
+		// builder should not URL encode key or value for query string
+		// in the case of an ALB where values should be encoded, the builder alb() method will handle it
+		AwsProxyRequestBuilder builder = new AwsProxyRequestBuilder("/path", "POST");
+		builder.queryString(TEST_KEY_FOR_ENCODING, TEST_VALUE_FOR_ENCODING);
+		AwsProxyRequest request = builder.build();
+
+		assertNull(request.getQueryStringParameters());
+		assertEquals(1, request.getMultiValueQueryStringParameters().size());
+		assertEquals(TEST_KEY_FOR_ENCODING, request.getMultiValueQueryStringParameters().keySet().iterator().next());
+		assertEquals(TEST_VALUE_FOR_ENCODING, request.getMultiValueQueryStringParameters().get(TEST_KEY_FOR_ENCODING).get(0));
+		assertEquals(TEST_VALUE_FOR_ENCODING, request.getMultiValueQueryStringParameters().getFirst(TEST_KEY_FOR_ENCODING));
+	}
+
+	@Test
+	void queryString_alb_key_value() {
+		AwsProxyRequestBuilder builder = new AwsProxyRequestBuilder("/path", "POST");
+		builder.queryString(TEST_KEY, TEST_VALUE);
+		AwsProxyRequest request = builder.alb().build();
+
+		assertNull(request.getQueryStringParameters());
+		assertEquals(1, request.getMultiValueQueryStringParameters().size());
+		assertEquals(TEST_KEY, request.getMultiValueQueryStringParameters().keySet().iterator().next());
+		assertEquals(TEST_VALUE, request.getMultiValueQueryStringParameters().get(TEST_KEY).get(0));
+		assertEquals(TEST_VALUE, request.getMultiValueQueryStringParameters().getFirst(TEST_KEY));
+	}
+
+	@Test
+	void alb_keyEncoded_valueEncoded() throws IOException {
+		AwsProxyRequestBuilder builder = new AwsProxyRequestBuilder("/path", "POST");
+		MultiValuedTreeMap<String, String> map = new MultiValuedTreeMap<>();
+		map.add(TEST_KEY_FOR_ENCODING, TEST_VALUE_FOR_ENCODING);
+		builder.multiValueQueryString(map);
+		AwsProxyRequest request = builder.alb().build();
+
+		String expectedKey = URLEncoder.encode(TEST_KEY_FOR_ENCODING, "UTF-8");
+		String expectedValue = URLEncoder.encode(TEST_VALUE_FOR_ENCODING, "UTF-8");
+		assertEquals(1, request.getMultiValueQueryStringParameters().size());
+		assertEquals(expectedKey, request.getMultiValueQueryStringParameters().keySet().iterator().next());
+		assertEquals(expectedValue, request.getMultiValueQueryStringParameters().get(expectedKey).get(0));
+		assertEquals(expectedValue, request.getMultiValueQueryStringParameters().getFirst(expectedKey));
+		assertEquals(expectedKey, request.getMultiValueQueryStringParameters().keySet().iterator().next());
+		assertEquals(expectedValue, request.getMultiValueQueryStringParameters().get(expectedKey).get(0));
+		assertEquals(expectedValue, request.getMultiValueQueryStringParameters().getFirst(expectedKey));
+	}
+
+}

From 3ad77463f5f0504812fe061e7fd40b62051ea694 Mon Sep 17 00:00:00 2001
From: Jay Fennelly <jfennelly@commerce-architects.com>
Date: Sun, 27 Oct 2024 19:27:14 -0700
Subject: [PATCH 276/430] Clean up and add additional tests

---
 .../servlet/AwsHttpServletRequestTest.java    | 101 +++++++++++++++++-
 .../AwsProxyHttpServletRequestTest.java       |  15 ++-
 2 files changed, 104 insertions(+), 12 deletions(-)

diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequestTest.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequestTest.java
index 358d673a1..44d767440 100644
--- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequestTest.java
+++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequestTest.java
@@ -17,7 +17,6 @@
 import java.util.Base64;
 import java.util.List;
 import java.util.Map;
-import java.util.Arrays;
 
 
 public class AwsHttpServletRequestTest {
@@ -38,8 +37,12 @@ public class AwsHttpServletRequestTest {
             .queryString("one", "two").queryString("three", "four").build();
     private static final AwsProxyRequest queryStringNullValue = new AwsProxyRequestBuilder("/test", "GET")
             .queryString("one", "two").queryString("three", null).build();
+    private static final AwsProxyRequest queryStringEmptyValue = new AwsProxyRequestBuilder("/test", "GET")
+            .queryString("one", "two").queryString("three", "").build();
     private static final AwsProxyRequest encodedQueryString = new AwsProxyRequestBuilder("/test", "GET")
             .queryString("one", "two").queryString("json", "{\"name\":\"faisal\"}").build();
+    private static final AwsProxyRequest encodedQueryStringAlb = new AwsProxyRequestBuilder("/test", "GET")
+            .queryString("one", "two").queryString("json", "{\"name\":\"faisal\"}").alb().build();
     private static final AwsProxyRequest multipleParams = new AwsProxyRequestBuilder("/test", "GET")
             .queryString("one", "two").queryString("one", "three").queryString("json", "{\"name\":\"faisal\"}").build();
     private static final AwsProxyRequest formEncodedAndQueryString = new AwsProxyRequestBuilder("/test", "POST")
@@ -200,6 +203,20 @@ void queryString_generateQueryString_nullParameterIsEmpty() {
         assertTrue(parsedString.endsWith("three="));
     }
 
+    @Test
+    void queryString_generateQueryString_emptyParameterIsEmpty() {
+        AwsProxyHttpServletRequest request = new AwsProxyHttpServletRequest(queryStringEmptyValue, mockContext, null, config);
+        String parsedString = null;
+        try {
+            parsedString = request.generateQueryString(request.getAwsProxyRequest().getMultiValueQueryStringParameters(), true, config.getUriEncoding());
+        } catch (ServletException e) {
+            e.printStackTrace();
+            fail("Could not generate query string");
+        }
+
+        assertTrue(parsedString.endsWith("three="));
+    }
+
     @Test
     void queryStringWithEncodedParams_generateQueryString_validQuery() {
         AwsProxyHttpServletRequest request = new AwsProxyHttpServletRequest(encodedQueryString, mockContext, null, config);
@@ -216,6 +233,22 @@ void queryStringWithEncodedParams_generateQueryString_validQuery() {
         assertTrue(parsedString.contains("&") && parsedString.indexOf("&") > 0 && parsedString.indexOf("&") < parsedString.length());
     }
 
+    @Test
+    void queryStringWithEncodedParams_alb_generateQueryString_validQuery() {
+        AwsProxyHttpServletRequest request = new AwsProxyHttpServletRequest(encodedQueryStringAlb, mockContext, null, config);
+
+        String parsedString = null;
+        try {
+            parsedString = request.generateQueryString(request.getAwsProxyRequest().getMultiValueQueryStringParameters(), false, config.getUriEncoding());
+        } catch (ServletException e) {
+            e.printStackTrace();
+            fail("Could not generate query string");
+        }
+        assertTrue(parsedString.contains("one=two"));
+        assertTrue(parsedString.contains("json=%7B%22name%22%3A%22faisal%22%7D"));
+        assertTrue(parsedString.contains("&") && parsedString.indexOf("&") > 0 && parsedString.indexOf("&") < parsedString.length());
+    }
+
     @Test
     void queryStringWithMultipleValues_generateQueryString_validQuery() {
         AwsProxyHttpServletRequest request = new AwsProxyHttpServletRequest(multipleParams, mockContext, null, config);
@@ -265,6 +298,22 @@ void parameterMap_generateParameterMap_nullParameter() {
         assertTrue(paramMap.size() == 2);
     }
 
+    @Test
+    void parameterMap_generateParameterMap_emptyParameter() {
+        AwsProxyHttpServletRequest request = new AwsProxyHttpServletRequest(queryStringEmptyValue, mockContext, null, config);
+        Map<String, String[]> paramMap = null;
+        try {
+            paramMap = request.generateParameterMap(request.getAwsProxyRequest().getMultiValueQueryStringParameters(), config);
+        } catch (Exception e) {
+            e.printStackTrace();
+            fail("Could not generate parameter map");
+        }
+
+        assertArrayEquals(new String[]{"two"}, paramMap.get("one"));
+        assertArrayEquals(new String[]{""}, paramMap.get("three"));
+        assertTrue(paramMap.size() == 2);
+    }
+
     @Test
     void parameterMapWithEncodedParams_generateParameterMap_validQuery() {
         AwsProxyHttpServletRequest request = new AwsProxyHttpServletRequest(encodedQueryString, mockContext, null, config);
@@ -319,12 +368,32 @@ void parameterMap_generateParameterMap_formEncodedAndQueryString() {
     }
 
     @Test
-    void parameterMap_generateParameterMap_differentCasing() {
-        AwsProxyHttpServletRequest request = new AwsProxyHttpServletRequest(differentCasing, mockContext, null, config);
+    void parameterMap_generateParameterMap_differentCasing_caseSensitive() {
+    	ContainerConfig caseSensitiveConfig = ContainerConfig.defaultConfig();
+    	caseSensitiveConfig.setQueryStringCaseSensitive(true);
+    	AwsProxyHttpServletRequest request = new AwsProxyHttpServletRequest(differentCasing, mockContext, null, caseSensitiveConfig);
+        Map<String, String[]> paramMap = null;
+        try {
+            paramMap = request.generateParameterMap(request.getAwsProxyRequest().getMultiValueQueryStringParameters(), caseSensitiveConfig);
+        } catch (Exception e) {
+            e.printStackTrace();
+            fail("Could not generate parameter map");
+        }
+        assertArrayEquals(new String[] {"two", "three"}, paramMap.get("one"));
+        assertArrayEquals(new String[] {"four"}, paramMap.get("ONE"));
+        assertTrue(paramMap.size() == 2);
+    }
+
+    @Test
+    void parameterMap_generateParameterMap_differentCasing_caseInsensitive() {
+    	ContainerConfig caseInsensitiveConfig = ContainerConfig.defaultConfig();
+    	caseInsensitiveConfig.setQueryStringCaseSensitive(false);
+
+        AwsProxyHttpServletRequest request = new AwsProxyHttpServletRequest(differentCasing, mockContext, null, caseInsensitiveConfig);
 
         Map<String, String[]> paramMap = null;
         try {
-            paramMap = request.generateParameterMap(request.getAwsProxyRequest().getMultiValueQueryStringParameters(), config);
+            paramMap = request.generateParameterMap(request.getAwsProxyRequest().getMultiValueQueryStringParameters(), caseInsensitiveConfig);
         } catch (Exception e) {
             e.printStackTrace();
             fail("Could not generate parameter map");
@@ -346,6 +415,17 @@ void queryParamValues_getQueryParamValues() {
         assertNull(result2);
     }
 
+    @Test
+    void queryParamValues_getQueryParamValues_nullValue() {
+        AwsProxyHttpServletRequest request = new AwsProxyHttpServletRequest(new AwsProxyRequest(), mockContext, null);
+        MultiValuedTreeMap<String, String> map = new MultiValuedTreeMap<>();
+        map.add("test", null);
+        String[] result1 = request.getQueryParamValues(map, "test", true);
+        assertArrayEquals(new String[] {null}, result1);
+        String[] result2 = request.getQueryParamValues(map, "TEST", true);
+        assertNull(result2);
+    }
+
     @Test
     void queryParamValues_getQueryParamValues_caseInsensitive() {
         AwsProxyHttpServletRequest request = new AwsProxyHttpServletRequest(new AwsProxyRequest(), mockContext, null);
@@ -358,4 +438,17 @@ void queryParamValues_getQueryParamValues_caseInsensitive() {
         assertArrayEquals(new String[]{"test", "test2"}, result2);
     }
 
+    @Test
+    void queryParamValues_getQueryParamValues_multipleCaseInsensitive() {
+        AwsProxyHttpServletRequest request = new AwsProxyHttpServletRequest(new AwsProxyRequest(), mockContext, null);
+
+        MultiValuedTreeMap<String, String> map = new MultiValuedTreeMap<>();
+        map.add("test", "test");
+        map.add("TEST", "test2");
+        String[] result1 = request.getQueryParamValues(map, "test", false);
+        assertArrayEquals(new String[]{"test2"}, result1);
+        String[] result2 = request.getQueryParamValues(map, "TEST", false);
+        assertArrayEquals(new String[]{"test2"}, result2);
+    }
+
 }
diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequestTest.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequestTest.java
index 4edcf5241..a06066490 100644
--- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequestTest.java
+++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequestTest.java
@@ -34,6 +34,7 @@ public class AwsProxyHttpServletRequestTest {
     private static final String FORM_PARAM_NAME_VALUE = "Stef";
     private static final String FORM_PARAM_TEST = "test_cookie_param";
     private static final String QUERY_STRING_NAME_VALUE = "Bob";
+    private static final String QUERY_STRING_NAME = "name";
     private static final String REQUEST_SCHEME_HTTP = "http";
     private static final String USER_AGENT = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.61 Safari/537.36";
     private static final String REFERER = "https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox";
@@ -73,10 +74,9 @@ public class AwsProxyHttpServletRequestTest {
     }
 
     private static final AwsProxyRequestBuilder REQUEST_QUERY = new AwsProxyRequestBuilder("/hello", "POST")
-            .queryString(FORM_PARAM_NAME, QUERY_STRING_NAME_VALUE);
+            .queryString(QUERY_STRING_NAME, QUERY_STRING_NAME_VALUE);
     private static final AwsProxyRequestBuilder REQUEST_QUERY_EMPTY_VALUE = new AwsProxyRequestBuilder("/hello", "POST")
-            .queryString(FORM_PARAM_NAME, "");
-
+            .queryString(QUERY_STRING_NAME, "");
 
     public void initAwsProxyHttpServletRequestTest(String type) {
         requestType = type;
@@ -102,7 +102,7 @@ private HttpServletRequest getRequest(AwsProxyRequestBuilder req, Context lambda
         }
     }
 
-
+    
     @MethodSource("data")
     @ParameterizedTest
     void headers_getHeader_validRequest(String type) {
@@ -269,7 +269,7 @@ void queryParameters_getParameterMap_nonNull(String type) {
         HttpServletRequest request = getRequest(REQUEST_QUERY, null, null);
         assertNotNull(request);
         assertEquals(1, request.getParameterMap().size());
-        assertEquals(QUERY_STRING_NAME_VALUE, request.getParameterMap().get(FORM_PARAM_NAME)[0]);
+        assertEquals(QUERY_STRING_NAME_VALUE, request.getParameterMap().get(QUERY_STRING_NAME)[0]);
     }
 
     @MethodSource("data")
@@ -279,7 +279,7 @@ void queryParameters_getParameterMap_nonNull_EmptyParamValue(String type) {
         HttpServletRequest request = getRequest(REQUEST_QUERY_EMPTY_VALUE, null, null);
         assertNotNull(request);
         assertEquals(1, request.getParameterMap().size());
-        assertEquals("", request.getParameterMap().get(FORM_PARAM_NAME)[0]);
+        assertEquals("", request.getParameterMap().get(QUERY_STRING_NAME)[0]);
     }
 
     @MethodSource("data")
@@ -300,7 +300,7 @@ void queryParameters_getParameterNames_notNull(String type) {
         List<String> parameterNames = Collections.list(request.getParameterNames());
         assertNotNull(request);
         assertEquals(1, parameterNames.size());
-        assertTrue(parameterNames.contains(FORM_PARAM_NAME));
+        assertTrue(parameterNames.contains(QUERY_STRING_NAME));
     }
 
     @MethodSource("data")
@@ -470,7 +470,6 @@ void requestURL_getUrlWithContextPath_expectStageAsContextPath(String type) {
         LambdaContainerHandler.getContainerConfig().setUseStageAsServletContext(true);
         HttpServletRequest servletRequest = getRequest(req, null, null);
         String requestUrl = servletRequest.getRequestURL().toString();
-        System.out.println(requestUrl);
         assertTrue(requestUrl.contains("/test-stage/"));
         LambdaContainerHandler.getContainerConfig().setUseStageAsServletContext(false);
     }

From 7c05a6f6e63e43578b968294adda576c40329ccd Mon Sep 17 00:00:00 2001
From: Jay Fennelly <jfennelly@commerce-architects.com>
Date: Sun, 27 Oct 2024 19:37:15 -0700
Subject: [PATCH 277/430] Allow generateParameterMap to optionally decode query
 params (for ALB requests)

---
 .../servlet/AwsHttpServletRequest.java        | 68 ++++++++++++-------
 .../servlet/AwsHttpServletRequestTest.java    | 17 +++++
 2 files changed, 60 insertions(+), 25 deletions(-)

diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java
index ea8ef4a1a..84e4f96c5 100644
--- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java
@@ -584,7 +584,7 @@ private void addPart(Map<String, List<Part>> params, String fieldName, Part newP
 
     protected String[] getQueryParamValues(MultiValuedTreeMap<String, String> qs, String key, boolean isCaseSensitive) {
         List<String> value = getQueryParamValuesAsList(qs, key, isCaseSensitive);
-        if (value == null){
+        if (value == null) {
             return null;
         }
         return value.toArray(new String[0]);
@@ -607,39 +607,57 @@ protected List<String> getQueryParamValuesAsList(MultiValuedTreeMap<String, Stri
     }
 
     protected Map<String, String[]> generateParameterMap(MultiValuedTreeMap<String, String> qs, ContainerConfig config) {
+    	return generateParameterMap(qs, config, false);
+    }
+    
+    protected Map<String, String[]> generateParameterMap(MultiValuedTreeMap<String, String> qs, ContainerConfig config, boolean decodeQueryParams) {
         Map<String, String[]> output;
 
         Map<String, List<String>> formEncodedParams = getFormUrlEncodedParametersMap();
 
         if (qs == null) {
             // Just transform the List<String> values to String[]
-            output = formEncodedParams.entrySet().stream()
+            return formEncodedParams.entrySet().stream()
                 .collect(Collectors.toMap(Map.Entry::getKey, (e) -> e.getValue().toArray(new String[0])));
-        } else {
-            Map<String, List<String>> queryStringParams;
-            if (config.isQueryStringCaseSensitive()) {
-                queryStringParams = qs;
-            } else {
-                // If it's case insensitive, we check the entire map on every parameter
-                queryStringParams = qs.entrySet().stream().parallel().collect(
-                    Collectors.toMap(
-                        Map.Entry::getKey,
-                        e -> getQueryParamValuesAsList(qs, e.getKey(), false)
-                    ));
-            }
-
-            // Merge formEncodedParams and queryStringParams Maps
-            output = Stream.of(formEncodedParams, queryStringParams).flatMap(m -> m.entrySet().stream())
-                .collect(
-                    Collectors.toMap(
-                        Map.Entry::getKey,
-                        e -> e.getValue().toArray(new String[0]),
-                        // If a parameter is in both Maps, we merge the list of values (and ultimately transform to String[])
-                        (formParam, queryParam) -> Stream.of(formParam, queryParam).flatMap(Stream::of).toArray(String[]::new)
-                    ));
-
         }
 
+    	// decode all keys and values in map
+    	final MultiValuedTreeMap<String, String> decodedQs = new MultiValuedTreeMap<String, String>();
+    	if (decodeQueryParams) {
+    		for (Map.Entry<String, List<String>> entry : qs.entrySet()) {
+    			String k = decodeValueIfEncoded(entry.getKey());
+    			List<String> v = getQueryParamValuesAsList(qs, entry.getKey(), false).stream()
+						.map(AwsHttpServletRequest::decodeValueIfEncoded)
+						.collect(Collectors.toList());
+    			// addAll in case map has 2 keys that are identical once decoded
+    			decodedQs.addAll(k, v);
+			}
+    	} else {
+    		decodedQs.putAll(qs);
+    	}
+    	
+    	Map<String, List<String>> queryStringParams;
+        if (config.isQueryStringCaseSensitive()) {
+            queryStringParams = decodedQs;
+        } else {
+            // If it's case insensitive, we check the entire map on every parameter
+            queryStringParams = decodedQs.entrySet().stream().collect(
+                Collectors.toMap(
+                    Map.Entry::getKey,
+                    e -> getQueryParamValuesAsList(decodedQs, e.getKey(), false)
+                ));
+        }
+
+        // Merge formEncodedParams and queryStringParams Maps
+        output = Stream.of(formEncodedParams, queryStringParams).flatMap(m -> m.entrySet().stream())
+            .collect(
+                Collectors.toMap(
+                    Map.Entry::getKey,
+                    e -> e.getValue().toArray(new String[0]),
+                    // If a parameter is in both Maps, we merge the list of values (and ultimately transform to String[])
+                    (formParam, queryParam) -> Stream.of(formParam, queryParam).flatMap(Stream::of).toArray(String[]::new)
+                ));
+
         return output;
     }
 
diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequestTest.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequestTest.java
index 44d767440..179b58a1e 100644
--- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequestTest.java
+++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequestTest.java
@@ -331,6 +331,23 @@ void parameterMapWithEncodedParams_generateParameterMap_validQuery() {
         assertTrue(paramMap.size() == 2);
     }
 
+    @Test
+    void parameterMapWithEncodedParams_alb_generateParameterMap_validQuery() {
+        AwsProxyHttpServletRequest request = new AwsProxyHttpServletRequest(encodedQueryStringAlb, mockContext, null, config);
+
+        Map<String, String[]> paramMap = null;
+        try {
+            paramMap = request.generateParameterMap(request.getAwsProxyRequest().getMultiValueQueryStringParameters(), config, true);
+        } catch (Exception e) {
+            e.printStackTrace();
+            fail("Could not generate parameter map");
+        }
+
+        assertArrayEquals(new String[]{"two"}, paramMap.get("one"));
+        assertArrayEquals(new String[]{"{\"name\":\"faisal\"}"}, paramMap.get("json"));
+        assertTrue(paramMap.size() == 2);
+    }
+
     @Test
     void parameterMapWithMultipleValues_generateParameterMap_validQuery() {
         AwsProxyHttpServletRequest request = new AwsProxyHttpServletRequest(multipleParams, mockContext, null, config);

From 916f2a25e6c0380a0bfbe7f3a027b4e4c9a49b21 Mon Sep 17 00:00:00 2001
From: Jay Fennelly <jfennelly@commerce-architects.com>
Date: Sun, 27 Oct 2024 19:39:39 -0700
Subject: [PATCH 278/430] Update unit tests to test decoding of query param
 names

---
 .../servlet/AwsHttpServletRequestTest.java     | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequestTest.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequestTest.java
index 179b58a1e..904a35508 100644
--- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequestTest.java
+++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequestTest.java
@@ -40,11 +40,11 @@ public class AwsHttpServletRequestTest {
     private static final AwsProxyRequest queryStringEmptyValue = new AwsProxyRequestBuilder("/test", "GET")
             .queryString("one", "two").queryString("three", "").build();
     private static final AwsProxyRequest encodedQueryString = new AwsProxyRequestBuilder("/test", "GET")
-            .queryString("one", "two").queryString("json", "{\"name\":\"faisal\"}").build();
+            .queryString("one", "two").queryString("json value@1", "{\"name\":\"faisal\"}").build();
     private static final AwsProxyRequest encodedQueryStringAlb = new AwsProxyRequestBuilder("/test", "GET")
-            .queryString("one", "two").queryString("json", "{\"name\":\"faisal\"}").alb().build();
+            .queryString("one", "two").queryString("json value@1", "{\"name\":\"faisal\"}").alb().build();
     private static final AwsProxyRequest multipleParams = new AwsProxyRequestBuilder("/test", "GET")
-            .queryString("one", "two").queryString("one", "three").queryString("json", "{\"name\":\"faisal\"}").build();
+            .queryString("one", "two").queryString("one", "three").queryString("json value@1", "{\"name\":\"faisal\"}").build();
     private static final AwsProxyRequest formEncodedAndQueryString = new AwsProxyRequestBuilder("/test", "POST")
             .queryString("one", "two").queryString("one", "three")
             .queryString("five", "six")
@@ -229,7 +229,7 @@ void queryStringWithEncodedParams_generateQueryString_validQuery() {
             fail("Could not generate query string");
         }
         assertTrue(parsedString.contains("one=two"));
-        assertTrue(parsedString.contains("json=%7B%22name%22%3A%22faisal%22%7D"));
+        assertTrue(parsedString.contains("json+value%401=%7B%22name%22%3A%22faisal%22%7D"));
         assertTrue(parsedString.contains("&") && parsedString.indexOf("&") > 0 && parsedString.indexOf("&") < parsedString.length());
     }
 
@@ -245,7 +245,7 @@ void queryStringWithEncodedParams_alb_generateQueryString_validQuery() {
             fail("Could not generate query string");
         }
         assertTrue(parsedString.contains("one=two"));
-        assertTrue(parsedString.contains("json=%7B%22name%22%3A%22faisal%22%7D"));
+        assertTrue(parsedString.contains("json+value%401=%7B%22name%22%3A%22faisal%22%7D"));
         assertTrue(parsedString.contains("&") && parsedString.indexOf("&") > 0 && parsedString.indexOf("&") < parsedString.length());
     }
 
@@ -262,7 +262,7 @@ void queryStringWithMultipleValues_generateQueryString_validQuery() {
         }
         assertTrue(parsedString.contains("one=two"));
         assertTrue(parsedString.contains("one=three"));
-        assertTrue(parsedString.contains("json=%7B%22name%22%3A%22faisal%22%7D"));
+        assertTrue(parsedString.contains("json+value%401=%7B%22name%22%3A%22faisal%22%7D"));
         assertTrue(parsedString.contains("&") && parsedString.indexOf("&") > 0 && parsedString.indexOf("&") < parsedString.length());
     }
 
@@ -327,7 +327,7 @@ void parameterMapWithEncodedParams_generateParameterMap_validQuery() {
         }
 
         assertArrayEquals(new String[]{"two"}, paramMap.get("one"));
-        assertArrayEquals(new String[]{"{\"name\":\"faisal\"}"}, paramMap.get("json"));
+        assertArrayEquals(new String[]{"{\"name\":\"faisal\"}"}, paramMap.get("json value@1"));
         assertTrue(paramMap.size() == 2);
     }
 
@@ -344,7 +344,7 @@ void parameterMapWithEncodedParams_alb_generateParameterMap_validQuery() {
         }
 
         assertArrayEquals(new String[]{"two"}, paramMap.get("one"));
-        assertArrayEquals(new String[]{"{\"name\":\"faisal\"}"}, paramMap.get("json"));
+        assertArrayEquals(new String[]{"{\"name\":\"faisal\"}"}, paramMap.get("json value@1"));
         assertTrue(paramMap.size() == 2);
     }
 
@@ -360,7 +360,7 @@ void parameterMapWithMultipleValues_generateParameterMap_validQuery() {
             fail("Could not generate parameter map");
         }
         assertArrayEquals(new String[]{"two", "three"}, paramMap.get("one"));
-        assertArrayEquals(new String[]{"{\"name\":\"faisal\"}"}, paramMap.get("json"));
+        assertArrayEquals(new String[]{"{\"name\":\"faisal\"}"}, paramMap.get("json value@1"));
         assertTrue(paramMap.size() == 2);
     }
 

From f68e7552398816faa6b7a3e80a9373c27882387a Mon Sep 17 00:00:00 2001
From: Jay Fennelly <jfennelly@commerce-architects.com>
Date: Sun, 27 Oct 2024 19:43:13 -0700
Subject: [PATCH 279/430] Add handling decoding of parameters for ALB requests
 and decode paramter names in HTTP API requests

---
 .../AwsHttpApiV2ProxyHttpServletRequest.java  |  4 +--
 .../servlet/AwsProxyHttpServletRequest.java   | 35 +++++++++++++++++--
 .../AwsProxyHttpServletRequestTest.java       |  4 +--
 3 files changed, 36 insertions(+), 7 deletions(-)

diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpApiV2ProxyHttpServletRequest.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpApiV2ProxyHttpServletRequest.java
index 537e10759..1caf6dace 100644
--- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpApiV2ProxyHttpServletRequest.java
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpApiV2ProxyHttpServletRequest.java
@@ -483,10 +483,10 @@ private MultiValuedTreeMap<String, String> parseRawQueryString(String qs) {
 
                 String[] kv = value.split(QUERY_STRING_KEY_VALUE_SEPARATOR);
                 String key = URLDecoder.decode(kv[0], LambdaContainerHandler.getContainerConfig().getUriEncoding());
-                String val = kv.length == 2 ? kv[1] : "";
+                String val = kv.length == 2 ? AwsHttpServletRequest.decodeValueIfEncoded(kv[1]) : "";
                 qsMap.add(key, val);
             } catch (UnsupportedEncodingException e) {
-                log.error("Unsupported encoding in query string key: " + SecurityUtils.crlf(value), e);
+                log.error("Unsupported encoding in query string key-value pair: " + SecurityUtils.crlf(value), e);
             }
         }
         return qsMap;
diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequest.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequest.java
index fe514e65d..c10b1ef5e 100644
--- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequest.java
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequest.java
@@ -325,8 +325,17 @@ public String getContentType() {
 
     @Override
     public String getParameter(String s) {
+
+    	// decode key if ALB
+    	if (request.getRequestSource() == RequestSource.ALB) {
+    		s = decodeValueIfEncoded(s);
+    	}
+
        String queryStringParameter = getFirstQueryParamValue(request.getMultiValueQueryStringParameters(), s, config.isQueryStringCaseSensitive());
         if (queryStringParameter != null) {
+        	if (request.getRequestSource() == RequestSource.ALB) {
+        		queryStringParameter = decodeValueIfEncoded(queryStringParameter);
+        	}
             return queryStringParameter;
         }
 
@@ -345,15 +354,35 @@ public Enumeration<String> getParameterNames() {
         if (request.getMultiValueQueryStringParameters() == null) {
             return Collections.enumeration(formParameterNames);
         }
-        return Collections.enumeration(Stream.concat(formParameterNames.stream(),
-                request.getMultiValueQueryStringParameters().keySet().stream()).collect(Collectors.toSet()));
+
+        Set<String> paramNames = request.getMultiValueQueryStringParameters().keySet();
+        if (request.getRequestSource() == RequestSource.ALB) {
+        	paramNames = paramNames.stream().map(AwsProxyHttpServletRequest::decodeValueIfEncoded).collect(Collectors.toSet());
+        }
+		
+        return Collections.enumeration(
+				Stream.concat(formParameterNames.stream(), paramNames.stream())
+				.collect(Collectors.toSet()));
     }
 
 
     @Override
     @SuppressFBWarnings("PZLA_PREFER_ZERO_LENGTH_ARRAYS") // suppressing this as according to the specs we should be returning null here if we can't find params
     public String[] getParameterValues(String s) {
+    	
+    	// decode key if ALB
+    	if (request.getRequestSource() == RequestSource.ALB) {
+    		s = decodeValueIfEncoded(s);
+    	}
+    	
+    	// TODO lots of back and forth arrays and lists here, sort it out!
         List<String> values = new ArrayList<>(Arrays.asList(getQueryParamValues(request.getMultiValueQueryStringParameters(), s, config.isQueryStringCaseSensitive())));
+        // List<String> values = getQueryParamValuesAsList(request.getMultiValueQueryStringParameters(), s, config.isQueryStringCaseSensitive());
+        
+        // decode values if ALB
+        if (request.getRequestSource() == RequestSource.ALB) {
+        	values = values.stream().map(AwsHttpServletRequest::decodeValueIfEncoded).collect(Collectors.toList());
+        }
 
         values.addAll(Arrays.asList(getFormBodyParameterCaseInsensitive(s)));
 
@@ -367,7 +396,7 @@ public String[] getParameterValues(String s) {
 
     @Override
     public Map<String, String[]> getParameterMap() {
-        return generateParameterMap(request.getMultiValueQueryStringParameters(), config);
+        return generateParameterMap(request.getMultiValueQueryStringParameters(), config, request.getRequestSource() == RequestSource.ALB);
     }
 
 
diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequestTest.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequestTest.java
index a06066490..736da27b4 100644
--- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequestTest.java
+++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequestTest.java
@@ -33,8 +33,8 @@ public class AwsProxyHttpServletRequestTest {
     private static final String FORM_PARAM_NAME = "name";
     private static final String FORM_PARAM_NAME_VALUE = "Stef";
     private static final String FORM_PARAM_TEST = "test_cookie_param";
-    private static final String QUERY_STRING_NAME_VALUE = "Bob";
-    private static final String QUERY_STRING_NAME = "name";
+    private static final String QUERY_STRING_NAME_VALUE = "Bob B!";
+    private static final String QUERY_STRING_NAME = "name$";
     private static final String REQUEST_SCHEME_HTTP = "http";
     private static final String USER_AGENT = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.61 Safari/537.36";
     private static final String REFERER = "https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox";

From 0f33cd72492a28659af1a2e904e80487250e78c0 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Mon, 28 Oct 2024 11:48:17 +0100
Subject: [PATCH 280/430] chore(deps): Update Jersey dependency to 3.1.9

---
 .github/dependabot.yml                                        | 2 +-
 aws-serverless-java-container-jersey/pom.xml                  | 2 +-
 .../src/main/resources/archetype-resources/build.gradle       | 4 ++--
 .../src/main/resources/archetype-resources/pom.xml            | 2 +-
 samples/jersey/pet-store/build.gradle                         | 4 ++--
 samples/jersey/pet-store/pom.xml                              | 2 +-
 6 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/.github/dependabot.yml b/.github/dependabot.yml
index 96dd4d8b3..a82724c43 100644
--- a/.github/dependabot.yml
+++ b/.github/dependabot.yml
@@ -36,7 +36,7 @@ updates:
     groups:
       jersey:
         patterns:
-          - "org.glassfish.jersey:*"
+          - "org.glassfish.jersey.*:*"
       spring:
         patterns:
           - "org.springframework:*"
diff --git a/aws-serverless-java-container-jersey/pom.xml b/aws-serverless-java-container-jersey/pom.xml
index bf3958182..2b7ef7f17 100644
--- a/aws-serverless-java-container-jersey/pom.xml
+++ b/aws-serverless-java-container-jersey/pom.xml
@@ -16,7 +16,7 @@
     </parent>
 
     <properties>
-        <jersey.version>3.1.8</jersey.version>
+        <jersey.version>3.1.9</jersey.version>
     </properties>
 
     <dependencies>
diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
index a00fa1958..60a6ab3af 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
@@ -11,13 +11,13 @@ dependencies {
           'com.fasterxml.jackson.core:jackson-databind:2.17.2',
   )
 
-  implementation("org.glassfish.jersey.media:jersey-media-json-jackson:3.1.8") {
+  implementation("org.glassfish.jersey.media:jersey-media-json-jackson:3.1.9") {
     exclude group: 'com.fasterxml.jackson.core', module: "jackson-annotations"
     exclude group: 'com.fasterxml.jackson.core', module: "jackson-databind"
     exclude group: 'com.fasterxml.jackson.core', module: "jackson-core"
   }
 
-  implementation("org.glassfish.jersey.inject:jersey-hk2:3.1.8") {
+  implementation("org.glassfish.jersey.inject:jersey-hk2:3.1.9") {
     exclude group: 'javax.inject', module: "javax.inject"
   }
 
diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
index 6e7e0a807..92a954e47 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
@@ -15,7 +15,7 @@
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
 
-        <jersey.version>3.1.8</jersey.version>
+        <jersey.version>3.1.9</jersey.version>
         <jackson.version>2.17.2</jackson.version>
         <junit.version>5.11.0</junit.version>
     </properties>
diff --git a/samples/jersey/pet-store/build.gradle b/samples/jersey/pet-store/build.gradle
index db641d14b..9afa24c7e 100644
--- a/samples/jersey/pet-store/build.gradle
+++ b/samples/jersey/pet-store/build.gradle
@@ -11,13 +11,13 @@ dependencies {
           'com.fasterxml.jackson.core:jackson-databind:2.17.2',
   )
 
-  implementation("org.glassfish.jersey.media:jersey-media-json-jackson:3.1.8") {
+  implementation("org.glassfish.jersey.media:jersey-media-json-jackson:3.1.9") {
     exclude group: 'com.fasterxml.jackson.core', module: "jackson-annotations"
     exclude group: 'com.fasterxml.jackson.core', module: "jackson-databind"
     exclude group: 'com.fasterxml.jackson.core', module: "jackson-core"
   }
 
-  implementation("org.glassfish.jersey.inject:jersey-hk2:3.1.8") {
+  implementation("org.glassfish.jersey.inject:jersey-hk2:3.1.9") {
     exclude group: 'javax.inject', module: "javax.inject"
   }
 }
diff --git a/samples/jersey/pet-store/pom.xml b/samples/jersey/pet-store/pom.xml
index 7bdc7ce40..8d9f5029f 100644
--- a/samples/jersey/pet-store/pom.xml
+++ b/samples/jersey/pet-store/pom.xml
@@ -26,7 +26,7 @@
     <properties>
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
-        <jersey.version>3.1.8</jersey.version>
+        <jersey.version>3.1.9</jersey.version>
         <jackson.version>2.17.2</jackson.version>
     </properties>
 

From 716267fc23ffaa5ebe1b41d29a37a53932c26e2b Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 28 Oct 2024 10:49:36 +0000
Subject: [PATCH 281/430] chore(deps-dev): bump org.mockito:mockito-core from
 5.12.0 to 5.14.2

Bumps [org.mockito:mockito-core](https://github.com/mockito/mockito) from 5.12.0 to 5.14.2.
- [Release notes](https://github.com/mockito/mockito/releases)
- [Commits](https://github.com/mockito/mockito/compare/v5.12.0...v5.14.2)

---
updated-dependencies:
- dependency-name: org.mockito:mockito-core
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index f2e5579e4..52fa7e583 100644
--- a/pom.xml
+++ b/pom.xml
@@ -81,7 +81,7 @@
         <jackson.version>2.17.2</jackson.version>
         <slf4j.version>2.0.16</slf4j.version>
         <junit.version>5.11.0</junit.version>
-        <mockito.version>5.12.0</mockito.version>
+        <mockito.version>5.14.2</mockito.version>
         <hamcrest.version>1.3</hamcrest.version>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     </properties>

From d396be6090a2fd96c3b0230dafe908f296986cf2 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Mon, 28 Oct 2024 11:52:18 +0100
Subject: [PATCH 282/430] chore(deps): Update Jackson version to 2.18.0

---
 .github/dependabot.yml                                      | 6 ++++++
 .../src/main/resources/archetype-resources/build.gradle     | 2 +-
 .../src/main/resources/archetype-resources/pom.xml          | 2 +-
 .../src/main/resources/archetype-resources/build.gradle     | 2 +-
 .../src/main/resources/archetype-resources/build.gradle     | 4 ++--
 .../src/main/resources/archetype-resources/pom.xml          | 2 +-
 pom.xml                                                     | 2 +-
 samples/jersey/pet-store/build.gradle                       | 2 +-
 samples/jersey/pet-store/pom.xml                            | 2 +-
 samples/spring/pet-store/build.gradle                       | 2 +-
 samples/struts/pet-store/build.gradle                       | 4 ++--
 samples/struts/pet-store/pom.xml                            | 2 +-
 12 files changed, 19 insertions(+), 13 deletions(-)

diff --git a/.github/dependabot.yml b/.github/dependabot.yml
index a82724c43..d82be62de 100644
--- a/.github/dependabot.yml
+++ b/.github/dependabot.yml
@@ -18,6 +18,9 @@ updates:
       slf4j:
         patterns:
           - "org.slf4j:*"
+      jackson:
+        patterns:
+          - "com.fasterxml.jackson.*:*"
       log4j:
         patterns:
           - "org.apache.logging.log4j:*"
@@ -46,5 +49,8 @@ updates:
       log4j:
         patterns:
           - "org.apache.logging.log4j:*"
+      jackson:
+        patterns:
+          - "com.fasterxml.jackson.*:*"
     schedule:
       interval: "weekly"
\ No newline at end of file
diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
index 60a6ab3af..e8a58a7ac 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
@@ -8,7 +8,7 @@ repositories {
 dependencies {
   implementation (
           'com.amazonaws.serverless:aws-serverless-java-container-jersey:[2.0-SNAPSHOT,)',
-          'com.fasterxml.jackson.core:jackson-databind:2.17.2',
+          'com.fasterxml.jackson.core:jackson-databind:2.18.0',
   )
 
   implementation("org.glassfish.jersey.media:jersey-media-json-jackson:3.1.9") {
diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
index 92a954e47..0c34139c0 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
@@ -16,7 +16,7 @@
         <maven.compiler.target>1.8</maven.compiler.target>
 
         <jersey.version>3.1.9</jersey.version>
-        <jackson.version>2.17.2</jackson.version>
+        <jackson.version>2.18.0</jackson.version>
         <junit.version>5.11.0</junit.version>
     </properties>
 
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
index 7ea0c5790..8ba66cc0b 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
@@ -13,7 +13,7 @@ dependencies {
           'org.apache.logging.log4j:log4j-core:2.24.0',
           'org.apache.logging.log4j:log4j-api:2.24.0',
           'org.apache.logging.log4j:log4j-slf4j-impl:2.24.0',
-          'com.fasterxml.jackson.core:jackson-databind:2.17.2',
+          'com.fasterxml.jackson.core:jackson-databind:2.18.0',
           'com.amazonaws:aws-lambda-java-log4j2:1.6.0',
   )
 
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
index c31358b60..1f67ba445 100644
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
@@ -34,8 +34,8 @@ dependencies {
     exclude group: 'org.apache.logging.log4j', module: 'log4j-api'
   }
   implementation ('org.hibernate.validator:hibernate-validator:6.1.7.Final')
-  implementation ('com.fasterxml.jackson.core:jackson-databind:2.17.2')
-  implementation ('com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.17.2')
+  implementation ('com.fasterxml.jackson.core:jackson-databind:2.18.0')
+  implementation ('com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.18.0')
   implementation ('org.apache.logging.log4j:log4j-core:2.24.0')
   implementation ('org.apache.logging.log4j:log4j-api:2.24.0')
   implementation ('org.apache.logging.log4j:log4j-slf4j-impl:2.24.0')
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
index 1c4be66ea..1ba9bef62 100644
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
@@ -16,7 +16,7 @@
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
         <struts.version>7.0.0-M9</struts.version>
-        <jackson.version>2.17.2</jackson.version>
+        <jackson.version>2.18.0</jackson.version>
         <junit.version>5.11.0</junit.version>
         <log4j.version>2.24.0</log4j.version>
     </properties>
diff --git a/pom.xml b/pom.xml
index f2e5579e4..825097508 100644
--- a/pom.xml
+++ b/pom.xml
@@ -78,7 +78,7 @@
     <properties>
         <jacoco.minCoverage>0.7</jacoco.minCoverage>
         <dependencyCheck.version>10.0.3</dependencyCheck.version>
-        <jackson.version>2.17.2</jackson.version>
+        <jackson.version>2.18.0</jackson.version>
         <slf4j.version>2.0.16</slf4j.version>
         <junit.version>5.11.0</junit.version>
         <mockito.version>5.12.0</mockito.version>
diff --git a/samples/jersey/pet-store/build.gradle b/samples/jersey/pet-store/build.gradle
index 9afa24c7e..8be9f574e 100644
--- a/samples/jersey/pet-store/build.gradle
+++ b/samples/jersey/pet-store/build.gradle
@@ -8,7 +8,7 @@ repositories {
 dependencies {
   implementation (
           'com.amazonaws.serverless:aws-serverless-java-container-jersey:[2.0-SNAPSHOT,)',
-          'com.fasterxml.jackson.core:jackson-databind:2.17.2',
+          'com.fasterxml.jackson.core:jackson-databind:2.18.0',
   )
 
   implementation("org.glassfish.jersey.media:jersey-media-json-jackson:3.1.9") {
diff --git a/samples/jersey/pet-store/pom.xml b/samples/jersey/pet-store/pom.xml
index 8d9f5029f..575a2afdd 100644
--- a/samples/jersey/pet-store/pom.xml
+++ b/samples/jersey/pet-store/pom.xml
@@ -27,7 +27,7 @@
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
         <jersey.version>3.1.9</jersey.version>
-        <jackson.version>2.17.2</jackson.version>
+        <jackson.version>2.18.0</jackson.version>
     </properties>
 
     <dependencies>
diff --git a/samples/spring/pet-store/build.gradle b/samples/spring/pet-store/build.gradle
index eedeaafbd..cf412a198 100644
--- a/samples/spring/pet-store/build.gradle
+++ b/samples/spring/pet-store/build.gradle
@@ -13,7 +13,7 @@ dependencies {
           'org.apache.logging.log4j:log4j-core:2.24.0',
           'org.apache.logging.log4j:log4j-api:2.24.0',
           'org.apache.logging.log4j:log4j-slf4j-impl:2.24.0',
-          'com.fasterxml.jackson.core:jackson-databind:2.17.2',
+          'com.fasterxml.jackson.core:jackson-databind:2.18.0',
           'com.amazonaws:aws-lambda-java-log4j2:1.6.0',
   )
 }
diff --git a/samples/struts/pet-store/build.gradle b/samples/struts/pet-store/build.gradle
index 85eb0492c..4a760c638 100644
--- a/samples/struts/pet-store/build.gradle
+++ b/samples/struts/pet-store/build.gradle
@@ -22,8 +22,8 @@ dependencies {
           'org.hibernate.validator:hibernate-validator:6.1.7.Final',
           'org.glassfish:jakarta.el:5.0.0-M1',
           'jakarta.el:jakarta.el-api:5.0.1',
-          'com.fasterxml.jackson.core:jackson-databind:2.17.2',
-          'com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.17.2',
+          'com.fasterxml.jackson.core:jackson-databind:2.18.0',
+          'com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.18.0',
           'org.apache.logging.log4j:log4j-core:2.24.0',
           'org.apache.logging.log4j:log4j-api:2.24.0',
           'com.amazonaws:aws-lambda-java-log4j2:1.6.0',
diff --git a/samples/struts/pet-store/pom.xml b/samples/struts/pet-store/pom.xml
index 09a6e411e..4de37279c 100644
--- a/samples/struts/pet-store/pom.xml
+++ b/samples/struts/pet-store/pom.xml
@@ -27,7 +27,7 @@
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
         <struts.version>7.0.0-M9</struts.version>
-        <jackson.version>2.17.2</jackson.version>
+        <jackson.version>2.18.0</jackson.version>
         <junit.version>4.13.2</junit.version>
         <log4j.version>2.24.0</log4j.version>
     </properties>

From 45e77e9d033d8db63e696f68ace154b4531f5d69 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Mon, 28 Oct 2024 11:53:29 +0100
Subject: [PATCH 283/430] chore(deps): update JUnit version to 5.11.3

---
 .../src/main/resources/archetype-resources/build.gradle         | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 .../src/main/resources/archetype-resources/build.gradle         | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 .../src/main/resources/archetype-resources/build.gradle         | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 .../src/main/resources/archetype-resources/build.gradle         | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 pom.xml                                                         | 2 +-
 9 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
index e8a58a7ac..e62c96012 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
@@ -23,7 +23,7 @@ dependencies {
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
   testImplementation("org.apache.httpcomponents.client5:httpclient5:5.4")
-  testImplementation(platform("org.junit:junit-bom:5.11.0"))
+  testImplementation(platform("org.junit:junit-bom:5.11.3"))
   testImplementation("org.junit.jupiter:junit-jupiter")
 }
 
diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
index 0c34139c0..6c855ad9c 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
@@ -17,7 +17,7 @@
 
         <jersey.version>3.1.9</jersey.version>
         <jackson.version>2.18.0</jackson.version>
-        <junit.version>5.11.0</junit.version>
+        <junit.version>5.11.3</junit.version>
     </properties>
 
     <dependencies>
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
index 8ba66cc0b..a476155a3 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
@@ -19,7 +19,7 @@ dependencies {
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
   testImplementation("org.apache.httpcomponents.client5:httpclient5:5.4")
-  testImplementation(platform("org.junit:junit-bom:5.11.0"))
+  testImplementation(platform("org.junit:junit-bom:5.11.3"))
   testImplementation("org.junit.jupiter:junit-jupiter")
 }
 
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
index d59721621..bed207b34 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
@@ -17,7 +17,7 @@
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
         <spring.version>6.1.14</spring.version>
-        <junit.version>5.11.0</junit.version>
+        <junit.version>5.11.3</junit.version>
         <log4j.version>2.24.0</log4j.version>
     </properties>
 
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
index 9877ece33..b29bdefd1 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
@@ -15,7 +15,7 @@ dependencies {
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
   testImplementation("org.apache.httpcomponents.client5:httpclient5:5.4")
-  testImplementation(platform("org.junit:junit-bom:5.11.0"))
+  testImplementation(platform("org.junit:junit-bom:5.11.3"))
   testImplementation("org.junit.jupiter:junit-jupiter")
 }
 
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
index 1d8b963d6..ef9a61702 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
@@ -21,7 +21,7 @@
 
     <properties>
         <java.version>17</java.version>
-        <junit.version>5.11.0</junit.version>
+        <junit.version>5.11.3</junit.version>
     </properties>
 
     <dependencies>
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
index 1f67ba445..499f170a4 100644
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
@@ -43,7 +43,7 @@ dependencies {
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
   testImplementation("org.apache.httpcomponents.client5:httpclient5:5.4")
-  testImplementation(platform("org.junit:junit-bom:5.11.0"))
+  testImplementation(platform("org.junit:junit-bom:5.11.3"))
   testImplementation("org.junit.jupiter:junit-jupiter")
   testImplementation('org.apache.struts:struts2-junit-plugin:7.0.0-M9') {
     exclude group: 'org.apache.struts', module: 'struts2-core'
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
index 1ba9bef62..b9d990c68 100644
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
@@ -17,7 +17,7 @@
         <maven.compiler.target>1.8</maven.compiler.target>
         <struts.version>7.0.0-M9</struts.version>
         <jackson.version>2.18.0</jackson.version>
-        <junit.version>5.11.0</junit.version>
+        <junit.version>5.11.3</junit.version>
         <log4j.version>2.24.0</log4j.version>
     </properties>
 
diff --git a/pom.xml b/pom.xml
index cc82de4d9..7c55c34aa 100644
--- a/pom.xml
+++ b/pom.xml
@@ -80,7 +80,7 @@
         <dependencyCheck.version>10.0.3</dependencyCheck.version>
         <jackson.version>2.18.0</jackson.version>
         <slf4j.version>2.0.16</slf4j.version>
-        <junit.version>5.11.0</junit.version>
+        <junit.version>5.11.3</junit.version>
         <mockito.version>5.14.2</mockito.version>
         <hamcrest.version>1.3</hamcrest.version>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

From 36a6c8da22cb2c724996926621e837d16e40bd48 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Mon, 28 Oct 2024 11:55:24 +0100
Subject: [PATCH 284/430] chore(deps): Update Log4J dependencies to 2.24.1

---
 .../src/main/resources/archetype-resources/build.gradle     | 6 +++---
 .../src/main/resources/archetype-resources/pom.xml          | 2 +-
 .../src/main/resources/archetype-resources/build.gradle     | 6 +++---
 .../src/main/resources/archetype-resources/pom.xml          | 2 +-
 samples/spring/pet-store/build.gradle                       | 6 +++---
 samples/spring/pet-store/pom.xml                            | 2 +-
 samples/struts/pet-store/build.gradle                       | 4 ++--
 samples/struts/pet-store/pom.xml                            | 2 +-
 8 files changed, 15 insertions(+), 15 deletions(-)

diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
index a476155a3..6e57dbce5 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
@@ -10,9 +10,9 @@ dependencies {
           'org.springframework:spring-webmvc:6.1.14',
           'org.springframework:spring-context:6.1.14',
           'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)',
-          'org.apache.logging.log4j:log4j-core:2.24.0',
-          'org.apache.logging.log4j:log4j-api:2.24.0',
-          'org.apache.logging.log4j:log4j-slf4j-impl:2.24.0',
+          'org.apache.logging.log4j:log4j-core:2.24.1',
+          'org.apache.logging.log4j:log4j-api:2.24.1',
+          'org.apache.logging.log4j:log4j-slf4j-impl:2.24.1',
           'com.fasterxml.jackson.core:jackson-databind:2.18.0',
           'com.amazonaws:aws-lambda-java-log4j2:1.6.0',
   )
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
index bed207b34..bc88be912 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
@@ -18,7 +18,7 @@
         <maven.compiler.target>1.8</maven.compiler.target>
         <spring.version>6.1.14</spring.version>
         <junit.version>5.11.3</junit.version>
-        <log4j.version>2.24.0</log4j.version>
+        <log4j.version>2.24.1</log4j.version>
     </properties>
 
     <dependencies>
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
index 499f170a4..7960abe9c 100644
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
@@ -36,9 +36,9 @@ dependencies {
   implementation ('org.hibernate.validator:hibernate-validator:6.1.7.Final')
   implementation ('com.fasterxml.jackson.core:jackson-databind:2.18.0')
   implementation ('com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.18.0')
-  implementation ('org.apache.logging.log4j:log4j-core:2.24.0')
-  implementation ('org.apache.logging.log4j:log4j-api:2.24.0')
-  implementation ('org.apache.logging.log4j:log4j-slf4j-impl:2.24.0')
+  implementation ('org.apache.logging.log4j:log4j-core:2.24.1')
+  implementation ('org.apache.logging.log4j:log4j-api:2.24.1')
+  implementation ('org.apache.logging.log4j:log4j-slf4j-impl:2.24.1')
   implementation ('com.amazonaws:aws-lambda-java-log4j2:1.6.0')
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
index b9d990c68..a193394cc 100644
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
@@ -18,7 +18,7 @@
         <struts.version>7.0.0-M9</struts.version>
         <jackson.version>2.18.0</jackson.version>
         <junit.version>5.11.3</junit.version>
-        <log4j.version>2.24.0</log4j.version>
+        <log4j.version>2.24.1</log4j.version>
     </properties>
 
     <dependencies>
diff --git a/samples/spring/pet-store/build.gradle b/samples/spring/pet-store/build.gradle
index cf412a198..6f1503b0f 100644
--- a/samples/spring/pet-store/build.gradle
+++ b/samples/spring/pet-store/build.gradle
@@ -10,9 +10,9 @@ dependencies {
           'org.springframework:spring-webmvc:6.1.14',
           'org.springframework:spring-context:6.1.14',
           'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)',
-          'org.apache.logging.log4j:log4j-core:2.24.0',
-          'org.apache.logging.log4j:log4j-api:2.24.0',
-          'org.apache.logging.log4j:log4j-slf4j-impl:2.24.0',
+          'org.apache.logging.log4j:log4j-core:2.24.1',
+          'org.apache.logging.log4j:log4j-api:2.24.1',
+          'org.apache.logging.log4j:log4j-slf4j-impl:2.24.1',
           'com.fasterxml.jackson.core:jackson-databind:2.18.0',
           'com.amazonaws:aws-lambda-java-log4j2:1.6.0',
   )
diff --git a/samples/spring/pet-store/pom.xml b/samples/spring/pet-store/pom.xml
index 9634fe9f7..9e5560e73 100644
--- a/samples/spring/pet-store/pom.xml
+++ b/samples/spring/pet-store/pom.xml
@@ -25,7 +25,7 @@
 
     <properties>
         <spring.version>6.1.14</spring.version>
-        <log4j.version>2.24.0</log4j.version>
+        <log4j.version>2.24.1</log4j.version>
         <maven.compiler.source>17</maven.compiler.source>
         <maven.compiler.target>17</maven.compiler.target>
     </properties>
diff --git a/samples/struts/pet-store/build.gradle b/samples/struts/pet-store/build.gradle
index 4a760c638..fdc9601c1 100644
--- a/samples/struts/pet-store/build.gradle
+++ b/samples/struts/pet-store/build.gradle
@@ -24,8 +24,8 @@ dependencies {
           'jakarta.el:jakarta.el-api:5.0.1',
           'com.fasterxml.jackson.core:jackson-databind:2.18.0',
           'com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.18.0',
-          'org.apache.logging.log4j:log4j-core:2.24.0',
-          'org.apache.logging.log4j:log4j-api:2.24.0',
+          'org.apache.logging.log4j:log4j-core:2.24.1',
+          'org.apache.logging.log4j:log4j-api:2.24.1',
           'com.amazonaws:aws-lambda-java-log4j2:1.6.0',
   )
 }
diff --git a/samples/struts/pet-store/pom.xml b/samples/struts/pet-store/pom.xml
index 4de37279c..9042ea76f 100644
--- a/samples/struts/pet-store/pom.xml
+++ b/samples/struts/pet-store/pom.xml
@@ -29,7 +29,7 @@
         <struts.version>7.0.0-M9</struts.version>
         <jackson.version>2.18.0</jackson.version>
         <junit.version>4.13.2</junit.version>
-        <log4j.version>2.24.0</log4j.version>
+        <log4j.version>2.24.1</log4j.version>
     </properties>
 
     <dependencies>

From 64b9b04eacd6686a6aaddbc3bc6b5bbc0590ab6e Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 28 Oct 2024 10:55:57 +0000
Subject: [PATCH 285/430] chore(deps): bump
 com.github.spotbugs:spotbugs-maven-plugin

Bumps [com.github.spotbugs:spotbugs-maven-plugin](https://github.com/spotbugs/spotbugs-maven-plugin) from 4.8.6.2 to 4.8.6.5.
- [Release notes](https://github.com/spotbugs/spotbugs-maven-plugin/releases)
- [Commits](https://github.com/spotbugs/spotbugs-maven-plugin/compare/spotbugs-maven-plugin-4.8.6.2...spotbugs-maven-plugin-4.8.6.5)

---
updated-dependencies:
- dependency-name: com.github.spotbugs:spotbugs-maven-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index cc82de4d9..159ab086d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -249,7 +249,7 @@
                 <plugin>
                     <groupId>com.github.spotbugs</groupId>
                     <artifactId>spotbugs-maven-plugin</artifactId>
-                    <version>4.8.6.2</version>
+                    <version>4.8.6.5</version>
                     <configuration>
                         <!--
                             Enables analysis which takes more memory but finds more bugs.

From edb2eb7f71504caeb29da6308f671e026abd050a Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Tue, 29 Oct 2024 13:54:37 +0100
Subject: [PATCH 286/430] chore(deps): Update Jackson version to 2.18.1

---
 .../src/main/resources/archetype-resources/build.gradle       | 2 +-
 .../src/main/resources/archetype-resources/pom.xml            | 2 +-
 .../src/main/resources/archetype-resources/build.gradle       | 2 +-
 .../src/main/resources/archetype-resources/build.gradle       | 4 ++--
 .../src/main/resources/archetype-resources/pom.xml            | 2 +-
 pom.xml                                                       | 2 +-
 samples/jersey/pet-store/build.gradle                         | 2 +-
 samples/jersey/pet-store/pom.xml                              | 2 +-
 samples/spring/pet-store/build.gradle                         | 2 +-
 samples/struts/pet-store/build.gradle                         | 4 ++--
 samples/struts/pet-store/pom.xml                              | 2 +-
 11 files changed, 13 insertions(+), 13 deletions(-)

diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
index e62c96012..040559554 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
@@ -8,7 +8,7 @@ repositories {
 dependencies {
   implementation (
           'com.amazonaws.serverless:aws-serverless-java-container-jersey:[2.0-SNAPSHOT,)',
-          'com.fasterxml.jackson.core:jackson-databind:2.18.0',
+          'com.fasterxml.jackson.core:jackson-databind:2.18.1',
   )
 
   implementation("org.glassfish.jersey.media:jersey-media-json-jackson:3.1.9") {
diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
index 6c855ad9c..001de65db 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
@@ -16,7 +16,7 @@
         <maven.compiler.target>1.8</maven.compiler.target>
 
         <jersey.version>3.1.9</jersey.version>
-        <jackson.version>2.18.0</jackson.version>
+        <jackson.version>2.18.1</jackson.version>
         <junit.version>5.11.3</junit.version>
     </properties>
 
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
index 6e57dbce5..522aa3689 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
@@ -13,7 +13,7 @@ dependencies {
           'org.apache.logging.log4j:log4j-core:2.24.1',
           'org.apache.logging.log4j:log4j-api:2.24.1',
           'org.apache.logging.log4j:log4j-slf4j-impl:2.24.1',
-          'com.fasterxml.jackson.core:jackson-databind:2.18.0',
+          'com.fasterxml.jackson.core:jackson-databind:2.18.1',
           'com.amazonaws:aws-lambda-java-log4j2:1.6.0',
   )
 
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
index 7960abe9c..e16d78fc7 100644
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
@@ -34,8 +34,8 @@ dependencies {
     exclude group: 'org.apache.logging.log4j', module: 'log4j-api'
   }
   implementation ('org.hibernate.validator:hibernate-validator:6.1.7.Final')
-  implementation ('com.fasterxml.jackson.core:jackson-databind:2.18.0')
-  implementation ('com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.18.0')
+  implementation ('com.fasterxml.jackson.core:jackson-databind:2.18.1')
+  implementation ('com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.18.1')
   implementation ('org.apache.logging.log4j:log4j-core:2.24.1')
   implementation ('org.apache.logging.log4j:log4j-api:2.24.1')
   implementation ('org.apache.logging.log4j:log4j-slf4j-impl:2.24.1')
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
index a193394cc..6b4a8dbd8 100644
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
@@ -16,7 +16,7 @@
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
         <struts.version>7.0.0-M9</struts.version>
-        <jackson.version>2.18.0</jackson.version>
+        <jackson.version>2.18.1</jackson.version>
         <junit.version>5.11.3</junit.version>
         <log4j.version>2.24.1</log4j.version>
     </properties>
diff --git a/pom.xml b/pom.xml
index 0a884c106..ed6085ebd 100644
--- a/pom.xml
+++ b/pom.xml
@@ -78,7 +78,7 @@
     <properties>
         <jacoco.minCoverage>0.7</jacoco.minCoverage>
         <dependencyCheck.version>10.0.3</dependencyCheck.version>
-        <jackson.version>2.18.0</jackson.version>
+        <jackson.version>2.18.1</jackson.version>
         <slf4j.version>2.0.16</slf4j.version>
         <junit.version>5.11.3</junit.version>
         <mockito.version>5.14.2</mockito.version>
diff --git a/samples/jersey/pet-store/build.gradle b/samples/jersey/pet-store/build.gradle
index 8be9f574e..a00d52d5b 100644
--- a/samples/jersey/pet-store/build.gradle
+++ b/samples/jersey/pet-store/build.gradle
@@ -8,7 +8,7 @@ repositories {
 dependencies {
   implementation (
           'com.amazonaws.serverless:aws-serverless-java-container-jersey:[2.0-SNAPSHOT,)',
-          'com.fasterxml.jackson.core:jackson-databind:2.18.0',
+          'com.fasterxml.jackson.core:jackson-databind:2.18.1',
   )
 
   implementation("org.glassfish.jersey.media:jersey-media-json-jackson:3.1.9") {
diff --git a/samples/jersey/pet-store/pom.xml b/samples/jersey/pet-store/pom.xml
index 575a2afdd..aa72977fb 100644
--- a/samples/jersey/pet-store/pom.xml
+++ b/samples/jersey/pet-store/pom.xml
@@ -27,7 +27,7 @@
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
         <jersey.version>3.1.9</jersey.version>
-        <jackson.version>2.18.0</jackson.version>
+        <jackson.version>2.18.1</jackson.version>
     </properties>
 
     <dependencies>
diff --git a/samples/spring/pet-store/build.gradle b/samples/spring/pet-store/build.gradle
index 6f1503b0f..a2fa54a83 100644
--- a/samples/spring/pet-store/build.gradle
+++ b/samples/spring/pet-store/build.gradle
@@ -13,7 +13,7 @@ dependencies {
           'org.apache.logging.log4j:log4j-core:2.24.1',
           'org.apache.logging.log4j:log4j-api:2.24.1',
           'org.apache.logging.log4j:log4j-slf4j-impl:2.24.1',
-          'com.fasterxml.jackson.core:jackson-databind:2.18.0',
+          'com.fasterxml.jackson.core:jackson-databind:2.18.1',
           'com.amazonaws:aws-lambda-java-log4j2:1.6.0',
   )
 }
diff --git a/samples/struts/pet-store/build.gradle b/samples/struts/pet-store/build.gradle
index fdc9601c1..ecc765cb7 100644
--- a/samples/struts/pet-store/build.gradle
+++ b/samples/struts/pet-store/build.gradle
@@ -22,8 +22,8 @@ dependencies {
           'org.hibernate.validator:hibernate-validator:6.1.7.Final',
           'org.glassfish:jakarta.el:5.0.0-M1',
           'jakarta.el:jakarta.el-api:5.0.1',
-          'com.fasterxml.jackson.core:jackson-databind:2.18.0',
-          'com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.18.0',
+          'com.fasterxml.jackson.core:jackson-databind:2.18.1',
+          'com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.18.1',
           'org.apache.logging.log4j:log4j-core:2.24.1',
           'org.apache.logging.log4j:log4j-api:2.24.1',
           'com.amazonaws:aws-lambda-java-log4j2:1.6.0',
diff --git a/samples/struts/pet-store/pom.xml b/samples/struts/pet-store/pom.xml
index 9042ea76f..49c035d4e 100644
--- a/samples/struts/pet-store/pom.xml
+++ b/samples/struts/pet-store/pom.xml
@@ -27,7 +27,7 @@
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
         <struts.version>7.0.0-M9</struts.version>
-        <jackson.version>2.18.0</jackson.version>
+        <jackson.version>2.18.1</jackson.version>
         <junit.version>4.13.2</junit.version>
         <log4j.version>2.24.1</log4j.version>
     </properties>

From 8a1388cf0fd67dbffdce3cde2d290b3808ff8a0a Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 4 Nov 2024 04:40:59 +0000
Subject: [PATCH 287/430] chore(deps): bump
 org.apache.maven.plugins:maven-surefire-plugin

Bumps [org.apache.maven.plugins:maven-surefire-plugin](https://github.com/apache/maven-surefire) from 3.5.0 to 3.5.2.
- [Release notes](https://github.com/apache/maven-surefire/releases)
- [Commits](https://github.com/apache/maven-surefire/compare/surefire-3.5.0...surefire-3.5.2)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-surefire-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index ed6085ebd..3113a8a71 100644
--- a/pom.xml
+++ b/pom.xml
@@ -206,7 +206,7 @@
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-surefire-plugin</artifactId>
-                    <version>3.5.0</version>
+                    <version>3.5.2</version>
                 </plugin>
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>

From aab8077dbef79d3933832cb041ee85ee47490fa9 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 4 Nov 2024 04:41:16 +0000
Subject: [PATCH 288/430] chore(deps): bump
 org.apache.maven.plugins:maven-javadoc-plugin

Bumps [org.apache.maven.plugins:maven-javadoc-plugin](https://github.com/apache/maven-javadoc-plugin) from 3.8.0 to 3.11.1.
- [Release notes](https://github.com/apache/maven-javadoc-plugin/releases)
- [Commits](https://github.com/apache/maven-javadoc-plugin/compare/maven-javadoc-plugin-3.8.0...maven-javadoc-plugin-3.11.1)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-javadoc-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index ed6085ebd..0ea5e93bd 100644
--- a/pom.xml
+++ b/pom.xml
@@ -201,7 +201,7 @@
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-javadoc-plugin</artifactId>
-                    <version>3.8.0</version>
+                    <version>3.11.1</version>
                 </plugin>
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>

From 1d8695ba9c1c347ae93b72613cb88c5e8e6779d2 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 4 Nov 2024 04:41:24 +0000
Subject: [PATCH 289/430] chore(deps): bump org.owasp:dependency-check-maven
 from 10.0.3 to 11.1.0

Bumps [org.owasp:dependency-check-maven](https://github.com/jeremylong/DependencyCheck) from 10.0.3 to 11.1.0.
- [Release notes](https://github.com/jeremylong/DependencyCheck/releases)
- [Changelog](https://github.com/jeremylong/DependencyCheck/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jeremylong/DependencyCheck/compare/v10.0.3...v11.1.0)

---
updated-dependencies:
- dependency-name: org.owasp:dependency-check-maven
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index ed6085ebd..a85a3c84b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -77,7 +77,7 @@
 
     <properties>
         <jacoco.minCoverage>0.7</jacoco.minCoverage>
-        <dependencyCheck.version>10.0.3</dependencyCheck.version>
+        <dependencyCheck.version>11.1.0</dependencyCheck.version>
         <jackson.version>2.18.1</jackson.version>
         <slf4j.version>2.0.16</slf4j.version>
         <junit.version>5.11.3</junit.version>

From f509cb1667b46eafdbf183c59e95f5ad8b18f4b6 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Mon, 4 Nov 2024 09:57:37 +0100
Subject: [PATCH 290/430] chore(deps): Upgrade to Apache HttpClient 5.4.1

---
 .../src/main/resources/archetype-resources/build.gradle         | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 .../src/main/resources/archetype-resources/build.gradle         | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 .../src/main/resources/archetype-resources/build.gradle         | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 .../src/main/resources/archetype-resources/build.gradle         | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 pom.xml                                                         | 2 +-
 9 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
index 040559554..77b045d57 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
@@ -22,7 +22,7 @@ dependencies {
   }
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
-  testImplementation("org.apache.httpcomponents.client5:httpclient5:5.4")
+  testImplementation("org.apache.httpcomponents.client5:httpclient5:5.4.1")
   testImplementation(platform("org.junit:junit-bom:5.11.3"))
   testImplementation("org.junit.jupiter:junit-jupiter")
 }
diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
index 001de65db..888a5623d 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
@@ -37,7 +37,7 @@
         <dependency>
             <groupId>org.apache.httpcomponents.client5</groupId>
             <artifactId>httpclient5</artifactId>
-            <version>5.4</version>
+            <version>5.4.1</version>
             <scope>test</scope>
         </dependency>
 
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
index 522aa3689..c25f3581b 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
@@ -18,7 +18,7 @@ dependencies {
   )
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
-  testImplementation("org.apache.httpcomponents.client5:httpclient5:5.4")
+  testImplementation("org.apache.httpcomponents.client5:httpclient5:5.4.1")
   testImplementation(platform("org.junit:junit-bom:5.11.3"))
   testImplementation("org.junit.jupiter:junit-jupiter")
 }
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
index bc88be912..bb1726b1d 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
@@ -38,7 +38,7 @@
         <dependency>
             <groupId>org.apache.httpcomponents.client5</groupId>
             <artifactId>httpclient5</artifactId>
-            <version>5.4</version>
+            <version>5.4.1</version>
             <scope>test</scope>
         </dependency>
 
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
index b29bdefd1..391137963 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
@@ -14,7 +14,7 @@ dependencies {
   )
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
-  testImplementation("org.apache.httpcomponents.client5:httpclient5:5.4")
+  testImplementation("org.apache.httpcomponents.client5:httpclient5:5.4.1")
   testImplementation(platform("org.junit:junit-bom:5.11.3"))
   testImplementation("org.junit.jupiter:junit-jupiter")
 }
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
index ef9a61702..51ef3a992 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
@@ -41,7 +41,7 @@
         <dependency>
             <groupId>org.apache.httpcomponents.client5</groupId>
             <artifactId>httpclient5</artifactId>
-            <version>5.4</version>
+            <version>5.4.1</version>
             <scope>test</scope>
         </dependency>
 
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
index e16d78fc7..4ff9dfc37 100644
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
@@ -42,7 +42,7 @@ dependencies {
   implementation ('com.amazonaws:aws-lambda-java-log4j2:1.6.0')
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
-  testImplementation("org.apache.httpcomponents.client5:httpclient5:5.4")
+  testImplementation("org.apache.httpcomponents.client5:httpclient5:5.4.1")
   testImplementation(platform("org.junit:junit-bom:5.11.3"))
   testImplementation("org.junit.jupiter:junit-jupiter")
   testImplementation('org.apache.struts:struts2-junit-plugin:7.0.0-M9') {
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
index 6b4a8dbd8..f64194a56 100644
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
@@ -38,7 +38,7 @@
         <dependency>
             <groupId>org.apache.httpcomponents.client5</groupId>
             <artifactId>httpclient5</artifactId>
-            <version>5.4</version>
+            <version>5.4.1</version>
             <scope>test</scope>
         </dependency>
 
diff --git a/pom.xml b/pom.xml
index 3113a8a71..65b5a0b51 100644
--- a/pom.xml
+++ b/pom.xml
@@ -119,7 +119,7 @@
         <dependency>
             <groupId>org.apache.httpcomponents.client5</groupId>
             <artifactId>httpclient5</artifactId>
-            <version>5.4</version>
+            <version>5.4.1</version>
             <scope>test</scope>
         </dependency>
 

From 3af9fc55319605b1af28da68d9d4b9aa3a7dd609 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Mon, 11 Nov 2024 07:26:41 +0100
Subject: [PATCH 291/430] chore(deps): Upgrade maven-dependency-plugin to 3.8.1

---
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 samples/jersey/pet-store/pom.xml                                | 2 +-
 samples/spring/pet-store/pom.xml                                | 2 +-
 samples/springboot3/alt-pet-store/pom.xml                       | 2 +-
 samples/springboot3/graphql-pet-store/pom.xml                   | 2 +-
 samples/springboot3/pet-store/pom.xml                           | 2 +-
 8 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
index 888a5623d..e4f6a320e 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
@@ -154,7 +154,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-dependency-plugin</artifactId>
-                        <version>3.7.1</version>
+                        <version>3.8.1</version>
                         <executions>
                             <execution>
                                 <id>copy-dependencies</id>
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
index bb1726b1d..35317bd41 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
@@ -177,7 +177,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-dependency-plugin</artifactId>
-                        <version>3.7.1</version>
+                        <version>3.8.1</version>
                         <executions>
                             <execution>
                                 <id>copy-dependencies</id>
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
index 51ef3a992..68e88dc37 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
@@ -137,7 +137,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-dependency-plugin</artifactId>
-                        <version>3.7.1</version>
+                        <version>3.8.1</version>
                         <executions>
                             <execution>
                                 <id>copy-dependencies</id>
diff --git a/samples/jersey/pet-store/pom.xml b/samples/jersey/pet-store/pom.xml
index aa72977fb..c77ff0749 100644
--- a/samples/jersey/pet-store/pom.xml
+++ b/samples/jersey/pet-store/pom.xml
@@ -132,7 +132,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-dependency-plugin</artifactId>
-                        <version>3.7.1</version>
+                        <version>3.8.1</version>
                         <executions>
                             <execution>
                                 <id>copy-dependencies</id>
diff --git a/samples/spring/pet-store/pom.xml b/samples/spring/pet-store/pom.xml
index 9e5560e73..23dee0289 100644
--- a/samples/spring/pet-store/pom.xml
+++ b/samples/spring/pet-store/pom.xml
@@ -153,7 +153,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-dependency-plugin</artifactId>
-                        <version>3.7.1</version>
+                        <version>3.8.1</version>
                         <executions>
                             <execution>
                                 <id>copy-dependencies</id>
diff --git a/samples/springboot3/alt-pet-store/pom.xml b/samples/springboot3/alt-pet-store/pom.xml
index 1bafb4797..4027f09e8 100644
--- a/samples/springboot3/alt-pet-store/pom.xml
+++ b/samples/springboot3/alt-pet-store/pom.xml
@@ -103,7 +103,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-dependency-plugin</artifactId>
-                        <version>3.7.1</version>
+                        <version>3.8.1</version>
                         <executions>
                             <execution>
                                 <id>copy-dependencies</id>
diff --git a/samples/springboot3/graphql-pet-store/pom.xml b/samples/springboot3/graphql-pet-store/pom.xml
index dbb984dab..b001bce57 100644
--- a/samples/springboot3/graphql-pet-store/pom.xml
+++ b/samples/springboot3/graphql-pet-store/pom.xml
@@ -117,7 +117,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-dependency-plugin</artifactId>
-                        <version>3.7.1</version>
+                        <version>3.8.1</version>
                         <executions>
                             <execution>
                                 <id>copy-dependencies</id>
diff --git a/samples/springboot3/pet-store/pom.xml b/samples/springboot3/pet-store/pom.xml
index b259bcd2a..9a70dfb4f 100644
--- a/samples/springboot3/pet-store/pom.xml
+++ b/samples/springboot3/pet-store/pom.xml
@@ -109,7 +109,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-dependency-plugin</artifactId>
-                        <version>3.7.1</version>
+                        <version>3.8.1</version>
                         <executions>
                             <execution>
                                 <id>copy-dependencies</id>

From d7990a7818a85ff33ea9e7cd88a12bff671ae8bb Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Tue, 12 Nov 2024 15:07:29 +0100
Subject: [PATCH 292/430] remove struts code for now (7.0.0 release still not
 available, no user requests to keep it, low download count in 1.x)

---
 aws-serverless-java-container-struts/pom.xml  | 195 ---------
 .../struts/StrutsLambdaContainerHandler.java  | 148 -------
 .../proxy/struts/StrutsLambdaHandler.java     |  41 --
 .../proxy/struts/StrutsAwsProxyTest.java      | 378 ------------------
 .../proxy/struts/echoapp/EchoAction.java      |  53 ---
 .../struts/echoapp/EchoRequestInfoAction.java |  85 ----
 .../src/test/resources/log4j2.xml             |  17 -
 .../src/test/resources/struts.xml             |  29 --
 aws-serverless-struts-archetype/pom.xml       |  80 ----
 .../META-INF/maven/archetype-metadata.xml     |  40 --
 .../resources/archetype-resources/README.md   |  99 -----
 .../archetype-resources/build.gradle          |  65 ---
 .../resources/archetype-resources/pom.xml     | 186 ---------
 .../src/main/assembly/dist.xml                |  31 --
 .../src/main/java/actions/PingController.java |  70 ----
 .../src/main/resources/application.properties |   3 -
 .../src/main/resources/log4j2.xml             |  17 -
 .../src/main/resources/struts.xml             |  45 ---
 .../test/java/StreamLambdaHandlerTest.java    |  90 -----
 .../archetype-resources/template.yml          |  52 ---
 .../projects/base/archetype.properties        |   3 -
 .../src/test/resources/projects/base/goal.txt |   1 -
 samples/struts/pet-store/README.md            |  56 ---
 samples/struts/pet-store/build.gradle         |  41 --
 samples/struts/pet-store/pom.xml              | 177 --------
 .../pet-store/src/main/assembly/dist.xml      |  31 --
 .../sample/struts/actions/PetsController.java |  92 -----
 .../serverless/sample/struts/model/Pet.java   |  69 ----
 .../sample/struts/model/PetData.java          | 111 -----
 .../pet-store/src/main/resources/log4j2.xml   |  17 -
 .../pet-store/src/main/resources/struts.xml   |  44 --
 samples/struts/pet-store/template.yml         |  32 --
 samples/struts/pet-store/test-event.json      | 123 ------
 33 files changed, 2521 deletions(-)
 delete mode 100644 aws-serverless-java-container-struts/pom.xml
 delete mode 100644 aws-serverless-java-container-struts/src/main/java/com/amazonaws/serverless/proxy/struts/StrutsLambdaContainerHandler.java
 delete mode 100644 aws-serverless-java-container-struts/src/main/java/com/amazonaws/serverless/proxy/struts/StrutsLambdaHandler.java
 delete mode 100644 aws-serverless-java-container-struts/src/test/java/com/amazonaws/serverless/proxy/struts/StrutsAwsProxyTest.java
 delete mode 100644 aws-serverless-java-container-struts/src/test/java/com/amazonaws/serverless/proxy/struts/echoapp/EchoAction.java
 delete mode 100644 aws-serverless-java-container-struts/src/test/java/com/amazonaws/serverless/proxy/struts/echoapp/EchoRequestInfoAction.java
 delete mode 100644 aws-serverless-java-container-struts/src/test/resources/log4j2.xml
 delete mode 100644 aws-serverless-java-container-struts/src/test/resources/struts.xml
 delete mode 100644 aws-serverless-struts-archetype/pom.xml
 delete mode 100644 aws-serverless-struts-archetype/src/main/resources/META-INF/maven/archetype-metadata.xml
 delete mode 100644 aws-serverless-struts-archetype/src/main/resources/archetype-resources/README.md
 delete mode 100644 aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
 delete mode 100644 aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
 delete mode 100644 aws-serverless-struts-archetype/src/main/resources/archetype-resources/src/main/assembly/dist.xml
 delete mode 100644 aws-serverless-struts-archetype/src/main/resources/archetype-resources/src/main/java/actions/PingController.java
 delete mode 100644 aws-serverless-struts-archetype/src/main/resources/archetype-resources/src/main/resources/application.properties
 delete mode 100644 aws-serverless-struts-archetype/src/main/resources/archetype-resources/src/main/resources/log4j2.xml
 delete mode 100644 aws-serverless-struts-archetype/src/main/resources/archetype-resources/src/main/resources/struts.xml
 delete mode 100644 aws-serverless-struts-archetype/src/main/resources/archetype-resources/src/test/java/StreamLambdaHandlerTest.java
 delete mode 100644 aws-serverless-struts-archetype/src/main/resources/archetype-resources/template.yml
 delete mode 100644 aws-serverless-struts-archetype/src/test/resources/projects/base/archetype.properties
 delete mode 100644 aws-serverless-struts-archetype/src/test/resources/projects/base/goal.txt
 delete mode 100644 samples/struts/pet-store/README.md
 delete mode 100644 samples/struts/pet-store/build.gradle
 delete mode 100644 samples/struts/pet-store/pom.xml
 delete mode 100644 samples/struts/pet-store/src/main/assembly/dist.xml
 delete mode 100644 samples/struts/pet-store/src/main/java/com/amazonaws/serverless/sample/struts/actions/PetsController.java
 delete mode 100644 samples/struts/pet-store/src/main/java/com/amazonaws/serverless/sample/struts/model/Pet.java
 delete mode 100644 samples/struts/pet-store/src/main/java/com/amazonaws/serverless/sample/struts/model/PetData.java
 delete mode 100644 samples/struts/pet-store/src/main/resources/log4j2.xml
 delete mode 100644 samples/struts/pet-store/src/main/resources/struts.xml
 delete mode 100644 samples/struts/pet-store/template.yml
 delete mode 100644 samples/struts/pet-store/test-event.json

diff --git a/aws-serverless-java-container-struts/pom.xml b/aws-serverless-java-container-struts/pom.xml
deleted file mode 100644
index 4546f4723..000000000
--- a/aws-serverless-java-container-struts/pom.xml
+++ /dev/null
@@ -1,195 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>aws-serverless-java-container-struts</artifactId>
-    <name>AWS Serverless Java container support - Struts implementation</name>
-    <description>Allows Java applications written for the Struts framework to run in AWS Lambda</description>
-    <url>https://aws.amazon.com/lambda</url>
-    <version>2.1.0-SNAPSHOT</version>
-
-    <parent>
-        <groupId>com.amazonaws.serverless</groupId>
-        <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.1.0-SNAPSHOT</version>
-    </parent>
-
-    <properties>
-        <struts.version>7.0.0-M9</struts.version>
-    </properties>
-
-    <dependencies>
-        <!-- Core interfaces for the aws-serverless-java-container project -->
-        <dependency>
-            <groupId>com.amazonaws.serverless</groupId>
-            <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>com.amazonaws.serverless</groupId>
-            <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.1.0-SNAPSHOT</version>
-            <classifier>tests</classifier>
-            <type>test-jar</type>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.struts</groupId>
-            <artifactId>struts2-core</artifactId>
-            <version>${struts.version}</version>
-            <exclusions>
-                <exclusion>
-                    <groupId>commons-io</groupId>
-                    <artifactId>commons-io</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.struts</groupId>
-            <artifactId>struts2-json-plugin</artifactId>
-            <version>${struts.version}</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.struts</groupId>
-            <artifactId>struts2-junit-plugin</artifactId>
-            <version>${struts.version}</version>
-            <scope>test</scope>
-            <exclusions>
-                <exclusion>
-                    <groupId>junit</groupId>
-                    <artifactId>junit</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-
-        <dependency>
-            <groupId>commons-codec</groupId>
-            <artifactId>commons-codec</artifactId>
-            <version>1.17.1</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>com.fasterxml.jackson.core</groupId>
-            <artifactId>jackson-databind</artifactId>
-            <version>${jackson.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>jakarta.el</groupId>
-            <artifactId>jakarta.el-api</artifactId>
-            <version>5.0.1</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>jakarta.servlet.jsp</groupId>
-            <artifactId>jakarta.servlet.jsp-api</artifactId>
-            <version>3.1.0</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.glassfish</groupId>
-            <artifactId>jakarta.el</artifactId>
-            <version>5.0.0-M1</version>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.jacoco</groupId>
-                <artifactId>jacoco-maven-plugin</artifactId>
-                <configuration>
-                    <destFile>${basedir}/target/coverage-reports/jacoco-unit.exec</destFile>
-                    <dataFile>${basedir}/target/coverage-reports/jacoco-unit.exec</dataFile>
-                </configuration>
-                <executions>
-                    <execution>
-                        <id>default-prepare-agent</id>
-                        <goals>
-                            <goal>prepare-agent</goal>
-                        </goals>
-                    </execution>
-                    <execution>
-                        <id>jacoco-site</id>
-                        <phase>package</phase>
-                        <goals>
-                            <goal>report</goal>
-                        </goals>
-                    </execution>
-                    <execution>
-                        <id>jacoco-check</id>
-                        <phase>test</phase>
-                        <goals>
-                            <goal>check</goal>
-                        </goals>
-                        <configuration>
-                            <haltOnFailure>true</haltOnFailure>
-                            <rules><rule>
-                                <element>BUNDLE</element>
-                                <limits>
-                                    <limit>
-                                        <counter>INSTRUCTION</counter>
-                                        <value>COVEREDRATIO</value>
-                                        <minimum>${jacoco.minCoverage}</minimum>
-                                    </limit>
-                                </limits>
-                            </rule></rules>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-            <!-- fork JVM before each struts2 test to make sure we have a clean context -->
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-surefire-plugin</artifactId>
-                <configuration>
-                    <reuseForks>false</reuseForks>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>com.github.spotbugs</groupId>
-                <artifactId>spotbugs-maven-plugin</artifactId>
-                <executions>
-                    <!--
-                        Ensures that SpotBug inspects source code when project is compiled.
-                    -->
-                    <execution>
-                        <id>analyze-compile</id>
-                        <phase>compile</phase>
-                        <goals>
-                            <goal>check</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <groupId>org.owasp</groupId>
-                <artifactId>dependency-check-maven</artifactId>
-                <version>${dependencyCheck.version}</version>
-                <configuration>
-                    <skipProvidedScope>true</skipProvidedScope>
-                    <suppressionFiles>
-                        <suppressionFile>${project.basedir}/../owasp-suppression.xml</suppressionFile>
-                    </suppressionFiles>
-                    <failBuildOnCVSS>7</failBuildOnCVSS>
-                    <failOnError>false</failOnError>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-
-    <repositories>
-        <repository>
-            <id>apache-pre-release</id>
-            <url>https://repository.apache.org/content/repositories/staging/</url>
-            <layout>default</layout>
-        </repository>
-    </repositories>
-</project>
diff --git a/aws-serverless-java-container-struts/src/main/java/com/amazonaws/serverless/proxy/struts/StrutsLambdaContainerHandler.java b/aws-serverless-java-container-struts/src/main/java/com/amazonaws/serverless/proxy/struts/StrutsLambdaContainerHandler.java
deleted file mode 100644
index 257de488c..000000000
--- a/aws-serverless-java-container-struts/src/main/java/com/amazonaws/serverless/proxy/struts/StrutsLambdaContainerHandler.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
- * Copyright 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance
- * with the License. A copy of the License is located at
- *
- * http://aws.amazon.com/apache2.0/
- *
- * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES
- * OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
- * and limitations under the License.
- */
-package com.amazonaws.serverless.proxy.struts;
-
-import com.amazonaws.serverless.exceptions.ContainerInitializationException;
-import com.amazonaws.serverless.proxy.AwsHttpApiV2SecurityContextWriter;
-import com.amazonaws.serverless.proxy.AwsProxyExceptionHandler;
-import com.amazonaws.serverless.proxy.AwsProxySecurityContextWriter;
-import com.amazonaws.serverless.proxy.ExceptionHandler;
-import com.amazonaws.serverless.proxy.RequestReader;
-import com.amazonaws.serverless.proxy.ResponseWriter;
-import com.amazonaws.serverless.proxy.SecurityContextWriter;
-import com.amazonaws.serverless.proxy.internal.servlet.AwsHttpApiV2HttpServletRequestReader;
-import com.amazonaws.serverless.proxy.internal.servlet.AwsHttpServletRequest;
-import com.amazonaws.serverless.proxy.internal.servlet.AwsHttpServletResponse;
-import com.amazonaws.serverless.proxy.internal.servlet.AwsLambdaServletContainerHandler;
-import com.amazonaws.serverless.proxy.internal.servlet.AwsProxyHttpServletRequestReader;
-import com.amazonaws.serverless.proxy.internal.servlet.AwsProxyHttpServletResponseWriter;
-import com.amazonaws.serverless.proxy.internal.testutils.Timer;
-import com.amazonaws.serverless.proxy.model.AwsProxyRequest;
-import com.amazonaws.serverless.proxy.model.AwsProxyResponse;
-import com.amazonaws.serverless.proxy.model.HttpApiV2ProxyRequest;
-import com.amazonaws.services.lambda.runtime.Context;
-import org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import jakarta.servlet.DispatcherType;
-import jakarta.servlet.FilterRegistration;
-import jakarta.servlet.Servlet;
-import jakarta.servlet.http.HttpServletRequest;
-import java.util.EnumSet;
-import java.util.concurrent.CountDownLatch;
-
-/**
- * A Lambda handler to initialize the Struts filter and proxy the requests.
- *
- * @param <RequestType>  request type
- * @param <ResponseType> response type
- */
-public class StrutsLambdaContainerHandler<RequestType, ResponseType> extends AwsLambdaServletContainerHandler<RequestType, ResponseType, HttpServletRequest, AwsHttpServletResponse> {
-
-    private static final Logger log = LoggerFactory.getLogger(StrutsLambdaContainerHandler.class);
-
-    public static final String HEADER_STRUTS_STATUS_CODE = "X-Struts-StatusCode";
-
-    private static final String TIMER_STRUTS_CONTAINER_CONSTRUCTOR = "STRUTS_CONTAINER_CONSTRUCTOR";
-    private static final String TIMER_STRUTS_HANDLE_REQUEST = "STRUTS_HANDLE_REQUEST";
-    private static final String TIMER_STRUTS_COLD_START_INIT = "STRUTS_COLD_START_INIT";
-    private static final String STRUTS_FILTER_NAME = "StrutsFilter";
-
-    private boolean initialized;
-
-    public static StrutsLambdaContainerHandler<AwsProxyRequest, AwsProxyResponse> getAwsProxyHandler() {
-        return new StrutsLambdaContainerHandler(
-                AwsProxyRequest.class,
-                AwsProxyResponse.class,
-                new AwsProxyHttpServletRequestReader(),
-                new AwsProxyHttpServletResponseWriter(),
-                new AwsProxySecurityContextWriter(),
-                new AwsProxyExceptionHandler());
-    }
-
-    public static StrutsLambdaContainerHandler<HttpApiV2ProxyRequest, AwsProxyResponse> getHttpApiV2ProxyHandler() {
-        return new StrutsLambdaContainerHandler(
-                HttpApiV2ProxyRequest.class,
-                AwsProxyResponse.class,
-                new AwsHttpApiV2HttpServletRequestReader(),
-                new AwsProxyHttpServletResponseWriter(true),
-                new AwsHttpApiV2SecurityContextWriter(),
-                new AwsProxyExceptionHandler());
-    }
-
-    public StrutsLambdaContainerHandler(Class<RequestType> requestTypeClass,
-                                        Class<ResponseType> responseTypeClass,
-                                        RequestReader<RequestType, HttpServletRequest> requestReader,
-                                        ResponseWriter<AwsHttpServletResponse, ResponseType> responseWriter,
-                                        SecurityContextWriter<RequestType> securityContextWriter,
-                                        ExceptionHandler<ResponseType> exceptionHandler) {
-
-        super(requestTypeClass, responseTypeClass, requestReader, responseWriter, securityContextWriter, exceptionHandler);
-        Timer.start(TIMER_STRUTS_CONTAINER_CONSTRUCTOR);
-        this.initialized = false;
-        Timer.stop(TIMER_STRUTS_CONTAINER_CONSTRUCTOR);
-    }
-
-    @Override
-    protected AwsHttpServletResponse getContainerResponse(HttpServletRequest request, CountDownLatch latch) {
-        return new AwsHttpServletResponse(request, latch);
-    }
-
-    @Override
-    protected void handleRequest(HttpServletRequest httpServletRequest,
-                                 AwsHttpServletResponse httpServletResponse,
-                                 Context lambdaContext) throws Exception {
-        Timer.start(TIMER_STRUTS_HANDLE_REQUEST);
-        if (!this.initialized) {
-            initialize();
-        }
-
-        if (AwsHttpServletRequest.class.isAssignableFrom(httpServletRequest.getClass())) {
-            ((AwsHttpServletRequest)httpServletRequest).setServletContext(this.getServletContext());
-        }
-        this.doFilter(httpServletRequest, httpServletResponse, null);
-        String responseStatusCode = httpServletResponse.getHeader(HEADER_STRUTS_STATUS_CODE);
-        if (responseStatusCode != null) {
-            httpServletResponse.setStatus(Integer.parseInt(responseStatusCode));
-        }
-        Timer.stop(TIMER_STRUTS_HANDLE_REQUEST);
-    }
-
-    @Override
-    public void initialize() throws ContainerInitializationException {
-        log.info("Initialize Struts Lambda Application ...");
-        Timer.start(TIMER_STRUTS_COLD_START_INIT);
-        try {
-            if (this.startupHandler != null) {
-                this.startupHandler.onStartup(this.getServletContext());
-            }
-            StrutsPrepareAndExecuteFilter filter = new StrutsPrepareAndExecuteFilter();
-            FilterRegistration.Dynamic filterRegistration = this.getServletContext()
-                    .addFilter(STRUTS_FILTER_NAME, filter);
-            filterRegistration.addMappingForUrlPatterns(
-                    EnumSet.of(DispatcherType.REQUEST, DispatcherType.ASYNC, DispatcherType.INCLUDE, DispatcherType.FORWARD),
-                    true, "/*");
-        } catch (Exception e) {
-            throw new ContainerInitializationException("Could not initialize Struts container", e);
-        }
-
-        this.initialized = true;
-        Timer.stop(TIMER_STRUTS_COLD_START_INIT);
-        log.info("... initialize of Struts Lambda Application completed!");
-    }
-
-    public Servlet getServlet() {
-        return null;
-    }
-}
diff --git a/aws-serverless-java-container-struts/src/main/java/com/amazonaws/serverless/proxy/struts/StrutsLambdaHandler.java b/aws-serverless-java-container-struts/src/main/java/com/amazonaws/serverless/proxy/struts/StrutsLambdaHandler.java
deleted file mode 100644
index 0e1ccfa17..000000000
--- a/aws-serverless-java-container-struts/src/main/java/com/amazonaws/serverless/proxy/struts/StrutsLambdaHandler.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance
- * with the License. A copy of the License is located at
- *
- * http://aws.amazon.com/apache2.0/
- *
- * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES
- * OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
- * and limitations under the License.
- */
-package com.amazonaws.serverless.proxy.struts;
-
-import com.amazonaws.serverless.proxy.model.AwsProxyRequest;
-import com.amazonaws.serverless.proxy.model.AwsProxyResponse;
-import com.amazonaws.services.lambda.runtime.Context;
-import com.amazonaws.services.lambda.runtime.RequestStreamHandler;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-
-/**
- * The lambda handler to handle the requests.
- * <p>
- * <code>
- * com.amazonaws.serverless.proxy.struts.StrutsLambdaHandler::handleRequest
- * </code>
- */
-public class StrutsLambdaHandler implements RequestStreamHandler {
-
-    private final StrutsLambdaContainerHandler<AwsProxyRequest, AwsProxyResponse> handler = StrutsLambdaContainerHandler
-            .getAwsProxyHandler();
-
-    @Override
-    public void handleRequest(InputStream inputStream, OutputStream outputStream, Context context)
-            throws IOException {
-        handler.proxyStream(inputStream, outputStream, context);
-    }
-}
diff --git a/aws-serverless-java-container-struts/src/test/java/com/amazonaws/serverless/proxy/struts/StrutsAwsProxyTest.java b/aws-serverless-java-container-struts/src/test/java/com/amazonaws/serverless/proxy/struts/StrutsAwsProxyTest.java
deleted file mode 100644
index 6d7e2a37f..000000000
--- a/aws-serverless-java-container-struts/src/test/java/com/amazonaws/serverless/proxy/struts/StrutsAwsProxyTest.java
+++ /dev/null
@@ -1,378 +0,0 @@
-/*
- * Copyright 2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance
- * with the License. A copy of the License is located at
- *
- * http://aws.amazon.com/apache2.0/
- *
- * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES
- * OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
- * and limitations under the License.
- */
-package com.amazonaws.serverless.proxy.struts;
-
-
-import com.amazonaws.serverless.proxy.internal.testutils.AwsProxyRequestBuilder;
-import com.amazonaws.serverless.proxy.internal.testutils.MockLambdaContext;
-import com.amazonaws.serverless.proxy.model.AwsProxyRequest;
-import com.amazonaws.serverless.proxy.model.AwsProxyResponse;
-import com.amazonaws.serverless.proxy.model.HttpApiV2ProxyRequest;
-import com.amazonaws.serverless.proxy.struts.echoapp.EchoAction;
-import com.amazonaws.services.lambda.runtime.Context;
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.core.type.TypeReference;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import org.apache.commons.codec.binary.Base64;
-import org.apache.struts2.junit.StrutsRestTestCase;
-import org.junit.jupiter.params.ParameterizedTest;
-import org.junit.jupiter.params.provider.MethodSource;
-
-import jakarta.ws.rs.core.Response;
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-import java.net.URLDecoder;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.UUID;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertTrue;
-import static org.junit.jupiter.api.Assertions.fail;
-import static org.junit.jupiter.api.Assumptions.assumeTrue;
-
-/**
- * Unit test class for the Struts2 AWS_PROXY default implementation
- */
-public class StrutsAwsProxyTest extends StrutsRestTestCase<EchoAction> {
-    private static final String CUSTOM_HEADER_KEY = "x-custom-header";
-    private static final String CUSTOM_HEADER_VALUE = "my-custom-value";
-    private static final String AUTHORIZER_PRINCIPAL_ID = "test-principal-" + UUID.randomUUID().toString();
-    private static final String HTTP_METHOD_GET = "GET";
-    private static final String QUERY_STRING_MODE = "mode";
-    private static final String QUERY_STRING_KEY = "message";
-    private static final String QUERY_STRING_ENCODED_VALUE = "Hello Struts2";
-    private static final String USER_PRINCIPAL = "user1";
-    private static final String CONTENT_TYPE_APPLICATION_JSON = "application/json; charset=UTF-8";
-
-
-    private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
-    private final StrutsLambdaContainerHandler<AwsProxyRequest, AwsProxyResponse> handler = StrutsLambdaContainerHandler
-            .getAwsProxyHandler();
-    private final StrutsLambdaContainerHandler<HttpApiV2ProxyRequest, AwsProxyResponse> httpApiHandler = StrutsLambdaContainerHandler
-            .getHttpApiV2ProxyHandler();
-    private final Context lambdaContext = new MockLambdaContext();
-    private String type;
-
-    public void initStrutsAwsProxyTest(String reqType) {
-        type = reqType;
-    }
-
-    public static Collection<Object> data() {
-        return Arrays.asList(new Object[]{"API_GW", "ALB", "HTTP_API"});
-    }
-
-    private AwsProxyResponse executeRequest(AwsProxyRequestBuilder requestBuilder, Context lambdaContext) {
-        switch (type) {
-            case "API_GW":
-                return handler.proxy(requestBuilder.build(), lambdaContext);
-            case "ALB":
-                return handler.proxy(requestBuilder.alb().build(), lambdaContext);
-            case "HTTP_API":
-                return httpApiHandler.proxy(requestBuilder.toHttpApiV2Request(), lambdaContext);
-            default:
-                throw new RuntimeException("Unknown request type: " + type);
-        }
-    }
-
-    @MethodSource("data")
-    @ParameterizedTest
-    void headers_getHeaders_echo(String reqType) {
-        initStrutsAwsProxyTest(reqType);
-        AwsProxyRequestBuilder request = new AwsProxyRequestBuilder("/echo-request-info", HTTP_METHOD_GET)
-                .queryString(QUERY_STRING_MODE, "headers")
-                .header(CUSTOM_HEADER_KEY, CUSTOM_HEADER_VALUE)
-                .json();
-
-        AwsProxyResponse output = executeRequest(request, lambdaContext);
-        assertEquals(200, output.getStatusCode());
-        assertEquals(CONTENT_TYPE_APPLICATION_JSON, output.getMultiValueHeaders().getFirst("Content-Type"));
-
-        validateMapResponseModel(output);
-    }
-
-    @MethodSource("data")
-    @ParameterizedTest
-    void context_servletResponse_setCustomHeader(String reqType) {
-        initStrutsAwsProxyTest(reqType);
-        AwsProxyRequestBuilder request = new AwsProxyRequestBuilder("/echo", HTTP_METHOD_GET)
-                .queryString("customHeader", "true")
-                .json();
-
-        AwsProxyResponse output = executeRequest(request, lambdaContext);
-        assertEquals(200, output.getStatusCode());
-        assertTrue(output.getMultiValueHeaders().containsKey("XX"));
-    }
-
-    @MethodSource("data")
-    @ParameterizedTest
-    void context_serverInfo_correctContext(String reqType) {
-        initStrutsAwsProxyTest(reqType);
-        assumeTrue("API_GW".equals(type));
-        AwsProxyRequestBuilder request = new AwsProxyRequestBuilder("/echo", HTTP_METHOD_GET)
-                .queryString(QUERY_STRING_KEY, "Hello Struts2")
-                .header("Content-Type", "application/json")
-                .queryString("contentType", "true");
-        AwsProxyResponse output = executeRequest(request, lambdaContext);
-        assertEquals(200, output.getStatusCode());
-        assertEquals(CONTENT_TYPE_APPLICATION_JSON, output.getMultiValueHeaders().getFirst("Content-Type"));
-
-        validateSingleValueModel(output, "Hello Struts2");
-    }
-
-    @MethodSource("data")
-    @ParameterizedTest
-    void queryString_uriInfo_echo(String reqType) {
-        initStrutsAwsProxyTest(reqType);
-        AwsProxyRequestBuilder request = new AwsProxyRequestBuilder("/echo-request-info", HTTP_METHOD_GET)
-                .queryString(QUERY_STRING_MODE, "query-string")
-                .queryString(CUSTOM_HEADER_KEY, CUSTOM_HEADER_VALUE)
-                .json();
-
-
-        AwsProxyResponse output = executeRequest(request, lambdaContext);
-        assertEquals(200, output.getStatusCode());
-        assertEquals(CONTENT_TYPE_APPLICATION_JSON, output.getMultiValueHeaders().getFirst("Content-Type"));
-
-        validateMapResponseModel(output);
-    }
-
-    @MethodSource("data")
-    @ParameterizedTest
-    void requestScheme_valid_expectHttps(String reqType) {
-        initStrutsAwsProxyTest(reqType);
-        AwsProxyRequestBuilder request = new AwsProxyRequestBuilder("/echo-request-info", HTTP_METHOD_GET)
-                .queryString(QUERY_STRING_MODE, "scheme")
-                .queryString(QUERY_STRING_KEY, QUERY_STRING_ENCODED_VALUE)
-                .json();
-
-        AwsProxyResponse output = executeRequest(request, lambdaContext);
-        assertEquals(200, output.getStatusCode());
-        assertEquals(CONTENT_TYPE_APPLICATION_JSON, output.getMultiValueHeaders().getFirst("Content-Type"));
-
-        validateSingleValueModel(output, "https");
-    }
-
-    @MethodSource("data")
-    @ParameterizedTest
-    void authorizer_securityContext_customPrincipalSuccess(String reqType) {
-        initStrutsAwsProxyTest(reqType);
-        assumeTrue("API_GW".equals(type));
-        AwsProxyRequestBuilder request = new AwsProxyRequestBuilder("/echo-request-info", HTTP_METHOD_GET)
-                .queryString(QUERY_STRING_MODE, "principal")
-                .json()
-                .authorizerPrincipal(AUTHORIZER_PRINCIPAL_ID);
-
-        AwsProxyResponse output = executeRequest(request, lambdaContext);
-        assertEquals(200, output.getStatusCode());
-        assertEquals(CONTENT_TYPE_APPLICATION_JSON, output.getMultiValueHeaders().getFirst("Content-Type"));
-
-        validateSingleValueModel(output, AUTHORIZER_PRINCIPAL_ID);
-    }
-
-    @MethodSource("data")
-    @ParameterizedTest
-    void errors_unknownRoute_expect404(String reqType) {
-        initStrutsAwsProxyTest(reqType);
-        AwsProxyRequestBuilder request = new AwsProxyRequestBuilder("/unknown", HTTP_METHOD_GET);
-
-        AwsProxyResponse output = executeRequest(request, lambdaContext);
-        assertEquals(404, output.getStatusCode());
-    }
-
-    @MethodSource("data")
-    @ParameterizedTest
-    void error_contentType_invalidContentType(String reqType) {
-        initStrutsAwsProxyTest(reqType);
-        AwsProxyRequestBuilder request = new AwsProxyRequestBuilder("/echo-request-info", "POST")
-                .queryString(QUERY_STRING_MODE, "content-type")
-                .header("Content-Type", "application/octet-stream")
-                .body("asdasdasd");
-
-        AwsProxyResponse output = executeRequest(request, lambdaContext);
-        assertEquals(415, output.getStatusCode());
-    }
-
-    @MethodSource("data")
-    @ParameterizedTest
-    void error_statusCode_methodNotAllowed(String reqType) {
-        initStrutsAwsProxyTest(reqType);
-        AwsProxyRequestBuilder request = new AwsProxyRequestBuilder("/echo-request-info", "POST")
-                .queryString(QUERY_STRING_MODE, "not-allowed")
-                .json();
-
-        AwsProxyResponse output = executeRequest(request, lambdaContext);
-        assertEquals(405, output.getStatusCode());
-    }
-
-
-    @MethodSource("data")
-    @ParameterizedTest
-    void responseBody_responseWriter_validBody(String reqType) throws JsonProcessingException {
-        initStrutsAwsProxyTest(reqType);
-        Map<String, String> value = new HashMap<>();
-        value.put(QUERY_STRING_KEY, CUSTOM_HEADER_VALUE);
-        AwsProxyRequestBuilder request = new AwsProxyRequestBuilder("/echo", "POST")
-                .json()
-                .body(OBJECT_MAPPER.writeValueAsString(value));
-
-        AwsProxyResponse output = executeRequest(request, lambdaContext);
-        assertEquals(200, output.getStatusCode());
-        assertNotNull(output.getBody());
-
-        validateSingleValueModel(output, "{\"message\":\"my-custom-value\"}");
-    }
-
-    @MethodSource("data")
-    @ParameterizedTest
-    void statusCode_responseStatusCode_customStatusCode(String reqType) {
-        initStrutsAwsProxyTest(reqType);
-        AwsProxyRequestBuilder request = new AwsProxyRequestBuilder("/echo-request-info", HTTP_METHOD_GET)
-                .queryString(QUERY_STRING_MODE, "custom-status-code")
-                .queryString("status", "201")
-                .json();
-
-        AwsProxyResponse output = executeRequest(request, lambdaContext);
-        assertEquals(201, output.getStatusCode());
-    }
-
-    @MethodSource("data")
-    @ParameterizedTest
-    void base64_binaryResponse_base64Encoding(String reqType) {
-        initStrutsAwsProxyTest(reqType);
-        AwsProxyRequestBuilder request = new AwsProxyRequestBuilder("/echo", HTTP_METHOD_GET);
-
-        AwsProxyResponse response = executeRequest(request, lambdaContext);
-        assertNotNull(response.getBody());
-        assertTrue(Base64.isBase64(response.getBody()));
-    }
-
-    @MethodSource("data")
-    @ParameterizedTest
-    void exception_mapException_mapToNotImplemented(String reqType) {
-        initStrutsAwsProxyTest(reqType);
-        AwsProxyRequestBuilder request = new AwsProxyRequestBuilder("/echo-request-info", "POST")
-                .queryString(QUERY_STRING_MODE, "not-implemented");
-
-        AwsProxyResponse response = executeRequest(request, lambdaContext);
-        assertNotNull(response.getBody());
-        assertEquals("null", response.getBody());
-        assertEquals(Response.Status.NOT_IMPLEMENTED.getStatusCode(), response.getStatusCode());
-    }
-
-    @MethodSource("data")
-    @ParameterizedTest
-    void stripBasePath_route_shouldRouteCorrectly(String reqType) {
-        initStrutsAwsProxyTest(reqType);
-        AwsProxyRequestBuilder request = new AwsProxyRequestBuilder("/custompath/echo", HTTP_METHOD_GET)
-                .json()
-                .queryString(QUERY_STRING_KEY, "stripped");
-        handler.stripBasePath("/custompath");
-        AwsProxyResponse output = executeRequest(request, lambdaContext);
-        assertEquals(200, output.getStatusCode());
-        validateSingleValueModel(output, "stripped");
-        handler.stripBasePath("");
-    }
-
-    @MethodSource("data")
-    @ParameterizedTest
-    void stripBasePath_route_shouldReturn404(String reqType) {
-        initStrutsAwsProxyTest(reqType);
-        AwsProxyRequestBuilder request = new AwsProxyRequestBuilder("/custompath/echo/status-code", HTTP_METHOD_GET)
-                .json()
-                .queryString("status", "201");
-        handler.stripBasePath("/custom");
-        AwsProxyResponse output = executeRequest(request, lambdaContext);
-        assertEquals(404, output.getStatusCode());
-        handler.stripBasePath("");
-    }
-
-    @MethodSource("data")
-    @ParameterizedTest
-    void securityContext_injectPrincipal_expectPrincipalName(String reqType) {
-        initStrutsAwsProxyTest(reqType);
-        assumeTrue("API_GW".equals(type));
-        AwsProxyRequestBuilder request = new AwsProxyRequestBuilder("/echo-request-info", HTTP_METHOD_GET)
-                .queryString(QUERY_STRING_MODE, "principal")
-                .authorizerPrincipal(USER_PRINCIPAL);
-
-        AwsProxyResponse resp = executeRequest(request, lambdaContext);
-        assertEquals(200, resp.getStatusCode());
-        validateSingleValueModel(resp, USER_PRINCIPAL);
-    }
-
-    @MethodSource("data")
-    @ParameterizedTest
-    void queryParam_encoding_expectUnencodedParam(String reqType) {
-        initStrutsAwsProxyTest(reqType);
-        assumeTrue("API_GW".equals(type));
-        String paramValue = "p%2Fz%2B3";
-        String decodedParam = "";
-        try {
-            decodedParam = URLDecoder.decode(paramValue, "UTF-8");
-        } catch (UnsupportedEncodingException e) {
-            e.printStackTrace();
-            fail("Could not decode parameter");
-        }
-        AwsProxyRequestBuilder request = new AwsProxyRequestBuilder("/echo", HTTP_METHOD_GET).queryString(QUERY_STRING_KEY, decodedParam);
-
-        AwsProxyResponse resp = executeRequest(request, lambdaContext);
-        assertEquals(200, resp.getStatusCode());
-        validateSingleValueModel(resp, decodedParam);
-    }
-
-    @MethodSource("data")
-    @ParameterizedTest
-    void queryParam_encoding_expectEncodedParam(String reqType) {
-        initStrutsAwsProxyTest(reqType);
-        assumeTrue("API_GW".equals(type));
-        String paramValue = "p%2Fz%2B3";
-        AwsProxyRequestBuilder request = new AwsProxyRequestBuilder("/echo", HTTP_METHOD_GET).queryString(QUERY_STRING_KEY, paramValue);
-
-        AwsProxyResponse resp = executeRequest(request, lambdaContext);
-        assertEquals(200, resp.getStatusCode());
-        validateSingleValueModel(resp, paramValue);
-    }
-
-
-    private void validateMapResponseModel(AwsProxyResponse output) {
-        validateMapResponseModel(output, CUSTOM_HEADER_KEY, CUSTOM_HEADER_VALUE);
-    }
-
-    private void validateMapResponseModel(AwsProxyResponse output, String key, String value) {
-        try {
-            TypeReference<HashMap<String, Object>> typeRef
-                    = new TypeReference<HashMap<String, Object>>() {
-            };
-            HashMap<String, Object> response = OBJECT_MAPPER.readValue(output.getBody(), typeRef);
-            assertNotNull(response.get(key));
-            assertEquals(value, response.get(key));
-        } catch (IOException e) {
-            e.printStackTrace();
-            fail("Exception while parsing response body: " + e.getMessage());
-        }
-    }
-
-    private void validateSingleValueModel(AwsProxyResponse output, String value) {
-        try {
-            assertNotNull(output.getBody());
-            assertEquals(value, OBJECT_MAPPER.readerFor(String.class).readValue(output.getBody()));
-        } catch (Exception e) {
-            e.printStackTrace();
-            fail("Exception while parsing response body: " + e.getMessage());
-        }
-    }
-}
diff --git a/aws-serverless-java-container-struts/src/test/java/com/amazonaws/serverless/proxy/struts/echoapp/EchoAction.java b/aws-serverless-java-container-struts/src/test/java/com/amazonaws/serverless/proxy/struts/echoapp/EchoAction.java
deleted file mode 100644
index ad6c63180..000000000
--- a/aws-serverless-java-container-struts/src/test/java/com/amazonaws/serverless/proxy/struts/echoapp/EchoAction.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package com.amazonaws.serverless.proxy.struts.echoapp;
-
-import com.opensymphony.xwork2.ActionSupport;
-import org.apache.commons.io.IOUtils;
-import org.apache.struts2.ServletActionContext;
-
-import jakarta.servlet.http.HttpServletRequest;
-import jakarta.servlet.http.HttpServletResponse;
-import java.io.IOException;
-
-
-public class EchoAction extends ActionSupport {
-
-    private String message;
-
-    public String execute() throws IOException {
-        HttpServletRequest request = ServletActionContext.getRequest();
-
-        if (message == null && requestHasBody(request)) {
-            message = IOUtils.toString(request.getReader());
-        }
-
-        return SUCCESS;
-    }
-
-    public String getMessage() {
-        return message;
-    }
-
-    public void setMessage(String message) {
-        this.message = message;
-    }
-
-    public void setCustomHeader(boolean customHeader) {
-        if (customHeader) {
-            HttpServletResponse response = ServletActionContext.getResponse();
-            response.setHeader("XX", "FOO");
-        }
-    }
-
-
-    public void setContentType(boolean contentType) {
-        if (contentType) {
-            HttpServletResponse response = ServletActionContext.getResponse();
-            response.setContentType("application/json");
-        }
-    }
-
-    private boolean requestHasBody(HttpServletRequest request) throws IOException {
-        return ("POST".equalsIgnoreCase(request.getMethod()) || "PUT".equalsIgnoreCase(request.getMethod())) && request.getReader() != null;
-    }
-
-}
diff --git a/aws-serverless-java-container-struts/src/test/java/com/amazonaws/serverless/proxy/struts/echoapp/EchoRequestInfoAction.java b/aws-serverless-java-container-struts/src/test/java/com/amazonaws/serverless/proxy/struts/echoapp/EchoRequestInfoAction.java
deleted file mode 100644
index e810f3197..000000000
--- a/aws-serverless-java-container-struts/src/test/java/com/amazonaws/serverless/proxy/struts/echoapp/EchoRequestInfoAction.java
+++ /dev/null
@@ -1,85 +0,0 @@
-package com.amazonaws.serverless.proxy.struts.echoapp;
-
-import com.amazonaws.serverless.proxy.RequestReader;
-import com.amazonaws.serverless.proxy.model.AwsProxyRequestContext;
-import com.opensymphony.xwork2.ActionSupport;
-import org.apache.struts2.ServletActionContext;
-
-import jakarta.servlet.http.HttpServletRequest;
-import jakarta.servlet.http.HttpServletResponse;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.Map;
-
-
-public class EchoRequestInfoAction extends ActionSupport {
-
-    private String mode = "principal";
-    private Object result = null;
-
-    public String execute() {
-
-        HttpServletRequest request = ServletActionContext.getRequest();
-        AwsProxyRequestContext awsProxyRequestContext =
-                (AwsProxyRequestContext) request
-                        .getAttribute(RequestReader.API_GATEWAY_CONTEXT_PROPERTY);
-
-        switch (mode) {
-            case "principal":
-                result = awsProxyRequestContext.getAuthorizer().getPrincipalId();
-                break;
-            case "scheme":
-                result = request.getScheme();
-                break;
-            case "content-type":
-                if (request.getContentType().contains("application/octet-stream")) {
-                    ServletActionContext.getResponse().setStatus(HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE);
-                }
-                result = request.getContentType();
-                break;
-            case "not-allowed":
-                ServletActionContext.getResponse().setStatus(HttpServletResponse.SC_METHOD_NOT_ALLOWED);
-                break;
-            case "custom-status-code":
-                ServletActionContext.getResponse().setStatus(HttpServletResponse.SC_CREATED);
-                break;
-            case "not-implemented":
-                ServletActionContext.getResponse().setStatus(HttpServletResponse.SC_NOT_IMPLEMENTED);
-                break;
-            case "headers":
-                Map<String, String> headers = new HashMap<>();
-
-                Enumeration<String> headerNames = request.getHeaderNames();
-                while (headerNames.hasMoreElements()) {
-                    String headerName = headerNames.nextElement();
-                    headers.put(headerName, request.getHeader(headerName));
-                }
-
-                result = headers;
-                break;
-            case "query-string":
-                Map<String, String> params = new HashMap<>();
-
-                Enumeration<String> parameterNames = request.getParameterNames();
-                while (parameterNames.hasMoreElements()) {
-                    String parameterName = parameterNames.nextElement();
-                    params.put(parameterName, request.getParameter(parameterName));
-                }
-
-                result = params;
-                break;
-            default:
-                throw new IllegalArgumentException("Invalid mode requested: " + mode);
-        }
-
-        return SUCCESS;
-    }
-
-    public Object getResult() {
-        return result;
-    }
-
-    public void setMode(String mode) {
-        this.mode = mode;
-    }
-}
diff --git a/aws-serverless-java-container-struts/src/test/resources/log4j2.xml b/aws-serverless-java-container-struts/src/test/resources/log4j2.xml
deleted file mode 100644
index 55ed0d21c..000000000
--- a/aws-serverless-java-container-struts/src/test/resources/log4j2.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Configuration packages="com.amazonaws.services.lambda.runtime.log4j2.LambdaAppender">
-    <Appenders>
-        <Lambda name="Lambda">
-            <PatternLayout>
-                <pattern>%d{yyyy-MM-dd HH:mm:ss} %X{AWSRequestId} %-5p %c{1}:%L - %m%n</pattern>
-            </PatternLayout>
-        </Lambda>
-    </Appenders>
-    <Loggers>
-        <Logger name="com.opensymphony.xwork2" level="warn"/>
-        <Logger name="org.apache.struts2" level="warn"/>
-        <Root level="info">
-            <AppenderRef ref="Lambda"/>
-        </Root>
-    </Loggers>
-</Configuration>
\ No newline at end of file
diff --git a/aws-serverless-java-container-struts/src/test/resources/struts.xml b/aws-serverless-java-container-struts/src/test/resources/struts.xml
deleted file mode 100644
index 92070be83..000000000
--- a/aws-serverless-java-container-struts/src/test/resources/struts.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE struts PUBLIC
-        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
-        "http://struts.apache.org/dtds/struts-2.5.dtd">
-<struts>
-
-    <constant name="struts.action.extension" value=","/>
-
-    <package name="test" extends="json-default" namespace="/">
-        <action name="echo" class="com.amazonaws.serverless.proxy.struts.echoapp.EchoAction" method="execute">
-            <result type="json">
-                <param name="root">
-                    message
-                </param>
-            </result>
-        </action>
-
-        <action name="echo-request-info" class="com.amazonaws.serverless.proxy.struts.echoapp.EchoRequestInfoAction"
-                method="execute">
-            <result type="json">
-                <param name="root">
-                    result
-                </param>
-            </result>
-        </action>
-    </package>
-
-
-</struts>
\ No newline at end of file
diff --git a/aws-serverless-struts-archetype/pom.xml b/aws-serverless-struts-archetype/pom.xml
deleted file mode 100644
index 9d6cda35c..000000000
--- a/aws-serverless-struts-archetype/pom.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <parent>
-        <groupId>com.amazonaws.serverless</groupId>
-        <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.1.0-SNAPSHOT</version>
-    </parent>
-
-    <groupId>com.amazonaws.serverless.archetypes</groupId>
-    <artifactId>aws-serverless-struts-archetype</artifactId>
-    <version>2.1.0-SNAPSHOT</version>
-    <packaging>maven-archetype</packaging>
-
-    <scm>
-        <url>https://github.com/aws/serverless-java-container.git</url>
-      <tag>HEAD</tag>
-  </scm>
-
-    <licenses>
-        <license>
-            <name>The Apache Software License, Version 2.0</name>
-            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
-            <distribution>repo</distribution>
-        </license>
-    </licenses>
-
-    <build>
-        <resources>
-            <resource>
-                <directory>src/main/resources</directory>
-                <filtering>true</filtering>
-                <includes>
-                    <include>archetype-resources/pom.xml</include>
-                    <include>archetype-resources/README.md</include>
-                </includes>
-            </resource>
-            <resource>
-                <directory>src/main/resources</directory>
-                <filtering>false</filtering>
-                <excludes>
-                    <exclude>archetype-resources/pom.xml</exclude>
-                </excludes>
-            </resource>
-        </resources>
-
-        <extensions>
-            <extension>
-                <groupId>org.apache.maven.archetype</groupId>
-                <artifactId>archetype-packaging</artifactId>
-                <version>3.0.1</version>
-            </extension>
-        </extensions>
-
-        <pluginManagement>
-            <plugins>
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-resources-plugin</artifactId>
-                    <version>3.3.1</version>
-                    <configuration>
-                        <escapeString>\</escapeString>
-                    </configuration>
-                </plugin>
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-archetype-plugin</artifactId>
-                    <version>3.0.1</version>
-                    <executions>
-                        <execution>
-                            <goals>
-                                <goal>integration-test</goal>
-                            </goals>
-                        </execution>
-                    </executions>
-                </plugin>
-            </plugins>
-        </pluginManagement>
-    </build>
-</project>
diff --git a/aws-serverless-struts-archetype/src/main/resources/META-INF/maven/archetype-metadata.xml b/aws-serverless-struts-archetype/src/main/resources/META-INF/maven/archetype-metadata.xml
deleted file mode 100644
index ad8b86248..000000000
--- a/aws-serverless-struts-archetype/src/main/resources/META-INF/maven/archetype-metadata.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-<archetype-descriptor name="aws-serverless-springboot-archetype"
-                      xmlns="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0"
-                      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-                      xsi:schemaLocation="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0 http://maven.apache.org/xsd/archetype-descriptor-1.0.0.xsd">
-    <fileSets>
-        <fileSet filtered="true" packaged="true">
-            <directory>src/main/java</directory>
-            <includes>
-                <include>**/*.java</include>
-            </includes>
-        </fileSet>
-        <fileSet filtered="true" packaged="true">
-            <directory>src/test/java</directory>
-            <includes>
-                <include>**/*.java</include>
-            </includes>
-        </fileSet>
-        <fileSet>
-            <directory>src/main/resources</directory>
-            <includes>
-                <include>**/*.properties</include>
-                <include>**/*.xml</include>
-            </includes>
-        </fileSet>
-        <fileSet>
-            <directory>src/main/assembly</directory>
-            <includes>
-                <include>**/*.xml</include>
-            </includes>
-        </fileSet>
-        <fileSet filtered="true">
-            <directory></directory>
-            <includes>
-                <include>template.yml</include>
-                <include>README.md</include>
-                <include>build.gradle</include>
-            </includes>
-        </fileSet>
-    </fileSets>
-</archetype-descriptor>
\ No newline at end of file
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/README.md b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/README.md
deleted file mode 100644
index 311c40aee..000000000
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/README.md
+++ /dev/null
@@ -1,99 +0,0 @@
-#set($resourceName = $artifactId)
-#macro(replaceChar $originalName, $char)
-  #if($originalName.contains($char))
-    #set($tokens = $originalName.split($char))
-    #set($newResourceName = "")
-    #foreach($token in $tokens)
-       #set($newResourceName = $newResourceName + $token.substring(0,1).toUpperCase() + $token.substring(1).toLowerCase())
-    #end
-    ${newResourceName}
-  #else
-    #set($newResourceName = $originalName.substring(0,1).toUpperCase() + $originalName.substring(1))
-    ${newResourceName}
-  #end
-#end
-#set($resourceName = "#replaceChar($resourceName, '-')")
-#set($resourceName = "#replaceChar($resourceName, '.')")
-#set($resourceName = $resourceName.replaceAll("\n", "").trim())
-# \${artifactId} serverless API
-The \${artifactId} project, created with [`aws-serverless-java-container`](https://github.com/aws/serverless-java-container).
-
-The starter project defines a simple `/ping` resource that can accept `GET` requests with its tests.
-
-The project folder also includes a `template.yml` file. You can use this [SAM](https://github.com/awslabs/serverless-application-model) file to deploy the project to AWS Lambda and Amazon API Gateway or test in local with the [SAM CLI](https://github.com/awslabs/aws-sam-cli). 
-
-#[[##]]# Pre-requisites
-* [AWS CLI](https://aws.amazon.com/cli/)
-* [SAM CLI](https://github.com/awslabs/aws-sam-cli)
-* [Gradle](https://gradle.org/) or [Maven](https://maven.apache.org/)
-
-#[[##]]# Building the project
-You can use the SAM CLI to quickly build the project
-```bash
-$ mvn archetype:generate -DartifactId=\${artifactId} -DarchetypeGroupId=com.amazonaws.serverless.archetypes -DarchetypeArtifactId=aws-serverless-jersey-archetype -DarchetypeVersion=${project.version} -DgroupId=\${groupId} -Dversion=\${version} -Dinteractive=false
-$ cd \${artifactId}
-$ sam build
-Building resource '\${resourceName}Function'
-Running JavaGradleWorkflow:GradleBuild
-Running JavaGradleWorkflow:CopyArtifacts
-
-Build Succeeded
-
-Built Artifacts  : .aws-sam/build
-Built Template   : .aws-sam/build/template.yaml
-
-Commands you can use next
-=========================
-[*] Invoke Function: sam local invoke
-[*] Deploy: sam deploy --guided
-```
-
-#[[##]]# Testing locally with the SAM CLI
-
-From the project root folder - where the `template.yml` file is located - start the API with the SAM CLI.
-
-```bash
-$ sam local start-api
-
-...
-Mounting ${groupId}.StreamLambdaHandler::handleRequest (java11) at http://127.0.0.1:3000/{proxy+} [OPTIONS GET HEAD POST PUT DELETE PATCH]
-...
-```
-
-Using a new shell, you can send a test ping request to your API:
-
-```bash
-$ curl -s http://127.0.0.1:3000/ping | python -m json.tool
-
-{
-    "pong": "Hello, World!"
-}
-``` 
-
-#[[##]]# Deploying to AWS
-To deploy the application in your AWS account, you can use the SAM CLI's guided deployment process and follow the instructions on the screen
-
-```
-$ sam deploy --guided
-```
-
-Once the deployment is completed, the SAM CLI will print out the stack's outputs, including the new application URL. You can use `curl` or a web browser to make a call to the URL
-
-```
-...
--------------------------------------------------------------------------------------------------------------
-OutputKey-Description                        OutputValue
--------------------------------------------------------------------------------------------------------------
-\${resourceName}Api - URL for application            https://xxxxxxxxxx.execute-api.us-west-2.amazonaws.com/Prod/pets
--------------------------------------------------------------------------------------------------------------
-```
-
-Copy the `OutputValue` into a browser or use curl to test your first request:
-
-```bash
-$ curl -s https://xxxxxxx.execute-api.us-west-2.amazonaws.com/Prod/ping | python -m json.tool
-
-{
-    "pong": "Hello, World!"
-}
-```
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
deleted file mode 100644
index 4ff9dfc37..000000000
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/build.gradle
+++ /dev/null
@@ -1,65 +0,0 @@
-apply plugin: 'java'
-
-repositories {
-  mavenLocal()
-  mavenCentral()
-}
-
-configurations {
-  implementation {
-    exclude group: 'org.apache.logging.log4j', module: 'log4j-to-slf4j'
-  }
-}
-
-dependencies {
-
-  implementation ('com.amazonaws.serverless:aws-serverless-java-container-struts:[1.0,)') {
-    exclude group: 'org.apache.struts', module: 'struts2-core'
-    exclude group: 'org.apache.logging.log4j', module: 'log4j-api'
-    exclude group: 'org.apache.logging.log4j', module: 'log4j-to-slf4j'
-  }
-  implementation ('org.apache.struts:struts2-convention-plugin:7.0.0-M9') {
-    exclude group: 'org.apache.struts', module: 'struts2-core'
-  }
-  implementation ('org.apache.struts:struts2-rest-plugin:7.0.0-M9') {
-    exclude group: 'org.apache.struts', module: 'struts2-core'
-  }
-  implementation ('org.apache.struts:struts2-bean-validation-plugin:7.0.0-M9') {
-    exclude group: 'org.apache.struts', module: 'struts2-core'
-  }
-  implementation ('com.jgeppert.struts2:struts2-aws-lambda-support-plugin:1.4.3') {
-    exclude group: 'org.apache.struts', module: 'struts2-core'
-  }
-  implementation ('org.apache.struts:struts2-core:7.0.0-M9') {
-    exclude group: 'org.apache.logging.log4j', module: 'log4j-api'
-  }
-  implementation ('org.hibernate.validator:hibernate-validator:6.1.7.Final')
-  implementation ('com.fasterxml.jackson.core:jackson-databind:2.18.1')
-  implementation ('com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.18.1')
-  implementation ('org.apache.logging.log4j:log4j-core:2.24.1')
-  implementation ('org.apache.logging.log4j:log4j-api:2.24.1')
-  implementation ('org.apache.logging.log4j:log4j-slf4j-impl:2.24.1')
-  implementation ('com.amazonaws:aws-lambda-java-log4j2:1.6.0')
-
-  testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
-  testImplementation("org.apache.httpcomponents.client5:httpclient5:5.4.1")
-  testImplementation(platform("org.junit:junit-bom:5.11.3"))
-  testImplementation("org.junit.jupiter:junit-jupiter")
-  testImplementation('org.apache.struts:struts2-junit-plugin:7.0.0-M9') {
-    exclude group: 'org.apache.struts', module: 'struts2-core'
-  }
-}
-
-task buildZip(type: Zip) {
-  from compileJava
-  from processResources
-  into('lib') {
-    from(configurations.compileClasspath)
-  }
-}
-
-test {
-  useJUnitPlatform()
-}
-
-build.dependsOn buildZip
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
deleted file mode 100644
index f64194a56..000000000
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/pom.xml
+++ /dev/null
@@ -1,186 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <groupId>\${groupId}</groupId>
-    <artifactId>\${artifactId}</artifactId>
-    <version>\${version}</version>
-    <packaging>jar</packaging>
-
-    <name>Serverless Struts API</name>
-    <url>https://github.com/aws/serverless-java-container</url>
-
-    <properties>
-        <maven.compiler.source>1.8</maven.compiler.source>
-        <maven.compiler.target>1.8</maven.compiler.target>
-        <struts.version>7.0.0-M9</struts.version>
-        <jackson.version>2.18.1</jackson.version>
-        <junit.version>5.11.3</junit.version>
-        <log4j.version>2.24.1</log4j.version>
-    </properties>
-
-    <dependencies>
-        <dependency>
-            <groupId>com.amazonaws.serverless</groupId>
-            <artifactId>aws-serverless-java-container-struts</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>com.amazonaws.serverless</groupId>
-            <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>${project.version}</version>
-            <classifier>tests</classifier>
-            <type>test-jar</type>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.httpcomponents.client5</groupId>
-            <artifactId>httpclient5</artifactId>
-            <version>5.4.1</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.struts</groupId>
-            <artifactId>struts2-convention-plugin</artifactId>
-            <version>\${struts.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.struts</groupId>
-            <artifactId>struts2-rest-plugin</artifactId>
-            <version>\${struts.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.struts</groupId>
-            <artifactId>struts2-bean-validation-plugin</artifactId>
-            <version>\${struts.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.struts</groupId>
-            <artifactId>struts2-junit-plugin</artifactId>
-            <version>\${struts.version}</version>
-            <scope>test</scope>
-        </dependency>
-
-        <!-- some useful interceptors and helpers for lambda based applications -->
-        <dependency>
-            <groupId>com.jgeppert.struts2</groupId>
-            <artifactId>struts2-aws-lambda-support-plugin</artifactId>
-            <version>1.4.3</version>
-        </dependency>
-
-        <!-- bean validation based on hibernate validators-->
-        <dependency>
-            <groupId>org.hibernate.validator</groupId>
-            <artifactId>hibernate-validator</artifactId>
-            <version>6.1.7.Final</version>
-        </dependency>
-
-        <dependency>
-            <groupId>com.fasterxml.jackson.core</groupId>
-            <artifactId>jackson-core</artifactId>
-            <version>\${jackson.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>com.fasterxml.jackson.core</groupId>
-            <artifactId>jackson-annotations</artifactId>
-            <version>\${jackson.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>com.fasterxml.jackson.core</groupId>
-            <artifactId>jackson-databind</artifactId>
-            <version>\${jackson.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>com.fasterxml.jackson.dataformat</groupId>
-            <artifactId>jackson-dataformat-xml</artifactId>
-            <version>\${jackson.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.logging.log4j</groupId>
-            <artifactId>log4j-core</artifactId>
-            <version>\${log4j.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.logging.log4j</groupId>
-            <artifactId>log4j-api</artifactId>
-            <version>\${log4j.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>com.amazonaws</groupId>
-            <artifactId>aws-lambda-java-log4j2</artifactId>
-            <version>1.6.0</version>
-        </dependency>
-
-        <dependency>
-            <groupId>jakarta.el</groupId>
-            <artifactId>jakarta.el-api</artifactId>
-            <version>5.0.1</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.glassfish</groupId>
-            <artifactId>jakarta.el</artifactId>
-            <version>5.0.0-M1</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.junit.jupiter</groupId>
-            <artifactId>junit-jupiter</artifactId>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-
-    <dependencyManagement>
-        <dependencies>
-            <dependency>
-                <groupId>org.junit</groupId>
-                <artifactId>junit-bom</artifactId>
-                <version>${junit.version}</version>
-                <scope>import</scope>
-                <type>pom</type>
-            </dependency>
-        </dependencies>
-    </dependencyManagement>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-assembly-plugin</artifactId>
-                <version>3.7.1</version>
-                <configuration>
-                    <descriptors>
-                        <descriptor>src/main/assembly/dist.xml</descriptor>
-                    </descriptors>
-                </configuration>
-                <executions>
-                    <execution>
-                        <id>lambda</id>
-                        <phase>package</phase>
-                        <goals>
-                            <goal>single</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
-
-    <repositories>
-        <repository>
-            <id>apache-pre-release</id>
-            <url>https://repository.apache.org/content/repositories/staging/</url>
-            <layout>default</layout>
-        </repository>
-    </repositories>
-</project>
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/src/main/assembly/dist.xml b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/src/main/assembly/dist.xml
deleted file mode 100644
index 0466b85c5..000000000
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/src/main/assembly/dist.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
-          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
-    <id>lambda</id>
-    <formats>
-        <format>zip</format>
-    </formats>
-    <includeBaseDirectory>false</includeBaseDirectory>
-    <dependencySets>
-        <dependencySet>
-            <outputDirectory>lib</outputDirectory>
-            <useProjectArtifact>false</useProjectArtifact>
-        </dependencySet>
-    </dependencySets>
-    <fileSets>
-        <fileSet>
-            <directory>${basedir}/src/main/resources</directory>
-            <outputDirectory></outputDirectory>
-            <includes>
-                <include>*</include>
-            </includes>
-        </fileSet>
-        <fileSet>
-            <directory>${project.build.directory}/classes</directory>
-            <outputDirectory></outputDirectory>
-            <includes>
-                <include>**/*.class</include>
-            </includes>
-        </fileSet>
-    </fileSets>
-</assembly>
\ No newline at end of file
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/src/main/java/actions/PingController.java b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/src/main/java/actions/PingController.java
deleted file mode 100644
index f3763f4de..000000000
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/src/main/java/actions/PingController.java
+++ /dev/null
@@ -1,70 +0,0 @@
-package ${groupId}.actions;
-
-
-import com.opensymphony.xwork2.ModelDriven;
-import org.apache.struts2.rest.DefaultHttpHeaders;
-import org.apache.struts2.rest.HttpHeaders;
-import org.apache.struts2.rest.RestActionSupport;
-
-
-import java.util.Collection;
-import java.util.UUID;
-
-
-public class PingController extends RestActionSupport implements ModelDriven<Object> {
-
-    private String model = new String();
-    private String id;
-    private Collection<String> list = null;
-
-
-    // GET /ping/1
-    public HttpHeaders show() {
-        return new DefaultHttpHeaders("show");
-    }
-
-    // GET /ping
-    public HttpHeaders index() {
-        this.model = "Hello, World!";
-        return new DefaultHttpHeaders("index")
-                .disableCaching();
-    }
-
-    // POST /ping
-    public HttpHeaders create() {
-        this.model = UUID.randomUUID().toString();
-        return new DefaultHttpHeaders("success")
-                .setLocationId(model);
-
-    }
-
-    // PUT /ping/1
-    public String update() {
-        //TODO: UPDATE LOGIC
-        return SUCCESS;
-    }
-
-    // DELETE /ping/1
-    public String destroy() {
-        //TODO: DELETE LOGIC
-        return SUCCESS;
-    }
-
-    public void setId(String id) {
-        if (id != null) {
-            this.model = "New model instance";
-        }
-        this.id = id;
-    }
-
-    public Object getModel() {
-        if (list != null) {
-            return list;
-        } else {
-            if (model == null) {
-                model = "Pong";
-            }
-            return model;
-        }
-    }
-}
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/src/main/resources/application.properties b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/src/main/resources/application.properties
deleted file mode 100644
index 070e632fe..000000000
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/src/main/resources/application.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-# Reduce logging level to make sure the application works with SAM local
-# https://github.com/aws/serverless-java-container/issues/134
-logging.level.root=WARN
\ No newline at end of file
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/src/main/resources/log4j2.xml b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/src/main/resources/log4j2.xml
deleted file mode 100644
index 55ed0d21c..000000000
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/src/main/resources/log4j2.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Configuration packages="com.amazonaws.services.lambda.runtime.log4j2.LambdaAppender">
-    <Appenders>
-        <Lambda name="Lambda">
-            <PatternLayout>
-                <pattern>%d{yyyy-MM-dd HH:mm:ss} %X{AWSRequestId} %-5p %c{1}:%L - %m%n</pattern>
-            </PatternLayout>
-        </Lambda>
-    </Appenders>
-    <Loggers>
-        <Logger name="com.opensymphony.xwork2" level="warn"/>
-        <Logger name="org.apache.struts2" level="warn"/>
-        <Root level="info">
-            <AppenderRef ref="Lambda"/>
-        </Root>
-    </Loggers>
-</Configuration>
\ No newline at end of file
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/src/main/resources/struts.xml b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/src/main/resources/struts.xml
deleted file mode 100644
index f6975ffd0..000000000
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/src/main/resources/struts.xml
+++ /dev/null
@@ -1,45 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE struts PUBLIC
-        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
-        "http://struts.apache.org/dtds/struts-2.5.dtd">
-<struts>
-
-    <constant name="struts.enable.DynamicMethodInvocation" value="false"/>
-
-    <!-- Disable dev mode in productions -->
-    <constant name="struts.devMode" value="false"/>
-    <constant name="struts.handle.exception" value="false"/>
-
-    <!--  Overwrite Convention -->
-    <!-- Classes with name *Controller like PingController will be automatically mapped to action /ping-->
-    <constant name="struts.convention.action.suffix" value="Controller"/>
-    <!-- Define the package name where *Controller classes will be resolved in this case e.g. actions.PingController could also be com.your.company.actions.PingController -->
-    <constant name="struts.convention.package.locators" value="actions"/>
-    <constant name="struts.convention.action.mapAllMatches" value="true"/>
-    <constant name="struts.convention.default.parent.package" value="ping"/>
-    <constant name="struts.action.extension" value=",,xml,json,action"/>
-    <constant name="struts.rest.defaultExtension" value="json"/>
-
-    <constant name="struts.mapper.class" value="rest"/>
-
-    <!-- Use Jackson lib as content handler for all JSON requests -->
-    <bean type="org.apache.struts2.rest.handler.ContentTypeHandler" name="jackson"
-          class="org.apache.struts2.rest.handler.JacksonJsonHandler"/>
-    <constant name="struts.rest.handlerOverride.json" value="jackson"/>
-
-    <!-- Set to false if the json content can be returned for any kind of http method -->
-    <constant name="struts.rest.content.restrictToGET" value="false"/>
-
-    <!-- Set custom validation failure status code -->
-    <constant name="struts.rest.validationFailureStatusCode" value="406"/>
-
-    <!-- Allow public access for demo purposes. Should be specified in production! -->
-    <constant name="struts.corsHeader.allowOrigin" value="*"/>
-
-    <!-- Set encoding to UTF-8, default is ISO-8859-1 -->
-    <constant name="struts.i18n.encoding" value="UTF-8"/>
-
-    <package name="ping" extends="struts-lambda-support" namespace="/">
-    </package>
-
-</struts>
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/src/test/java/StreamLambdaHandlerTest.java b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/src/test/java/StreamLambdaHandlerTest.java
deleted file mode 100644
index 875867778..000000000
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/src/test/java/StreamLambdaHandlerTest.java
+++ /dev/null
@@ -1,90 +0,0 @@
-package ${groupId};
-
-
-import com.amazonaws.serverless.proxy.internal.LambdaContainerHandler;
-import com.amazonaws.serverless.proxy.internal.testutils.AwsProxyRequestBuilder;
-import com.amazonaws.serverless.proxy.internal.testutils.MockLambdaContext;
-import com.amazonaws.serverless.proxy.model.AwsProxyResponse;
-import com.amazonaws.services.lambda.runtime.Context;
-
-import com.amazonaws.serverless.proxy.struts.StrutsLambdaHandler;
-
-import org.junit.jupiter.api.BeforeAll;
-import org.junit.jupiter.api.Test;
-
-import jakarta.ws.rs.HttpMethod;
-import jakarta.ws.rs.core.HttpHeaders;
-import jakarta.ws.rs.core.MediaType;
-import jakarta.ws.rs.core.Response;
-
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-public class StreamLambdaHandlerTest {
-
-    private static StrutsLambdaHandler handler;
-    private static Context lambdaContext;
-
-    @BeforeAll
-    public static void setUp() {
-        handler = new StrutsLambdaHandler();
-        lambdaContext = new MockLambdaContext();
-    }
-
-    @Test
-    public void ping_streamRequest_respondsWithHello() {
-        InputStream requestStream = new AwsProxyRequestBuilder("/ping", HttpMethod.GET)
-                                            .header(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON)
-                                            .buildStream();
-        ByteArrayOutputStream responseStream = new ByteArrayOutputStream();
-
-        handle(requestStream, responseStream);
-
-        AwsProxyResponse response = readResponse(responseStream);
-        assertNotNull(response);
-        assertEquals(Response.Status.OK.getStatusCode(), response.getStatusCode());
-
-        assertFalse(response.isBase64Encoded());
-
-        assertTrue(response.getBody().contains("Hello, World!"));
-
-        assertTrue(response.getMultiValueHeaders().containsKey(HttpHeaders.CONTENT_TYPE));
-        assertTrue(response.getMultiValueHeaders().getFirst(HttpHeaders.CONTENT_TYPE).startsWith(MediaType.APPLICATION_JSON));
-    }
-
-    @Test
-    public void invalidResource_streamRequest_responds404() {
-        InputStream requestStream = new AwsProxyRequestBuilder("/pong", HttpMethod.GET)
-                                            .header(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON)
-                                            .buildStream();
-        ByteArrayOutputStream responseStream = new ByteArrayOutputStream();
-
-        handle(requestStream, responseStream);
-
-        AwsProxyResponse response = readResponse(responseStream);
-        assertNotNull(response);
-        assertEquals(Response.Status.NOT_FOUND.getStatusCode(), response.getStatusCode());
-    }
-
-    private void handle(InputStream is, ByteArrayOutputStream os) {
-        try {
-            handler.handleRequest(is, os, lambdaContext);
-        } catch (IOException e) {
-            e.printStackTrace();
-            fail(e.getMessage());
-        }
-    }
-
-    private AwsProxyResponse readResponse(ByteArrayOutputStream responseStream) {
-        try {
-            return LambdaContainerHandler.getObjectMapper().readValue(responseStream.toByteArray(), AwsProxyResponse.class);
-        } catch (IOException e) {
-            e.printStackTrace();
-            fail("Error while parsing response: " + e.getMessage());
-        }
-        return null;
-    }
-}
diff --git a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/template.yml b/aws-serverless-struts-archetype/src/main/resources/archetype-resources/template.yml
deleted file mode 100644
index fe446dedd..000000000
--- a/aws-serverless-struts-archetype/src/main/resources/archetype-resources/template.yml
+++ /dev/null
@@ -1,52 +0,0 @@
-#set($resourceName = $artifactId)
-#macro(replaceChar $originalName, $char)
-  #if($originalName.contains($char))
-    #set($tokens = $originalName.split($char))
-    #set($newResourceName = "")
-    #foreach($token in $tokens)
-       #set($newResourceName = $newResourceName + $token.substring(0,1).toUpperCase() + $token.substring(1).toLowerCase())
-    #end
-    ${newResourceName}
-  #else
-    #set($newResourceName = $originalName.substring(0,1).toUpperCase() + $originalName.substring(1))
-    ${newResourceName}
-  #end
-#end
-#set($resourceName = "#replaceChar($resourceName, '-')")
-#set($resourceName = "#replaceChar($resourceName, '.')")
-#set($resourceName = $resourceName.replaceAll("\n", "").trim())
-#macro(regionVar)
-  AWS::Region
-#end
-#set($awsRegion = "#regionVar()")
-#set($awsRegion = $awsRegion.replaceAll("\n", "").trim())
-AWSTemplateFormatVersion: '2010-09-09'
-Transform: AWS::Serverless-2016-10-31
-Description: AWS Serverless Apache Struts API - ${groupId}::${artifactId}
-Globals:
-  Api:
-    EndpointConfiguration: REGIONAL
-
-Resources:
-  ${resourceName}Function:
-    Type: AWS::Serverless::Function
-    Properties:
-      Handler: com.amazonaws.serverless.proxy.struts.StrutsLambdaHandler::handleRequest
-      Runtime: java11
-      CodeUri: .
-      MemorySize: 512
-      Policies: AWSLambdaBasicExecutionRole
-      Timeout: 30
-      Events:
-        ProxyResource:
-          Type: Api
-          Properties:
-            Path: /{proxy+}
-            Method: any
-
-Outputs:
-  ${resourceName}Api:
-    Description: URL for application
-    Value: !Sub 'https://${ServerlessRestApi}.execute-api.${${awsRegion}}.amazonaws.com/Prod/ping'
-    Export:
-      Name: ${resourceName}Api
diff --git a/aws-serverless-struts-archetype/src/test/resources/projects/base/archetype.properties b/aws-serverless-struts-archetype/src/test/resources/projects/base/archetype.properties
deleted file mode 100644
index 80acd0f43..000000000
--- a/aws-serverless-struts-archetype/src/test/resources/projects/base/archetype.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-groupId=test.service
-artifactId=struts-archetype-test
-version=1.0-SNAPSHOT
diff --git a/aws-serverless-struts-archetype/src/test/resources/projects/base/goal.txt b/aws-serverless-struts-archetype/src/test/resources/projects/base/goal.txt
deleted file mode 100644
index 597acc768..000000000
--- a/aws-serverless-struts-archetype/src/test/resources/projects/base/goal.txt
+++ /dev/null
@@ -1 +0,0 @@
-package
\ No newline at end of file
diff --git a/samples/struts/pet-store/README.md b/samples/struts/pet-store/README.md
deleted file mode 100644
index bc5c047ae..000000000
--- a/samples/struts/pet-store/README.md
+++ /dev/null
@@ -1,56 +0,0 @@
-# Serverless Struts example
-A basic pet store written with the [Apache Struts framework](https://struts.apache.org). The `StrutsLambdaHandler` object provided by the `aws-serverless-java-container-struts` is the main entry point for Lambda.
-
-The application can be deployed in an AWS account using the [Serverless Application Model](https://github.com/awslabs/serverless-application-model). The `template.yml` file in the root folder contains the application definition
-
-## Pre-requisites
-* [AWS CLI](https://aws.amazon.com/cli/)
-* [SAM CLI](https://github.com/awslabs/aws-sam-cli)
-* [Gradle](https://gradle.org/) or [Maven](https://maven.apache.org/)
-
-
-## Deployment
-In a shell, navigate to the sample's folder and use the SAM CLI to build a deployable package
-```
-$ mvn package && sam build
-```
-
-### Test Local
-
-```
-$ sam local invoke -e test-event.json
-```
-
-### Deploy Sample Application
-
-This command compiles the application and prepares a deployment package in the `.aws-sam` sub-directory.
-
-To deploy the application in your AWS account, you can use the SAM CLI's guided deployment process and follow the instructions on the screen
-
-```
-$ sam deploy --guided
-```
-
-Once the deployment is completed, the SAM CLI will print out the stack's outputs, including the new application URL. You can use `curl` or a web browser to make a call to the URL
-
-```
-...
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-Outputs                                                                                                                                                                                                    
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-Key                 StrutsPetStoreApi                                                                                                                                                                      
-Description         URL for application                                                                                                                                                                    
-Value               https://xxxxxxxxxx.execute-api.<region>.amazonaws.com/pets                                                                                                                         
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-```
-## Test
-
-### JSON Request:
-```
-$ curl https://xxxxxxxxxx.execute-api.<region>.amazonaws.com/pets.json
-```
-
-### XML Request
-```
-$ curl https://xxxxxxxxxx.execute-api.<region>.amazonaws.com/pets.xml
-```
\ No newline at end of file
diff --git a/samples/struts/pet-store/build.gradle b/samples/struts/pet-store/build.gradle
deleted file mode 100644
index ecc765cb7..000000000
--- a/samples/struts/pet-store/build.gradle
+++ /dev/null
@@ -1,41 +0,0 @@
-apply plugin: 'java'
-
-repositories {
-  mavenLocal()
-  mavenCentral()
-}
-
-configurations {
-  implementation {
-    exclude group: 'org.apache.logging.log4j', module: 'log4j-to-slf4j'
-  }
-}
-
-dependencies {
-  implementation (
-          'com.amazonaws.serverless:aws-serverless-java-container-struts:[2.0-SNAPSHOT,)',
-          'org.apache.struts:struts2-convention-plugin:7.0.0-M9',
-          'org.apache.struts:struts2-rest-plugin:7.0.0-M9',
-          'org.apache.struts:struts2-bean-validation-plugin:7.0.0-M9',
-          'org.apache.struts:struts2-junit-plugin:7.0.0-M9',
-          'com.jgeppert.struts2:struts2-aws-lambda-support-plugin:1.4.3',
-          'org.hibernate.validator:hibernate-validator:6.1.7.Final',
-          'org.glassfish:jakarta.el:5.0.0-M1',
-          'jakarta.el:jakarta.el-api:5.0.1',
-          'com.fasterxml.jackson.core:jackson-databind:2.18.1',
-          'com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.18.1',
-          'org.apache.logging.log4j:log4j-core:2.24.1',
-          'org.apache.logging.log4j:log4j-api:2.24.1',
-          'com.amazonaws:aws-lambda-java-log4j2:1.6.0',
-  )
-}
-
-task buildZip(type: Zip) {
-  from compileJava
-  from processResources
-  into('lib') {
-    from(configurations.compileClasspath)
-  }
-}
-
-build.dependsOn buildZip
diff --git a/samples/struts/pet-store/pom.xml b/samples/struts/pet-store/pom.xml
deleted file mode 100644
index 49c035d4e..000000000
--- a/samples/struts/pet-store/pom.xml
+++ /dev/null
@@ -1,177 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <groupId>com.amazonaws.serverless.sample</groupId>
-    <artifactId>serverless-struts-example</artifactId>
-    <version>2.0-SNAPSHOT</version>
-    <name>Struts example for the aws-serverless-java-container library</name>
-    <description>Simple pet store written with the Apache Struts framework</description>
-    <url>https://aws.amazon.com/lambda/</url>
-
-    <scm>
-        <url>https://github.com/aws/serverless-java-container.git</url>
-    </scm>
-
-    <licenses>
-        <license>
-            <name>The Apache Software License, Version 2.0</name>
-            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
-            <distribution>repo</distribution>
-        </license>
-    </licenses>
-
-    <properties>
-        <maven.compiler.source>1.8</maven.compiler.source>
-        <maven.compiler.target>1.8</maven.compiler.target>
-        <struts.version>7.0.0-M9</struts.version>
-        <jackson.version>2.18.1</jackson.version>
-        <junit.version>4.13.2</junit.version>
-        <log4j.version>2.24.1</log4j.version>
-    </properties>
-
-    <dependencies>
-        <dependency>
-            <groupId>com.amazonaws.serverless</groupId>
-            <artifactId>aws-serverless-java-container-struts</artifactId>
-            <version>[2.0.0-SNAPSHOT,)</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.struts</groupId>
-            <artifactId>struts2-convention-plugin</artifactId>
-            <version>${struts.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.struts</groupId>
-            <artifactId>struts2-rest-plugin</artifactId>
-            <version>${struts.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.struts</groupId>
-            <artifactId>struts2-bean-validation-plugin</artifactId>
-            <version>${struts.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.struts</groupId>
-            <artifactId>struts2-junit-plugin</artifactId>
-            <version>${struts.version}</version>
-            <scope>test</scope>
-        </dependency>
-
-        <!-- some useful interceptors and helpers for lambda based applications -->
-        <dependency>
-            <groupId>com.jgeppert.struts2</groupId>
-            <artifactId>struts2-aws-lambda-support-plugin</artifactId>
-            <version>1.4.3</version>
-        </dependency>
-
-        <!-- bean validation based on hibernate validators-->
-        <dependency>
-            <groupId>org.hibernate.validator</groupId>
-            <artifactId>hibernate-validator</artifactId>
-            <version>6.1.7.Final</version>
-        </dependency>
-        <dependency>
-            <groupId>org.glassfish</groupId>
-            <artifactId>jakarta.el</artifactId>
-            <version>5.0.0-M1</version>
-        </dependency>
-        <dependency>
-            <groupId>jakarta.el</groupId>
-            <artifactId>jakarta.el-api</artifactId>
-            <version>5.0.1</version>
-        </dependency>
-
-        <dependency>
-            <groupId>com.fasterxml.jackson.core</groupId>
-            <artifactId>jackson-core</artifactId>
-            <version>${jackson.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>com.fasterxml.jackson.core</groupId>
-            <artifactId>jackson-annotations</artifactId>
-            <version>${jackson.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>com.fasterxml.jackson.core</groupId>
-            <artifactId>jackson-databind</artifactId>
-            <version>${jackson.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>com.fasterxml.jackson.dataformat</groupId>
-            <artifactId>jackson-dataformat-xml</artifactId>
-            <version>${jackson.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.logging.log4j</groupId>
-            <artifactId>log4j-core</artifactId>
-            <version>${log4j.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.logging.log4j</groupId>
-            <artifactId>log4j-api</artifactId>
-            <version>${log4j.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>com.amazonaws</groupId>
-            <artifactId>aws-lambda-java-log4j2</artifactId>
-            <version>1.6.0</version>
-        </dependency>
-
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <version>${junit.version}</version>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <configuration>
-                    <source>1.8</source>
-                    <target>1.8</target>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-assembly-plugin</artifactId>
-                <version>3.7.1</version>
-                <configuration>
-                    <descriptors>
-                        <descriptor>src/main/assembly/dist.xml</descriptor>
-                    </descriptors>
-                </configuration>
-                <executions>
-                    <execution>
-                        <id>lambda</id>
-                        <phase>package</phase>
-                        <goals>
-                            <goal>single</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
-
-    <repositories>
-        <repository>
-            <id>apache-pre-release</id>
-            <url>https://repository.apache.org/content/repositories/staging/</url>
-            <layout>default</layout>
-        </repository>
-    </repositories>
-</project>
diff --git a/samples/struts/pet-store/src/main/assembly/dist.xml b/samples/struts/pet-store/src/main/assembly/dist.xml
deleted file mode 100644
index 029ec01c7..000000000
--- a/samples/struts/pet-store/src/main/assembly/dist.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
-          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
-    <id>lambda</id>
-    <formats>
-        <format>zip</format>
-    </formats>
-    <includeBaseDirectory>false</includeBaseDirectory>
-    <dependencySets>
-        <dependencySet>
-            <outputDirectory>lib</outputDirectory>
-            <useProjectArtifact>false</useProjectArtifact>
-        </dependencySet>
-    </dependencySets>
-    <fileSets>
-        <fileSet>
-            <directory>${basedir}/src/main/resources</directory>
-            <outputDirectory>/</outputDirectory>
-            <includes>
-                <include>*</include>
-            </includes>
-        </fileSet>
-        <fileSet>
-            <directory>${project.build.directory}/classes</directory>
-            <outputDirectory>/</outputDirectory>
-            <includes>
-                <include>**/*.class</include>
-            </includes>
-        </fileSet>
-    </fileSets>
-</assembly>
\ No newline at end of file
diff --git a/samples/struts/pet-store/src/main/java/com/amazonaws/serverless/sample/struts/actions/PetsController.java b/samples/struts/pet-store/src/main/java/com/amazonaws/serverless/sample/struts/actions/PetsController.java
deleted file mode 100644
index bc2ad8bbe..000000000
--- a/samples/struts/pet-store/src/main/java/com/amazonaws/serverless/sample/struts/actions/PetsController.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * Copyright 2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance
- * with the License. A copy of the License is located at
- *
- * http://aws.amazon.com/apache2.0/
- *
- * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES
- * OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
- * and limitations under the License.
- */
-package com.amazonaws.serverless.sample.struts.actions;
-
-import com.amazonaws.serverless.sample.struts.model.Pet;
-import com.amazonaws.serverless.sample.struts.model.PetData;
-import com.opensymphony.xwork2.ModelDriven;
-import org.apache.struts2.rest.DefaultHttpHeaders;
-import org.apache.struts2.rest.HttpHeaders;
-import org.apache.struts2.rest.RestActionSupport;
-
-import java.util.Collection;
-import java.util.UUID;
-import java.util.stream.Collectors;
-
-
-public class PetsController extends RestActionSupport implements ModelDriven<Object> {
-
-    private Pet model = new Pet();
-    private String id;
-    private Collection<Pet> list = null;
-
-    // GET /pets/1
-    public HttpHeaders show() {
-        return new DefaultHttpHeaders("show");
-    }
-
-    // GET /pets
-    public HttpHeaders index() {
-        list = PetData.getNames()
-                .stream()
-                .map(petName -> new Pet(
-                        UUID.randomUUID()
-                                .toString(), PetData.getRandomBreed(), petName, PetData.getRandomDoB()))
-                .collect(Collectors.toList());
-        return new DefaultHttpHeaders("index")
-                .disableCaching();
-    }
-
-    // POST /pets
-    public HttpHeaders create() {
-        if (model.getName() == null || model.getBreed() == null) {
-            return null;
-        }
-
-        Pet dbPet = model;
-        dbPet.setId(UUID.randomUUID().toString());
-        return new DefaultHttpHeaders("success")
-                .setLocationId(model.getId());
-
-    }
-
-    // PUT /pets/1
-    public String update() {
-        //TODO: UPDATE LOGIC
-        return SUCCESS;
-    }
-
-    // DELETE /petsr/1
-    public String destroy() {
-        //TODO: DELETE LOGIC
-        return SUCCESS;
-    }
-
-    public void setId(String id) {
-        if (id != null) {
-            this.model = new Pet(id, PetData.getRandomBreed(), PetData.getRandomName(), PetData.getRandomDoB());
-        }
-        this.id = id;
-    }
-
-    public Object getModel() {
-        if (list != null) {
-            return list;
-        } else {
-            if (model == null) {
-                model = new Pet();
-            }
-            return model;
-        }
-    }
-}
diff --git a/samples/struts/pet-store/src/main/java/com/amazonaws/serverless/sample/struts/model/Pet.java b/samples/struts/pet-store/src/main/java/com/amazonaws/serverless/sample/struts/model/Pet.java
deleted file mode 100644
index c9d420ca8..000000000
--- a/samples/struts/pet-store/src/main/java/com/amazonaws/serverless/sample/struts/model/Pet.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Copyright 2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance
- * with the License. A copy of the License is located at
- *
- * http://aws.amazon.com/apache2.0/
- *
- * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES
- * OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
- * and limitations under the License.
- */
-package com.amazonaws.serverless.sample.struts.model;
-
-import org.hibernate.validator.constraints.NotBlank;
-
-import java.util.Date;
-
-public class Pet {
-
-    private String id;
-    private String breed;
-
-    @NotBlank
-    private String name;
-    private Date dateOfBirth;
-
-    public Pet() {
-    }
-
-    public Pet(String id, String breed, String name, Date dateOfBirth) {
-        this.id = id;
-        this.breed = breed;
-        this.name = name;
-        this.dateOfBirth = dateOfBirth;
-    }
-
-    public String getId() {
-        return id;
-    }
-
-    public void setId(String id) {
-        this.id = id;
-    }
-
-    public String getBreed() {
-        return breed;
-    }
-
-    public void setBreed(String breed) {
-        this.breed = breed;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public void setName(String name) {
-        this.name = name;
-    }
-
-    public Date getDateOfBirth() {
-        return dateOfBirth;
-    }
-
-    public void setDateOfBirth(Date dateOfBirth) {
-        this.dateOfBirth = dateOfBirth;
-    }
-}
diff --git a/samples/struts/pet-store/src/main/java/com/amazonaws/serverless/sample/struts/model/PetData.java b/samples/struts/pet-store/src/main/java/com/amazonaws/serverless/sample/struts/model/PetData.java
deleted file mode 100644
index 84be64eab..000000000
--- a/samples/struts/pet-store/src/main/java/com/amazonaws/serverless/sample/struts/model/PetData.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * Copyright 2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance
- * with the License. A copy of the License is located at
- *
- * http://aws.amazon.com/apache2.0/
- *
- * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES
- * OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
- * and limitations under the License.
- */
-package com.amazonaws.serverless.sample.struts.model;
-
-import java.util.*;
-import java.util.concurrent.ThreadLocalRandom;
-
-public class PetData {
-    private static List<String> breeds = new ArrayList<>();
-    static {
-        breeds.add("Afghan Hound");
-        breeds.add("Beagle");
-        breeds.add("Bernese Mountain Dog");
-        breeds.add("Bloodhound");
-        breeds.add("Dalmatian");
-        breeds.add("Jack Russell Terrier");
-        breeds.add("Norwegian Elkhound");
-    }
-
-    private static List<String> names = new ArrayList<>();
-    static {
-        names.add("Bailey");
-        names.add("Bella");
-        names.add("Max");
-        names.add("Lucy");
-        names.add("Charlie");
-        names.add("Molly");
-        names.add("Buddy");
-        names.add("Daisy");
-        names.add("Rocky");
-        names.add("Maggie");
-        names.add("Jake");
-        names.add("Sophie");
-        names.add("Jack");
-        names.add("Sadie");
-        names.add("Toby");
-        names.add("Chloe");
-        names.add("Cody");
-        names.add("Bailey");
-        names.add("Buster");
-        names.add("Lola");
-        names.add("Duke");
-        names.add("Zoe");
-        names.add("Cooper");
-        names.add("Abby");
-        names.add("Riley");
-        names.add("Ginger");
-        names.add("Harley");
-        names.add("Roxy");
-        names.add("Bear");
-        names.add("Gracie");
-        names.add("Tucker");
-        names.add("Coco");
-        names.add("Murphy");
-        names.add("Sasha");
-        names.add("Lucky");
-        names.add("Lily");
-        names.add("Oliver");
-        names.add("Angel");
-        names.add("Sam");
-        names.add("Princess");
-        names.add("Oscar");
-        names.add("Emma");
-        names.add("Teddy");
-        names.add("Annie");
-        names.add("Winston");
-        names.add("Rosie");
-    }
-
-    public static List<String> getBreeds() {
-        return breeds;
-    }
-
-    public static List<String> getNames() {
-        return names;
-    }
-
-    public static String getRandomBreed() {
-        return breeds.get(ThreadLocalRandom.current().nextInt(0, breeds.size() - 1));
-    }
-
-    public static String getRandomName() {
-        return names.get(ThreadLocalRandom.current().nextInt(0, names.size() - 1));
-    }
-
-    public static Date getRandomDoB() {
-        GregorianCalendar gc = new GregorianCalendar();
-
-        int year = ThreadLocalRandom.current().nextInt(
-                Calendar.getInstance().get(Calendar.YEAR) - 15,
-                Calendar.getInstance().get(Calendar.YEAR)
-        );
-
-        gc.set(Calendar.YEAR, year);
-
-        int dayOfYear = ThreadLocalRandom.current().nextInt(1, gc.getActualMaximum(Calendar.DAY_OF_YEAR));
-
-        gc.set(Calendar.DAY_OF_YEAR, dayOfYear);
-        return gc.getTime();
-    }
-}
diff --git a/samples/struts/pet-store/src/main/resources/log4j2.xml b/samples/struts/pet-store/src/main/resources/log4j2.xml
deleted file mode 100644
index 55ed0d21c..000000000
--- a/samples/struts/pet-store/src/main/resources/log4j2.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Configuration packages="com.amazonaws.services.lambda.runtime.log4j2.LambdaAppender">
-    <Appenders>
-        <Lambda name="Lambda">
-            <PatternLayout>
-                <pattern>%d{yyyy-MM-dd HH:mm:ss} %X{AWSRequestId} %-5p %c{1}:%L - %m%n</pattern>
-            </PatternLayout>
-        </Lambda>
-    </Appenders>
-    <Loggers>
-        <Logger name="com.opensymphony.xwork2" level="warn"/>
-        <Logger name="org.apache.struts2" level="warn"/>
-        <Root level="info">
-            <AppenderRef ref="Lambda"/>
-        </Root>
-    </Loggers>
-</Configuration>
\ No newline at end of file
diff --git a/samples/struts/pet-store/src/main/resources/struts.xml b/samples/struts/pet-store/src/main/resources/struts.xml
deleted file mode 100644
index 3f6724e50..000000000
--- a/samples/struts/pet-store/src/main/resources/struts.xml
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE struts PUBLIC
-        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
-        "http://struts.apache.org/dtds/struts-2.5.dtd">
-<struts>
-
-    <constant name="struts.enable.DynamicMethodInvocation" value="false"/>
-
-    <!-- Disable dev mode in productions -->
-    <constant name="struts.devMode" value="false"/>
-    <constant name="struts.handle.exception" value="false"/>
-
-    <!--  Overwrite Convention -->
-    <!-- Classes with name *Controller like PetsController will be automatically mapped to action /pets-->
-    <constant name="struts.convention.action.suffix" value="Controller"/>
-    <constant name="struts.convention.action.mapAllMatches" value="true"/>
-    <constant name="struts.convention.package.locators" value="actions"/>
-    <constant name="struts.convention.default.parent.package" value="pets"/>
-    <constant name="struts.action.extension" value=",,xml,json,action"/>
-    <constant name="struts.rest.defaultExtension" value="json"/>
-
-    <constant name="struts.mapper.class" value="rest"/>
-
-    <!-- Use Jackson lib as content handler for all JSON requests -->
-    <bean type="org.apache.struts2.rest.handler.ContentTypeHandler" name="jackson"
-          class="org.apache.struts2.rest.handler.JacksonJsonHandler"/>
-    <constant name="struts.rest.handlerOverride.json" value="jackson"/>
-
-    <!-- Set to false if the json content can be returned for any kind of http method -->
-    <constant name="struts.rest.content.restrictToGET" value="false"/>
-
-    <!-- Set custom validation failure status code -->
-    <constant name="struts.rest.validationFailureStatusCode" value="406"/>
-
-    <!-- Allow public access for demo purposes. Should be specified in production! -->
-    <constant name="struts.corsHeader.allowOrigin" value="*"/>
-
-    <!-- Set encoding to UTF-8, default is ISO-8859-1 -->
-    <constant name="struts.i18n.encoding" value="UTF-8"/>
-
-    <package name="pets" extends="struts-lambda-support" namespace="/">
-    </package>
-
-</struts>
diff --git a/samples/struts/pet-store/template.yml b/samples/struts/pet-store/template.yml
deleted file mode 100644
index 85870c6bd..000000000
--- a/samples/struts/pet-store/template.yml
+++ /dev/null
@@ -1,32 +0,0 @@
-AWSTemplateFormatVersion: '2010-09-09'
-Transform: AWS::Serverless-2016-10-31
-Description: Example Pet Store API written with Apache Struts based on the aws-serverless-java-container library
-
-Globals:
-  Api:
-    # API Gateway regional endpoints
-    EndpointConfiguration: REGIONAL
-
-Resources:
-  PetStoreFunction:
-    Type: AWS::Serverless::Function
-    Properties:
-      Handler: com.amazonaws.serverless.proxy.struts.StrutsLambdaHandler::handleRequest
-      Runtime: java11
-      CodeUri: .
-      MemorySize: 512
-      Policies: AWSLambdaBasicExecutionRole
-      Timeout: 30
-      Events:
-        HttpApiEvent:
-          Type: HttpApi
-          Properties:
-            TimeoutInMillis: 20000
-            PayloadFormatVersion: '1.0'
-
-Outputs:
-  StrutsPetStoreApi:
-    Description: URL for application
-    Value: !Sub 'https://${ServerlessHttpApi}.execute-api.${AWS::Region}.amazonaws.com/pets'
-    Export:
-      Name: StrutsPetStoreApi
diff --git a/samples/struts/pet-store/test-event.json b/samples/struts/pet-store/test-event.json
deleted file mode 100644
index 5860f3e86..000000000
--- a/samples/struts/pet-store/test-event.json
+++ /dev/null
@@ -1,123 +0,0 @@
-{
-  "body": "eyJ0ZXN0IjoiYm9keSJ9",
-  "resource": "/{proxy+}",
-  "path": "/pets.json",
-  "httpMethod": "GET",
-  "isBase64Encoded": true,
-  "queryStringParameters": {
-    "foo": "bar"
-  },
-  "multiValueQueryStringParameters": {
-    "foo": [
-      "bar"
-    ]
-  },
-  "pathParameters": {
-    "proxy": "/path/to/resource"
-  },
-  "stageVariables": {
-    "baz": "qux"
-  },
-  "headers": {
-    "Accept": "application/json",
-    "Accept-Encoding": "gzip, deflate, sdch",
-    "Accept-Language": "en-US,en;q=0.8",
-    "Cache-Control": "max-age=0",
-    "CloudFront-Forwarded-Proto": "https",
-    "CloudFront-Is-Desktop-Viewer": "true",
-    "CloudFront-Is-Mobile-Viewer": "false",
-    "CloudFront-Is-SmartTV-Viewer": "false",
-    "CloudFront-Is-Tablet-Viewer": "false",
-    "CloudFront-Viewer-Country": "US",
-    "Host": "1234567890.execute-api.us-east-1.amazonaws.com",
-    "Upgrade-Insecure-Requests": "1",
-    "User-Agent": "Custom User Agent String",
-    "Via": "1.1 08f323deadbeefa7af34d5feb414ce27.cloudfront.net (CloudFront)",
-    "X-Amz-Cf-Id": "cDehVQoZnx43VYQb9j2-nvCh-9z396Uhbp027Y2JvkCPNLmGJHqlaA==",
-    "X-Forwarded-For": "127.0.0.1, 127.0.0.2",
-    "X-Forwarded-Port": "443",
-    "X-Forwarded-Proto": "https"
-  },
-  "multiValueHeaders": {
-    "Accept": [
-      "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"
-    ],
-    "Accept-Encoding": [
-      "gzip, deflate, sdch"
-    ],
-    "Accept-Language": [
-      "en-US,en;q=0.8"
-    ],
-    "Cache-Control": [
-      "max-age=0"
-    ],
-    "CloudFront-Forwarded-Proto": [
-      "https"
-    ],
-    "CloudFront-Is-Desktop-Viewer": [
-      "true"
-    ],
-    "CloudFront-Is-Mobile-Viewer": [
-      "false"
-    ],
-    "CloudFront-Is-SmartTV-Viewer": [
-      "false"
-    ],
-    "CloudFront-Is-Tablet-Viewer": [
-      "false"
-    ],
-    "CloudFront-Viewer-Country": [
-      "US"
-    ],
-    "Host": [
-      "0123456789.execute-api.us-east-1.amazonaws.com"
-    ],
-    "Upgrade-Insecure-Requests": [
-      "1"
-    ],
-    "User-Agent": [
-      "Custom User Agent String"
-    ],
-    "Via": [
-      "1.1 08f323deadbeefa7af34d5feb414ce27.cloudfront.net (CloudFront)"
-    ],
-    "X-Amz-Cf-Id": [
-      "cDehVQoZnx43VYQb9j2-nvCh-9z396Uhbp027Y2JvkCPNLmGJHqlaA=="
-    ],
-    "X-Forwarded-For": [
-      "127.0.0.1, 127.0.0.2"
-    ],
-    "X-Forwarded-Port": [
-      "443"
-    ],
-    "X-Forwarded-Proto": [
-      "https"
-    ]
-  },
-  "requestContext": {
-    "accountId": "123456789012",
-    "resourceId": "123456",
-    "stage": "prod",
-    "requestId": "c6af9ac6-7b61-11e6-9a41-93e8deadbeef",
-    "requestTime": "09/Apr/2015:12:34:56 +0000",
-    "requestTimeEpoch": 1428582896000,
-    "identity": {
-      "cognitoIdentityPoolId": null,
-      "accountId": null,
-      "cognitoIdentityId": null,
-      "caller": null,
-      "accessKey": null,
-      "sourceIp": "127.0.0.1",
-      "cognitoAuthenticationType": null,
-      "cognitoAuthenticationProvider": null,
-      "userArn": null,
-      "userAgent": "Custom User Agent String",
-      "user": null
-    },
-    "path": "/pets.json",
-    "resourcePath": "/{proxy+}",
-    "httpMethod": "GET",
-    "apiId": "1234567890",
-    "protocol": "HTTP/1.1"
-  }
-}
\ No newline at end of file

From 96cb50c6262fd9cad963f4cf149b89c7bb10199f Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Fri, 15 Nov 2024 15:13:40 +0000
Subject: [PATCH 293/430] chore(deps): bump
 com.github.spotbugs:spotbugs-maven-plugin

Bumps [com.github.spotbugs:spotbugs-maven-plugin](https://github.com/spotbugs/spotbugs-maven-plugin) from 4.8.6.5 to 4.8.6.6.
- [Release notes](https://github.com/spotbugs/spotbugs-maven-plugin/releases)
- [Commits](https://github.com/spotbugs/spotbugs-maven-plugin/compare/spotbugs-maven-plugin-4.8.6.5...spotbugs-maven-plugin-4.8.6.6)

---
updated-dependencies:
- dependency-name: com.github.spotbugs:spotbugs-maven-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 028ed2afa..eb28838b1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -249,7 +249,7 @@
                 <plugin>
                     <groupId>com.github.spotbugs</groupId>
                     <artifactId>spotbugs-maven-plugin</artifactId>
-                    <version>4.8.6.5</version>
+                    <version>4.8.6.6</version>
                     <configuration>
                         <!--
                             Enables analysis which takes more memory but finds more bugs.

From f4df3136fddca5913fd9c079c15aa5b6ada90b7a Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 18 Nov 2024 04:24:13 +0000
Subject: [PATCH 294/430] chore(deps): bump
 com.amazonaws:aws-lambda-java-events

Bumps [com.amazonaws:aws-lambda-java-events](https://github.com/aws/aws-lambda-java-libs) from 3.13.0 to 3.14.0.
- [Commits](https://github.com/aws/aws-lambda-java-libs/commits)

---
updated-dependencies:
- dependency-name: com.amazonaws:aws-lambda-java-events
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 samples/springboot3/pet-store-native/pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/samples/springboot3/pet-store-native/pom.xml b/samples/springboot3/pet-store-native/pom.xml
index 42886dc30..8d3004605 100644
--- a/samples/springboot3/pet-store-native/pom.xml
+++ b/samples/springboot3/pet-store-native/pom.xml
@@ -31,7 +31,7 @@
 		<dependency>
 			<groupId>com.amazonaws</groupId>
 			<artifactId>aws-lambda-java-events</artifactId>
-			<version>3.13.0</version>
+			<version>3.14.0</version>
 		</dependency>
 		<dependency>
 			<groupId>com.amazonaws</groupId>

From 6fa3f298c70291f7393e07a260991d445e5b520e Mon Sep 17 00:00:00 2001
From: Nicolas PETERS <nicolas.peters@canal-plus.com>
Date: Wed, 20 Nov 2024 23:38:31 +0100
Subject: [PATCH 295/430] #1084: remove duplicated code with
 populateContentAndContentType

---
 .../spring/AwsSpringHttpProcessingUtils.java  | 41 ++++++++++++++-----
 ...DelegatingLambdaContainerHandlerTests.java |  1 -
 2 files changed, 30 insertions(+), 12 deletions(-)

diff --git a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtils.java b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtils.java
index 9ce8f1dcd..f7d1e0006 100644
--- a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtils.java
+++ b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtils.java
@@ -122,17 +122,12 @@ private static HttpServletRequest generateRequest1(String request, Context lambd
 			MultiValueMapAdapter headers = new MultiValueMapAdapter(v1Request.getMultiValueHeaders());
 			httpRequest.setHeaders(headers);
 		}
-        if (StringUtils.hasText(v1Request.getBody())) {
-			if (v1Request.getHeaders().get(HttpHeaders.CONTENT_TYPE)==null) {
-				httpRequest.setContentType("application/json");
-			}
-            if (v1Request.isBase64Encoded()) {
-                httpRequest.setContent(Base64.getMimeDecoder().decode(v1Request.getBody()));
-            } else {
-                Charset charseEncoding = parseCharacterEncoding(v1Request.getHeaders().get(HttpHeaders.CONTENT_TYPE));
-                httpRequest.setContent(v1Request.getBody().getBytes(charseEncoding));
-            }
-        }
+        populateContentAndContentType(
+                v1Request.getBody(),
+                v1Request.getHeaders().get(HttpHeaders.CONTENT_TYPE),
+                v1Request.isBase64Encoded(),
+                httpRequest
+        );
 		if (v1Request.getRequestContext() != null) {
 			httpRequest.setAttribute(RequestReader.API_GATEWAY_CONTEXT_PROPERTY, v1Request.getRequestContext());
 			httpRequest.setAttribute(RequestReader.ALB_CONTEXT_PROPERTY, v1Request.getRequestContext().getElb());
@@ -159,6 +154,12 @@ private static HttpServletRequest generateRequest2(String request, Context lambd
 		
 		v2Request.getHeaders().forEach(httpRequest::setHeader);
 
+        populateContentAndContentType(
+                v2Request.getBody(),
+                v2Request.getHeaders().get(HttpHeaders.CONTENT_TYPE),
+                v2Request.isBase64Encoded(),
+                httpRequest
+        );
 
         if (StringUtils.hasText(v2Request.getBody())) {
 			if (v2Request.getHeaders().get(HttpHeaders.CONTENT_TYPE)==null) {
@@ -197,6 +198,24 @@ private static <T> T readValue(String json, Class<T> clazz, ObjectMapper mapper)
 		}
 	}
 
+    private static void populateContentAndContentType(
+            String body,
+            String contentType,
+            boolean base64Encoded,
+            ServerlessHttpServletRequest httpRequest) {
+        if (StringUtils.hasText(body)) {
+            if (contentType == null) {
+                httpRequest.setContentType("application/json");
+            }
+            if (base64Encoded) {
+                httpRequest.setContent(Base64.getMimeDecoder().decode(body));
+            } else {
+                Charset charseEncoding = parseCharacterEncoding(contentType);
+                httpRequest.setContent(body.getBytes(charseEncoding));
+            }
+        }
+    }
+
     static final String HEADER_KEY_VALUE_SEPARATOR = "=";
     static final String HEADER_VALUE_SEPARATOR = ";";
     static final String ENCODING_VALUE_KEY = "charset";
diff --git a/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/SpringDelegatingLambdaContainerHandlerTests.java b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/SpringDelegatingLambdaContainerHandlerTests.java
index f9f60e841..61957fe24 100644
--- a/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/SpringDelegatingLambdaContainerHandlerTests.java
+++ b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/SpringDelegatingLambdaContainerHandlerTests.java
@@ -345,7 +345,6 @@ private byte[] generateHttpRequest2(Map requestMap, String method, String path,
         if (!CollectionUtils.isEmpty(headers)) {
             map.put("headers", headers);
         }
-        System.out.println(map);
         return mapper.writeValueAsBytes(map);
     }
 }

From 56be6542abfca5a9adbc969a4454f5eae6601a11 Mon Sep 17 00:00:00 2001
From: Nicolas PETERS <nicolas.peters@canal-plus.com>
Date: Thu, 21 Nov 2024 19:14:55 +0100
Subject: [PATCH 296/430] 1084: remove remove duplicated code with HttpUtils

---
 .../serverless/proxy/internal/HttpUtils.java  | 68 +++++++++++++++++++
 .../AwsHttpApiV2ProxyHttpServletRequest.java  |  7 +-
 .../servlet/AwsHttpServletRequest.java        | 44 ------------
 .../servlet/AwsProxyHttpServletRequest.java   |  9 ++-
 .../spring/AwsSpringHttpProcessingUtils.java  | 44 +-----------
 5 files changed, 81 insertions(+), 91 deletions(-)
 create mode 100644 aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/HttpUtils.java

diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/HttpUtils.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/HttpUtils.java
new file mode 100644
index 000000000..f6eba4157
--- /dev/null
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/HttpUtils.java
@@ -0,0 +1,68 @@
+package com.amazonaws.serverless.proxy.internal;
+
+import org.apache.commons.io.Charsets;
+
+import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
+import java.nio.charset.UnsupportedCharsetException;
+
+public final class HttpUtils {
+
+    static final String HEADER_KEY_VALUE_SEPARATOR = "=";
+    static final String HEADER_VALUE_SEPARATOR = ";";
+    static final String ENCODING_VALUE_KEY = "charset";
+
+
+    static public Charset parseCharacterEncoding(String contentTypeHeader,Charset defaultCharset) {
+        // we only look at content-type because content-encoding should only be used for
+        // "binary" requests such as gzip/deflate.
+        if (contentTypeHeader == null) {
+            return defaultCharset;
+        }
+
+        String[] contentTypeValues = contentTypeHeader.split(HEADER_VALUE_SEPARATOR);
+        if (contentTypeValues.length <= 1) {
+            return defaultCharset;
+        }
+
+        for (String contentTypeValue : contentTypeValues) {
+            if (contentTypeValue.trim().startsWith(ENCODING_VALUE_KEY)) {
+                String[] encodingValues = contentTypeValue.split(HEADER_KEY_VALUE_SEPARATOR);
+                if (encodingValues.length <= 1) {
+                    return defaultCharset;
+                }
+                try {
+                    return Charsets.toCharset(encodingValues[1]);
+                } catch (UnsupportedCharsetException ex) {
+                    return defaultCharset;
+                }
+            }
+        }
+        return defaultCharset;
+    }
+
+
+    static public String appendCharacterEncoding(String currentContentType, String newEncoding) {
+        if (currentContentType == null || currentContentType.trim().isEmpty()) {
+            return null;
+        }
+
+        if (currentContentType.contains(HEADER_VALUE_SEPARATOR)) {
+            String[] contentTypeValues = currentContentType.split(HEADER_VALUE_SEPARATOR);
+            StringBuilder contentType = new StringBuilder(contentTypeValues[0]);
+
+            for (int i = 1; i < contentTypeValues.length; i++) {
+                String contentTypeValue = contentTypeValues[i];
+                String contentTypeString = HEADER_VALUE_SEPARATOR + " " + contentTypeValue;
+                if (contentTypeValue.trim().startsWith(ENCODING_VALUE_KEY)) {
+                    contentTypeString = HEADER_VALUE_SEPARATOR + " " + ENCODING_VALUE_KEY + HEADER_KEY_VALUE_SEPARATOR + newEncoding;
+                }
+                contentType.append(contentTypeString);
+            }
+
+            return contentType.toString();
+        } else {
+            return currentContentType + HEADER_VALUE_SEPARATOR + " " + ENCODING_VALUE_KEY + HEADER_KEY_VALUE_SEPARATOR + newEncoding;
+        }
+    }
+}
diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpApiV2ProxyHttpServletRequest.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpApiV2ProxyHttpServletRequest.java
index 537e10759..5a2534a2b 100644
--- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpApiV2ProxyHttpServletRequest.java
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpApiV2ProxyHttpServletRequest.java
@@ -12,6 +12,7 @@
  */
 package com.amazonaws.serverless.proxy.internal.servlet;
 
+import com.amazonaws.serverless.proxy.internal.HttpUtils;
 import com.amazonaws.serverless.proxy.internal.LambdaContainerHandler;
 import com.amazonaws.serverless.proxy.internal.SecurityUtils;
 import com.amazonaws.serverless.proxy.model.ContainerConfig;
@@ -32,6 +33,7 @@
 import java.io.StringReader;
 import java.io.UnsupportedEncodingException;
 import java.net.URLDecoder;
+import java.nio.charset.Charset;
 import java.security.Principal;
 import java.time.Instant;
 import java.time.ZonedDateTime;
@@ -232,7 +234,8 @@ public String getCharacterEncoding() {
         if (headers == null) {
             return config.getDefaultContentCharset();
         }
-        return parseCharacterEncoding(headers.getFirst(HttpHeaders.CONTENT_TYPE));
+        Charset charset = HttpUtils.parseCharacterEncoding(headers.getFirst(HttpHeaders.CONTENT_TYPE),null);
+        return charset != null ? charset.name() : null;
     }
 
     @Override
@@ -242,7 +245,7 @@ public void setCharacterEncoding(String s) throws UnsupportedEncodingException {
             return;
         }
         String currentContentType = headers.getFirst(HttpHeaders.CONTENT_TYPE);
-        headers.putSingle(HttpHeaders.CONTENT_TYPE, appendCharacterEncoding(currentContentType, s));
+        headers.putSingle(HttpHeaders.CONTENT_TYPE, HttpUtils.appendCharacterEncoding(currentContentType, s));
     }
 
     @Override
diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java
index ea8ef4a1a..97beabe64 100644
--- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java
@@ -369,53 +369,9 @@ protected StringBuffer generateRequestURL(String requestPath) {
         return new StringBuffer(getScheme() + "://" + url);
     }
 
-    protected String parseCharacterEncoding(String contentTypeHeader) {
-        // we only look at content-type because content-encoding should only be used for
-        // "binary" requests such as gzip/deflate.
-        if (contentTypeHeader == null) {
-            return null;
-        }
 
-        String[] contentTypeValues = contentTypeHeader.split(HEADER_VALUE_SEPARATOR);
-        if (contentTypeValues.length <= 1) {
-            return null;
-        }
 
-        for (String contentTypeValue : contentTypeValues) {
-            if (contentTypeValue.trim().startsWith(ENCODING_VALUE_KEY)) {
-                String[] encodingValues = contentTypeValue.split(HEADER_KEY_VALUE_SEPARATOR);
-                if (encodingValues.length <= 1) {
-                    return null;
-                }
-                return encodingValues[1];
-            }
-        }
-        return null;
-    }
 
-    protected String appendCharacterEncoding(String currentContentType, String newEncoding) {
-        if (currentContentType == null || currentContentType.trim().isEmpty()) {
-            return null;
-        }
-
-        if (currentContentType.contains(HEADER_VALUE_SEPARATOR)) {
-            String[] contentTypeValues = currentContentType.split(HEADER_VALUE_SEPARATOR);
-            StringBuilder contentType = new StringBuilder(contentTypeValues[0]);
-
-            for (int i = 1; i < contentTypeValues.length; i++) {
-                String contentTypeValue = contentTypeValues[i];
-                String contentTypeString = HEADER_VALUE_SEPARATOR + " " + contentTypeValue;
-                if (contentTypeValue.trim().startsWith(ENCODING_VALUE_KEY)) {
-                    contentTypeString = HEADER_VALUE_SEPARATOR + " " + ENCODING_VALUE_KEY + HEADER_KEY_VALUE_SEPARATOR + newEncoding;
-                }
-                contentType.append(contentTypeString);
-            }
-
-            return contentType.toString();
-        } else {
-            return currentContentType + HEADER_VALUE_SEPARATOR + " " + ENCODING_VALUE_KEY + HEADER_KEY_VALUE_SEPARATOR + newEncoding;
-        }
-    }
 
     protected ServletInputStream bodyStringToInputStream(String body, boolean isBase64Encoded) throws IOException {
         if (body == null) {
diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequest.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequest.java
index fe514e65d..6406be478 100644
--- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequest.java
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequest.java
@@ -13,6 +13,7 @@
 package com.amazonaws.serverless.proxy.internal.servlet;
 
 
+import com.amazonaws.serverless.proxy.internal.HttpUtils;
 import com.amazonaws.serverless.proxy.internal.LambdaContainerHandler;
 import com.amazonaws.serverless.proxy.internal.SecurityUtils;
 import com.amazonaws.serverless.proxy.model.AwsProxyRequest;
@@ -35,6 +36,7 @@
 import java.io.IOException;
 import java.io.StringReader;
 import java.io.UnsupportedEncodingException;
+import java.nio.charset.Charset;
 import java.security.Principal;
 import java.time.Instant;
 import java.time.ZonedDateTime;
@@ -273,7 +275,8 @@ public String getCharacterEncoding() {
         if (request.getMultiValueHeaders() == null) {
             return config.getDefaultContentCharset();
         }
-        return parseCharacterEncoding(request.getMultiValueHeaders().getFirst(HttpHeaders.CONTENT_TYPE));
+        Charset charset = HttpUtils.parseCharacterEncoding(request.getMultiValueHeaders().getFirst(HttpHeaders.CONTENT_TYPE),null);
+        return charset != null ? charset.name() : null;
     }
 
 
@@ -284,12 +287,12 @@ public void setCharacterEncoding(String s)
             request.setMultiValueHeaders(new Headers());
         }
         String currentContentType = request.getMultiValueHeaders().getFirst(HttpHeaders.CONTENT_TYPE);
-        if (currentContentType == null || "".equals(currentContentType)) {
+        if (currentContentType == null || currentContentType.isEmpty()) {
             log.debug("Called set character encoding to " + SecurityUtils.crlf(s) + " on a request without a content type. Character encoding will not be set");
             return;
         }
 
-        request.getMultiValueHeaders().putSingle(HttpHeaders.CONTENT_TYPE, appendCharacterEncoding(currentContentType, s));
+        request.getMultiValueHeaders().putSingle(HttpHeaders.CONTENT_TYPE, HttpUtils.appendCharacterEncoding(currentContentType, s));
     }
 
 
diff --git a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtils.java b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtils.java
index f7d1e0006..2547b723b 100644
--- a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtils.java
+++ b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtils.java
@@ -10,6 +10,7 @@
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
 
+import com.amazonaws.serverless.proxy.internal.HttpUtils;
 import org.apache.commons.io.Charsets;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -161,17 +162,6 @@ private static HttpServletRequest generateRequest2(String request, Context lambd
                 httpRequest
         );
 
-        if (StringUtils.hasText(v2Request.getBody())) {
-			if (v2Request.getHeaders().get(HttpHeaders.CONTENT_TYPE)==null) {
-				httpRequest.setContentType("application/json");
-			}
-			if (v2Request.isBase64Encoded()) {
-                httpRequest.setContent(Base64.getMimeDecoder().decode(v2Request.getBody()));
-            } else {
-                Charset charseEncoding = parseCharacterEncoding(v2Request.getHeaders().get(HttpHeaders.CONTENT_TYPE));
-                httpRequest.setContent(v2Request.getBody().getBytes(charseEncoding));
-            }
-        }
 		httpRequest.setAttribute(RequestReader.HTTP_API_CONTEXT_PROPERTY, v2Request.getRequestContext());
 		httpRequest.setAttribute(RequestReader.HTTP_API_STAGE_VARS_PROPERTY, v2Request.getStageVariables());
 		httpRequest.setAttribute(RequestReader.HTTP_API_EVENT_PROPERTY, v2Request);
@@ -210,42 +200,12 @@ private static void populateContentAndContentType(
             if (base64Encoded) {
                 httpRequest.setContent(Base64.getMimeDecoder().decode(body));
             } else {
-                Charset charseEncoding = parseCharacterEncoding(contentType);
+                Charset charseEncoding = HttpUtils.parseCharacterEncoding(contentType,StandardCharsets.UTF_8);
                 httpRequest.setContent(body.getBytes(charseEncoding));
             }
         }
     }
 
-    static final String HEADER_KEY_VALUE_SEPARATOR = "=";
-    static final String HEADER_VALUE_SEPARATOR = ";";
-    static final String ENCODING_VALUE_KEY = "charset";
-    static protected Charset parseCharacterEncoding(String contentTypeHeader) {
-        // we only look at content-type because content-encoding should only be used for
-        // "binary" requests such as gzip/deflate.
-        Charset defaultCharset = StandardCharsets.UTF_8;
-        if (contentTypeHeader == null) {
-            return defaultCharset;
-        }
-
-        String[] contentTypeValues = contentTypeHeader.split(HEADER_VALUE_SEPARATOR);
-        if (contentTypeValues.length <= 1) {
-            return defaultCharset;
-        }
 
-        for (String contentTypeValue : contentTypeValues) {
-            if (contentTypeValue.trim().startsWith(ENCODING_VALUE_KEY)) {
-                String[] encodingValues = contentTypeValue.split(HEADER_KEY_VALUE_SEPARATOR);
-                if (encodingValues.length <= 1) {
-                    return defaultCharset;
-                }
-                try {
-                    return Charsets.toCharset(encodingValues[1]);
-                } catch (UnsupportedCharsetException ex) {
-                    return defaultCharset;
-                }
-            }
-        }
-        return defaultCharset;
-    }
 
 }

From 1050e940a02ad18cf18ed60afa263b305ce950b0 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Mon, 25 Nov 2024 08:49:49 +0100
Subject: [PATCH 297/430] default content-type: application/json

---
 .../proxy/spring/AwsSpringHttpProcessingUtils.java           | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtils.java b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtils.java
index 2547b723b..01074f865 100644
--- a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtils.java
+++ b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtils.java
@@ -17,6 +17,7 @@
 import org.springframework.cloud.function.serverless.web.ServerlessHttpServletRequest;
 import org.springframework.cloud.function.serverless.web.ServerlessMVC;
 import org.springframework.http.HttpHeaders;
+import org.springframework.http.MediaType;
 import org.springframework.util.CollectionUtils;
 import org.springframework.util.FileCopyUtils;
 import org.springframework.util.MultiValueMapAdapter;
@@ -194,9 +195,7 @@ private static void populateContentAndContentType(
             boolean base64Encoded,
             ServerlessHttpServletRequest httpRequest) {
         if (StringUtils.hasText(body)) {
-            if (contentType == null) {
-                httpRequest.setContentType("application/json");
-            }
+            httpRequest.setContentType(contentType == null ? MediaType.APPLICATION_JSON_VALUE : contentType);
             if (base64Encoded) {
                 httpRequest.setContent(Base64.getMimeDecoder().decode(body));
             } else {

From 1109c8fe9da414fb998c8e715cb5e92e5644ca85 Mon Sep 17 00:00:00 2001
From: Jay Fennelly <jfennelly@commerce-architects.com>
Date: Mon, 25 Nov 2024 10:52:28 -0800
Subject: [PATCH 298/430] Convert tabs to spaces

---
 .../servlet/AwsHttpServletRequest.java        |  34 +--
 .../servlet/AwsProxyHttpServletRequest.java   |  61 ++--
 .../servlet/AwsHttpServletRequestTest.java    |  10 +-
 .../testutils/AwsProxyRequestBuilder.java     |  38 +--
 .../testutils/AwsProxyRequestBuilderTest.java | 282 +++++++++---------
 5 files changed, 213 insertions(+), 212 deletions(-)

diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java
index 84e4f96c5..e7df944ff 100644
--- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java
@@ -607,7 +607,7 @@ protected List<String> getQueryParamValuesAsList(MultiValuedTreeMap<String, Stri
     }
 
     protected Map<String, String[]> generateParameterMap(MultiValuedTreeMap<String, String> qs, ContainerConfig config) {
-    	return generateParameterMap(qs, config, false);
+        return generateParameterMap(qs, config, false);
     }
     
     protected Map<String, String[]> generateParameterMap(MultiValuedTreeMap<String, String> qs, ContainerConfig config, boolean decodeQueryParams) {
@@ -621,22 +621,22 @@ protected Map<String, String[]> generateParameterMap(MultiValuedTreeMap<String,
                 .collect(Collectors.toMap(Map.Entry::getKey, (e) -> e.getValue().toArray(new String[0])));
         }
 
-    	// decode all keys and values in map
-    	final MultiValuedTreeMap<String, String> decodedQs = new MultiValuedTreeMap<String, String>();
-    	if (decodeQueryParams) {
-    		for (Map.Entry<String, List<String>> entry : qs.entrySet()) {
-    			String k = decodeValueIfEncoded(entry.getKey());
-    			List<String> v = getQueryParamValuesAsList(qs, entry.getKey(), false).stream()
-						.map(AwsHttpServletRequest::decodeValueIfEncoded)
-						.collect(Collectors.toList());
-    			// addAll in case map has 2 keys that are identical once decoded
-    			decodedQs.addAll(k, v);
-			}
-    	} else {
-    		decodedQs.putAll(qs);
-    	}
-    	
-    	Map<String, List<String>> queryStringParams;
+        // decode all keys and values in map
+        final MultiValuedTreeMap<String, String> decodedQs = new MultiValuedTreeMap<String, String>();
+        if (decodeQueryParams) {
+            for (Map.Entry<String, List<String>> entry : qs.entrySet()) {
+                String k = decodeValueIfEncoded(entry.getKey());
+                List<String> v = getQueryParamValuesAsList(qs, entry.getKey(), false).stream()
+                        .map(AwsHttpServletRequest::decodeValueIfEncoded)
+                        .collect(Collectors.toList());
+                // addAll in case map has 2 keys that are identical once decoded
+                decodedQs.addAll(k, v);
+            }
+        } else {
+            decodedQs.putAll(qs);
+        }
+        
+        Map<String, List<String>> queryStringParams;
         if (config.isQueryStringCaseSensitive()) {
             queryStringParams = decodedQs;
         } else {
diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequest.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequest.java
index c10b1ef5e..188073841 100644
--- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequest.java
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequest.java
@@ -326,25 +326,25 @@ public String getContentType() {
     @Override
     public String getParameter(String s) {
 
-    	// decode key if ALB
-    	if (request.getRequestSource() == RequestSource.ALB) {
-    		s = decodeValueIfEncoded(s);
-    	}
+        // decode key if ALB
+        if (request.getRequestSource() == RequestSource.ALB) {
+            s = decodeValueIfEncoded(s);
+        }
 
        String queryStringParameter = getFirstQueryParamValue(request.getMultiValueQueryStringParameters(), s, config.isQueryStringCaseSensitive());
-        if (queryStringParameter != null) {
-        	if (request.getRequestSource() == RequestSource.ALB) {
-        		queryStringParameter = decodeValueIfEncoded(queryStringParameter);
-        	}
-            return queryStringParameter;
-        }
+       if (queryStringParameter != null) {
+           if (request.getRequestSource() == RequestSource.ALB) {
+               queryStringParameter = decodeValueIfEncoded(queryStringParameter);
+           }
+           return queryStringParameter;
+       }
 
-        String[] bodyParams = getFormBodyParameterCaseInsensitive(s);
-        if (bodyParams.length == 0) {
-            return null;
-        } else {
-            return bodyParams[0];
-        }
+       String[] bodyParams = getFormBodyParameterCaseInsensitive(s);
+       if (bodyParams.length == 0) {
+           return null;
+       } else {
+           return bodyParams[0];
+       }
     }
 
 
@@ -357,40 +357,41 @@ public Enumeration<String> getParameterNames() {
 
         Set<String> paramNames = request.getMultiValueQueryStringParameters().keySet();
         if (request.getRequestSource() == RequestSource.ALB) {
-        	paramNames = paramNames.stream().map(AwsProxyHttpServletRequest::decodeValueIfEncoded).collect(Collectors.toSet());
+            paramNames = paramNames.stream().map(AwsProxyHttpServletRequest::decodeValueIfEncoded).collect(Collectors.toSet());
         }
-		
+
         return Collections.enumeration(
-				Stream.concat(formParameterNames.stream(), paramNames.stream())
-				.collect(Collectors.toSet()));
+                Stream.concat(formParameterNames.stream(), paramNames.stream())
+                .collect(Collectors.toSet()));
     }
 
 
     @Override
     @SuppressFBWarnings("PZLA_PREFER_ZERO_LENGTH_ARRAYS") // suppressing this as according to the specs we should be returning null here if we can't find params
     public String[] getParameterValues(String s) {
-    	
-    	// decode key if ALB
-    	if (request.getRequestSource() == RequestSource.ALB) {
-    		s = decodeValueIfEncoded(s);
-    	}
-    	
-    	// TODO lots of back and forth arrays and lists here, sort it out!
+    
+    // TODO lots of back and forth arrays and lists here, sort it out!
         List<String> values = new ArrayList<>(Arrays.asList(getQueryParamValues(request.getMultiValueQueryStringParameters(), s, config.isQueryStringCaseSensitive())));
         // List<String> values = getQueryParamValuesAsList(request.getMultiValueQueryStringParameters(), s, config.isQueryStringCaseSensitive());
+        // decode key if ALB
+        if (request.getRequestSource() == RequestSource.ALB) {
+            s = decodeValueIfEncoded(s);
+        }
+
         
         // decode values if ALB
-        if (request.getRequestSource() == RequestSource.ALB) {
-        	values = values.stream().map(AwsHttpServletRequest::decodeValueIfEncoded).collect(Collectors.toList());
+        if (values != null && request.getRequestSource() == RequestSource.ALB) {
+            values = values.stream().map(AwsHttpServletRequest::decodeValueIfEncoded).collect(Collectors.toList());
         }
 
         values.addAll(Arrays.asList(getFormBodyParameterCaseInsensitive(s)));
-
+        
         if (values.size() == 0) {
             return null;
         } else {
             return values.toArray(new String[0]);
         }
+
     }
 
 
diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequestTest.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequestTest.java
index 904a35508..83c747243 100644
--- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequestTest.java
+++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequestTest.java
@@ -386,9 +386,9 @@ void parameterMap_generateParameterMap_formEncodedAndQueryString() {
 
     @Test
     void parameterMap_generateParameterMap_differentCasing_caseSensitive() {
-    	ContainerConfig caseSensitiveConfig = ContainerConfig.defaultConfig();
-    	caseSensitiveConfig.setQueryStringCaseSensitive(true);
-    	AwsProxyHttpServletRequest request = new AwsProxyHttpServletRequest(differentCasing, mockContext, null, caseSensitiveConfig);
+        ContainerConfig caseSensitiveConfig = ContainerConfig.defaultConfig();
+        caseSensitiveConfig.setQueryStringCaseSensitive(true);
+        AwsProxyHttpServletRequest request = new AwsProxyHttpServletRequest(differentCasing, mockContext, null, caseSensitiveConfig);
         Map<String, String[]> paramMap = null;
         try {
             paramMap = request.generateParameterMap(request.getAwsProxyRequest().getMultiValueQueryStringParameters(), caseSensitiveConfig);
@@ -403,8 +403,8 @@ void parameterMap_generateParameterMap_differentCasing_caseSensitive() {
 
     @Test
     void parameterMap_generateParameterMap_differentCasing_caseInsensitive() {
-    	ContainerConfig caseInsensitiveConfig = ContainerConfig.defaultConfig();
-    	caseInsensitiveConfig.setQueryStringCaseSensitive(false);
+        ContainerConfig caseInsensitiveConfig = ContainerConfig.defaultConfig();
+        caseInsensitiveConfig.setQueryStringCaseSensitive(false);
 
         AwsProxyHttpServletRequest request = new AwsProxyHttpServletRequest(differentCasing, mockContext, null, caseInsensitiveConfig);
 
diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/testutils/AwsProxyRequestBuilder.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/testutils/AwsProxyRequestBuilder.java
index 4d1bea427..e42130453 100644
--- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/testutils/AwsProxyRequestBuilder.java
+++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/testutils/AwsProxyRequestBuilder.java
@@ -92,26 +92,26 @@ public AwsProxyRequestBuilder(String path, String httpMethod) {
     //-------------------------------------------------------------
 
     public AwsProxyRequestBuilder alb() {
-		/*
-		 * This method sets up the requestContext to look like an ALB request and also
-		 * re-encodes URL query params, since ALBs do not decode them. This now returns
-		 * a new AwsProxyRequestBuilder with the new query param state, so the original
-		 * builder maintains the original configured state and can be then be reused in
-		 * further unit tests. For now the simplest way to accomplish a deep copy is by
-		 * serializing to JSON then deserializing.
-		 */
-    	
-    	ObjectMapper objectMapper = new ObjectMapper();
-    	AwsProxyRequest albRequest = null;
-    	try {
-    		String json = objectMapper.writeValueAsString(this.request);
-    		albRequest = objectMapper.readValue(json, AwsProxyRequest.class);
-    	} catch (JsonProcessingException jpe) {
-    		throw new RuntimeException(jpe);
-    	}
-    	
+        /*
+         * This method sets up the requestContext to look like an ALB request and also
+         * re-encodes URL query params, since ALBs do not decode them. This now returns
+         * a new AwsProxyRequestBuilder with the new query param state, so the original
+         * builder maintains the original configured state and can be then be reused in
+         * further unit tests. For now the simplest way to accomplish a deep copy is by
+         * serializing to JSON then deserializing.
+         */
+        
+        ObjectMapper objectMapper = new ObjectMapper();
+        AwsProxyRequest albRequest = null;
+        try {
+            String json = objectMapper.writeValueAsString(this.request);
+            albRequest = objectMapper.readValue(json, AwsProxyRequest.class);
+        } catch (JsonProcessingException jpe) {
+            throw new RuntimeException(jpe);
+        }
+        
         if (albRequest.getRequestContext() == null) {
-        	albRequest.setRequestContext(new AwsProxyRequestContext());
+            albRequest.setRequestContext(new AwsProxyRequestContext());
         }
         albRequest.getRequestContext().setElb(new AlbContext());
         albRequest.getRequestContext().getElb().setTargetGroupArn(
diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/testutils/AwsProxyRequestBuilderTest.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/testutils/AwsProxyRequestBuilderTest.java
index 6263eeaf9..b851e31dc 100644
--- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/testutils/AwsProxyRequestBuilderTest.java
+++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/testutils/AwsProxyRequestBuilderTest.java
@@ -12,146 +12,146 @@
 
 public class AwsProxyRequestBuilderTest {
 
-	private static final String TEST_KEY = "testkey";
-	private static final String TEST_VALUE = "testvalue";
-	private static final String TEST_KEY_FOR_ENCODING = "test@key 1";
-	private static final String TEST_VALUE_FOR_ENCODING = "test value!!";
-
-
-	void baseConstructorAsserts(AwsProxyRequest request) {
-		assertEquals(0, request.getMultiValueHeaders().size());
-		assertEquals(0, request.getHeaders().size());
-		assertEquals(0, request.getMultiValueQueryStringParameters().size());
-		assertNotNull(request.getRequestContext());
-		assertNotNull(request.getRequestContext().getRequestId());
-		assertNotNull(request.getRequestContext().getExtendedRequestId());
-		assertEquals("test", request.getRequestContext().getStage());
-		assertEquals("HTTP/1.1", request.getRequestContext().getProtocol());
-		assertNotNull(request.getRequestContext().getRequestTimeEpoch());
-		assertNotNull(request.getRequestContext().getIdentity());
-		assertEquals("127.0.0.1", request.getRequestContext().getIdentity().getSourceIp());
-	}
-
-	@Test
-	void constructor_path_httpMethod() {
-
-		AwsProxyRequestBuilder builder = new AwsProxyRequestBuilder("/path", "GET");
-		AwsProxyRequest request = builder.build();
-		assertEquals("/path", request.getPath());
-		assertEquals("GET", request.getHttpMethod());
-		baseConstructorAsserts(request);
-	}
-
-	@Test
-	void constructor_path_nullHttpMethod() {
-		AwsProxyRequestBuilder builder = new AwsProxyRequestBuilder("/path");
-		AwsProxyRequest request = builder.build();
-		assertNull(request.getHttpMethod());
-		assertEquals("/path", request.getPath());
-		baseConstructorAsserts(request);
-	}
-
-	@Test
-	void constructor_nullPath_nullHttpMethod() {
-		AwsProxyRequestBuilder builder = new AwsProxyRequestBuilder();
-		AwsProxyRequest request = builder.build();
-		assertNull(request.getHttpMethod());
-		assertNull(request.getPath());
-		baseConstructorAsserts(request);
-	}
-
-	@Test
-	void form_key_value() {
-		AwsProxyRequestBuilder builder = new AwsProxyRequestBuilder("/path", "POST");
-		builder.form(TEST_KEY, TEST_VALUE);
-		AwsProxyRequest request = builder.build();
-		assertEquals(1, request.getMultiValueHeaders().get(HttpHeaders.CONTENT_TYPE).size());
-		assertEquals(MediaType.APPLICATION_FORM_URLENCODED, request.getMultiValueHeaders().getFirst(HttpHeaders.CONTENT_TYPE));
-		assertNull(request.getHeaders().get(HttpHeaders.CONTENT_TYPE));
-		assertNotNull(request.getBody());
-		assertEquals(TEST_KEY + "=" + TEST_VALUE, request.getBody());
-	}
-
-	@Test
-	void form_key_nullKey_nullValue() {
-		AwsProxyRequestBuilder builder = new AwsProxyRequestBuilder("/path", "POST");
-		assertThrows(IllegalArgumentException.class, () -> builder.form(null, TEST_VALUE));
-		assertThrows(IllegalArgumentException.class, () -> builder.form(TEST_KEY, null));
-		assertThrows(IllegalArgumentException.class, () -> builder.form(null, null));
-	}
-
-	@Test
-	void form_keyEncoded_valueEncoded() throws IOException {
-		AwsProxyRequestBuilder builder = new AwsProxyRequestBuilder("/path", "POST");
-		builder.form(TEST_KEY_FOR_ENCODING, TEST_VALUE_FOR_ENCODING);
-		AwsProxyRequest request = builder.build();
-
-		assertEquals(1, request.getMultiValueHeaders().get(HttpHeaders.CONTENT_TYPE).size());
-		assertEquals(MediaType.APPLICATION_FORM_URLENCODED, request.getMultiValueHeaders().getFirst(HttpHeaders.CONTENT_TYPE));
-		assertNull(request.getHeaders().get(HttpHeaders.CONTENT_TYPE));
-		assertNotNull(request.getBody());
-		String expected = URLEncoder.encode(TEST_KEY_FOR_ENCODING, "UTF-8") + "=" + URLEncoder.encode(TEST_VALUE_FOR_ENCODING, "UTF-8");
-		assertEquals(expected, request.getBody());
-	}
-
-	@Test
-	void queryString_key_value() {
-		AwsProxyRequestBuilder builder = new AwsProxyRequestBuilder("/path", "POST");
-		builder.queryString(TEST_KEY, TEST_VALUE);
-		AwsProxyRequest request = builder.build();
-
-		assertNull(request.getQueryStringParameters());
-		assertEquals(1, request.getMultiValueQueryStringParameters().size());
-		assertEquals(TEST_KEY, request.getMultiValueQueryStringParameters().keySet().iterator().next());
-		assertEquals(TEST_VALUE, request.getMultiValueQueryStringParameters().get(TEST_KEY).get(0));
-		assertEquals(TEST_VALUE, request.getMultiValueQueryStringParameters().getFirst(TEST_KEY));
-	}
-
-	@Test
-	void queryString_keyNotEncoded_valueNotEncoded() {
-		// builder should not URL encode key or value for query string
-		// in the case of an ALB where values should be encoded, the builder alb() method will handle it
-		AwsProxyRequestBuilder builder = new AwsProxyRequestBuilder("/path", "POST");
-		builder.queryString(TEST_KEY_FOR_ENCODING, TEST_VALUE_FOR_ENCODING);
-		AwsProxyRequest request = builder.build();
-
-		assertNull(request.getQueryStringParameters());
-		assertEquals(1, request.getMultiValueQueryStringParameters().size());
-		assertEquals(TEST_KEY_FOR_ENCODING, request.getMultiValueQueryStringParameters().keySet().iterator().next());
-		assertEquals(TEST_VALUE_FOR_ENCODING, request.getMultiValueQueryStringParameters().get(TEST_KEY_FOR_ENCODING).get(0));
-		assertEquals(TEST_VALUE_FOR_ENCODING, request.getMultiValueQueryStringParameters().getFirst(TEST_KEY_FOR_ENCODING));
-	}
-
-	@Test
-	void queryString_alb_key_value() {
-		AwsProxyRequestBuilder builder = new AwsProxyRequestBuilder("/path", "POST");
-		builder.queryString(TEST_KEY, TEST_VALUE);
-		AwsProxyRequest request = builder.alb().build();
-
-		assertNull(request.getQueryStringParameters());
-		assertEquals(1, request.getMultiValueQueryStringParameters().size());
-		assertEquals(TEST_KEY, request.getMultiValueQueryStringParameters().keySet().iterator().next());
-		assertEquals(TEST_VALUE, request.getMultiValueQueryStringParameters().get(TEST_KEY).get(0));
-		assertEquals(TEST_VALUE, request.getMultiValueQueryStringParameters().getFirst(TEST_KEY));
-	}
-
-	@Test
-	void alb_keyEncoded_valueEncoded() throws IOException {
-		AwsProxyRequestBuilder builder = new AwsProxyRequestBuilder("/path", "POST");
-		MultiValuedTreeMap<String, String> map = new MultiValuedTreeMap<>();
-		map.add(TEST_KEY_FOR_ENCODING, TEST_VALUE_FOR_ENCODING);
-		builder.multiValueQueryString(map);
-		AwsProxyRequest request = builder.alb().build();
-
-		String expectedKey = URLEncoder.encode(TEST_KEY_FOR_ENCODING, "UTF-8");
-		String expectedValue = URLEncoder.encode(TEST_VALUE_FOR_ENCODING, "UTF-8");
-		assertEquals(1, request.getMultiValueQueryStringParameters().size());
-		assertEquals(expectedKey, request.getMultiValueQueryStringParameters().keySet().iterator().next());
-		assertEquals(expectedValue, request.getMultiValueQueryStringParameters().get(expectedKey).get(0));
-		assertEquals(expectedValue, request.getMultiValueQueryStringParameters().getFirst(expectedKey));
-		assertEquals(expectedKey, request.getMultiValueQueryStringParameters().keySet().iterator().next());
-		assertEquals(expectedValue, request.getMultiValueQueryStringParameters().get(expectedKey).get(0));
-		assertEquals(expectedValue, request.getMultiValueQueryStringParameters().getFirst(expectedKey));
-	}
+    private static final String TEST_KEY = "testkey";
+    private static final String TEST_VALUE = "testvalue";
+    private static final String TEST_KEY_FOR_ENCODING = "test@key 1";
+    private static final String TEST_VALUE_FOR_ENCODING = "test value!!";
+
+
+    void baseConstructorAsserts(AwsProxyRequest request) {
+        assertEquals(0, request.getMultiValueHeaders().size());
+        assertEquals(0, request.getHeaders().size());
+        assertEquals(0, request.getMultiValueQueryStringParameters().size());
+        assertNotNull(request.getRequestContext());
+        assertNotNull(request.getRequestContext().getRequestId());
+        assertNotNull(request.getRequestContext().getExtendedRequestId());
+        assertEquals("test", request.getRequestContext().getStage());
+        assertEquals("HTTP/1.1", request.getRequestContext().getProtocol());
+        assertNotNull(request.getRequestContext().getRequestTimeEpoch());
+        assertNotNull(request.getRequestContext().getIdentity());
+        assertEquals("127.0.0.1", request.getRequestContext().getIdentity().getSourceIp());
+    }
+
+    @Test
+    void constructor_path_httpMethod() {
+
+        AwsProxyRequestBuilder builder = new AwsProxyRequestBuilder("/path", "GET");
+        AwsProxyRequest request = builder.build();
+        assertEquals("/path", request.getPath());
+        assertEquals("GET", request.getHttpMethod());
+        baseConstructorAsserts(request);
+    }
+
+    @Test
+    void constructor_path_nullHttpMethod() {
+        AwsProxyRequestBuilder builder = new AwsProxyRequestBuilder("/path");
+        AwsProxyRequest request = builder.build();
+        assertNull(request.getHttpMethod());
+        assertEquals("/path", request.getPath());
+        baseConstructorAsserts(request);
+    }
+
+    @Test
+    void constructor_nullPath_nullHttpMethod() {
+        AwsProxyRequestBuilder builder = new AwsProxyRequestBuilder();
+        AwsProxyRequest request = builder.build();
+        assertNull(request.getHttpMethod());
+        assertNull(request.getPath());
+        baseConstructorAsserts(request);
+    }
+
+    @Test
+    void form_key_value() {
+        AwsProxyRequestBuilder builder = new AwsProxyRequestBuilder("/path", "POST");
+        builder.form(TEST_KEY, TEST_VALUE);
+        AwsProxyRequest request = builder.build();
+        assertEquals(1, request.getMultiValueHeaders().get(HttpHeaders.CONTENT_TYPE).size());
+        assertEquals(MediaType.APPLICATION_FORM_URLENCODED, request.getMultiValueHeaders().getFirst(HttpHeaders.CONTENT_TYPE));
+        assertNull(request.getHeaders().get(HttpHeaders.CONTENT_TYPE));
+        assertNotNull(request.getBody());
+        assertEquals(TEST_KEY + "=" + TEST_VALUE, request.getBody());
+    }
+
+    @Test
+    void form_key_nullKey_nullValue() {
+        AwsProxyRequestBuilder builder = new AwsProxyRequestBuilder("/path", "POST");
+        assertThrows(IllegalArgumentException.class, () -> builder.form(null, TEST_VALUE));
+        assertThrows(IllegalArgumentException.class, () -> builder.form(TEST_KEY, null));
+        assertThrows(IllegalArgumentException.class, () -> builder.form(null, null));
+    }
+
+    @Test
+    void form_keyEncoded_valueEncoded() throws IOException {
+        AwsProxyRequestBuilder builder = new AwsProxyRequestBuilder("/path", "POST");
+        builder.form(TEST_KEY_FOR_ENCODING, TEST_VALUE_FOR_ENCODING);
+        AwsProxyRequest request = builder.build();
+
+        assertEquals(1, request.getMultiValueHeaders().get(HttpHeaders.CONTENT_TYPE).size());
+        assertEquals(MediaType.APPLICATION_FORM_URLENCODED, request.getMultiValueHeaders().getFirst(HttpHeaders.CONTENT_TYPE));
+        assertNull(request.getHeaders().get(HttpHeaders.CONTENT_TYPE));
+        assertNotNull(request.getBody());
+        String expected = URLEncoder.encode(TEST_KEY_FOR_ENCODING, "UTF-8") + "=" + URLEncoder.encode(TEST_VALUE_FOR_ENCODING, "UTF-8");
+        assertEquals(expected, request.getBody());
+    }
+
+    @Test
+    void queryString_key_value() {
+        AwsProxyRequestBuilder builder = new AwsProxyRequestBuilder("/path", "POST");
+        builder.queryString(TEST_KEY, TEST_VALUE);
+        AwsProxyRequest request = builder.build();
+
+        assertNull(request.getQueryStringParameters());
+        assertEquals(1, request.getMultiValueQueryStringParameters().size());
+        assertEquals(TEST_KEY, request.getMultiValueQueryStringParameters().keySet().iterator().next());
+        assertEquals(TEST_VALUE, request.getMultiValueQueryStringParameters().get(TEST_KEY).get(0));
+        assertEquals(TEST_VALUE, request.getMultiValueQueryStringParameters().getFirst(TEST_KEY));
+    }
+
+    @Test
+    void queryString_keyNotEncoded_valueNotEncoded() {
+        // builder should not URL encode key or value for query string
+        // in the case of an ALB where values should be encoded, the builder alb() method will handle it
+        AwsProxyRequestBuilder builder = new AwsProxyRequestBuilder("/path", "POST");
+        builder.queryString(TEST_KEY_FOR_ENCODING, TEST_VALUE_FOR_ENCODING);
+        AwsProxyRequest request = builder.build();
+
+        assertNull(request.getQueryStringParameters());
+        assertEquals(1, request.getMultiValueQueryStringParameters().size());
+        assertEquals(TEST_KEY_FOR_ENCODING, request.getMultiValueQueryStringParameters().keySet().iterator().next());
+        assertEquals(TEST_VALUE_FOR_ENCODING, request.getMultiValueQueryStringParameters().get(TEST_KEY_FOR_ENCODING).get(0));
+        assertEquals(TEST_VALUE_FOR_ENCODING, request.getMultiValueQueryStringParameters().getFirst(TEST_KEY_FOR_ENCODING));
+    }
+
+    @Test
+    void queryString_alb_key_value() {
+        AwsProxyRequestBuilder builder = new AwsProxyRequestBuilder("/path", "POST");
+        builder.queryString(TEST_KEY, TEST_VALUE);
+        AwsProxyRequest request = builder.alb().build();
+
+        assertNull(request.getQueryStringParameters());
+        assertEquals(1, request.getMultiValueQueryStringParameters().size());
+        assertEquals(TEST_KEY, request.getMultiValueQueryStringParameters().keySet().iterator().next());
+        assertEquals(TEST_VALUE, request.getMultiValueQueryStringParameters().get(TEST_KEY).get(0));
+        assertEquals(TEST_VALUE, request.getMultiValueQueryStringParameters().getFirst(TEST_KEY));
+    }
+
+    @Test
+    void alb_keyEncoded_valueEncoded() throws IOException {
+        AwsProxyRequestBuilder builder = new AwsProxyRequestBuilder("/path", "POST");
+        MultiValuedTreeMap<String, String> map = new MultiValuedTreeMap<>();
+        map.add(TEST_KEY_FOR_ENCODING, TEST_VALUE_FOR_ENCODING);
+        builder.multiValueQueryString(map);
+        AwsProxyRequest request = builder.alb().build();
+
+        String expectedKey = URLEncoder.encode(TEST_KEY_FOR_ENCODING, "UTF-8");
+        String expectedValue = URLEncoder.encode(TEST_VALUE_FOR_ENCODING, "UTF-8");
+        assertEquals(1, request.getMultiValueQueryStringParameters().size());
+        assertEquals(expectedKey, request.getMultiValueQueryStringParameters().keySet().iterator().next());
+        assertEquals(expectedValue, request.getMultiValueQueryStringParameters().get(expectedKey).get(0));
+        assertEquals(expectedValue, request.getMultiValueQueryStringParameters().getFirst(expectedKey));
+        assertEquals(expectedKey, request.getMultiValueQueryStringParameters().keySet().iterator().next());
+        assertEquals(expectedValue, request.getMultiValueQueryStringParameters().get(expectedKey).get(0));
+        assertEquals(expectedValue, request.getMultiValueQueryStringParameters().getFirst(expectedKey));
+    }
 
 }

From a202873b939895df6eb023908325daab96cfed2f Mon Sep 17 00:00:00 2001
From: Jay Fennelly <jfennelly@commerce-architects.com>
Date: Mon, 25 Nov 2024 12:10:56 -0800
Subject: [PATCH 299/430] Improve object creation and conversion between lists
 and arrays

---
 .../servlet/AwsHttpApiV2ProxyHttpServletRequest.java | 10 +++++++++-
 .../internal/servlet/AwsProxyHttpServletRequest.java | 12 ++++++++----
 2 files changed, 17 insertions(+), 5 deletions(-)

diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpApiV2ProxyHttpServletRequest.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpApiV2ProxyHttpServletRequest.java
index 1caf6dace..5af7a9dc0 100644
--- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpApiV2ProxyHttpServletRequest.java
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpApiV2ProxyHttpServletRequest.java
@@ -298,8 +298,16 @@ public Enumeration<String> getParameterNames() {
     @Override
     @SuppressFBWarnings("PZLA_PREFER_ZERO_LENGTH_ARRAYS") // suppressing this as according to the specs we should be returning null here if we can't find params
     public String[] getParameterValues(String s) {
-        List<String> values = new ArrayList<>(Arrays.asList(getQueryParamValues(queryString, s, config.isQueryStringCaseSensitive())));
 
+        List<String> values = getQueryParamValuesAsList(queryString, s, config.isQueryStringCaseSensitive());
+
+        // copy list so we don't modifying the underlying multi-value query params
+        if (values != null) {
+            values = new ArrayList<>(values);
+        } else {
+            values = new ArrayList<>();
+        }
+        
         values.addAll(Arrays.asList(getFormBodyParameterCaseInsensitive(s)));
 
         if (values.size() == 0) {
diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequest.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequest.java
index 188073841..bd3e0df58 100644
--- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequest.java
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequest.java
@@ -370,14 +370,19 @@ public Enumeration<String> getParameterNames() {
     @SuppressFBWarnings("PZLA_PREFER_ZERO_LENGTH_ARRAYS") // suppressing this as according to the specs we should be returning null here if we can't find params
     public String[] getParameterValues(String s) {
     
-    // TODO lots of back and forth arrays and lists here, sort it out!
-        List<String> values = new ArrayList<>(Arrays.asList(getQueryParamValues(request.getMultiValueQueryStringParameters(), s, config.isQueryStringCaseSensitive())));
-        // List<String> values = getQueryParamValuesAsList(request.getMultiValueQueryStringParameters(), s, config.isQueryStringCaseSensitive());
         // decode key if ALB
         if (request.getRequestSource() == RequestSource.ALB) {
             s = decodeValueIfEncoded(s);
         }
 
+        List<String> values = getQueryParamValuesAsList(request.getMultiValueQueryStringParameters(), s, config.isQueryStringCaseSensitive());
+        
+        // copy list so we don't modifying the underlying multi-value query params
+        if (values != null) {
+            values = new ArrayList<>(values);
+        } else {
+            values = new ArrayList<>();
+        }
         
         // decode values if ALB
         if (values != null && request.getRequestSource() == RequestSource.ALB) {
@@ -391,7 +396,6 @@ public String[] getParameterValues(String s) {
         } else {
             return values.toArray(new String[0]);
         }
-
     }
 
 

From 24908a11854831d32cd6d05fc3ecf9496e09c1f7 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Wed, 27 Nov 2024 07:22:56 +0100
Subject: [PATCH 300/430] chore(deps): Update Spring dependencies (framework to
 6.2.0, security to 6.4.1, boot to 3.4.0, spring-cloud-function-serverless-web
 to 4.1.4)

---
 .github/workflows/continuous-integration-workflow.yml     | 2 ++
 aws-serverless-java-container-core/pom.xml                | 2 +-
 aws-serverless-java-container-spring/pom.xml              | 4 ++--
 aws-serverless-java-container-springboot3/pom.xml         | 8 ++++----
 .../src/main/resources/archetype-resources/build.gradle   | 4 ++--
 .../src/main/resources/archetype-resources/pom.xml        | 2 +-
 .../src/main/resources/archetype-resources/build.gradle   | 2 +-
 .../src/main/resources/archetype-resources/pom.xml        | 2 +-
 samples/spring/pet-store/build.gradle                     | 4 ++--
 samples/spring/pet-store/pom.xml                          | 2 +-
 samples/springboot3/alt-pet-store/build.gradle            | 2 +-
 samples/springboot3/alt-pet-store/pom.xml                 | 2 +-
 samples/springboot3/graphql-pet-store/pom.xml             | 2 +-
 samples/springboot3/pet-store-native/pom.xml              | 2 +-
 samples/springboot3/pet-store/build.gradle                | 2 +-
 samples/springboot3/pet-store/pom.xml                     | 2 +-
 16 files changed, 23 insertions(+), 21 deletions(-)

diff --git a/.github/workflows/continuous-integration-workflow.yml b/.github/workflows/continuous-integration-workflow.yml
index 25228263a..2785cd3dc 100644
--- a/.github/workflows/continuous-integration-workflow.yml
+++ b/.github/workflows/continuous-integration-workflow.yml
@@ -79,6 +79,8 @@ jobs:
         run: ./gha_build.sh springboot3 false false -Dspringboot.version=3.1.12 -Dspring.version=6.0.21 -Dspringsecurity.version=6.1.9 -Ddependency-check.skip=true
       - name: Build with Spring Boot 3.2.x
         run: ./gha_build.sh springboot3 false false -Dspringboot.version=3.2.7 -Dspring.version=6.1.10 -Dspringsecurity.version=6.2.5 -Ddependency-check.skip=true
+      - name: Build with Spring Boot 3.3.x
+        run: ./gha_build.sh springboot3 false false -Dspringboot.version=3.3.6 -Dspring.version=6.1.15 -Dspringsecurity.version=6.3.5 -Ddependency-check.skip=true
 
 # temporarily disabled as Struts is not released at the moment
 #  build_struts2:
diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml
index 6657df96f..5c110d937 100644
--- a/aws-serverless-java-container-core/pom.xml
+++ b/aws-serverless-java-container-core/pom.xml
@@ -60,7 +60,7 @@
         <dependency>
             <groupId>org.springframework.security</groupId>
             <artifactId>spring-security-web</artifactId>
-            <version>6.3.4</version>
+            <version>6.4.1</version>
             <scope>test</scope>
         </dependency>
     </dependencies>
diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml
index d133bb983..d11e479ed 100644
--- a/aws-serverless-java-container-spring/pom.xml
+++ b/aws-serverless-java-container-spring/pom.xml
@@ -16,8 +16,8 @@
     </parent>
 
     <properties>
-        <spring.version>6.1.14</spring.version>
-        <spring-security.version>6.3.4</spring-security.version>
+        <spring.version>6.2.0</spring.version>
+        <spring-security.version>6.4.1</spring-security.version>
     </properties>
 
     <dependencies>
diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml
index b06a34996..167ca8436 100644
--- a/aws-serverless-java-container-springboot3/pom.xml
+++ b/aws-serverless-java-container-springboot3/pom.xml
@@ -15,9 +15,9 @@
     <version>2.1.0-SNAPSHOT</version>
 
     <properties>
-        <spring.version>6.1.14</spring.version>
-        <springboot.version>3.3.5</springboot.version>
-        <springsecurity.version>6.3.4</springsecurity.version>
+        <spring.version>6.2.0</spring.version>
+        <springboot.version>3.4.0</springboot.version>
+        <springsecurity.version>6.4.1</springsecurity.version>
     </properties>
 
     <dependencies>
@@ -25,7 +25,7 @@
         <dependency>
             <groupId>org.springframework.cloud</groupId>
             <artifactId>spring-cloud-function-serverless-web</artifactId>
-            <version>4.1.3</version>
+            <version>4.1.4</version>
         </dependency>
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
index c25f3581b..598711516 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
@@ -7,8 +7,8 @@ repositories {
 
 dependencies {
   implementation (
-          'org.springframework:spring-webmvc:6.1.14',
-          'org.springframework:spring-context:6.1.14',
+          'org.springframework:spring-webmvc:6.2.0',
+          'org.springframework:spring-context:6.2.0',
           'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)',
           'org.apache.logging.log4j:log4j-core:2.24.1',
           'org.apache.logging.log4j:log4j-api:2.24.1',
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
index 35317bd41..6a6625c19 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
@@ -16,7 +16,7 @@
     <properties>
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
-        <spring.version>6.1.14</spring.version>
+        <spring.version>6.2.0</spring.version>
         <junit.version>5.11.3</junit.version>
         <log4j.version>2.24.1</log4j.version>
     </properties>
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
index 391137963..be57490c8 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
@@ -9,7 +9,7 @@ repositories {
 
 dependencies {
   implementation (
-          'org.springframework.boot:spring-boot-starter-web:3.3.5',
+          'org.springframework.boot:spring-boot-starter-web:3.4.0',
           'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)',
   )
 
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
index 68e88dc37..3489ad86d 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
@@ -16,7 +16,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.3.5</version>
+        <version>3.4.0</version>
     </parent>
 
     <properties>
diff --git a/samples/spring/pet-store/build.gradle b/samples/spring/pet-store/build.gradle
index a2fa54a83..0c7d1c3b9 100644
--- a/samples/spring/pet-store/build.gradle
+++ b/samples/spring/pet-store/build.gradle
@@ -7,8 +7,8 @@ repositories {
 
 dependencies {
   implementation (
-          'org.springframework:spring-webmvc:6.1.14',
-          'org.springframework:spring-context:6.1.14',
+          'org.springframework:spring-webmvc:6.2.0',
+          'org.springframework:spring-context:6.2.0',
           'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)',
           'org.apache.logging.log4j:log4j-core:2.24.1',
           'org.apache.logging.log4j:log4j-api:2.24.1',
diff --git a/samples/spring/pet-store/pom.xml b/samples/spring/pet-store/pom.xml
index 23dee0289..5716a8be4 100644
--- a/samples/spring/pet-store/pom.xml
+++ b/samples/spring/pet-store/pom.xml
@@ -24,7 +24,7 @@
     </licenses>
 
     <properties>
-        <spring.version>6.1.14</spring.version>
+        <spring.version>6.2.0</spring.version>
         <log4j.version>2.24.1</log4j.version>
         <maven.compiler.source>17</maven.compiler.source>
         <maven.compiler.target>17</maven.compiler.target>
diff --git a/samples/springboot3/alt-pet-store/build.gradle b/samples/springboot3/alt-pet-store/build.gradle
index 390ada6d4..7bcd50e4e 100644
--- a/samples/springboot3/alt-pet-store/build.gradle
+++ b/samples/springboot3/alt-pet-store/build.gradle
@@ -9,7 +9,7 @@ repositories {
 
 dependencies {
   implementation (
-          implementation('org.springframework.boot:spring-boot-starter-web:3.3.5') {
+          implementation('org.springframework.boot:spring-boot-starter-web:3.4.0') {
             exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat'
           },
           'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)',
diff --git a/samples/springboot3/alt-pet-store/pom.xml b/samples/springboot3/alt-pet-store/pom.xml
index 4027f09e8..70fb38207 100644
--- a/samples/springboot3/alt-pet-store/pom.xml
+++ b/samples/springboot3/alt-pet-store/pom.xml
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.3.5</version>
+        <version>3.4.0</version>
     </parent>
 
     <licenses>
diff --git a/samples/springboot3/graphql-pet-store/pom.xml b/samples/springboot3/graphql-pet-store/pom.xml
index b001bce57..070314fdd 100644
--- a/samples/springboot3/graphql-pet-store/pom.xml
+++ b/samples/springboot3/graphql-pet-store/pom.xml
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.3.5</version>
+        <version>3.4.0</version>
     </parent>
 
     <licenses>
diff --git a/samples/springboot3/pet-store-native/pom.xml b/samples/springboot3/pet-store-native/pom.xml
index 8d3004605..692844bb0 100644
--- a/samples/springboot3/pet-store-native/pom.xml
+++ b/samples/springboot3/pet-store-native/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.springframework.boot</groupId>
 		<artifactId>spring-boot-starter-parent</artifactId>
-		<version>3.3.5</version>
+		<version>3.4.0</version>
 		<relativePath /> <!-- lookup parent from repository -->
 	</parent>
 	<groupId>com.amazonaws.serverless.sample</groupId>
diff --git a/samples/springboot3/pet-store/build.gradle b/samples/springboot3/pet-store/build.gradle
index 390ada6d4..7bcd50e4e 100644
--- a/samples/springboot3/pet-store/build.gradle
+++ b/samples/springboot3/pet-store/build.gradle
@@ -9,7 +9,7 @@ repositories {
 
 dependencies {
   implementation (
-          implementation('org.springframework.boot:spring-boot-starter-web:3.3.5') {
+          implementation('org.springframework.boot:spring-boot-starter-web:3.4.0') {
             exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat'
           },
           'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)',
diff --git a/samples/springboot3/pet-store/pom.xml b/samples/springboot3/pet-store/pom.xml
index 9a70dfb4f..32b92a5f5 100644
--- a/samples/springboot3/pet-store/pom.xml
+++ b/samples/springboot3/pet-store/pom.xml
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.3.5</version>
+        <version>3.4.0</version>
     </parent>
 
     <licenses>

From 1785eb57c7d72f6c1b8468f2e3ad13ddb8298589 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Wed, 27 Nov 2024 08:39:32 +0100
Subject: [PATCH 301/430] bring back parallel() processing

---
 .../proxy/internal/servlet/AwsHttpServletRequest.java           | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java
index e7df944ff..f6a06b7cf 100644
--- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java
@@ -641,7 +641,7 @@ protected Map<String, String[]> generateParameterMap(MultiValuedTreeMap<String,
             queryStringParams = decodedQs;
         } else {
             // If it's case insensitive, we check the entire map on every parameter
-            queryStringParams = decodedQs.entrySet().stream().collect(
+            queryStringParams = decodedQs.entrySet().stream().parallel().collect(
                 Collectors.toMap(
                     Map.Entry::getKey,
                     e -> getQueryParamValuesAsList(decodedQs, e.getKey(), false)

From 199c7571ddb155e5352eec78e1bbb897f032cb84 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Wed, 27 Nov 2024 11:39:34 +0100
Subject: [PATCH 302/430] proper use of StringBuilder

---
 .../com/amazonaws/serverless/proxy/model/AwsProxyRequest.java   | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/model/AwsProxyRequest.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/model/AwsProxyRequest.java
index 53ad758f1..eeaaf4a6f 100644
--- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/model/AwsProxyRequest.java
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/model/AwsProxyRequest.java
@@ -66,7 +66,7 @@ public String getQueryString() {
             for (String val : this.getMultiValueQueryStringParameters().get(key)) {
                 String separator = params.length() == 0 ? "?" : "&";
 
-                params.append(separator + key + "=" + val);
+                params.append(separator).append(key).append("=").append(val);
             }
         }
 

From ff19be271435b6492a35c09a6d6251acd8759a27 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Wed, 27 Nov 2024 11:42:58 +0100
Subject: [PATCH 303/430] chore(deps): Update Log4J dependencies to 2.24.2

---
 .../src/main/resources/archetype-resources/build.gradle     | 6 +++---
 .../src/main/resources/archetype-resources/pom.xml          | 2 +-
 samples/spring/pet-store/build.gradle                       | 6 +++---
 samples/spring/pet-store/pom.xml                            | 2 +-
 4 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
index 598711516..80b9addb5 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
@@ -10,9 +10,9 @@ dependencies {
           'org.springframework:spring-webmvc:6.2.0',
           'org.springframework:spring-context:6.2.0',
           'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)',
-          'org.apache.logging.log4j:log4j-core:2.24.1',
-          'org.apache.logging.log4j:log4j-api:2.24.1',
-          'org.apache.logging.log4j:log4j-slf4j-impl:2.24.1',
+          'org.apache.logging.log4j:log4j-core:2.24.2',
+          'org.apache.logging.log4j:log4j-api:2.24.2',
+          'org.apache.logging.log4j:log4j-slf4j-impl:2.24.2',
           'com.fasterxml.jackson.core:jackson-databind:2.18.1',
           'com.amazonaws:aws-lambda-java-log4j2:1.6.0',
   )
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
index 6a6625c19..42ccf9d42 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
@@ -18,7 +18,7 @@
         <maven.compiler.target>1.8</maven.compiler.target>
         <spring.version>6.2.0</spring.version>
         <junit.version>5.11.3</junit.version>
-        <log4j.version>2.24.1</log4j.version>
+        <log4j.version>2.24.2</log4j.version>
     </properties>
 
     <dependencies>
diff --git a/samples/spring/pet-store/build.gradle b/samples/spring/pet-store/build.gradle
index 0c7d1c3b9..6d30a38e0 100644
--- a/samples/spring/pet-store/build.gradle
+++ b/samples/spring/pet-store/build.gradle
@@ -10,9 +10,9 @@ dependencies {
           'org.springframework:spring-webmvc:6.2.0',
           'org.springframework:spring-context:6.2.0',
           'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)',
-          'org.apache.logging.log4j:log4j-core:2.24.1',
-          'org.apache.logging.log4j:log4j-api:2.24.1',
-          'org.apache.logging.log4j:log4j-slf4j-impl:2.24.1',
+          'org.apache.logging.log4j:log4j-core:2.24.2',
+          'org.apache.logging.log4j:log4j-api:2.24.2',
+          'org.apache.logging.log4j:log4j-slf4j-impl:2.24.2',
           'com.fasterxml.jackson.core:jackson-databind:2.18.1',
           'com.amazonaws:aws-lambda-java-log4j2:1.6.0',
   )
diff --git a/samples/spring/pet-store/pom.xml b/samples/spring/pet-store/pom.xml
index 5716a8be4..12a35b314 100644
--- a/samples/spring/pet-store/pom.xml
+++ b/samples/spring/pet-store/pom.xml
@@ -25,7 +25,7 @@
 
     <properties>
         <spring.version>6.2.0</spring.version>
-        <log4j.version>2.24.1</log4j.version>
+        <log4j.version>2.24.2</log4j.version>
         <maven.compiler.source>17</maven.compiler.source>
         <maven.compiler.target>17</maven.compiler.target>
     </properties>

From 25628982712725780527f4a1505f146db699d395 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Wed, 27 Nov 2024 11:59:03 +0100
Subject: [PATCH 304/430] chore(deps): Update maven-archetype-plugin and
 archetype-packaging to 3.3.1 (#563)

---
 aws-serverless-jersey-archetype/pom.xml      | 4 ++--
 aws-serverless-spring-archetype/pom.xml      | 4 ++--
 aws-serverless-springboot3-archetype/pom.xml | 4 ++--
 3 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/aws-serverless-jersey-archetype/pom.xml b/aws-serverless-jersey-archetype/pom.xml
index f4ae15675..70284c5f6 100644
--- a/aws-serverless-jersey-archetype/pom.xml
+++ b/aws-serverless-jersey-archetype/pom.xml
@@ -48,7 +48,7 @@
             <extension>
                 <groupId>org.apache.maven.archetype</groupId>
                 <artifactId>archetype-packaging</artifactId>
-                <version>3.2.1</version>
+                <version>3.3.1</version>
             </extension>
         </extensions>
 
@@ -65,7 +65,7 @@
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-archetype-plugin</artifactId>
-                    <version>3.0.1</version>
+                    <version>3.3.1</version>
                     <executions>
                         <execution>
                             <goals>
diff --git a/aws-serverless-spring-archetype/pom.xml b/aws-serverless-spring-archetype/pom.xml
index 07c5e4e90..952a55735 100644
--- a/aws-serverless-spring-archetype/pom.xml
+++ b/aws-serverless-spring-archetype/pom.xml
@@ -48,7 +48,7 @@
             <extension>
                 <groupId>org.apache.maven.archetype</groupId>
                 <artifactId>archetype-packaging</artifactId>
-                <version>3.2.1</version>
+                <version>3.3.1</version>
             </extension>
         </extensions>
 
@@ -66,7 +66,7 @@
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-archetype-plugin</artifactId>
-                    <version>3.0.1</version>
+                    <version>3.3.1</version>
                     <executions>
                         <execution>
                             <goals>
diff --git a/aws-serverless-springboot3-archetype/pom.xml b/aws-serverless-springboot3-archetype/pom.xml
index a1057f354..3a1cc15d9 100644
--- a/aws-serverless-springboot3-archetype/pom.xml
+++ b/aws-serverless-springboot3-archetype/pom.xml
@@ -48,7 +48,7 @@
             <extension>
                 <groupId>org.apache.maven.archetype</groupId>
                 <artifactId>archetype-packaging</artifactId>
-                <version>3.2.1</version>
+                <version>3.3.1</version>
             </extension>
         </extensions>
 
@@ -65,7 +65,7 @@
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-archetype-plugin</artifactId>
-                    <version>3.0.1</version>
+                    <version>3.3.1</version>
                     <executions>
                         <execution>
                             <goals>

From 2146847c72a5e1ea8aafe8fb8adae6756cf7a29c Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Wed, 27 Nov 2024 12:15:49 +0100
Subject: [PATCH 305/430] chore(deps): add crac dependency to native sample

---
 samples/springboot3/pet-store-native/pom.xml | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/samples/springboot3/pet-store-native/pom.xml b/samples/springboot3/pet-store-native/pom.xml
index 692844bb0..4eec02b6a 100644
--- a/samples/springboot3/pet-store-native/pom.xml
+++ b/samples/springboot3/pet-store-native/pom.xml
@@ -28,6 +28,12 @@
     		<artifactId>aws-serverless-java-container-springboot3</artifactId>
         	<version>[2.0.0-SNAPSHOT,),[2.0.0-M1,)</version>
 		</dependency>
+		<dependency><!-- required for Spring's ConditionalOnCheckpointRestore to work -->
+			<!-- see https://docs.spring.io/spring-framework/reference/integration/checkpoint-restore.html -->
+			<groupId>org.crac</groupId>
+			<artifactId>crac</artifactId>
+			<scope>runtime</scope>
+		</dependency>
 		<dependency>
 			<groupId>com.amazonaws</groupId>
 			<artifactId>aws-lambda-java-events</artifactId>

From 9ad5d1d121698426c06b1da45c186d6948b470df Mon Sep 17 00:00:00 2001
From: deki <deki@users.noreply.github.com>
Date: Wed, 27 Nov 2024 11:24:08 +0000
Subject: [PATCH 306/430] chore: release - prepare release
 aws-serverless-java-container-2.1.0

---
 aws-serverless-java-container-core/pom.xml        | 4 ++--
 aws-serverless-java-container-jersey/pom.xml      | 8 ++++----
 aws-serverless-java-container-spring/pom.xml      | 8 ++++----
 aws-serverless-java-container-springboot3/pom.xml | 8 ++++----
 aws-serverless-jersey-archetype/pom.xml           | 6 +++---
 aws-serverless-spring-archetype/pom.xml           | 6 +++---
 aws-serverless-springboot3-archetype/pom.xml      | 6 +++---
 pom.xml                                           | 4 ++--
 8 files changed, 25 insertions(+), 25 deletions(-)

diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml
index 5c110d937..f3a1e7093 100644
--- a/aws-serverless-java-container-core/pom.xml
+++ b/aws-serverless-java-container-core/pom.xml
@@ -6,12 +6,12 @@
     <name>AWS Serverless Java container support - Core</name>
     <description>Allows Java applications written for a servlet container to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.1.0-SNAPSHOT</version>
+    <version>2.1.0</version>
 
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.1.0-SNAPSHOT</version>
+        <version>2.1.0</version>
         <relativePath>..</relativePath>
     </parent>
 
diff --git a/aws-serverless-java-container-jersey/pom.xml b/aws-serverless-java-container-jersey/pom.xml
index 2b7ef7f17..501229ec0 100644
--- a/aws-serverless-java-container-jersey/pom.xml
+++ b/aws-serverless-java-container-jersey/pom.xml
@@ -6,12 +6,12 @@
     <name>AWS Serverless Java container support - Jersey implementation</name>
     <description>Allows Java applications written for Jersey to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.1.0-SNAPSHOT</version>
+    <version>2.1.0</version>
 
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.1.0-SNAPSHOT</version>
+        <version>2.1.0</version>
         <relativePath>..</relativePath>
     </parent>
 
@@ -24,7 +24,7 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.1.0-SNAPSHOT</version>
+            <version>2.1.0</version>
             <exclusions>
                 <exclusion>
                     <groupId>com.fasterxml.jackson.core</groupId>
@@ -35,7 +35,7 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.1.0-SNAPSHOT</version>
+            <version>2.1.0</version>
             <classifier>tests</classifier>
             <type>test-jar</type>
             <scope>test</scope>
diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml
index d11e479ed..b64304b59 100644
--- a/aws-serverless-java-container-spring/pom.xml
+++ b/aws-serverless-java-container-spring/pom.xml
@@ -6,12 +6,12 @@
     <name>AWS Serverless Java container support - Spring implementation</name>
     <description>Allows Java applications written for the Spring framework to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.1.0-SNAPSHOT</version>
+    <version>2.1.0</version>
 
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.1.0-SNAPSHOT</version>
+        <version>2.1.0</version>
         <relativePath>..</relativePath>
     </parent>
 
@@ -25,12 +25,12 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.1.0-SNAPSHOT</version>
+            <version>2.1.0</version>
         </dependency>
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.1.0-SNAPSHOT</version>
+            <version>2.1.0</version>
             <classifier>tests</classifier>
             <type>test-jar</type>
             <scope>test</scope>
diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml
index 167ca8436..9390bd8e9 100644
--- a/aws-serverless-java-container-springboot3/pom.xml
+++ b/aws-serverless-java-container-springboot3/pom.xml
@@ -3,7 +3,7 @@
     <parent>
         <artifactId>aws-serverless-java-container</artifactId>
         <groupId>com.amazonaws.serverless</groupId>
-        <version>2.1.0-SNAPSHOT</version>
+        <version>2.1.0</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
@@ -12,7 +12,7 @@
     <name>AWS Serverless Java container support - SpringBoot 3 implementation</name>
     <description>Allows Java applications written for SpringBoot 3 to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.1.0-SNAPSHOT</version>
+    <version>2.1.0</version>
 
     <properties>
         <spring.version>6.2.0</spring.version>
@@ -30,12 +30,12 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.1.0-SNAPSHOT</version>
+            <version>2.1.0</version>
         </dependency>
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.1.0-SNAPSHOT</version>
+            <version>2.1.0</version>
             <classifier>tests</classifier>
             <type>test-jar</type>
             <scope>test</scope>
diff --git a/aws-serverless-jersey-archetype/pom.xml b/aws-serverless-jersey-archetype/pom.xml
index 70284c5f6..d9ce8dbc4 100644
--- a/aws-serverless-jersey-archetype/pom.xml
+++ b/aws-serverless-jersey-archetype/pom.xml
@@ -4,17 +4,17 @@
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.1.0-SNAPSHOT</version>
+        <version>2.1.0</version>
     </parent>
 
     <groupId>com.amazonaws.serverless.archetypes</groupId>
     <artifactId>aws-serverless-jersey-archetype</artifactId>
-    <version>2.1.0-SNAPSHOT</version>
+    <version>2.1.0</version>
     <packaging>maven-archetype</packaging>
 
     <scm>
         <url>https://github.com/aws/serverless-java-container.git</url>
-      <tag>HEAD</tag>
+      <tag>aws-serverless-java-container-2.1.0</tag>
   </scm>
 
     <licenses>
diff --git a/aws-serverless-spring-archetype/pom.xml b/aws-serverless-spring-archetype/pom.xml
index 952a55735..6348f086a 100644
--- a/aws-serverless-spring-archetype/pom.xml
+++ b/aws-serverless-spring-archetype/pom.xml
@@ -4,17 +4,17 @@
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.1.0-SNAPSHOT</version>
+        <version>2.1.0</version>
     </parent>
 
     <groupId>com.amazonaws.serverless.archetypes</groupId>
     <artifactId>aws-serverless-spring-archetype</artifactId>
-    <version>2.1.0-SNAPSHOT</version>
+    <version>2.1.0</version>
     <packaging>maven-archetype</packaging>
 
     <scm>
         <url>https://github.com/aws/serverless-java-container.git</url>
-      <tag>HEAD</tag>
+      <tag>aws-serverless-java-container-2.1.0</tag>
   </scm>
 
     <licenses>
diff --git a/aws-serverless-springboot3-archetype/pom.xml b/aws-serverless-springboot3-archetype/pom.xml
index 3a1cc15d9..fdba7e036 100644
--- a/aws-serverless-springboot3-archetype/pom.xml
+++ b/aws-serverless-springboot3-archetype/pom.xml
@@ -4,17 +4,17 @@
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.1.0-SNAPSHOT</version>
+        <version>2.1.0</version>
     </parent>
 
     <groupId>com.amazonaws.serverless.archetypes</groupId>
     <artifactId>aws-serverless-springboot3-archetype</artifactId>
-    <version>2.1.0-SNAPSHOT</version>
+    <version>2.1.0</version>
     <packaging>maven-archetype</packaging>
 
     <scm>
         <url>https://github.com/aws/serverless-java-container.git</url>
-      <tag>HEAD</tag>
+      <tag>aws-serverless-java-container-2.1.0</tag>
   </scm>
 
     <licenses>
diff --git a/pom.xml b/pom.xml
index eb28838b1..e9bdb687c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
     <groupId>com.amazonaws.serverless</groupId>
     <artifactId>aws-serverless-java-container</artifactId>
     <packaging>pom</packaging>
-    <version>2.1.0-SNAPSHOT</version>
+    <version>2.1.0</version>
     <name>AWS Serverless Java container</name>
     <description>A Java framework to run Spring, Spring Boot, Jersey, Spark, and Struts applications inside AWS Lambda</description>
     <url>https://github.com/aws/serverless-java-container</url>
@@ -37,7 +37,7 @@
     <scm>
         <url>https://github.com/aws/serverless-java-container</url>
         <connection>scm:git:https://github.com/aws/serverless-java-container.git</connection>
-      <tag>HEAD</tag>
+      <tag>aws-serverless-java-container-2.1.0</tag>
     </scm>
 
     <repositories>

From 9a497be7542beec2c7bccada559ecff2a12e0faa Mon Sep 17 00:00:00 2001
From: deki <deki@users.noreply.github.com>
Date: Wed, 27 Nov 2024 11:24:09 +0000
Subject: [PATCH 307/430] chore: release - prepare for next development
 iteration

---
 aws-serverless-java-container-core/pom.xml        | 4 ++--
 aws-serverless-java-container-jersey/pom.xml      | 8 ++++----
 aws-serverless-java-container-spring/pom.xml      | 8 ++++----
 aws-serverless-java-container-springboot3/pom.xml | 8 ++++----
 aws-serverless-jersey-archetype/pom.xml           | 6 +++---
 aws-serverless-spring-archetype/pom.xml           | 6 +++---
 aws-serverless-springboot3-archetype/pom.xml      | 6 +++---
 pom.xml                                           | 4 ++--
 8 files changed, 25 insertions(+), 25 deletions(-)

diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml
index f3a1e7093..f119dc713 100644
--- a/aws-serverless-java-container-core/pom.xml
+++ b/aws-serverless-java-container-core/pom.xml
@@ -6,12 +6,12 @@
     <name>AWS Serverless Java container support - Core</name>
     <description>Allows Java applications written for a servlet container to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.1.0</version>
+    <version>2.2.0-SNAPSHOT</version>
 
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.1.0</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>..</relativePath>
     </parent>
 
diff --git a/aws-serverless-java-container-jersey/pom.xml b/aws-serverless-java-container-jersey/pom.xml
index 501229ec0..fdb4cf24f 100644
--- a/aws-serverless-java-container-jersey/pom.xml
+++ b/aws-serverless-java-container-jersey/pom.xml
@@ -6,12 +6,12 @@
     <name>AWS Serverless Java container support - Jersey implementation</name>
     <description>Allows Java applications written for Jersey to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.1.0</version>
+    <version>2.2.0-SNAPSHOT</version>
 
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.1.0</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>..</relativePath>
     </parent>
 
@@ -24,7 +24,7 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.1.0</version>
+            <version>2.2.0-SNAPSHOT</version>
             <exclusions>
                 <exclusion>
                     <groupId>com.fasterxml.jackson.core</groupId>
@@ -35,7 +35,7 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.1.0</version>
+            <version>2.2.0-SNAPSHOT</version>
             <classifier>tests</classifier>
             <type>test-jar</type>
             <scope>test</scope>
diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml
index b64304b59..ab9491d77 100644
--- a/aws-serverless-java-container-spring/pom.xml
+++ b/aws-serverless-java-container-spring/pom.xml
@@ -6,12 +6,12 @@
     <name>AWS Serverless Java container support - Spring implementation</name>
     <description>Allows Java applications written for the Spring framework to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.1.0</version>
+    <version>2.2.0-SNAPSHOT</version>
 
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.1.0</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>..</relativePath>
     </parent>
 
@@ -25,12 +25,12 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.1.0</version>
+            <version>2.2.0-SNAPSHOT</version>
         </dependency>
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.1.0</version>
+            <version>2.2.0-SNAPSHOT</version>
             <classifier>tests</classifier>
             <type>test-jar</type>
             <scope>test</scope>
diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml
index 9390bd8e9..49fa7c707 100644
--- a/aws-serverless-java-container-springboot3/pom.xml
+++ b/aws-serverless-java-container-springboot3/pom.xml
@@ -3,7 +3,7 @@
     <parent>
         <artifactId>aws-serverless-java-container</artifactId>
         <groupId>com.amazonaws.serverless</groupId>
-        <version>2.1.0</version>
+        <version>2.2.0-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
@@ -12,7 +12,7 @@
     <name>AWS Serverless Java container support - SpringBoot 3 implementation</name>
     <description>Allows Java applications written for SpringBoot 3 to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.1.0</version>
+    <version>2.2.0-SNAPSHOT</version>
 
     <properties>
         <spring.version>6.2.0</spring.version>
@@ -30,12 +30,12 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.1.0</version>
+            <version>2.2.0-SNAPSHOT</version>
         </dependency>
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.1.0</version>
+            <version>2.2.0-SNAPSHOT</version>
             <classifier>tests</classifier>
             <type>test-jar</type>
             <scope>test</scope>
diff --git a/aws-serverless-jersey-archetype/pom.xml b/aws-serverless-jersey-archetype/pom.xml
index d9ce8dbc4..412459c41 100644
--- a/aws-serverless-jersey-archetype/pom.xml
+++ b/aws-serverless-jersey-archetype/pom.xml
@@ -4,17 +4,17 @@
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.1.0</version>
+        <version>2.2.0-SNAPSHOT</version>
     </parent>
 
     <groupId>com.amazonaws.serverless.archetypes</groupId>
     <artifactId>aws-serverless-jersey-archetype</artifactId>
-    <version>2.1.0</version>
+    <version>2.2.0-SNAPSHOT</version>
     <packaging>maven-archetype</packaging>
 
     <scm>
         <url>https://github.com/aws/serverless-java-container.git</url>
-      <tag>aws-serverless-java-container-2.1.0</tag>
+      <tag>HEAD</tag>
   </scm>
 
     <licenses>
diff --git a/aws-serverless-spring-archetype/pom.xml b/aws-serverless-spring-archetype/pom.xml
index 6348f086a..8b95c5332 100644
--- a/aws-serverless-spring-archetype/pom.xml
+++ b/aws-serverless-spring-archetype/pom.xml
@@ -4,17 +4,17 @@
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.1.0</version>
+        <version>2.2.0-SNAPSHOT</version>
     </parent>
 
     <groupId>com.amazonaws.serverless.archetypes</groupId>
     <artifactId>aws-serverless-spring-archetype</artifactId>
-    <version>2.1.0</version>
+    <version>2.2.0-SNAPSHOT</version>
     <packaging>maven-archetype</packaging>
 
     <scm>
         <url>https://github.com/aws/serverless-java-container.git</url>
-      <tag>aws-serverless-java-container-2.1.0</tag>
+      <tag>HEAD</tag>
   </scm>
 
     <licenses>
diff --git a/aws-serverless-springboot3-archetype/pom.xml b/aws-serverless-springboot3-archetype/pom.xml
index fdba7e036..89469c2e4 100644
--- a/aws-serverless-springboot3-archetype/pom.xml
+++ b/aws-serverless-springboot3-archetype/pom.xml
@@ -4,17 +4,17 @@
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.1.0</version>
+        <version>2.2.0-SNAPSHOT</version>
     </parent>
 
     <groupId>com.amazonaws.serverless.archetypes</groupId>
     <artifactId>aws-serverless-springboot3-archetype</artifactId>
-    <version>2.1.0</version>
+    <version>2.2.0-SNAPSHOT</version>
     <packaging>maven-archetype</packaging>
 
     <scm>
         <url>https://github.com/aws/serverless-java-container.git</url>
-      <tag>aws-serverless-java-container-2.1.0</tag>
+      <tag>HEAD</tag>
   </scm>
 
     <licenses>
diff --git a/pom.xml b/pom.xml
index e9bdb687c..35597514c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
     <groupId>com.amazonaws.serverless</groupId>
     <artifactId>aws-serverless-java-container</artifactId>
     <packaging>pom</packaging>
-    <version>2.1.0</version>
+    <version>2.2.0-SNAPSHOT</version>
     <name>AWS Serverless Java container</name>
     <description>A Java framework to run Spring, Spring Boot, Jersey, Spark, and Struts applications inside AWS Lambda</description>
     <url>https://github.com/aws/serverless-java-container</url>
@@ -37,7 +37,7 @@
     <scm>
         <url>https://github.com/aws/serverless-java-container</url>
         <connection>scm:git:https://github.com/aws/serverless-java-container.git</connection>
-      <tag>aws-serverless-java-container-2.1.0</tag>
+      <tag>HEAD</tag>
     </scm>
 
     <repositories>

From e53972bec738e346e6be1ace73c92f2e3699888f Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Thu, 28 Nov 2024 11:11:39 +0100
Subject: [PATCH 308/430] chore(deps): Update Jackson version to 2.18.2

---
 .../src/main/resources/archetype-resources/build.gradle         | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 .../src/main/resources/archetype-resources/build.gradle         | 2 +-
 pom.xml                                                         | 2 +-
 samples/jersey/pet-store/build.gradle                           | 2 +-
 samples/jersey/pet-store/pom.xml                                | 2 +-
 samples/spring/pet-store/build.gradle                           | 2 +-
 7 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
index 77b045d57..5d2a3a409 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
@@ -8,7 +8,7 @@ repositories {
 dependencies {
   implementation (
           'com.amazonaws.serverless:aws-serverless-java-container-jersey:[2.0-SNAPSHOT,)',
-          'com.fasterxml.jackson.core:jackson-databind:2.18.1',
+          'com.fasterxml.jackson.core:jackson-databind:2.18.2',
   )
 
   implementation("org.glassfish.jersey.media:jersey-media-json-jackson:3.1.9") {
diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
index e4f6a320e..176ef8a46 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
@@ -16,7 +16,7 @@
         <maven.compiler.target>1.8</maven.compiler.target>
 
         <jersey.version>3.1.9</jersey.version>
-        <jackson.version>2.18.1</jackson.version>
+        <jackson.version>2.18.2</jackson.version>
         <junit.version>5.11.3</junit.version>
     </properties>
 
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
index 80b9addb5..9c572b8f7 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
@@ -13,7 +13,7 @@ dependencies {
           'org.apache.logging.log4j:log4j-core:2.24.2',
           'org.apache.logging.log4j:log4j-api:2.24.2',
           'org.apache.logging.log4j:log4j-slf4j-impl:2.24.2',
-          'com.fasterxml.jackson.core:jackson-databind:2.18.1',
+          'com.fasterxml.jackson.core:jackson-databind:2.18.2',
           'com.amazonaws:aws-lambda-java-log4j2:1.6.0',
   )
 
diff --git a/pom.xml b/pom.xml
index 35597514c..e79e0d1ee 100644
--- a/pom.xml
+++ b/pom.xml
@@ -78,7 +78,7 @@
     <properties>
         <jacoco.minCoverage>0.7</jacoco.minCoverage>
         <dependencyCheck.version>11.1.0</dependencyCheck.version>
-        <jackson.version>2.18.1</jackson.version>
+        <jackson.version>2.18.2</jackson.version>
         <slf4j.version>2.0.16</slf4j.version>
         <junit.version>5.11.3</junit.version>
         <mockito.version>5.14.2</mockito.version>
diff --git a/samples/jersey/pet-store/build.gradle b/samples/jersey/pet-store/build.gradle
index a00d52d5b..4c54ac140 100644
--- a/samples/jersey/pet-store/build.gradle
+++ b/samples/jersey/pet-store/build.gradle
@@ -8,7 +8,7 @@ repositories {
 dependencies {
   implementation (
           'com.amazonaws.serverless:aws-serverless-java-container-jersey:[2.0-SNAPSHOT,)',
-          'com.fasterxml.jackson.core:jackson-databind:2.18.1',
+          'com.fasterxml.jackson.core:jackson-databind:2.18.2',
   )
 
   implementation("org.glassfish.jersey.media:jersey-media-json-jackson:3.1.9") {
diff --git a/samples/jersey/pet-store/pom.xml b/samples/jersey/pet-store/pom.xml
index c77ff0749..c7bbe2f09 100644
--- a/samples/jersey/pet-store/pom.xml
+++ b/samples/jersey/pet-store/pom.xml
@@ -27,7 +27,7 @@
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
         <jersey.version>3.1.9</jersey.version>
-        <jackson.version>2.18.1</jackson.version>
+        <jackson.version>2.18.2</jackson.version>
     </properties>
 
     <dependencies>
diff --git a/samples/spring/pet-store/build.gradle b/samples/spring/pet-store/build.gradle
index 6d30a38e0..55876e263 100644
--- a/samples/spring/pet-store/build.gradle
+++ b/samples/spring/pet-store/build.gradle
@@ -13,7 +13,7 @@ dependencies {
           'org.apache.logging.log4j:log4j-core:2.24.2',
           'org.apache.logging.log4j:log4j-api:2.24.2',
           'org.apache.logging.log4j:log4j-slf4j-impl:2.24.2',
-          'com.fasterxml.jackson.core:jackson-databind:2.18.1',
+          'com.fasterxml.jackson.core:jackson-databind:2.18.2',
           'com.amazonaws:aws-lambda-java-log4j2:1.6.0',
   )
 }

From ef37379e7e07d5a18c5d1358cabb689e3b82719c Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 9 Dec 2024 04:23:42 +0000
Subject: [PATCH 309/430] chore(deps): bump org.owasp:dependency-check-maven
 from 11.1.0 to 11.1.1

Bumps [org.owasp:dependency-check-maven](https://github.com/jeremylong/DependencyCheck) from 11.1.0 to 11.1.1.
- [Release notes](https://github.com/jeremylong/DependencyCheck/releases)
- [Changelog](https://github.com/jeremylong/DependencyCheck/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jeremylong/DependencyCheck/compare/v11.1.0...v11.1.1)

---
updated-dependencies:
- dependency-name: org.owasp:dependency-check-maven
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index e79e0d1ee..8d65ff107 100644
--- a/pom.xml
+++ b/pom.xml
@@ -77,7 +77,7 @@
 
     <properties>
         <jacoco.minCoverage>0.7</jacoco.minCoverage>
-        <dependencyCheck.version>11.1.0</dependencyCheck.version>
+        <dependencyCheck.version>11.1.1</dependencyCheck.version>
         <jackson.version>2.18.2</jackson.version>
         <slf4j.version>2.0.16</slf4j.version>
         <junit.version>5.11.3</junit.version>

From 3c06b49403a1cf7d242d70d28bcb9ba92ee1e965 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 9 Dec 2024 04:23:52 +0000
Subject: [PATCH 310/430] chore(deps): bump
 org.apache.maven.plugins:maven-javadoc-plugin

Bumps [org.apache.maven.plugins:maven-javadoc-plugin](https://github.com/apache/maven-javadoc-plugin) from 3.11.1 to 3.11.2.
- [Release notes](https://github.com/apache/maven-javadoc-plugin/releases)
- [Commits](https://github.com/apache/maven-javadoc-plugin/compare/maven-javadoc-plugin-3.11.1...maven-javadoc-plugin-3.11.2)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-javadoc-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index e79e0d1ee..41b1a50ba 100644
--- a/pom.xml
+++ b/pom.xml
@@ -201,7 +201,7 @@
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-javadoc-plugin</artifactId>
-                    <version>3.11.1</version>
+                    <version>3.11.2</version>
                 </plugin>
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>

From 93788406831f98ad28429c3b0b03afcfe6b30bc0 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Mon, 9 Dec 2024 17:15:09 +0100
Subject: [PATCH 311/430] remove parallel() processing as per discussion in
 https://github.com/aws/serverless-java-container/pull/1089#discussion_r1861054196

This reverts commit 1785eb57c7d72f6c1b8468f2e3ad13ddb8298589.
---
 .../proxy/internal/servlet/AwsHttpServletRequest.java           | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java
index 6b5c90200..c169a1f04 100644
--- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java
@@ -597,7 +597,7 @@ protected Map<String, String[]> generateParameterMap(MultiValuedTreeMap<String,
             queryStringParams = decodedQs;
         } else {
             // If it's case insensitive, we check the entire map on every parameter
-            queryStringParams = decodedQs.entrySet().stream().parallel().collect(
+            queryStringParams = decodedQs.entrySet().stream().collect(
                 Collectors.toMap(
                     Map.Entry::getKey,
                     e -> getQueryParamValuesAsList(decodedQs, e.getKey(), false)

From 75c309cb788b9a2119f6300e70e4863845efe7ec Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Thu, 12 Dec 2024 08:55:23 +0100
Subject: [PATCH 312/430] docs: add note for building sample on ARM (#1209)

---
 samples/springboot3/pet-store-native/Dockerfile | 3 ++-
 samples/springboot3/pet-store-native/README.md  | 4 ++++
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/samples/springboot3/pet-store-native/Dockerfile b/samples/springboot3/pet-store-native/Dockerfile
index 30b77503b..4fb614e3f 100644
--- a/samples/springboot3/pet-store-native/Dockerfile
+++ b/samples/springboot3/pet-store-native/Dockerfile
@@ -8,7 +8,8 @@ RUN yum -y update \
 
 # Graal VM
 ENV GRAAL_VERSION 21.0.2
-ENV GRAAL_FILENAME graalvm-community-jdk-${GRAAL_VERSION}_linux-x64_bin.tar.gz
+ENV ARCHITECTURE x64
+ENV GRAAL_FILENAME graalvm-community-jdk-${GRAAL_VERSION}_linux-${ARCHITECTURE}_bin.tar.gz
 RUN curl -4 -L https://github.com/graalvm/graalvm-ce-builds/releases/download/jdk-${GRAAL_VERSION}/${GRAAL_FILENAME} | tar -xvz
 RUN mv graalvm-community-openjdk-${GRAAL_VERSION}* /usr/lib/graalvm
 ENV JAVA_HOME /usr/lib/graalvm
diff --git a/samples/springboot3/pet-store-native/README.md b/samples/springboot3/pet-store-native/README.md
index c890090f7..571d56198 100644
--- a/samples/springboot3/pet-store-native/README.md
+++ b/samples/springboot3/pet-store-native/README.md
@@ -5,6 +5,10 @@ In this sample, you'll build a native GraalVM image for running web workloads in
 
 You first need to build the function, then you will deploy it to AWS Lambda.
 
+Please note that the sample is for `x86` architectures. In case you want to build and run it on ARM, e.g. Apple Mac M1, M2, ... 
+you must change the according line in the `Dockerfile` to `ENV ARCHITECTURE aarch64`. 
+In addition, uncomment the `arm64` Architectures section in `template.yml`.
+
 ### Step 1 - Build the native image
 
 Before starting the build, you must clone or download the code in **pet-store-native**.

From e16206258d8842b8f2430ac00c522b68b32e037a Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 16 Dec 2024 04:56:19 +0000
Subject: [PATCH 313/430] chore(deps): bump the log4j group across 2
 directories with 3 updates

Bumps the log4j group with 3 updates in the /aws-serverless-spring-archetype/src/main/resources/archetype-resources directory: org.apache.logging.log4j:log4j-core, org.apache.logging.log4j:log4j-api and org.apache.logging.log4j:log4j-slf4j-impl.
Bumps the log4j group with 3 updates in the /samples/spring/pet-store directory: org.apache.logging.log4j:log4j-core, org.apache.logging.log4j:log4j-api and org.apache.logging.log4j:log4j-slf4j-impl.


Updates `org.apache.logging.log4j:log4j-core` from 2.24.2 to 2.24.3

Updates `org.apache.logging.log4j:log4j-api` from 2.24.2 to 2.24.3

Updates `org.apache.logging.log4j:log4j-slf4j-impl` from 2.24.2 to 2.24.3

Updates `org.apache.logging.log4j:log4j-core` from 2.24.2 to 2.24.3

Updates `org.apache.logging.log4j:log4j-api` from 2.24.2 to 2.24.3

Updates `org.apache.logging.log4j:log4j-slf4j-impl` from 2.24.2 to 2.24.3

---
updated-dependencies:
- dependency-name: org.apache.logging.log4j:log4j-core
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: log4j
- dependency-name: org.apache.logging.log4j:log4j-api
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: log4j
- dependency-name: org.apache.logging.log4j:log4j-slf4j-impl
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: log4j
- dependency-name: org.apache.logging.log4j:log4j-core
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: log4j
- dependency-name: org.apache.logging.log4j:log4j-api
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: log4j
- dependency-name: org.apache.logging.log4j:log4j-slf4j-impl
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: log4j
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 .../src/main/resources/archetype-resources/build.gradle     | 6 +++---
 samples/spring/pet-store/build.gradle                       | 6 +++---
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
index 9c572b8f7..4b4df05eb 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
@@ -10,9 +10,9 @@ dependencies {
           'org.springframework:spring-webmvc:6.2.0',
           'org.springframework:spring-context:6.2.0',
           'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)',
-          'org.apache.logging.log4j:log4j-core:2.24.2',
-          'org.apache.logging.log4j:log4j-api:2.24.2',
-          'org.apache.logging.log4j:log4j-slf4j-impl:2.24.2',
+          'org.apache.logging.log4j:log4j-core:2.24.3',
+          'org.apache.logging.log4j:log4j-api:2.24.3',
+          'org.apache.logging.log4j:log4j-slf4j-impl:2.24.3',
           'com.fasterxml.jackson.core:jackson-databind:2.18.2',
           'com.amazonaws:aws-lambda-java-log4j2:1.6.0',
   )
diff --git a/samples/spring/pet-store/build.gradle b/samples/spring/pet-store/build.gradle
index 55876e263..e983e49bc 100644
--- a/samples/spring/pet-store/build.gradle
+++ b/samples/spring/pet-store/build.gradle
@@ -10,9 +10,9 @@ dependencies {
           'org.springframework:spring-webmvc:6.2.0',
           'org.springframework:spring-context:6.2.0',
           'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)',
-          'org.apache.logging.log4j:log4j-core:2.24.2',
-          'org.apache.logging.log4j:log4j-api:2.24.2',
-          'org.apache.logging.log4j:log4j-slf4j-impl:2.24.2',
+          'org.apache.logging.log4j:log4j-core:2.24.3',
+          'org.apache.logging.log4j:log4j-api:2.24.3',
+          'org.apache.logging.log4j:log4j-slf4j-impl:2.24.3',
           'com.fasterxml.jackson.core:jackson-databind:2.18.2',
           'com.amazonaws:aws-lambda-java-log4j2:1.6.0',
   )

From 9ee726ace123f063769cc881c5a084582d4ab0ef Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 16 Dec 2024 04:57:07 +0000
Subject: [PATCH 314/430] chore(deps): bump the log4j group across 1 directory
 with 3 updates

Bumps the log4j group with 3 updates in the /samples/spring/pet-store directory: org.apache.logging.log4j:log4j-core, org.apache.logging.log4j:log4j-api and org.apache.logging.log4j:log4j-slf4j-impl.


Updates `org.apache.logging.log4j:log4j-core` from 2.24.2 to 2.24.3

Updates `org.apache.logging.log4j:log4j-api` from 2.24.2 to 2.24.3

Updates `org.apache.logging.log4j:log4j-slf4j-impl` from 2.24.2 to 2.24.3

Updates `org.apache.logging.log4j:log4j-api` from 2.24.2 to 2.24.3

Updates `org.apache.logging.log4j:log4j-slf4j-impl` from 2.24.2 to 2.24.3

---
updated-dependencies:
- dependency-name: org.apache.logging.log4j:log4j-core
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: log4j
- dependency-name: org.apache.logging.log4j:log4j-api
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: log4j
- dependency-name: org.apache.logging.log4j:log4j-slf4j-impl
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: log4j
- dependency-name: org.apache.logging.log4j:log4j-api
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: log4j
- dependency-name: org.apache.logging.log4j:log4j-slf4j-impl
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: log4j
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 samples/spring/pet-store/pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/samples/spring/pet-store/pom.xml b/samples/spring/pet-store/pom.xml
index 12a35b314..409db0cc9 100644
--- a/samples/spring/pet-store/pom.xml
+++ b/samples/spring/pet-store/pom.xml
@@ -25,7 +25,7 @@
 
     <properties>
         <spring.version>6.2.0</spring.version>
-        <log4j.version>2.24.2</log4j.version>
+        <log4j.version>2.24.3</log4j.version>
         <maven.compiler.source>17</maven.compiler.source>
         <maven.compiler.target>17</maven.compiler.target>
     </properties>

From 74d6c5b45f0bb426afcdab21d84142025eb69182 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 16 Dec 2024 04:57:25 +0000
Subject: [PATCH 315/430] chore(deps): bump
 org.hibernate.validator:hibernate-validator

Bumps [org.hibernate.validator:hibernate-validator](https://github.com/hibernate/hibernate-validator) from 8.0.1.Final to 8.0.2.Final.
- [Changelog](https://github.com/hibernate/hibernate-validator/blob/8.0.2.Final/changelog.txt)
- [Commits](https://github.com/hibernate/hibernate-validator/compare/8.0.1.Final...8.0.2.Final)

---
updated-dependencies:
- dependency-name: org.hibernate.validator:hibernate-validator
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 aws-serverless-java-container-spring/pom.xml      | 2 +-
 aws-serverless-java-container-springboot3/pom.xml | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml
index ab9491d77..26c2f3d9f 100644
--- a/aws-serverless-java-container-spring/pom.xml
+++ b/aws-serverless-java-container-spring/pom.xml
@@ -75,7 +75,7 @@
         <dependency>
             <groupId>org.hibernate.validator</groupId>
             <artifactId>hibernate-validator</artifactId>
-            <version>8.0.1.Final</version>
+            <version>8.0.2.Final</version>
             <scope>test</scope>
         </dependency>
         <dependency>
diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml
index 49fa7c707..0b29ccd20 100644
--- a/aws-serverless-java-container-springboot3/pom.xml
+++ b/aws-serverless-java-container-springboot3/pom.xml
@@ -160,7 +160,7 @@
         <dependency>
             <groupId>org.hibernate.validator</groupId>
             <artifactId>hibernate-validator</artifactId>
-            <version>8.0.1.Final</version>
+            <version>8.0.2.Final</version>
             <scope>test</scope>
         </dependency>
 

From 75fc1853a5b71017381584681a52df468d2afb4e Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Wed, 18 Dec 2024 15:02:39 +0100
Subject: [PATCH 316/430] fix: not need to override Spring Cloud version

---
 samples/springboot3/pet-store-native/pom.xml | 14 +-------------
 1 file changed, 1 insertion(+), 13 deletions(-)

diff --git a/samples/springboot3/pet-store-native/pom.xml b/samples/springboot3/pet-store-native/pom.xml
index 4eec02b6a..2a0f1af4e 100644
--- a/samples/springboot3/pet-store-native/pom.xml
+++ b/samples/springboot3/pet-store-native/pom.xml
@@ -16,7 +16,6 @@
 	<description>Sample of AWS with Spring Native</description>
 	<properties>
 		<java.version>17</java.version>
-		<spring-cloud.version>2023.0.2</spring-cloud.version>
 	</properties>
 	<dependencies>
 		<dependency>
@@ -52,18 +51,7 @@
 			<scope>test</scope>
 		</dependency>
 	</dependencies>
-	<dependencyManagement>
-		<dependencies>
-			<dependency>
-				<groupId>org.springframework.cloud</groupId>
-				<artifactId>spring-cloud-dependencies</artifactId>
-				<version>${spring-cloud.version}</version>
-				<type>pom</type>
-				<scope>import</scope>
-			</dependency>
-		</dependencies>
-	</dependencyManagement>
-	
+
 	<profiles>
 		<profile>
 			<id>native</id>

From 53a747d9743d0f4b69f06eb32e1ad3bdcc002342 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Thu, 19 Dec 2024 15:35:55 +0100
Subject: [PATCH 317/430] chore(deps): Update Spring dependencies (framework to
 6.2.1, security to 6.4.2, boot to 3.4.1)

---
 aws-serverless-java-container-core/pom.xml                  | 2 +-
 aws-serverless-java-container-spring/pom.xml                | 4 ++--
 aws-serverless-java-container-springboot3/pom.xml           | 6 +++---
 .../src/main/resources/archetype-resources/build.gradle     | 4 ++--
 .../src/main/resources/archetype-resources/pom.xml          | 2 +-
 .../src/main/resources/archetype-resources/build.gradle     | 2 +-
 .../src/main/resources/archetype-resources/pom.xml          | 2 +-
 samples/spring/pet-store/build.gradle                       | 4 ++--
 samples/spring/pet-store/pom.xml                            | 2 +-
 samples/springboot3/alt-pet-store/build.gradle              | 2 +-
 samples/springboot3/alt-pet-store/pom.xml                   | 2 +-
 samples/springboot3/graphql-pet-store/pom.xml               | 2 +-
 samples/springboot3/pet-store-native/pom.xml                | 2 +-
 samples/springboot3/pet-store/build.gradle                  | 2 +-
 samples/springboot3/pet-store/pom.xml                       | 2 +-
 15 files changed, 20 insertions(+), 20 deletions(-)

diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml
index f119dc713..07d60f848 100644
--- a/aws-serverless-java-container-core/pom.xml
+++ b/aws-serverless-java-container-core/pom.xml
@@ -60,7 +60,7 @@
         <dependency>
             <groupId>org.springframework.security</groupId>
             <artifactId>spring-security-web</artifactId>
-            <version>6.4.1</version>
+            <version>6.4.2</version>
             <scope>test</scope>
         </dependency>
     </dependencies>
diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml
index ab9491d77..5211db836 100644
--- a/aws-serverless-java-container-spring/pom.xml
+++ b/aws-serverless-java-container-spring/pom.xml
@@ -16,8 +16,8 @@
     </parent>
 
     <properties>
-        <spring.version>6.2.0</spring.version>
-        <spring-security.version>6.4.1</spring-security.version>
+        <spring.version>6.2.1</spring.version>
+        <spring-security.version>6.4.2</spring-security.version>
     </properties>
 
     <dependencies>
diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml
index 49fa7c707..57ece9fdd 100644
--- a/aws-serverless-java-container-springboot3/pom.xml
+++ b/aws-serverless-java-container-springboot3/pom.xml
@@ -15,9 +15,9 @@
     <version>2.2.0-SNAPSHOT</version>
 
     <properties>
-        <spring.version>6.2.0</spring.version>
-        <springboot.version>3.4.0</springboot.version>
-        <springsecurity.version>6.4.1</springsecurity.version>
+        <spring.version>6.2.1</spring.version>
+        <springboot.version>3.4.1</springboot.version>
+        <springsecurity.version>6.4.2</springsecurity.version>
     </properties>
 
     <dependencies>
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
index 4b4df05eb..3a931de23 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
@@ -7,8 +7,8 @@ repositories {
 
 dependencies {
   implementation (
-          'org.springframework:spring-webmvc:6.2.0',
-          'org.springframework:spring-context:6.2.0',
+          'org.springframework:spring-webmvc:6.2.1',
+          'org.springframework:spring-context:6.2.1',
           'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)',
           'org.apache.logging.log4j:log4j-core:2.24.3',
           'org.apache.logging.log4j:log4j-api:2.24.3',
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
index 42ccf9d42..173971be3 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
@@ -16,7 +16,7 @@
     <properties>
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
-        <spring.version>6.2.0</spring.version>
+        <spring.version>6.2.1</spring.version>
         <junit.version>5.11.3</junit.version>
         <log4j.version>2.24.2</log4j.version>
     </properties>
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
index be57490c8..0ca76c76d 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
@@ -9,7 +9,7 @@ repositories {
 
 dependencies {
   implementation (
-          'org.springframework.boot:spring-boot-starter-web:3.4.0',
+          'org.springframework.boot:spring-boot-starter-web:3.4.1',
           'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)',
   )
 
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
index 3489ad86d..bdcfecb40 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
@@ -16,7 +16,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.4.0</version>
+        <version>3.4.1</version>
     </parent>
 
     <properties>
diff --git a/samples/spring/pet-store/build.gradle b/samples/spring/pet-store/build.gradle
index e983e49bc..58bb80114 100644
--- a/samples/spring/pet-store/build.gradle
+++ b/samples/spring/pet-store/build.gradle
@@ -7,8 +7,8 @@ repositories {
 
 dependencies {
   implementation (
-          'org.springframework:spring-webmvc:6.2.0',
-          'org.springframework:spring-context:6.2.0',
+          'org.springframework:spring-webmvc:6.2.1',
+          'org.springframework:spring-context:6.2.1',
           'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)',
           'org.apache.logging.log4j:log4j-core:2.24.3',
           'org.apache.logging.log4j:log4j-api:2.24.3',
diff --git a/samples/spring/pet-store/pom.xml b/samples/spring/pet-store/pom.xml
index 409db0cc9..1ded708f1 100644
--- a/samples/spring/pet-store/pom.xml
+++ b/samples/spring/pet-store/pom.xml
@@ -24,7 +24,7 @@
     </licenses>
 
     <properties>
-        <spring.version>6.2.0</spring.version>
+        <spring.version>6.2.1</spring.version>
         <log4j.version>2.24.3</log4j.version>
         <maven.compiler.source>17</maven.compiler.source>
         <maven.compiler.target>17</maven.compiler.target>
diff --git a/samples/springboot3/alt-pet-store/build.gradle b/samples/springboot3/alt-pet-store/build.gradle
index 7bcd50e4e..f2d61db6b 100644
--- a/samples/springboot3/alt-pet-store/build.gradle
+++ b/samples/springboot3/alt-pet-store/build.gradle
@@ -9,7 +9,7 @@ repositories {
 
 dependencies {
   implementation (
-          implementation('org.springframework.boot:spring-boot-starter-web:3.4.0') {
+          implementation('org.springframework.boot:spring-boot-starter-web:3.4.1') {
             exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat'
           },
           'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)',
diff --git a/samples/springboot3/alt-pet-store/pom.xml b/samples/springboot3/alt-pet-store/pom.xml
index 70fb38207..1d15765fc 100644
--- a/samples/springboot3/alt-pet-store/pom.xml
+++ b/samples/springboot3/alt-pet-store/pom.xml
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.4.0</version>
+        <version>3.4.1</version>
     </parent>
 
     <licenses>
diff --git a/samples/springboot3/graphql-pet-store/pom.xml b/samples/springboot3/graphql-pet-store/pom.xml
index 070314fdd..c798d8fc3 100644
--- a/samples/springboot3/graphql-pet-store/pom.xml
+++ b/samples/springboot3/graphql-pet-store/pom.xml
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.4.0</version>
+        <version>3.4.1</version>
     </parent>
 
     <licenses>
diff --git a/samples/springboot3/pet-store-native/pom.xml b/samples/springboot3/pet-store-native/pom.xml
index 2a0f1af4e..dc3ba9d75 100644
--- a/samples/springboot3/pet-store-native/pom.xml
+++ b/samples/springboot3/pet-store-native/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.springframework.boot</groupId>
 		<artifactId>spring-boot-starter-parent</artifactId>
-		<version>3.4.0</version>
+		<version>3.4.1</version>
 		<relativePath /> <!-- lookup parent from repository -->
 	</parent>
 	<groupId>com.amazonaws.serverless.sample</groupId>
diff --git a/samples/springboot3/pet-store/build.gradle b/samples/springboot3/pet-store/build.gradle
index 7bcd50e4e..f2d61db6b 100644
--- a/samples/springboot3/pet-store/build.gradle
+++ b/samples/springboot3/pet-store/build.gradle
@@ -9,7 +9,7 @@ repositories {
 
 dependencies {
   implementation (
-          implementation('org.springframework.boot:spring-boot-starter-web:3.4.0') {
+          implementation('org.springframework.boot:spring-boot-starter-web:3.4.1') {
             exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat'
           },
           'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)',
diff --git a/samples/springboot3/pet-store/pom.xml b/samples/springboot3/pet-store/pom.xml
index 32b92a5f5..89f585399 100644
--- a/samples/springboot3/pet-store/pom.xml
+++ b/samples/springboot3/pet-store/pom.xml
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.4.0</version>
+        <version>3.4.1</version>
     </parent>
 
     <licenses>

From bd0ae08aa7b43f67a6869d9058fa8659c9ca8db3 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Fri, 20 Dec 2024 11:22:28 +0100
Subject: [PATCH 318/430] fix: content type for v1 payload should be retrieved
 from multi value headers (#1193)

---
 .../serverless/proxy/spring/AwsSpringHttpProcessingUtils.java   | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtils.java b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtils.java
index 01074f865..2f547a32d 100644
--- a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtils.java
+++ b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtils.java
@@ -126,7 +126,7 @@ private static HttpServletRequest generateRequest1(String request, Context lambd
 		}
         populateContentAndContentType(
                 v1Request.getBody(),
-                v1Request.getHeaders().get(HttpHeaders.CONTENT_TYPE),
+                v1Request.getMultiValueHeaders().getFirst(HttpHeaders.CONTENT_TYPE),
                 v1Request.isBase64Encoded(),
                 httpRequest
         );

From ecfd942ed57c5fdce69b4049f0ef6b8ac6493aa0 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Mon, 23 Dec 2024 09:55:05 +0100
Subject: [PATCH 319/430] chore(deps): update JUnit version to 5.11.4

---
 .../src/main/resources/archetype-resources/build.gradle         | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 .../src/main/resources/archetype-resources/build.gradle         | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 .../src/main/resources/archetype-resources/build.gradle         | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 pom.xml                                                         | 2 +-
 7 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
index 5d2a3a409..c4f8d7e52 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
@@ -23,7 +23,7 @@ dependencies {
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
   testImplementation("org.apache.httpcomponents.client5:httpclient5:5.4.1")
-  testImplementation(platform("org.junit:junit-bom:5.11.3"))
+  testImplementation(platform("org.junit:junit-bom:5.11.4"))
   testImplementation("org.junit.jupiter:junit-jupiter")
 }
 
diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
index 176ef8a46..a0c2b0620 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
@@ -17,7 +17,7 @@
 
         <jersey.version>3.1.9</jersey.version>
         <jackson.version>2.18.2</jackson.version>
-        <junit.version>5.11.3</junit.version>
+        <junit.version>5.11.4</junit.version>
     </properties>
 
     <dependencies>
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
index 3a931de23..0969e8c6c 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
@@ -19,7 +19,7 @@ dependencies {
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
   testImplementation("org.apache.httpcomponents.client5:httpclient5:5.4.1")
-  testImplementation(platform("org.junit:junit-bom:5.11.3"))
+  testImplementation(platform("org.junit:junit-bom:5.11.4"))
   testImplementation("org.junit.jupiter:junit-jupiter")
 }
 
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
index 173971be3..13116df09 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
@@ -17,7 +17,7 @@
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
         <spring.version>6.2.1</spring.version>
-        <junit.version>5.11.3</junit.version>
+        <junit.version>5.11.4</junit.version>
         <log4j.version>2.24.2</log4j.version>
     </properties>
 
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
index 0ca76c76d..cdca16bc3 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
@@ -15,7 +15,7 @@ dependencies {
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
   testImplementation("org.apache.httpcomponents.client5:httpclient5:5.4.1")
-  testImplementation(platform("org.junit:junit-bom:5.11.3"))
+  testImplementation(platform("org.junit:junit-bom:5.11.4"))
   testImplementation("org.junit.jupiter:junit-jupiter")
 }
 
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
index bdcfecb40..8bea6e66a 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
@@ -21,7 +21,7 @@
 
     <properties>
         <java.version>17</java.version>
-        <junit.version>5.11.3</junit.version>
+        <junit.version>5.11.4</junit.version>
     </properties>
 
     <dependencies>
diff --git a/pom.xml b/pom.xml
index 6d053b3d9..ecfd98147 100644
--- a/pom.xml
+++ b/pom.xml
@@ -80,7 +80,7 @@
         <dependencyCheck.version>11.1.1</dependencyCheck.version>
         <jackson.version>2.18.2</jackson.version>
         <slf4j.version>2.0.16</slf4j.version>
-        <junit.version>5.11.3</junit.version>
+        <junit.version>5.11.4</junit.version>
         <mockito.version>5.14.2</mockito.version>
         <hamcrest.version>1.3</hamcrest.version>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

From 8edd50c80191655eec55cb32ee5fe837ffe05f4d Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 6 Jan 2025 05:14:56 +0000
Subject: [PATCH 320/430] chore(deps-dev): bump org.mockito:mockito-core from
 5.14.2 to 5.15.2

Bumps [org.mockito:mockito-core](https://github.com/mockito/mockito) from 5.14.2 to 5.15.2.
- [Release notes](https://github.com/mockito/mockito/releases)
- [Commits](https://github.com/mockito/mockito/compare/v5.14.2...v5.15.2)

---
updated-dependencies:
- dependency-name: org.mockito:mockito-core
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index ecfd98147..0458270d1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -81,7 +81,7 @@
         <jackson.version>2.18.2</jackson.version>
         <slf4j.version>2.0.16</slf4j.version>
         <junit.version>5.11.4</junit.version>
-        <mockito.version>5.14.2</mockito.version>
+        <mockito.version>5.15.2</mockito.version>
         <hamcrest.version>1.3</hamcrest.version>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     </properties>

From 7c7e81b1da25375d081f2d2d3534cd8dc1a962b5 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 8 Jan 2025 07:54:39 +0000
Subject: [PATCH 321/430] chore(deps): bump commons-codec:commons-codec from
 1.17.1 to 1.17.2

Bumps [commons-codec:commons-codec](https://github.com/apache/commons-codec) from 1.17.1 to 1.17.2.
- [Changelog](https://github.com/apache/commons-codec/blob/master/RELEASE-NOTES.txt)
- [Commits](https://github.com/apache/commons-codec/compare/rel/commons-codec-1.17.1...rel/commons-codec-1.17.2)

---
updated-dependencies:
- dependency-name: commons-codec:commons-codec
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 aws-serverless-java-container-jersey/pom.xml | 2 +-
 aws-serverless-java-container-spring/pom.xml | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/aws-serverless-java-container-jersey/pom.xml b/aws-serverless-java-container-jersey/pom.xml
index fdb4cf24f..16699e919 100644
--- a/aws-serverless-java-container-jersey/pom.xml
+++ b/aws-serverless-java-container-jersey/pom.xml
@@ -64,7 +64,7 @@
         <dependency>
             <groupId>commons-codec</groupId>
             <artifactId>commons-codec</artifactId>
-            <version>1.17.1</version>
+            <version>1.17.2</version>
             <scope>test</scope>
         </dependency>
 
diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml
index 5fa183237..7749e53dc 100644
--- a/aws-serverless-java-container-spring/pom.xml
+++ b/aws-serverless-java-container-spring/pom.xml
@@ -53,7 +53,7 @@
         <dependency>
             <groupId>commons-codec</groupId>
             <artifactId>commons-codec</artifactId>
-            <version>1.17.1</version>
+            <version>1.17.2</version>
             <scope>test</scope>
         </dependency>
 

From 159a96444666a5780c7babd2c62bcea0fa5fa050 Mon Sep 17 00:00:00 2001
From: deki <deki@users.noreply.github.com>
Date: Wed, 8 Jan 2025 08:28:10 +0000
Subject: [PATCH 322/430] chore: release - prepare release
 aws-serverless-java-container-2.1.1

---
 aws-serverless-java-container-core/pom.xml        | 4 ++--
 aws-serverless-java-container-jersey/pom.xml      | 8 ++++----
 aws-serverless-java-container-spring/pom.xml      | 8 ++++----
 aws-serverless-java-container-springboot3/pom.xml | 8 ++++----
 aws-serverless-jersey-archetype/pom.xml           | 6 +++---
 aws-serverless-spring-archetype/pom.xml           | 6 +++---
 aws-serverless-springboot3-archetype/pom.xml      | 6 +++---
 pom.xml                                           | 4 ++--
 8 files changed, 25 insertions(+), 25 deletions(-)

diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml
index 07d60f848..7c604bd22 100644
--- a/aws-serverless-java-container-core/pom.xml
+++ b/aws-serverless-java-container-core/pom.xml
@@ -6,12 +6,12 @@
     <name>AWS Serverless Java container support - Core</name>
     <description>Allows Java applications written for a servlet container to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.2.0-SNAPSHOT</version>
+    <version>2.1.1</version>
 
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.2.0-SNAPSHOT</version>
+        <version>2.1.1</version>
         <relativePath>..</relativePath>
     </parent>
 
diff --git a/aws-serverless-java-container-jersey/pom.xml b/aws-serverless-java-container-jersey/pom.xml
index 16699e919..c4ce0dc52 100644
--- a/aws-serverless-java-container-jersey/pom.xml
+++ b/aws-serverless-java-container-jersey/pom.xml
@@ -6,12 +6,12 @@
     <name>AWS Serverless Java container support - Jersey implementation</name>
     <description>Allows Java applications written for Jersey to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.2.0-SNAPSHOT</version>
+    <version>2.1.1</version>
 
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.2.0-SNAPSHOT</version>
+        <version>2.1.1</version>
         <relativePath>..</relativePath>
     </parent>
 
@@ -24,7 +24,7 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.2.0-SNAPSHOT</version>
+            <version>2.1.1</version>
             <exclusions>
                 <exclusion>
                     <groupId>com.fasterxml.jackson.core</groupId>
@@ -35,7 +35,7 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.2.0-SNAPSHOT</version>
+            <version>2.1.1</version>
             <classifier>tests</classifier>
             <type>test-jar</type>
             <scope>test</scope>
diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml
index 7749e53dc..410061c51 100644
--- a/aws-serverless-java-container-spring/pom.xml
+++ b/aws-serverless-java-container-spring/pom.xml
@@ -6,12 +6,12 @@
     <name>AWS Serverless Java container support - Spring implementation</name>
     <description>Allows Java applications written for the Spring framework to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.2.0-SNAPSHOT</version>
+    <version>2.1.1</version>
 
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.2.0-SNAPSHOT</version>
+        <version>2.1.1</version>
         <relativePath>..</relativePath>
     </parent>
 
@@ -25,12 +25,12 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.2.0-SNAPSHOT</version>
+            <version>2.1.1</version>
         </dependency>
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.2.0-SNAPSHOT</version>
+            <version>2.1.1</version>
             <classifier>tests</classifier>
             <type>test-jar</type>
             <scope>test</scope>
diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml
index 61fdc8963..f86e06129 100644
--- a/aws-serverless-java-container-springboot3/pom.xml
+++ b/aws-serverless-java-container-springboot3/pom.xml
@@ -3,7 +3,7 @@
     <parent>
         <artifactId>aws-serverless-java-container</artifactId>
         <groupId>com.amazonaws.serverless</groupId>
-        <version>2.2.0-SNAPSHOT</version>
+        <version>2.1.1</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
@@ -12,7 +12,7 @@
     <name>AWS Serverless Java container support - SpringBoot 3 implementation</name>
     <description>Allows Java applications written for SpringBoot 3 to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.2.0-SNAPSHOT</version>
+    <version>2.1.1</version>
 
     <properties>
         <spring.version>6.2.1</spring.version>
@@ -30,12 +30,12 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.2.0-SNAPSHOT</version>
+            <version>2.1.1</version>
         </dependency>
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.2.0-SNAPSHOT</version>
+            <version>2.1.1</version>
             <classifier>tests</classifier>
             <type>test-jar</type>
             <scope>test</scope>
diff --git a/aws-serverless-jersey-archetype/pom.xml b/aws-serverless-jersey-archetype/pom.xml
index 412459c41..c6e3ae9c8 100644
--- a/aws-serverless-jersey-archetype/pom.xml
+++ b/aws-serverless-jersey-archetype/pom.xml
@@ -4,17 +4,17 @@
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.2.0-SNAPSHOT</version>
+        <version>2.1.1</version>
     </parent>
 
     <groupId>com.amazonaws.serverless.archetypes</groupId>
     <artifactId>aws-serverless-jersey-archetype</artifactId>
-    <version>2.2.0-SNAPSHOT</version>
+    <version>2.1.1</version>
     <packaging>maven-archetype</packaging>
 
     <scm>
         <url>https://github.com/aws/serverless-java-container.git</url>
-      <tag>HEAD</tag>
+      <tag>aws-serverless-java-container-2.1.1</tag>
   </scm>
 
     <licenses>
diff --git a/aws-serverless-spring-archetype/pom.xml b/aws-serverless-spring-archetype/pom.xml
index 8b95c5332..e896d2263 100644
--- a/aws-serverless-spring-archetype/pom.xml
+++ b/aws-serverless-spring-archetype/pom.xml
@@ -4,17 +4,17 @@
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.2.0-SNAPSHOT</version>
+        <version>2.1.1</version>
     </parent>
 
     <groupId>com.amazonaws.serverless.archetypes</groupId>
     <artifactId>aws-serverless-spring-archetype</artifactId>
-    <version>2.2.0-SNAPSHOT</version>
+    <version>2.1.1</version>
     <packaging>maven-archetype</packaging>
 
     <scm>
         <url>https://github.com/aws/serverless-java-container.git</url>
-      <tag>HEAD</tag>
+      <tag>aws-serverless-java-container-2.1.1</tag>
   </scm>
 
     <licenses>
diff --git a/aws-serverless-springboot3-archetype/pom.xml b/aws-serverless-springboot3-archetype/pom.xml
index 89469c2e4..fa1485376 100644
--- a/aws-serverless-springboot3-archetype/pom.xml
+++ b/aws-serverless-springboot3-archetype/pom.xml
@@ -4,17 +4,17 @@
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.2.0-SNAPSHOT</version>
+        <version>2.1.1</version>
     </parent>
 
     <groupId>com.amazonaws.serverless.archetypes</groupId>
     <artifactId>aws-serverless-springboot3-archetype</artifactId>
-    <version>2.2.0-SNAPSHOT</version>
+    <version>2.1.1</version>
     <packaging>maven-archetype</packaging>
 
     <scm>
         <url>https://github.com/aws/serverless-java-container.git</url>
-      <tag>HEAD</tag>
+      <tag>aws-serverless-java-container-2.1.1</tag>
   </scm>
 
     <licenses>
diff --git a/pom.xml b/pom.xml
index 0458270d1..4f29c41f8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
     <groupId>com.amazonaws.serverless</groupId>
     <artifactId>aws-serverless-java-container</artifactId>
     <packaging>pom</packaging>
-    <version>2.2.0-SNAPSHOT</version>
+    <version>2.1.1</version>
     <name>AWS Serverless Java container</name>
     <description>A Java framework to run Spring, Spring Boot, Jersey, Spark, and Struts applications inside AWS Lambda</description>
     <url>https://github.com/aws/serverless-java-container</url>
@@ -37,7 +37,7 @@
     <scm>
         <url>https://github.com/aws/serverless-java-container</url>
         <connection>scm:git:https://github.com/aws/serverless-java-container.git</connection>
-      <tag>HEAD</tag>
+      <tag>aws-serverless-java-container-2.1.1</tag>
     </scm>
 
     <repositories>

From 02fb39371fa02d0442c94c2627c90ef8f12cdfc2 Mon Sep 17 00:00:00 2001
From: deki <deki@users.noreply.github.com>
Date: Wed, 8 Jan 2025 08:28:12 +0000
Subject: [PATCH 323/430] chore: release - prepare for next development
 iteration

---
 aws-serverless-java-container-core/pom.xml        | 4 ++--
 aws-serverless-java-container-jersey/pom.xml      | 8 ++++----
 aws-serverless-java-container-spring/pom.xml      | 8 ++++----
 aws-serverless-java-container-springboot3/pom.xml | 8 ++++----
 aws-serverless-jersey-archetype/pom.xml           | 6 +++---
 aws-serverless-spring-archetype/pom.xml           | 6 +++---
 aws-serverless-springboot3-archetype/pom.xml      | 6 +++---
 pom.xml                                           | 4 ++--
 8 files changed, 25 insertions(+), 25 deletions(-)

diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml
index 7c604bd22..07d60f848 100644
--- a/aws-serverless-java-container-core/pom.xml
+++ b/aws-serverless-java-container-core/pom.xml
@@ -6,12 +6,12 @@
     <name>AWS Serverless Java container support - Core</name>
     <description>Allows Java applications written for a servlet container to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.1.1</version>
+    <version>2.2.0-SNAPSHOT</version>
 
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.1.1</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>..</relativePath>
     </parent>
 
diff --git a/aws-serverless-java-container-jersey/pom.xml b/aws-serverless-java-container-jersey/pom.xml
index c4ce0dc52..16699e919 100644
--- a/aws-serverless-java-container-jersey/pom.xml
+++ b/aws-serverless-java-container-jersey/pom.xml
@@ -6,12 +6,12 @@
     <name>AWS Serverless Java container support - Jersey implementation</name>
     <description>Allows Java applications written for Jersey to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.1.1</version>
+    <version>2.2.0-SNAPSHOT</version>
 
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.1.1</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>..</relativePath>
     </parent>
 
@@ -24,7 +24,7 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.1.1</version>
+            <version>2.2.0-SNAPSHOT</version>
             <exclusions>
                 <exclusion>
                     <groupId>com.fasterxml.jackson.core</groupId>
@@ -35,7 +35,7 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.1.1</version>
+            <version>2.2.0-SNAPSHOT</version>
             <classifier>tests</classifier>
             <type>test-jar</type>
             <scope>test</scope>
diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml
index 410061c51..7749e53dc 100644
--- a/aws-serverless-java-container-spring/pom.xml
+++ b/aws-serverless-java-container-spring/pom.xml
@@ -6,12 +6,12 @@
     <name>AWS Serverless Java container support - Spring implementation</name>
     <description>Allows Java applications written for the Spring framework to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.1.1</version>
+    <version>2.2.0-SNAPSHOT</version>
 
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.1.1</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>..</relativePath>
     </parent>
 
@@ -25,12 +25,12 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.1.1</version>
+            <version>2.2.0-SNAPSHOT</version>
         </dependency>
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.1.1</version>
+            <version>2.2.0-SNAPSHOT</version>
             <classifier>tests</classifier>
             <type>test-jar</type>
             <scope>test</scope>
diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml
index f86e06129..61fdc8963 100644
--- a/aws-serverless-java-container-springboot3/pom.xml
+++ b/aws-serverless-java-container-springboot3/pom.xml
@@ -3,7 +3,7 @@
     <parent>
         <artifactId>aws-serverless-java-container</artifactId>
         <groupId>com.amazonaws.serverless</groupId>
-        <version>2.1.1</version>
+        <version>2.2.0-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
@@ -12,7 +12,7 @@
     <name>AWS Serverless Java container support - SpringBoot 3 implementation</name>
     <description>Allows Java applications written for SpringBoot 3 to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.1.1</version>
+    <version>2.2.0-SNAPSHOT</version>
 
     <properties>
         <spring.version>6.2.1</spring.version>
@@ -30,12 +30,12 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.1.1</version>
+            <version>2.2.0-SNAPSHOT</version>
         </dependency>
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.1.1</version>
+            <version>2.2.0-SNAPSHOT</version>
             <classifier>tests</classifier>
             <type>test-jar</type>
             <scope>test</scope>
diff --git a/aws-serverless-jersey-archetype/pom.xml b/aws-serverless-jersey-archetype/pom.xml
index c6e3ae9c8..412459c41 100644
--- a/aws-serverless-jersey-archetype/pom.xml
+++ b/aws-serverless-jersey-archetype/pom.xml
@@ -4,17 +4,17 @@
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.1.1</version>
+        <version>2.2.0-SNAPSHOT</version>
     </parent>
 
     <groupId>com.amazonaws.serverless.archetypes</groupId>
     <artifactId>aws-serverless-jersey-archetype</artifactId>
-    <version>2.1.1</version>
+    <version>2.2.0-SNAPSHOT</version>
     <packaging>maven-archetype</packaging>
 
     <scm>
         <url>https://github.com/aws/serverless-java-container.git</url>
-      <tag>aws-serverless-java-container-2.1.1</tag>
+      <tag>HEAD</tag>
   </scm>
 
     <licenses>
diff --git a/aws-serverless-spring-archetype/pom.xml b/aws-serverless-spring-archetype/pom.xml
index e896d2263..8b95c5332 100644
--- a/aws-serverless-spring-archetype/pom.xml
+++ b/aws-serverless-spring-archetype/pom.xml
@@ -4,17 +4,17 @@
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.1.1</version>
+        <version>2.2.0-SNAPSHOT</version>
     </parent>
 
     <groupId>com.amazonaws.serverless.archetypes</groupId>
     <artifactId>aws-serverless-spring-archetype</artifactId>
-    <version>2.1.1</version>
+    <version>2.2.0-SNAPSHOT</version>
     <packaging>maven-archetype</packaging>
 
     <scm>
         <url>https://github.com/aws/serverless-java-container.git</url>
-      <tag>aws-serverless-java-container-2.1.1</tag>
+      <tag>HEAD</tag>
   </scm>
 
     <licenses>
diff --git a/aws-serverless-springboot3-archetype/pom.xml b/aws-serverless-springboot3-archetype/pom.xml
index fa1485376..89469c2e4 100644
--- a/aws-serverless-springboot3-archetype/pom.xml
+++ b/aws-serverless-springboot3-archetype/pom.xml
@@ -4,17 +4,17 @@
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.1.1</version>
+        <version>2.2.0-SNAPSHOT</version>
     </parent>
 
     <groupId>com.amazonaws.serverless.archetypes</groupId>
     <artifactId>aws-serverless-springboot3-archetype</artifactId>
-    <version>2.1.1</version>
+    <version>2.2.0-SNAPSHOT</version>
     <packaging>maven-archetype</packaging>
 
     <scm>
         <url>https://github.com/aws/serverless-java-container.git</url>
-      <tag>aws-serverless-java-container-2.1.1</tag>
+      <tag>HEAD</tag>
   </scm>
 
     <licenses>
diff --git a/pom.xml b/pom.xml
index 4f29c41f8..0458270d1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
     <groupId>com.amazonaws.serverless</groupId>
     <artifactId>aws-serverless-java-container</artifactId>
     <packaging>pom</packaging>
-    <version>2.1.1</version>
+    <version>2.2.0-SNAPSHOT</version>
     <name>AWS Serverless Java container</name>
     <description>A Java framework to run Spring, Spring Boot, Jersey, Spark, and Struts applications inside AWS Lambda</description>
     <url>https://github.com/aws/serverless-java-container</url>
@@ -37,7 +37,7 @@
     <scm>
         <url>https://github.com/aws/serverless-java-container</url>
         <connection>scm:git:https://github.com/aws/serverless-java-container.git</connection>
-      <tag>aws-serverless-java-container-2.1.1</tag>
+      <tag>HEAD</tag>
     </scm>
 
     <repositories>

From 7785e356b2fb69b49fcf333735c65fb2f33757a7 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 13 Jan 2025 04:22:31 +0000
Subject: [PATCH 324/430] chore(deps): bump org.owasp:dependency-check-maven
 from 11.1.1 to 12.0.0

Bumps [org.owasp:dependency-check-maven](https://github.com/jeremylong/DependencyCheck) from 11.1.1 to 12.0.0.
- [Release notes](https://github.com/jeremylong/DependencyCheck/releases)
- [Changelog](https://github.com/jeremylong/DependencyCheck/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jeremylong/DependencyCheck/compare/v11.1.1...v12.0.0)

---
updated-dependencies:
- dependency-name: org.owasp:dependency-check-maven
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 0458270d1..d054ca5d9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -77,7 +77,7 @@
 
     <properties>
         <jacoco.minCoverage>0.7</jacoco.minCoverage>
-        <dependencyCheck.version>11.1.1</dependencyCheck.version>
+        <dependencyCheck.version>12.0.0</dependencyCheck.version>
         <jackson.version>2.18.2</jackson.version>
         <slf4j.version>2.0.16</slf4j.version>
         <junit.version>5.11.4</junit.version>

From 00de575129935ff5cb593fea83687ed213157abd Mon Sep 17 00:00:00 2001
From: Oleg Zhurakousky <ozhurakousky@vmware.com>
Date: Mon, 13 Jan 2025 19:31:53 +0100
Subject: [PATCH 325/430] Updated Spring Cloud Function version

---
 samples/springboot3/alt-pet-store/pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/samples/springboot3/alt-pet-store/pom.xml b/samples/springboot3/alt-pet-store/pom.xml
index 1d15765fc..f2c7359cb 100644
--- a/samples/springboot3/alt-pet-store/pom.xml
+++ b/samples/springboot3/alt-pet-store/pom.xml
@@ -37,7 +37,7 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-springboot3</artifactId>
-            <version>[2.0.0-SNAPSHOT,),[2.0.0-M1,)</version>
+            <version>[2.2.0-SNAPSHOT,),[2.2.0-M1,)</version>
         </dependency>
     </dependencies>
 

From 9c7ef12dfe7a28430c66b2bb368ee3c782269bd6 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Tue, 14 Jan 2025 07:30:13 +0200
Subject: [PATCH 326/430] chore(deps): Update Jersey version to 3.1.10 (closes
 #1233, #1234)

---
 aws-serverless-java-container-jersey/pom.xml                  | 2 +-
 .../src/main/resources/archetype-resources/build.gradle       | 4 ++--
 .../src/main/resources/archetype-resources/pom.xml            | 2 +-
 samples/jersey/pet-store/build.gradle                         | 4 ++--
 samples/jersey/pet-store/pom.xml                              | 2 +-
 5 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/aws-serverless-java-container-jersey/pom.xml b/aws-serverless-java-container-jersey/pom.xml
index 16699e919..c14b1e1e3 100644
--- a/aws-serverless-java-container-jersey/pom.xml
+++ b/aws-serverless-java-container-jersey/pom.xml
@@ -16,7 +16,7 @@
     </parent>
 
     <properties>
-        <jersey.version>3.1.9</jersey.version>
+        <jersey.version>3.1.10</jersey.version>
     </properties>
 
     <dependencies>
diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
index c4f8d7e52..29ef10b04 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
@@ -11,13 +11,13 @@ dependencies {
           'com.fasterxml.jackson.core:jackson-databind:2.18.2',
   )
 
-  implementation("org.glassfish.jersey.media:jersey-media-json-jackson:3.1.9") {
+  implementation("org.glassfish.jersey.media:jersey-media-json-jackson:3.1.10") {
     exclude group: 'com.fasterxml.jackson.core', module: "jackson-annotations"
     exclude group: 'com.fasterxml.jackson.core', module: "jackson-databind"
     exclude group: 'com.fasterxml.jackson.core', module: "jackson-core"
   }
 
-  implementation("org.glassfish.jersey.inject:jersey-hk2:3.1.9") {
+  implementation("org.glassfish.jersey.inject:jersey-hk2:3.1.10") {
     exclude group: 'javax.inject', module: "javax.inject"
   }
 
diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
index a0c2b0620..2d9b45363 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
@@ -15,7 +15,7 @@
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
 
-        <jersey.version>3.1.9</jersey.version>
+        <jersey.version>3.1.10</jersey.version>
         <jackson.version>2.18.2</jackson.version>
         <junit.version>5.11.4</junit.version>
     </properties>
diff --git a/samples/jersey/pet-store/build.gradle b/samples/jersey/pet-store/build.gradle
index 4c54ac140..ca4af2f86 100644
--- a/samples/jersey/pet-store/build.gradle
+++ b/samples/jersey/pet-store/build.gradle
@@ -11,13 +11,13 @@ dependencies {
           'com.fasterxml.jackson.core:jackson-databind:2.18.2',
   )
 
-  implementation("org.glassfish.jersey.media:jersey-media-json-jackson:3.1.9") {
+  implementation("org.glassfish.jersey.media:jersey-media-json-jackson:3.1.10") {
     exclude group: 'com.fasterxml.jackson.core', module: "jackson-annotations"
     exclude group: 'com.fasterxml.jackson.core', module: "jackson-databind"
     exclude group: 'com.fasterxml.jackson.core', module: "jackson-core"
   }
 
-  implementation("org.glassfish.jersey.inject:jersey-hk2:3.1.9") {
+  implementation("org.glassfish.jersey.inject:jersey-hk2:3.1.10") {
     exclude group: 'javax.inject', module: "javax.inject"
   }
 }
diff --git a/samples/jersey/pet-store/pom.xml b/samples/jersey/pet-store/pom.xml
index c7bbe2f09..2482864f0 100644
--- a/samples/jersey/pet-store/pom.xml
+++ b/samples/jersey/pet-store/pom.xml
@@ -26,7 +26,7 @@
     <properties>
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
-        <jersey.version>3.1.9</jersey.version>
+        <jersey.version>3.1.10</jersey.version>
         <jackson.version>2.18.2</jackson.version>
     </properties>
 

From 6fa29cdf8b1ec9c98af3a454f0a5c388027e38f5 Mon Sep 17 00:00:00 2001
From: Oleg Zhurakousky <ozhurakousky@vmware.com>
Date: Tue, 14 Jan 2025 08:20:30 +0100
Subject: [PATCH 327/430] Updated Spring Cloud Function version

---
 aws-serverless-java-container-springboot3/pom.xml | 2 +-
 samples/springboot3/alt-pet-store/pom.xml         | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml
index 61fdc8963..34a628c15 100644
--- a/aws-serverless-java-container-springboot3/pom.xml
+++ b/aws-serverless-java-container-springboot3/pom.xml
@@ -25,7 +25,7 @@
         <dependency>
             <groupId>org.springframework.cloud</groupId>
             <artifactId>spring-cloud-function-serverless-web</artifactId>
-            <version>4.1.4</version>
+            <version>4.1.5</version>
         </dependency>
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
diff --git a/samples/springboot3/alt-pet-store/pom.xml b/samples/springboot3/alt-pet-store/pom.xml
index f2c7359cb..cf9a16f6c 100644
--- a/samples/springboot3/alt-pet-store/pom.xml
+++ b/samples/springboot3/alt-pet-store/pom.xml
@@ -37,7 +37,7 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-springboot3</artifactId>
-            <version>[2.2.0-SNAPSHOT,),[2.2.0-M1,)</version>
+            <version>[2.2.0-SNAPSHOT,),[2.1.1,)</version>
         </dependency>
     </dependencies>
 

From 28232b45fb8a887e2c0ebdcc5329405f7716a705 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 20 Jan 2025 04:38:29 +0000
Subject: [PATCH 328/430] chore(deps): bump org.owasp:dependency-check-maven
 from 12.0.0 to 12.0.1

Bumps [org.owasp:dependency-check-maven](https://github.com/jeremylong/DependencyCheck) from 12.0.0 to 12.0.1.
- [Release notes](https://github.com/jeremylong/DependencyCheck/releases)
- [Changelog](https://github.com/jeremylong/DependencyCheck/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jeremylong/DependencyCheck/compare/v12.0.0...v12.0.1)

---
updated-dependencies:
- dependency-name: org.owasp:dependency-check-maven
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index d054ca5d9..36aa0ebb0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -77,7 +77,7 @@
 
     <properties>
         <jacoco.minCoverage>0.7</jacoco.minCoverage>
-        <dependencyCheck.version>12.0.0</dependencyCheck.version>
+        <dependencyCheck.version>12.0.1</dependencyCheck.version>
         <jackson.version>2.18.2</jackson.version>
         <slf4j.version>2.0.16</slf4j.version>
         <junit.version>5.11.4</junit.version>

From 2e27797065a10ea6003d338a0d4ef644c9916a7d Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 20 Jan 2025 04:38:36 +0000
Subject: [PATCH 329/430] chore(deps): bump
 com.github.spotbugs:spotbugs-annotations

Bumps [com.github.spotbugs:spotbugs-annotations](https://github.com/spotbugs/spotbugs) from 4.8.6 to 4.9.0.
- [Release notes](https://github.com/spotbugs/spotbugs/releases)
- [Changelog](https://github.com/spotbugs/spotbugs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/spotbugs/spotbugs/compare/4.8.6...4.9.0)

---
updated-dependencies:
- dependency-name: com.github.spotbugs:spotbugs-annotations
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index d054ca5d9..ea89e8947 100644
--- a/pom.xml
+++ b/pom.xml
@@ -140,7 +140,7 @@
         <dependency>
             <groupId>com.github.spotbugs</groupId>
             <artifactId>spotbugs-annotations</artifactId>
-            <version>4.8.6</version>
+            <version>4.9.0</version>
             <scope>provided</scope>
         </dependency>
     </dependencies>

From 5f02ec136b985ab44055aed9a3408b817d0537d9 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Fri, 24 Jan 2025 14:41:59 +0100
Subject: [PATCH 330/430] chore(deps): Update Spring dependencies (framework to
 6.2.2, boot to 3.4.2)

---
 aws-serverless-java-container-spring/pom.xml                  | 2 +-
 aws-serverless-java-container-springboot3/pom.xml             | 4 ++--
 .../src/main/resources/archetype-resources/build.gradle       | 4 ++--
 .../src/main/resources/archetype-resources/pom.xml            | 2 +-
 .../src/main/resources/archetype-resources/build.gradle       | 2 +-
 .../src/main/resources/archetype-resources/pom.xml            | 2 +-
 samples/spring/pet-store/build.gradle                         | 4 ++--
 samples/spring/pet-store/pom.xml                              | 2 +-
 samples/springboot3/alt-pet-store/build.gradle                | 2 +-
 samples/springboot3/alt-pet-store/pom.xml                     | 2 +-
 samples/springboot3/graphql-pet-store/pom.xml                 | 2 +-
 samples/springboot3/pet-store-native/pom.xml                  | 2 +-
 samples/springboot3/pet-store/build.gradle                    | 2 +-
 samples/springboot3/pet-store/pom.xml                         | 2 +-
 14 files changed, 17 insertions(+), 17 deletions(-)

diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml
index 7749e53dc..c11dd3ee5 100644
--- a/aws-serverless-java-container-spring/pom.xml
+++ b/aws-serverless-java-container-spring/pom.xml
@@ -16,7 +16,7 @@
     </parent>
 
     <properties>
-        <spring.version>6.2.1</spring.version>
+        <spring.version>6.2.2</spring.version>
         <spring-security.version>6.4.2</spring-security.version>
     </properties>
 
diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml
index 34a628c15..222126adb 100644
--- a/aws-serverless-java-container-springboot3/pom.xml
+++ b/aws-serverless-java-container-springboot3/pom.xml
@@ -15,8 +15,8 @@
     <version>2.2.0-SNAPSHOT</version>
 
     <properties>
-        <spring.version>6.2.1</spring.version>
-        <springboot.version>3.4.1</springboot.version>
+        <spring.version>6.2.2</spring.version>
+        <springboot.version>3.4.2</springboot.version>
         <springsecurity.version>6.4.2</springsecurity.version>
     </properties>
 
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
index 0969e8c6c..da8ea168f 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
@@ -7,8 +7,8 @@ repositories {
 
 dependencies {
   implementation (
-          'org.springframework:spring-webmvc:6.2.1',
-          'org.springframework:spring-context:6.2.1',
+          'org.springframework:spring-webmvc:6.2.2',
+          'org.springframework:spring-context:6.2.2',
           'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)',
           'org.apache.logging.log4j:log4j-core:2.24.3',
           'org.apache.logging.log4j:log4j-api:2.24.3',
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
index 13116df09..0320ee041 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
@@ -16,7 +16,7 @@
     <properties>
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
-        <spring.version>6.2.1</spring.version>
+        <spring.version>6.2.2</spring.version>
         <junit.version>5.11.4</junit.version>
         <log4j.version>2.24.2</log4j.version>
     </properties>
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
index cdca16bc3..e8e334e2e 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
@@ -9,7 +9,7 @@ repositories {
 
 dependencies {
   implementation (
-          'org.springframework.boot:spring-boot-starter-web:3.4.1',
+          'org.springframework.boot:spring-boot-starter-web:3.4.2',
           'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)',
   )
 
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
index 8bea6e66a..d0a274282 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
@@ -16,7 +16,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.4.1</version>
+        <version>3.4.2</version>
     </parent>
 
     <properties>
diff --git a/samples/spring/pet-store/build.gradle b/samples/spring/pet-store/build.gradle
index 58bb80114..44f81a73a 100644
--- a/samples/spring/pet-store/build.gradle
+++ b/samples/spring/pet-store/build.gradle
@@ -7,8 +7,8 @@ repositories {
 
 dependencies {
   implementation (
-          'org.springframework:spring-webmvc:6.2.1',
-          'org.springframework:spring-context:6.2.1',
+          'org.springframework:spring-webmvc:6.2.2',
+          'org.springframework:spring-context:6.2.2',
           'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)',
           'org.apache.logging.log4j:log4j-core:2.24.3',
           'org.apache.logging.log4j:log4j-api:2.24.3',
diff --git a/samples/spring/pet-store/pom.xml b/samples/spring/pet-store/pom.xml
index 1ded708f1..85dd93d3a 100644
--- a/samples/spring/pet-store/pom.xml
+++ b/samples/spring/pet-store/pom.xml
@@ -24,7 +24,7 @@
     </licenses>
 
     <properties>
-        <spring.version>6.2.1</spring.version>
+        <spring.version>6.2.2</spring.version>
         <log4j.version>2.24.3</log4j.version>
         <maven.compiler.source>17</maven.compiler.source>
         <maven.compiler.target>17</maven.compiler.target>
diff --git a/samples/springboot3/alt-pet-store/build.gradle b/samples/springboot3/alt-pet-store/build.gradle
index f2d61db6b..f8013cbc0 100644
--- a/samples/springboot3/alt-pet-store/build.gradle
+++ b/samples/springboot3/alt-pet-store/build.gradle
@@ -9,7 +9,7 @@ repositories {
 
 dependencies {
   implementation (
-          implementation('org.springframework.boot:spring-boot-starter-web:3.4.1') {
+          implementation('org.springframework.boot:spring-boot-starter-web:3.4.2') {
             exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat'
           },
           'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)',
diff --git a/samples/springboot3/alt-pet-store/pom.xml b/samples/springboot3/alt-pet-store/pom.xml
index cf9a16f6c..e11af0428 100644
--- a/samples/springboot3/alt-pet-store/pom.xml
+++ b/samples/springboot3/alt-pet-store/pom.xml
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.4.1</version>
+        <version>3.4.2</version>
     </parent>
 
     <licenses>
diff --git a/samples/springboot3/graphql-pet-store/pom.xml b/samples/springboot3/graphql-pet-store/pom.xml
index c798d8fc3..e4c472f00 100644
--- a/samples/springboot3/graphql-pet-store/pom.xml
+++ b/samples/springboot3/graphql-pet-store/pom.xml
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.4.1</version>
+        <version>3.4.2</version>
     </parent>
 
     <licenses>
diff --git a/samples/springboot3/pet-store-native/pom.xml b/samples/springboot3/pet-store-native/pom.xml
index dc3ba9d75..d8ee426a5 100644
--- a/samples/springboot3/pet-store-native/pom.xml
+++ b/samples/springboot3/pet-store-native/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.springframework.boot</groupId>
 		<artifactId>spring-boot-starter-parent</artifactId>
-		<version>3.4.1</version>
+		<version>3.4.2</version>
 		<relativePath /> <!-- lookup parent from repository -->
 	</parent>
 	<groupId>com.amazonaws.serverless.sample</groupId>
diff --git a/samples/springboot3/pet-store/build.gradle b/samples/springboot3/pet-store/build.gradle
index f2d61db6b..f8013cbc0 100644
--- a/samples/springboot3/pet-store/build.gradle
+++ b/samples/springboot3/pet-store/build.gradle
@@ -9,7 +9,7 @@ repositories {
 
 dependencies {
   implementation (
-          implementation('org.springframework.boot:spring-boot-starter-web:3.4.1') {
+          implementation('org.springframework.boot:spring-boot-starter-web:3.4.2') {
             exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat'
           },
           'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)',
diff --git a/samples/springboot3/pet-store/pom.xml b/samples/springboot3/pet-store/pom.xml
index 89f585399..3a1571b3a 100644
--- a/samples/springboot3/pet-store/pom.xml
+++ b/samples/springboot3/pet-store/pom.xml
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.4.1</version>
+        <version>3.4.2</version>
     </parent>
 
     <licenses>

From 817664191be456f53fd92e8c0a4e4b481ecae3ac Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Wed, 29 Jan 2025 14:18:04 +0100
Subject: [PATCH 331/430] fix: Request Parameters not picked up for v1 payload
 format with multivalue headers enabled (#1256)

---
 .../spring/AwsSpringHttpProcessingUtils.java  | 12 +++--
 .../AwsSpringHttpProcessingUtilsTests.java    | 47 +++++++++++++++----
 2 files changed, 47 insertions(+), 12 deletions(-)

diff --git a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtils.java b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtils.java
index 2f547a32d..abcc56b26 100644
--- a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtils.java
+++ b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtils.java
@@ -5,10 +5,12 @@
 import java.nio.charset.StandardCharsets;
 import java.nio.charset.UnsupportedCharsetException;
 import java.util.Base64;
+import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
+import java.util.function.BiConsumer;
 
 import com.amazonaws.serverless.proxy.internal.HttpUtils;
 import org.apache.commons.io.Charsets;
@@ -118,7 +120,11 @@ private static HttpServletRequest generateRequest1(String request, Context lambd
 		
 		ServerlessHttpServletRequest httpRequest = new ServerlessHttpServletRequest(servletContext, v1Request.getHttpMethod(), v1Request.getPath());
 
-		populateQueryStringparameters(v1Request.getQueryStringParameters(), httpRequest);
+		populateQueryStringParameters(v1Request.getQueryStringParameters(), httpRequest);
+		if (v1Request.getMultiValueQueryStringParameters() != null) {
+			MultiValueMapAdapter<String, String> queryStringParameters = new MultiValueMapAdapter(v1Request.getMultiValueQueryStringParameters());
+			queryStringParameters.forEach((k, v) -> httpRequest.setParameter(k, StringUtils.collectionToCommaDelimitedString(v)));
+		}
 		
 		if (v1Request.getMultiValueHeaders() != null) {
 			MultiValueMapAdapter headers = new MultiValueMapAdapter(v1Request.getMultiValueHeaders());
@@ -152,7 +158,7 @@ private static HttpServletRequest generateRequest2(String request, Context lambd
 		
 		ServerlessHttpServletRequest httpRequest = new ServerlessHttpServletRequest(servletContext,
 				v2Request.getRequestContext().getHttp().getMethod(), v2Request.getRequestContext().getHttp().getPath());
-		populateQueryStringparameters(v2Request.getQueryStringParameters(), httpRequest);
+		populateQueryStringParameters(v2Request.getQueryStringParameters(), httpRequest);
 		
 		v2Request.getHeaders().forEach(httpRequest::setHeader);
 
@@ -172,7 +178,7 @@ private static HttpServletRequest generateRequest2(String request, Context lambd
 		return httpRequest;
 	}
 	
-	private static void populateQueryStringparameters(Map<String, String> requestParameters, ServerlessHttpServletRequest httpRequest) {
+	private static void populateQueryStringParameters(Map<String, String> requestParameters, ServerlessHttpServletRequest httpRequest) {
 		if (!CollectionUtils.isEmpty(requestParameters)) {
 			for (Entry<String, String> entry : requestParameters.entrySet()) {
 				httpRequest.setParameter(entry.getKey(), entry.getValue());
diff --git a/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtilsTests.java b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtilsTests.java
index a04361e7e..e3c91acf0 100644
--- a/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtilsTests.java
+++ b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtilsTests.java
@@ -79,15 +79,15 @@ public class AwsSpringHttpProcessingUtilsTests {
             + "    },\n"
             + "    \"queryStringParameters\": {\n"
             + "        \"abc\": \"xyz\",\n"
-            + "        \"foo\": \"baz\"\n"
+            + "        \"parameter1\": \"value2\"\n"
             + "    },\n"
             + "    \"multiValueQueryStringParameters\": {\n"
             + "        \"abc\": [\n"
             + "            \"xyz\"\n"
             + "        ],\n"
-            + "        \"foo\": [\n"
-            + "            \"bar\",\n"
-            + "            \"baz\"\n"
+            + "        \"parameter1\": [\n"
+            + "            \"value1\",\n"
+            + "            \"value2\"\n"
             + "        ]\n"
             + "    },\n"
             + "    \"requestContext\": {\n"
@@ -184,10 +184,35 @@ public class AwsSpringHttpProcessingUtilsTests {
             "  }\n" +
             "}";
 
+	private static final String ALB_EVENT = "{\n" +
+			"    \"requestContext\": {\n" +
+			"        \"elb\": {\n" +
+			"            \"targetGroupArn\": \"arn:aws:elasticloadbalancing:region:123456789012:targetgroup/my-target-group/6d0ecf831eec9f09\"\n" +
+			"        }\n" +
+			"    },\n" +
+			"    \"httpMethod\": \"POST\",\n" +
+			"    \"path\": \"/async\",\n" +
+			"    \"multiValueQueryStringParameters\": { \"parameter1\": [\"value1\", \"value2\"]},\n" +
+			"    \"multiValueHeaders\": {\n" +
+			"        \"accept\": [\"text/html,application/xhtml+xml\"],\n" +
+			"        \"accept-language\": [\"en-US,en;q=0.8\"],\n" +
+			"        \"content-type\": [\"text/plain\"],\n" +
+			"        \"cookie\": [\"cookies\"],\n" +
+			"        \"host\": [\"lambda-846800462-us-east-2.elb.amazonaws.com\"],\n" +
+			"    	 \"User-Agent\": [\"curl/7.79.1\"],\n" +
+			"        \"x-amzn-trace-id\": [\"Root=1-5bdb40ca-556d8b0c50dc66f0511bf520\"],\n" +
+			"        \"x-forwarded-for\": [\"72.21.198.66\"],\n" +
+			"        \"x-forwarded-port\": [\"443\"],\n" +
+			"        \"x-forwarded-proto\": [\"https\"]\n" +
+			"    },\n" +
+			"    \"isBase64Encoded\": false,\n" +
+			"    \"body\": \"request_body\"\n" +
+			"}";
+
     private final ObjectMapper mapper = new ObjectMapper();
 
     public static Collection<String> data() {
-        return Arrays.asList(new String[]{API_GATEWAY_EVENT, API_GATEWAY_EVENT_V2});
+        return Arrays.asList(new String[]{API_GATEWAY_EVENT, API_GATEWAY_EVENT_V2, ALB_EVENT});
     }
 
     @MethodSource("data")
@@ -197,10 +222,17 @@ public void validateHttpServletRequestGenerationWithInputStream(String jsonEvent
 		ServerlessServletContext servletContext = new ServerlessServletContext();
 		HttpServletRequest request = AwsSpringHttpProcessingUtils.generateHttpServletRequest(inputStream, null, servletContext, mapper);
 		// spot check some headers
+		assertRequest(request);
+	}
+
+	private static void assertRequest(HttpServletRequest request) {
 		assertEquals("curl/7.79.1", request.getHeader("User-Agent"));
 		assertEquals("443", request.getHeader("X-Forwarded-Port"));
 		assertEquals("POST", request.getMethod());
 		assertEquals("/async", request.getRequestURI());
+		assertEquals("value1,value2", request.getParameter("parameter1"));
+		// to be fixed: assertArrayEquals(new String[]{"value1","value2"}, request.getParameterValues("parameter1"));
+
 	}
     
     @MethodSource("data")
@@ -209,10 +241,7 @@ public void validateHttpServletRequestGenerationWithJson(String jsonEvent) {
 		ServerlessServletContext servletContext = new ServerlessServletContext();
 		HttpServletRequest request = AwsSpringHttpProcessingUtils.generateHttpServletRequest(jsonEvent, null, servletContext, mapper);
 		// spot check some headers
-		assertEquals("curl/7.79.1", request.getHeader("User-Agent"));
-		assertEquals("443", request.getHeader("X-Forwarded-Port"));
-		assertEquals("POST", request.getMethod());
-		assertEquals("/async", request.getRequestURI());
+		assertRequest(request);
 	}
     
     @MethodSource("data")

From 28fd1c17fc83a074a3a990cbd993de3abcb178ab Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Wed, 29 Jan 2025 14:19:35 +0100
Subject: [PATCH 332/430] fix: Request Parameters not picked up for v1 payload
 format with multivalue headers enabled - removed unused imports (#1256)

---
 .../serverless/proxy/spring/AwsSpringHttpProcessingUtils.java | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtils.java b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtils.java
index abcc56b26..a585feb81 100644
--- a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtils.java
+++ b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtils.java
@@ -3,17 +3,13 @@
 import java.io.InputStream;
 import java.nio.charset.Charset;
 import java.nio.charset.StandardCharsets;
-import java.nio.charset.UnsupportedCharsetException;
 import java.util.Base64;
-import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
-import java.util.function.BiConsumer;
 
 import com.amazonaws.serverless.proxy.internal.HttpUtils;
-import org.apache.commons.io.Charsets;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.springframework.cloud.function.serverless.web.ServerlessHttpServletRequest;

From e7d00bcbc2652fc897844e0402b8311932c3e02e Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 29 Jan 2025 13:35:58 +0000
Subject: [PATCH 333/430] chore(deps): bump commons-codec:commons-codec from
 1.17.2 to 1.18.0

Bumps [commons-codec:commons-codec](https://github.com/apache/commons-codec) from 1.17.2 to 1.18.0.
- [Changelog](https://github.com/apache/commons-codec/blob/master/RELEASE-NOTES.txt)
- [Commits](https://github.com/apache/commons-codec/compare/rel/commons-codec-1.17.2...rel/commons-codec-1.18.0)

---
updated-dependencies:
- dependency-name: commons-codec:commons-codec
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 aws-serverless-java-container-jersey/pom.xml | 2 +-
 aws-serverless-java-container-spring/pom.xml | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/aws-serverless-java-container-jersey/pom.xml b/aws-serverless-java-container-jersey/pom.xml
index c14b1e1e3..80e99330d 100644
--- a/aws-serverless-java-container-jersey/pom.xml
+++ b/aws-serverless-java-container-jersey/pom.xml
@@ -64,7 +64,7 @@
         <dependency>
             <groupId>commons-codec</groupId>
             <artifactId>commons-codec</artifactId>
-            <version>1.17.2</version>
+            <version>1.18.0</version>
             <scope>test</scope>
         </dependency>
 
diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml
index c11dd3ee5..db20a7d4a 100644
--- a/aws-serverless-java-container-spring/pom.xml
+++ b/aws-serverless-java-container-spring/pom.xml
@@ -53,7 +53,7 @@
         <dependency>
             <groupId>commons-codec</groupId>
             <artifactId>commons-codec</artifactId>
-            <version>1.17.2</version>
+            <version>1.18.0</version>
             <scope>test</scope>
         </dependency>
 

From 855d31a962b57243b832447963f1aad3de9e8881 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 3 Feb 2025 05:00:20 +0000
Subject: [PATCH 334/430] chore(deps): bump org.owasp:dependency-check-maven
 from 12.0.1 to 12.0.2

Bumps [org.owasp:dependency-check-maven](https://github.com/jeremylong/DependencyCheck) from 12.0.1 to 12.0.2.
- [Release notes](https://github.com/jeremylong/DependencyCheck/releases)
- [Changelog](https://github.com/jeremylong/DependencyCheck/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jeremylong/DependencyCheck/compare/v12.0.1...v12.0.2)

---
updated-dependencies:
- dependency-name: org.owasp:dependency-check-maven
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 04760f003..346ba57e0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -77,7 +77,7 @@
 
     <properties>
         <jacoco.minCoverage>0.7</jacoco.minCoverage>
-        <dependencyCheck.version>12.0.1</dependencyCheck.version>
+        <dependencyCheck.version>12.0.2</dependencyCheck.version>
         <jackson.version>2.18.2</jackson.version>
         <slf4j.version>2.0.16</slf4j.version>
         <junit.version>5.11.4</junit.version>

From ae43d58535e8b01bb99cc9d5eca62643a9daf5ea Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 3 Feb 2025 05:00:30 +0000
Subject: [PATCH 335/430] chore(deps-dev): bump
 jakarta.validation:jakarta.validation-api

Bumps [jakarta.validation:jakarta.validation-api](https://github.com/jakartaee/validation) from 3.0.2 to 3.1.1.
- [Release notes](https://github.com/jakartaee/validation/releases)
- [Commits](https://github.com/jakartaee/validation/compare/3.0.2...3.1.1)

---
updated-dependencies:
- dependency-name: jakarta.validation:jakarta.validation-api
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 aws-serverless-java-container-springboot3/pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml
index 222126adb..00f356e42 100644
--- a/aws-serverless-java-container-springboot3/pom.xml
+++ b/aws-serverless-java-container-springboot3/pom.xml
@@ -173,7 +173,7 @@
         <dependency>
             <groupId>jakarta.validation</groupId>
             <artifactId>jakarta.validation-api</artifactId>
-            <version>3.0.2</version>
+            <version>3.1.1</version>
             <scope>test</scope>
         </dependency>
 

From 8e11c963627f054a895495205af8b56105ed90e0 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Mon, 3 Feb 2025 06:32:32 +0100
Subject: [PATCH 336/430] chore(deps): update Apache HttpClient to 5.4.2

---
 .github/dependabot.yml                                      | 6 ++++++
 .../src/main/resources/archetype-resources/build.gradle     | 2 +-
 .../src/main/resources/archetype-resources/pom.xml          | 2 +-
 .../src/main/resources/archetype-resources/build.gradle     | 2 +-
 .../src/main/resources/archetype-resources/pom.xml          | 2 +-
 .../src/main/resources/archetype-resources/build.gradle     | 2 +-
 .../src/main/resources/archetype-resources/pom.xml          | 2 +-
 pom.xml                                                     | 2 +-
 8 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/.github/dependabot.yml b/.github/dependabot.yml
index d82be62de..acc835c6f 100644
--- a/.github/dependabot.yml
+++ b/.github/dependabot.yml
@@ -30,6 +30,9 @@ updates:
       maven-install-plugin:
         patterns:
           - "org.apache.maven.plugins:maven-install-plugin"
+      httpclient:
+        patterns:
+          - "org.apache.httpcomponents.client5:*"
     schedule:
       interval: "weekly"
     open-pull-requests-limit: 20
@@ -52,5 +55,8 @@ updates:
       jackson:
         patterns:
           - "com.fasterxml.jackson.*:*"
+      httpclient:
+        patterns:
+          - "org.apache.httpcomponents.client5:*"
     schedule:
       interval: "weekly"
\ No newline at end of file
diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
index 29ef10b04..7160d4a9c 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
@@ -22,7 +22,7 @@ dependencies {
   }
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
-  testImplementation("org.apache.httpcomponents.client5:httpclient5:5.4.1")
+  testImplementation("org.apache.httpcomponents.client5:httpclient5:5.4.2")
   testImplementation(platform("org.junit:junit-bom:5.11.4"))
   testImplementation("org.junit.jupiter:junit-jupiter")
 }
diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
index 2d9b45363..39db2f49e 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
@@ -37,7 +37,7 @@
         <dependency>
             <groupId>org.apache.httpcomponents.client5</groupId>
             <artifactId>httpclient5</artifactId>
-            <version>5.4.1</version>
+            <version>5.4.2</version>
             <scope>test</scope>
         </dependency>
 
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
index da8ea168f..028d3a03e 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
@@ -18,7 +18,7 @@ dependencies {
   )
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
-  testImplementation("org.apache.httpcomponents.client5:httpclient5:5.4.1")
+  testImplementation("org.apache.httpcomponents.client5:httpclient5:5.4.2")
   testImplementation(platform("org.junit:junit-bom:5.11.4"))
   testImplementation("org.junit.jupiter:junit-jupiter")
 }
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
index 0320ee041..890221ffb 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
@@ -38,7 +38,7 @@
         <dependency>
             <groupId>org.apache.httpcomponents.client5</groupId>
             <artifactId>httpclient5</artifactId>
-            <version>5.4.1</version>
+            <version>5.4.2</version>
             <scope>test</scope>
         </dependency>
 
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
index e8e334e2e..c6cb018eb 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
@@ -14,7 +14,7 @@ dependencies {
   )
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
-  testImplementation("org.apache.httpcomponents.client5:httpclient5:5.4.1")
+  testImplementation("org.apache.httpcomponents.client5:httpclient5:5.4.2")
   testImplementation(platform("org.junit:junit-bom:5.11.4"))
   testImplementation("org.junit.jupiter:junit-jupiter")
 }
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
index d0a274282..be6b7b3fb 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
@@ -41,7 +41,7 @@
         <dependency>
             <groupId>org.apache.httpcomponents.client5</groupId>
             <artifactId>httpclient5</artifactId>
-            <version>5.4.1</version>
+            <version>5.4.2</version>
             <scope>test</scope>
         </dependency>
 
diff --git a/pom.xml b/pom.xml
index 346ba57e0..84296f74c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -119,7 +119,7 @@
         <dependency>
             <groupId>org.apache.httpcomponents.client5</groupId>
             <artifactId>httpclient5</artifactId>
-            <version>5.4.1</version>
+            <version>5.4.2</version>
             <scope>test</scope>
         </dependency>
 

From 695dd06b8d0ff6d1686a2018a9c13ca524453bc8 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Tue, 4 Feb 2025 06:28:58 +0100
Subject: [PATCH 337/430] fix: Request Parameters not picked up for v1 payload
 format with multivalue headers enabled (#1256)

---
 .../spring/AwsSpringHttpProcessingUtils.java    |  7 +++++--
 .../AwsSpringHttpProcessingUtilsTests.java      | 17 +++++++++++------
 2 files changed, 16 insertions(+), 8 deletions(-)

diff --git a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtils.java b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtils.java
index a585feb81..69e603348 100644
--- a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtils.java
+++ b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtils.java
@@ -119,7 +119,9 @@ private static HttpServletRequest generateRequest1(String request, Context lambd
 		populateQueryStringParameters(v1Request.getQueryStringParameters(), httpRequest);
 		if (v1Request.getMultiValueQueryStringParameters() != null) {
 			MultiValueMapAdapter<String, String> queryStringParameters = new MultiValueMapAdapter(v1Request.getMultiValueQueryStringParameters());
-			queryStringParameters.forEach((k, v) -> httpRequest.setParameter(k, StringUtils.collectionToCommaDelimitedString(v)));
+			queryStringParameters.forEach((k, v) -> {
+                httpRequest.setParameter(k, v.toArray(new String[2]));
+            });
 		}
 		
 		if (v1Request.getMultiValueHeaders() != null) {
@@ -155,7 +157,7 @@ private static HttpServletRequest generateRequest2(String request, Context lambd
 		ServerlessHttpServletRequest httpRequest = new ServerlessHttpServletRequest(servletContext,
 				v2Request.getRequestContext().getHttp().getMethod(), v2Request.getRequestContext().getHttp().getPath());
 		populateQueryStringParameters(v2Request.getQueryStringParameters(), httpRequest);
-		
+
 		v2Request.getHeaders().forEach(httpRequest::setHeader);
 
         populateContentAndContentType(
@@ -177,6 +179,7 @@ private static HttpServletRequest generateRequest2(String request, Context lambd
 	private static void populateQueryStringParameters(Map<String, String> requestParameters, ServerlessHttpServletRequest httpRequest) {
 		if (!CollectionUtils.isEmpty(requestParameters)) {
 			for (Entry<String, String> entry : requestParameters.entrySet()) {
+				// fix according to parseRawQueryString
 				httpRequest.setParameter(entry.getKey(), entry.getValue());
 			}
 		}
diff --git a/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtilsTests.java b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtilsTests.java
index e3c91acf0..241e86805 100644
--- a/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtilsTests.java
+++ b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtilsTests.java
@@ -1,12 +1,12 @@
 package com.amazonaws.serverless.proxy.spring;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
 import java.io.ByteArrayInputStream;
 import java.nio.charset.StandardCharsets;
 import java.util.Arrays;
 import java.util.Collection;
 
+import com.amazonaws.serverless.proxy.RequestReader;
+import com.amazonaws.serverless.proxy.model.HttpApiV2ProxyRequest;
 import org.junit.jupiter.params.ParameterizedTest;
 import org.junit.jupiter.params.provider.MethodSource;
 import org.springframework.boot.SpringApplication;
@@ -30,6 +30,8 @@
 
 import jakarta.servlet.http.HttpServletRequest;
 
+import static org.junit.jupiter.api.Assertions.*;
+
 public class AwsSpringHttpProcessingUtilsTests {
 	
 	private static String API_GATEWAY_EVENT = "{\n"
@@ -221,7 +223,6 @@ public void validateHttpServletRequestGenerationWithInputStream(String jsonEvent
 		ByteArrayInputStream inputStream = new ByteArrayInputStream(jsonEvent.getBytes(StandardCharsets.UTF_8));
 		ServerlessServletContext servletContext = new ServerlessServletContext();
 		HttpServletRequest request = AwsSpringHttpProcessingUtils.generateHttpServletRequest(inputStream, null, servletContext, mapper);
-		// spot check some headers
 		assertRequest(request);
 	}
 
@@ -230,9 +231,13 @@ private static void assertRequest(HttpServletRequest request) {
 		assertEquals("443", request.getHeader("X-Forwarded-Port"));
 		assertEquals("POST", request.getMethod());
 		assertEquals("/async", request.getRequestURI());
-		assertEquals("value1,value2", request.getParameter("parameter1"));
-		// to be fixed: assertArrayEquals(new String[]{"value1","value2"}, request.getParameterValues("parameter1"));
-
+		assertNotNull(request.getServletContext());
+		// parameter handling for 2.0 requests is currently not spec compliant and to be fixed in future version
+		// see also GitHub issue
+		if (!(request.getAttribute(RequestReader.HTTP_API_EVENT_PROPERTY) instanceof HttpApiV2ProxyRequest)) {
+			assertEquals("value1", request.getParameter("parameter1"));
+			assertArrayEquals(new String[]{"value1", "value2"}, request.getParameterValues("parameter1"));
+		}
 	}
     
     @MethodSource("data")

From f37fa4e84044f787957546e2d028e941c33fd7fa Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Tue, 4 Feb 2025 06:52:14 +0100
Subject: [PATCH 338/430] fix: Request Parameters not picked up for v1 payload
 format with multivalue headers enabled (#1256)

---
 .../proxy/spring/AwsSpringHttpProcessingUtils.java        | 2 +-
 .../proxy/spring/AwsSpringHttpProcessingUtilsTests.java   | 2 +-
 .../SpringDelegatingLambdaContainerHandlerTests.java      | 8 ++++----
 3 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtils.java b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtils.java
index 69e603348..09649b31a 100644
--- a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtils.java
+++ b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtils.java
@@ -120,7 +120,7 @@ private static HttpServletRequest generateRequest1(String request, Context lambd
 		if (v1Request.getMultiValueQueryStringParameters() != null) {
 			MultiValueMapAdapter<String, String> queryStringParameters = new MultiValueMapAdapter(v1Request.getMultiValueQueryStringParameters());
 			queryStringParameters.forEach((k, v) -> {
-                httpRequest.setParameter(k, v.toArray(new String[2]));
+                httpRequest.setParameter(k, v.toArray(new String[0]));
             });
 		}
 		
diff --git a/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtilsTests.java b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtilsTests.java
index 241e86805..fa0e92e98 100644
--- a/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtilsTests.java
+++ b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtilsTests.java
@@ -233,7 +233,7 @@ private static void assertRequest(HttpServletRequest request) {
 		assertEquals("/async", request.getRequestURI());
 		assertNotNull(request.getServletContext());
 		// parameter handling for 2.0 requests is currently not spec compliant and to be fixed in future version
-		// see also GitHub issue
+		// see also GitHub issue https://github.com/aws/serverless-java-container/issues/1278
 		if (!(request.getAttribute(RequestReader.HTTP_API_EVENT_PROPERTY) instanceof HttpApiV2ProxyRequest)) {
 			assertEquals("value1", request.getParameter("parameter1"));
 			assertArrayEquals(new String[]{"value1", "value2"}, request.getParameterValues("parameter1"));
diff --git a/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/SpringDelegatingLambdaContainerHandlerTests.java b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/SpringDelegatingLambdaContainerHandlerTests.java
index 61957fe24..02ef21d9e 100644
--- a/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/SpringDelegatingLambdaContainerHandlerTests.java
+++ b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/SpringDelegatingLambdaContainerHandlerTests.java
@@ -215,10 +215,10 @@ public void validateComplesrequest(String jsonEvent) throws Exception {
         handler.handleRequest(targetStream, output, null);
         Map result = mapper.readValue(output.toString(StandardCharsets.UTF_8), Map.class);
         assertEquals(200, result.get("statusCode"));
-        String[] respponseBody = ((String) result.get("body")).split("/");
-        assertEquals("male", respponseBody[0]);
-        assertEquals("24", respponseBody[1]);
-        assertEquals("Ricky", respponseBody[2]);
+        String[] responseBody = ((String) result.get("body")).split("/");
+        assertEquals("male", responseBody[0]);
+        assertEquals("24", responseBody[1]);
+        assertEquals("Ricky", responseBody[2]);
     }
     
     @MethodSource("data")

From aa4b9725e0c45084e4f3338c00d57e1621efcdef Mon Sep 17 00:00:00 2001
From: deki <deki@users.noreply.github.com>
Date: Tue, 4 Feb 2025 06:20:15 +0000
Subject: [PATCH 339/430] chore: release - prepare release
 aws-serverless-java-container-2.1.2

---
 aws-serverless-java-container-core/pom.xml        | 4 ++--
 aws-serverless-java-container-jersey/pom.xml      | 8 ++++----
 aws-serverless-java-container-spring/pom.xml      | 8 ++++----
 aws-serverless-java-container-springboot3/pom.xml | 8 ++++----
 aws-serverless-jersey-archetype/pom.xml           | 6 +++---
 aws-serverless-spring-archetype/pom.xml           | 6 +++---
 aws-serverless-springboot3-archetype/pom.xml      | 6 +++---
 pom.xml                                           | 4 ++--
 8 files changed, 25 insertions(+), 25 deletions(-)

diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml
index 07d60f848..082b097d2 100644
--- a/aws-serverless-java-container-core/pom.xml
+++ b/aws-serverless-java-container-core/pom.xml
@@ -6,12 +6,12 @@
     <name>AWS Serverless Java container support - Core</name>
     <description>Allows Java applications written for a servlet container to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.2.0-SNAPSHOT</version>
+    <version>2.1.2</version>
 
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.2.0-SNAPSHOT</version>
+        <version>2.1.2</version>
         <relativePath>..</relativePath>
     </parent>
 
diff --git a/aws-serverless-java-container-jersey/pom.xml b/aws-serverless-java-container-jersey/pom.xml
index 80e99330d..622dd9b5c 100644
--- a/aws-serverless-java-container-jersey/pom.xml
+++ b/aws-serverless-java-container-jersey/pom.xml
@@ -6,12 +6,12 @@
     <name>AWS Serverless Java container support - Jersey implementation</name>
     <description>Allows Java applications written for Jersey to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.2.0-SNAPSHOT</version>
+    <version>2.1.2</version>
 
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.2.0-SNAPSHOT</version>
+        <version>2.1.2</version>
         <relativePath>..</relativePath>
     </parent>
 
@@ -24,7 +24,7 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.2.0-SNAPSHOT</version>
+            <version>2.1.2</version>
             <exclusions>
                 <exclusion>
                     <groupId>com.fasterxml.jackson.core</groupId>
@@ -35,7 +35,7 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.2.0-SNAPSHOT</version>
+            <version>2.1.2</version>
             <classifier>tests</classifier>
             <type>test-jar</type>
             <scope>test</scope>
diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml
index db20a7d4a..eb235e8db 100644
--- a/aws-serverless-java-container-spring/pom.xml
+++ b/aws-serverless-java-container-spring/pom.xml
@@ -6,12 +6,12 @@
     <name>AWS Serverless Java container support - Spring implementation</name>
     <description>Allows Java applications written for the Spring framework to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.2.0-SNAPSHOT</version>
+    <version>2.1.2</version>
 
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.2.0-SNAPSHOT</version>
+        <version>2.1.2</version>
         <relativePath>..</relativePath>
     </parent>
 
@@ -25,12 +25,12 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.2.0-SNAPSHOT</version>
+            <version>2.1.2</version>
         </dependency>
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.2.0-SNAPSHOT</version>
+            <version>2.1.2</version>
             <classifier>tests</classifier>
             <type>test-jar</type>
             <scope>test</scope>
diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml
index 222126adb..1b89f5f60 100644
--- a/aws-serverless-java-container-springboot3/pom.xml
+++ b/aws-serverless-java-container-springboot3/pom.xml
@@ -3,7 +3,7 @@
     <parent>
         <artifactId>aws-serverless-java-container</artifactId>
         <groupId>com.amazonaws.serverless</groupId>
-        <version>2.2.0-SNAPSHOT</version>
+        <version>2.1.2</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
@@ -12,7 +12,7 @@
     <name>AWS Serverless Java container support - SpringBoot 3 implementation</name>
     <description>Allows Java applications written for SpringBoot 3 to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.2.0-SNAPSHOT</version>
+    <version>2.1.2</version>
 
     <properties>
         <spring.version>6.2.2</spring.version>
@@ -30,12 +30,12 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.2.0-SNAPSHOT</version>
+            <version>2.1.2</version>
         </dependency>
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.2.0-SNAPSHOT</version>
+            <version>2.1.2</version>
             <classifier>tests</classifier>
             <type>test-jar</type>
             <scope>test</scope>
diff --git a/aws-serverless-jersey-archetype/pom.xml b/aws-serverless-jersey-archetype/pom.xml
index 412459c41..35ad5657a 100644
--- a/aws-serverless-jersey-archetype/pom.xml
+++ b/aws-serverless-jersey-archetype/pom.xml
@@ -4,17 +4,17 @@
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.2.0-SNAPSHOT</version>
+        <version>2.1.2</version>
     </parent>
 
     <groupId>com.amazonaws.serverless.archetypes</groupId>
     <artifactId>aws-serverless-jersey-archetype</artifactId>
-    <version>2.2.0-SNAPSHOT</version>
+    <version>2.1.2</version>
     <packaging>maven-archetype</packaging>
 
     <scm>
         <url>https://github.com/aws/serverless-java-container.git</url>
-      <tag>HEAD</tag>
+      <tag>aws-serverless-java-container-2.1.2</tag>
   </scm>
 
     <licenses>
diff --git a/aws-serverless-spring-archetype/pom.xml b/aws-serverless-spring-archetype/pom.xml
index 8b95c5332..06cd2e68f 100644
--- a/aws-serverless-spring-archetype/pom.xml
+++ b/aws-serverless-spring-archetype/pom.xml
@@ -4,17 +4,17 @@
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.2.0-SNAPSHOT</version>
+        <version>2.1.2</version>
     </parent>
 
     <groupId>com.amazonaws.serverless.archetypes</groupId>
     <artifactId>aws-serverless-spring-archetype</artifactId>
-    <version>2.2.0-SNAPSHOT</version>
+    <version>2.1.2</version>
     <packaging>maven-archetype</packaging>
 
     <scm>
         <url>https://github.com/aws/serverless-java-container.git</url>
-      <tag>HEAD</tag>
+      <tag>aws-serverless-java-container-2.1.2</tag>
   </scm>
 
     <licenses>
diff --git a/aws-serverless-springboot3-archetype/pom.xml b/aws-serverless-springboot3-archetype/pom.xml
index 89469c2e4..9b52b1961 100644
--- a/aws-serverless-springboot3-archetype/pom.xml
+++ b/aws-serverless-springboot3-archetype/pom.xml
@@ -4,17 +4,17 @@
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.2.0-SNAPSHOT</version>
+        <version>2.1.2</version>
     </parent>
 
     <groupId>com.amazonaws.serverless.archetypes</groupId>
     <artifactId>aws-serverless-springboot3-archetype</artifactId>
-    <version>2.2.0-SNAPSHOT</version>
+    <version>2.1.2</version>
     <packaging>maven-archetype</packaging>
 
     <scm>
         <url>https://github.com/aws/serverless-java-container.git</url>
-      <tag>HEAD</tag>
+      <tag>aws-serverless-java-container-2.1.2</tag>
   </scm>
 
     <licenses>
diff --git a/pom.xml b/pom.xml
index 84296f74c..167e2419b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
     <groupId>com.amazonaws.serverless</groupId>
     <artifactId>aws-serverless-java-container</artifactId>
     <packaging>pom</packaging>
-    <version>2.2.0-SNAPSHOT</version>
+    <version>2.1.2</version>
     <name>AWS Serverless Java container</name>
     <description>A Java framework to run Spring, Spring Boot, Jersey, Spark, and Struts applications inside AWS Lambda</description>
     <url>https://github.com/aws/serverless-java-container</url>
@@ -37,7 +37,7 @@
     <scm>
         <url>https://github.com/aws/serverless-java-container</url>
         <connection>scm:git:https://github.com/aws/serverless-java-container.git</connection>
-      <tag>HEAD</tag>
+      <tag>aws-serverless-java-container-2.1.2</tag>
     </scm>
 
     <repositories>

From c1e60ebe87f9fa057416e874c9d7aa286109864a Mon Sep 17 00:00:00 2001
From: deki <deki@users.noreply.github.com>
Date: Tue, 4 Feb 2025 06:20:17 +0000
Subject: [PATCH 340/430] chore: release - prepare for next development
 iteration

---
 aws-serverless-java-container-core/pom.xml        | 4 ++--
 aws-serverless-java-container-jersey/pom.xml      | 8 ++++----
 aws-serverless-java-container-spring/pom.xml      | 8 ++++----
 aws-serverless-java-container-springboot3/pom.xml | 8 ++++----
 aws-serverless-jersey-archetype/pom.xml           | 6 +++---
 aws-serverless-spring-archetype/pom.xml           | 6 +++---
 aws-serverless-springboot3-archetype/pom.xml      | 6 +++---
 pom.xml                                           | 4 ++--
 8 files changed, 25 insertions(+), 25 deletions(-)

diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml
index 082b097d2..07d60f848 100644
--- a/aws-serverless-java-container-core/pom.xml
+++ b/aws-serverless-java-container-core/pom.xml
@@ -6,12 +6,12 @@
     <name>AWS Serverless Java container support - Core</name>
     <description>Allows Java applications written for a servlet container to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.1.2</version>
+    <version>2.2.0-SNAPSHOT</version>
 
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.1.2</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>..</relativePath>
     </parent>
 
diff --git a/aws-serverless-java-container-jersey/pom.xml b/aws-serverless-java-container-jersey/pom.xml
index 622dd9b5c..80e99330d 100644
--- a/aws-serverless-java-container-jersey/pom.xml
+++ b/aws-serverless-java-container-jersey/pom.xml
@@ -6,12 +6,12 @@
     <name>AWS Serverless Java container support - Jersey implementation</name>
     <description>Allows Java applications written for Jersey to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.1.2</version>
+    <version>2.2.0-SNAPSHOT</version>
 
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.1.2</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>..</relativePath>
     </parent>
 
@@ -24,7 +24,7 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.1.2</version>
+            <version>2.2.0-SNAPSHOT</version>
             <exclusions>
                 <exclusion>
                     <groupId>com.fasterxml.jackson.core</groupId>
@@ -35,7 +35,7 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.1.2</version>
+            <version>2.2.0-SNAPSHOT</version>
             <classifier>tests</classifier>
             <type>test-jar</type>
             <scope>test</scope>
diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml
index eb235e8db..db20a7d4a 100644
--- a/aws-serverless-java-container-spring/pom.xml
+++ b/aws-serverless-java-container-spring/pom.xml
@@ -6,12 +6,12 @@
     <name>AWS Serverless Java container support - Spring implementation</name>
     <description>Allows Java applications written for the Spring framework to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.1.2</version>
+    <version>2.2.0-SNAPSHOT</version>
 
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.1.2</version>
+        <version>2.2.0-SNAPSHOT</version>
         <relativePath>..</relativePath>
     </parent>
 
@@ -25,12 +25,12 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.1.2</version>
+            <version>2.2.0-SNAPSHOT</version>
         </dependency>
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.1.2</version>
+            <version>2.2.0-SNAPSHOT</version>
             <classifier>tests</classifier>
             <type>test-jar</type>
             <scope>test</scope>
diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml
index 1b89f5f60..222126adb 100644
--- a/aws-serverless-java-container-springboot3/pom.xml
+++ b/aws-serverless-java-container-springboot3/pom.xml
@@ -3,7 +3,7 @@
     <parent>
         <artifactId>aws-serverless-java-container</artifactId>
         <groupId>com.amazonaws.serverless</groupId>
-        <version>2.1.2</version>
+        <version>2.2.0-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
@@ -12,7 +12,7 @@
     <name>AWS Serverless Java container support - SpringBoot 3 implementation</name>
     <description>Allows Java applications written for SpringBoot 3 to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.1.2</version>
+    <version>2.2.0-SNAPSHOT</version>
 
     <properties>
         <spring.version>6.2.2</spring.version>
@@ -30,12 +30,12 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.1.2</version>
+            <version>2.2.0-SNAPSHOT</version>
         </dependency>
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.1.2</version>
+            <version>2.2.0-SNAPSHOT</version>
             <classifier>tests</classifier>
             <type>test-jar</type>
             <scope>test</scope>
diff --git a/aws-serverless-jersey-archetype/pom.xml b/aws-serverless-jersey-archetype/pom.xml
index 35ad5657a..412459c41 100644
--- a/aws-serverless-jersey-archetype/pom.xml
+++ b/aws-serverless-jersey-archetype/pom.xml
@@ -4,17 +4,17 @@
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.1.2</version>
+        <version>2.2.0-SNAPSHOT</version>
     </parent>
 
     <groupId>com.amazonaws.serverless.archetypes</groupId>
     <artifactId>aws-serverless-jersey-archetype</artifactId>
-    <version>2.1.2</version>
+    <version>2.2.0-SNAPSHOT</version>
     <packaging>maven-archetype</packaging>
 
     <scm>
         <url>https://github.com/aws/serverless-java-container.git</url>
-      <tag>aws-serverless-java-container-2.1.2</tag>
+      <tag>HEAD</tag>
   </scm>
 
     <licenses>
diff --git a/aws-serverless-spring-archetype/pom.xml b/aws-serverless-spring-archetype/pom.xml
index 06cd2e68f..8b95c5332 100644
--- a/aws-serverless-spring-archetype/pom.xml
+++ b/aws-serverless-spring-archetype/pom.xml
@@ -4,17 +4,17 @@
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.1.2</version>
+        <version>2.2.0-SNAPSHOT</version>
     </parent>
 
     <groupId>com.amazonaws.serverless.archetypes</groupId>
     <artifactId>aws-serverless-spring-archetype</artifactId>
-    <version>2.1.2</version>
+    <version>2.2.0-SNAPSHOT</version>
     <packaging>maven-archetype</packaging>
 
     <scm>
         <url>https://github.com/aws/serverless-java-container.git</url>
-      <tag>aws-serverless-java-container-2.1.2</tag>
+      <tag>HEAD</tag>
   </scm>
 
     <licenses>
diff --git a/aws-serverless-springboot3-archetype/pom.xml b/aws-serverless-springboot3-archetype/pom.xml
index 9b52b1961..89469c2e4 100644
--- a/aws-serverless-springboot3-archetype/pom.xml
+++ b/aws-serverless-springboot3-archetype/pom.xml
@@ -4,17 +4,17 @@
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.1.2</version>
+        <version>2.2.0-SNAPSHOT</version>
     </parent>
 
     <groupId>com.amazonaws.serverless.archetypes</groupId>
     <artifactId>aws-serverless-springboot3-archetype</artifactId>
-    <version>2.1.2</version>
+    <version>2.2.0-SNAPSHOT</version>
     <packaging>maven-archetype</packaging>
 
     <scm>
         <url>https://github.com/aws/serverless-java-container.git</url>
-      <tag>aws-serverless-java-container-2.1.2</tag>
+      <tag>HEAD</tag>
   </scm>
 
     <licenses>
diff --git a/pom.xml b/pom.xml
index 167e2419b..84296f74c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
     <groupId>com.amazonaws.serverless</groupId>
     <artifactId>aws-serverless-java-container</artifactId>
     <packaging>pom</packaging>
-    <version>2.1.2</version>
+    <version>2.2.0-SNAPSHOT</version>
     <name>AWS Serverless Java container</name>
     <description>A Java framework to run Spring, Spring Boot, Jersey, Spark, and Struts applications inside AWS Lambda</description>
     <url>https://github.com/aws/serverless-java-container</url>
@@ -37,7 +37,7 @@
     <scm>
         <url>https://github.com/aws/serverless-java-container</url>
         <connection>scm:git:https://github.com/aws/serverless-java-container.git</connection>
-      <tag>aws-serverless-java-container-2.1.2</tag>
+      <tag>HEAD</tag>
     </scm>
 
     <repositories>

From 0a53702d7f2424af902d31ff2cca615661e6139c Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 10 Feb 2025 04:53:19 +0000
Subject: [PATCH 341/430] chore(deps): bump
 com.github.spotbugs:spotbugs-annotations

Bumps [com.github.spotbugs:spotbugs-annotations](https://github.com/spotbugs/spotbugs) from 4.9.0 to 4.9.1.
- [Release notes](https://github.com/spotbugs/spotbugs/releases)
- [Changelog](https://github.com/spotbugs/spotbugs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/spotbugs/spotbugs/compare/4.9.0...4.9.1)

---
updated-dependencies:
- dependency-name: com.github.spotbugs:spotbugs-annotations
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 84296f74c..f1a94ebd7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -140,7 +140,7 @@
         <dependency>
             <groupId>com.github.spotbugs</groupId>
             <artifactId>spotbugs-annotations</artifactId>
-            <version>4.9.0</version>
+            <version>4.9.1</version>
             <scope>provided</scope>
         </dependency>
     </dependencies>

From 469f174ec61dd6ca30c9f4fda0a98ff75eeaf9b3 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 10 Feb 2025 04:53:34 +0000
Subject: [PATCH 342/430] chore(deps): bump
 com.github.spotbugs:spotbugs-annotations

Bumps [com.github.spotbugs:spotbugs-annotations](https://github.com/spotbugs/spotbugs) from 4.9.0 to 4.9.1.
- [Release notes](https://github.com/spotbugs/spotbugs/releases)
- [Changelog](https://github.com/spotbugs/spotbugs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/spotbugs/spotbugs/compare/4.9.0...4.9.1)

---
updated-dependencies:
- dependency-name: com.github.spotbugs:spotbugs-annotations
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 84296f74c..f1a94ebd7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -140,7 +140,7 @@
         <dependency>
             <groupId>com.github.spotbugs</groupId>
             <artifactId>spotbugs-annotations</artifactId>
-            <version>4.9.0</version>
+            <version>4.9.1</version>
             <scope>provided</scope>
         </dependency>
     </dependencies>

From 69ebbcfe99c587978b5841c831799ea010416e87 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 10 Feb 2025 04:53:44 +0000
Subject: [PATCH 343/430] chore(deps): bump
 com.github.spotbugs:spotbugs-annotations

Bumps [com.github.spotbugs:spotbugs-annotations](https://github.com/spotbugs/spotbugs) from 4.9.0 to 4.9.1.
- [Release notes](https://github.com/spotbugs/spotbugs/releases)
- [Changelog](https://github.com/spotbugs/spotbugs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/spotbugs/spotbugs/compare/4.9.0...4.9.1)

---
updated-dependencies:
- dependency-name: com.github.spotbugs:spotbugs-annotations
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 84296f74c..f1a94ebd7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -140,7 +140,7 @@
         <dependency>
             <groupId>com.github.spotbugs</groupId>
             <artifactId>spotbugs-annotations</artifactId>
-            <version>4.9.0</version>
+            <version>4.9.1</version>
             <scope>provided</scope>
         </dependency>
     </dependencies>

From 37f196f45116edd115160f69bb39378a56f1f546 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 10 Feb 2025 04:53:50 +0000
Subject: [PATCH 344/430] chore(deps): bump
 com.github.spotbugs:spotbugs-annotations

Bumps [com.github.spotbugs:spotbugs-annotations](https://github.com/spotbugs/spotbugs) from 4.9.0 to 4.9.1.
- [Release notes](https://github.com/spotbugs/spotbugs/releases)
- [Changelog](https://github.com/spotbugs/spotbugs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/spotbugs/spotbugs/compare/4.9.0...4.9.1)

---
updated-dependencies:
- dependency-name: com.github.spotbugs:spotbugs-annotations
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 84296f74c..f1a94ebd7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -140,7 +140,7 @@
         <dependency>
             <groupId>com.github.spotbugs</groupId>
             <artifactId>spotbugs-annotations</artifactId>
-            <version>4.9.0</version>
+            <version>4.9.1</version>
             <scope>provided</scope>
         </dependency>
     </dependencies>

From ca4c143fe2092fb73695d13596e2add70040ca32 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 10 Feb 2025 04:53:56 +0000
Subject: [PATCH 345/430] chore(deps): bump
 com.github.spotbugs:spotbugs-annotations

Bumps [com.github.spotbugs:spotbugs-annotations](https://github.com/spotbugs/spotbugs) from 4.9.0 to 4.9.1.
- [Release notes](https://github.com/spotbugs/spotbugs/releases)
- [Changelog](https://github.com/spotbugs/spotbugs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/spotbugs/spotbugs/compare/4.9.0...4.9.1)

---
updated-dependencies:
- dependency-name: com.github.spotbugs:spotbugs-annotations
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 84296f74c..f1a94ebd7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -140,7 +140,7 @@
         <dependency>
             <groupId>com.github.spotbugs</groupId>
             <artifactId>spotbugs-annotations</artifactId>
-            <version>4.9.0</version>
+            <version>4.9.1</version>
             <scope>provided</scope>
         </dependency>
     </dependencies>

From 8591e21c20ca55f341b3af902eb995690f3c1d95 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 10 Feb 2025 04:54:16 +0000
Subject: [PATCH 346/430] chore(deps): bump
 com.github.spotbugs:spotbugs-annotations

Bumps [com.github.spotbugs:spotbugs-annotations](https://github.com/spotbugs/spotbugs) from 4.9.0 to 4.9.1.
- [Release notes](https://github.com/spotbugs/spotbugs/releases)
- [Changelog](https://github.com/spotbugs/spotbugs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/spotbugs/spotbugs/compare/4.9.0...4.9.1)

---
updated-dependencies:
- dependency-name: com.github.spotbugs:spotbugs-annotations
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 84296f74c..f1a94ebd7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -140,7 +140,7 @@
         <dependency>
             <groupId>com.github.spotbugs</groupId>
             <artifactId>spotbugs-annotations</artifactId>
-            <version>4.9.0</version>
+            <version>4.9.1</version>
             <scope>provided</scope>
         </dependency>
     </dependencies>

From 7ecbd74add0dde816b84e754862142dcc5e59c0c Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 10 Feb 2025 04:54:21 +0000
Subject: [PATCH 347/430] chore(deps): bump
 com.github.spotbugs:spotbugs-annotations

Bumps [com.github.spotbugs:spotbugs-annotations](https://github.com/spotbugs/spotbugs) from 4.9.0 to 4.9.1.
- [Release notes](https://github.com/spotbugs/spotbugs/releases)
- [Changelog](https://github.com/spotbugs/spotbugs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/spotbugs/spotbugs/compare/4.9.0...4.9.1)

---
updated-dependencies:
- dependency-name: com.github.spotbugs:spotbugs-annotations
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 84296f74c..f1a94ebd7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -140,7 +140,7 @@
         <dependency>
             <groupId>com.github.spotbugs</groupId>
             <artifactId>spotbugs-annotations</artifactId>
-            <version>4.9.0</version>
+            <version>4.9.1</version>
             <scope>provided</scope>
         </dependency>
     </dependencies>

From eb73394e79e51bdbb0bfc2ffca176a02e362f369 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 10 Feb 2025 04:54:34 +0000
Subject: [PATCH 348/430] chore(deps): bump
 com.github.spotbugs:spotbugs-annotations

Bumps [com.github.spotbugs:spotbugs-annotations](https://github.com/spotbugs/spotbugs) from 4.9.0 to 4.9.1.
- [Release notes](https://github.com/spotbugs/spotbugs/releases)
- [Changelog](https://github.com/spotbugs/spotbugs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/spotbugs/spotbugs/compare/4.9.0...4.9.1)

---
updated-dependencies:
- dependency-name: com.github.spotbugs:spotbugs-annotations
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 84296f74c..f1a94ebd7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -140,7 +140,7 @@
         <dependency>
             <groupId>com.github.spotbugs</groupId>
             <artifactId>spotbugs-annotations</artifactId>
-            <version>4.9.0</version>
+            <version>4.9.1</version>
             <scope>provided</scope>
         </dependency>
     </dependencies>

From 4b5a6b43845429b391d2cb3fcb43c3802943c717 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sun, 16 Feb 2025 08:33:25 +0000
Subject: [PATCH 349/430] chore(deps): bump
 com.github.spotbugs:spotbugs-maven-plugin

Bumps [com.github.spotbugs:spotbugs-maven-plugin](https://github.com/spotbugs/spotbugs-maven-plugin) from 4.8.6.6 to 4.9.1.0.
- [Release notes](https://github.com/spotbugs/spotbugs-maven-plugin/releases)
- [Commits](https://github.com/spotbugs/spotbugs-maven-plugin/compare/spotbugs-maven-plugin-4.8.6.6...spotbugs-maven-plugin-4.9.1.0)

---
updated-dependencies:
- dependency-name: com.github.spotbugs:spotbugs-maven-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index f1a94ebd7..f9e17538e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -249,7 +249,7 @@
                 <plugin>
                     <groupId>com.github.spotbugs</groupId>
                     <artifactId>spotbugs-maven-plugin</artifactId>
-                    <version>4.8.6.6</version>
+                    <version>4.9.1.0</version>
                     <configuration>
                         <!--
                             Enables analysis which takes more memory but finds more bugs.

From 931a12138462ea2d387f15c24bc015e4a0e9f2e6 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sun, 16 Feb 2025 08:35:02 +0000
Subject: [PATCH 350/430] chore(deps): bump
 com.amazonaws:aws-lambda-java-events

Bumps [com.amazonaws:aws-lambda-java-events](https://github.com/aws/aws-lambda-java-libs) from 3.14.0 to 3.15.0.
- [Commits](https://github.com/aws/aws-lambda-java-libs/commits)

---
updated-dependencies:
- dependency-name: com.amazonaws:aws-lambda-java-events
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 samples/springboot3/pet-store-native/pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/samples/springboot3/pet-store-native/pom.xml b/samples/springboot3/pet-store-native/pom.xml
index d8ee426a5..14de9389f 100644
--- a/samples/springboot3/pet-store-native/pom.xml
+++ b/samples/springboot3/pet-store-native/pom.xml
@@ -36,7 +36,7 @@
 		<dependency>
 			<groupId>com.amazonaws</groupId>
 			<artifactId>aws-lambda-java-events</artifactId>
-			<version>3.14.0</version>
+			<version>3.15.0</version>
 		</dependency>
 		<dependency>
 			<groupId>com.amazonaws</groupId>

From 54a4db18e6a0303efc70c35a61883662862bcdbe Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 17 Feb 2025 04:47:28 +0000
Subject: [PATCH 351/430] chore(deps): bump org.owasp:dependency-check-maven
 from 12.0.2 to 12.1.0

Bumps [org.owasp:dependency-check-maven](https://github.com/jeremylong/DependencyCheck) from 12.0.2 to 12.1.0.
- [Release notes](https://github.com/jeremylong/DependencyCheck/releases)
- [Changelog](https://github.com/jeremylong/DependencyCheck/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jeremylong/DependencyCheck/compare/v12.0.2...v12.1.0)

---
updated-dependencies:
- dependency-name: org.owasp:dependency-check-maven
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index f1a94ebd7..a1f193cb3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -77,7 +77,7 @@
 
     <properties>
         <jacoco.minCoverage>0.7</jacoco.minCoverage>
-        <dependencyCheck.version>12.0.2</dependencyCheck.version>
+        <dependencyCheck.version>12.1.0</dependencyCheck.version>
         <jackson.version>2.18.2</jackson.version>
         <slf4j.version>2.0.16</slf4j.version>
         <junit.version>5.11.4</junit.version>

From d336c92799488199b5872920ab66e3cde259eb88 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Thu, 20 Feb 2025 17:15:11 +0000
Subject: [PATCH 352/430] chore(deps): bump
 org.apache.maven.plugins:maven-clean-plugin

Bumps [org.apache.maven.plugins:maven-clean-plugin](https://github.com/apache/maven-clean-plugin) from 3.4.0 to 3.4.1.
- [Release notes](https://github.com/apache/maven-clean-plugin/releases)
- [Commits](https://github.com/apache/maven-clean-plugin/compare/maven-clean-plugin-3.4.0...maven-clean-plugin-3.4.1)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-clean-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 3ccf85061..1ccf270ea 100644
--- a/pom.xml
+++ b/pom.xml
@@ -211,7 +211,7 @@
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-clean-plugin</artifactId>
-                    <version>3.4.0</version>
+                    <version>3.4.1</version>
                 </plugin>
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>

From b04d2eb08287f7c2af840f0ec75a84287863c1ae Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Thu, 20 Feb 2025 20:22:58 +0100
Subject: [PATCH 353/430] chore(deps): Update Spring dependencies (framework to
 6.2.3, security to 6.4.3, boot to 3.4.3)

---
 aws-serverless-java-container-core/pom.xml                  | 2 +-
 aws-serverless-java-container-spring/pom.xml                | 4 ++--
 aws-serverless-java-container-springboot3/pom.xml           | 6 +++---
 .../src/main/resources/archetype-resources/build.gradle     | 4 ++--
 .../src/main/resources/archetype-resources/pom.xml          | 2 +-
 .../src/main/resources/archetype-resources/build.gradle     | 2 +-
 .../src/main/resources/archetype-resources/pom.xml          | 2 +-
 samples/spring/pet-store/build.gradle                       | 4 ++--
 samples/spring/pet-store/pom.xml                            | 2 +-
 samples/springboot3/alt-pet-store/build.gradle              | 2 +-
 samples/springboot3/alt-pet-store/pom.xml                   | 2 +-
 samples/springboot3/graphql-pet-store/pom.xml               | 2 +-
 samples/springboot3/pet-store-native/pom.xml                | 2 +-
 samples/springboot3/pet-store/build.gradle                  | 2 +-
 samples/springboot3/pet-store/pom.xml                       | 2 +-
 15 files changed, 20 insertions(+), 20 deletions(-)

diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml
index 07d60f848..dd42290ac 100644
--- a/aws-serverless-java-container-core/pom.xml
+++ b/aws-serverless-java-container-core/pom.xml
@@ -60,7 +60,7 @@
         <dependency>
             <groupId>org.springframework.security</groupId>
             <artifactId>spring-security-web</artifactId>
-            <version>6.4.2</version>
+            <version>6.4.3</version>
             <scope>test</scope>
         </dependency>
     </dependencies>
diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml
index db20a7d4a..35645e517 100644
--- a/aws-serverless-java-container-spring/pom.xml
+++ b/aws-serverless-java-container-spring/pom.xml
@@ -16,8 +16,8 @@
     </parent>
 
     <properties>
-        <spring.version>6.2.2</spring.version>
-        <spring-security.version>6.4.2</spring-security.version>
+        <spring.version>6.2.3</spring.version>
+        <spring-security.version>6.4.3</spring-security.version>
     </properties>
 
     <dependencies>
diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml
index 222126adb..481b13f17 100644
--- a/aws-serverless-java-container-springboot3/pom.xml
+++ b/aws-serverless-java-container-springboot3/pom.xml
@@ -15,9 +15,9 @@
     <version>2.2.0-SNAPSHOT</version>
 
     <properties>
-        <spring.version>6.2.2</spring.version>
-        <springboot.version>3.4.2</springboot.version>
-        <springsecurity.version>6.4.2</springsecurity.version>
+        <spring.version>6.2.3</spring.version>
+        <springboot.version>3.4.3</springboot.version>
+        <springsecurity.version>6.4.3</springsecurity.version>
     </properties>
 
     <dependencies>
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
index 028d3a03e..3cbd0d915 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
@@ -7,8 +7,8 @@ repositories {
 
 dependencies {
   implementation (
-          'org.springframework:spring-webmvc:6.2.2',
-          'org.springframework:spring-context:6.2.2',
+          'org.springframework:spring-webmvc:6.2.3',
+          'org.springframework:spring-context:6.2.3',
           'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)',
           'org.apache.logging.log4j:log4j-core:2.24.3',
           'org.apache.logging.log4j:log4j-api:2.24.3',
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
index 890221ffb..a8ec02c33 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
@@ -16,7 +16,7 @@
     <properties>
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
-        <spring.version>6.2.2</spring.version>
+        <spring.version>6.2.3</spring.version>
         <junit.version>5.11.4</junit.version>
         <log4j.version>2.24.2</log4j.version>
     </properties>
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
index c6cb018eb..b7a228b56 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
@@ -9,7 +9,7 @@ repositories {
 
 dependencies {
   implementation (
-          'org.springframework.boot:spring-boot-starter-web:3.4.2',
+          'org.springframework.boot:spring-boot-starter-web:3.4.3',
           'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)',
   )
 
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
index be6b7b3fb..2398fb95c 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
@@ -16,7 +16,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.4.2</version>
+        <version>3.4.3</version>
     </parent>
 
     <properties>
diff --git a/samples/spring/pet-store/build.gradle b/samples/spring/pet-store/build.gradle
index 44f81a73a..00ff6ceb7 100644
--- a/samples/spring/pet-store/build.gradle
+++ b/samples/spring/pet-store/build.gradle
@@ -7,8 +7,8 @@ repositories {
 
 dependencies {
   implementation (
-          'org.springframework:spring-webmvc:6.2.2',
-          'org.springframework:spring-context:6.2.2',
+          'org.springframework:spring-webmvc:6.2.3',
+          'org.springframework:spring-context:6.2.3',
           'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)',
           'org.apache.logging.log4j:log4j-core:2.24.3',
           'org.apache.logging.log4j:log4j-api:2.24.3',
diff --git a/samples/spring/pet-store/pom.xml b/samples/spring/pet-store/pom.xml
index 85dd93d3a..29a00117b 100644
--- a/samples/spring/pet-store/pom.xml
+++ b/samples/spring/pet-store/pom.xml
@@ -24,7 +24,7 @@
     </licenses>
 
     <properties>
-        <spring.version>6.2.2</spring.version>
+        <spring.version>6.2.3</spring.version>
         <log4j.version>2.24.3</log4j.version>
         <maven.compiler.source>17</maven.compiler.source>
         <maven.compiler.target>17</maven.compiler.target>
diff --git a/samples/springboot3/alt-pet-store/build.gradle b/samples/springboot3/alt-pet-store/build.gradle
index f8013cbc0..c5a667267 100644
--- a/samples/springboot3/alt-pet-store/build.gradle
+++ b/samples/springboot3/alt-pet-store/build.gradle
@@ -9,7 +9,7 @@ repositories {
 
 dependencies {
   implementation (
-          implementation('org.springframework.boot:spring-boot-starter-web:3.4.2') {
+          implementation('org.springframework.boot:spring-boot-starter-web:3.4.3') {
             exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat'
           },
           'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)',
diff --git a/samples/springboot3/alt-pet-store/pom.xml b/samples/springboot3/alt-pet-store/pom.xml
index e11af0428..12b7c0daa 100644
--- a/samples/springboot3/alt-pet-store/pom.xml
+++ b/samples/springboot3/alt-pet-store/pom.xml
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.4.2</version>
+        <version>3.4.3</version>
     </parent>
 
     <licenses>
diff --git a/samples/springboot3/graphql-pet-store/pom.xml b/samples/springboot3/graphql-pet-store/pom.xml
index e4c472f00..c3076388a 100644
--- a/samples/springboot3/graphql-pet-store/pom.xml
+++ b/samples/springboot3/graphql-pet-store/pom.xml
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.4.2</version>
+        <version>3.4.3</version>
     </parent>
 
     <licenses>
diff --git a/samples/springboot3/pet-store-native/pom.xml b/samples/springboot3/pet-store-native/pom.xml
index d8ee426a5..282e4671f 100644
--- a/samples/springboot3/pet-store-native/pom.xml
+++ b/samples/springboot3/pet-store-native/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.springframework.boot</groupId>
 		<artifactId>spring-boot-starter-parent</artifactId>
-		<version>3.4.2</version>
+		<version>3.4.3</version>
 		<relativePath /> <!-- lookup parent from repository -->
 	</parent>
 	<groupId>com.amazonaws.serverless.sample</groupId>
diff --git a/samples/springboot3/pet-store/build.gradle b/samples/springboot3/pet-store/build.gradle
index f8013cbc0..c5a667267 100644
--- a/samples/springboot3/pet-store/build.gradle
+++ b/samples/springboot3/pet-store/build.gradle
@@ -9,7 +9,7 @@ repositories {
 
 dependencies {
   implementation (
-          implementation('org.springframework.boot:spring-boot-starter-web:3.4.2') {
+          implementation('org.springframework.boot:spring-boot-starter-web:3.4.3') {
             exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat'
           },
           'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)',
diff --git a/samples/springboot3/pet-store/pom.xml b/samples/springboot3/pet-store/pom.xml
index 3a1571b3a..05351f0a4 100644
--- a/samples/springboot3/pet-store/pom.xml
+++ b/samples/springboot3/pet-store/pom.xml
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.4.2</version>
+        <version>3.4.3</version>
     </parent>
 
     <licenses>

From f4e54098b11402b8dde384873a6b5a237e93320e Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 24 Feb 2025 04:53:50 +0000
Subject: [PATCH 354/430] chore(deps): bump
 org.apache.maven.plugins:maven-compiler-plugin

Bumps [org.apache.maven.plugins:maven-compiler-plugin](https://github.com/apache/maven-compiler-plugin) from 3.13.0 to 3.14.0.
- [Release notes](https://github.com/apache/maven-compiler-plugin/releases)
- [Commits](https://github.com/apache/maven-compiler-plugin/compare/maven-compiler-plugin-3.13.0...maven-compiler-plugin-3.14.0)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-compiler-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 1ccf270ea..8f07c4f6c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -190,7 +190,7 @@
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-compiler-plugin</artifactId>
-                    <version>3.13.0</version>
+                    <version>3.14.0</version>
                     <configuration>
                         <source>1.8</source>
                         <target>1.8</target>

From 725e470e9ce72d7276cc7aee17780c91405775bd Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 24 Feb 2025 04:54:34 +0000
Subject: [PATCH 355/430] chore(deps): bump
 org.apache.maven.plugins:maven-compiler-plugin

Bumps [org.apache.maven.plugins:maven-compiler-plugin](https://github.com/apache/maven-compiler-plugin) from 3.13.0 to 3.14.0.
- [Release notes](https://github.com/apache/maven-compiler-plugin/releases)
- [Commits](https://github.com/apache/maven-compiler-plugin/compare/maven-compiler-plugin-3.13.0...maven-compiler-plugin-3.14.0)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-compiler-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 1ccf270ea..8f07c4f6c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -190,7 +190,7 @@
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-compiler-plugin</artifactId>
-                    <version>3.13.0</version>
+                    <version>3.14.0</version>
                     <configuration>
                         <source>1.8</source>
                         <target>1.8</target>

From d07d1ac5bf645c8503893bbcaed3830bd4630cf5 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 24 Feb 2025 04:54:52 +0000
Subject: [PATCH 356/430] chore(deps): bump
 org.apache.maven.plugins:maven-compiler-plugin

Bumps [org.apache.maven.plugins:maven-compiler-plugin](https://github.com/apache/maven-compiler-plugin) from 3.13.0 to 3.14.0.
- [Release notes](https://github.com/apache/maven-compiler-plugin/releases)
- [Commits](https://github.com/apache/maven-compiler-plugin/compare/maven-compiler-plugin-3.13.0...maven-compiler-plugin-3.14.0)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-compiler-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 1ccf270ea..8f07c4f6c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -190,7 +190,7 @@
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-compiler-plugin</artifactId>
-                    <version>3.13.0</version>
+                    <version>3.14.0</version>
                     <configuration>
                         <source>1.8</source>
                         <target>1.8</target>

From 04b536ae6a0d59dc1ff44ad138e6576935f0fdbf Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 24 Feb 2025 04:54:59 +0000
Subject: [PATCH 357/430] chore(deps): bump
 org.apache.maven.plugins:maven-compiler-plugin

Bumps [org.apache.maven.plugins:maven-compiler-plugin](https://github.com/apache/maven-compiler-plugin) from 3.13.0 to 3.14.0.
- [Release notes](https://github.com/apache/maven-compiler-plugin/releases)
- [Commits](https://github.com/apache/maven-compiler-plugin/compare/maven-compiler-plugin-3.13.0...maven-compiler-plugin-3.14.0)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-compiler-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 1ccf270ea..8f07c4f6c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -190,7 +190,7 @@
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-compiler-plugin</artifactId>
-                    <version>3.13.0</version>
+                    <version>3.14.0</version>
                     <configuration>
                         <source>1.8</source>
                         <target>1.8</target>

From 09d80072f3ba2f2636e344b57646ef4bdaa9bc66 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 3 Mar 2025 04:35:55 +0000
Subject: [PATCH 358/430] chore(deps): bump the maven-install-plugin group
 across 13 directories with 1 update

Bumps the maven-install-plugin group with 1 update in the / directory: [org.apache.maven.plugins:maven-install-plugin](https://github.com/apache/maven-install-plugin).
Bumps the maven-install-plugin group with 1 update in the /aws-serverless-java-container-core directory: [org.apache.maven.plugins:maven-install-plugin](https://github.com/apache/maven-install-plugin).
Bumps the maven-install-plugin group with 1 update in the /aws-serverless-java-container-jersey directory: [org.apache.maven.plugins:maven-install-plugin](https://github.com/apache/maven-install-plugin).
Bumps the maven-install-plugin group with 1 update in the /aws-serverless-java-container-spring directory: [org.apache.maven.plugins:maven-install-plugin](https://github.com/apache/maven-install-plugin).
Bumps the maven-install-plugin group with 1 update in the /aws-serverless-java-container-springboot3 directory: [org.apache.maven.plugins:maven-install-plugin](https://github.com/apache/maven-install-plugin).
Bumps the maven-install-plugin group with 1 update in the /aws-serverless-jersey-archetype directory: [org.apache.maven.plugins:maven-install-plugin](https://github.com/apache/maven-install-plugin).
Bumps the maven-install-plugin group with 1 update in the /aws-serverless-spring-archetype directory: [org.apache.maven.plugins:maven-install-plugin](https://github.com/apache/maven-install-plugin).
Bumps the maven-install-plugin group with 1 update in the /aws-serverless-springboot3-archetype directory: [org.apache.maven.plugins:maven-install-plugin](https://github.com/apache/maven-install-plugin).
Bumps the maven-install-plugin group with 1 update in the /samples/jersey/pet-store directory: [org.apache.maven.plugins:maven-install-plugin](https://github.com/apache/maven-install-plugin).
Bumps the maven-install-plugin group with 1 update in the /samples/spring/pet-store directory: [org.apache.maven.plugins:maven-install-plugin](https://github.com/apache/maven-install-plugin).
Bumps the maven-install-plugin group with 1 update in the /samples/springboot3/alt-pet-store directory: [org.apache.maven.plugins:maven-install-plugin](https://github.com/apache/maven-install-plugin).
Bumps the maven-install-plugin group with 1 update in the /samples/springboot3/graphql-pet-store directory: [org.apache.maven.plugins:maven-install-plugin](https://github.com/apache/maven-install-plugin).
Bumps the maven-install-plugin group with 1 update in the /samples/springboot3/pet-store directory: [org.apache.maven.plugins:maven-install-plugin](https://github.com/apache/maven-install-plugin).


Updates `org.apache.maven.plugins:maven-install-plugin` from 3.1.3 to 3.1.4
- [Release notes](https://github.com/apache/maven-install-plugin/releases)
- [Commits](https://github.com/apache/maven-install-plugin/compare/maven-install-plugin-3.1.3...maven-install-plugin-3.1.4)

Updates `org.apache.maven.plugins:maven-install-plugin` from 3.1.3 to 3.1.4
- [Release notes](https://github.com/apache/maven-install-plugin/releases)
- [Commits](https://github.com/apache/maven-install-plugin/compare/maven-install-plugin-3.1.3...maven-install-plugin-3.1.4)

Updates `org.apache.maven.plugins:maven-install-plugin` from 3.1.3 to 3.1.4
- [Release notes](https://github.com/apache/maven-install-plugin/releases)
- [Commits](https://github.com/apache/maven-install-plugin/compare/maven-install-plugin-3.1.3...maven-install-plugin-3.1.4)

Updates `org.apache.maven.plugins:maven-install-plugin` from 3.1.3 to 3.1.4
- [Release notes](https://github.com/apache/maven-install-plugin/releases)
- [Commits](https://github.com/apache/maven-install-plugin/compare/maven-install-plugin-3.1.3...maven-install-plugin-3.1.4)

Updates `org.apache.maven.plugins:maven-install-plugin` from 3.1.3 to 3.1.4
- [Release notes](https://github.com/apache/maven-install-plugin/releases)
- [Commits](https://github.com/apache/maven-install-plugin/compare/maven-install-plugin-3.1.3...maven-install-plugin-3.1.4)

Updates `org.apache.maven.plugins:maven-install-plugin` from 3.1.3 to 3.1.4
- [Release notes](https://github.com/apache/maven-install-plugin/releases)
- [Commits](https://github.com/apache/maven-install-plugin/compare/maven-install-plugin-3.1.3...maven-install-plugin-3.1.4)

Updates `org.apache.maven.plugins:maven-install-plugin` from 3.1.3 to 3.1.4
- [Release notes](https://github.com/apache/maven-install-plugin/releases)
- [Commits](https://github.com/apache/maven-install-plugin/compare/maven-install-plugin-3.1.3...maven-install-plugin-3.1.4)

Updates `org.apache.maven.plugins:maven-install-plugin` from 3.1.3 to 3.1.4
- [Release notes](https://github.com/apache/maven-install-plugin/releases)
- [Commits](https://github.com/apache/maven-install-plugin/compare/maven-install-plugin-3.1.3...maven-install-plugin-3.1.4)

Updates `org.apache.maven.plugins:maven-install-plugin` from 3.1.3 to 3.1.4
- [Release notes](https://github.com/apache/maven-install-plugin/releases)
- [Commits](https://github.com/apache/maven-install-plugin/compare/maven-install-plugin-3.1.3...maven-install-plugin-3.1.4)

Updates `org.apache.maven.plugins:maven-install-plugin` from 3.1.3 to 3.1.4
- [Release notes](https://github.com/apache/maven-install-plugin/releases)
- [Commits](https://github.com/apache/maven-install-plugin/compare/maven-install-plugin-3.1.3...maven-install-plugin-3.1.4)

Updates `org.apache.maven.plugins:maven-install-plugin` from 3.1.3 to 3.1.4
- [Release notes](https://github.com/apache/maven-install-plugin/releases)
- [Commits](https://github.com/apache/maven-install-plugin/compare/maven-install-plugin-3.1.3...maven-install-plugin-3.1.4)

Updates `org.apache.maven.plugins:maven-install-plugin` from 3.1.3 to 3.1.4
- [Release notes](https://github.com/apache/maven-install-plugin/releases)
- [Commits](https://github.com/apache/maven-install-plugin/compare/maven-install-plugin-3.1.3...maven-install-plugin-3.1.4)

Updates `org.apache.maven.plugins:maven-install-plugin` from 3.1.3 to 3.1.4
- [Release notes](https://github.com/apache/maven-install-plugin/releases)
- [Commits](https://github.com/apache/maven-install-plugin/compare/maven-install-plugin-3.1.3...maven-install-plugin-3.1.4)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-install-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: maven-install-plugin
- dependency-name: org.apache.maven.plugins:maven-install-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: maven-install-plugin
- dependency-name: org.apache.maven.plugins:maven-install-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: maven-install-plugin
- dependency-name: org.apache.maven.plugins:maven-install-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: maven-install-plugin
- dependency-name: org.apache.maven.plugins:maven-install-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: maven-install-plugin
- dependency-name: org.apache.maven.plugins:maven-install-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: maven-install-plugin
- dependency-name: org.apache.maven.plugins:maven-install-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: maven-install-plugin
- dependency-name: org.apache.maven.plugins:maven-install-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: maven-install-plugin
- dependency-name: org.apache.maven.plugins:maven-install-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: maven-install-plugin
- dependency-name: org.apache.maven.plugins:maven-install-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: maven-install-plugin
- dependency-name: org.apache.maven.plugins:maven-install-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: maven-install-plugin
- dependency-name: org.apache.maven.plugins:maven-install-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: maven-install-plugin
- dependency-name: org.apache.maven.plugins:maven-install-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: maven-install-plugin
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml                                       | 2 +-
 samples/jersey/pet-store/pom.xml              | 2 +-
 samples/spring/pet-store/pom.xml              | 2 +-
 samples/springboot3/alt-pet-store/pom.xml     | 2 +-
 samples/springboot3/graphql-pet-store/pom.xml | 2 +-
 samples/springboot3/pet-store/pom.xml         | 2 +-
 6 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/pom.xml b/pom.xml
index 1ccf270ea..164f63152 100644
--- a/pom.xml
+++ b/pom.xml
@@ -231,7 +231,7 @@
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-install-plugin</artifactId>
-                    <version>3.1.3</version>
+                    <version>3.1.4</version>
                 </plugin>
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
diff --git a/samples/jersey/pet-store/pom.xml b/samples/jersey/pet-store/pom.xml
index 2482864f0..6a66d80a3 100644
--- a/samples/jersey/pet-store/pom.xml
+++ b/samples/jersey/pet-store/pom.xml
@@ -123,7 +123,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-install-plugin</artifactId>
-                        <version>3.1.3</version>
+                        <version>3.1.4</version>
                         <configuration>
                             <skip>true</skip>
                         </configuration>
diff --git a/samples/spring/pet-store/pom.xml b/samples/spring/pet-store/pom.xml
index 29a00117b..68c577bc8 100644
--- a/samples/spring/pet-store/pom.xml
+++ b/samples/spring/pet-store/pom.xml
@@ -144,7 +144,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-install-plugin</artifactId>
-                        <version>3.1.3</version>
+                        <version>3.1.4</version>
                         <configuration>
                             <skip>true</skip>
                         </configuration>
diff --git a/samples/springboot3/alt-pet-store/pom.xml b/samples/springboot3/alt-pet-store/pom.xml
index 12b7c0daa..0885925cf 100644
--- a/samples/springboot3/alt-pet-store/pom.xml
+++ b/samples/springboot3/alt-pet-store/pom.xml
@@ -94,7 +94,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-install-plugin</artifactId>
-                        <version>3.1.3</version>
+                        <version>3.1.4</version>
                         <configuration>
                             <skip>true</skip>
                         </configuration>
diff --git a/samples/springboot3/graphql-pet-store/pom.xml b/samples/springboot3/graphql-pet-store/pom.xml
index c3076388a..ff0c5c0dc 100644
--- a/samples/springboot3/graphql-pet-store/pom.xml
+++ b/samples/springboot3/graphql-pet-store/pom.xml
@@ -108,7 +108,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-install-plugin</artifactId>
-                        <version>3.1.3</version>
+                        <version>3.1.4</version>
                         <configuration>
                             <skip>true</skip>
                         </configuration>
diff --git a/samples/springboot3/pet-store/pom.xml b/samples/springboot3/pet-store/pom.xml
index 05351f0a4..4bc2a498d 100644
--- a/samples/springboot3/pet-store/pom.xml
+++ b/samples/springboot3/pet-store/pom.xml
@@ -100,7 +100,7 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-install-plugin</artifactId>
-                        <version>3.1.3</version>
+                        <version>3.1.4</version>
                         <configuration>
                             <skip>true</skip>
                         </configuration>

From 6b1ff33c396cec82c86cde35a8d65e2e6a685bf3 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 3 Mar 2025 04:36:15 +0000
Subject: [PATCH 359/430] chore(deps): bump
 org.apache.maven.plugins:maven-deploy-plugin

Bumps [org.apache.maven.plugins:maven-deploy-plugin](https://github.com/apache/maven-deploy-plugin) from 3.1.3 to 3.1.4.
- [Release notes](https://github.com/apache/maven-deploy-plugin/releases)
- [Commits](https://github.com/apache/maven-deploy-plugin/compare/maven-deploy-plugin-3.1.3...maven-deploy-plugin-3.1.4)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-deploy-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 1ccf270ea..69ddcb9a0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -226,7 +226,7 @@
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-deploy-plugin</artifactId>
-                    <version>3.1.3</version>
+                    <version>3.1.4</version>
                 </plugin>
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>

From 1c64bb190696017a2262c554df7397fef8ffab4f Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 3 Mar 2025 04:36:25 +0000
Subject: [PATCH 360/430] chore(deps): bump
 org.apache.maven.plugins:maven-deploy-plugin

Bumps [org.apache.maven.plugins:maven-deploy-plugin](https://github.com/apache/maven-deploy-plugin) from 3.1.3 to 3.1.4.
- [Release notes](https://github.com/apache/maven-deploy-plugin/releases)
- [Commits](https://github.com/apache/maven-deploy-plugin/compare/maven-deploy-plugin-3.1.3...maven-deploy-plugin-3.1.4)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-deploy-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 1ccf270ea..69ddcb9a0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -226,7 +226,7 @@
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-deploy-plugin</artifactId>
-                    <version>3.1.3</version>
+                    <version>3.1.4</version>
                 </plugin>
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>

From 31751541c1857cc3e80a94c5232cdbc7f57e4af3 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 3 Mar 2025 04:36:29 +0000
Subject: [PATCH 361/430] chore(deps): bump
 org.apache.maven.plugins:maven-deploy-plugin

Bumps [org.apache.maven.plugins:maven-deploy-plugin](https://github.com/apache/maven-deploy-plugin) from 3.1.3 to 3.1.4.
- [Release notes](https://github.com/apache/maven-deploy-plugin/releases)
- [Commits](https://github.com/apache/maven-deploy-plugin/compare/maven-deploy-plugin-3.1.3...maven-deploy-plugin-3.1.4)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-deploy-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 1ccf270ea..69ddcb9a0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -226,7 +226,7 @@
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-deploy-plugin</artifactId>
-                    <version>3.1.3</version>
+                    <version>3.1.4</version>
                 </plugin>
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>

From 9c88ffd6726e925316dbbb430d9e1fea201526c6 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 3 Mar 2025 04:36:42 +0000
Subject: [PATCH 362/430] chore(deps): bump
 org.apache.maven.plugins:maven-deploy-plugin

Bumps [org.apache.maven.plugins:maven-deploy-plugin](https://github.com/apache/maven-deploy-plugin) from 3.1.3 to 3.1.4.
- [Release notes](https://github.com/apache/maven-deploy-plugin/releases)
- [Commits](https://github.com/apache/maven-deploy-plugin/compare/maven-deploy-plugin-3.1.3...maven-deploy-plugin-3.1.4)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-deploy-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 1ccf270ea..69ddcb9a0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -226,7 +226,7 @@
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-deploy-plugin</artifactId>
-                    <version>3.1.3</version>
+                    <version>3.1.4</version>
                 </plugin>
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>

From a07936e9e22f6e9b4e03efa79c4d96a7a4d25df2 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 3 Mar 2025 04:36:58 +0000
Subject: [PATCH 363/430] chore(deps): bump
 org.apache.maven.plugins:maven-deploy-plugin

Bumps [org.apache.maven.plugins:maven-deploy-plugin](https://github.com/apache/maven-deploy-plugin) from 3.1.3 to 3.1.4.
- [Release notes](https://github.com/apache/maven-deploy-plugin/releases)
- [Commits](https://github.com/apache/maven-deploy-plugin/compare/maven-deploy-plugin-3.1.3...maven-deploy-plugin-3.1.4)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-deploy-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 1ccf270ea..69ddcb9a0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -226,7 +226,7 @@
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-deploy-plugin</artifactId>
-                    <version>3.1.3</version>
+                    <version>3.1.4</version>
                 </plugin>
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>

From 5ee6e08ec18cb4ef12be09f20bd46fb8604abd39 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 3 Mar 2025 04:37:12 +0000
Subject: [PATCH 364/430] chore(deps): bump
 org.apache.maven.plugins:maven-deploy-plugin

Bumps [org.apache.maven.plugins:maven-deploy-plugin](https://github.com/apache/maven-deploy-plugin) from 3.1.3 to 3.1.4.
- [Release notes](https://github.com/apache/maven-deploy-plugin/releases)
- [Commits](https://github.com/apache/maven-deploy-plugin/compare/maven-deploy-plugin-3.1.3...maven-deploy-plugin-3.1.4)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-deploy-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 1ccf270ea..69ddcb9a0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -226,7 +226,7 @@
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-deploy-plugin</artifactId>
-                    <version>3.1.3</version>
+                    <version>3.1.4</version>
                 </plugin>
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>

From 2e4fd5d01c1aa6d20dabec66740da83fb1412d14 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 3 Mar 2025 04:37:20 +0000
Subject: [PATCH 365/430] chore(deps): bump
 org.apache.maven.plugins:maven-deploy-plugin

Bumps [org.apache.maven.plugins:maven-deploy-plugin](https://github.com/apache/maven-deploy-plugin) from 3.1.3 to 3.1.4.
- [Release notes](https://github.com/apache/maven-deploy-plugin/releases)
- [Commits](https://github.com/apache/maven-deploy-plugin/compare/maven-deploy-plugin-3.1.3...maven-deploy-plugin-3.1.4)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-deploy-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 1ccf270ea..69ddcb9a0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -226,7 +226,7 @@
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-deploy-plugin</artifactId>
-                    <version>3.1.3</version>
+                    <version>3.1.4</version>
                 </plugin>
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>

From 3ff85c8c964b5483c51a2c51cf11f0fef1cee1c3 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 3 Mar 2025 04:37:27 +0000
Subject: [PATCH 366/430] chore(deps): bump
 org.apache.maven.plugins:maven-deploy-plugin

Bumps [org.apache.maven.plugins:maven-deploy-plugin](https://github.com/apache/maven-deploy-plugin) from 3.1.3 to 3.1.4.
- [Release notes](https://github.com/apache/maven-deploy-plugin/releases)
- [Commits](https://github.com/apache/maven-deploy-plugin/compare/maven-deploy-plugin-3.1.3...maven-deploy-plugin-3.1.4)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-deploy-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 1ccf270ea..69ddcb9a0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -226,7 +226,7 @@
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-deploy-plugin</artifactId>
-                    <version>3.1.3</version>
+                    <version>3.1.4</version>
                 </plugin>
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>

From 512be81b8708b7a2cfa977c98ad0f57477d2b0a6 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 10 Mar 2025 04:33:30 +0000
Subject: [PATCH 367/430] chore(deps): bump the jackson group across 5
 directories with 2 updates

Bumps the jackson group with 2 updates in the / directory: [com.fasterxml.jackson.core:jackson-databind](https://github.com/FasterXML/jackson) and [com.fasterxml.jackson.module:jackson-module-afterburner](https://github.com/FasterXML/jackson-modules-base).
Bumps the jackson group with 2 updates in the /aws-serverless-java-container-core directory: [com.fasterxml.jackson.core:jackson-databind](https://github.com/FasterXML/jackson) and [com.fasterxml.jackson.module:jackson-module-afterburner](https://github.com/FasterXML/jackson-modules-base).
Bumps the jackson group with 1 update in the /aws-serverless-java-container-jersey directory: [com.fasterxml.jackson.core:jackson-databind](https://github.com/FasterXML/jackson).
Bumps the jackson group with 1 update in the /aws-serverless-java-container-spring directory: [com.fasterxml.jackson.core:jackson-databind](https://github.com/FasterXML/jackson).
Bumps the jackson group with 1 update in the /samples/jersey/pet-store directory: [com.fasterxml.jackson.core:jackson-databind](https://github.com/FasterXML/jackson).


Updates `com.fasterxml.jackson.core:jackson-databind` from 2.18.2 to 2.18.3
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `com.fasterxml.jackson.module:jackson-module-afterburner` from 2.18.2 to 2.18.3
- [Commits](https://github.com/FasterXML/jackson-modules-base/commits/jackson-modules-base-2.18.3)

Updates `com.fasterxml.jackson.module:jackson-module-afterburner` from 2.18.2 to 2.18.3
- [Commits](https://github.com/FasterXML/jackson-modules-base/commits/jackson-modules-base-2.18.3)

Updates `com.fasterxml.jackson.core:jackson-databind` from 2.18.2 to 2.18.3
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `com.fasterxml.jackson.module:jackson-module-afterburner` from 2.18.2 to 2.18.3
- [Commits](https://github.com/FasterXML/jackson-modules-base/commits/jackson-modules-base-2.18.3)

Updates `com.fasterxml.jackson.module:jackson-module-afterburner` from 2.18.2 to 2.18.3
- [Commits](https://github.com/FasterXML/jackson-modules-base/commits/jackson-modules-base-2.18.3)

Updates `com.fasterxml.jackson.core:jackson-databind` from 2.18.2 to 2.18.3
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `com.fasterxml.jackson.core:jackson-databind` from 2.18.2 to 2.18.3
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `com.fasterxml.jackson.core:jackson-databind` from 2.18.2 to 2.18.3
- [Commits](https://github.com/FasterXML/jackson/commits)

---
updated-dependencies:
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: jackson
- dependency-name: com.fasterxml.jackson.module:jackson-module-afterburner
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: jackson
- dependency-name: com.fasterxml.jackson.module:jackson-module-afterburner
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: jackson
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: jackson
- dependency-name: com.fasterxml.jackson.module:jackson-module-afterburner
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: jackson
- dependency-name: com.fasterxml.jackson.module:jackson-module-afterburner
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: jackson
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: jackson
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: jackson
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: jackson
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml                          | 2 +-
 samples/jersey/pet-store/pom.xml | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/pom.xml b/pom.xml
index 164f63152..60596f900 100644
--- a/pom.xml
+++ b/pom.xml
@@ -78,7 +78,7 @@
     <properties>
         <jacoco.minCoverage>0.7</jacoco.minCoverage>
         <dependencyCheck.version>12.1.0</dependencyCheck.version>
-        <jackson.version>2.18.2</jackson.version>
+        <jackson.version>2.18.3</jackson.version>
         <slf4j.version>2.0.16</slf4j.version>
         <junit.version>5.11.4</junit.version>
         <mockito.version>5.15.2</mockito.version>
diff --git a/samples/jersey/pet-store/pom.xml b/samples/jersey/pet-store/pom.xml
index 6a66d80a3..dc29c9f6f 100644
--- a/samples/jersey/pet-store/pom.xml
+++ b/samples/jersey/pet-store/pom.xml
@@ -27,7 +27,7 @@
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
         <jersey.version>3.1.10</jersey.version>
-        <jackson.version>2.18.2</jackson.version>
+        <jackson.version>2.18.3</jackson.version>
     </properties>
 
     <dependencies>

From 7dbf260c5ea0dcade9f5f7d20bc2bc22b3466fb6 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 10 Mar 2025 04:38:46 +0000
Subject: [PATCH 368/430] chore(deps): bump the jackson group across 4
 directories with 1 update

Bumps the jackson group with 1 update in the /aws-serverless-jersey-archetype/src/main/resources/archetype-resources directory: [com.fasterxml.jackson.core:jackson-databind](https://github.com/FasterXML/jackson).
Bumps the jackson group with 1 update in the /aws-serverless-spring-archetype/src/main/resources/archetype-resources directory: [com.fasterxml.jackson.core:jackson-databind](https://github.com/FasterXML/jackson).
Bumps the jackson group with 1 update in the /samples/jersey/pet-store directory: [com.fasterxml.jackson.core:jackson-databind](https://github.com/FasterXML/jackson).
Bumps the jackson group with 1 update in the /samples/spring/pet-store directory: [com.fasterxml.jackson.core:jackson-databind](https://github.com/FasterXML/jackson).


Updates `com.fasterxml.jackson.core:jackson-databind` from 2.18.2 to 2.18.3
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `com.fasterxml.jackson.core:jackson-databind` from 2.18.2 to 2.18.3
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `com.fasterxml.jackson.core:jackson-databind` from 2.18.2 to 2.18.3
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `com.fasterxml.jackson.core:jackson-databind` from 2.18.2 to 2.18.3
- [Commits](https://github.com/FasterXML/jackson/commits)

---
updated-dependencies:
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: jackson
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: jackson
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: jackson
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: jackson
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 .../src/main/resources/archetype-resources/build.gradle         | 2 +-
 .../src/main/resources/archetype-resources/build.gradle         | 2 +-
 samples/jersey/pet-store/build.gradle                           | 2 +-
 samples/spring/pet-store/build.gradle                           | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
index 7160d4a9c..06aad3155 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
@@ -8,7 +8,7 @@ repositories {
 dependencies {
   implementation (
           'com.amazonaws.serverless:aws-serverless-java-container-jersey:[2.0-SNAPSHOT,)',
-          'com.fasterxml.jackson.core:jackson-databind:2.18.2',
+          'com.fasterxml.jackson.core:jackson-databind:2.18.3',
   )
 
   implementation("org.glassfish.jersey.media:jersey-media-json-jackson:3.1.10") {
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
index 3cbd0d915..51d119eda 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
@@ -13,7 +13,7 @@ dependencies {
           'org.apache.logging.log4j:log4j-core:2.24.3',
           'org.apache.logging.log4j:log4j-api:2.24.3',
           'org.apache.logging.log4j:log4j-slf4j-impl:2.24.3',
-          'com.fasterxml.jackson.core:jackson-databind:2.18.2',
+          'com.fasterxml.jackson.core:jackson-databind:2.18.3',
           'com.amazonaws:aws-lambda-java-log4j2:1.6.0',
   )
 
diff --git a/samples/jersey/pet-store/build.gradle b/samples/jersey/pet-store/build.gradle
index ca4af2f86..0829175e8 100644
--- a/samples/jersey/pet-store/build.gradle
+++ b/samples/jersey/pet-store/build.gradle
@@ -8,7 +8,7 @@ repositories {
 dependencies {
   implementation (
           'com.amazonaws.serverless:aws-serverless-java-container-jersey:[2.0-SNAPSHOT,)',
-          'com.fasterxml.jackson.core:jackson-databind:2.18.2',
+          'com.fasterxml.jackson.core:jackson-databind:2.18.3',
   )
 
   implementation("org.glassfish.jersey.media:jersey-media-json-jackson:3.1.10") {
diff --git a/samples/spring/pet-store/build.gradle b/samples/spring/pet-store/build.gradle
index 00ff6ceb7..9d46494fa 100644
--- a/samples/spring/pet-store/build.gradle
+++ b/samples/spring/pet-store/build.gradle
@@ -13,7 +13,7 @@ dependencies {
           'org.apache.logging.log4j:log4j-core:2.24.3',
           'org.apache.logging.log4j:log4j-api:2.24.3',
           'org.apache.logging.log4j:log4j-slf4j-impl:2.24.3',
-          'com.fasterxml.jackson.core:jackson-databind:2.18.2',
+          'com.fasterxml.jackson.core:jackson-databind:2.18.3',
           'com.amazonaws:aws-lambda-java-log4j2:1.6.0',
   )
 }

From 21c6eda9105e30759cc2da3f485d7ce55bc1450b Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 17 Mar 2025 04:42:29 +0000
Subject: [PATCH 369/430] chore(deps): bump
 com.github.spotbugs:spotbugs-annotations

Bumps [com.github.spotbugs:spotbugs-annotations](https://github.com/spotbugs/spotbugs) from 4.9.1 to 4.9.3.
- [Release notes](https://github.com/spotbugs/spotbugs/releases)
- [Changelog](https://github.com/spotbugs/spotbugs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/spotbugs/spotbugs/compare/4.9.1...4.9.3)

---
updated-dependencies:
- dependency-name: com.github.spotbugs:spotbugs-annotations
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 164f63152..c555a4b47 100644
--- a/pom.xml
+++ b/pom.xml
@@ -140,7 +140,7 @@
         <dependency>
             <groupId>com.github.spotbugs</groupId>
             <artifactId>spotbugs-annotations</artifactId>
-            <version>4.9.1</version>
+            <version>4.9.3</version>
             <scope>provided</scope>
         </dependency>
     </dependencies>

From 3cf3ab22df103037678193ad2387b5234c16f900 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 17 Mar 2025 04:42:44 +0000
Subject: [PATCH 370/430] chore(deps): bump
 com.github.spotbugs:spotbugs-annotations

Bumps [com.github.spotbugs:spotbugs-annotations](https://github.com/spotbugs/spotbugs) from 4.9.1 to 4.9.3.
- [Release notes](https://github.com/spotbugs/spotbugs/releases)
- [Changelog](https://github.com/spotbugs/spotbugs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/spotbugs/spotbugs/compare/4.9.1...4.9.3)

---
updated-dependencies:
- dependency-name: com.github.spotbugs:spotbugs-annotations
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 164f63152..c555a4b47 100644
--- a/pom.xml
+++ b/pom.xml
@@ -140,7 +140,7 @@
         <dependency>
             <groupId>com.github.spotbugs</groupId>
             <artifactId>spotbugs-annotations</artifactId>
-            <version>4.9.1</version>
+            <version>4.9.3</version>
             <scope>provided</scope>
         </dependency>
     </dependencies>

From f1003335eeedec78e1dc782e7e05ea8aeb2adf9e Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 17 Mar 2025 04:42:54 +0000
Subject: [PATCH 371/430] chore(deps): bump
 com.github.spotbugs:spotbugs-annotations

Bumps [com.github.spotbugs:spotbugs-annotations](https://github.com/spotbugs/spotbugs) from 4.9.1 to 4.9.3.
- [Release notes](https://github.com/spotbugs/spotbugs/releases)
- [Changelog](https://github.com/spotbugs/spotbugs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/spotbugs/spotbugs/compare/4.9.1...4.9.3)

---
updated-dependencies:
- dependency-name: com.github.spotbugs:spotbugs-annotations
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 164f63152..c555a4b47 100644
--- a/pom.xml
+++ b/pom.xml
@@ -140,7 +140,7 @@
         <dependency>
             <groupId>com.github.spotbugs</groupId>
             <artifactId>spotbugs-annotations</artifactId>
-            <version>4.9.1</version>
+            <version>4.9.3</version>
             <scope>provided</scope>
         </dependency>
     </dependencies>

From 81e08e6fa2038db92397eff86371c727091b9a3e Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 17 Mar 2025 04:43:10 +0000
Subject: [PATCH 372/430] chore(deps): bump
 com.github.spotbugs:spotbugs-annotations

Bumps [com.github.spotbugs:spotbugs-annotations](https://github.com/spotbugs/spotbugs) from 4.9.1 to 4.9.3.
- [Release notes](https://github.com/spotbugs/spotbugs/releases)
- [Changelog](https://github.com/spotbugs/spotbugs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/spotbugs/spotbugs/compare/4.9.1...4.9.3)

---
updated-dependencies:
- dependency-name: com.github.spotbugs:spotbugs-annotations
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 164f63152..c555a4b47 100644
--- a/pom.xml
+++ b/pom.xml
@@ -140,7 +140,7 @@
         <dependency>
             <groupId>com.github.spotbugs</groupId>
             <artifactId>spotbugs-annotations</artifactId>
-            <version>4.9.1</version>
+            <version>4.9.3</version>
             <scope>provided</scope>
         </dependency>
     </dependencies>

From 1d33b696ef8c636b2b8d50beef15898780ff36f0 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 17 Mar 2025 04:43:25 +0000
Subject: [PATCH 373/430] chore(deps): bump
 com.github.spotbugs:spotbugs-annotations

Bumps [com.github.spotbugs:spotbugs-annotations](https://github.com/spotbugs/spotbugs) from 4.9.1 to 4.9.3.
- [Release notes](https://github.com/spotbugs/spotbugs/releases)
- [Changelog](https://github.com/spotbugs/spotbugs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/spotbugs/spotbugs/compare/4.9.1...4.9.3)

---
updated-dependencies:
- dependency-name: com.github.spotbugs:spotbugs-annotations
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 164f63152..c555a4b47 100644
--- a/pom.xml
+++ b/pom.xml
@@ -140,7 +140,7 @@
         <dependency>
             <groupId>com.github.spotbugs</groupId>
             <artifactId>spotbugs-annotations</artifactId>
-            <version>4.9.1</version>
+            <version>4.9.3</version>
             <scope>provided</scope>
         </dependency>
     </dependencies>

From e1a36ad41ed9776ef7780b40e686189c1902741a Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 17 Mar 2025 04:43:45 +0000
Subject: [PATCH 374/430] chore(deps): bump
 com.github.spotbugs:spotbugs-annotations

Bumps [com.github.spotbugs:spotbugs-annotations](https://github.com/spotbugs/spotbugs) from 4.9.1 to 4.9.3.
- [Release notes](https://github.com/spotbugs/spotbugs/releases)
- [Changelog](https://github.com/spotbugs/spotbugs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/spotbugs/spotbugs/compare/4.9.1...4.9.3)

---
updated-dependencies:
- dependency-name: com.github.spotbugs:spotbugs-annotations
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 164f63152..c555a4b47 100644
--- a/pom.xml
+++ b/pom.xml
@@ -140,7 +140,7 @@
         <dependency>
             <groupId>com.github.spotbugs</groupId>
             <artifactId>spotbugs-annotations</artifactId>
-            <version>4.9.1</version>
+            <version>4.9.3</version>
             <scope>provided</scope>
         </dependency>
     </dependencies>

From aba53c715df2ce67bda320563121e51b39bea033 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 17 Mar 2025 04:43:56 +0000
Subject: [PATCH 375/430] chore(deps): bump
 com.github.spotbugs:spotbugs-annotations

Bumps [com.github.spotbugs:spotbugs-annotations](https://github.com/spotbugs/spotbugs) from 4.9.1 to 4.9.3.
- [Release notes](https://github.com/spotbugs/spotbugs/releases)
- [Changelog](https://github.com/spotbugs/spotbugs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/spotbugs/spotbugs/compare/4.9.1...4.9.3)

---
updated-dependencies:
- dependency-name: com.github.spotbugs:spotbugs-annotations
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 164f63152..c555a4b47 100644
--- a/pom.xml
+++ b/pom.xml
@@ -140,7 +140,7 @@
         <dependency>
             <groupId>com.github.spotbugs</groupId>
             <artifactId>spotbugs-annotations</artifactId>
-            <version>4.9.1</version>
+            <version>4.9.3</version>
             <scope>provided</scope>
         </dependency>
     </dependencies>

From a5df3646c2dcf06280599c4b8daadc89c3606774 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 17 Mar 2025 04:44:06 +0000
Subject: [PATCH 376/430] chore(deps): bump
 com.github.spotbugs:spotbugs-annotations

Bumps [com.github.spotbugs:spotbugs-annotations](https://github.com/spotbugs/spotbugs) from 4.9.1 to 4.9.3.
- [Release notes](https://github.com/spotbugs/spotbugs/releases)
- [Changelog](https://github.com/spotbugs/spotbugs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/spotbugs/spotbugs/compare/4.9.1...4.9.3)

---
updated-dependencies:
- dependency-name: com.github.spotbugs:spotbugs-annotations
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 164f63152..c555a4b47 100644
--- a/pom.xml
+++ b/pom.xml
@@ -140,7 +140,7 @@
         <dependency>
             <groupId>com.github.spotbugs</groupId>
             <artifactId>spotbugs-annotations</artifactId>
-            <version>4.9.1</version>
+            <version>4.9.3</version>
             <scope>provided</scope>
         </dependency>
     </dependencies>

From adc07e7b9e0bfa9d02fb6e474a08454f91306e8a Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 17 Mar 2025 04:45:20 +0000
Subject: [PATCH 377/430] chore(deps): bump the spring group across 2
 directories with 2 updates

Bumps the spring group with 2 updates in the /aws-serverless-spring-archetype/src/main/resources/archetype-resources directory: [org.springframework:spring-webmvc](https://github.com/spring-projects/spring-framework) and [org.springframework:spring-context](https://github.com/spring-projects/spring-framework).
Bumps the spring group with 2 updates in the /samples/spring/pet-store directory: [org.springframework:spring-webmvc](https://github.com/spring-projects/spring-framework) and [org.springframework:spring-context](https://github.com/spring-projects/spring-framework).


Updates `org.springframework:spring-webmvc` from 6.2.3 to 6.2.4
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v6.2.3...v6.2.4)

Updates `org.springframework:spring-context` from 6.2.3 to 6.2.4
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v6.2.3...v6.2.4)

Updates `org.springframework:spring-webmvc` from 6.2.3 to 6.2.4
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v6.2.3...v6.2.4)

Updates `org.springframework:spring-context` from 6.2.3 to 6.2.4
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v6.2.3...v6.2.4)

---
updated-dependencies:
- dependency-name: org.springframework:spring-webmvc
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: spring
- dependency-name: org.springframework:spring-context
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: spring
- dependency-name: org.springframework:spring-webmvc
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: spring
- dependency-name: org.springframework:spring-context
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: spring
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 .../src/main/resources/archetype-resources/build.gradle       | 4 ++--
 samples/spring/pet-store/build.gradle                         | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
index 3cbd0d915..81ce9186b 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
@@ -7,8 +7,8 @@ repositories {
 
 dependencies {
   implementation (
-          'org.springframework:spring-webmvc:6.2.3',
-          'org.springframework:spring-context:6.2.3',
+          'org.springframework:spring-webmvc:6.2.4',
+          'org.springframework:spring-context:6.2.4',
           'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)',
           'org.apache.logging.log4j:log4j-core:2.24.3',
           'org.apache.logging.log4j:log4j-api:2.24.3',
diff --git a/samples/spring/pet-store/build.gradle b/samples/spring/pet-store/build.gradle
index 00ff6ceb7..85e3b4817 100644
--- a/samples/spring/pet-store/build.gradle
+++ b/samples/spring/pet-store/build.gradle
@@ -7,8 +7,8 @@ repositories {
 
 dependencies {
   implementation (
-          'org.springframework:spring-webmvc:6.2.3',
-          'org.springframework:spring-context:6.2.3',
+          'org.springframework:spring-webmvc:6.2.4',
+          'org.springframework:spring-context:6.2.4',
           'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)',
           'org.apache.logging.log4j:log4j-core:2.24.3',
           'org.apache.logging.log4j:log4j-api:2.24.3',

From 41042e6d3cbf418bde2e1d29ebced43abe0d7155 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Fri, 21 Mar 2025 05:09:06 +0000
Subject: [PATCH 378/430] chore(deps): bump
 com.github.spotbugs:spotbugs-maven-plugin

Bumps [com.github.spotbugs:spotbugs-maven-plugin](https://github.com/spotbugs/spotbugs-maven-plugin) from 4.9.1.0 to 4.9.3.0.
- [Release notes](https://github.com/spotbugs/spotbugs-maven-plugin/releases)
- [Commits](https://github.com/spotbugs/spotbugs-maven-plugin/compare/spotbugs-maven-plugin-4.9.1.0...spotbugs-maven-plugin-4.9.3.0)

---
updated-dependencies:
- dependency-name: com.github.spotbugs:spotbugs-maven-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index a07027339..1162f312b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -249,7 +249,7 @@
                 <plugin>
                     <groupId>com.github.spotbugs</groupId>
                     <artifactId>spotbugs-maven-plugin</artifactId>
-                    <version>4.9.1.0</version>
+                    <version>4.9.3.0</version>
                     <configuration>
                         <!--
                             Enables analysis which takes more memory but finds more bugs.

From 47279e1954502abf250d5fde3487d707c5231f57 Mon Sep 17 00:00:00 2001
From: mbfreder <mbfreder@amazon.com>
Date: Fri, 21 Mar 2025 03:40:39 -0700
Subject: [PATCH 379/430] fix: parameters encoding doesn't work for ALB

---
 .../servlet/AwsHttpServletRequest.java        |  4 +-
 .../spring/AwsSpringHttpProcessingUtils.java  | 49 +++++++++++++++----
 .../AwsSpringHttpProcessingUtilsTests.java    |  7 ++-
 3 files changed, 47 insertions(+), 13 deletions(-)

diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java
index c169a1f04..bde53961f 100644
--- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java
@@ -546,7 +546,7 @@ protected String[] getQueryParamValues(MultiValuedTreeMap<String, String> qs, St
         return value.toArray(new String[0]);
     }
 
-    protected List<String> getQueryParamValuesAsList(MultiValuedTreeMap<String, String> qs, String key, boolean isCaseSensitive) {
+    public static List<String> getQueryParamValuesAsList(MultiValuedTreeMap<String, String> qs, String key, boolean isCaseSensitive) {
         if (qs != null) {
             if (isCaseSensitive) {
                 return qs.get(key);
@@ -788,7 +788,7 @@ static String cleanUri(String uri) {
         return finalUri;
     }
 
-    static String decodeValueIfEncoded(String value) {
+    public static String decodeValueIfEncoded(String value) {
         if (value == null) {
             return null;
         }
diff --git a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtils.java b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtils.java
index 09649b31a..0f6270b39 100644
--- a/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtils.java
+++ b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtils.java
@@ -4,12 +4,14 @@
 import java.nio.charset.Charset;
 import java.nio.charset.StandardCharsets;
 import java.util.Base64;
+import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
-
 import com.amazonaws.serverless.proxy.internal.HttpUtils;
+import com.amazonaws.serverless.proxy.internal.servlet.AwsHttpServletRequest;
+import com.amazonaws.serverless.proxy.model.RequestSource;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.springframework.cloud.function.serverless.web.ServerlessHttpServletRequest;
@@ -36,6 +38,9 @@
 import jakarta.servlet.ServletContext;
 import jakarta.servlet.http.HttpServletRequest;
 
+import static com.amazonaws.serverless.proxy.internal.servlet.AwsHttpServletRequest.decodeValueIfEncoded;
+import static com.amazonaws.serverless.proxy.internal.servlet.AwsHttpServletRequest.getQueryParamValuesAsList;
+
 class AwsSpringHttpProcessingUtils {
 	
 	private static Log logger = LogFactory.getLog(AwsSpringHttpProcessingUtils.class);
@@ -116,13 +121,8 @@ private static HttpServletRequest generateRequest1(String request, Context lambd
 		
 		ServerlessHttpServletRequest httpRequest = new ServerlessHttpServletRequest(servletContext, v1Request.getHttpMethod(), v1Request.getPath());
 
-		populateQueryStringParameters(v1Request.getQueryStringParameters(), httpRequest);
-		if (v1Request.getMultiValueQueryStringParameters() != null) {
-			MultiValueMapAdapter<String, String> queryStringParameters = new MultiValueMapAdapter(v1Request.getMultiValueQueryStringParameters());
-			queryStringParameters.forEach((k, v) -> {
-                httpRequest.setParameter(k, v.toArray(new String[0]));
-            });
-		}
+		populateQueryStringParametersV1(v1Request, httpRequest);
+		populateMultiValueQueryStringParametersV1(v1Request, httpRequest);
 		
 		if (v1Request.getMultiValueHeaders() != null) {
 			MultiValueMapAdapter headers = new MultiValueMapAdapter(v1Request.getMultiValueHeaders());
@@ -156,7 +156,7 @@ private static HttpServletRequest generateRequest2(String request, Context lambd
 		
 		ServerlessHttpServletRequest httpRequest = new ServerlessHttpServletRequest(servletContext,
 				v2Request.getRequestContext().getHttp().getMethod(), v2Request.getRequestContext().getHttp().getPath());
-		populateQueryStringParameters(v2Request.getQueryStringParameters(), httpRequest);
+		populateQueryStringParametersV2(v2Request.getQueryStringParameters(), httpRequest);
 
 		v2Request.getHeaders().forEach(httpRequest::setHeader);
 
@@ -176,7 +176,7 @@ private static HttpServletRequest generateRequest2(String request, Context lambd
 		return httpRequest;
 	}
 	
-	private static void populateQueryStringParameters(Map<String, String> requestParameters, ServerlessHttpServletRequest httpRequest) {
+	private static void populateQueryStringParametersV2(Map<String, String> requestParameters, ServerlessHttpServletRequest httpRequest) {
 		if (!CollectionUtils.isEmpty(requestParameters)) {
 			for (Entry<String, String> entry : requestParameters.entrySet()) {
 				// fix according to parseRawQueryString
@@ -184,6 +184,35 @@ private static void populateQueryStringParameters(Map<String, String> requestPar
 			}
 		}
 	}
+
+	private static void populateQueryStringParametersV1(AwsProxyRequest v1Request, ServerlessHttpServletRequest httpRequest) {
+		Map<String, String> requestParameters = v1Request.getQueryStringParameters();
+		if (!CollectionUtils.isEmpty(requestParameters)) {
+			// decode all keys and values in map
+			for (Entry<String, String> entry : requestParameters.entrySet()) {
+				String k = v1Request.getRequestSource() == RequestSource.ALB ? decodeValueIfEncoded(entry.getKey()) : entry.getKey();
+				String v = v1Request.getRequestSource() == RequestSource.ALB ? decodeValueIfEncoded(entry.getValue()) : entry.getValue();
+				httpRequest.setParameter(k, v);
+			}
+		}
+	}
+
+	private static void populateMultiValueQueryStringParametersV1(AwsProxyRequest v1Request, ServerlessHttpServletRequest httpRequest) {
+		if (v1Request.getMultiValueQueryStringParameters() != null) {
+			MultiValueMapAdapter<String, String> queryStringParameters = new MultiValueMapAdapter<>(v1Request.getMultiValueQueryStringParameters());
+			queryStringParameters.forEach((k, v) -> {
+				String key = v1Request.getRequestSource() == RequestSource.ALB
+						? decodeValueIfEncoded(k)
+						: k;
+				List<String> value = v1Request.getRequestSource() == RequestSource.ALB
+						? getQueryParamValuesAsList(v1Request.getMultiValueQueryStringParameters(), k, false).stream()
+							.map(AwsHttpServletRequest::decodeValueIfEncoded)
+							.toList()
+						: v;
+				httpRequest.setParameter(key, value.toArray(new String[0]));
+			});
+		}
+	}
 	
 	private static <T> T readValue(String json, Class<T> clazz, ObjectMapper mapper) {
 		try {
diff --git a/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtilsTests.java b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtilsTests.java
index fa0e92e98..94232cbff 100644
--- a/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtilsTests.java
+++ b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/AwsSpringHttpProcessingUtilsTests.java
@@ -6,6 +6,7 @@
 import java.util.Collection;
 
 import com.amazonaws.serverless.proxy.RequestReader;
+import com.amazonaws.serverless.proxy.model.AlbContext;
 import com.amazonaws.serverless.proxy.model.HttpApiV2ProxyRequest;
 import org.junit.jupiter.params.ParameterizedTest;
 import org.junit.jupiter.params.provider.MethodSource;
@@ -194,7 +195,7 @@ public class AwsSpringHttpProcessingUtilsTests {
 			"    },\n" +
 			"    \"httpMethod\": \"POST\",\n" +
 			"    \"path\": \"/async\",\n" +
-			"    \"multiValueQueryStringParameters\": { \"parameter1\": [\"value1\", \"value2\"]},\n" +
+			"    \"multiValueQueryStringParameters\": { \"parameter1\": [\"value1\", \"value2\"], \"parameter2\": [\"1970-01-01T00%3A00%3A00.004Z\"]},\n" +
 			"    \"multiValueHeaders\": {\n" +
 			"        \"accept\": [\"text/html,application/xhtml+xml\"],\n" +
 			"        \"accept-language\": [\"en-US,en;q=0.8\"],\n" +
@@ -238,6 +239,10 @@ private static void assertRequest(HttpServletRequest request) {
 			assertEquals("value1", request.getParameter("parameter1"));
 			assertArrayEquals(new String[]{"value1", "value2"}, request.getParameterValues("parameter1"));
 		}
+		if (request.getAttribute(RequestReader.ALB_CONTEXT_PROPERTY) instanceof AlbContext) {
+			// query params should be decoded
+			assertEquals("1970-01-01T00:00:00.004Z", request.getParameter("parameter2"));
+		}
 	}
     
     @MethodSource("data")

From f268780f699cb58625a42c938f09a4c2b0584e2f Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Fri, 4 Apr 2025 21:58:10 +0200
Subject: [PATCH 380/430] chore(deps): Update Spring dependencies (framework to
 6.2.5, security to 6.4.4, boot to 3.4.4)

---
 aws-serverless-java-container-core/pom.xml                  | 2 +-
 aws-serverless-java-container-spring/pom.xml                | 4 ++--
 aws-serverless-java-container-springboot3/pom.xml           | 6 +++---
 .../src/main/resources/archetype-resources/pom.xml          | 2 +-
 .../src/main/resources/archetype-resources/build.gradle     | 2 +-
 .../src/main/resources/archetype-resources/pom.xml          | 2 +-
 samples/spring/pet-store/pom.xml                            | 2 +-
 samples/springboot3/alt-pet-store/build.gradle              | 2 +-
 samples/springboot3/alt-pet-store/pom.xml                   | 2 +-
 samples/springboot3/graphql-pet-store/pom.xml               | 2 +-
 samples/springboot3/pet-store-native/pom.xml                | 2 +-
 samples/springboot3/pet-store/build.gradle                  | 2 +-
 samples/springboot3/pet-store/pom.xml                       | 2 +-
 13 files changed, 16 insertions(+), 16 deletions(-)

diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml
index dd42290ac..1fd00e484 100644
--- a/aws-serverless-java-container-core/pom.xml
+++ b/aws-serverless-java-container-core/pom.xml
@@ -60,7 +60,7 @@
         <dependency>
             <groupId>org.springframework.security</groupId>
             <artifactId>spring-security-web</artifactId>
-            <version>6.4.3</version>
+            <version>6.4.4</version>
             <scope>test</scope>
         </dependency>
     </dependencies>
diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml
index 35645e517..ee7935d43 100644
--- a/aws-serverless-java-container-spring/pom.xml
+++ b/aws-serverless-java-container-spring/pom.xml
@@ -16,8 +16,8 @@
     </parent>
 
     <properties>
-        <spring.version>6.2.3</spring.version>
-        <spring-security.version>6.4.3</spring-security.version>
+        <spring.version>6.2.5</spring.version>
+        <spring-security.version>6.4.4</spring-security.version>
     </properties>
 
     <dependencies>
diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml
index 481b13f17..236e173f4 100644
--- a/aws-serverless-java-container-springboot3/pom.xml
+++ b/aws-serverless-java-container-springboot3/pom.xml
@@ -15,9 +15,9 @@
     <version>2.2.0-SNAPSHOT</version>
 
     <properties>
-        <spring.version>6.2.3</spring.version>
-        <springboot.version>3.4.3</springboot.version>
-        <springsecurity.version>6.4.3</springsecurity.version>
+        <spring.version>6.2.5</spring.version>
+        <springboot.version>3.4.4</springboot.version>
+        <springsecurity.version>6.4.4</springsecurity.version>
     </properties>
 
     <dependencies>
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
index a8ec02c33..7f437e7ec 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
@@ -16,7 +16,7 @@
     <properties>
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
-        <spring.version>6.2.3</spring.version>
+        <spring.version>6.2.5</spring.version>
         <junit.version>5.11.4</junit.version>
         <log4j.version>2.24.2</log4j.version>
     </properties>
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
index b7a228b56..59422bdff 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
@@ -9,7 +9,7 @@ repositories {
 
 dependencies {
   implementation (
-          'org.springframework.boot:spring-boot-starter-web:3.4.3',
+          'org.springframework.boot:spring-boot-starter-web:3.4.4',
           'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)',
   )
 
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
index 2398fb95c..6f6cb0875 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
@@ -16,7 +16,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.4.3</version>
+        <version>3.4.4</version>
     </parent>
 
     <properties>
diff --git a/samples/spring/pet-store/pom.xml b/samples/spring/pet-store/pom.xml
index 68c577bc8..4945ba716 100644
--- a/samples/spring/pet-store/pom.xml
+++ b/samples/spring/pet-store/pom.xml
@@ -24,7 +24,7 @@
     </licenses>
 
     <properties>
-        <spring.version>6.2.3</spring.version>
+        <spring.version>6.2.5</spring.version>
         <log4j.version>2.24.3</log4j.version>
         <maven.compiler.source>17</maven.compiler.source>
         <maven.compiler.target>17</maven.compiler.target>
diff --git a/samples/springboot3/alt-pet-store/build.gradle b/samples/springboot3/alt-pet-store/build.gradle
index c5a667267..59352a117 100644
--- a/samples/springboot3/alt-pet-store/build.gradle
+++ b/samples/springboot3/alt-pet-store/build.gradle
@@ -9,7 +9,7 @@ repositories {
 
 dependencies {
   implementation (
-          implementation('org.springframework.boot:spring-boot-starter-web:3.4.3') {
+          implementation('org.springframework.boot:spring-boot-starter-web:3.4.4') {
             exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat'
           },
           'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)',
diff --git a/samples/springboot3/alt-pet-store/pom.xml b/samples/springboot3/alt-pet-store/pom.xml
index 0885925cf..f1f605c6c 100644
--- a/samples/springboot3/alt-pet-store/pom.xml
+++ b/samples/springboot3/alt-pet-store/pom.xml
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.4.3</version>
+        <version>3.4.4</version>
     </parent>
 
     <licenses>
diff --git a/samples/springboot3/graphql-pet-store/pom.xml b/samples/springboot3/graphql-pet-store/pom.xml
index ff0c5c0dc..76b804e51 100644
--- a/samples/springboot3/graphql-pet-store/pom.xml
+++ b/samples/springboot3/graphql-pet-store/pom.xml
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.4.3</version>
+        <version>3.4.4</version>
     </parent>
 
     <licenses>
diff --git a/samples/springboot3/pet-store-native/pom.xml b/samples/springboot3/pet-store-native/pom.xml
index 53852a61a..2dc5508d1 100644
--- a/samples/springboot3/pet-store-native/pom.xml
+++ b/samples/springboot3/pet-store-native/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.springframework.boot</groupId>
 		<artifactId>spring-boot-starter-parent</artifactId>
-		<version>3.4.3</version>
+		<version>3.4.4</version>
 		<relativePath /> <!-- lookup parent from repository -->
 	</parent>
 	<groupId>com.amazonaws.serverless.sample</groupId>
diff --git a/samples/springboot3/pet-store/build.gradle b/samples/springboot3/pet-store/build.gradle
index c5a667267..59352a117 100644
--- a/samples/springboot3/pet-store/build.gradle
+++ b/samples/springboot3/pet-store/build.gradle
@@ -9,7 +9,7 @@ repositories {
 
 dependencies {
   implementation (
-          implementation('org.springframework.boot:spring-boot-starter-web:3.4.3') {
+          implementation('org.springframework.boot:spring-boot-starter-web:3.4.4') {
             exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat'
           },
           'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)',
diff --git a/samples/springboot3/pet-store/pom.xml b/samples/springboot3/pet-store/pom.xml
index 4bc2a498d..af519947e 100644
--- a/samples/springboot3/pet-store/pom.xml
+++ b/samples/springboot3/pet-store/pom.xml
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.4.3</version>
+        <version>3.4.4</version>
     </parent>
 
     <licenses>

From 6db27586020f6172849bdfc4e709888fb4267241 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Fri, 4 Apr 2025 22:02:22 +0200
Subject: [PATCH 381/430] chore(deps): update JUnit version to 5.12.1

---
 .../src/main/resources/archetype-resources/build.gradle         | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 .../src/main/resources/archetype-resources/build.gradle         | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 .../src/main/resources/archetype-resources/build.gradle         | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 pom.xml                                                         | 2 +-
 7 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
index 06aad3155..fa79713d0 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
@@ -23,7 +23,7 @@ dependencies {
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
   testImplementation("org.apache.httpcomponents.client5:httpclient5:5.4.2")
-  testImplementation(platform("org.junit:junit-bom:5.11.4"))
+  testImplementation(platform("org.junit:junit-bom:5.12.1"))
   testImplementation("org.junit.jupiter:junit-jupiter")
 }
 
diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
index 39db2f49e..83734ac9d 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
@@ -17,7 +17,7 @@
 
         <jersey.version>3.1.10</jersey.version>
         <jackson.version>2.18.2</jackson.version>
-        <junit.version>5.11.4</junit.version>
+        <junit.version>5.12.1</junit.version>
     </properties>
 
     <dependencies>
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
index c7538b7c4..1ca8ce47f 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
@@ -19,7 +19,7 @@ dependencies {
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
   testImplementation("org.apache.httpcomponents.client5:httpclient5:5.4.2")
-  testImplementation(platform("org.junit:junit-bom:5.11.4"))
+  testImplementation(platform("org.junit:junit-bom:5.12.1"))
   testImplementation("org.junit.jupiter:junit-jupiter")
 }
 
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
index 7f437e7ec..f8edf92ec 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
@@ -17,7 +17,7 @@
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
         <spring.version>6.2.5</spring.version>
-        <junit.version>5.11.4</junit.version>
+        <junit.version>5.12.1</junit.version>
         <log4j.version>2.24.2</log4j.version>
     </properties>
 
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
index 59422bdff..b176e97fd 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
@@ -15,7 +15,7 @@ dependencies {
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
   testImplementation("org.apache.httpcomponents.client5:httpclient5:5.4.2")
-  testImplementation(platform("org.junit:junit-bom:5.11.4"))
+  testImplementation(platform("org.junit:junit-bom:5.12.1"))
   testImplementation("org.junit.jupiter:junit-jupiter")
 }
 
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
index 6f6cb0875..8e2648a9e 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
@@ -21,7 +21,7 @@
 
     <properties>
         <java.version>17</java.version>
-        <junit.version>5.11.4</junit.version>
+        <junit.version>5.12.1</junit.version>
     </properties>
 
     <dependencies>
diff --git a/pom.xml b/pom.xml
index a07027339..1a886a4d0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -80,7 +80,7 @@
         <dependencyCheck.version>12.1.0</dependencyCheck.version>
         <jackson.version>2.18.3</jackson.version>
         <slf4j.version>2.0.16</slf4j.version>
-        <junit.version>5.11.4</junit.version>
+        <junit.version>5.12.1</junit.version>
         <mockito.version>5.15.2</mockito.version>
         <hamcrest.version>1.3</hamcrest.version>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

From 0bf339d451a7c98c1ada5dcb62681af95fa63731 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Fri, 4 Apr 2025 22:03:15 +0200
Subject: [PATCH 382/430] chore(deps): Update Jackson version to 2.18.3

---
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
index 83734ac9d..dfa813181 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
@@ -16,7 +16,7 @@
         <maven.compiler.target>1.8</maven.compiler.target>
 
         <jersey.version>3.1.10</jersey.version>
-        <jackson.version>2.18.2</jackson.version>
+        <jackson.version>2.18.3</jackson.version>
         <junit.version>5.12.1</junit.version>
     </properties>
 

From dded06df64490c465897eaec3ed8c5c5c3ca8517 Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Fri, 4 Apr 2025 22:03:35 +0200
Subject: [PATCH 383/430] chore(deps): Update Spring dependencies (framework to
 6.2.5, security to 6.4.4, boot to 3.4.4)

---
 .../src/main/resources/archetype-resources/build.gradle       | 4 ++--
 samples/spring/pet-store/build.gradle                         | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
index 1ca8ce47f..e708c058f 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
@@ -7,8 +7,8 @@ repositories {
 
 dependencies {
   implementation (
-          'org.springframework:spring-webmvc:6.2.4',
-          'org.springframework:spring-context:6.2.4',
+          'org.springframework:spring-webmvc:6.2.5',
+          'org.springframework:spring-context:6.2.5',
           'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)',
           'org.apache.logging.log4j:log4j-core:2.24.3',
           'org.apache.logging.log4j:log4j-api:2.24.3',
diff --git a/samples/spring/pet-store/build.gradle b/samples/spring/pet-store/build.gradle
index 992bf0339..0c28ff2b2 100644
--- a/samples/spring/pet-store/build.gradle
+++ b/samples/spring/pet-store/build.gradle
@@ -7,8 +7,8 @@ repositories {
 
 dependencies {
   implementation (
-          'org.springframework:spring-webmvc:6.2.4',
-          'org.springframework:spring-context:6.2.4',
+          'org.springframework:spring-webmvc:6.2.5',
+          'org.springframework:spring-context:6.2.5',
           'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)',
           'org.apache.logging.log4j:log4j-core:2.24.3',
           'org.apache.logging.log4j:log4j-api:2.24.3',

From 39425e0e1e428d28fe0bfd3a7b7a63e874130fac Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Sat, 5 Apr 2025 08:32:10 +0200
Subject: [PATCH 384/430] chore(deps): update JUnit version to 5.12.1 (fix
 Gradle build)

---
 .../src/main/resources/archetype-resources/build.gradle          | 1 +
 .../src/main/resources/archetype-resources/build.gradle          | 1 +
 .../src/main/resources/archetype-resources/build.gradle          | 1 +
 3 files changed, 3 insertions(+)

diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
index fa79713d0..56ccdbe30 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
@@ -25,6 +25,7 @@ dependencies {
   testImplementation("org.apache.httpcomponents.client5:httpclient5:5.4.2")
   testImplementation(platform("org.junit:junit-bom:5.12.1"))
   testImplementation("org.junit.jupiter:junit-jupiter")
+  testRuntimeOnly("org.junit.platform:junit-platform-launcher")
 }
 
 task buildZip(type: Zip) {
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
index e708c058f..3115e5a63 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
@@ -21,6 +21,7 @@ dependencies {
   testImplementation("org.apache.httpcomponents.client5:httpclient5:5.4.2")
   testImplementation(platform("org.junit:junit-bom:5.12.1"))
   testImplementation("org.junit.jupiter:junit-jupiter")
+  testRuntimeOnly("org.junit.platform:junit-platform-launcher")
 }
 
 task buildZip(type: Zip) {
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
index b176e97fd..c90674fdc 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
@@ -17,6 +17,7 @@ dependencies {
   testImplementation("org.apache.httpcomponents.client5:httpclient5:5.4.2")
   testImplementation(platform("org.junit:junit-bom:5.12.1"))
   testImplementation("org.junit.jupiter:junit-jupiter")
+  testRuntimeOnly("org.junit.platform:junit-platform-launcher")
 }
 
 task buildZip(type: Zip) {

From 785384f008a03892545d37bc4b40f395a410a58e Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sat, 5 Apr 2025 06:33:42 +0000
Subject: [PATCH 385/430] chore(deps): bump the slf4j group across 8
 directories with 2 updates

Bumps the slf4j group with 2 updates in the / directory: org.slf4j:slf4j-api and org.slf4j:slf4j-simple.
Bumps the slf4j group with 2 updates in the /aws-serverless-java-container-core directory: org.slf4j:slf4j-api and org.slf4j:slf4j-simple.
Bumps the slf4j group with 2 updates in the /aws-serverless-java-container-jersey directory: org.slf4j:slf4j-api and org.slf4j:slf4j-simple.
Bumps the slf4j group with 2 updates in the /aws-serverless-java-container-spring directory: org.slf4j:slf4j-api and org.slf4j:slf4j-simple.
Bumps the slf4j group with 2 updates in the /aws-serverless-java-container-springboot3 directory: org.slf4j:slf4j-api and org.slf4j:slf4j-simple.
Bumps the slf4j group with 2 updates in the /aws-serverless-jersey-archetype directory: org.slf4j:slf4j-api and org.slf4j:slf4j-simple.
Bumps the slf4j group with 2 updates in the /aws-serverless-spring-archetype directory: org.slf4j:slf4j-api and org.slf4j:slf4j-simple.
Bumps the slf4j group with 2 updates in the /aws-serverless-springboot3-archetype directory: org.slf4j:slf4j-api and org.slf4j:slf4j-simple.


Updates `org.slf4j:slf4j-api` from 2.0.16 to 2.0.17

Updates `org.slf4j:slf4j-simple` from 2.0.16 to 2.0.17

Updates `org.slf4j:slf4j-simple` from 2.0.16 to 2.0.17

Updates `org.slf4j:slf4j-api` from 2.0.16 to 2.0.17

Updates `org.slf4j:slf4j-simple` from 2.0.16 to 2.0.17

Updates `org.slf4j:slf4j-simple` from 2.0.16 to 2.0.17

Updates `org.slf4j:slf4j-api` from 2.0.16 to 2.0.17

Updates `org.slf4j:slf4j-simple` from 2.0.16 to 2.0.17

Updates `org.slf4j:slf4j-simple` from 2.0.16 to 2.0.17

Updates `org.slf4j:slf4j-api` from 2.0.16 to 2.0.17

Updates `org.slf4j:slf4j-simple` from 2.0.16 to 2.0.17

Updates `org.slf4j:slf4j-simple` from 2.0.16 to 2.0.17

Updates `org.slf4j:slf4j-api` from 2.0.16 to 2.0.17

Updates `org.slf4j:slf4j-simple` from 2.0.16 to 2.0.17

Updates `org.slf4j:slf4j-simple` from 2.0.16 to 2.0.17

Updates `org.slf4j:slf4j-api` from 2.0.16 to 2.0.17

Updates `org.slf4j:slf4j-simple` from 2.0.16 to 2.0.17

Updates `org.slf4j:slf4j-simple` from 2.0.16 to 2.0.17

Updates `org.slf4j:slf4j-api` from 2.0.16 to 2.0.17

Updates `org.slf4j:slf4j-simple` from 2.0.16 to 2.0.17

Updates `org.slf4j:slf4j-simple` from 2.0.16 to 2.0.17

Updates `org.slf4j:slf4j-api` from 2.0.16 to 2.0.17

Updates `org.slf4j:slf4j-simple` from 2.0.16 to 2.0.17

Updates `org.slf4j:slf4j-simple` from 2.0.16 to 2.0.17

---
updated-dependencies:
- dependency-name: org.slf4j:slf4j-api
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: slf4j
- dependency-name: org.slf4j:slf4j-simple
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: slf4j
- dependency-name: org.slf4j:slf4j-simple
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: slf4j
- dependency-name: org.slf4j:slf4j-api
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: slf4j
- dependency-name: org.slf4j:slf4j-simple
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: slf4j
- dependency-name: org.slf4j:slf4j-simple
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: slf4j
- dependency-name: org.slf4j:slf4j-api
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: slf4j
- dependency-name: org.slf4j:slf4j-simple
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: slf4j
- dependency-name: org.slf4j:slf4j-simple
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: slf4j
- dependency-name: org.slf4j:slf4j-api
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: slf4j
- dependency-name: org.slf4j:slf4j-simple
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: slf4j
- dependency-name: org.slf4j:slf4j-simple
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: slf4j
- dependency-name: org.slf4j:slf4j-api
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: slf4j
- dependency-name: org.slf4j:slf4j-simple
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: slf4j
- dependency-name: org.slf4j:slf4j-simple
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: slf4j
- dependency-name: org.slf4j:slf4j-api
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: slf4j
- dependency-name: org.slf4j:slf4j-simple
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: slf4j
- dependency-name: org.slf4j:slf4j-simple
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: slf4j
- dependency-name: org.slf4j:slf4j-api
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: slf4j
- dependency-name: org.slf4j:slf4j-simple
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: slf4j
- dependency-name: org.slf4j:slf4j-simple
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: slf4j
- dependency-name: org.slf4j:slf4j-api
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: slf4j
- dependency-name: org.slf4j:slf4j-simple
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: slf4j
- dependency-name: org.slf4j:slf4j-simple
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: slf4j
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index e3a8ff152..ea67e10f6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -79,7 +79,7 @@
         <jacoco.minCoverage>0.7</jacoco.minCoverage>
         <dependencyCheck.version>12.1.0</dependencyCheck.version>
         <jackson.version>2.18.3</jackson.version>
-        <slf4j.version>2.0.16</slf4j.version>
+        <slf4j.version>2.0.17</slf4j.version>
         <junit.version>5.12.1</junit.version>
         <mockito.version>5.15.2</mockito.version>
         <hamcrest.version>1.3</hamcrest.version>

From fb4de59de910ddc72de73bafba79571580a2a0d7 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sat, 5 Apr 2025 06:34:06 +0000
Subject: [PATCH 386/430] chore(deps-dev): bump org.mockito:mockito-core from
 5.15.2 to 5.16.1

Bumps [org.mockito:mockito-core](https://github.com/mockito/mockito) from 5.15.2 to 5.16.1.
- [Release notes](https://github.com/mockito/mockito/releases)
- [Commits](https://github.com/mockito/mockito/compare/v5.15.2...v5.16.1)

---
updated-dependencies:
- dependency-name: org.mockito:mockito-core
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index e3a8ff152..15be9c45e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -81,7 +81,7 @@
         <jackson.version>2.18.3</jackson.version>
         <slf4j.version>2.0.16</slf4j.version>
         <junit.version>5.12.1</junit.version>
-        <mockito.version>5.15.2</mockito.version>
+        <mockito.version>5.17.0</mockito.version>
         <hamcrest.version>1.3</hamcrest.version>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     </properties>

From 518aeea9d053f4d926397e270cd7cbc39b763fa4 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sat, 5 Apr 2025 07:15:15 +0000
Subject: [PATCH 387/430] chore(deps): bump
 org.apache.maven.plugins:maven-surefire-plugin

Bumps [org.apache.maven.plugins:maven-surefire-plugin](https://github.com/apache/maven-surefire) from 3.5.2 to 3.5.3.
- [Release notes](https://github.com/apache/maven-surefire/releases)
- [Commits](https://github.com/apache/maven-surefire/compare/surefire-3.5.2...surefire-3.5.3)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-surefire-plugin
  dependency-version: 3.5.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 7693ddf9d..90fd95e06 100644
--- a/pom.xml
+++ b/pom.xml
@@ -206,7 +206,7 @@
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-surefire-plugin</artifactId>
-                    <version>3.5.2</version>
+                    <version>3.5.3</version>
                 </plugin>
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>

From 257c4bb23c4df1fd0b9c2a97719e6feca5b24165 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sat, 5 Apr 2025 07:15:22 +0000
Subject: [PATCH 388/430] chore(deps): bump org.jacoco:jacoco-maven-plugin from
 0.8.12 to 0.8.13

Bumps [org.jacoco:jacoco-maven-plugin](https://github.com/jacoco/jacoco) from 0.8.12 to 0.8.13.
- [Release notes](https://github.com/jacoco/jacoco/releases)
- [Commits](https://github.com/jacoco/jacoco/compare/v0.8.12...v0.8.13)

---
updated-dependencies:
- dependency-name: org.jacoco:jacoco-maven-plugin
  dependency-version: 0.8.13
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 7693ddf9d..a5b5d4539 100644
--- a/pom.xml
+++ b/pom.xml
@@ -278,7 +278,7 @@
                 <plugin>
                     <groupId>org.jacoco</groupId>
                     <artifactId>jacoco-maven-plugin</artifactId>
-                    <version>0.8.12</version>
+                    <version>0.8.13</version>
                 </plugin>
             </plugins>
         </pluginManagement>

From 1ddb08842eb4a5941caa85e17cb85f8ee78eca9e Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sat, 5 Apr 2025 07:15:38 +0000
Subject: [PATCH 389/430] chore(deps): bump
 org.apache.maven.plugins:maven-surefire-plugin

Bumps [org.apache.maven.plugins:maven-surefire-plugin](https://github.com/apache/maven-surefire) from 3.5.2 to 3.5.3.
- [Release notes](https://github.com/apache/maven-surefire/releases)
- [Commits](https://github.com/apache/maven-surefire/compare/surefire-3.5.2...surefire-3.5.3)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-surefire-plugin
  dependency-version: 3.5.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 7693ddf9d..90fd95e06 100644
--- a/pom.xml
+++ b/pom.xml
@@ -206,7 +206,7 @@
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-surefire-plugin</artifactId>
-                    <version>3.5.2</version>
+                    <version>3.5.3</version>
                 </plugin>
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>

From a161e20f1da2dfe60fec9b97fa668b6e36ca6b5c Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Sat, 5 Apr 2025 09:18:43 +0200
Subject: [PATCH 390/430] chore(deps): update httpclient to 5.4.3

---
 .../src/main/resources/archetype-resources/build.gradle         | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 .../src/main/resources/archetype-resources/build.gradle         | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 .../src/main/resources/archetype-resources/build.gradle         | 2 +-
 .../src/main/resources/archetype-resources/pom.xml              | 2 +-
 pom.xml                                                         | 2 +-
 7 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
index 56ccdbe30..aec63fe5e 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
@@ -22,7 +22,7 @@ dependencies {
   }
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
-  testImplementation("org.apache.httpcomponents.client5:httpclient5:5.4.2")
+  testImplementation("org.apache.httpcomponents.client5:httpclient5:5.4.3")
   testImplementation(platform("org.junit:junit-bom:5.12.1"))
   testImplementation("org.junit.jupiter:junit-jupiter")
   testRuntimeOnly("org.junit.platform:junit-platform-launcher")
diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
index dfa813181..1f05e9018 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/pom.xml
@@ -37,7 +37,7 @@
         <dependency>
             <groupId>org.apache.httpcomponents.client5</groupId>
             <artifactId>httpclient5</artifactId>
-            <version>5.4.2</version>
+            <version>5.4.3</version>
             <scope>test</scope>
         </dependency>
 
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
index 3115e5a63..1897c2d05 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
@@ -18,7 +18,7 @@ dependencies {
   )
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
-  testImplementation("org.apache.httpcomponents.client5:httpclient5:5.4.2")
+  testImplementation("org.apache.httpcomponents.client5:httpclient5:5.4.3")
   testImplementation(platform("org.junit:junit-bom:5.12.1"))
   testImplementation("org.junit.jupiter:junit-jupiter")
   testRuntimeOnly("org.junit.platform:junit-platform-launcher")
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
index f8edf92ec..fe0b8b6cb 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
@@ -38,7 +38,7 @@
         <dependency>
             <groupId>org.apache.httpcomponents.client5</groupId>
             <artifactId>httpclient5</artifactId>
-            <version>5.4.2</version>
+            <version>5.4.3</version>
             <scope>test</scope>
         </dependency>
 
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
index c90674fdc..6f3128660 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
@@ -14,7 +14,7 @@ dependencies {
   )
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
-  testImplementation("org.apache.httpcomponents.client5:httpclient5:5.4.2")
+  testImplementation("org.apache.httpcomponents.client5:httpclient5:5.4.3")
   testImplementation(platform("org.junit:junit-bom:5.12.1"))
   testImplementation("org.junit.jupiter:junit-jupiter")
   testRuntimeOnly("org.junit.platform:junit-platform-launcher")
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
index 8e2648a9e..091d1ad17 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
@@ -41,7 +41,7 @@
         <dependency>
             <groupId>org.apache.httpcomponents.client5</groupId>
             <artifactId>httpclient5</artifactId>
-            <version>5.4.2</version>
+            <version>5.4.3</version>
             <scope>test</scope>
         </dependency>
 
diff --git a/pom.xml b/pom.xml
index 7693ddf9d..e01461df4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -119,7 +119,7 @@
         <dependency>
             <groupId>org.apache.httpcomponents.client5</groupId>
             <artifactId>httpclient5</artifactId>
-            <version>5.4.2</version>
+            <version>5.4.3</version>
             <scope>test</scope>
         </dependency>
 

From 02f36fb9891d0d6fac25e78de1c582bae178cc6c Mon Sep 17 00:00:00 2001
From: deki <deki@users.noreply.github.com>
Date: Sat, 5 Apr 2025 07:37:23 +0000
Subject: [PATCH 391/430] chore: release - prepare release
 aws-serverless-java-container-2.1.3

---
 aws-serverless-java-container-core/pom.xml        | 4 ++--
 aws-serverless-java-container-jersey/pom.xml      | 8 ++++----
 aws-serverless-java-container-spring/pom.xml      | 8 ++++----
 aws-serverless-java-container-springboot3/pom.xml | 8 ++++----
 aws-serverless-jersey-archetype/pom.xml           | 6 +++---
 aws-serverless-spring-archetype/pom.xml           | 6 +++---
 aws-serverless-springboot3-archetype/pom.xml      | 6 +++---
 pom.xml                                           | 4 ++--
 8 files changed, 25 insertions(+), 25 deletions(-)

diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml
index 1fd00e484..0e33fc12b 100644
--- a/aws-serverless-java-container-core/pom.xml
+++ b/aws-serverless-java-container-core/pom.xml
@@ -6,12 +6,12 @@
     <name>AWS Serverless Java container support - Core</name>
     <description>Allows Java applications written for a servlet container to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.2.0-SNAPSHOT</version>
+    <version>2.1.3</version>
 
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.2.0-SNAPSHOT</version>
+        <version>2.1.3</version>
         <relativePath>..</relativePath>
     </parent>
 
diff --git a/aws-serverless-java-container-jersey/pom.xml b/aws-serverless-java-container-jersey/pom.xml
index 80e99330d..2777d8d5e 100644
--- a/aws-serverless-java-container-jersey/pom.xml
+++ b/aws-serverless-java-container-jersey/pom.xml
@@ -6,12 +6,12 @@
     <name>AWS Serverless Java container support - Jersey implementation</name>
     <description>Allows Java applications written for Jersey to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.2.0-SNAPSHOT</version>
+    <version>2.1.3</version>
 
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.2.0-SNAPSHOT</version>
+        <version>2.1.3</version>
         <relativePath>..</relativePath>
     </parent>
 
@@ -24,7 +24,7 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.2.0-SNAPSHOT</version>
+            <version>2.1.3</version>
             <exclusions>
                 <exclusion>
                     <groupId>com.fasterxml.jackson.core</groupId>
@@ -35,7 +35,7 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.2.0-SNAPSHOT</version>
+            <version>2.1.3</version>
             <classifier>tests</classifier>
             <type>test-jar</type>
             <scope>test</scope>
diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml
index ee7935d43..dc6e49cda 100644
--- a/aws-serverless-java-container-spring/pom.xml
+++ b/aws-serverless-java-container-spring/pom.xml
@@ -6,12 +6,12 @@
     <name>AWS Serverless Java container support - Spring implementation</name>
     <description>Allows Java applications written for the Spring framework to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.2.0-SNAPSHOT</version>
+    <version>2.1.3</version>
 
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.2.0-SNAPSHOT</version>
+        <version>2.1.3</version>
         <relativePath>..</relativePath>
     </parent>
 
@@ -25,12 +25,12 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.2.0-SNAPSHOT</version>
+            <version>2.1.3</version>
         </dependency>
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.2.0-SNAPSHOT</version>
+            <version>2.1.3</version>
             <classifier>tests</classifier>
             <type>test-jar</type>
             <scope>test</scope>
diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml
index 236e173f4..02b12448a 100644
--- a/aws-serverless-java-container-springboot3/pom.xml
+++ b/aws-serverless-java-container-springboot3/pom.xml
@@ -3,7 +3,7 @@
     <parent>
         <artifactId>aws-serverless-java-container</artifactId>
         <groupId>com.amazonaws.serverless</groupId>
-        <version>2.2.0-SNAPSHOT</version>
+        <version>2.1.3</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
@@ -12,7 +12,7 @@
     <name>AWS Serverless Java container support - SpringBoot 3 implementation</name>
     <description>Allows Java applications written for SpringBoot 3 to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.2.0-SNAPSHOT</version>
+    <version>2.1.3</version>
 
     <properties>
         <spring.version>6.2.5</spring.version>
@@ -30,12 +30,12 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.2.0-SNAPSHOT</version>
+            <version>2.1.3</version>
         </dependency>
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.2.0-SNAPSHOT</version>
+            <version>2.1.3</version>
             <classifier>tests</classifier>
             <type>test-jar</type>
             <scope>test</scope>
diff --git a/aws-serverless-jersey-archetype/pom.xml b/aws-serverless-jersey-archetype/pom.xml
index 412459c41..0cbd9a835 100644
--- a/aws-serverless-jersey-archetype/pom.xml
+++ b/aws-serverless-jersey-archetype/pom.xml
@@ -4,17 +4,17 @@
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.2.0-SNAPSHOT</version>
+        <version>2.1.3</version>
     </parent>
 
     <groupId>com.amazonaws.serverless.archetypes</groupId>
     <artifactId>aws-serverless-jersey-archetype</artifactId>
-    <version>2.2.0-SNAPSHOT</version>
+    <version>2.1.3</version>
     <packaging>maven-archetype</packaging>
 
     <scm>
         <url>https://github.com/aws/serverless-java-container.git</url>
-      <tag>HEAD</tag>
+      <tag>aws-serverless-java-container-2.1.3</tag>
   </scm>
 
     <licenses>
diff --git a/aws-serverless-spring-archetype/pom.xml b/aws-serverless-spring-archetype/pom.xml
index 8b95c5332..0e4e892a5 100644
--- a/aws-serverless-spring-archetype/pom.xml
+++ b/aws-serverless-spring-archetype/pom.xml
@@ -4,17 +4,17 @@
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.2.0-SNAPSHOT</version>
+        <version>2.1.3</version>
     </parent>
 
     <groupId>com.amazonaws.serverless.archetypes</groupId>
     <artifactId>aws-serverless-spring-archetype</artifactId>
-    <version>2.2.0-SNAPSHOT</version>
+    <version>2.1.3</version>
     <packaging>maven-archetype</packaging>
 
     <scm>
         <url>https://github.com/aws/serverless-java-container.git</url>
-      <tag>HEAD</tag>
+      <tag>aws-serverless-java-container-2.1.3</tag>
   </scm>
 
     <licenses>
diff --git a/aws-serverless-springboot3-archetype/pom.xml b/aws-serverless-springboot3-archetype/pom.xml
index 89469c2e4..ed23960ce 100644
--- a/aws-serverless-springboot3-archetype/pom.xml
+++ b/aws-serverless-springboot3-archetype/pom.xml
@@ -4,17 +4,17 @@
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.2.0-SNAPSHOT</version>
+        <version>2.1.3</version>
     </parent>
 
     <groupId>com.amazonaws.serverless.archetypes</groupId>
     <artifactId>aws-serverless-springboot3-archetype</artifactId>
-    <version>2.2.0-SNAPSHOT</version>
+    <version>2.1.3</version>
     <packaging>maven-archetype</packaging>
 
     <scm>
         <url>https://github.com/aws/serverless-java-container.git</url>
-      <tag>HEAD</tag>
+      <tag>aws-serverless-java-container-2.1.3</tag>
   </scm>
 
     <licenses>
diff --git a/pom.xml b/pom.xml
index 6bc2ff232..9ac118694 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
     <groupId>com.amazonaws.serverless</groupId>
     <artifactId>aws-serverless-java-container</artifactId>
     <packaging>pom</packaging>
-    <version>2.2.0-SNAPSHOT</version>
+    <version>2.1.3</version>
     <name>AWS Serverless Java container</name>
     <description>A Java framework to run Spring, Spring Boot, Jersey, Spark, and Struts applications inside AWS Lambda</description>
     <url>https://github.com/aws/serverless-java-container</url>
@@ -37,7 +37,7 @@
     <scm>
         <url>https://github.com/aws/serverless-java-container</url>
         <connection>scm:git:https://github.com/aws/serverless-java-container.git</connection>
-      <tag>HEAD</tag>
+      <tag>aws-serverless-java-container-2.1.3</tag>
     </scm>
 
     <repositories>

From 7d20289b26ba3e0a02d9393ccd234b04a0d909b9 Mon Sep 17 00:00:00 2001
From: deki <deki@users.noreply.github.com>
Date: Sat, 5 Apr 2025 07:37:24 +0000
Subject: [PATCH 392/430] chore: release - prepare for next development
 iteration

---
 aws-serverless-java-container-core/pom.xml        | 4 ++--
 aws-serverless-java-container-jersey/pom.xml      | 8 ++++----
 aws-serverless-java-container-spring/pom.xml      | 8 ++++----
 aws-serverless-java-container-springboot3/pom.xml | 8 ++++----
 aws-serverless-jersey-archetype/pom.xml           | 6 +++---
 aws-serverless-spring-archetype/pom.xml           | 6 +++---
 aws-serverless-springboot3-archetype/pom.xml      | 6 +++---
 pom.xml                                           | 4 ++--
 8 files changed, 25 insertions(+), 25 deletions(-)

diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml
index 0e33fc12b..15cd203ab 100644
--- a/aws-serverless-java-container-core/pom.xml
+++ b/aws-serverless-java-container-core/pom.xml
@@ -6,12 +6,12 @@
     <name>AWS Serverless Java container support - Core</name>
     <description>Allows Java applications written for a servlet container to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.1.3</version>
+    <version>2.1.4-SNAPSHOT</version>
 
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.1.3</version>
+        <version>2.1.4-SNAPSHOT</version>
         <relativePath>..</relativePath>
     </parent>
 
diff --git a/aws-serverless-java-container-jersey/pom.xml b/aws-serverless-java-container-jersey/pom.xml
index 2777d8d5e..905f4d463 100644
--- a/aws-serverless-java-container-jersey/pom.xml
+++ b/aws-serverless-java-container-jersey/pom.xml
@@ -6,12 +6,12 @@
     <name>AWS Serverless Java container support - Jersey implementation</name>
     <description>Allows Java applications written for Jersey to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.1.3</version>
+    <version>2.1.4-SNAPSHOT</version>
 
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.1.3</version>
+        <version>2.1.4-SNAPSHOT</version>
         <relativePath>..</relativePath>
     </parent>
 
@@ -24,7 +24,7 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.1.3</version>
+            <version>2.1.4-SNAPSHOT</version>
             <exclusions>
                 <exclusion>
                     <groupId>com.fasterxml.jackson.core</groupId>
@@ -35,7 +35,7 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.1.3</version>
+            <version>2.1.4-SNAPSHOT</version>
             <classifier>tests</classifier>
             <type>test-jar</type>
             <scope>test</scope>
diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml
index dc6e49cda..eeaf7a2a9 100644
--- a/aws-serverless-java-container-spring/pom.xml
+++ b/aws-serverless-java-container-spring/pom.xml
@@ -6,12 +6,12 @@
     <name>AWS Serverless Java container support - Spring implementation</name>
     <description>Allows Java applications written for the Spring framework to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.1.3</version>
+    <version>2.1.4-SNAPSHOT</version>
 
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.1.3</version>
+        <version>2.1.4-SNAPSHOT</version>
         <relativePath>..</relativePath>
     </parent>
 
@@ -25,12 +25,12 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.1.3</version>
+            <version>2.1.4-SNAPSHOT</version>
         </dependency>
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.1.3</version>
+            <version>2.1.4-SNAPSHOT</version>
             <classifier>tests</classifier>
             <type>test-jar</type>
             <scope>test</scope>
diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml
index 02b12448a..0186a3802 100644
--- a/aws-serverless-java-container-springboot3/pom.xml
+++ b/aws-serverless-java-container-springboot3/pom.xml
@@ -3,7 +3,7 @@
     <parent>
         <artifactId>aws-serverless-java-container</artifactId>
         <groupId>com.amazonaws.serverless</groupId>
-        <version>2.1.3</version>
+        <version>2.1.4-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
@@ -12,7 +12,7 @@
     <name>AWS Serverless Java container support - SpringBoot 3 implementation</name>
     <description>Allows Java applications written for SpringBoot 3 to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.1.3</version>
+    <version>2.1.4-SNAPSHOT</version>
 
     <properties>
         <spring.version>6.2.5</spring.version>
@@ -30,12 +30,12 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.1.3</version>
+            <version>2.1.4-SNAPSHOT</version>
         </dependency>
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.1.3</version>
+            <version>2.1.4-SNAPSHOT</version>
             <classifier>tests</classifier>
             <type>test-jar</type>
             <scope>test</scope>
diff --git a/aws-serverless-jersey-archetype/pom.xml b/aws-serverless-jersey-archetype/pom.xml
index 0cbd9a835..c85993a40 100644
--- a/aws-serverless-jersey-archetype/pom.xml
+++ b/aws-serverless-jersey-archetype/pom.xml
@@ -4,17 +4,17 @@
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.1.3</version>
+        <version>2.1.4-SNAPSHOT</version>
     </parent>
 
     <groupId>com.amazonaws.serverless.archetypes</groupId>
     <artifactId>aws-serverless-jersey-archetype</artifactId>
-    <version>2.1.3</version>
+    <version>2.1.4-SNAPSHOT</version>
     <packaging>maven-archetype</packaging>
 
     <scm>
         <url>https://github.com/aws/serverless-java-container.git</url>
-      <tag>aws-serverless-java-container-2.1.3</tag>
+      <tag>HEAD</tag>
   </scm>
 
     <licenses>
diff --git a/aws-serverless-spring-archetype/pom.xml b/aws-serverless-spring-archetype/pom.xml
index 0e4e892a5..46e3d8dbc 100644
--- a/aws-serverless-spring-archetype/pom.xml
+++ b/aws-serverless-spring-archetype/pom.xml
@@ -4,17 +4,17 @@
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.1.3</version>
+        <version>2.1.4-SNAPSHOT</version>
     </parent>
 
     <groupId>com.amazonaws.serverless.archetypes</groupId>
     <artifactId>aws-serverless-spring-archetype</artifactId>
-    <version>2.1.3</version>
+    <version>2.1.4-SNAPSHOT</version>
     <packaging>maven-archetype</packaging>
 
     <scm>
         <url>https://github.com/aws/serverless-java-container.git</url>
-      <tag>aws-serverless-java-container-2.1.3</tag>
+      <tag>HEAD</tag>
   </scm>
 
     <licenses>
diff --git a/aws-serverless-springboot3-archetype/pom.xml b/aws-serverless-springboot3-archetype/pom.xml
index ed23960ce..01b157e58 100644
--- a/aws-serverless-springboot3-archetype/pom.xml
+++ b/aws-serverless-springboot3-archetype/pom.xml
@@ -4,17 +4,17 @@
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.1.3</version>
+        <version>2.1.4-SNAPSHOT</version>
     </parent>
 
     <groupId>com.amazonaws.serverless.archetypes</groupId>
     <artifactId>aws-serverless-springboot3-archetype</artifactId>
-    <version>2.1.3</version>
+    <version>2.1.4-SNAPSHOT</version>
     <packaging>maven-archetype</packaging>
 
     <scm>
         <url>https://github.com/aws/serverless-java-container.git</url>
-      <tag>aws-serverless-java-container-2.1.3</tag>
+      <tag>HEAD</tag>
   </scm>
 
     <licenses>
diff --git a/pom.xml b/pom.xml
index 9ac118694..d679e20a4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
     <groupId>com.amazonaws.serverless</groupId>
     <artifactId>aws-serverless-java-container</artifactId>
     <packaging>pom</packaging>
-    <version>2.1.3</version>
+    <version>2.1.4-SNAPSHOT</version>
     <name>AWS Serverless Java container</name>
     <description>A Java framework to run Spring, Spring Boot, Jersey, Spark, and Struts applications inside AWS Lambda</description>
     <url>https://github.com/aws/serverless-java-container</url>
@@ -37,7 +37,7 @@
     <scm>
         <url>https://github.com/aws/serverless-java-container</url>
         <connection>scm:git:https://github.com/aws/serverless-java-container.git</connection>
-      <tag>aws-serverless-java-container-2.1.3</tag>
+      <tag>HEAD</tag>
     </scm>
 
     <repositories>

From 215b15e90f24c8bdf6dace204cc41b82a983aab4 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 7 Apr 2025 04:14:00 +0000
Subject: [PATCH 393/430] chore(deps): bump org.owasp:dependency-check-maven
 from 12.1.0 to 12.1.1

Bumps [org.owasp:dependency-check-maven](https://github.com/dependency-check/DependencyCheck) from 12.1.0 to 12.1.1.
- [Release notes](https://github.com/dependency-check/DependencyCheck/releases)
- [Changelog](https://github.com/dependency-check/DependencyCheck/blob/main/CHANGELOG.md)
- [Commits](https://github.com/dependency-check/DependencyCheck/compare/v12.1.0...v12.1.1)

---
updated-dependencies:
- dependency-name: org.owasp:dependency-check-maven
  dependency-version: 12.1.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index d679e20a4..7b4aea560 100644
--- a/pom.xml
+++ b/pom.xml
@@ -77,7 +77,7 @@
 
     <properties>
         <jacoco.minCoverage>0.7</jacoco.minCoverage>
-        <dependencyCheck.version>12.1.0</dependencyCheck.version>
+        <dependencyCheck.version>12.1.1</dependencyCheck.version>
         <jackson.version>2.18.3</jackson.version>
         <slf4j.version>2.0.17</slf4j.version>
         <junit.version>5.12.1</junit.version>

From 50c2ccd0b4ce469f7155c0706dedfacaf0974ff1 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 7 Apr 2025 04:14:16 +0000
Subject: [PATCH 394/430] chore(deps): bump org.owasp:dependency-check-maven

Bumps [org.owasp:dependency-check-maven](https://github.com/dependency-check/DependencyCheck) from 12.1.0 to 12.1.1.
- [Release notes](https://github.com/dependency-check/DependencyCheck/releases)
- [Changelog](https://github.com/dependency-check/DependencyCheck/blob/main/CHANGELOG.md)
- [Commits](https://github.com/dependency-check/DependencyCheck/compare/v12.1.0...v12.1.1)

---
updated-dependencies:
- dependency-name: org.owasp:dependency-check-maven
  dependency-version: 12.1.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index d679e20a4..7b4aea560 100644
--- a/pom.xml
+++ b/pom.xml
@@ -77,7 +77,7 @@
 
     <properties>
         <jacoco.minCoverage>0.7</jacoco.minCoverage>
-        <dependencyCheck.version>12.1.0</dependencyCheck.version>
+        <dependencyCheck.version>12.1.1</dependencyCheck.version>
         <jackson.version>2.18.3</jackson.version>
         <slf4j.version>2.0.17</slf4j.version>
         <junit.version>5.12.1</junit.version>

From 2e0d79048dfd9b3ee7534959d00678d4c153a7b1 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 7 Apr 2025 04:14:26 +0000
Subject: [PATCH 395/430] chore(deps): bump org.owasp:dependency-check-maven

Bumps [org.owasp:dependency-check-maven](https://github.com/dependency-check/DependencyCheck) from 12.1.0 to 12.1.1.
- [Release notes](https://github.com/dependency-check/DependencyCheck/releases)
- [Changelog](https://github.com/dependency-check/DependencyCheck/blob/main/CHANGELOG.md)
- [Commits](https://github.com/dependency-check/DependencyCheck/compare/v12.1.0...v12.1.1)

---
updated-dependencies:
- dependency-name: org.owasp:dependency-check-maven
  dependency-version: 12.1.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index d679e20a4..7b4aea560 100644
--- a/pom.xml
+++ b/pom.xml
@@ -77,7 +77,7 @@
 
     <properties>
         <jacoco.minCoverage>0.7</jacoco.minCoverage>
-        <dependencyCheck.version>12.1.0</dependencyCheck.version>
+        <dependencyCheck.version>12.1.1</dependencyCheck.version>
         <jackson.version>2.18.3</jackson.version>
         <slf4j.version>2.0.17</slf4j.version>
         <junit.version>5.12.1</junit.version>

From 8a7d9031b211ff9a3355489083f2a7702af1deed Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 7 Apr 2025 04:14:37 +0000
Subject: [PATCH 396/430] chore(deps): bump org.owasp:dependency-check-maven

Bumps [org.owasp:dependency-check-maven](https://github.com/dependency-check/DependencyCheck) from 12.1.0 to 12.1.1.
- [Release notes](https://github.com/dependency-check/DependencyCheck/releases)
- [Changelog](https://github.com/dependency-check/DependencyCheck/blob/main/CHANGELOG.md)
- [Commits](https://github.com/dependency-check/DependencyCheck/compare/v12.1.0...v12.1.1)

---
updated-dependencies:
- dependency-name: org.owasp:dependency-check-maven
  dependency-version: 12.1.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index d679e20a4..7b4aea560 100644
--- a/pom.xml
+++ b/pom.xml
@@ -77,7 +77,7 @@
 
     <properties>
         <jacoco.minCoverage>0.7</jacoco.minCoverage>
-        <dependencyCheck.version>12.1.0</dependencyCheck.version>
+        <dependencyCheck.version>12.1.1</dependencyCheck.version>
         <jackson.version>2.18.3</jackson.version>
         <slf4j.version>2.0.17</slf4j.version>
         <junit.version>5.12.1</junit.version>

From 9088431d352db09e54d0cab55e1a312533c525c7 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 7 Apr 2025 04:14:47 +0000
Subject: [PATCH 397/430] chore(deps): bump org.owasp:dependency-check-maven

Bumps [org.owasp:dependency-check-maven](https://github.com/dependency-check/DependencyCheck) from 12.1.0 to 12.1.1.
- [Release notes](https://github.com/dependency-check/DependencyCheck/releases)
- [Changelog](https://github.com/dependency-check/DependencyCheck/blob/main/CHANGELOG.md)
- [Commits](https://github.com/dependency-check/DependencyCheck/compare/v12.1.0...v12.1.1)

---
updated-dependencies:
- dependency-name: org.owasp:dependency-check-maven
  dependency-version: 12.1.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index d679e20a4..7b4aea560 100644
--- a/pom.xml
+++ b/pom.xml
@@ -77,7 +77,7 @@
 
     <properties>
         <jacoco.minCoverage>0.7</jacoco.minCoverage>
-        <dependencyCheck.version>12.1.0</dependencyCheck.version>
+        <dependencyCheck.version>12.1.1</dependencyCheck.version>
         <jackson.version>2.18.3</jackson.version>
         <slf4j.version>2.0.17</slf4j.version>
         <junit.version>5.12.1</junit.version>

From 41f67a57b649882e933d5fc6c35bb5f3d7252de1 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 14 Apr 2025 04:14:02 +0000
Subject: [PATCH 398/430] chore(deps): bump org.junit:junit-bom

Bumps [org.junit:junit-bom](https://github.com/junit-team/junit5) from 5.12.1 to 5.12.2.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.12.1...r5.12.2)

---
updated-dependencies:
- dependency-name: org.junit:junit-bom
  dependency-version: 5.12.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 .../src/main/resources/archetype-resources/build.gradle         | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
index 1897c2d05..f6ff59963 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
@@ -19,7 +19,7 @@ dependencies {
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
   testImplementation("org.apache.httpcomponents.client5:httpclient5:5.4.3")
-  testImplementation(platform("org.junit:junit-bom:5.12.1"))
+  testImplementation(platform("org.junit:junit-bom:5.12.2"))
   testImplementation("org.junit.jupiter:junit-jupiter")
   testRuntimeOnly("org.junit.platform:junit-platform-launcher")
 }

From a58d611dbdf97d87b348dd0e800cddb64d51b2f4 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 14 Apr 2025 04:26:06 +0000
Subject: [PATCH 399/430] chore(deps): bump the junit group across 8
 directories with 1 update

Bumps the junit group with 1 update in the / directory: [org.junit:junit-bom](https://github.com/junit-team/junit5).
Bumps the junit group with 1 update in the /aws-serverless-java-container-core directory: [org.junit:junit-bom](https://github.com/junit-team/junit5).
Bumps the junit group with 1 update in the /aws-serverless-java-container-jersey directory: [org.junit:junit-bom](https://github.com/junit-team/junit5).
Bumps the junit group with 1 update in the /aws-serverless-java-container-spring directory: [org.junit:junit-bom](https://github.com/junit-team/junit5).
Bumps the junit group with 1 update in the /aws-serverless-java-container-springboot3 directory: [org.junit:junit-bom](https://github.com/junit-team/junit5).
Bumps the junit group with 1 update in the /aws-serverless-jersey-archetype directory: [org.junit:junit-bom](https://github.com/junit-team/junit5).
Bumps the junit group with 1 update in the /aws-serverless-spring-archetype directory: [org.junit:junit-bom](https://github.com/junit-team/junit5).
Bumps the junit group with 1 update in the /aws-serverless-springboot3-archetype directory: [org.junit:junit-bom](https://github.com/junit-team/junit5).


Updates `org.junit:junit-bom` from 5.12.1 to 5.12.2
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.12.1...r5.12.2)

Updates `org.junit:junit-bom` from 5.12.1 to 5.12.2
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.12.1...r5.12.2)

Updates `org.junit:junit-bom` from 5.12.1 to 5.12.2
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.12.1...r5.12.2)

Updates `org.junit:junit-bom` from 5.12.1 to 5.12.2
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.12.1...r5.12.2)

Updates `org.junit:junit-bom` from 5.12.1 to 5.12.2
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.12.1...r5.12.2)

Updates `org.junit:junit-bom` from 5.12.1 to 5.12.2
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.12.1...r5.12.2)

Updates `org.junit:junit-bom` from 5.12.1 to 5.12.2
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.12.1...r5.12.2)

Updates `org.junit:junit-bom` from 5.12.1 to 5.12.2
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.12.1...r5.12.2)

---
updated-dependencies:
- dependency-name: org.junit:junit-bom
  dependency-version: 5.12.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: junit
- dependency-name: org.junit:junit-bom
  dependency-version: 5.12.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: junit
- dependency-name: org.junit:junit-bom
  dependency-version: 5.12.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: junit
- dependency-name: org.junit:junit-bom
  dependency-version: 5.12.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: junit
- dependency-name: org.junit:junit-bom
  dependency-version: 5.12.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: junit
- dependency-name: org.junit:junit-bom
  dependency-version: 5.12.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: junit
- dependency-name: org.junit:junit-bom
  dependency-version: 5.12.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: junit
- dependency-name: org.junit:junit-bom
  dependency-version: 5.12.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: junit
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index d679e20a4..33bef240a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -80,7 +80,7 @@
         <dependencyCheck.version>12.1.0</dependencyCheck.version>
         <jackson.version>2.18.3</jackson.version>
         <slf4j.version>2.0.17</slf4j.version>
-        <junit.version>5.12.1</junit.version>
+        <junit.version>5.12.2</junit.version>
         <mockito.version>5.17.0</mockito.version>
         <hamcrest.version>1.3</hamcrest.version>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

From dc9c63b491b41d691a1e3ce16a7bc2410d7d11e9 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 21 Apr 2025 05:43:05 +0000
Subject: [PATCH 400/430] chore(deps): bump
 com.h3xstream.findsecbugs:findsecbugs-plugin

Bumps [com.h3xstream.findsecbugs:findsecbugs-plugin](https://github.com/find-sec-bugs/find-sec-bugs) from 1.13.0 to 1.14.0.
- [Release notes](https://github.com/find-sec-bugs/find-sec-bugs/releases)
- [Changelog](https://github.com/find-sec-bugs/find-sec-bugs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/find-sec-bugs/find-sec-bugs/commits)

---
updated-dependencies:
- dependency-name: com.h3xstream.findsecbugs:findsecbugs-plugin
  dependency-version: 1.14.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index be3e8ff83..a076fa924 100644
--- a/pom.xml
+++ b/pom.xml
@@ -270,7 +270,7 @@
                             <plugin>
                                 <groupId>com.h3xstream.findsecbugs</groupId>
                                 <artifactId>findsecbugs-plugin</artifactId>
-                                <version>1.13.0</version>
+                                <version>1.14.0</version>
                             </plugin>
                         </plugins>
                     </configuration>

From 53beaa1b6c5a8bf2125d1dee5ae0550b5581773b Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Tue, 6 May 2025 14:49:21 +0200
Subject: [PATCH 401/430] chore(deps): Update Spring dependencies (framework to
 6.2.6, security to 6.4.5, boot to 3.4.5)

---
 aws-serverless-java-container-core/pom.xml                  | 2 +-
 aws-serverless-java-container-spring/pom.xml                | 4 ++--
 aws-serverless-java-container-springboot3/pom.xml           | 6 +++---
 .../src/main/resources/archetype-resources/build.gradle     | 4 ++--
 .../src/main/resources/archetype-resources/pom.xml          | 2 +-
 .../src/main/resources/archetype-resources/build.gradle     | 2 +-
 .../src/main/resources/archetype-resources/pom.xml          | 2 +-
 samples/spring/pet-store/build.gradle                       | 4 ++--
 samples/spring/pet-store/pom.xml                            | 2 +-
 samples/springboot3/alt-pet-store/build.gradle              | 2 +-
 samples/springboot3/alt-pet-store/pom.xml                   | 2 +-
 samples/springboot3/graphql-pet-store/pom.xml               | 2 +-
 samples/springboot3/pet-store-native/pom.xml                | 2 +-
 samples/springboot3/pet-store/build.gradle                  | 2 +-
 samples/springboot3/pet-store/pom.xml                       | 2 +-
 15 files changed, 20 insertions(+), 20 deletions(-)

diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml
index 15cd203ab..fa34e8d88 100644
--- a/aws-serverless-java-container-core/pom.xml
+++ b/aws-serverless-java-container-core/pom.xml
@@ -60,7 +60,7 @@
         <dependency>
             <groupId>org.springframework.security</groupId>
             <artifactId>spring-security-web</artifactId>
-            <version>6.4.4</version>
+            <version>6.4.5</version>
             <scope>test</scope>
         </dependency>
     </dependencies>
diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml
index eeaf7a2a9..f26cc578d 100644
--- a/aws-serverless-java-container-spring/pom.xml
+++ b/aws-serverless-java-container-spring/pom.xml
@@ -16,8 +16,8 @@
     </parent>
 
     <properties>
-        <spring.version>6.2.5</spring.version>
-        <spring-security.version>6.4.4</spring-security.version>
+        <spring.version>6.2.6</spring.version>
+        <spring-security.version>6.4.5</spring-security.version>
     </properties>
 
     <dependencies>
diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml
index 619cdaa91..b09d851b0 100644
--- a/aws-serverless-java-container-springboot3/pom.xml
+++ b/aws-serverless-java-container-springboot3/pom.xml
@@ -15,9 +15,9 @@
     <version>2.1.4-SNAPSHOT</version>
 
     <properties>
-        <spring.version>6.2.5</spring.version>
-        <springboot.version>3.4.4</springboot.version>
-        <springsecurity.version>6.4.4</springsecurity.version>
+        <spring.version>6.2.6</spring.version>
+        <springboot.version>3.4.5</springboot.version>
+        <springsecurity.version>6.4.5</springsecurity.version>
     </properties>
 
     <dependencies>
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
index f6ff59963..026885dd5 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
@@ -7,8 +7,8 @@ repositories {
 
 dependencies {
   implementation (
-          'org.springframework:spring-webmvc:6.2.5',
-          'org.springframework:spring-context:6.2.5',
+          'org.springframework:spring-webmvc:6.2.6',
+          'org.springframework:spring-context:6.2.6',
           'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)',
           'org.apache.logging.log4j:log4j-core:2.24.3',
           'org.apache.logging.log4j:log4j-api:2.24.3',
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
index fe0b8b6cb..48b70f27f 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
@@ -16,7 +16,7 @@
     <properties>
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
-        <spring.version>6.2.5</spring.version>
+        <spring.version>6.2.6</spring.version>
         <junit.version>5.12.1</junit.version>
         <log4j.version>2.24.2</log4j.version>
     </properties>
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
index 6f3128660..d44a26ccd 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
@@ -9,7 +9,7 @@ repositories {
 
 dependencies {
   implementation (
-          'org.springframework.boot:spring-boot-starter-web:3.4.4',
+          'org.springframework.boot:spring-boot-starter-web:3.4.5',
           'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)',
   )
 
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
index 091d1ad17..73d407dd8 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
@@ -16,7 +16,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.4.4</version>
+        <version>3.4.5</version>
     </parent>
 
     <properties>
diff --git a/samples/spring/pet-store/build.gradle b/samples/spring/pet-store/build.gradle
index 0c28ff2b2..4d60cdd08 100644
--- a/samples/spring/pet-store/build.gradle
+++ b/samples/spring/pet-store/build.gradle
@@ -7,8 +7,8 @@ repositories {
 
 dependencies {
   implementation (
-          'org.springframework:spring-webmvc:6.2.5',
-          'org.springframework:spring-context:6.2.5',
+          'org.springframework:spring-webmvc:6.2.6',
+          'org.springframework:spring-context:6.2.6',
           'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)',
           'org.apache.logging.log4j:log4j-core:2.24.3',
           'org.apache.logging.log4j:log4j-api:2.24.3',
diff --git a/samples/spring/pet-store/pom.xml b/samples/spring/pet-store/pom.xml
index 4945ba716..d4f230782 100644
--- a/samples/spring/pet-store/pom.xml
+++ b/samples/spring/pet-store/pom.xml
@@ -24,7 +24,7 @@
     </licenses>
 
     <properties>
-        <spring.version>6.2.5</spring.version>
+        <spring.version>6.2.6</spring.version>
         <log4j.version>2.24.3</log4j.version>
         <maven.compiler.source>17</maven.compiler.source>
         <maven.compiler.target>17</maven.compiler.target>
diff --git a/samples/springboot3/alt-pet-store/build.gradle b/samples/springboot3/alt-pet-store/build.gradle
index 59352a117..653135db0 100644
--- a/samples/springboot3/alt-pet-store/build.gradle
+++ b/samples/springboot3/alt-pet-store/build.gradle
@@ -9,7 +9,7 @@ repositories {
 
 dependencies {
   implementation (
-          implementation('org.springframework.boot:spring-boot-starter-web:3.4.4') {
+          implementation('org.springframework.boot:spring-boot-starter-web:3.4.5') {
             exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat'
           },
           'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)',
diff --git a/samples/springboot3/alt-pet-store/pom.xml b/samples/springboot3/alt-pet-store/pom.xml
index f1f605c6c..0c98f1fe5 100644
--- a/samples/springboot3/alt-pet-store/pom.xml
+++ b/samples/springboot3/alt-pet-store/pom.xml
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.4.4</version>
+        <version>3.4.5</version>
     </parent>
 
     <licenses>
diff --git a/samples/springboot3/graphql-pet-store/pom.xml b/samples/springboot3/graphql-pet-store/pom.xml
index 76b804e51..d3b4ef079 100644
--- a/samples/springboot3/graphql-pet-store/pom.xml
+++ b/samples/springboot3/graphql-pet-store/pom.xml
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.4.4</version>
+        <version>3.4.5</version>
     </parent>
 
     <licenses>
diff --git a/samples/springboot3/pet-store-native/pom.xml b/samples/springboot3/pet-store-native/pom.xml
index 2dc5508d1..960442014 100644
--- a/samples/springboot3/pet-store-native/pom.xml
+++ b/samples/springboot3/pet-store-native/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.springframework.boot</groupId>
 		<artifactId>spring-boot-starter-parent</artifactId>
-		<version>3.4.4</version>
+		<version>3.4.5</version>
 		<relativePath /> <!-- lookup parent from repository -->
 	</parent>
 	<groupId>com.amazonaws.serverless.sample</groupId>
diff --git a/samples/springboot3/pet-store/build.gradle b/samples/springboot3/pet-store/build.gradle
index 59352a117..653135db0 100644
--- a/samples/springboot3/pet-store/build.gradle
+++ b/samples/springboot3/pet-store/build.gradle
@@ -9,7 +9,7 @@ repositories {
 
 dependencies {
   implementation (
-          implementation('org.springframework.boot:spring-boot-starter-web:3.4.4') {
+          implementation('org.springframework.boot:spring-boot-starter-web:3.4.5') {
             exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat'
           },
           'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)',
diff --git a/samples/springboot3/pet-store/pom.xml b/samples/springboot3/pet-store/pom.xml
index af519947e..2896d90dc 100644
--- a/samples/springboot3/pet-store/pom.xml
+++ b/samples/springboot3/pet-store/pom.xml
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.4.4</version>
+        <version>3.4.5</version>
     </parent>
 
     <licenses>

From 36bdfb8c12576b13adb8d273538916526c3496ac Mon Sep 17 00:00:00 2001
From: Dennis Kieselhorst <mail@dekies.de>
Date: Tue, 6 May 2025 21:29:03 +0200
Subject: [PATCH 402/430] doc: add 3.x version (#1207)

---
 README.md | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/README.md b/README.md
index 9df70fdff..3f26e0c1b 100644
--- a/README.md
+++ b/README.md
@@ -5,10 +5,11 @@ Serverless Java Container natively supports API Gateway's proxy integration mode
 
 Currently the following versions are maintained:
 
-| Version | Branch | Java Enterprise support | Spring versions | JAX-RS/ Jersey version | Struts support | Spark support |
-|---------|--------|-------------------------|-----------------|------------------------|----------------|---------------|
-| 1.x                      | [1.x](https://github.com/aws/serverless-java-container/tree/1.x)    | Java EE (javax.*)       | 5.x (Boot 2.x)  | 2.x                    | :white_check_mark: | :white_check_mark: |
-| 2.x     | [main](https://github.com/aws/serverless-java-container/tree/main)   | Jakarta EE (jakarta.*)  | 6.x (Boot 3.x)  | 3.x                    | :x:            | :x:           |
+| Version | Branch | Java Enterprise support     | Spring versions | JAX-RS/ Jersey version | Struts support | Spark support |
+|---------|--------|-----------------------------|-----------------|------------------------|----------------|---------------|
+| 1.x     | [1.x](https://github.com/aws/serverless-java-container/tree/1.x)    | Java EE (javax.*)           | 5.x (Boot 2.x)  | 2.x                    | :white_check_mark: | :white_check_mark: |
+| 2.x     | [main](https://github.com/aws/serverless-java-container/tree/main)   | Jakarta EE 9-10 (jakarta.*) | 6.x (Boot 3.x)  | 3.x                    | :x:            | :x:           |
+| 3.x     |    | Jakarta EE 11 (jakarta.*)   | 7.x (Boot 4.x)  | 4.x                    | :x:            | :x:           |
 
 Follow the quick start guides in [our wiki](https://github.com/aws/serverless-java-container/wiki) to integrate Serverless Java Container with your project:
 * [Spring quick start](https://github.com/aws/serverless-java-container/wiki/Quick-start---Spring)

From faf0d48e3a3cbf95b9a80ca28c9a5b3d6b066da8 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 19 May 2025 04:30:36 +0000
Subject: [PATCH 403/430] chore(deps): bump
 org.apache.maven.archetype:archetype-packaging

Bumps [org.apache.maven.archetype:archetype-packaging](https://github.com/apache/maven-archetype) from 3.3.1 to 3.4.0.
- [Release notes](https://github.com/apache/maven-archetype/releases)
- [Commits](https://github.com/apache/maven-archetype/compare/maven-archetype-3.3.1...maven-archetype-3.4.0)

---
updated-dependencies:
- dependency-name: org.apache.maven.archetype:archetype-packaging
  dependency-version: 3.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 aws-serverless-jersey-archetype/pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/aws-serverless-jersey-archetype/pom.xml b/aws-serverless-jersey-archetype/pom.xml
index c85993a40..1b50cbfa6 100644
--- a/aws-serverless-jersey-archetype/pom.xml
+++ b/aws-serverless-jersey-archetype/pom.xml
@@ -48,7 +48,7 @@
             <extension>
                 <groupId>org.apache.maven.archetype</groupId>
                 <artifactId>archetype-packaging</artifactId>
-                <version>3.3.1</version>
+                <version>3.4.0</version>
             </extension>
         </extensions>
 

From 7d1b723e52a5bde74e96907cb1abbeba2f31feb0 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 19 May 2025 04:30:43 +0000
Subject: [PATCH 404/430] chore(deps): bump
 org.apache.maven.plugins:maven-archetype-plugin

Bumps [org.apache.maven.plugins:maven-archetype-plugin](https://github.com/apache/maven-archetype) from 3.3.1 to 3.4.0.
- [Release notes](https://github.com/apache/maven-archetype/releases)
- [Commits](https://github.com/apache/maven-archetype/compare/maven-archetype-3.3.1...maven-archetype-3.4.0)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-archetype-plugin
  dependency-version: 3.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 aws-serverless-jersey-archetype/pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/aws-serverless-jersey-archetype/pom.xml b/aws-serverless-jersey-archetype/pom.xml
index c85993a40..806371691 100644
--- a/aws-serverless-jersey-archetype/pom.xml
+++ b/aws-serverless-jersey-archetype/pom.xml
@@ -65,7 +65,7 @@
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-archetype-plugin</artifactId>
-                    <version>3.3.1</version>
+                    <version>3.4.0</version>
                     <executions>
                         <execution>
                             <goals>

From 4486eb4b56b702e1d16411963030d01dd2eb9f31 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 19 May 2025 04:30:56 +0000
Subject: [PATCH 405/430] chore(deps): bump
 org.apache.maven.plugins:maven-archetype-plugin

Bumps [org.apache.maven.plugins:maven-archetype-plugin](https://github.com/apache/maven-archetype) from 3.3.1 to 3.4.0.
- [Release notes](https://github.com/apache/maven-archetype/releases)
- [Commits](https://github.com/apache/maven-archetype/compare/maven-archetype-3.3.1...maven-archetype-3.4.0)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-archetype-plugin
  dependency-version: 3.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 aws-serverless-spring-archetype/pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/aws-serverless-spring-archetype/pom.xml b/aws-serverless-spring-archetype/pom.xml
index 46e3d8dbc..543fb735c 100644
--- a/aws-serverless-spring-archetype/pom.xml
+++ b/aws-serverless-spring-archetype/pom.xml
@@ -66,7 +66,7 @@
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-archetype-plugin</artifactId>
-                    <version>3.3.1</version>
+                    <version>3.4.0</version>
                     <executions>
                         <execution>
                             <goals>

From af5bf64344a7e6cce416ae99d3ee1f0c120b9e68 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 19 May 2025 04:31:00 +0000
Subject: [PATCH 406/430] chore(deps): bump
 org.apache.maven.archetype:archetype-packaging

Bumps [org.apache.maven.archetype:archetype-packaging](https://github.com/apache/maven-archetype) from 3.3.1 to 3.4.0.
- [Release notes](https://github.com/apache/maven-archetype/releases)
- [Commits](https://github.com/apache/maven-archetype/compare/maven-archetype-3.3.1...maven-archetype-3.4.0)

---
updated-dependencies:
- dependency-name: org.apache.maven.archetype:archetype-packaging
  dependency-version: 3.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 aws-serverless-spring-archetype/pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/aws-serverless-spring-archetype/pom.xml b/aws-serverless-spring-archetype/pom.xml
index 46e3d8dbc..7b2eac6c5 100644
--- a/aws-serverless-spring-archetype/pom.xml
+++ b/aws-serverless-spring-archetype/pom.xml
@@ -48,7 +48,7 @@
             <extension>
                 <groupId>org.apache.maven.archetype</groupId>
                 <artifactId>archetype-packaging</artifactId>
-                <version>3.3.1</version>
+                <version>3.4.0</version>
             </extension>
         </extensions>
 

From 327851297abf67e808195feff193a96c08f53fdf Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 19 May 2025 04:31:06 +0000
Subject: [PATCH 407/430] chore(deps): bump
 org.apache.maven.plugins:maven-archetype-plugin

Bumps [org.apache.maven.plugins:maven-archetype-plugin](https://github.com/apache/maven-archetype) from 3.3.1 to 3.4.0.
- [Release notes](https://github.com/apache/maven-archetype/releases)
- [Commits](https://github.com/apache/maven-archetype/compare/maven-archetype-3.3.1...maven-archetype-3.4.0)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-archetype-plugin
  dependency-version: 3.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 aws-serverless-springboot3-archetype/pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/aws-serverless-springboot3-archetype/pom.xml b/aws-serverless-springboot3-archetype/pom.xml
index 01b157e58..a6abbb25f 100644
--- a/aws-serverless-springboot3-archetype/pom.xml
+++ b/aws-serverless-springboot3-archetype/pom.xml
@@ -65,7 +65,7 @@
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-archetype-plugin</artifactId>
-                    <version>3.3.1</version>
+                    <version>3.4.0</version>
                     <executions>
                         <execution>
                             <goals>

From 4916e68a790cf8509f7b980493b2e6ee135c30d9 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 19 May 2025 04:31:13 +0000
Subject: [PATCH 408/430] chore(deps): bump
 org.apache.maven.archetype:archetype-packaging

Bumps [org.apache.maven.archetype:archetype-packaging](https://github.com/apache/maven-archetype) from 3.3.1 to 3.4.0.
- [Release notes](https://github.com/apache/maven-archetype/releases)
- [Commits](https://github.com/apache/maven-archetype/compare/maven-archetype-3.3.1...maven-archetype-3.4.0)

---
updated-dependencies:
- dependency-name: org.apache.maven.archetype:archetype-packaging
  dependency-version: 3.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 aws-serverless-springboot3-archetype/pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/aws-serverless-springboot3-archetype/pom.xml b/aws-serverless-springboot3-archetype/pom.xml
index 01b157e58..a37fee350 100644
--- a/aws-serverless-springboot3-archetype/pom.xml
+++ b/aws-serverless-springboot3-archetype/pom.xml
@@ -48,7 +48,7 @@
             <extension>
                 <groupId>org.apache.maven.archetype</groupId>
                 <artifactId>archetype-packaging</artifactId>
-                <version>3.3.1</version>
+                <version>3.4.0</version>
             </extension>
         </extensions>
 

From 17201462aed05e360ce33cef3a3b8a512e3a534f Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 26 May 2025 04:35:30 +0000
Subject: [PATCH 409/430] chore(deps-dev): bump the httpclient group across 8
 directories with 1 update

Bumps the httpclient group with 1 update in the / directory: [org.apache.httpcomponents.client5:httpclient5](https://github.com/apache/httpcomponents-client).
Bumps the httpclient group with 1 update in the /aws-serverless-java-container-core directory: [org.apache.httpcomponents.client5:httpclient5](https://github.com/apache/httpcomponents-client).
Bumps the httpclient group with 1 update in the /aws-serverless-java-container-jersey directory: [org.apache.httpcomponents.client5:httpclient5](https://github.com/apache/httpcomponents-client).
Bumps the httpclient group with 1 update in the /aws-serverless-java-container-spring directory: [org.apache.httpcomponents.client5:httpclient5](https://github.com/apache/httpcomponents-client).
Bumps the httpclient group with 1 update in the /aws-serverless-java-container-springboot3 directory: [org.apache.httpcomponents.client5:httpclient5](https://github.com/apache/httpcomponents-client).
Bumps the httpclient group with 1 update in the /aws-serverless-jersey-archetype directory: [org.apache.httpcomponents.client5:httpclient5](https://github.com/apache/httpcomponents-client).
Bumps the httpclient group with 1 update in the /aws-serverless-spring-archetype directory: [org.apache.httpcomponents.client5:httpclient5](https://github.com/apache/httpcomponents-client).
Bumps the httpclient group with 1 update in the /aws-serverless-springboot3-archetype directory: [org.apache.httpcomponents.client5:httpclient5](https://github.com/apache/httpcomponents-client).


Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

---
updated-dependencies:
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: httpclient
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index be3e8ff83..41e74d07c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -119,7 +119,7 @@
         <dependency>
             <groupId>org.apache.httpcomponents.client5</groupId>
             <artifactId>httpclient5</artifactId>
-            <version>5.4.3</version>
+            <version>5.5</version>
             <scope>test</scope>
         </dependency>
 

From 972c0bcd755e6027358275c12a40107446b4b085 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 26 May 2025 04:38:23 +0000
Subject: [PATCH 410/430] chore(deps): bump
 org.springframework.boot:spring-boot-starter-parent

Bumps [org.springframework.boot:spring-boot-starter-parent](https://github.com/spring-projects/spring-boot) from 3.4.5 to 3.5.0.
- [Release notes](https://github.com/spring-projects/spring-boot/releases)
- [Commits](https://github.com/spring-projects/spring-boot/compare/v3.4.5...v3.5.0)

---
updated-dependencies:
- dependency-name: org.springframework.boot:spring-boot-starter-parent
  dependency-version: 3.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 samples/springboot3/alt-pet-store/pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/samples/springboot3/alt-pet-store/pom.xml b/samples/springboot3/alt-pet-store/pom.xml
index 0c98f1fe5..64cbb083c 100644
--- a/samples/springboot3/alt-pet-store/pom.xml
+++ b/samples/springboot3/alt-pet-store/pom.xml
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.4.5</version>
+        <version>3.5.0</version>
     </parent>
 
     <licenses>

From 56e355ca3f53358aa690a7a5aba6527e60f8b9de Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 26 May 2025 04:38:32 +0000
Subject: [PATCH 411/430] chore(deps): bump
 org.springframework.boot:spring-boot-starter-parent

Bumps [org.springframework.boot:spring-boot-starter-parent](https://github.com/spring-projects/spring-boot) from 3.4.5 to 3.5.0.
- [Release notes](https://github.com/spring-projects/spring-boot/releases)
- [Commits](https://github.com/spring-projects/spring-boot/compare/v3.4.5...v3.5.0)

---
updated-dependencies:
- dependency-name: org.springframework.boot:spring-boot-starter-parent
  dependency-version: 3.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 samples/springboot3/graphql-pet-store/pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/samples/springboot3/graphql-pet-store/pom.xml b/samples/springboot3/graphql-pet-store/pom.xml
index d3b4ef079..23ac0bae6 100644
--- a/samples/springboot3/graphql-pet-store/pom.xml
+++ b/samples/springboot3/graphql-pet-store/pom.xml
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.4.5</version>
+        <version>3.5.0</version>
     </parent>
 
     <licenses>

From 1781631ed76477385f73df2fe19d386edd5e000a Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 26 May 2025 04:38:43 +0000
Subject: [PATCH 412/430] chore(deps): bump
 org.springframework.boot:spring-boot-starter-parent

Bumps [org.springframework.boot:spring-boot-starter-parent](https://github.com/spring-projects/spring-boot) from 3.4.5 to 3.5.0.
- [Release notes](https://github.com/spring-projects/spring-boot/releases)
- [Commits](https://github.com/spring-projects/spring-boot/compare/v3.4.5...v3.5.0)

---
updated-dependencies:
- dependency-name: org.springframework.boot:spring-boot-starter-parent
  dependency-version: 3.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 samples/springboot3/pet-store/pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/samples/springboot3/pet-store/pom.xml b/samples/springboot3/pet-store/pom.xml
index 2896d90dc..4126ead75 100644
--- a/samples/springboot3/pet-store/pom.xml
+++ b/samples/springboot3/pet-store/pom.xml
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.4.5</version>
+        <version>3.5.0</version>
     </parent>
 
     <licenses>

From bb226134ce9c00e032049621d9834255b55cb65a Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 26 May 2025 05:04:14 +0000
Subject: [PATCH 413/430] chore(deps): bump the httpclient group across 3
 directories with 1 update

Bumps the httpclient group with 1 update in the /aws-serverless-jersey-archetype/src/main/resources/archetype-resources directory: [org.apache.httpcomponents.client5:httpclient5](https://github.com/apache/httpcomponents-client).
Bumps the httpclient group with 1 update in the /aws-serverless-spring-archetype/src/main/resources/archetype-resources directory: [org.apache.httpcomponents.client5:httpclient5](https://github.com/apache/httpcomponents-client).
Bumps the httpclient group with 1 update in the /aws-serverless-springboot3-archetype/src/main/resources/archetype-resources directory: [org.apache.httpcomponents.client5:httpclient5](https://github.com/apache/httpcomponents-client).


Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

Updates `org.apache.httpcomponents.client5:httpclient5` from 5.4.3 to 5.5
- [Changelog](https://github.com/apache/httpcomponents-client/blob/master/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.4.3...rel/v5.5)

---
updated-dependencies:
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: httpclient
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: '5.5'
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: httpclient
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 .../src/main/resources/archetype-resources/build.gradle         | 2 +-
 .../src/main/resources/archetype-resources/build.gradle         | 2 +-
 .../src/main/resources/archetype-resources/build.gradle         | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
index aec63fe5e..c7c013f6a 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
@@ -22,7 +22,7 @@ dependencies {
   }
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
-  testImplementation("org.apache.httpcomponents.client5:httpclient5:5.4.3")
+  testImplementation("org.apache.httpcomponents.client5:httpclient5:5.5")
   testImplementation(platform("org.junit:junit-bom:5.12.1"))
   testImplementation("org.junit.jupiter:junit-jupiter")
   testRuntimeOnly("org.junit.platform:junit-platform-launcher")
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
index 026885dd5..076a9bcf4 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
@@ -18,7 +18,7 @@ dependencies {
   )
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
-  testImplementation("org.apache.httpcomponents.client5:httpclient5:5.4.3")
+  testImplementation("org.apache.httpcomponents.client5:httpclient5:5.5")
   testImplementation(platform("org.junit:junit-bom:5.12.2"))
   testImplementation("org.junit.jupiter:junit-jupiter")
   testRuntimeOnly("org.junit.platform:junit-platform-launcher")
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
index d44a26ccd..b9e084170 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
@@ -14,7 +14,7 @@ dependencies {
   )
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
-  testImplementation("org.apache.httpcomponents.client5:httpclient5:5.4.3")
+  testImplementation("org.apache.httpcomponents.client5:httpclient5:5.5")
   testImplementation(platform("org.junit:junit-bom:5.12.1"))
   testImplementation("org.junit.jupiter:junit-jupiter")
   testRuntimeOnly("org.junit.platform:junit-platform-launcher")

From eef712ffbb45e8e84a9e97cab2f6eccc2f366c21 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 16 Jun 2025 04:15:43 +0000
Subject: [PATCH 414/430] chore(deps): bump the spring group across 2
 directories with 2 updates

Bumps the spring group with 2 updates in the /aws-serverless-spring-archetype/src/main/resources/archetype-resources directory: [org.springframework:spring-webmvc](https://github.com/spring-projects/spring-framework) and [org.springframework:spring-context](https://github.com/spring-projects/spring-framework).
Bumps the spring group with 2 updates in the /samples/spring/pet-store directory: [org.springframework:spring-webmvc](https://github.com/spring-projects/spring-framework) and [org.springframework:spring-context](https://github.com/spring-projects/spring-framework).


Updates `org.springframework:spring-webmvc` from 6.2.6 to 6.2.8
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v6.2.6...v6.2.8)

Updates `org.springframework:spring-context` from 6.2.6 to 6.2.8
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v6.2.6...v6.2.8)

Updates `org.springframework:spring-webmvc` from 6.2.6 to 6.2.8
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v6.2.6...v6.2.8)

Updates `org.springframework:spring-context` from 6.2.6 to 6.2.8
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v6.2.6...v6.2.8)

Updates `org.springframework:spring-webmvc` from 6.2.6 to 6.2.8
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v6.2.6...v6.2.8)

Updates `org.springframework:spring-context` from 6.2.6 to 6.2.8
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v6.2.6...v6.2.8)

Updates `org.springframework:spring-webmvc` from 6.2.6 to 6.2.8
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v6.2.6...v6.2.8)

Updates `org.springframework:spring-context` from 6.2.6 to 6.2.8
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v6.2.6...v6.2.8)

---
updated-dependencies:
- dependency-name: org.springframework:spring-webmvc
  dependency-version: 6.2.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: spring
- dependency-name: org.springframework:spring-context
  dependency-version: 6.2.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: spring
- dependency-name: org.springframework:spring-webmvc
  dependency-version: 6.2.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: spring
- dependency-name: org.springframework:spring-context
  dependency-version: 6.2.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: spring
- dependency-name: org.springframework:spring-webmvc
  dependency-version: 6.2.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: spring
- dependency-name: org.springframework:spring-context
  dependency-version: 6.2.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: spring
- dependency-name: org.springframework:spring-webmvc
  dependency-version: 6.2.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: spring
- dependency-name: org.springframework:spring-context
  dependency-version: 6.2.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: spring
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 .../src/main/resources/archetype-resources/build.gradle       | 4 ++--
 samples/spring/pet-store/build.gradle                         | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
index 026885dd5..f8983d185 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
@@ -7,8 +7,8 @@ repositories {
 
 dependencies {
   implementation (
-          'org.springframework:spring-webmvc:6.2.6',
-          'org.springframework:spring-context:6.2.6',
+          'org.springframework:spring-webmvc:6.2.8',
+          'org.springframework:spring-context:6.2.8',
           'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)',
           'org.apache.logging.log4j:log4j-core:2.24.3',
           'org.apache.logging.log4j:log4j-api:2.24.3',
diff --git a/samples/spring/pet-store/build.gradle b/samples/spring/pet-store/build.gradle
index 4d60cdd08..921239722 100644
--- a/samples/spring/pet-store/build.gradle
+++ b/samples/spring/pet-store/build.gradle
@@ -7,8 +7,8 @@ repositories {
 
 dependencies {
   implementation (
-          'org.springframework:spring-webmvc:6.2.6',
-          'org.springframework:spring-context:6.2.6',
+          'org.springframework:spring-webmvc:6.2.8',
+          'org.springframework:spring-context:6.2.8',
           'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)',
           'org.apache.logging.log4j:log4j-core:2.24.3',
           'org.apache.logging.log4j:log4j-api:2.24.3',

From 32984f09d9e9a6a56572995b066f4b46adcc403f Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 16 Jun 2025 04:15:45 +0000
Subject: [PATCH 415/430] chore(deps): bump the jackson group across 4
 directories with 1 update

Bumps the jackson group with 1 update in the /aws-serverless-jersey-archetype/src/main/resources/archetype-resources directory: [com.fasterxml.jackson.core:jackson-databind](https://github.com/FasterXML/jackson).
Bumps the jackson group with 1 update in the /aws-serverless-spring-archetype/src/main/resources/archetype-resources directory: [com.fasterxml.jackson.core:jackson-databind](https://github.com/FasterXML/jackson).
Bumps the jackson group with 1 update in the /samples/jersey/pet-store directory: [com.fasterxml.jackson.core:jackson-databind](https://github.com/FasterXML/jackson).
Bumps the jackson group with 1 update in the /samples/spring/pet-store directory: [com.fasterxml.jackson.core:jackson-databind](https://github.com/FasterXML/jackson).


Updates `com.fasterxml.jackson.core:jackson-databind` from 2.18.3 to 2.19.1
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `com.fasterxml.jackson.core:jackson-databind` from 2.18.3 to 2.19.1
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `com.fasterxml.jackson.core:jackson-databind` from 2.18.3 to 2.19.1
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `com.fasterxml.jackson.core:jackson-databind` from 2.18.3 to 2.19.1
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `com.fasterxml.jackson.core:jackson-databind` from 2.18.3 to 2.19.1
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `com.fasterxml.jackson.core:jackson-databind` from 2.18.3 to 2.19.1
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `com.fasterxml.jackson.core:jackson-databind` from 2.18.3 to 2.19.1
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `com.fasterxml.jackson.core:jackson-databind` from 2.18.3 to 2.19.1
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `com.fasterxml.jackson.core:jackson-databind` from 2.18.3 to 2.19.1
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `com.fasterxml.jackson.core:jackson-databind` from 2.18.3 to 2.19.1
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `com.fasterxml.jackson.core:jackson-databind` from 2.18.3 to 2.19.1
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `com.fasterxml.jackson.core:jackson-databind` from 2.18.3 to 2.19.1
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `com.fasterxml.jackson.core:jackson-databind` from 2.18.3 to 2.19.1
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `com.fasterxml.jackson.core:jackson-databind` from 2.18.3 to 2.19.1
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `com.fasterxml.jackson.core:jackson-databind` from 2.18.3 to 2.19.1
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `com.fasterxml.jackson.core:jackson-databind` from 2.18.3 to 2.19.1
- [Commits](https://github.com/FasterXML/jackson/commits)

---
updated-dependencies:
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-version: 2.19.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: jackson
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-version: 2.19.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: jackson
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-version: 2.19.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: jackson
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-version: 2.19.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: jackson
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-version: 2.19.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: jackson
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-version: 2.19.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: jackson
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-version: 2.19.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: jackson
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-version: 2.19.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: jackson
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-version: 2.19.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: jackson
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-version: 2.19.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: jackson
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-version: 2.19.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: jackson
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-version: 2.19.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: jackson
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-version: 2.19.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: jackson
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-version: 2.19.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: jackson
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-version: 2.19.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: jackson
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-version: 2.19.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: jackson
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 .../src/main/resources/archetype-resources/build.gradle         | 2 +-
 .../src/main/resources/archetype-resources/build.gradle         | 2 +-
 samples/jersey/pet-store/build.gradle                           | 2 +-
 samples/spring/pet-store/build.gradle                           | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
index aec63fe5e..cbe29ab1a 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
@@ -8,7 +8,7 @@ repositories {
 dependencies {
   implementation (
           'com.amazonaws.serverless:aws-serverless-java-container-jersey:[2.0-SNAPSHOT,)',
-          'com.fasterxml.jackson.core:jackson-databind:2.18.3',
+          'com.fasterxml.jackson.core:jackson-databind:2.19.1',
   )
 
   implementation("org.glassfish.jersey.media:jersey-media-json-jackson:3.1.10") {
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
index 026885dd5..f489ab2c4 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
@@ -13,7 +13,7 @@ dependencies {
           'org.apache.logging.log4j:log4j-core:2.24.3',
           'org.apache.logging.log4j:log4j-api:2.24.3',
           'org.apache.logging.log4j:log4j-slf4j-impl:2.24.3',
-          'com.fasterxml.jackson.core:jackson-databind:2.18.3',
+          'com.fasterxml.jackson.core:jackson-databind:2.19.1',
           'com.amazonaws:aws-lambda-java-log4j2:1.6.0',
   )
 
diff --git a/samples/jersey/pet-store/build.gradle b/samples/jersey/pet-store/build.gradle
index 0829175e8..0194402b2 100644
--- a/samples/jersey/pet-store/build.gradle
+++ b/samples/jersey/pet-store/build.gradle
@@ -8,7 +8,7 @@ repositories {
 dependencies {
   implementation (
           'com.amazonaws.serverless:aws-serverless-java-container-jersey:[2.0-SNAPSHOT,)',
-          'com.fasterxml.jackson.core:jackson-databind:2.18.3',
+          'com.fasterxml.jackson.core:jackson-databind:2.19.1',
   )
 
   implementation("org.glassfish.jersey.media:jersey-media-json-jackson:3.1.10") {
diff --git a/samples/spring/pet-store/build.gradle b/samples/spring/pet-store/build.gradle
index 4d60cdd08..211f621c8 100644
--- a/samples/spring/pet-store/build.gradle
+++ b/samples/spring/pet-store/build.gradle
@@ -13,7 +13,7 @@ dependencies {
           'org.apache.logging.log4j:log4j-core:2.24.3',
           'org.apache.logging.log4j:log4j-api:2.24.3',
           'org.apache.logging.log4j:log4j-slf4j-impl:2.24.3',
-          'com.fasterxml.jackson.core:jackson-databind:2.18.3',
+          'com.fasterxml.jackson.core:jackson-databind:2.19.1',
           'com.amazonaws:aws-lambda-java-log4j2:1.6.0',
   )
 }

From 4fb251ee9b493b69201ffc110c02faa1f2ee9eb9 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 16 Jun 2025 04:35:32 +0000
Subject: [PATCH 416/430] chore(deps): bump the jackson group across 5
 directories with 2 updates

Bumps the jackson group with 2 updates in the / directory: [com.fasterxml.jackson.core:jackson-databind](https://github.com/FasterXML/jackson) and [com.fasterxml.jackson.module:jackson-module-afterburner](https://github.com/FasterXML/jackson-modules-base).
Bumps the jackson group with 2 updates in the /aws-serverless-java-container-core directory: [com.fasterxml.jackson.core:jackson-databind](https://github.com/FasterXML/jackson) and [com.fasterxml.jackson.module:jackson-module-afterburner](https://github.com/FasterXML/jackson-modules-base).
Bumps the jackson group with 1 update in the /aws-serverless-java-container-jersey directory: [com.fasterxml.jackson.core:jackson-databind](https://github.com/FasterXML/jackson).
Bumps the jackson group with 1 update in the /aws-serverless-java-container-spring directory: [com.fasterxml.jackson.core:jackson-databind](https://github.com/FasterXML/jackson).
Bumps the jackson group with 1 update in the /samples/jersey/pet-store directory: [com.fasterxml.jackson.core:jackson-databind](https://github.com/FasterXML/jackson).


Updates `com.fasterxml.jackson.core:jackson-databind` from 2.18.3 to 2.19.1
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `com.fasterxml.jackson.module:jackson-module-afterburner` from 2.18.3 to 2.19.1
- [Commits](https://github.com/FasterXML/jackson-modules-base/compare/jackson-modules-base-2.18.3...jackson-modules-base-2.19.1)

Updates `com.fasterxml.jackson.module:jackson-module-afterburner` from 2.18.3 to 2.19.1
- [Commits](https://github.com/FasterXML/jackson-modules-base/compare/jackson-modules-base-2.18.3...jackson-modules-base-2.19.1)

Updates `com.fasterxml.jackson.core:jackson-databind` from 2.18.3 to 2.19.1
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `com.fasterxml.jackson.module:jackson-module-afterburner` from 2.18.3 to 2.19.1
- [Commits](https://github.com/FasterXML/jackson-modules-base/compare/jackson-modules-base-2.18.3...jackson-modules-base-2.19.1)

Updates `com.fasterxml.jackson.core:jackson-databind` from 2.18.3 to 2.19.1
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `com.fasterxml.jackson.core:jackson-databind` from 2.18.3 to 2.19.1
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `com.fasterxml.jackson.core:jackson-databind` from 2.18.3 to 2.19.1
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `com.fasterxml.jackson.core:jackson-databind` from 2.18.3 to 2.19.1
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `com.fasterxml.jackson.module:jackson-module-afterburner` from 2.18.3 to 2.19.1
- [Commits](https://github.com/FasterXML/jackson-modules-base/compare/jackson-modules-base-2.18.3...jackson-modules-base-2.19.1)

Updates `com.fasterxml.jackson.module:jackson-module-afterburner` from 2.18.3 to 2.19.1
- [Commits](https://github.com/FasterXML/jackson-modules-base/compare/jackson-modules-base-2.18.3...jackson-modules-base-2.19.1)

Updates `com.fasterxml.jackson.core:jackson-databind` from 2.18.3 to 2.19.1
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `com.fasterxml.jackson.module:jackson-module-afterburner` from 2.18.3 to 2.19.1
- [Commits](https://github.com/FasterXML/jackson-modules-base/compare/jackson-modules-base-2.18.3...jackson-modules-base-2.19.1)

Updates `com.fasterxml.jackson.core:jackson-databind` from 2.18.3 to 2.19.1
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `com.fasterxml.jackson.core:jackson-databind` from 2.18.3 to 2.19.1
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `com.fasterxml.jackson.core:jackson-databind` from 2.18.3 to 2.19.1
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `com.fasterxml.jackson.core:jackson-databind` from 2.18.3 to 2.19.1
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `com.fasterxml.jackson.core:jackson-databind` from 2.18.3 to 2.19.1
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `com.fasterxml.jackson.core:jackson-databind` from 2.18.3 to 2.19.1
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `com.fasterxml.jackson.core:jackson-databind` from 2.18.3 to 2.19.1
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `com.fasterxml.jackson.core:jackson-databind` from 2.18.3 to 2.19.1
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `com.fasterxml.jackson.core:jackson-databind` from 2.18.3 to 2.19.1
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `com.fasterxml.jackson.core:jackson-databind` from 2.18.3 to 2.19.1
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `com.fasterxml.jackson.core:jackson-databind` from 2.18.3 to 2.19.1
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `com.fasterxml.jackson.core:jackson-databind` from 2.18.3 to 2.19.1
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `com.fasterxml.jackson.core:jackson-databind` from 2.18.3 to 2.19.1
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `com.fasterxml.jackson.core:jackson-databind` from 2.18.3 to 2.19.1
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `com.fasterxml.jackson.core:jackson-databind` from 2.18.3 to 2.19.1
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `com.fasterxml.jackson.core:jackson-databind` from 2.18.3 to 2.19.1
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `com.fasterxml.jackson.core:jackson-databind` from 2.18.3 to 2.19.1
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `com.fasterxml.jackson.core:jackson-databind` from 2.18.3 to 2.19.1
- [Commits](https://github.com/FasterXML/jackson/commits)

---
updated-dependencies:
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-version: 2.19.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: jackson
- dependency-name: com.fasterxml.jackson.module:jackson-module-afterburner
  dependency-version: 2.19.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: jackson
- dependency-name: com.fasterxml.jackson.module:jackson-module-afterburner
  dependency-version: 2.19.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: jackson
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-version: 2.19.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: jackson
- dependency-name: com.fasterxml.jackson.module:jackson-module-afterburner
  dependency-version: 2.19.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: jackson
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-version: 2.19.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: jackson
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-version: 2.19.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: jackson
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-version: 2.19.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: jackson
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-version: 2.19.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: jackson
- dependency-name: com.fasterxml.jackson.module:jackson-module-afterburner
  dependency-version: 2.19.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: jackson
- dependency-name: com.fasterxml.jackson.module:jackson-module-afterburner
  dependency-version: 2.19.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: jackson
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-version: 2.19.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: jackson
- dependency-name: com.fasterxml.jackson.module:jackson-module-afterburner
  dependency-version: 2.19.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: jackson
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-version: 2.19.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: jackson
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-version: 2.19.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: jackson
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-version: 2.19.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: jackson
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-version: 2.19.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: jackson
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-version: 2.19.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: jackson
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-version: 2.19.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: jackson
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-version: 2.19.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: jackson
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-version: 2.19.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: jackson
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-version: 2.19.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: jackson
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-version: 2.19.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: jackson
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-version: 2.19.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: jackson
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-version: 2.19.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: jackson
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-version: 2.19.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: jackson
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-version: 2.19.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: jackson
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-version: 2.19.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: jackson
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-version: 2.19.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: jackson
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-version: 2.19.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: jackson
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-version: 2.19.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: jackson
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 pom.xml                          | 2 +-
 samples/jersey/pet-store/pom.xml | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/pom.xml b/pom.xml
index be3e8ff83..313969dc7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -78,7 +78,7 @@
     <properties>
         <jacoco.minCoverage>0.7</jacoco.minCoverage>
         <dependencyCheck.version>12.1.1</dependencyCheck.version>
-        <jackson.version>2.18.3</jackson.version>
+        <jackson.version>2.19.1</jackson.version>
         <slf4j.version>2.0.17</slf4j.version>
         <junit.version>5.12.2</junit.version>
         <mockito.version>5.17.0</mockito.version>
diff --git a/samples/jersey/pet-store/pom.xml b/samples/jersey/pet-store/pom.xml
index dc29c9f6f..aa3e1caee 100644
--- a/samples/jersey/pet-store/pom.xml
+++ b/samples/jersey/pet-store/pom.xml
@@ -27,7 +27,7 @@
         <maven.compiler.source>1.8</maven.compiler.source>
         <maven.compiler.target>1.8</maven.compiler.target>
         <jersey.version>3.1.10</jersey.version>
-        <jackson.version>2.18.3</jackson.version>
+        <jackson.version>2.19.1</jackson.version>
     </properties>
 
     <dependencies>

From 2d958f10c45a9377776e46db7d698080dbf709a2 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 16 Jun 2025 04:36:49 +0000
Subject: [PATCH 417/430] chore(deps): bump the spring group across 3
 directories with 6 updates

Bumps the spring group with 2 updates in the / directory: [org.springframework:spring-webmvc](https://github.com/spring-projects/spring-framework) and [org.springframework:spring-test](https://github.com/spring-projects/spring-framework).
Bumps the spring group with 2 updates in the /aws-serverless-java-container-spring directory: [org.springframework:spring-webmvc](https://github.com/spring-projects/spring-framework) and [org.springframework:spring-test](https://github.com/spring-projects/spring-framework).
Bumps the spring group with 3 updates in the /samples/spring/pet-store directory: [org.springframework:spring-webmvc](https://github.com/spring-projects/spring-framework), [org.springframework:spring-context](https://github.com/spring-projects/spring-framework) and [org.springframework:spring-context-indexer](https://github.com/spring-projects/spring-framework).


Updates `org.springframework:spring-webmvc` from 6.2.6 to 6.2.8
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v6.2.6...v6.2.8)

Updates `org.springframework:spring-test` from 6.2.6 to 6.2.8
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v6.2.6...v6.2.8)

Updates `org.springframework:spring-test` from 6.2.6 to 6.2.8
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v6.2.6...v6.2.8)

Updates `org.springframework:spring-webflux` from 6.2.6 to 6.2.8
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v6.2.6...v6.2.8)

Updates `org.springframework:spring-core` from 6.2.6 to 6.2.8
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v6.2.6...v6.2.8)

Updates `org.springframework:spring-context` from 6.2.6 to 6.2.8
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v6.2.6...v6.2.8)

Updates `org.springframework:spring-webmvc` from 6.2.6 to 6.2.8
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v6.2.6...v6.2.8)

Updates `org.springframework:spring-test` from 6.2.6 to 6.2.8
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v6.2.6...v6.2.8)

Updates `org.springframework:spring-webmvc` from 6.2.6 to 6.2.8
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v6.2.6...v6.2.8)

Updates `org.springframework:spring-context` from 6.2.6 to 6.2.8
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v6.2.6...v6.2.8)

Updates `org.springframework:spring-webmvc` from 6.2.6 to 6.2.8
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v6.2.6...v6.2.8)

Updates `org.springframework:spring-test` from 6.2.6 to 6.2.8
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v6.2.6...v6.2.8)

Updates `org.springframework:spring-test` from 6.2.6 to 6.2.8
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v6.2.6...v6.2.8)

Updates `org.springframework:spring-webmvc` from 6.2.6 to 6.2.8
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v6.2.6...v6.2.8)

Updates `org.springframework:spring-test` from 6.2.6 to 6.2.8
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v6.2.6...v6.2.8)

Updates `org.springframework:spring-webmvc` from 6.2.6 to 6.2.8
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v6.2.6...v6.2.8)

Updates `org.springframework:spring-webmvc` from 6.2.6 to 6.2.8
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v6.2.6...v6.2.8)

Updates `org.springframework:spring-context` from 6.2.6 to 6.2.8
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v6.2.6...v6.2.8)

Updates `org.springframework:spring-context-indexer` from 6.2.6 to 6.2.8
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v6.2.6...v6.2.8)

Updates `org.springframework:spring-context` from 6.2.6 to 6.2.8
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v6.2.6...v6.2.8)

Updates `org.springframework:spring-webmvc` from 6.2.6 to 6.2.8
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v6.2.6...v6.2.8)

Updates `org.springframework:spring-webmvc` from 6.2.6 to 6.2.8
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v6.2.6...v6.2.8)

Updates `org.springframework:spring-context` from 6.2.6 to 6.2.8
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v6.2.6...v6.2.8)

Updates `org.springframework:spring-context-indexer` from 6.2.6 to 6.2.8
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v6.2.6...v6.2.8)

---
updated-dependencies:
- dependency-name: org.springframework:spring-webmvc
  dependency-version: 6.2.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: spring
- dependency-name: org.springframework:spring-test
  dependency-version: 6.2.8
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: spring
- dependency-name: org.springframework:spring-test
  dependency-version: 6.2.8
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: spring
- dependency-name: org.springframework:spring-webflux
  dependency-version: 6.2.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: spring
- dependency-name: org.springframework:spring-core
  dependency-version: 6.2.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: spring
- dependency-name: org.springframework:spring-context
  dependency-version: 6.2.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: spring
- dependency-name: org.springframework:spring-webmvc
  dependency-version: 6.2.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: spring
- dependency-name: org.springframework:spring-test
  dependency-version: 6.2.8
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: spring
- dependency-name: org.springframework:spring-webmvc
  dependency-version: 6.2.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: spring
- dependency-name: org.springframework:spring-context
  dependency-version: 6.2.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: spring
- dependency-name: org.springframework:spring-webmvc
  dependency-version: 6.2.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: spring
- dependency-name: org.springframework:spring-test
  dependency-version: 6.2.8
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: spring
- dependency-name: org.springframework:spring-test
  dependency-version: 6.2.8
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: spring
- dependency-name: org.springframework:spring-webmvc
  dependency-version: 6.2.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: spring
- dependency-name: org.springframework:spring-test
  dependency-version: 6.2.8
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: spring
- dependency-name: org.springframework:spring-webmvc
  dependency-version: 6.2.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: spring
- dependency-name: org.springframework:spring-webmvc
  dependency-version: 6.2.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: spring
- dependency-name: org.springframework:spring-context
  dependency-version: 6.2.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: spring
- dependency-name: org.springframework:spring-context-indexer
  dependency-version: 6.2.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: spring
- dependency-name: org.springframework:spring-context
  dependency-version: 6.2.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: spring
- dependency-name: org.springframework:spring-webmvc
  dependency-version: 6.2.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: spring
- dependency-name: org.springframework:spring-webmvc
  dependency-version: 6.2.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: spring
- dependency-name: org.springframework:spring-context
  dependency-version: 6.2.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: spring
- dependency-name: org.springframework:spring-context-indexer
  dependency-version: 6.2.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: spring
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 aws-serverless-java-container-spring/pom.xml      | 2 +-
 aws-serverless-java-container-springboot3/pom.xml | 2 +-
 samples/spring/pet-store/pom.xml                  | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml
index f26cc578d..2b455f4c4 100644
--- a/aws-serverless-java-container-spring/pom.xml
+++ b/aws-serverless-java-container-spring/pom.xml
@@ -16,7 +16,7 @@
     </parent>
 
     <properties>
-        <spring.version>6.2.6</spring.version>
+        <spring.version>6.2.8</spring.version>
         <spring-security.version>6.4.5</spring-security.version>
     </properties>
 
diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml
index b09d851b0..8035cb86e 100644
--- a/aws-serverless-java-container-springboot3/pom.xml
+++ b/aws-serverless-java-container-springboot3/pom.xml
@@ -15,7 +15,7 @@
     <version>2.1.4-SNAPSHOT</version>
 
     <properties>
-        <spring.version>6.2.6</spring.version>
+        <spring.version>6.2.8</spring.version>
         <springboot.version>3.4.5</springboot.version>
         <springsecurity.version>6.4.5</springsecurity.version>
     </properties>
diff --git a/samples/spring/pet-store/pom.xml b/samples/spring/pet-store/pom.xml
index d4f230782..3603df159 100644
--- a/samples/spring/pet-store/pom.xml
+++ b/samples/spring/pet-store/pom.xml
@@ -24,7 +24,7 @@
     </licenses>
 
     <properties>
-        <spring.version>6.2.6</spring.version>
+        <spring.version>6.2.8</spring.version>
         <log4j.version>2.24.3</log4j.version>
         <maven.compiler.source>17</maven.compiler.source>
         <maven.compiler.target>17</maven.compiler.target>

From 5f14b7d3fc2a3ec33a3c75ef7d1756943e515af2 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 17 Jun 2025 23:29:22 +0000
Subject: [PATCH 418/430] chore(deps-dev): bump spring-security.version

Bumps `spring-security.version` from 6.4.5 to 6.5.0.

Updates `org.springframework.security:spring-security-config` from 6.4.5 to 6.5.0
- [Release notes](https://github.com/spring-projects/spring-security/releases)
- [Changelog](https://github.com/spring-projects/spring-security/blob/main/RELEASE.adoc)
- [Commits](https://github.com/spring-projects/spring-security/compare/6.4.5...6.5.0)

Updates `org.springframework.security:spring-security-web` from 6.4.5 to 6.5.0
- [Release notes](https://github.com/spring-projects/spring-security/releases)
- [Changelog](https://github.com/spring-projects/spring-security/blob/main/RELEASE.adoc)
- [Commits](https://github.com/spring-projects/spring-security/compare/6.4.5...6.5.0)

---
updated-dependencies:
- dependency-name: org.springframework.security:spring-security-config
  dependency-version: 6.5.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
- dependency-name: org.springframework.security:spring-security-web
  dependency-version: 6.5.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 aws-serverless-java-container-spring/pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml
index 2b455f4c4..f4e34ddc5 100644
--- a/aws-serverless-java-container-spring/pom.xml
+++ b/aws-serverless-java-container-spring/pom.xml
@@ -17,7 +17,7 @@
 
     <properties>
         <spring.version>6.2.8</spring.version>
-        <spring-security.version>6.4.5</spring-security.version>
+        <spring-security.version>6.5.1</spring-security.version>
     </properties>
 
     <dependencies>

From 824689c5f8377bdc95c774be416742d2e3456680 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 17 Jun 2025 23:29:23 +0000
Subject: [PATCH 419/430] chore(deps): bump spring-security.version from 6.4.5
 to 6.5.0

Bumps `spring-security.version` from 6.4.5 to 6.5.0.

Updates `org.springframework.security:spring-security-web` from 6.4.5 to 6.5.0
- [Release notes](https://github.com/spring-projects/spring-security/releases)
- [Changelog](https://github.com/spring-projects/spring-security/blob/main/RELEASE.adoc)
- [Commits](https://github.com/spring-projects/spring-security/compare/6.4.5...6.5.0)

Updates `org.springframework.security:spring-security-config` from 6.4.5 to 6.5.0
- [Release notes](https://github.com/spring-projects/spring-security/releases)
- [Changelog](https://github.com/spring-projects/spring-security/blob/main/RELEASE.adoc)
- [Commits](https://github.com/spring-projects/spring-security/compare/6.4.5...6.5.0)

---
updated-dependencies:
- dependency-name: org.springframework.security:spring-security-web
  dependency-version: 6.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.springframework.security:spring-security-config
  dependency-version: 6.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 aws-serverless-java-container-core/pom.xml   | 2 +-
 aws-serverless-java-container-spring/pom.xml | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml
index fa34e8d88..3c2334922 100644
--- a/aws-serverless-java-container-core/pom.xml
+++ b/aws-serverless-java-container-core/pom.xml
@@ -60,7 +60,7 @@
         <dependency>
             <groupId>org.springframework.security</groupId>
             <artifactId>spring-security-web</artifactId>
-            <version>6.4.5</version>
+            <version>6.5.1</version>
             <scope>test</scope>
         </dependency>
     </dependencies>
diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml
index 2b455f4c4..f4e34ddc5 100644
--- a/aws-serverless-java-container-spring/pom.xml
+++ b/aws-serverless-java-container-spring/pom.xml
@@ -17,7 +17,7 @@
 
     <properties>
         <spring.version>6.2.8</spring.version>
-        <spring-security.version>6.4.5</spring-security.version>
+        <spring-security.version>6.5.1</spring-security.version>
     </properties>
 
     <dependencies>

From f1399c48e26d22fb97754b01999305035082b8cf Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 17 Jun 2025 23:30:09 +0000
Subject: [PATCH 420/430] chore(deps): bump org.junit:junit-bom

Bumps [org.junit:junit-bom](https://github.com/junit-team/junit5) from 5.12.1 to 5.13.1.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.12.1...r5.13.1)

---
updated-dependencies:
- dependency-name: org.junit:junit-bom
  dependency-version: 5.13.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 .../src/main/resources/archetype-resources/build.gradle         | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
index b9e084170..3aa54825c 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
@@ -15,7 +15,7 @@ dependencies {
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
   testImplementation("org.apache.httpcomponents.client5:httpclient5:5.5")
-  testImplementation(platform("org.junit:junit-bom:5.12.1"))
+  testImplementation(platform("org.junit:junit-bom:5.13.1"))
   testImplementation("org.junit.jupiter:junit-jupiter")
   testRuntimeOnly("org.junit.platform:junit-platform-launcher")
 }

From 305060aa1364b2125abd60a2666669c7f80299a1 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 17 Jun 2025 23:30:09 +0000
Subject: [PATCH 421/430] chore(deps): bump org.junit:junit-bom

Bumps [org.junit:junit-bom](https://github.com/junit-team/junit5) from 5.12.2 to 5.13.1.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.12.2...r5.13.1)

---
updated-dependencies:
- dependency-name: org.junit:junit-bom
  dependency-version: 5.13.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 .../src/main/resources/archetype-resources/build.gradle         | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
index 96bf77447..a7c4098e5 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
@@ -19,7 +19,7 @@ dependencies {
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
   testImplementation("org.apache.httpcomponents.client5:httpclient5:5.5")
-  testImplementation(platform("org.junit:junit-bom:5.12.2"))
+  testImplementation(platform("org.junit:junit-bom:5.13.1"))
   testImplementation("org.junit.jupiter:junit-jupiter")
   testRuntimeOnly("org.junit.platform:junit-platform-launcher")
 }

From ce4e6039b946a6082c535c9c87d5b46fa7128d3d Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 17 Jun 2025 23:30:14 +0000
Subject: [PATCH 422/430] chore(deps): bump org.junit:junit-bom

Bumps [org.junit:junit-bom](https://github.com/junit-team/junit5) from 5.12.1 to 5.13.1.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.12.1...r5.13.1)

---
updated-dependencies:
- dependency-name: org.junit:junit-bom
  dependency-version: 5.13.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 .../src/main/resources/archetype-resources/build.gradle         | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
index 922c719a7..34ddfa299 100644
--- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/build.gradle
@@ -23,7 +23,7 @@ dependencies {
 
   testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests")
   testImplementation("org.apache.httpcomponents.client5:httpclient5:5.5")
-  testImplementation(platform("org.junit:junit-bom:5.12.1"))
+  testImplementation(platform("org.junit:junit-bom:5.13.1"))
   testImplementation("org.junit.jupiter:junit-jupiter")
   testRuntimeOnly("org.junit.platform:junit-platform-launcher")
 }

From cc0e12720c0ab138e60df5c3d509fdc020543928 Mon Sep 17 00:00:00 2001
From: Vichym <vichym@amazon.com>
Date: Tue, 17 Jun 2025 16:31:10 -0700
Subject: [PATCH 423/430] fix build failure.

---
 .../proxy/internal/servlet/AwsHttpServletRequest.java        | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java
index bde53961f..c52a17d07 100644
--- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java
@@ -517,7 +517,10 @@ protected Map<String, List<Part>> getMultipartFormParametersMap() {
                 newPart.setContentType(item.getContentType());
                 newPart.setSize(item.getSize());
                 item.getHeaders().getHeaderNames().forEachRemaining(h -> {
-                    newPart.addHeader(h, item.getHeaders().getHeader(h));
+                    String headerValue = item.getHeaders().getHeader(h);
+                    if (headerValue != null) {
+                        newPart.addHeader(h, headerValue);
+                    }
                 });
 
                 addPart(multipartFormParameters, item.getFieldName(), newPart);

From 29072d3d138ce001a2b00a533b670b277d0a23d4 Mon Sep 17 00:00:00 2001
From: Vichym <vichym@amazon.com>
Date: Tue, 17 Jun 2025 16:01:32 -0700
Subject: [PATCH 424/430] update commons-fileupload2-jakarta-servlet6 to
 2.0.0-M4

This is to update dependency on commons-fileupload2-core from 2.0.0-M2 to 2.0.0-M4
---
 aws-serverless-java-container-core/pom.xml    |  2 +-
 .../servlet/AwsHttpServletRequest.java        | 29 ++++++++++---------
 2 files changed, 16 insertions(+), 15 deletions(-)

diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml
index fa34e8d88..9fe565eea 100644
--- a/aws-serverless-java-container-core/pom.xml
+++ b/aws-serverless-java-container-core/pom.xml
@@ -54,7 +54,7 @@
         <dependency>
             <groupId>org.apache.commons</groupId>
             <artifactId>commons-fileupload2-jakarta-servlet6</artifactId>
-            <version>2.0.0-M2</version>
+            <version>2.0.0-M4</version>
         </dependency>
 
         <dependency>
diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java
index c52a17d07..1807fcd37 100644
--- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java
@@ -493,7 +493,7 @@ public Part getPart(String s)
     }
 
     @SuppressFBWarnings({"FILE_UPLOAD_FILENAME", "WEAK_FILENAMEUTILS"})
-    protected Map<String, List<Part>> getMultipartFormParametersMap() {
+    protected Map<String, List<Part>> getMultipartFormParametersMap() throws RuntimeException {
         if (multipartFormParameters != null) {
             return multipartFormParameters;
         }
@@ -511,19 +511,20 @@ protected Map<String, List<Part>> getMultipartFormParametersMap() {
             List<DiskFileItem> items = upload.parseRequest(this);
             for (FileItem<DiskFileItem> item : items) {
                 String fileName = FilenameUtils.getName(item.getName());
-                AwsProxyRequestPart newPart = new AwsProxyRequestPart(item.get());
-                newPart.setName(item.getFieldName());
-                newPart.setSubmittedFileName(fileName);
-                newPart.setContentType(item.getContentType());
-                newPart.setSize(item.getSize());
-                item.getHeaders().getHeaderNames().forEachRemaining(h -> {
-                    String headerValue = item.getHeaders().getHeader(h);
-                    if (headerValue != null) {
-                        newPart.addHeader(h, headerValue);
-                    }
-                });
-
-                addPart(multipartFormParameters, item.getFieldName(), newPart);
+                try {
+                    AwsProxyRequestPart newPart = new AwsProxyRequestPart(item.get());
+                    newPart.setName(item.getFieldName());
+                    newPart.setSubmittedFileName(fileName);
+                    newPart.setContentType(item.getContentType());
+                    newPart.setSize(item.getSize());
+                    item.getHeaders().getHeaderNames().forEachRemaining(h -> {
+                        newPart.addHeader(h, item.getHeaders().getHeader(h));
+                    });
+                    addPart(multipartFormParameters, item.getFieldName(), newPart);
+                } catch (Exception e) {
+                    log.error("Encounter issue adding form multipart", e);
+                    throw new RuntimeException(e);
+                }
             }
         } catch (FileUploadException e) {
             Timer.stop("SERVLET_REQUEST_GET_MULTIPART_PARAMS");

From db4aaa070951c8968fe37d677b16cfd2b606c597 Mon Sep 17 00:00:00 2001
From: vicheey <181402101+vicheey@users.noreply.github.com>
Date: Tue, 17 Jun 2025 17:48:49 -0700
Subject: [PATCH 425/430] Update
 aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java

---
 .../proxy/internal/servlet/AwsHttpServletRequest.java           | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java
index 1807fcd37..68a339bd5 100644
--- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java
@@ -521,7 +521,7 @@ protected Map<String, List<Part>> getMultipartFormParametersMap() throws Runtime
                         newPart.addHeader(h, item.getHeaders().getHeader(h));
                     });
                     addPart(multipartFormParameters, item.getFieldName(), newPart);
-                } catch (Exception e) {
+                } catch (IOException e) {
                     log.error("Encounter issue adding form multipart", e);
                     throw new RuntimeException(e);
                 }

From 8b7e7ff9a0f4278874658781199dcbc2debb71c1 Mon Sep 17 00:00:00 2001
From: Vichym <vichym@amazon.com>
Date: Wed, 18 Jun 2025 06:52:31 -0700
Subject: [PATCH 426/430] update to rethrow IOException

---
 .../proxy/internal/servlet/AwsHttpServletRequest.java         | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java
index 68a339bd5..43e03f60b 100644
--- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java
@@ -493,7 +493,7 @@ public Part getPart(String s)
     }
 
     @SuppressFBWarnings({"FILE_UPLOAD_FILENAME", "WEAK_FILENAMEUTILS"})
-    protected Map<String, List<Part>> getMultipartFormParametersMap() throws RuntimeException {
+    protected Map<String, List<Part>> getMultipartFormParametersMap() throws IOException {
         if (multipartFormParameters != null) {
             return multipartFormParameters;
         }
@@ -523,7 +523,7 @@ protected Map<String, List<Part>> getMultipartFormParametersMap() throws Runtime
                     addPart(multipartFormParameters, item.getFieldName(), newPart);
                 } catch (IOException e) {
                     log.error("Encounter issue adding form multipart", e);
-                    throw new RuntimeException(e);
+                    throw new IOException(e);
                 }
             }
         } catch (FileUploadException e) {

From d7d4b9dd28a0759a5f194779bb74e9f32f41cc64 Mon Sep 17 00:00:00 2001
From: Vichym <vichym@amazon.com>
Date: Wed, 18 Jun 2025 09:26:39 -0700
Subject: [PATCH 427/430] remove try-catch block

---
 .../proxy/internal/servlet/AwsHttpServletRequest.java        | 5 -----
 1 file changed, 5 deletions(-)

diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java
index 43e03f60b..10fd6fd10 100644
--- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java
@@ -511,7 +511,6 @@ protected Map<String, List<Part>> getMultipartFormParametersMap() throws IOExcep
             List<DiskFileItem> items = upload.parseRequest(this);
             for (FileItem<DiskFileItem> item : items) {
                 String fileName = FilenameUtils.getName(item.getName());
-                try {
                     AwsProxyRequestPart newPart = new AwsProxyRequestPart(item.get());
                     newPart.setName(item.getFieldName());
                     newPart.setSubmittedFileName(fileName);
@@ -521,10 +520,6 @@ protected Map<String, List<Part>> getMultipartFormParametersMap() throws IOExcep
                         newPart.addHeader(h, item.getHeaders().getHeader(h));
                     });
                     addPart(multipartFormParameters, item.getFieldName(), newPart);
-                } catch (IOException e) {
-                    log.error("Encounter issue adding form multipart", e);
-                    throw new IOException(e);
-                }
             }
         } catch (FileUploadException e) {
             Timer.stop("SERVLET_REQUEST_GET_MULTIPART_PARAMS");

From 1011155dd43a7709204e872df6298255b14a0fdf Mon Sep 17 00:00:00 2001
From: Vichym <vichym@amazon.com>
Date: Wed, 18 Jun 2025 12:57:43 -0700
Subject: [PATCH 428/430] reset white space.

---
 .../servlet/AwsHttpServletRequest.java         | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java
index 10fd6fd10..0029ee2d4 100644
--- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequest.java
@@ -511,15 +511,15 @@ protected Map<String, List<Part>> getMultipartFormParametersMap() throws IOExcep
             List<DiskFileItem> items = upload.parseRequest(this);
             for (FileItem<DiskFileItem> item : items) {
                 String fileName = FilenameUtils.getName(item.getName());
-                    AwsProxyRequestPart newPart = new AwsProxyRequestPart(item.get());
-                    newPart.setName(item.getFieldName());
-                    newPart.setSubmittedFileName(fileName);
-                    newPart.setContentType(item.getContentType());
-                    newPart.setSize(item.getSize());
-                    item.getHeaders().getHeaderNames().forEachRemaining(h -> {
-                        newPart.addHeader(h, item.getHeaders().getHeader(h));
-                    });
-                    addPart(multipartFormParameters, item.getFieldName(), newPart);
+                AwsProxyRequestPart newPart = new AwsProxyRequestPart(item.get());
+                newPart.setName(item.getFieldName());
+                newPart.setSubmittedFileName(fileName);
+                newPart.setContentType(item.getContentType());
+                newPart.setSize(item.getSize());
+                item.getHeaders().getHeaderNames().forEachRemaining(h -> {
+                    newPart.addHeader(h, item.getHeaders().getHeader(h));
+                });
+                addPart(multipartFormParameters, item.getFieldName(), newPart);
             }
         } catch (FileUploadException e) {
             Timer.stop("SERVLET_REQUEST_GET_MULTIPART_PARAMS");

From b96035e7bd6a68346d8668d03f3ff98d0a252a49 Mon Sep 17 00:00:00 2001
From: vicheey <vicheey@users.noreply.github.com>
Date: Wed, 18 Jun 2025 21:30:07 +0000
Subject: [PATCH 429/430] chore: release - prepare release
 aws-serverless-java-container-2.1.4

---
 aws-serverless-java-container-core/pom.xml        | 4 ++--
 aws-serverless-java-container-jersey/pom.xml      | 8 ++++----
 aws-serverless-java-container-spring/pom.xml      | 8 ++++----
 aws-serverless-java-container-springboot3/pom.xml | 8 ++++----
 aws-serverless-jersey-archetype/pom.xml           | 6 +++---
 aws-serverless-spring-archetype/pom.xml           | 6 +++---
 aws-serverless-springboot3-archetype/pom.xml      | 6 +++---
 pom.xml                                           | 4 ++--
 8 files changed, 25 insertions(+), 25 deletions(-)

diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml
index f77536a43..5b7d331f4 100644
--- a/aws-serverless-java-container-core/pom.xml
+++ b/aws-serverless-java-container-core/pom.xml
@@ -6,12 +6,12 @@
     <name>AWS Serverless Java container support - Core</name>
     <description>Allows Java applications written for a servlet container to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.1.4-SNAPSHOT</version>
+    <version>2.1.4</version>
 
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.1.4-SNAPSHOT</version>
+        <version>2.1.4</version>
         <relativePath>..</relativePath>
     </parent>
 
diff --git a/aws-serverless-java-container-jersey/pom.xml b/aws-serverless-java-container-jersey/pom.xml
index 905f4d463..ee776bd61 100644
--- a/aws-serverless-java-container-jersey/pom.xml
+++ b/aws-serverless-java-container-jersey/pom.xml
@@ -6,12 +6,12 @@
     <name>AWS Serverless Java container support - Jersey implementation</name>
     <description>Allows Java applications written for Jersey to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.1.4-SNAPSHOT</version>
+    <version>2.1.4</version>
 
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.1.4-SNAPSHOT</version>
+        <version>2.1.4</version>
         <relativePath>..</relativePath>
     </parent>
 
@@ -24,7 +24,7 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.1.4-SNAPSHOT</version>
+            <version>2.1.4</version>
             <exclusions>
                 <exclusion>
                     <groupId>com.fasterxml.jackson.core</groupId>
@@ -35,7 +35,7 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.1.4-SNAPSHOT</version>
+            <version>2.1.4</version>
             <classifier>tests</classifier>
             <type>test-jar</type>
             <scope>test</scope>
diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml
index f4e34ddc5..1f656287d 100644
--- a/aws-serverless-java-container-spring/pom.xml
+++ b/aws-serverless-java-container-spring/pom.xml
@@ -6,12 +6,12 @@
     <name>AWS Serverless Java container support - Spring implementation</name>
     <description>Allows Java applications written for the Spring framework to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.1.4-SNAPSHOT</version>
+    <version>2.1.4</version>
 
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.1.4-SNAPSHOT</version>
+        <version>2.1.4</version>
         <relativePath>..</relativePath>
     </parent>
 
@@ -25,12 +25,12 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.1.4-SNAPSHOT</version>
+            <version>2.1.4</version>
         </dependency>
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.1.4-SNAPSHOT</version>
+            <version>2.1.4</version>
             <classifier>tests</classifier>
             <type>test-jar</type>
             <scope>test</scope>
diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml
index 8035cb86e..d9dcc7e1e 100644
--- a/aws-serverless-java-container-springboot3/pom.xml
+++ b/aws-serverless-java-container-springboot3/pom.xml
@@ -3,7 +3,7 @@
     <parent>
         <artifactId>aws-serverless-java-container</artifactId>
         <groupId>com.amazonaws.serverless</groupId>
-        <version>2.1.4-SNAPSHOT</version>
+        <version>2.1.4</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
@@ -12,7 +12,7 @@
     <name>AWS Serverless Java container support - SpringBoot 3 implementation</name>
     <description>Allows Java applications written for SpringBoot 3 to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.1.4-SNAPSHOT</version>
+    <version>2.1.4</version>
 
     <properties>
         <spring.version>6.2.8</spring.version>
@@ -30,12 +30,12 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.1.4-SNAPSHOT</version>
+            <version>2.1.4</version>
         </dependency>
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.1.4-SNAPSHOT</version>
+            <version>2.1.4</version>
             <classifier>tests</classifier>
             <type>test-jar</type>
             <scope>test</scope>
diff --git a/aws-serverless-jersey-archetype/pom.xml b/aws-serverless-jersey-archetype/pom.xml
index 31897f300..69fcd0eda 100644
--- a/aws-serverless-jersey-archetype/pom.xml
+++ b/aws-serverless-jersey-archetype/pom.xml
@@ -4,17 +4,17 @@
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.1.4-SNAPSHOT</version>
+        <version>2.1.4</version>
     </parent>
 
     <groupId>com.amazonaws.serverless.archetypes</groupId>
     <artifactId>aws-serverless-jersey-archetype</artifactId>
-    <version>2.1.4-SNAPSHOT</version>
+    <version>2.1.4</version>
     <packaging>maven-archetype</packaging>
 
     <scm>
         <url>https://github.com/aws/serverless-java-container.git</url>
-      <tag>HEAD</tag>
+      <tag>aws-serverless-java-container-2.1.4</tag>
   </scm>
 
     <licenses>
diff --git a/aws-serverless-spring-archetype/pom.xml b/aws-serverless-spring-archetype/pom.xml
index efcd54945..5c15bbd05 100644
--- a/aws-serverless-spring-archetype/pom.xml
+++ b/aws-serverless-spring-archetype/pom.xml
@@ -4,17 +4,17 @@
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.1.4-SNAPSHOT</version>
+        <version>2.1.4</version>
     </parent>
 
     <groupId>com.amazonaws.serverless.archetypes</groupId>
     <artifactId>aws-serverless-spring-archetype</artifactId>
-    <version>2.1.4-SNAPSHOT</version>
+    <version>2.1.4</version>
     <packaging>maven-archetype</packaging>
 
     <scm>
         <url>https://github.com/aws/serverless-java-container.git</url>
-      <tag>HEAD</tag>
+      <tag>aws-serverless-java-container-2.1.4</tag>
   </scm>
 
     <licenses>
diff --git a/aws-serverless-springboot3-archetype/pom.xml b/aws-serverless-springboot3-archetype/pom.xml
index 61df561fc..50dea38b1 100644
--- a/aws-serverless-springboot3-archetype/pom.xml
+++ b/aws-serverless-springboot3-archetype/pom.xml
@@ -4,17 +4,17 @@
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.1.4-SNAPSHOT</version>
+        <version>2.1.4</version>
     </parent>
 
     <groupId>com.amazonaws.serverless.archetypes</groupId>
     <artifactId>aws-serverless-springboot3-archetype</artifactId>
-    <version>2.1.4-SNAPSHOT</version>
+    <version>2.1.4</version>
     <packaging>maven-archetype</packaging>
 
     <scm>
         <url>https://github.com/aws/serverless-java-container.git</url>
-      <tag>HEAD</tag>
+      <tag>aws-serverless-java-container-2.1.4</tag>
   </scm>
 
     <licenses>
diff --git a/pom.xml b/pom.xml
index b780be8ef..6040b24f0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
     <groupId>com.amazonaws.serverless</groupId>
     <artifactId>aws-serverless-java-container</artifactId>
     <packaging>pom</packaging>
-    <version>2.1.4-SNAPSHOT</version>
+    <version>2.1.4</version>
     <name>AWS Serverless Java container</name>
     <description>A Java framework to run Spring, Spring Boot, Jersey, Spark, and Struts applications inside AWS Lambda</description>
     <url>https://github.com/aws/serverless-java-container</url>
@@ -37,7 +37,7 @@
     <scm>
         <url>https://github.com/aws/serverless-java-container</url>
         <connection>scm:git:https://github.com/aws/serverless-java-container.git</connection>
-      <tag>HEAD</tag>
+      <tag>aws-serverless-java-container-2.1.4</tag>
     </scm>
 
     <repositories>

From e8b5aa73852796dd91de1a5c2d7b2884c213fe89 Mon Sep 17 00:00:00 2001
From: vicheey <vicheey@users.noreply.github.com>
Date: Wed, 18 Jun 2025 21:30:08 +0000
Subject: [PATCH 430/430] chore: release - prepare for next development
 iteration

---
 aws-serverless-java-container-core/pom.xml        | 4 ++--
 aws-serverless-java-container-jersey/pom.xml      | 8 ++++----
 aws-serverless-java-container-spring/pom.xml      | 8 ++++----
 aws-serverless-java-container-springboot3/pom.xml | 8 ++++----
 aws-serverless-jersey-archetype/pom.xml           | 6 +++---
 aws-serverless-spring-archetype/pom.xml           | 6 +++---
 aws-serverless-springboot3-archetype/pom.xml      | 6 +++---
 pom.xml                                           | 4 ++--
 8 files changed, 25 insertions(+), 25 deletions(-)

diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml
index 5b7d331f4..9d0ff3cb4 100644
--- a/aws-serverless-java-container-core/pom.xml
+++ b/aws-serverless-java-container-core/pom.xml
@@ -6,12 +6,12 @@
     <name>AWS Serverless Java container support - Core</name>
     <description>Allows Java applications written for a servlet container to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.1.4</version>
+    <version>2.1.5-SNAPSHOT</version>
 
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.1.4</version>
+        <version>2.1.5-SNAPSHOT</version>
         <relativePath>..</relativePath>
     </parent>
 
diff --git a/aws-serverless-java-container-jersey/pom.xml b/aws-serverless-java-container-jersey/pom.xml
index ee776bd61..1788a36b8 100644
--- a/aws-serverless-java-container-jersey/pom.xml
+++ b/aws-serverless-java-container-jersey/pom.xml
@@ -6,12 +6,12 @@
     <name>AWS Serverless Java container support - Jersey implementation</name>
     <description>Allows Java applications written for Jersey to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.1.4</version>
+    <version>2.1.5-SNAPSHOT</version>
 
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.1.4</version>
+        <version>2.1.5-SNAPSHOT</version>
         <relativePath>..</relativePath>
     </parent>
 
@@ -24,7 +24,7 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.1.4</version>
+            <version>2.1.5-SNAPSHOT</version>
             <exclusions>
                 <exclusion>
                     <groupId>com.fasterxml.jackson.core</groupId>
@@ -35,7 +35,7 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.1.4</version>
+            <version>2.1.5-SNAPSHOT</version>
             <classifier>tests</classifier>
             <type>test-jar</type>
             <scope>test</scope>
diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml
index 1f656287d..f03d9db0a 100644
--- a/aws-serverless-java-container-spring/pom.xml
+++ b/aws-serverless-java-container-spring/pom.xml
@@ -6,12 +6,12 @@
     <name>AWS Serverless Java container support - Spring implementation</name>
     <description>Allows Java applications written for the Spring framework to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.1.4</version>
+    <version>2.1.5-SNAPSHOT</version>
 
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.1.4</version>
+        <version>2.1.5-SNAPSHOT</version>
         <relativePath>..</relativePath>
     </parent>
 
@@ -25,12 +25,12 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.1.4</version>
+            <version>2.1.5-SNAPSHOT</version>
         </dependency>
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.1.4</version>
+            <version>2.1.5-SNAPSHOT</version>
             <classifier>tests</classifier>
             <type>test-jar</type>
             <scope>test</scope>
diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml
index d9dcc7e1e..5dcac1562 100644
--- a/aws-serverless-java-container-springboot3/pom.xml
+++ b/aws-serverless-java-container-springboot3/pom.xml
@@ -3,7 +3,7 @@
     <parent>
         <artifactId>aws-serverless-java-container</artifactId>
         <groupId>com.amazonaws.serverless</groupId>
-        <version>2.1.4</version>
+        <version>2.1.5-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
@@ -12,7 +12,7 @@
     <name>AWS Serverless Java container support - SpringBoot 3 implementation</name>
     <description>Allows Java applications written for SpringBoot 3 to run in AWS Lambda</description>
     <url>https://aws.amazon.com/lambda</url>
-    <version>2.1.4</version>
+    <version>2.1.5-SNAPSHOT</version>
 
     <properties>
         <spring.version>6.2.8</spring.version>
@@ -30,12 +30,12 @@
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.1.4</version>
+            <version>2.1.5-SNAPSHOT</version>
         </dependency>
         <dependency>
             <groupId>com.amazonaws.serverless</groupId>
             <artifactId>aws-serverless-java-container-core</artifactId>
-            <version>2.1.4</version>
+            <version>2.1.5-SNAPSHOT</version>
             <classifier>tests</classifier>
             <type>test-jar</type>
             <scope>test</scope>
diff --git a/aws-serverless-jersey-archetype/pom.xml b/aws-serverless-jersey-archetype/pom.xml
index 69fcd0eda..4afdc9996 100644
--- a/aws-serverless-jersey-archetype/pom.xml
+++ b/aws-serverless-jersey-archetype/pom.xml
@@ -4,17 +4,17 @@
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.1.4</version>
+        <version>2.1.5-SNAPSHOT</version>
     </parent>
 
     <groupId>com.amazonaws.serverless.archetypes</groupId>
     <artifactId>aws-serverless-jersey-archetype</artifactId>
-    <version>2.1.4</version>
+    <version>2.1.5-SNAPSHOT</version>
     <packaging>maven-archetype</packaging>
 
     <scm>
         <url>https://github.com/aws/serverless-java-container.git</url>
-      <tag>aws-serverless-java-container-2.1.4</tag>
+      <tag>HEAD</tag>
   </scm>
 
     <licenses>
diff --git a/aws-serverless-spring-archetype/pom.xml b/aws-serverless-spring-archetype/pom.xml
index 5c15bbd05..2a2f59b8b 100644
--- a/aws-serverless-spring-archetype/pom.xml
+++ b/aws-serverless-spring-archetype/pom.xml
@@ -4,17 +4,17 @@
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.1.4</version>
+        <version>2.1.5-SNAPSHOT</version>
     </parent>
 
     <groupId>com.amazonaws.serverless.archetypes</groupId>
     <artifactId>aws-serverless-spring-archetype</artifactId>
-    <version>2.1.4</version>
+    <version>2.1.5-SNAPSHOT</version>
     <packaging>maven-archetype</packaging>
 
     <scm>
         <url>https://github.com/aws/serverless-java-container.git</url>
-      <tag>aws-serverless-java-container-2.1.4</tag>
+      <tag>HEAD</tag>
   </scm>
 
     <licenses>
diff --git a/aws-serverless-springboot3-archetype/pom.xml b/aws-serverless-springboot3-archetype/pom.xml
index 50dea38b1..74fac6156 100644
--- a/aws-serverless-springboot3-archetype/pom.xml
+++ b/aws-serverless-springboot3-archetype/pom.xml
@@ -4,17 +4,17 @@
     <parent>
         <groupId>com.amazonaws.serverless</groupId>
         <artifactId>aws-serverless-java-container</artifactId>
-        <version>2.1.4</version>
+        <version>2.1.5-SNAPSHOT</version>
     </parent>
 
     <groupId>com.amazonaws.serverless.archetypes</groupId>
     <artifactId>aws-serverless-springboot3-archetype</artifactId>
-    <version>2.1.4</version>
+    <version>2.1.5-SNAPSHOT</version>
     <packaging>maven-archetype</packaging>
 
     <scm>
         <url>https://github.com/aws/serverless-java-container.git</url>
-      <tag>aws-serverless-java-container-2.1.4</tag>
+      <tag>HEAD</tag>
   </scm>
 
     <licenses>
diff --git a/pom.xml b/pom.xml
index 6040b24f0..dd73a0404 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
     <groupId>com.amazonaws.serverless</groupId>
     <artifactId>aws-serverless-java-container</artifactId>
     <packaging>pom</packaging>
-    <version>2.1.4</version>
+    <version>2.1.5-SNAPSHOT</version>
     <name>AWS Serverless Java container</name>
     <description>A Java framework to run Spring, Spring Boot, Jersey, Spark, and Struts applications inside AWS Lambda</description>
     <url>https://github.com/aws/serverless-java-container</url>
@@ -37,7 +37,7 @@
     <scm>
         <url>https://github.com/aws/serverless-java-container</url>
         <connection>scm:git:https://github.com/aws/serverless-java-container.git</connection>
-      <tag>aws-serverless-java-container-2.1.4</tag>
+      <tag>HEAD</tag>
     </scm>
 
     <repositories>