From 24cd7cc32eeb5b6ce86dd06c4a23fb3eef5d739a Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Mon, 5 Dec 2022 15:55:17 +0100 Subject: [PATCH 001/623] chore(build): fix continuous integration (master branch got renamed to main a while ago) --- .github/workflows/continuous-integration-workflow.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/continuous-integration-workflow.yml b/.github/workflows/continuous-integration-workflow.yml index 0047dd19e..6a8d438a6 100644 --- a/.github/workflows/continuous-integration-workflow.yml +++ b/.github/workflows/continuous-integration-workflow.yml @@ -3,7 +3,7 @@ on: push: pull_request: branches: - - master + - main jobs: build_core: From 3928dce67b54241206251775ab9d8b51a6098cca Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Mon, 5 Dec 2022 16:00:31 +0100 Subject: [PATCH 002/623] chore(build): allow to trigger continuous integration manually (add workflow_dispatch event) --- .github/workflows/continuous-integration-workflow.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/continuous-integration-workflow.yml b/.github/workflows/continuous-integration-workflow.yml index 6a8d438a6..2aaf17617 100644 --- a/.github/workflows/continuous-integration-workflow.yml +++ b/.github/workflows/continuous-integration-workflow.yml @@ -4,6 +4,7 @@ on: pull_request: branches: - main + workflow_dispatch: jobs: build_core: From 680b6f154c9d361c3ff316db746a09045fa39921 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Mon, 5 Dec 2022 17:10:07 +0100 Subject: [PATCH 003/623] docs: add link to Java on AWS Lambda workshop --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index cb98d749f..d4c836e28 100644 --- a/README.md +++ b/README.md @@ -38,6 +38,10 @@ public class StreamLambdaHandler implements RequestStreamHandler { ## Public Examples +### Workshops + +- [Java on AWS Lambda](https://catalog.workshops.aws/java-on-aws-lambda) From Serverful to Serverless Java with AWS Lambda in 2 hours + ### Videos - [Spring on AWS Lambda](https://www.youtube.com/watch?v=A1rYiHTy9Lg&list=PLCOG9xkUD90IDm9tcY-5nMK6X6g8SD-Sz) YouTube Playlist from [@plantpowerjames](https://twitter.com/plantpowerjames) From 4bf3876dbc25a683fb35ea1f57b9ebf3be22836f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lu=C3=ADs=20Duarte?= Date: Mon, 5 Dec 2022 09:10:08 +0000 Subject: [PATCH 004/623] Add ALB Context to API GW Payload V2 --- .../jaxrs/AwsProxySecurityContext.java | 4 +--- .../servlet/AwsProxyHttpServletRequest.java | 6 +++--- .../AwsProxyHttpServletResponseWriter.java | 3 ++- .../testutils/AwsProxyRequestBuilder.java | 8 ++++---- .../proxy/model/AwsProxyRequest.java | 5 ----- .../proxy/model/HttpApiV2ProxyRequest.java | 11 +++++++++++ .../model/HttpApiV2ProxyRequestContext.java | 10 ++++++++++ .../serverless/proxy/model/RequestSource.java | 18 ++++++++++++++++++ .../proxy/model/HttpApiV2ProxyRequestTest.java | 2 ++ 9 files changed, 51 insertions(+), 16 deletions(-) create mode 100644 aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/model/RequestSource.java diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/jaxrs/AwsProxySecurityContext.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/jaxrs/AwsProxySecurityContext.java index 025dceacc..b05822971 100644 --- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/jaxrs/AwsProxySecurityContext.java +++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/jaxrs/AwsProxySecurityContext.java @@ -14,15 +14,13 @@ import com.amazonaws.serverless.proxy.model.AwsProxyRequest; import com.amazonaws.serverless.proxy.model.CognitoAuthorizerClaims; +import com.amazonaws.serverless.proxy.model.RequestSource; import com.amazonaws.services.lambda.runtime.Context; import javax.ws.rs.core.SecurityContext; import java.security.Principal; -import static com.amazonaws.serverless.proxy.model.AwsProxyRequest.RequestSource.API_GATEWAY; - - /** * default implementation of the SecurityContext object. This class supports 3 API Gateway's authorization methods: * AWS_IAM, CUSTOM_AUTHORIZER, and COGNITO_USER_POOL (oidc). The Principal returned by the object depends on the authorization 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 eecda99cb..61486bc74 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 @@ -18,6 +18,7 @@ import com.amazonaws.serverless.proxy.model.AwsProxyRequest; import com.amazonaws.serverless.proxy.model.ContainerConfig; import com.amazonaws.serverless.proxy.model.Headers; +import com.amazonaws.serverless.proxy.model.RequestSource; import com.amazonaws.services.lambda.runtime.Context; import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; @@ -49,7 +50,6 @@ import java.util.stream.Collectors; import java.util.stream.Stream; - /** * Implementation of the HttpServletRequest interface that supports AwsProxyRequest object. * This object is initialized with an AwsProxyRequest event and a SecurityContext generated @@ -204,7 +204,7 @@ public String getQueryString() { return this.generateQueryString( request.getMultiValueQueryStringParameters(), // ALB does not automatically decode parameters, so we don't want to re-encode them - request.getRequestSource() != AwsProxyRequest.RequestSource.ALB, + request.getRequestSource() != RequestSource.ALB, config.getUriEncoding()); } catch (ServletException e) { log.error("Could not generate query string", e); @@ -580,7 +580,7 @@ private List getHeaderValues(String key) { // special cases for referer and user agent headers List values = new ArrayList<>(); - if (request.getRequestSource() == AwsProxyRequest.RequestSource.API_GATEWAY) { + if (request.getRequestSource() == RequestSource.API_GATEWAY) { if ("referer".equals(key.toLowerCase(Locale.ENGLISH))) { values.add(request.getRequestContext().getIdentity().getCaller()); return values; diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletResponseWriter.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletResponseWriter.java index de84b5c2d..524a36f96 100644 --- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletResponseWriter.java +++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletResponseWriter.java @@ -20,6 +20,7 @@ import com.amazonaws.serverless.proxy.model.AwsProxyRequest; import com.amazonaws.serverless.proxy.model.AwsProxyResponse; import com.amazonaws.serverless.proxy.model.Headers; +import com.amazonaws.serverless.proxy.model.RequestSource; import com.amazonaws.services.lambda.runtime.Context; import javax.ws.rs.core.Response; @@ -73,7 +74,7 @@ public AwsProxyResponse writeResponse(AwsHttpServletResponse containerResponse, awsProxyResponse.setStatusCode(containerResponse.getStatus()); - if (containerResponse.getAwsProxyRequest() != null && containerResponse.getAwsProxyRequest().getRequestSource() == AwsProxyRequest.RequestSource.ALB) { + if (containerResponse.getAwsProxyRequest() != null && containerResponse.getAwsProxyRequest().getRequestSource() == RequestSource.ALB) { awsProxyResponse.setStatusDescription(containerResponse.getStatus() + " " + Response.Status.fromStatusCode(containerResponse.getStatus()).getReasonPhrase()); } diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/testutils/AwsProxyRequestBuilder.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/testutils/AwsProxyRequestBuilder.java index 998bf4748..6fae6db78 100644 --- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/testutils/AwsProxyRequestBuilder.java +++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/testutils/AwsProxyRequestBuilder.java @@ -224,11 +224,11 @@ public AwsProxyRequestBuilder queryString(String key, String value) { this.request.setMultiValueQueryStringParameters(new MultiValuedTreeMap<>()); } - if (request.getRequestSource() == AwsProxyRequest.RequestSource.API_GATEWAY) { + if (request.getRequestSource() == RequestSource.API_GATEWAY) { this.request.getMultiValueQueryStringParameters().add(key, value); } // ALB does not decode parameters automatically like API Gateway. - if (request.getRequestSource() == AwsProxyRequest.RequestSource.ALB) { + 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 @@ -285,7 +285,7 @@ public AwsProxyRequestBuilder binaryBody(InputStream is) public AwsProxyRequestBuilder authorizerPrincipal(String principal) { - if (this.request.getRequestSource() == AwsProxyRequest.RequestSource.API_GATEWAY) { + if (this.request.getRequestSource() == RequestSource.API_GATEWAY) { if (this.request.getRequestContext().getAuthorizer() == null) { this.request.getRequestContext().setAuthorizer(new ApiGatewayAuthorizerContext()); } @@ -295,7 +295,7 @@ public AwsProxyRequestBuilder authorizerPrincipal(String principal) { } this.request.getRequestContext().getAuthorizer().getClaims().setSubject(principal); } - if (this.request.getRequestSource() == AwsProxyRequest.RequestSource.ALB) { + if (this.request.getRequestSource() == RequestSource.ALB) { header("x-amzn-oidc-identity", principal); try { header( 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 440421a71..075db0ac3 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 @@ -192,9 +192,4 @@ public boolean isBase64Encoded() { public void setIsBase64Encoded(boolean base64Encoded) { isBase64Encoded = base64Encoded; } - - public static enum RequestSource { - ALB, - API_GATEWAY - } } diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/model/HttpApiV2ProxyRequest.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/model/HttpApiV2ProxyRequest.java index c50298eea..023236cc7 100644 --- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/model/HttpApiV2ProxyRequest.java +++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/model/HttpApiV2ProxyRequest.java @@ -13,9 +13,12 @@ package com.amazonaws.serverless.proxy.model; import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonIgnore; import java.util.List; import java.util.Map; +import java.util.Objects; +import java.util.Optional; public class HttpApiV2ProxyRequest { private String version; @@ -127,4 +130,12 @@ public HttpApiV2ProxyRequestContext getRequestContext() { public void setRequestContext(HttpApiV2ProxyRequestContext requestContext) { this.requestContext = requestContext; } + + @JsonIgnore + public RequestSource getRequestSource() { + return Optional.ofNullable(getRequestContext()) + .map(HttpApiV2ProxyRequestContext::getElb) + .map(albContext -> RequestSource.ALB) + .orElse(RequestSource.API_GATEWAY); + } } diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/model/HttpApiV2ProxyRequestContext.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/model/HttpApiV2ProxyRequestContext.java index 738f692f6..e5a5b9d2d 100644 --- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/model/HttpApiV2ProxyRequestContext.java +++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/model/HttpApiV2ProxyRequestContext.java @@ -25,6 +25,7 @@ public class HttpApiV2ProxyRequestContext { private String stage; private String time; private long timeEpoch; + private AlbContext elb; private HttpApiV2HttpContext http; private HttpApiV2AuthorizerMap authorizer; @@ -117,4 +118,13 @@ public void setAuthorizer(HttpApiV2AuthorizerMap authorizer) { this.authorizer = authorizer; } + public AlbContext getElb() { + return this.elb; + } + + public void setElb(AlbContext context) { + this.elb = context; + } + + } diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/model/RequestSource.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/model/RequestSource.java new file mode 100644 index 000000000..c819fdcc0 --- /dev/null +++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/model/RequestSource.java @@ -0,0 +1,18 @@ +/* + * Copyright 2022 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.model; + +public enum RequestSource { + ALB, + API_GATEWAY +} \ 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 c673a59e1..6e9aaecb8 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 @@ -136,6 +136,7 @@ public void deserialize_fromJsonString_authorizerPopulatedCorrectly() { 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()); } catch (JsonProcessingException e) { e.printStackTrace(); fail("Exception while parsing request" + e.getMessage()); @@ -177,6 +178,7 @@ public void deserialize_fromJsonString_isBase64EncodedPopulates() { assertFalse(req.isBase64Encoded()); req = LambdaContainerHandler.getObjectMapper().readValue(NO_AUTH_PROXY, HttpApiV2ProxyRequest.class); assertTrue(req.isBase64Encoded()); + assertEquals(RequestSource.API_GATEWAY, req.getRequestSource()); } catch (JsonProcessingException e) { e.printStackTrace(); fail("Exception while parsing request" + e.getMessage()); From ed30fd11b64c55fadb2c78206c540728d27898c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lu=C3=ADs=20Duarte?= Date: Tue, 6 Dec 2022 18:23:14 +0000 Subject: [PATCH 005/623] Migrate to JUnit 5 --- aws-serverless-java-container-core/pom.xml | 23 ++ .../proxy/AsyncInitializationWrapperTest.java | 8 +- .../proxy/AwsProxyExceptionHandlerTest.java | 50 +-- .../AwsProxySecurityContextWriterTest.java | 12 +- .../serverless/proxy/RequestReaderTest.java | 12 +- .../serverless/proxy/ResponseWriterTest.java | 9 +- .../internal/LambdaContainerHandlerTest.java | 10 +- .../proxy/internal/SecurityUtilsTest.java | 8 +- .../jaxrs/AwsProxySecurityContextTest.java | 18 +- .../jaxrs/HttpApiV2SecurityContextTest.java | 10 +- ...ApacheCombinedServletLogFormatterTest.java | 64 ++-- .../internal/servlet/AwsAsyncContextTest.java | 12 +- .../servlet/AwsFilterChainManagerTest.java | 46 +-- ...HttpApiV2HttpServletRequestReaderTest.java | 8 +- .../servlet/AwsHttpServletRequestTest.java | 37 +-- .../servlet/AwsHttpServletResponseTest.java | 46 +-- .../internal/servlet/AwsHttpSessionTest.java | 20 +- .../AwsProxyHttpServletRequestFormTest.java | 49 ++- .../AwsProxyHttpServletRequestReaderTest.java | 24 +- .../AwsProxyHttpServletRequestTest.java | 284 +++++++++++------- .../AwsProxyRequestDispatcherTest.java | 36 ++- .../servlet/AwsServletContextTest.java | 47 +-- .../servlet/AwsServletRegistrationTest.java | 12 +- .../internal/servlet/FilterHolderTest.java | 6 +- ...vletLambdaContainerHandlerBuilderTest.java | 14 +- .../servlet/filters/UrlPathValidatorTest.java | 16 +- .../ApiGatewayAuthorizerContextTest.java | 6 +- .../proxy/model/AwsProxyRequestTest.java | 18 +- .../model/CognitoAuthorizerClaimsTest.java | 8 +- .../model/HttpApiV2ProxyRequestTest.java | 16 +- .../proxy/model/MultiValuedTreeMapTest.java | 12 +- aws-serverless-java-container-jersey/pom.xml | 7 +- .../proxy/jersey/JerseyAwsProxyTest.java | 271 ++++++++++------- .../proxy/jersey/JerseyInjectionTest.java | 9 +- .../proxy/jersey/JerseyParamEncodingTest.java | 173 ++++++----- aws-serverless-java-container-spark/pom.xml | 7 +- .../spark/HelloWorldSparkStreamTest.java | 31 +- .../proxy/spark/HelloWorldSparkTest.java | 51 ++-- .../proxy/spark/InitExceptionHandlerTest.java | 20 +- .../SparkLambdaContainerHandlerTest.java | 16 +- .../LambdaEmbeddedServerTest.java | 6 +- aws-serverless-java-container-spring/pom.xml | 7 +- .../serverless/proxy/spring/SlowAppTest.java | 10 +- .../proxy/spring/SpringAwsProxyTest.java | 229 ++++++++------ .../spring/SpringServletContextTest.java | 32 +- .../proxy/spring/StaticAppProxyTest.java | 7 +- .../extensibility/CustomServletTest.java | 10 +- .../spring/profile/SpringProfileTest.java | 18 +- .../pom.xml | 7 +- .../proxy/spring/SecurityAppTest.java | 8 +- .../proxy/spring/ServletAppTest.java | 86 +++--- .../serverless/proxy/spring/SlowAppTest.java | 11 +- .../proxy/spring/WebFluxAppTest.java | 36 +-- ...rlessServletEmbeddedServerFactoryTest.java | 6 +- aws-serverless-java-container-struts/pom.xml | 10 +- .../proxy/struts/StrutsAwsProxyTest.java | 133 +++++--- pom.xml | 41 ++- 57 files changed, 1246 insertions(+), 937 deletions(-) diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml index f5bae2f56..0e777b78a 100644 --- a/aws-serverless-java-container-core/pom.xml +++ b/aws-serverless-java-container-core/pom.xml @@ -79,6 +79,21 @@ 4.5.13 test + + org.junit.jupiter + junit-jupiter-api + test + + + org.junit.jupiter + junit-jupiter-engine + test + + + org.junit.jupiter + junit-jupiter-params + test + org.apache.httpcomponents httpcore @@ -107,6 +122,14 @@ + + org.apache.maven.plugins + maven-surefire-plugin + 2.22.2 + + always + + org.jacoco jacoco-maven-plugin diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/AsyncInitializationWrapperTest.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/AsyncInitializationWrapperTest.java index 3b8a7306c..74a6b8038 100644 --- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/AsyncInitializationWrapperTest.java +++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/AsyncInitializationWrapperTest.java @@ -1,24 +1,24 @@ package com.amazonaws.serverless.proxy; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.lang.management.ManagementFactory; import java.time.Clock; import java.time.Instant; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; public class AsyncInitializationWrapperTest { @Test - public void initCreate_noStartTime_setsCurrentTime() { + void initCreate_noStartTime_setsCurrentTime() { AsyncInitializationWrapper init = new AsyncInitializationWrapper(); long initTime = ManagementFactory.getRuntimeMXBean().getStartTime(); assertEquals(initTime, init.getActualStartTimeMs()); } @Test - public void initCreate_withStartTime_storesCustomStartTime() throws InterruptedException { + void initCreate_withStartTime_storesCustomStartTime() throws InterruptedException { long initTime = Instant.now().toEpochMilli(); Thread.sleep(500); AsyncInitializationWrapper init = new AsyncInitializationWrapper(initTime); 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 cf86c57a6..dd3417db4 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 @@ -8,13 +8,13 @@ import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; -import static org.junit.Assert.*; -import static org.mockito.Matchers.any; +import static org.junit.jupiter.api.Assertions.*; +import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.mockito.Mockito; import javax.ws.rs.InternalServerErrorException; @@ -31,14 +31,14 @@ public class AwsProxyExceptionHandlerTest { private ObjectMapper objectMapper; - @Before + @BeforeEach public void setUp() { exceptionHandler = new AwsProxyExceptionHandler(); objectMapper = new ObjectMapper(); } @Test - public void typedHandle_InvalidRequestEventException_500State() { + void typedHandle_InvalidRequestEventException_500State() { AwsProxyResponse resp = exceptionHandler.handle(new InvalidRequestEventException(INVALID_REQUEST_MESSAGE, null)); assertNotNull(resp); @@ -46,7 +46,7 @@ public void typedHandle_InvalidRequestEventException_500State() { } @Test - public void typedHandle_InvalidRequestEventException_responseString() + void typedHandle_InvalidRequestEventException_responseString() throws JsonProcessingException { AwsProxyResponse resp = exceptionHandler.handle(new InvalidRequestEventException(INVALID_REQUEST_MESSAGE, null)); @@ -56,7 +56,7 @@ public void typedHandle_InvalidRequestEventException_responseString() } @Test - public void typedHandle_InvalidRequestEventException_jsonContentTypeHeader() { + void typedHandle_InvalidRequestEventException_jsonContentTypeHeader() { AwsProxyResponse resp = exceptionHandler.handle(new InvalidRequestEventException(INVALID_REQUEST_MESSAGE, null)); assertNotNull(resp); @@ -65,7 +65,7 @@ public void typedHandle_InvalidRequestEventException_jsonContentTypeHeader() { } @Test - public void typedHandle_InvalidResponseObjectException_502State() { + void typedHandle_InvalidResponseObjectException_502State() { AwsProxyResponse resp = exceptionHandler.handle(new InvalidResponseObjectException(INVALID_RESPONSE_MESSAGE, null)); assertNotNull(resp); @@ -73,7 +73,7 @@ public void typedHandle_InvalidResponseObjectException_502State() { } @Test - public void typedHandle_InvalidResponseObjectException_responseString() + void typedHandle_InvalidResponseObjectException_responseString() throws JsonProcessingException { AwsProxyResponse resp = exceptionHandler.handle(new InvalidResponseObjectException(INVALID_RESPONSE_MESSAGE, null)); @@ -83,7 +83,7 @@ public void typedHandle_InvalidResponseObjectException_responseString() } @Test - public void typedHandle_InvalidResponseObjectException_jsonContentTypeHeader() { + void typedHandle_InvalidResponseObjectException_jsonContentTypeHeader() { AwsProxyResponse resp = exceptionHandler.handle(new InvalidResponseObjectException(INVALID_RESPONSE_MESSAGE, null)); assertNotNull(resp); @@ -92,7 +92,7 @@ public void typedHandle_InvalidResponseObjectException_jsonContentTypeHeader() { } @Test - public void typedHandle_InternalServerErrorException_500State() { + void typedHandle_InternalServerErrorException_500State() { // Needed to mock InternalServerErrorException because it leverages RuntimeDelegate to set an internal // response object. InternalServerErrorException mockInternalServerErrorException = Mockito.mock(InternalServerErrorException.class); @@ -105,7 +105,7 @@ public void typedHandle_InternalServerErrorException_500State() { } @Test - public void typedHandle_InternalServerErrorException_responseString() + void typedHandle_InternalServerErrorException_responseString() throws JsonProcessingException { InternalServerErrorException mockInternalServerErrorException = Mockito.mock(InternalServerErrorException.class); Mockito.when(mockInternalServerErrorException.getMessage()).thenReturn(INTERNAL_SERVER_ERROR_MESSAGE); @@ -118,7 +118,7 @@ public void typedHandle_InternalServerErrorException_responseString() } @Test - public void typedHandle_InternalServerErrorException_jsonContentTypeHeader() { + void typedHandle_InternalServerErrorException_jsonContentTypeHeader() { InternalServerErrorException mockInternalServerErrorException = Mockito.mock(InternalServerErrorException.class); Mockito.when(mockInternalServerErrorException.getMessage()).thenReturn(INTERNAL_SERVER_ERROR_MESSAGE); @@ -130,7 +130,7 @@ public void typedHandle_InternalServerErrorException_jsonContentTypeHeader() { } @Test - public void typedHandle_NullPointerException_responseObject() + void typedHandle_NullPointerException_responseObject() throws JsonProcessingException { AwsProxyResponse resp = exceptionHandler.handle(new NullPointerException()); @@ -143,7 +143,7 @@ public void typedHandle_NullPointerException_responseObject() } @Test - public void streamHandle_InvalidRequestEventException_500State() + void streamHandle_InvalidRequestEventException_500State() throws IOException { ByteArrayOutputStream respStream = new ByteArrayOutputStream(); exceptionHandler.handle(new InvalidRequestEventException(INVALID_REQUEST_MESSAGE, null), respStream); @@ -156,7 +156,7 @@ public void streamHandle_InvalidRequestEventException_500State() } @Test - public void streamHandle_InvalidRequestEventException_responseString() + void streamHandle_InvalidRequestEventException_responseString() throws IOException { ByteArrayOutputStream respStream = new ByteArrayOutputStream(); exceptionHandler.handle(new InvalidRequestEventException(INVALID_REQUEST_MESSAGE, null), respStream); @@ -170,7 +170,7 @@ public void streamHandle_InvalidRequestEventException_responseString() } @Test - public void streamHandle_InvalidRequestEventException_jsonContentTypeHeader() + void streamHandle_InvalidRequestEventException_jsonContentTypeHeader() throws IOException { ByteArrayOutputStream respStream = new ByteArrayOutputStream(); exceptionHandler.handle(new InvalidRequestEventException(INVALID_REQUEST_MESSAGE, null), respStream); @@ -184,7 +184,7 @@ public void streamHandle_InvalidRequestEventException_jsonContentTypeHeader() } @Test - public void streamHandle_InvalidResponseObjectException_502State() + void streamHandle_InvalidResponseObjectException_502State() throws IOException { ByteArrayOutputStream respStream = new ByteArrayOutputStream(); exceptionHandler.handle(new InvalidResponseObjectException(INVALID_RESPONSE_MESSAGE, null), respStream); @@ -197,7 +197,7 @@ public void streamHandle_InvalidResponseObjectException_502State() } @Test - public void streamHandle_InvalidResponseObjectException_responseString() + void streamHandle_InvalidResponseObjectException_responseString() throws IOException { ByteArrayOutputStream respStream = new ByteArrayOutputStream(); exceptionHandler.handle(new InvalidResponseObjectException(INVALID_RESPONSE_MESSAGE, null), respStream); @@ -211,7 +211,7 @@ public void streamHandle_InvalidResponseObjectException_responseString() } @Test - public void streamHandle_InvalidResponseObjectException_jsonContentTypeHeader() + void streamHandle_InvalidResponseObjectException_jsonContentTypeHeader() throws IOException { ByteArrayOutputStream respStream = new ByteArrayOutputStream(); exceptionHandler.handle(new InvalidResponseObjectException(INVALID_RESPONSE_MESSAGE, null), respStream); @@ -225,17 +225,17 @@ public void streamHandle_InvalidResponseObjectException_jsonContentTypeHeader() } @Test - public void errorMessage_InternalServerError_staticString() { + void errorMessage_InternalServerError_staticString() { assertEquals("Internal Server Error", AwsProxyExceptionHandler.INTERNAL_SERVER_ERROR); } @Test - public void errorMessage_GatewayTimeout_staticString() { + void errorMessage_GatewayTimeout_staticString() { assertEquals("Gateway timeout", AwsProxyExceptionHandler.GATEWAY_TIMEOUT_ERROR); } @Test - public void getErrorJson_ErrorModel_validJson() + void getErrorJson_ErrorModel_validJson() throws IOException { String output = exceptionHandler.getErrorJson(INVALID_RESPONSE_MESSAGE); assertNotNull(output); @@ -245,7 +245,7 @@ public void getErrorJson_ErrorModel_validJson() } @Test - public void getErrorJson_JsonParsinException_validJson() + void getErrorJson_JsonParsinException_validJson() throws IOException { ObjectMapper mockMapper = mock(ObjectMapper.class); JsonProcessingException exception = mock(JsonProcessingException.class); diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/AwsProxySecurityContextWriterTest.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/AwsProxySecurityContextWriterTest.java index 6255344a9..34af09df7 100644 --- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/AwsProxySecurityContextWriterTest.java +++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/AwsProxySecurityContextWriterTest.java @@ -4,32 +4,32 @@ import com.amazonaws.serverless.proxy.AwsProxySecurityContextWriter; import com.amazonaws.serverless.proxy.internal.testutils.AwsProxyRequestBuilder; import com.amazonaws.services.lambda.runtime.Context; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import javax.ws.rs.core.SecurityContext; import java.lang.reflect.Method; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.*; public class AwsProxySecurityContextWriterTest { private AwsProxySecurityContextWriter writer; - @Before + @BeforeEach public void setUp() { writer = new AwsProxySecurityContextWriter(); } @Test - public void write_returnClass_securityContext() + void write_returnClass_securityContext() throws NoSuchMethodException { Method writeMethod = writer.getClass().getMethod("writeSecurityContext", AwsProxyRequest.class, Context.class); assertEquals(SecurityContext.class, writeMethod.getReturnType()); } @Test - public void write_noAuth_emptySecurityContext() { + void write_noAuth_emptySecurityContext() { AwsProxyRequest request = new AwsProxyRequestBuilder("/test").build(); SecurityContext context = writer.writeSecurityContext(request, null); diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/RequestReaderTest.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/RequestReaderTest.java index fb0d25f41..3afe72f94 100644 --- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/RequestReaderTest.java +++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/RequestReaderTest.java @@ -4,9 +4,9 @@ import com.amazonaws.serverless.proxy.model.ContainerConfig; import com.amazonaws.serverless.proxy.internal.servlet.AwsProxyHttpServletRequestReader; -import org.junit.Test; +import org.junit.jupiter.api.Test; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.*; public class RequestReaderTest { @@ -17,14 +17,14 @@ public class RequestReaderTest { private static final AwsProxyHttpServletRequestReader requestReader = new AwsProxyHttpServletRequestReader(); @Test - public void defaultConfig_doNotStripBasePath() { + void defaultConfig_doNotStripBasePath() { ContainerConfig config = ContainerConfig.defaultConfig(); assertFalse(config.isStripBasePath()); assertNull(config.getServiceBasePath()); } @Test - public void setServiceBasePath_addSlashes() { + void setServiceBasePath_addSlashes() { ContainerConfig config = new ContainerConfig(); config.setServiceBasePath(BASE_PATH_MAPPING); @@ -35,7 +35,7 @@ public void setServiceBasePath_addSlashes() { } @Test - public void requestReader_stripBasePath() { + void requestReader_stripBasePath() { ContainerConfig config = ContainerConfig.defaultConfig(); String requestPath = "/" + BASE_PATH_MAPPING + ORDERS_URL; @@ -55,7 +55,7 @@ public void requestReader_stripBasePath() { } @Test - public void requestReader_doubleBasePath() { + void requestReader_doubleBasePath() { ContainerConfig config = ContainerConfig.defaultConfig(); config.setStripBasePath(true); config.setServiceBasePath(BASE_PATH_MAPPING); diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/ResponseWriterTest.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/ResponseWriterTest.java index 863ea583f..48c544629 100644 --- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/ResponseWriterTest.java +++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/ResponseWriterTest.java @@ -1,16 +1,15 @@ package com.amazonaws.serverless.proxy; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; + import com.amazonaws.serverless.exceptions.InvalidResponseObjectException; import com.amazonaws.serverless.proxy.internal.servlet.AwsProxyHttpServletRequest; import com.amazonaws.services.lambda.runtime.Context; -import org.junit.Test; +import org.junit.jupiter.api.Test; import javax.servlet.http.HttpServletRequest; -import java.nio.ByteBuffer; - -import static junit.framework.TestCase.assertTrue; -import static org.junit.Assert.assertFalse; public class ResponseWriterTest { private static int[][] NAUGHTY_STRINGS = { diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/LambdaContainerHandlerTest.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/LambdaContainerHandlerTest.java index 8b10520c3..31a2c575b 100644 --- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/LambdaContainerHandlerTest.java +++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/LambdaContainerHandlerTest.java @@ -11,12 +11,12 @@ import com.amazonaws.serverless.proxy.model.AwsProxyResponse; import com.amazonaws.services.lambda.runtime.Context; import org.apache.http.impl.execchain.RequestAbortedException; -import org.junit.Test; +import org.junit.jupiter.api.Test; import javax.servlet.http.HttpServletRequest; import java.util.concurrent.CountDownLatch; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.*; public class LambdaContainerHandlerTest { private boolean isRuntimeException = false; @@ -29,7 +29,7 @@ public class LambdaContainerHandlerTest { ); @Test - public void throwRuntime_returnsUnwrappedException() { + void throwRuntime_returnsUnwrappedException() { try { isRuntimeException = true; throwException = true; @@ -44,7 +44,7 @@ public void throwRuntime_returnsUnwrappedException() { } @Test - public void throwNonRuntime_returnsWrappedException() { + void throwNonRuntime_returnsWrappedException() { try { isRuntimeException = false; throwException = true; @@ -61,7 +61,7 @@ public void throwNonRuntime_returnsWrappedException() { } @Test - public void noException_returnsResponse() { + void noException_returnsResponse() { throwException = false; LambdaContainerHandler.getContainerConfig().setDisableExceptionMapper(false); AwsProxyResponse resp = handler.proxy(new AwsProxyRequestBuilder("/test", "GET").build(), new MockLambdaContext()); diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/SecurityUtilsTest.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/SecurityUtilsTest.java index 2e8fb5c27..acf48d9c1 100644 --- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/SecurityUtilsTest.java +++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/SecurityUtilsTest.java @@ -1,13 +1,11 @@ package com.amazonaws.serverless.proxy.internal; -import org.junit.Test; - import java.util.HashMap; import java.util.Map; -import static junit.framework.TestCase.fail; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; public class SecurityUtilsTest { diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/jaxrs/AwsProxySecurityContextTest.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/jaxrs/AwsProxySecurityContextTest.java index db1b9c106..ed89bf86c 100644 --- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/jaxrs/AwsProxySecurityContextTest.java +++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/jaxrs/AwsProxySecurityContextTest.java @@ -2,7 +2,7 @@ import com.amazonaws.serverless.proxy.model.AwsProxyRequest; import com.amazonaws.serverless.proxy.internal.testutils.AwsProxyRequestBuilder; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.security.Principal; @@ -10,7 +10,7 @@ import static com.amazonaws.serverless.proxy.internal.jaxrs.AwsProxySecurityContext.ALB_IDENTITY_HEADER; import static com.amazonaws.serverless.proxy.internal.jaxrs.AwsProxySecurityContext.AUTH_SCHEME_COGNITO_POOL; import static com.amazonaws.serverless.proxy.internal.jaxrs.AwsProxySecurityContext.AUTH_SCHEME_CUSTOM; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.*; public class AwsProxySecurityContextTest { private static final String CLAIM_KEY = "custom:claim"; @@ -27,21 +27,21 @@ public class AwsProxySecurityContextTest { .build(); @Test - public void localVars_constructor_nullValues() { + void localVars_constructor_nullValues() { AwsProxySecurityContext context = new AwsProxySecurityContext(null, null); assertNull(context.getEvent()); assertNull(context.getLambdaContext()); } @Test - public void localVars_constructor_ValidRequest() { + void localVars_constructor_ValidRequest() { AwsProxySecurityContext context = new AwsProxySecurityContext(null, REQUEST_NO_AUTH); assertEquals(REQUEST_NO_AUTH, context.getEvent()); assertNull(context.getLambdaContext()); } @Test - public void alb_noAuth_expectEmptyScheme() { + void alb_noAuth_expectEmptyScheme() { AwsProxySecurityContext context = new AwsProxySecurityContext(null, ALB_REQUEST_NO_AUTH); assertEquals(ALB_REQUEST_NO_AUTH, context.getEvent()); assertNull(context.getLambdaContext()); @@ -50,21 +50,21 @@ public void alb_noAuth_expectEmptyScheme() { } @Test - public void authScheme_getAuthenticationScheme_userPool() { + void authScheme_getAuthenticationScheme_userPool() { AwsProxySecurityContext context = new AwsProxySecurityContext(null, REQUEST_COGNITO_USER_POOL); assertNotNull(context.getAuthenticationScheme()); assertEquals(AUTH_SCHEME_COGNITO_POOL, context.getAuthenticationScheme()); } @Test - public void authScheme_getPrincipal_userPool() { + void authScheme_getPrincipal_userPool() { AwsProxySecurityContext context = new AwsProxySecurityContext(null, REQUEST_COGNITO_USER_POOL); assertEquals(AUTH_SCHEME_COGNITO_POOL, context.getAuthenticationScheme()); assertEquals(COGNITO_IDENTITY_ID, context.getUserPrincipal().getName()); } @Test - public void alb_cognitoAuth_expectCustomSchemeAndCorrectPrincipal() { + void alb_cognitoAuth_expectCustomSchemeAndCorrectPrincipal() { AwsProxySecurityContext context = new AwsProxySecurityContext(null, ALB_REQUEST_COGNITO_USER_POOL); assertTrue(context.isSecure()); assertEquals(AUTH_SCHEME_CUSTOM, context.getAuthenticationScheme()); @@ -72,7 +72,7 @@ public void alb_cognitoAuth_expectCustomSchemeAndCorrectPrincipal() { } @Test - public void userPool_getClaims_retrieveCustomClaim() { + void userPool_getClaims_retrieveCustomClaim() { AwsProxySecurityContext context = new AwsProxySecurityContext(null, REQUEST_COGNITO_USER_POOL); Principal userPrincipal = context.getUserPrincipal(); assertNotNull(userPrincipal.getName()); diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/jaxrs/HttpApiV2SecurityContextTest.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/jaxrs/HttpApiV2SecurityContextTest.java index ae2dcdb53..0fda7b975 100644 --- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/jaxrs/HttpApiV2SecurityContextTest.java +++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/jaxrs/HttpApiV2SecurityContextTest.java @@ -3,12 +3,12 @@ import com.amazonaws.serverless.proxy.AwsHttpApiV2SecurityContextWriter; import com.amazonaws.serverless.proxy.internal.testutils.AwsProxyRequestBuilder; import com.amazonaws.serverless.proxy.model.HttpApiV2ProxyRequest; -import org.junit.Test; +import org.junit.jupiter.api.Test; import javax.ws.rs.core.HttpHeaders; import javax.ws.rs.core.SecurityContext; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.*; public class HttpApiV2SecurityContextTest { private static final String JWT_SUB_VALUE = "1234567890"; @@ -24,7 +24,7 @@ public class HttpApiV2SecurityContextTest { AwsHttpApiV2SecurityContextWriter contextWriter = new AwsHttpApiV2SecurityContextWriter(); @Test - public void getAuthenticationScheme_nullAuth_nullSchema() { + void getAuthenticationScheme_nullAuth_nullSchema() { SecurityContext ctx = contextWriter.writeSecurityContext(EMPTY_AUTH, null); assertNull(ctx.getAuthenticationScheme()); assertNull(ctx.getUserPrincipal()); @@ -32,7 +32,7 @@ public void getAuthenticationScheme_nullAuth_nullSchema() { } @Test - public void getAuthenticationScheme_jwtAuth_correctSchema() { + void getAuthenticationScheme_jwtAuth_correctSchema() { SecurityContext ctx = contextWriter.writeSecurityContext(BASIC_AUTH, null); assertEquals(AwsHttpApiV2SecurityContext.AUTH_SCHEME_JWT, ctx.getAuthenticationScheme()); assertTrue(ctx.isSecure()); @@ -40,7 +40,7 @@ public void getAuthenticationScheme_jwtAuth_correctSchema() { } @Test - public void getPrincipal_parseJwt_returnsSub() { + void getPrincipal_parseJwt_returnsSub() { SecurityContext ctx = contextWriter.writeSecurityContext(JWT_AUTH, null); assertEquals(AwsHttpApiV2SecurityContext.AUTH_SCHEME_JWT, ctx.getAuthenticationScheme()); assertTrue(ctx.isSecure()); diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/ApacheCombinedServletLogFormatterTest.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/ApacheCombinedServletLogFormatterTest.java index 0d12a5116..e07932680 100644 --- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/ApacheCombinedServletLogFormatterTest.java +++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/ApacheCombinedServletLogFormatterTest.java @@ -4,8 +4,8 @@ import com.amazonaws.serverless.proxy.model.ApiGatewayRequestIdentity; import com.amazonaws.serverless.proxy.model.AwsProxyRequest; import com.amazonaws.serverless.proxy.model.AwsProxyRequestContext; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -17,8 +17,8 @@ import static com.amazonaws.serverless.proxy.RequestReader.API_GATEWAY_CONTEXT_PROPERTY; import static com.amazonaws.serverless.proxy.RequestReader.API_GATEWAY_EVENT_PROPERTY; import static org.hamcrest.CoreMatchers.containsString; -import static org.junit.Assert.assertThat; -import static org.mockito.Matchers.eq; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @@ -31,7 +31,7 @@ public class ApacheCombinedServletLogFormatterTest { private AwsProxyRequest proxyRequest; private AwsProxyRequestContext context; - @Before + @BeforeEach public void setup() { proxyRequest = new AwsProxyRequest(); Clock fixedClock = Clock.fixed(Instant.ofEpochSecond(665888523L), ZoneId.of("UTC")); @@ -48,40 +48,40 @@ public void setup() { sut = new ApacheCombinedServletLogFormatter(fixedClock); } - @Test - public void logsCurrentTimeWhenContextNull() { - // given - proxyRequest.setRequestContext(null); + @Test + void logsCurrentTimeWhenContextNull() { + // given + proxyRequest.setRequestContext(null); - // when - String actual = sut.format(mockServletRequest, mockServletResponse, null); + // when + String actual = sut.format(mockServletRequest, mockServletResponse, null); - // then - assertThat(actual, containsString("[07/02/1991:01:02:03Z]")); - } + // then + assertThat(actual, containsString("[07/02/1991:01:02:03Z]")); + } - @Test - public void logsCurrentTimeWhenRequestTimeZero() { - // given - context.setRequestTimeEpoch(0); + @Test + void logsCurrentTimeWhenRequestTimeZero() { + // given + context.setRequestTimeEpoch(0); - // when - String actual = sut.format(mockServletRequest, mockServletResponse, null); + // when + String actual = sut.format(mockServletRequest, mockServletResponse, null); - // then - assertThat(actual, containsString("[07/02/1991:01:02:03Z]")); - } + // then + assertThat(actual, containsString("[07/02/1991:01:02:03Z]")); + } - @Test - public void logsRequestTimeWhenRequestTimeEpochGreaterThanZero() { - // given - context.setRequestTimeEpoch(1563023494000L); + @Test + void logsRequestTimeWhenRequestTimeEpochGreaterThanZero() { + // given + context.setRequestTimeEpoch(1563023494000L); - // when - String actual = sut.format(mockServletRequest, mockServletResponse, null); + // when + String actual = sut.format(mockServletRequest, mockServletResponse, null); - // then - assertThat(actual, containsString("[13/07/2019:13:11:34Z]")); - } + // then + assertThat(actual, containsString("[13/07/2019:13:11:34Z]")); + } } 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 f379ff32a..b5b79bba1 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,7 +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.Test; +import org.junit.jupiter.api.Test; import javax.servlet.AsyncContext; import javax.servlet.Servlet; @@ -21,8 +21,8 @@ import java.io.IOException; import java.util.concurrent.CountDownLatch; -import static junit.framework.TestCase.assertNotNull; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; public class AwsAsyncContextTest { private MockLambdaContext lambdaCtx = new MockLambdaContext(); @@ -33,7 +33,7 @@ public class AwsAsyncContextTest { private AwsServletContext ctx = getCtx(); @Test - public void dispatch_sendsToCorrectServlet() { + 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); @@ -59,8 +59,8 @@ public void dispatch_sendsToCorrectServlet() { } @Test - public void dispatchNewPath_sendsToCorrectServlet() throws InvalidRequestEventException { - AwsProxyHttpServletRequest req = (AwsProxyHttpServletRequest) reader.readRequest(new AwsProxyRequestBuilder("/srv1/hello", "GET").build(), null, lambdaCtx, LambdaContainerHandler.getContainerConfig()); + 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); diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsFilterChainManagerTest.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsFilterChainManagerTest.java index 8bc753540..882aa085c 100644 --- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsFilterChainManagerTest.java +++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsFilterChainManagerTest.java @@ -3,8 +3,8 @@ import com.amazonaws.serverless.proxy.internal.testutils.AwsProxyRequestBuilder; import com.amazonaws.serverless.proxy.internal.testutils.MockLambdaContext; import com.amazonaws.services.lambda.runtime.Context; -import org.junit.BeforeClass; -import org.junit.Test; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -14,7 +14,7 @@ import java.util.EnumSet; import java.util.concurrent.CountDownLatch; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.*; public class AwsFilterChainManagerTest { private static final String REQUEST_CUSTOM_ATTRIBUTE_NAME = "X-Custom-Attribute"; @@ -26,7 +26,7 @@ public class AwsFilterChainManagerTest { private Logger log = LoggerFactory.getLogger(AwsFilterChainManagerTest.class); - @BeforeClass + @BeforeAll public static void setUp() { servletContext = new AwsServletContext( null);//AwsServletContext.getInstance(lambdaContext, null); @@ -41,7 +41,7 @@ public static void setUp() { } @Test - public void paths_pathMatches_validPaths() { + void paths_pathMatches_validPaths() { assertTrue(chainManager.pathMatches("/users/123123123", "/users/*")); assertTrue(chainManager.pathMatches("/apis/123/methods", "/apis/*")); assertTrue(chainManager.pathMatches("/very/long/path/with/sub/resources", "/*")); @@ -52,7 +52,7 @@ public void paths_pathMatches_validPaths() { } @Test - public void paths_pathMatches_invalidPaths() { + void paths_pathMatches_invalidPaths() { // I expect we'd want to run filters on these requests, especially the ones that look invalid assertTrue(chainManager.pathMatches("_%Garbled%20Path_%", "/*")); assertTrue(chainManager.pathMatches("", "/*")); @@ -61,7 +61,7 @@ public void paths_pathMatches_invalidPaths() { } @Test - public void cacheKey_compare_samePath() { + void cacheKey_compare_samePath() { FilterChainManager.TargetCacheKey cacheKey = new FilterChainManager.TargetCacheKey(); cacheKey.setDispatcherType(DispatcherType.REQUEST); cacheKey.setTargetPath("/first/path"); @@ -71,11 +71,11 @@ public void cacheKey_compare_samePath() { secondCacheKey.setTargetPath("/first/path"); assertEquals(cacheKey.hashCode(), secondCacheKey.hashCode()); - assertTrue(cacheKey.equals(secondCacheKey)); + assertEquals(cacheKey, secondCacheKey); } @Test - public void cacheKey_compare_differentDispatcher() { + void cacheKey_compare_differentDispatcher() { FilterChainManager.TargetCacheKey cacheKey = new FilterChainManager.TargetCacheKey(); cacheKey.setDispatcherType(DispatcherType.REQUEST); cacheKey.setTargetPath("/first/path"); @@ -85,11 +85,11 @@ public void cacheKey_compare_differentDispatcher() { secondCacheKey.setTargetPath("/first/path"); assertNotEquals(cacheKey.hashCode(), secondCacheKey.hashCode()); - assertFalse(cacheKey.equals(secondCacheKey)); + assertNotEquals(cacheKey, secondCacheKey); } @Test - public void cacheKey_compare_additionalChars() { + void cacheKey_compare_additionalChars() { FilterChainManager.TargetCacheKey cacheKey = new FilterChainManager.TargetCacheKey(); cacheKey.setDispatcherType(DispatcherType.REQUEST); cacheKey.setTargetPath("/first/path"); @@ -98,21 +98,21 @@ public void cacheKey_compare_additionalChars() { secondCacheKey.setDispatcherType(DispatcherType.REQUEST); secondCacheKey.setTargetPath("/first/path/"); assertEquals(cacheKey.hashCode(), secondCacheKey.hashCode()); - assertTrue(cacheKey.equals(secondCacheKey)); + assertEquals(cacheKey, secondCacheKey); secondCacheKey.setTargetPath(" /first/path"); assertEquals(cacheKey.hashCode(), secondCacheKey.hashCode()); - assertTrue(cacheKey.equals(secondCacheKey)); + assertEquals(cacheKey, secondCacheKey); secondCacheKey.setTargetPath("first/path/"); assertEquals(cacheKey.hashCode(), secondCacheKey.hashCode()); - assertTrue(cacheKey.equals(secondCacheKey)); + assertEquals(cacheKey, secondCacheKey); } @Test - public void filterChain_getFilterChain_subsetOfFilters() { + void filterChain_getFilterChain_subsetOfFilters() { AwsProxyHttpServletRequest req = new AwsProxyHttpServletRequest( - new AwsProxyRequestBuilder("/first/second", "GET").build(), lambdaContext, null + new AwsProxyRequestBuilder("/first/second", "GET").build(), lambdaContext, null ); req.setServletContext(servletContext); FilterChainHolder fcHolder = chainManager.getFilterChain(req, null); @@ -135,9 +135,9 @@ public void filterChain_getFilterChain_subsetOfFilters() { } @Test - public void filterChain_matchMultipleTimes_expectSameMatch() { + void filterChain_matchMultipleTimes_expectSameMatch() { AwsProxyHttpServletRequest req = new AwsProxyHttpServletRequest( - new AwsProxyRequestBuilder("/first/second", "GET").build(), lambdaContext, null + new AwsProxyRequestBuilder("/first/second", "GET").build(), lambdaContext, null ); req.setServletContext(servletContext); FilterChainHolder fcHolder = chainManager.getFilterChain(req, null); @@ -145,7 +145,7 @@ public void filterChain_matchMultipleTimes_expectSameMatch() { assertEquals("Filter1", fcHolder.getFilter(0).getFilterName()); AwsProxyHttpServletRequest req2 = new AwsProxyHttpServletRequest( - new AwsProxyRequestBuilder("/first/second", "GET").build(), lambdaContext, null + new AwsProxyRequestBuilder("/first/second", "GET").build(), lambdaContext, null ); req.setServletContext(servletContext); FilterChainHolder fcHolder2 = chainManager.getFilterChain(req2, null); @@ -154,9 +154,9 @@ public void filterChain_matchMultipleTimes_expectSameMatch() { } @Test - public void filerChain_executeMultipleFilters_expectRunEachTime() { + void filerChain_executeMultipleFilters_expectRunEachTime() { AwsProxyHttpServletRequest req = new AwsProxyHttpServletRequest( - new AwsProxyRequestBuilder("/first/second", "GET").build(), lambdaContext, null + new AwsProxyRequestBuilder("/first/second", "GET").build(), lambdaContext, null ); req.setServletContext(servletContext); FilterChainHolder fcHolder = chainManager.getFilterChain(req, null); @@ -180,7 +180,7 @@ public void filerChain_executeMultipleFilters_expectRunEachTime() { log.debug("Starting second request"); AwsProxyHttpServletRequest req2 = new AwsProxyHttpServletRequest( - new AwsProxyRequestBuilder("/first/second", "GET").build(), lambdaContext, null + new AwsProxyRequestBuilder("/first/second", "GET").build(), lambdaContext, null ); req2.setServletContext(servletContext); FilterChainHolder fcHolder2 = chainManager.getFilterChain(req2, null); @@ -205,7 +205,7 @@ public void filerChain_executeMultipleFilters_expectRunEachTime() { } @Test - public void filterChain_getFilterChain_multipleFilters() { + void filterChain_getFilterChain_multipleFilters() { AwsProxyHttpServletRequest req = new AwsProxyHttpServletRequest( new AwsProxyRequestBuilder("/second/important", "GET").build(), lambdaContext, null ); diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpApiV2HttpServletRequestReaderTest.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpApiV2HttpServletRequestReaderTest.java index 37ba30598..e35fedb7d 100644 --- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpApiV2HttpServletRequestReaderTest.java +++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpApiV2HttpServletRequestReaderTest.java @@ -5,23 +5,23 @@ import com.amazonaws.serverless.proxy.internal.testutils.AwsProxyRequestBuilder; import com.amazonaws.serverless.proxy.model.HttpApiV2ProxyRequest; import com.amazonaws.serverless.proxy.model.HttpApiV2ProxyRequestContext; -import org.junit.Test; +import org.junit.jupiter.api.Test; import javax.servlet.http.HttpServletRequest; import javax.ws.rs.core.HttpHeaders; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.*; public class AwsHttpApiV2HttpServletRequestReaderTest { private AwsHttpApiV2HttpServletRequestReader reader = new AwsHttpApiV2HttpServletRequestReader(); @Test - public void reflection_getRequestClass_returnsCorrectType() { + void reflection_getRequestClass_returnsCorrectType() { assertSame(HttpApiV2ProxyRequest.class, reader.getRequestClass()); } @Test - public void baseRequest_read_populatesSuccessfully() { + void baseRequest_read_populatesSuccessfully() { HttpApiV2ProxyRequest req = new AwsProxyRequestBuilder("/hello", "GET") .referer("localhost") .userAgent("Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.61 Safari/537.36") 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 5372dfa95..35903333b 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 @@ -7,13 +7,13 @@ import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; -import org.junit.Test; +import org.junit.jupiter.api.Test; import javax.servlet.ServletException; import javax.servlet.http.Cookie; import javax.ws.rs.core.HttpHeaders; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.*; import java.util.Base64; import java.util.List; @@ -41,7 +41,7 @@ public class AwsHttpServletRequestTest { private static ContainerConfig config = ContainerConfig.defaultConfig(); @Test - public void headers_parseHeaderValue_multiValue() { + void headers_parseHeaderValue_multiValue() { AwsProxyHttpServletRequest request = new AwsProxyHttpServletRequest(contentTypeRequest, mockContext, null, config); // I'm also using this to double-check that I can get a header ignoring case List values = request.parseHeaderValue(request.getHeader("content-type")); @@ -55,7 +55,7 @@ public void headers_parseHeaderValue_multiValue() { } @Test - public void headers_parseHeaderValue_validMultipleCookie() { + void headers_parseHeaderValue_validMultipleCookie() { AwsProxyHttpServletRequest request = new AwsProxyHttpServletRequest(validCookieRequest, mockContext, null, config); List values = request.parseHeaderValue(request.getHeader(HttpHeaders.COOKIE), ";", ","); @@ -67,7 +67,7 @@ public void headers_parseHeaderValue_validMultipleCookie() { } @Test - public void headers_parseHeaderValue_complexAccept() { + void headers_parseHeaderValue_complexAccept() { AwsProxyHttpServletRequest request = new AwsProxyHttpServletRequest(complexAcceptHeader, mockContext, null, config); List values = request.parseHeaderValue(request.getHeader(HttpHeaders.ACCEPT), ",", ";"); @@ -75,8 +75,8 @@ public void headers_parseHeaderValue_complexAccept() { } @Test - public void headers_parseHeaderValue_encodedContentWithEquals() { - AwsHttpServletRequest context = new AwsProxyHttpServletRequest(null,null,null); + void headers_parseHeaderValue_encodedContentWithEquals() { + AwsHttpServletRequest context = new AwsProxyHttpServletRequest(null, null, null); String value = Base64.getUrlEncoder().encodeToString("a".getBytes()); @@ -86,11 +86,11 @@ public void headers_parseHeaderValue_encodedContentWithEquals() { } @Test - public void headers_parseHeaderValue_base64EncodedCookieValue() { + void headers_parseHeaderValue_base64EncodedCookieValue() { String value = Base64.getUrlEncoder().encodeToString("a".getBytes()); String cookieValue = "jwt=" + value + "; secondValue=second"; AwsProxyRequest req = new AwsProxyRequestBuilder("/test", "GET").header(HttpHeaders.COOKIE, cookieValue).build(); - AwsHttpServletRequest context = new AwsProxyHttpServletRequest(req,null,null); + AwsHttpServletRequest context = new AwsProxyHttpServletRequest(req, null, null); Cookie[] cookies = context.getCookies(); @@ -100,10 +100,10 @@ public void headers_parseHeaderValue_base64EncodedCookieValue() { } @Test - public void headers_parseHeaderValue_cookieWithSeparatorInValue() { + void headers_parseHeaderValue_cookieWithSeparatorInValue() { String cookieValue = "jwt==test; secondValue=second"; AwsProxyRequest req = new AwsProxyRequestBuilder("/test", "GET").header(HttpHeaders.COOKIE, cookieValue).build(); - AwsHttpServletRequest context = new AwsProxyHttpServletRequest(req,null,null); + AwsHttpServletRequest context = new AwsProxyHttpServletRequest(req, null, null); Cookie[] cookies = context.getCookies(); @@ -113,8 +113,8 @@ public void headers_parseHeaderValue_cookieWithSeparatorInValue() { } @Test - public void headers_parseHeaderValue_headerWithPaddingButNotBase64Encoded() { - AwsHttpServletRequest context = new AwsProxyHttpServletRequest(null,null,null); + void headers_parseHeaderValue_headerWithPaddingButNotBase64Encoded() { + AwsHttpServletRequest context = new AwsProxyHttpServletRequest(null, null, null); List result = context.parseHeaderValue("hello="); assertTrue(result.size() > 0); @@ -123,7 +123,7 @@ public void headers_parseHeaderValue_headerWithPaddingButNotBase64Encoded() { } @Test - public void queryString_generateQueryString_validQuery() { + void queryString_generateQueryString_validQuery() { AwsProxyHttpServletRequest request = new AwsProxyHttpServletRequest(queryString, mockContext, null, config); String parsedString = null; @@ -139,8 +139,9 @@ public void queryString_generateQueryString_validQuery() { } @Test - public void queryString_generateQueryString_nullParameterIsEmpty() { - AwsProxyHttpServletRequest request = new AwsProxyHttpServletRequest(queryStringNullValue, mockContext, null, config);String parsedString = null; + void queryString_generateQueryString_nullParameterIsEmpty() { + AwsProxyHttpServletRequest request = new AwsProxyHttpServletRequest(queryStringNullValue, mockContext, null, config); + String parsedString = null; try { parsedString = request.generateQueryString(request.getAwsProxyRequest().getMultiValueQueryStringParameters(), true, config.getUriEncoding()); } catch (ServletException e) { @@ -152,7 +153,7 @@ public void queryString_generateQueryString_nullParameterIsEmpty() { } @Test - public void queryStringWithEncodedParams_generateQueryString_validQuery() { + void queryStringWithEncodedParams_generateQueryString_validQuery() { AwsProxyHttpServletRequest request = new AwsProxyHttpServletRequest(encodedQueryString, mockContext, null, config); String parsedString = null; @@ -168,7 +169,7 @@ public void queryStringWithEncodedParams_generateQueryString_validQuery() { } @Test - public void queryStringWithMultipleValues_generateQueryString_validQuery() { + void queryStringWithMultipleValues_generateQueryString_validQuery() { AwsProxyHttpServletRequest request = new AwsProxyHttpServletRequest(multipleParams, mockContext, null, config); String parsedString = null; 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 4731a0359..8a1d8f1e6 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 @@ -4,7 +4,7 @@ import com.amazonaws.serverless.proxy.model.ContainerConfig; import com.amazonaws.serverless.proxy.model.Headers; -import org.junit.Test; +import org.junit.jupiter.api.Test; import javax.servlet.http.Cookie; import javax.ws.rs.core.HttpHeaders; @@ -21,7 +21,7 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.*; public class AwsHttpServletResponseTest { @@ -40,7 +40,7 @@ public class AwsHttpServletResponseTest { private static final String CONTENT_TYPE_WITH_CHARSET = "application/json; charset=UTF-8"; @Test - public void cookie_addCookie_verifyPath() { + void cookie_addCookie_verifyPath() { AwsHttpServletResponse resp = new AwsHttpServletResponse(null, null); Cookie pathCookie = new Cookie(COOKIE_NAME, COOKIE_VALUE); pathCookie.setPath(COOKIE_PATH); @@ -53,7 +53,7 @@ public void cookie_addCookie_verifyPath() { } @Test - public void cookie_addCookie_verifySecure() { + void cookie_addCookie_verifySecure() { AwsHttpServletResponse resp = new AwsHttpServletResponse(null, null); Cookie secureCookie = new Cookie(COOKIE_NAME, COOKIE_VALUE); secureCookie.setSecure(true); @@ -66,7 +66,7 @@ public void cookie_addCookie_verifySecure() { } @Test - public void cookie_addCookie_verifyDomain() { + void cookie_addCookie_verifyDomain() { AwsHttpServletResponse resp = new AwsHttpServletResponse(null, null); Cookie domainCookie = new Cookie(COOKIE_NAME, COOKIE_VALUE); domainCookie.setDomain(COOKIE_DOMAIN); @@ -79,7 +79,7 @@ public void cookie_addCookie_verifyDomain() { } @Test - public void cookie_addCookie_defaultMaxAgeIsNegative() { + void cookie_addCookie_defaultMaxAgeIsNegative() { AwsHttpServletResponse resp = new AwsHttpServletResponse(null, null); Cookie maxAgeCookie = new Cookie(COOKIE_NAME, COOKIE_VALUE); maxAgeCookie.setDomain(COOKIE_DOMAIN); @@ -92,7 +92,7 @@ public void cookie_addCookie_defaultMaxAgeIsNegative() { } @Test - public void cookie_addCookie_positiveMaxAgeIsPresent() { + void cookie_addCookie_positiveMaxAgeIsPresent() { AwsHttpServletResponse resp = new AwsHttpServletResponse(null, null); Cookie maxAgeCookie = new Cookie(COOKIE_NAME, COOKIE_VALUE); maxAgeCookie.setMaxAge(MAX_AGE_VALUE); @@ -108,7 +108,7 @@ public void cookie_addCookie_positiveMaxAgeIsPresent() { } @Test - public void cookie_addCookie_positiveMaxAgeExpiresDate() { + void cookie_addCookie_positiveMaxAgeExpiresDate() { AwsHttpServletResponse resp = new AwsHttpServletResponse(null, null); Cookie maxAgeCookie = new Cookie(COOKIE_NAME, COOKIE_VALUE); maxAgeCookie.setMaxAge(MAX_AGE_VALUE); @@ -132,7 +132,7 @@ public void cookie_addCookie_positiveMaxAgeExpiresDate() { } @Test - public void cookie_addCookieWithoutMaxAge_expectNoExpires() { + void cookie_addCookieWithoutMaxAge_expectNoExpires() { AwsHttpServletResponse resp = new AwsHttpServletResponse(null, null); Cookie simpleCookie = new Cookie(COOKIE_NAME, COOKIE_VALUE); resp.addCookie(simpleCookie); @@ -143,7 +143,7 @@ public void cookie_addCookieWithoutMaxAge_expectNoExpires() { } @Test - public void responseHeaders_getAwsResponseHeaders_expectLatestHeader() { + void responseHeaders_getAwsResponseHeaders_expectLatestHeader() { AwsHttpServletResponse resp = new AwsHttpServletResponse(null, null); resp.addHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON); resp.addHeader("content-type", "application/xml"); @@ -154,7 +154,7 @@ public void responseHeaders_getAwsResponseHeaders_expectLatestHeader() { } @Test - public void responseHeaders_getAwsResponseHeaders_expectedMultpleCookieHeaders() { + void responseHeaders_getAwsResponseHeaders_expectedMultpleCookieHeaders() { AwsHttpServletResponse resp = new AwsHttpServletResponse(null, null); resp.addCookie(new Cookie(COOKIE_NAME, COOKIE_VALUE)); resp.addCookie(new Cookie("Second", "test")); @@ -165,7 +165,7 @@ public void responseHeaders_getAwsResponseHeaders_expectedMultpleCookieHeaders() } @Test - public void releaseLatch_flushBuffer_expectFlushToWriteAndRelease() { + void releaseLatch_flushBuffer_expectFlushToWriteAndRelease() { CountDownLatch respLatch = new CountDownLatch(1); AwsHttpServletResponse resp = new AwsHttpServletResponse(null, respLatch); String respBody = "Test resp"; @@ -200,7 +200,7 @@ public void releaseLatch_flushBuffer_expectFlushToWriteAndRelease() { } @Test - public void dateHeader_addDateHeader_expectMultipleHeaders() { + void dateHeader_addDateHeader_expectMultipleHeaders() { AwsHttpServletResponse resp = new AwsHttpServletResponse(null, null); resp.addDateHeader("Date", Instant.now().toEpochMilli()); resp.addDateHeader("Date", Instant.now().toEpochMilli() - 1000); @@ -209,7 +209,7 @@ public void dateHeader_addDateHeader_expectMultipleHeaders() { } @Test - public void dateHeader_setDateHeader_expectSingleHeader() { + void dateHeader_setDateHeader_expectSingleHeader() { AwsHttpServletResponse resp = new AwsHttpServletResponse(null, null); resp.setDateHeader("Date", Instant.now().toEpochMilli()); resp.setDateHeader("Date", Instant.now().toEpochMilli() - 1000); @@ -218,7 +218,7 @@ public void dateHeader_setDateHeader_expectSingleHeader() { } @Test - public void response_reset_expectEmptyHeadersAndBody() { + void response_reset_expectEmptyHeadersAndBody() { CountDownLatch respLatch = new CountDownLatch(1); AwsHttpServletResponse resp = new AwsHttpServletResponse(null, respLatch); String body = "My Body"; @@ -240,7 +240,7 @@ public void response_reset_expectEmptyHeadersAndBody() { } @Test - public void headers_setIntHeader_expectSingleHeaderValue() { + void headers_setIntHeader_expectSingleHeaderValue() { AwsHttpServletResponse resp = new AwsHttpServletResponse(null, null); resp.setIntHeader("Test", 15); resp.setIntHeader("Test", 34); @@ -251,7 +251,7 @@ public void headers_setIntHeader_expectSingleHeaderValue() { } @Test - public void headers_addIntHeader_expectMultipleHeaderValues() { + void headers_addIntHeader_expectMultipleHeaderValues() { AwsHttpServletResponse resp = new AwsHttpServletResponse(null, null); resp.addIntHeader("Test", 15); resp.addIntHeader("Test", 34); @@ -262,7 +262,7 @@ public void headers_addIntHeader_expectMultipleHeaderValues() { } @Test - public void characterEncoding_setCharacterEncoding() { + void characterEncoding_setCharacterEncoding() { AwsHttpServletResponse resp = new AwsHttpServletResponse(null, null); resp.setContentType("application/json"); resp.setCharacterEncoding("UTF-8"); @@ -272,7 +272,7 @@ public void characterEncoding_setCharacterEncoding() { } @Test - public void characterEncoding_setContentType() { + void characterEncoding_setContentType() { AwsHttpServletResponse resp = new AwsHttpServletResponse(null, null); resp.setContentType("application/json; charset=utf-8"); resp.setCharacterEncoding("UTF-8"); @@ -283,7 +283,7 @@ public void characterEncoding_setContentType() { } @Test - public void characterEncoding_setContentTypeAndsetCharacterEncoding() { + void characterEncoding_setContentTypeAndsetCharacterEncoding() { AwsHttpServletResponse resp = new AwsHttpServletResponse(null, null); resp.setContentType("application/json"); resp.setCharacterEncoding("UTF-8"); @@ -294,7 +294,7 @@ public void characterEncoding_setContentTypeAndsetCharacterEncoding() { } @Test - public void characterEncoding_setCharacterEncodingAndsetContentType() { + void characterEncoding_setCharacterEncodingAndsetContentType() { AwsHttpServletResponse resp = new AwsHttpServletResponse(null, null); resp.setCharacterEncoding("UTF-8"); resp.setContentType("application/json"); @@ -305,7 +305,7 @@ public void characterEncoding_setCharacterEncodingAndsetContentType() { } @Test - public void characterEncoding_setCharacterEncodingInContentType_characterEncodingPopulatedCorrectly() { + void characterEncoding_setCharacterEncodingInContentType_characterEncodingPopulatedCorrectly() { AwsHttpServletResponse resp = new AwsHttpServletResponse(null, null); resp.setContentType(CONTENT_TYPE_WITH_CHARSET); @@ -315,7 +315,7 @@ public void characterEncoding_setCharacterEncodingInContentType_characterEncodin } @Test - public void characterEncoding_setCharacterEncodingInContentType_overridesDefault() { + void characterEncoding_setCharacterEncodingInContentType_overridesDefault() { AwsHttpServletResponse resp = new AwsHttpServletResponse(null, null); resp.setCharacterEncoding(ContainerConfig.DEFAULT_CONTENT_CHARSET); resp.setContentType(CONTENT_TYPE_WITH_CHARSET); diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpSessionTest.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpSessionTest.java index bb9e0d476..77dd4bd32 100644 --- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpSessionTest.java +++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpSessionTest.java @@ -1,18 +1,16 @@ package com.amazonaws.serverless.proxy.internal.servlet; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.time.Instant; import java.util.Enumeration; -import static junit.framework.TestCase.assertTrue; -import static junit.framework.TestCase.fail; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.*; public class AwsHttpSessionTest { @Test - public void new_withNullId_throwsException() { + void new_withNullId_throwsException() { try { AwsHttpSession session = new AwsHttpSession(null); } catch (RuntimeException e) { @@ -23,13 +21,13 @@ public void new_withNullId_throwsException() { } @Test - public void new_withValidId_setsIdCorrectly() { + void new_withValidId_setsIdCorrectly() { AwsHttpSession session = new AwsHttpSession("id"); assertEquals("id", session.getId()); } @Test - public void new_creationTimePopulatedCorrectly() { + void new_creationTimePopulatedCorrectly() { AwsHttpSession session = new AwsHttpSession("id"); assertTrue(session.getCreationTime() > Instant.now().getEpochSecond() - 1); assertEquals(AwsHttpSession.SESSION_DURATION_SEC, session.getMaxInactiveInterval()); @@ -37,7 +35,7 @@ public void new_creationTimePopulatedCorrectly() { } @Test - public void values_throwsUnsupportedOperationException() { + void values_throwsUnsupportedOperationException() { int exCount = 0; AwsHttpSession sess = new AwsHttpSession("id"); @@ -65,7 +63,7 @@ public void values_throwsUnsupportedOperationException() { } @Test - public void attributes_dataStoredCorrectly() throws InterruptedException { + void attributes_dataStoredCorrectly() throws InterruptedException { AwsHttpSession sess = new AwsHttpSession("id"); sess.setAttribute("test", "test"); sess.setAttribute("test2", "test2"); @@ -76,7 +74,7 @@ public void attributes_dataStoredCorrectly() throws InterruptedException { attrsCnt++; } assertEquals(2, attrsCnt); - assertEquals(sess.getAttribute("test"), "test"); + assertEquals("test", sess.getAttribute("test")); sess.removeAttribute("test2"); attrs = sess.getAttributeNames(); attrsCnt = 0; @@ -94,7 +92,7 @@ public void attributes_dataStoredCorrectly() throws InterruptedException { } @Test - public void validSession_expectCorrectValidationOrInvalidation() throws InterruptedException { + void validSession_expectCorrectValidationOrInvalidation() throws InterruptedException { AwsHttpSession sess = new AwsHttpSession("id"); assertTrue(sess.isValid()); assertTrue(sess.isNew()); 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 838ea6607..a185a1f8a 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 @@ -8,7 +8,7 @@ import org.apache.http.HttpEntity; import org.apache.http.entity.ContentType; import org.apache.http.entity.mime.MultipartEntityBuilder; -import org.junit.Test; +import org.junit.jupiter.api.Test; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; @@ -22,10 +22,7 @@ import java.util.Map; import java.util.Random; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; +import static org.junit.jupiter.api.Assertions.*; public class AwsProxyHttpServletRequestFormTest { @@ -55,12 +52,12 @@ public class AwsProxyHttpServletRequestFormTest { private static final String ENCODED_FORM_ENTITY = PART_KEY_1 + "=" + ENCODED_VALUE + "&" + PART_KEY_2 + "=" + PART_VALUE_2; @Test - public void postForm_getParam_getEncodedFullValue() { + void postForm_getParam_getEncodedFullValue() { try { AwsProxyRequest proxyRequest = new AwsProxyRequestBuilder("/form", "POST") - .header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_FORM_URLENCODED) - .body(ENCODED_FORM_ENTITY) - .build(); + .header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_FORM_URLENCODED) + .body(ENCODED_FORM_ENTITY) + .build(); HttpServletRequest request = new AwsProxyHttpServletRequest(proxyRequest, null, null); assertNotNull(request.getParts()); @@ -71,32 +68,32 @@ public void postForm_getParam_getEncodedFullValue() { } @Test - public void postForm_getParts_parsing() { + void postForm_getParts_parsing() { try { AwsProxyRequest proxyRequest = new AwsProxyRequestBuilder("/form", "POST") - .header(MULTIPART_FORM_DATA.getContentType().getName(), MULTIPART_FORM_DATA.getContentType().getValue()) - //.header(formData.getContentEncoding().getName(), formData.getContentEncoding().getValue()) - .body(IOUtils.toString(MULTIPART_FORM_DATA.getContent())) - .build(); + .header(MULTIPART_FORM_DATA.getContentType().getName(), MULTIPART_FORM_DATA.getContentType().getValue()) + //.header(formData.getContentEncoding().getName(), formData.getContentEncoding().getValue()) + .body(IOUtils.toString(MULTIPART_FORM_DATA.getContent(), Charset.defaultCharset())) + .build(); HttpServletRequest request = new AwsProxyHttpServletRequest(proxyRequest, null, null); assertNotNull(request.getParts()); assertEquals(2, request.getParts().size()); - assertEquals(PART_VALUE_1, IOUtils.toString(request.getPart(PART_KEY_1).getInputStream())); - assertEquals(PART_VALUE_2, IOUtils.toString(request.getPart(PART_KEY_2).getInputStream())); + assertEquals(PART_VALUE_1, IOUtils.toString(request.getPart(PART_KEY_1).getInputStream(), Charset.defaultCharset())); + assertEquals(PART_VALUE_2, IOUtils.toString(request.getPart(PART_KEY_2).getInputStream(), Charset.defaultCharset())); } catch (IOException | ServletException e) { fail(e.getMessage()); } } @Test - public void multipart_getParts_binary() { + void multipart_getParts_binary() { try { AwsProxyRequest proxyRequest = new AwsProxyRequestBuilder("/form", "POST") - .header(MULTIPART_BINARY_DATA.getContentType().getName(), MULTIPART_BINARY_DATA.getContentType().getValue()) - .header(HttpHeaders.CONTENT_LENGTH, MULTIPART_BINARY_DATA.getContentLength() + "") - .binaryBody(MULTIPART_BINARY_DATA.getContent()) - .build(); + .header(MULTIPART_BINARY_DATA.getContentType().getName(), MULTIPART_BINARY_DATA.getContentType().getValue()) + .header(HttpHeaders.CONTENT_LENGTH, MULTIPART_BINARY_DATA.getContentLength() + "") + .binaryBody(MULTIPART_BINARY_DATA.getContent()) + .build(); HttpServletRequest request = new AwsProxyHttpServletRequest(proxyRequest, null, null); assertNotNull(request.getParts()); @@ -105,17 +102,17 @@ public void multipart_getParts_binary() { assertEquals(FILE_SIZE, request.getPart(FILE_KEY).getSize()); assertEquals(FILE_KEY, request.getPart(FILE_KEY).getName()); assertEquals(FILE_NAME, request.getPart(FILE_KEY).getSubmittedFileName()); - assertEquals(PART_VALUE_1, IOUtils.toString(request.getPart(PART_KEY_1).getInputStream())); - assertEquals(PART_VALUE_2, IOUtils.toString(request.getPart(PART_KEY_2).getInputStream())); + assertEquals(PART_VALUE_1, IOUtils.toString(request.getPart(PART_KEY_1).getInputStream(), Charset.defaultCharset())); + assertEquals(PART_VALUE_2, IOUtils.toString(request.getPart(PART_KEY_2).getInputStream(), Charset.defaultCharset())); } catch (IOException | ServletException e) { fail(e.getMessage()); } } @Test - public void postForm_getParamsBase64Encoded_expectAllParams() { + void postForm_getParamsBase64Encoded_expectAllParams() { AwsProxyRequest proxyRequest = new AwsProxyRequestBuilder("/form", "POST") - .header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_FORM_URLENCODED).build(); + .header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_FORM_URLENCODED).build(); proxyRequest.setBody(Base64.getEncoder().encodeToString(ENCODED_FORM_ENTITY.getBytes(Charset.defaultCharset()))); proxyRequest.setIsBase64Encoded(true); @@ -131,7 +128,7 @@ public void postForm_getParamsBase64Encoded_expectAllParams() { * issue #340 */ @Test - public void postForm_emptyParamPresent() { + void postForm_emptyParamPresent() { AwsProxyRequest proxyRequest = new AwsProxyRequestBuilder("/form", "POST") .header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_FORM_URLENCODED).build(); String body = PART_KEY_1 + "=" + "&" + PART_KEY_2 + "=" + PART_VALUE_2; diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequestReaderTest.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequestReaderTest.java index 166bfb472..486e923aa 100644 --- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequestReaderTest.java +++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequestReaderTest.java @@ -7,14 +7,14 @@ import com.amazonaws.serverless.proxy.model.ContainerConfig; import com.amazonaws.serverless.proxy.internal.testutils.AwsProxyRequestBuilder; import com.amazonaws.services.lambda.runtime.Context; -import org.junit.Test; +import org.junit.jupiter.api.Test; import javax.servlet.http.HttpServletRequest; import javax.ws.rs.core.HttpHeaders; import javax.ws.rs.core.SecurityContext; import java.lang.reflect.Method; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.*; public class AwsProxyHttpServletRequestReaderTest { @@ -26,7 +26,7 @@ public class AwsProxyHttpServletRequestReaderTest { private static final String DECODED_REQUEST_PATH = "/foo/bar/Some Thing"; @Test - public void readRequest_validAwsProxy_populatedRequest() { + void readRequest_validAwsProxy_populatedRequest() { AwsProxyRequest request = new AwsProxyRequestBuilder("/path", "GET").header(TEST_HEADER_KEY, TEST_HEADER_VALUE).build(); try { HttpServletRequest servletRequest = reader.readRequest(request, null, null, ContainerConfig.defaultConfig()); @@ -39,7 +39,7 @@ public void readRequest_validAwsProxy_populatedRequest() { } @Test - public void readRequest_urlDecode_expectDecodedPath() { + void readRequest_urlDecode_expectDecodedPath() { AwsProxyRequest request = new AwsProxyRequestBuilder(ENCODED_REQUEST_PATH, "GET").build(); try { HttpServletRequest servletRequest = reader.readRequest(request, null, null, ContainerConfig.defaultConfig()); @@ -54,7 +54,7 @@ public void readRequest_urlDecode_expectDecodedPath() { } @Test - public void readRequest_contentCharset_doesNotOverrideRequestCharset() { + void readRequest_contentCharset_doesNotOverrideRequestCharset() { String requestCharset = "application/json; charset=UTF-8"; AwsProxyRequest request = new AwsProxyRequestBuilder(ENCODED_REQUEST_PATH, "GET").header(HttpHeaders.CONTENT_TYPE, requestCharset).build(); try { @@ -70,7 +70,7 @@ public void readRequest_contentCharset_doesNotOverrideRequestCharset() { } @Test - public void readRequest_contentCharset_setsDefaultCharsetWhenNotSpecified() { + void readRequest_contentCharset_setsDefaultCharsetWhenNotSpecified() { String requestCharset = "application/json"; AwsProxyRequest request = new AwsProxyRequestBuilder(ENCODED_REQUEST_PATH, "GET").header(HttpHeaders.CONTENT_TYPE, requestCharset).build(); try { @@ -87,7 +87,7 @@ public void readRequest_contentCharset_setsDefaultCharsetWhenNotSpecified() { } @Test - public void readRequest_contentCharset_appendsCharsetToComplextContentType() { + void readRequest_contentCharset_appendsCharsetToComplextContentType() { String contentType = "multipart/form-data; boundary=something"; AwsProxyRequest request = new AwsProxyRequestBuilder(ENCODED_REQUEST_PATH, "GET").header(HttpHeaders.CONTENT_TYPE, contentType).build(); try { @@ -104,7 +104,7 @@ public void readRequest_contentCharset_appendsCharsetToComplextContentType() { } @Test - public void readRequest_validEventEmptyPath_expectException() { + void readRequest_validEventEmptyPath_expectException() { try { AwsProxyRequest req = new AwsProxyRequestBuilder(null, "GET").build(); HttpServletRequest servletReq = reader.readRequest(req, null, null, ContainerConfig.defaultConfig()); @@ -116,7 +116,7 @@ public void readRequest_validEventEmptyPath_expectException() { } @Test - public void readRequest_invalidEventEmptyMethod_expectException() { + void readRequest_invalidEventEmptyMethod_expectException() { try { AwsProxyRequest req = new AwsProxyRequestBuilder("/path", null).build(); reader.readRequest(req, null, null, ContainerConfig.defaultConfig()); @@ -127,7 +127,7 @@ public void readRequest_invalidEventEmptyMethod_expectException() { } @Test - public void readRequest_invalidEventEmptyContext_expectException() { + void readRequest_invalidEventEmptyContext_expectException() { try { AwsProxyRequest req = new AwsProxyRequestBuilder("/path", "GET").build(); req.setRequestContext(null); @@ -139,7 +139,7 @@ public void readRequest_invalidEventEmptyContext_expectException() { } @Test - public void readRequest_nullHeaders_expectSuccess() { + void readRequest_nullHeaders_expectSuccess() { AwsProxyRequest req = new AwsProxyRequestBuilder("/path", "GET").build(); req.setMultiValueHeaders(null); try { @@ -153,7 +153,7 @@ public void readRequest_nullHeaders_expectSuccess() { } @Test - public void readRequest_emptyHeaders_expectSuccess() { + void readRequest_emptyHeaders_expectSuccess() { AwsProxyRequest req = new AwsProxyRequestBuilder("/path", "GET").build(); try { HttpServletRequest servletReq = reader.readRequest(req, null, null, ContainerConfig.defaultConfig()); 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 de23d855c..73c07a8f2 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,9 +5,8 @@ import com.amazonaws.serverless.proxy.internal.testutils.AwsProxyRequestBuilder; import com.amazonaws.services.lambda.runtime.Context; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; import javax.servlet.http.HttpServletRequest; import javax.ws.rs.core.HttpHeaders; @@ -22,10 +21,9 @@ import java.time.ZonedDateTime; import java.util.*; -import static org.junit.Assert.*; -import static org.junit.Assume.assumeFalse; +import static org.junit.jupiter.api.Assertions.*; +import static org.junit.jupiter.api.Assumptions.assumeFalse; -@RunWith(Parameterized.class) public class AwsProxyHttpServletRequestTest { private String requestType; @@ -66,6 +64,7 @@ public class AwsProxyHttpServletRequestTest { .header(HttpHeaders.CONTENT_TYPE.toLowerCase(Locale.getDefault()), MediaType.APPLICATION_JSON); private static final AwsProxyRequestBuilder REQUEST_NULL_QUERY_STRING; + static { AwsProxyRequest awsProxyRequest = new AwsProxyRequestBuilder("/hello", "GET").build(); awsProxyRequest.setMultiValueQueryStringParameters(null); @@ -78,13 +77,12 @@ public class AwsProxyHttpServletRequestTest { .queryString(FORM_PARAM_NAME, ""); - public AwsProxyHttpServletRequestTest(String type) { + public void initAwsProxyHttpServletRequestTest(String type) { requestType = type; } - @Parameterized.Parameters public static Collection data() { - return Arrays.asList(new Object[] { "API_GW", "ALB", "HTTP_API", "WRAP" }); + return Arrays.asList(new Object[]{"API_GW", "ALB", "HTTP_API", "WRAP"}); } private HttpServletRequest getRequest(AwsProxyRequestBuilder req, Context lambdaCtx, SecurityContext securityCtx) { @@ -104,16 +102,20 @@ private HttpServletRequest getRequest(AwsProxyRequestBuilder req, Context lambda } - @Test - public void headers_getHeader_validRequest() { + @MethodSource("data") + @ParameterizedTest + void headers_getHeader_validRequest(String type) { + initAwsProxyHttpServletRequestTest(type); HttpServletRequest request = getRequest(getRequestWithHeaders(), null, null); assertNotNull(request.getHeader(CUSTOM_HEADER_KEY)); assertEquals(CUSTOM_HEADER_VALUE, request.getHeader(CUSTOM_HEADER_KEY)); assertEquals(MediaType.APPLICATION_JSON, request.getContentType()); } - @Test - public void headers_getRefererAndUserAgent_returnsContextValues() { + @MethodSource("data") + @ParameterizedTest + void headers_getRefererAndUserAgent_returnsContextValues(String type) { + initAwsProxyHttpServletRequestTest(type); assumeFalse("ALB".equals(requestType)); HttpServletRequest request = getRequest(REQUEST_USER_AGENT_REFERER, null, null); assertNotNull(request.getHeader("Referer")); @@ -125,45 +127,57 @@ public void headers_getRefererAndUserAgent_returnsContextValues() { assertEquals(USER_AGENT, request.getHeader("user-agent")); } - @Test - public void formParams_getParameter_validForm() { + @MethodSource("data") + @ParameterizedTest + void formParams_getParameter_validForm(String type) { + initAwsProxyHttpServletRequestTest(type); HttpServletRequest request = getRequest(REQUEST_FORM_URLENCODED, null, null); assertNotNull(request); assertNotNull(request.getParameter(FORM_PARAM_NAME)); assertEquals(FORM_PARAM_NAME_VALUE, request.getParameter(FORM_PARAM_NAME)); } - @Test - public void formParams_getParameter_null() { + @MethodSource("data") + @ParameterizedTest + void formParams_getParameter_null(String type) { + initAwsProxyHttpServletRequestTest(type); HttpServletRequest request = getRequest(REQUEST_INVALID_FORM_URLENCODED, null, null); assertNotNull(request); assertNull(request.getParameter(FORM_PARAM_NAME)); } - @Test - public void formParams_getParameter_multipleParams() { + @MethodSource("data") + @ParameterizedTest + void formParams_getParameter_multipleParams(String type) { + initAwsProxyHttpServletRequestTest(type); HttpServletRequest request = getRequest(REQUEST_FORM_URLENCODED_AND_QUERY, null, null); assertNotNull(request); assertEquals(2, request.getParameterValues(FORM_PARAM_NAME).length); } - @Test - public void formParams_getParameter_queryStringPrecendence() { + @MethodSource("data") + @ParameterizedTest + void formParams_getParameter_queryStringPrecendence(String type) { + initAwsProxyHttpServletRequestTest(type); HttpServletRequest request = getRequest(REQUEST_FORM_URLENCODED_AND_QUERY, null, null); assertNotNull(request); assertEquals(2, request.getParameterValues(FORM_PARAM_NAME).length); assertEquals(QUERY_STRING_NAME_VALUE, request.getParameter(FORM_PARAM_NAME)); } - @Test - public void dateHeader_noDate_returnNegativeOne() { + @MethodSource("data") + @ParameterizedTest + void dateHeader_noDate_returnNegativeOne(String type) { + initAwsProxyHttpServletRequestTest(type); HttpServletRequest request = getRequest(REQUEST_FORM_URLENCODED_AND_QUERY, null, null); assertNotNull(request); assertEquals(-1L, request.getDateHeader(HttpHeaders.DATE)); } - @Test - public void dateHeader_correctDate_parseToCorrectLong() { + @MethodSource("data") + @ParameterizedTest + void dateHeader_correctDate_parseToCorrectLong(String type) { + initAwsProxyHttpServletRequestTest(type); HttpServletRequest request = getRequest(REQUEST_WITH_DATE, null, null); assertNotNull(request); @@ -172,32 +186,40 @@ public void dateHeader_correctDate_parseToCorrectLong() { assertEquals(-1L, request.getDateHeader(HttpHeaders.IF_MODIFIED_SINCE)); } - @Test - public void scheme_getScheme_https() { + @MethodSource("data") + @ParameterizedTest + void scheme_getScheme_https(String type) { + initAwsProxyHttpServletRequestTest(type); HttpServletRequest request = getRequest(REQUEST_FORM_URLENCODED, null, null); assertNotNull(request); assertNotNull(request.getScheme()); assertEquals("https", request.getScheme()); } - @Test - public void scheme_getScheme_http() { + @MethodSource("data") + @ParameterizedTest + void scheme_getScheme_http(String type) { + initAwsProxyHttpServletRequestTest(type); HttpServletRequest request = getRequest(getRequestWithHeaders(), null, null); assertNotNull(request); assertNotNull(request.getScheme()); assertEquals(REQUEST_SCHEME_HTTP, request.getScheme()); } - @Test - public void cookie_getCookies_noCookies() { + @MethodSource("data") + @ParameterizedTest + void cookie_getCookies_noCookies(String type) { + initAwsProxyHttpServletRequestTest(type); HttpServletRequest request = getRequest(getRequestWithHeaders(), null, null); assertNotNull(request); assertNotNull(request.getCookies()); assertEquals(0, request.getCookies().length); } - @Test - public void cookie_getCookies_singleCookie() { + @MethodSource("data") + @ParameterizedTest + void cookie_getCookies_singleCookie(String type) { + initAwsProxyHttpServletRequestTest(type); HttpServletRequest request = getRequest(REQUEST_SINGLE_COOKIE, null, null); assertNotNull(request); assertNotNull(request.getCookies()); @@ -206,8 +228,10 @@ public void cookie_getCookies_singleCookie() { assertEquals(FORM_PARAM_NAME_VALUE, request.getCookies()[0].getValue()); } - @Test - public void cookie_getCookies_multipleCookies() { + @MethodSource("data") + @ParameterizedTest + void cookie_getCookies_multipleCookies(String type) { + initAwsProxyHttpServletRequestTest(type); HttpServletRequest request = getRequest(REQUEST_MULTIPLE_COOKIES, null, null); assertNotNull(request); assertNotNull(request.getCookies()); @@ -218,47 +242,59 @@ public void cookie_getCookies_multipleCookies() { assertEquals(FORM_PARAM_NAME_VALUE, request.getCookies()[1].getValue()); } - @Test - public void cookie_getCookies_emptyCookies() { + @MethodSource("data") + @ParameterizedTest + void cookie_getCookies_emptyCookies(String type) { + initAwsProxyHttpServletRequestTest(type); HttpServletRequest request = getRequest(REQUEST_MALFORMED_COOKIE, null, null); assertNotNull(request); assertNotNull(request.getCookies()); assertEquals(0, request.getCookies().length); } - @Test - public void queryParameters_getParameterMap_null() { + @MethodSource("data") + @ParameterizedTest + void queryParameters_getParameterMap_null(String type) { + initAwsProxyHttpServletRequestTest(type); HttpServletRequest request = getRequest(REQUEST_NULL_QUERY_STRING, null, null); assertNotNull(request); assertEquals(0, request.getParameterMap().size()); } - @Test - public void queryParameters_getParameterMap_nonNull() { + @MethodSource("data") + @ParameterizedTest + void queryParameters_getParameterMap_nonNull(String type) { + initAwsProxyHttpServletRequestTest(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]); } - @Test - public void queryParameters_getParameterMap_nonNull_EmptyParamValue() { + @MethodSource("data") + @ParameterizedTest + void queryParameters_getParameterMap_nonNull_EmptyParamValue(String type) { + initAwsProxyHttpServletRequestTest(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]); } - @Test - public void queryParameters_getParameterNames_null() { + @MethodSource("data") + @ParameterizedTest + void queryParameters_getParameterNames_null(String type) { + initAwsProxyHttpServletRequestTest(type); HttpServletRequest request = getRequest(REQUEST_NULL_QUERY_STRING, null, null); List parameterNames = Collections.list(request.getParameterNames()); assertNotNull(request); assertEquals(0, parameterNames.size()); } - @Test - public void queryParameters_getParameterNames_notNull() { + @MethodSource("data") + @ParameterizedTest + void queryParameters_getParameterNames_notNull(String type) { + initAwsProxyHttpServletRequestTest(type); HttpServletRequest request = getRequest(REQUEST_QUERY, null, null); List parameterNames = Collections.list(request.getParameterNames()); assertNotNull(request); @@ -266,8 +302,10 @@ public void queryParameters_getParameterNames_notNull() { assertTrue(parameterNames.contains(FORM_PARAM_NAME)); } - @Test - public void queryParameter_getParameterMap_avoidDuplicationOnMultipleCalls() { + @MethodSource("data") + @ParameterizedTest + void queryParameter_getParameterMap_avoidDuplicationOnMultipleCalls(String type) { + initAwsProxyHttpServletRequestTest(type); HttpServletRequest request = getRequest(REQUEST_MULTIPLE_FORM_AND_QUERY, null, null); Map params = request.getParameterMap(); @@ -287,23 +325,27 @@ public void queryParameter_getParameterMap_avoidDuplicationOnMultipleCalls() { assertEquals(1, params.get(FORM_PARAM_TEST).length); } - @Test - public void charEncoding_getEncoding_expectNoEncodingWithoutContentType() { - HttpServletRequest request = getRequest(REQUEST_SINGLE_COOKIE, null, null); - try { - request.setCharacterEncoding(StandardCharsets.UTF_8.name()); - // we have not specified a content type so the encoding will not be set - assertNull(request.getCharacterEncoding()); - assertNull(request.getContentType()); - } catch (UnsupportedEncodingException e) { - e.printStackTrace(); - fail("Unsupported encoding"); + @MethodSource("data") + @ParameterizedTest + void charEncoding_getEncoding_expectNoEncodingWithoutContentType(String type) { + initAwsProxyHttpServletRequestTest(type); + HttpServletRequest request = getRequest(REQUEST_SINGLE_COOKIE, null, null); + try { + request.setCharacterEncoding(StandardCharsets.UTF_8.name()); + // we have not specified a content type so the encoding will not be set + assertNull(request.getCharacterEncoding()); + assertNull(request.getContentType()); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + fail("Unsupported encoding"); - } + } } - @Test - public void charEncoding_getEncoding_expectContentTypeOnly() { + @MethodSource("data") + @ParameterizedTest + void charEncoding_getEncoding_expectContentTypeOnly(String type) { + initAwsProxyHttpServletRequestTest(type); HttpServletRequest request = getRequest(getRequestWithHeaders(), null, null); // we have not specified a content type so the encoding will not be set assertNull(request.getCharacterEncoding()); @@ -320,11 +362,13 @@ public void charEncoding_getEncoding_expectContentTypeOnly() { } } - @Test - public void charEncoding_addCharEncodingTwice_expectSingleMediaTypeAndEncoding() { + @MethodSource("data") + @ParameterizedTest + void charEncoding_addCharEncodingTwice_expectSingleMediaTypeAndEncoding(String type) { + initAwsProxyHttpServletRequestTest(type); HttpServletRequest request = getRequest(getRequestWithHeaders(), null, null); // we have not specified a content type so the encoding will not be set - assertEquals(null, request.getCharacterEncoding()); + assertNull(request.getCharacterEncoding()); assertEquals(MediaType.APPLICATION_JSON, request.getContentType()); try { @@ -346,8 +390,10 @@ public void charEncoding_addCharEncodingTwice_expectSingleMediaTypeAndEncoding() } } - @Test - public void contentType_lowerCaseHeaderKey_expectUpdatedMediaType() { + @MethodSource("data") + @ParameterizedTest + void contentType_lowerCaseHeaderKey_expectUpdatedMediaType(String type) { + initAwsProxyHttpServletRequestTest(type); HttpServletRequest request = getRequest(REQUEST_WITH_LOWERCASE_HEADER, null, null); try { request.setCharacterEncoding(StandardCharsets.UTF_8.name()); @@ -361,8 +407,10 @@ public void contentType_lowerCaseHeaderKey_expectUpdatedMediaType() { } } - @Test - public void contentType_duplicateCase_expectSingleContentTypeHeader() { + @MethodSource("data") + @ParameterizedTest + void contentType_duplicateCase_expectSingleContentTypeHeader(String type) { + initAwsProxyHttpServletRequestTest(type); AwsProxyRequestBuilder proxyRequest = getRequestWithHeaders(); HttpServletRequest request = getRequest(proxyRequest, null, null); @@ -376,8 +424,10 @@ public void contentType_duplicateCase_expectSingleContentTypeHeader() { } } - @Test - public void requestURL_getUrl_expectHttpSchemaAndLocalhostForLocalTesting() { + @MethodSource("data") + @ParameterizedTest + void requestURL_getUrl_expectHttpSchemaAndLocalhostForLocalTesting(String type) { + initAwsProxyHttpServletRequestTest(type); assumeFalse("ALB".equals(requestType)); AwsProxyRequestBuilder req = getRequestWithHeaders(); req.apiId("test-id"); @@ -397,8 +447,10 @@ public void requestURL_getUrl_expectHttpSchemaAndLocalhostForLocalTesting() { LambdaContainerHandler.getContainerConfig().getCustomDomainNames().remove("localhost"); } - @Test - public void requestURL_getUrlWithCustomBasePath_expectCustomBasePath() { + @MethodSource("data") + @ParameterizedTest + void requestURL_getUrlWithCustomBasePath_expectCustomBasePath(String type) { + initAwsProxyHttpServletRequestTest(type); AwsProxyRequestBuilder req = getRequestWithHeaders(); LambdaContainerHandler.getContainerConfig().setServiceBasePath("test"); HttpServletRequest servletRequest = getRequest(req, null, null); @@ -407,8 +459,10 @@ public void requestURL_getUrlWithCustomBasePath_expectCustomBasePath() { LambdaContainerHandler.getContainerConfig().setServiceBasePath(null); } - @Test - public void requestURL_getUrlWithContextPath_expectStageAsContextPath() { + @MethodSource("data") + @ParameterizedTest + void requestURL_getUrlWithContextPath_expectStageAsContextPath(String type) { + initAwsProxyHttpServletRequestTest(type); assumeFalse("ALB".equals(requestType)); AwsProxyRequestBuilder req = getRequestWithHeaders(); req.stage("test-stage"); @@ -420,8 +474,10 @@ public void requestURL_getUrlWithContextPath_expectStageAsContextPath() { LambdaContainerHandler.getContainerConfig().setUseStageAsServletContext(false); } - @Test - public void getLocales_emptyAcceptHeader_expectDefaultLocale() { + @MethodSource("data") + @ParameterizedTest + void getLocales_emptyAcceptHeader_expectDefaultLocale(String type) { + initAwsProxyHttpServletRequestTest(type); AwsProxyRequestBuilder req = getRequestWithHeaders(); HttpServletRequest servletRequest = getRequest(req, null, null); Enumeration locales = servletRequest.getLocales(); @@ -434,8 +490,10 @@ public void getLocales_emptyAcceptHeader_expectDefaultLocale() { assertEquals(1, localesNo); } - @Test - public void getLocales_validAcceptHeader_expectSingleLocale() { + @MethodSource("data") + @ParameterizedTest + void getLocales_validAcceptHeader_expectSingleLocale(String type) { + initAwsProxyHttpServletRequestTest(type); AwsProxyRequestBuilder req = getRequestWithHeaders(); req.header(HttpHeaders.ACCEPT_LANGUAGE, "fr-CH"); HttpServletRequest servletRequest = getRequest(req, null, null); @@ -449,8 +507,10 @@ public void getLocales_validAcceptHeader_expectSingleLocale() { assertEquals(1, localesNo); } - @Test - public void getLocales_validAcceptHeaderMultipleLocales_expectFullLocaleList() { + @MethodSource("data") + @ParameterizedTest + void getLocales_validAcceptHeaderMultipleLocales_expectFullLocaleList(String type) { + initAwsProxyHttpServletRequestTest(type); AwsProxyRequestBuilder req = getRequestWithHeaders(); req.header(HttpHeaders.ACCEPT_LANGUAGE, "fr-CH, fr;q=0.9, en;q=0.8, de;q=0.7, *;q=0.5"); HttpServletRequest servletRequest = getRequest(req, null, null); @@ -470,8 +530,10 @@ public void getLocales_validAcceptHeaderMultipleLocales_expectFullLocaleList() { assertEquals(new Locale("fr-CH"), servletRequest.getLocale()); } - @Test - public void getLocales_validAcceptHeaderMultipleLocales_expectFullLocaleListOrdered() { + @MethodSource("data") + @ParameterizedTest + void getLocales_validAcceptHeaderMultipleLocales_expectFullLocaleListOrdered(String type) { + initAwsProxyHttpServletRequestTest(type); AwsProxyRequestBuilder req = getRequestWithHeaders(); req.header(HttpHeaders.ACCEPT_LANGUAGE, "fr-CH, en;q=0.8, de;q=0.7, *;q=0.5, fr;q=0.9"); HttpServletRequest servletRequest = getRequest(req, null, null); @@ -488,8 +550,10 @@ public void getLocales_validAcceptHeaderMultipleLocales_expectFullLocaleListOrde assertEquals(new Locale("*"), localesList.get(4)); } - @Test - public void nullQueryString_expectNoExceptions() { + @MethodSource("data") + @ParameterizedTest + void nullQueryString_expectNoExceptions(String type) { + initAwsProxyHttpServletRequestTest(type); AwsProxyRequestBuilder req = new AwsProxyRequestBuilder("/hello", "GET"); HttpServletRequest servletReq = getRequest(req, null, null); assertNull(servletReq.getQueryString()); @@ -499,8 +563,10 @@ public void nullQueryString_expectNoExceptions() { assertNull(servletReq.getParameterValues("param")); } - @Test - public void inputStream_emptyBody_expectNullInputStream() { + @MethodSource("data") + @ParameterizedTest + void inputStream_emptyBody_expectNullInputStream(String type) { + initAwsProxyHttpServletRequestTest(type); AwsProxyRequestBuilder proxyReq = getRequestWithHeaders(); assertNull(proxyReq.build().getBody()); HttpServletRequest req = getRequest(proxyReq, null, null); @@ -514,37 +580,47 @@ public void inputStream_emptyBody_expectNullInputStream() { } } - @Test - public void getHeaders_emptyHeaders_expectEmptyEnumeration() { + @MethodSource("data") + @ParameterizedTest + void getHeaders_emptyHeaders_expectEmptyEnumeration(String type) { + initAwsProxyHttpServletRequestTest(type); AwsProxyRequestBuilder proxyReq = new AwsProxyRequestBuilder("/hello", "GET"); HttpServletRequest req = getRequest(proxyReq, null, null); assertFalse(req.getHeaders("param").hasMoreElements()); } - @Test - public void getServerPort_defaultPort_expect443() { + @MethodSource("data") + @ParameterizedTest + void getServerPort_defaultPort_expect443(String type) { + initAwsProxyHttpServletRequestTest(type); HttpServletRequest req = getRequest(getRequestWithHeaders(), null, null); assertEquals(443, req.getServerPort()); } - @Test - public void getServerPort_customPortFromHeader_expectCustomPort() { + @MethodSource("data") + @ParameterizedTest + void getServerPort_customPortFromHeader_expectCustomPort(String type) { + initAwsProxyHttpServletRequestTest(type); AwsProxyRequestBuilder proxyReq = getRequestWithHeaders(); proxyReq.header(AwsProxyHttpServletRequest.PORT_HEADER_NAME, "80"); HttpServletRequest req = getRequest(proxyReq, null, null); assertEquals(80, req.getServerPort()); } - @Test - public void getServerPort_invalidCustomPortFromHeader_expectDefaultPort() { + @MethodSource("data") + @ParameterizedTest + void getServerPort_invalidCustomPortFromHeader_expectDefaultPort(String type) { + initAwsProxyHttpServletRequestTest(type); AwsProxyRequestBuilder proxyReq = getRequestWithHeaders(); proxyReq.header(AwsProxyHttpServletRequest.PORT_HEADER_NAME, "7200"); HttpServletRequest req = getRequest(proxyReq, null, null); assertEquals(443, req.getServerPort()); } - @Test - public void serverName_emptyHeaders_doesNotThrowNullPointer() { + @MethodSource("data") + @ParameterizedTest + void serverName_emptyHeaders_doesNotThrowNullPointer(String type) { + initAwsProxyHttpServletRequestTest(type); AwsProxyRequestBuilder proxyReq = new AwsProxyRequestBuilder("/test", "GET"); proxyReq.multiValueHeaders(null); HttpServletRequest servletReq = getRequest(proxyReq, null, null); @@ -552,8 +628,10 @@ public void serverName_emptyHeaders_doesNotThrowNullPointer() { assertTrue(serverName.startsWith("null.execute-api")); } - @Test - public void serverName_hostHeader_returnsHostHeaderOnly() { + @MethodSource("data") + @ParameterizedTest + void serverName_hostHeader_returnsHostHeaderOnly(String type) { + initAwsProxyHttpServletRequestTest(type); AwsProxyRequestBuilder proxyReq = new AwsProxyRequestBuilder("/test", "GET") .header(HttpHeaders.HOST, "testapi.com"); LambdaContainerHandler.getContainerConfig().addCustomDomain("testapi.com"); @@ -564,8 +642,8 @@ public void serverName_hostHeader_returnsHostHeaderOnly() { private AwsProxyRequestBuilder getRequestWithHeaders() { return new AwsProxyRequestBuilder("/hello", "GET") - .header(CUSTOM_HEADER_KEY, CUSTOM_HEADER_VALUE) - .header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON) - .header(AwsProxyHttpServletRequest.CF_PROTOCOL_HEADER_NAME, REQUEST_SCHEME_HTTP); + .header(CUSTOM_HEADER_KEY, CUSTOM_HEADER_VALUE) + .header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON) + .header(AwsProxyHttpServletRequest.CF_PROTOCOL_HEADER_NAME, REQUEST_SCHEME_HTTP); } } diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyRequestDispatcherTest.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyRequestDispatcherTest.java index d061a1115..03c06ad24 100644 --- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyRequestDispatcherTest.java +++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyRequestDispatcherTest.java @@ -10,7 +10,7 @@ import com.amazonaws.serverless.proxy.model.AwsProxyResponse; import com.amazonaws.serverless.proxy.model.ContainerConfig; import com.amazonaws.services.lambda.runtime.Context; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestWrapper; import javax.servlet.Servlet; @@ -21,9 +21,7 @@ import java.nio.charset.Charset; import java.util.concurrent.CountDownLatch; -import static junit.framework.TestCase.*; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.*; public class AwsProxyRequestDispatcherTest { public static final String FORWARD_PATH = "/newpath"; @@ -31,9 +29,9 @@ public class AwsProxyRequestDispatcherTest { @Test - public void setPath_forwardByPath_proxyRequestObjectInPropertyReferencesSameProxyRequest() throws InvalidRequestEventException { + void setPath_forwardByPath_proxyRequestObjectInPropertyReferencesSameProxyRequest() throws InvalidRequestEventException { AwsProxyRequest proxyRequest = new AwsProxyRequestBuilder("/hello", "GET").build(); - HttpServletRequest servletRequest = requestReader.readRequest(proxyRequest,null, new MockLambdaContext(), ContainerConfig.defaultConfig()); + HttpServletRequest servletRequest = requestReader.readRequest(proxyRequest, null, new MockLambdaContext(), ContainerConfig.defaultConfig()); AwsProxyRequestDispatcher dispatcher = new AwsProxyRequestDispatcher(FORWARD_PATH, false, null); dispatcher.setRequestPath(servletRequest, FORWARD_PATH); @@ -41,9 +39,9 @@ public void setPath_forwardByPath_proxyRequestObjectInPropertyReferencesSameProx } @Test - public void setPathForWrappedRequest_forwardByPath_proxyRequestObjectInPropertyReferencesSameProxyRequest() throws InvalidRequestEventException { + void setPathForWrappedRequest_forwardByPath_proxyRequestObjectInPropertyReferencesSameProxyRequest() throws InvalidRequestEventException { AwsProxyRequest proxyRequest = new AwsProxyRequestBuilder("/hello", "GET").build(); - HttpServletRequest servletRequest = requestReader.readRequest(proxyRequest,null, new MockLambdaContext(), ContainerConfig.defaultConfig()); + HttpServletRequest servletRequest = requestReader.readRequest(proxyRequest, null, new MockLambdaContext(), ContainerConfig.defaultConfig()); SecurityContextHolderAwareRequestWrapper springSecurityRequest = new SecurityContextHolderAwareRequestWrapper(servletRequest, "ADMIN"); AwsProxyRequestDispatcher dispatcher = new AwsProxyRequestDispatcher(FORWARD_PATH, false, null); @@ -52,7 +50,7 @@ public void setPathForWrappedRequest_forwardByPath_proxyRequestObjectInPropertyR } @Test - public void setPathForWrappedRequestWithoutGatewayEvent_forwardByPath_throwsException() { + void setPathForWrappedRequestWithoutGatewayEvent_forwardByPath_throwsException() { AwsProxyRequest proxyRequest = new AwsProxyRequestBuilder("/hello", "GET").build(); AwsProxyHttpServletRequest servletRequest = new AwsProxyHttpServletRequest(proxyRequest, new MockLambdaContext(), null); SecurityContextHolderAwareRequestWrapper springSecurityRequest = new SecurityContextHolderAwareRequestWrapper(servletRequest, "ADMIN"); @@ -68,9 +66,9 @@ public void setPathForWrappedRequestWithoutGatewayEvent_forwardByPath_throwsExce } @Test - public void forwardRequest_nullHandler_throwsIllegalStateException() throws InvalidRequestEventException { + void forwardRequest_nullHandler_throwsIllegalStateException() throws InvalidRequestEventException { AwsProxyRequest proxyRequest = new AwsProxyRequestBuilder("/hello", "GET").build(); - HttpServletRequest servletRequest = requestReader.readRequest(proxyRequest,null, new MockLambdaContext(), ContainerConfig.defaultConfig()); + HttpServletRequest servletRequest = requestReader.readRequest(proxyRequest, null, new MockLambdaContext(), ContainerConfig.defaultConfig()); AwsProxyRequestDispatcher dispatcher = new AwsProxyRequestDispatcher(FORWARD_PATH, false, null); try { dispatcher.forward(servletRequest, new AwsHttpServletResponse(servletRequest, new CountDownLatch(1))); @@ -86,9 +84,9 @@ public void forwardRequest_nullHandler_throwsIllegalStateException() throws Inva } @Test - public void forwardRequest_committedResponse_throwsIllegalStateException() throws InvalidRequestEventException { + void forwardRequest_committedResponse_throwsIllegalStateException() throws InvalidRequestEventException { AwsProxyRequest proxyRequest = new AwsProxyRequestBuilder("/hello", "GET").build(); - HttpServletRequest servletRequest = requestReader.readRequest(proxyRequest,null, new MockLambdaContext(), ContainerConfig.defaultConfig()); + HttpServletRequest servletRequest = requestReader.readRequest(proxyRequest, null, new MockLambdaContext(), ContainerConfig.defaultConfig()); AwsProxyRequestDispatcher dispatcher = new AwsProxyRequestDispatcher(FORWARD_PATH, false, mockLambdaHandler(null)); AwsHttpServletResponse resp = new AwsHttpServletResponse(servletRequest, new CountDownLatch(1)); @@ -107,9 +105,9 @@ public void forwardRequest_committedResponse_throwsIllegalStateException() throw } @Test - public void forwardRequest_partiallyWrittenResponse_resetsBuffer() throws InvalidRequestEventException { + void forwardRequest_partiallyWrittenResponse_resetsBuffer() throws InvalidRequestEventException { AwsProxyRequest proxyRequest = new AwsProxyRequestBuilder("/hello", "GET").build(); - HttpServletRequest servletRequest = requestReader.readRequest(proxyRequest,null, new MockLambdaContext(), ContainerConfig.defaultConfig()); + HttpServletRequest servletRequest = requestReader.readRequest(proxyRequest, null, new MockLambdaContext(), ContainerConfig.defaultConfig()); AwsProxyRequestDispatcher dispatcher = new AwsProxyRequestDispatcher(FORWARD_PATH, false, mockLambdaHandler(null)); AwsHttpServletResponse resp = new AwsHttpServletResponse(servletRequest, new CountDownLatch(1)); @@ -127,12 +125,12 @@ public void forwardRequest_partiallyWrittenResponse_resetsBuffer() throws Invali } @Test - public void include_addsToResponse_appendsCorrectly() throws InvalidRequestEventException, IOException { + void include_addsToResponse_appendsCorrectly() throws InvalidRequestEventException, IOException { final String firstPart = "first"; final String secondPart = "second"; AwsProxyRequest proxyRequest = new AwsProxyRequestBuilder("/hello", "GET").build(); - AwsProxyResponse resp = mockLambdaHandler((AwsProxyHttpServletRequest req, AwsHttpServletResponse res)-> { + AwsProxyResponse resp = mockLambdaHandler((AwsProxyHttpServletRequest req, AwsHttpServletResponse res) -> { if (req.getAttribute("cnt") == null) { res.getOutputStream().write(firstPart.getBytes()); req.setAttribute("cnt", 1); @@ -147,13 +145,13 @@ public void include_addsToResponse_appendsCorrectly() throws InvalidRequestEvent } @Test - public void include_appendsNewHeader_cannotAppendNewHeaders() throws InvalidRequestEventException, IOException { + void include_appendsNewHeader_cannotAppendNewHeaders() throws InvalidRequestEventException, IOException { final String firstPart = "first"; final String secondPart = "second"; final String headerKey = "X-Custom-Header"; AwsProxyRequest proxyRequest = new AwsProxyRequestBuilder("/hello", "GET").build(); - AwsProxyResponse resp = mockLambdaHandler((AwsProxyHttpServletRequest req, AwsHttpServletResponse res)-> { + AwsProxyResponse resp = mockLambdaHandler((AwsProxyHttpServletRequest req, AwsHttpServletResponse res) -> { if (req.getAttribute("cnt") == null) { res.getOutputStream().write(firstPart.getBytes()); req.setAttribute("cnt", 1); diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsServletContextTest.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsServletContextTest.java index 07628f187..5c84bca30 100644 --- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsServletContextTest.java +++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsServletContextTest.java @@ -4,9 +4,9 @@ import com.amazonaws.serverless.proxy.internal.servlet.filters.UrlPathValidator; import com.amazonaws.serverless.proxy.internal.testutils.AwsProxyRequestBuilder; -import org.junit.BeforeClass; -import org.junit.Ignore; -import org.junit.Test; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; import javax.servlet.*; import javax.servlet.http.HttpServletRequest; @@ -21,13 +21,13 @@ import java.nio.file.Paths; import java.util.concurrent.CountDownLatch; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.*; public class AwsServletContextTest { private static String TMP_DIR = System.getProperty("java.io.tmpdir"); private static final AwsServletContext STATIC_CTX = new AwsServletContext(null); - @BeforeClass + @BeforeAll public static void setUp() { LambdaContainerHandler.getContainerConfig().addValidFilePath("/private/var/task"); File tmpFile = new File(TMP_DIR); @@ -40,8 +40,9 @@ public static void setUp() { LambdaContainerHandler.getContainerConfig().addValidFilePath("C:\\MyTestFolder"); } - @Test @Ignore - public void getMimeType_disabledPath_expectException() { + @Test + @Disabled + void getMimeType_disabledPath_expectException() { AwsServletContext ctx = new AwsServletContext(null); try { assertNull(ctx.getMimeType("/usr/local/lib/nothing")); @@ -54,13 +55,13 @@ public void getMimeType_disabledPath_expectException() { } @Test - public void getMimeType_nonExistentFileInTaskPath_expectNull() { + void getMimeType_nonExistentFileInTaskPath_expectNull() { AwsServletContext ctx = new AwsServletContext(null); assertNull(ctx.getMimeType("/var/task/nothing")); } @Test - public void getMimeType_mimeTypeOfCorrectFile_expectMime() { + void getMimeType_mimeTypeOfCorrectFile_expectMime() { String tmpFilePath = TMP_DIR + "test_text.txt"; AwsServletContext ctx = new AwsServletContext(null); String mimeType = ctx.getMimeType(tmpFilePath); @@ -71,7 +72,7 @@ public void getMimeType_mimeTypeOfCorrectFile_expectMime() { } @Test - public void getMimeType_unknownExtension_expectAppOctetStream() { + void getMimeType_unknownExtension_expectAppOctetStream() { AwsServletContext ctx = new AwsServletContext(null); String mimeType = ctx.getMimeType("myfile.unkext"); assertEquals("application/octet-stream", mimeType); @@ -79,7 +80,7 @@ public void getMimeType_unknownExtension_expectAppOctetStream() { @Test - public void addFilter_nonExistentFilterClass_expectException() { + void addFilter_nonExistentFilterClass_expectException() { AwsServletContext ctx = new AwsServletContext(null); String filterClass = "com.amazonaws.serverless.TestingFilterClassNonExistent"; try { @@ -92,7 +93,7 @@ public void addFilter_nonExistentFilterClass_expectException() { } @Test - public void addFilter_doesNotImplementFilter_expectException() { + void addFilter_doesNotImplementFilter_expectException() { AwsServletContext ctx = new AwsServletContext(null); try { ctx.addFilter("filter", this.getClass().getName()); @@ -104,7 +105,7 @@ public void addFilter_doesNotImplementFilter_expectException() { } @Test - public void addFilter_validFilter_expectSuccess() { + void addFilter_validFilter_expectSuccess() { AwsServletContext ctx = new AwsServletContext(null); FilterRegistration.Dynamic reg = ctx.addFilter("filter", UrlPathValidator.class.getName()); assertNotNull(reg); @@ -118,7 +119,7 @@ public void addFilter_validFilter_expectSuccess() { } @Test - public void addFilter_validFilter_expectSuccessWithCustomFilterName() { + void addFilter_validFilter_expectSuccessWithCustomFilterName() { AwsServletContext ctx = new AwsServletContext(null); FilterRegistration.Dynamic reg = ctx.addFilter("filter", TestFilter.class.getName()); assertNotNull(reg); @@ -132,18 +133,18 @@ public void addFilter_validFilter_expectSuccessWithCustomFilterName() { } @Test - public void getContextPath_expectEmpty() { + void getContextPath_expectEmpty() { assertEquals("", STATIC_CTX.getContextPath()); } @Test - public void getContext_returnsSameContext() { + void getContext_returnsSameContext() { assertEquals(STATIC_CTX, STATIC_CTX.getContext("1")); assertEquals(STATIC_CTX, STATIC_CTX.getContext("2")); } @Test - public void getVersions_expectStaticVersions() { + void getVersions_expectStaticVersions() { assertEquals(AwsServletContext.SERVLET_API_MAJOR_VERSION, STATIC_CTX.getMajorVersion()); assertEquals(AwsServletContext.SERVLET_API_MINOR_VERSION, STATIC_CTX.getMinorVersion()); assertEquals(AwsServletContext.SERVLET_API_MAJOR_VERSION, STATIC_CTX.getEffectiveMajorVersion()); @@ -151,7 +152,7 @@ public void getVersions_expectStaticVersions() { } @Test - public void startAsync_expectPopulatedAsyncContext() { + void startAsync_expectPopulatedAsyncContext() { HttpServletRequest req = new AwsProxyHttpServletRequest( new AwsProxyRequestBuilder("/", "GET").build(), null, @@ -164,7 +165,7 @@ public void startAsync_expectPopulatedAsyncContext() { } @Test - public void startAsyncWithNewRequest_expectPopulatedAsyncContext() { + void startAsyncWithNewRequest_expectPopulatedAsyncContext() { HttpServletRequest req = new AwsProxyHttpServletRequest( new AwsProxyRequestBuilder("/", "GET").build(), null, @@ -182,7 +183,7 @@ public void startAsyncWithNewRequest_expectPopulatedAsyncContext() { } @Test - public void unsupportedOperations_expectExceptions() { + void unsupportedOperations_expectExceptions() { int exCount = 0; try { STATIC_CTX.getResourcePaths("1"); @@ -194,13 +195,13 @@ public void unsupportedOperations_expectExceptions() { } catch (UnsupportedOperationException e) { exCount++; } - assertEquals(2, exCount); + assertEquals(2, exCount); assertNull(STATIC_CTX.getServletRegistration("1")); } @Test - public void servletMappings_expectCorrectServlet() { + void servletMappings_expectCorrectServlet() { AwsServletContext ctx = new AwsServletContext(null); TestServlet srv1 = new TestServlet("srv1"); TestServlet srv2 = new TestServlet("srv2"); @@ -223,7 +224,7 @@ public void servletMappings_expectCorrectServlet() { } @Test - public void addServlet_callsDefaultConstructor() throws ServletException { + void addServlet_callsDefaultConstructor() throws ServletException { AwsServletContext ctx = new AwsServletContext(null); ctx.addServlet("srv1", TestServlet.class); assertNotNull(ctx.getServlet("srv1")); diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsServletRegistrationTest.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsServletRegistrationTest.java index b823da10f..105abc61d 100644 --- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsServletRegistrationTest.java +++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsServletRegistrationTest.java @@ -1,6 +1,6 @@ package com.amazonaws.serverless.proxy.internal.servlet; -import org.junit.Test; +import org.junit.jupiter.api.Test; import javax.servlet.*; @@ -10,12 +10,12 @@ import java.util.Map; import java.util.Set; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.*; public class AwsServletRegistrationTest { @Test - public void getMappings_singleMapping_savedCorrectly() { + void getMappings_singleMapping_savedCorrectly() { ServletRegistration.Dynamic reg = new AwsServletRegistration("test", null, new AwsServletContext(null)); reg.addMapping("/"); assertEquals(1, reg.getMappings().size()); @@ -27,7 +27,7 @@ public void getMappings_singleMapping_savedCorrectly() { } @Test - public void metadata_savedAndReturnedCorrectly() { + void metadata_savedAndReturnedCorrectly() { ServletRegistration.Dynamic reg = new AwsServletRegistration("test", null, new AwsServletContext(null)); assertEquals("test", reg.getName()); reg.setLoadOnStartup(2); @@ -40,7 +40,7 @@ public void metadata_savedAndReturnedCorrectly() { } @Test - public void setInitParameter_savedCorrectly() { + void setInitParameter_savedCorrectly() { ServletRegistration.Dynamic reg = new AwsServletRegistration("test", null, new AwsServletContext(null)); assertTrue(reg.setInitParameter("param", "value")); assertFalse(reg.setInitParameter("param", "value")); @@ -55,7 +55,7 @@ public void setInitParameter_savedCorrectly() { } @Test - public void servletConfig_populatesConfig() throws ServletException { + void servletConfig_populatesConfig() throws ServletException { AwsServletContext servletCtx = new AwsServletContext(null); TestServlet servlet = new TestServlet(); ServletRegistration.Dynamic reg = new AwsServletRegistration("test", servlet, servletCtx); diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/FilterHolderTest.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/FilterHolderTest.java index 6c39c8d8d..1180a5d15 100644 --- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/FilterHolderTest.java +++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/FilterHolderTest.java @@ -3,15 +3,15 @@ import com.amazonaws.serverless.proxy.internal.servlet.filters.UrlPathValidator; import com.amazonaws.serverless.proxy.internal.testutils.MockLambdaContext; import com.amazonaws.services.lambda.runtime.Context; -import org.junit.Test; +import org.junit.jupiter.api.Test; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.*; public class FilterHolderTest { private static Context lambdaContext = new MockLambdaContext(); @Test - public void annotation_filterRegistration_pathValidator() { + void annotation_filterRegistration_pathValidator() { FilterHolder holder = new FilterHolder(new UrlPathValidator(), new AwsServletContext(null)); assertTrue(holder.isAnnotated()); diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/ServletLambdaContainerHandlerBuilderTest.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/ServletLambdaContainerHandlerBuilderTest.java index 1481afc7e..5ae5aae02 100644 --- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/ServletLambdaContainerHandlerBuilderTest.java +++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/ServletLambdaContainerHandlerBuilderTest.java @@ -6,17 +6,17 @@ import com.amazonaws.serverless.proxy.model.AwsProxyRequest; import com.amazonaws.serverless.proxy.model.AwsProxyResponse; import com.amazonaws.services.lambda.runtime.Context; -import org.junit.Test; +import org.junit.jupiter.api.Test; import javax.servlet.http.HttpServletRequest; import java.util.concurrent.CountDownLatch; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.*; public class ServletLambdaContainerHandlerBuilderTest { @Test - public void validation_throwsException() { + void validation_throwsException() { TestBuilder testBuilder = new TestBuilder(); try { testBuilder.validate(); @@ -27,21 +27,21 @@ public void validation_throwsException() { } @Test - public void additionalMethod_testSetter() { + void additionalMethod_testSetter() { TestBuilder test = new TestBuilder().exceptionHandler(new AwsProxyExceptionHandler()).name("test"); assertEquals("test", test.getName()); } @Test - public void defaultProxy_setsValuesCorrectly() { + void defaultProxy_setsValuesCorrectly() { TestBuilder test = new TestBuilder().defaultProxy().name("test"); assertNotNull(test.initializationWrapper); assertTrue(test.exceptionHandler instanceof AwsProxyExceptionHandler); assertTrue(test.requestReader instanceof AwsProxyHttpServletRequestReader); assertTrue(test.responseWriter instanceof AwsProxyHttpServletResponseWriter); assertTrue(test.securityContextWriter instanceof AwsProxySecurityContextWriter); - assertSame(test.requestTypeClass, AwsProxyRequest.class); - assertSame(test.responseTypeClass, AwsProxyResponse.class); + assertSame(AwsProxyRequest.class, test.requestTypeClass); + assertSame(AwsProxyResponse.class, test.responseTypeClass); assertEquals("test", test.name); } diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/filters/UrlPathValidatorTest.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/filters/UrlPathValidatorTest.java index beb273d56..11a018eb4 100644 --- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/filters/UrlPathValidatorTest.java +++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/filters/UrlPathValidatorTest.java @@ -5,7 +5,7 @@ import com.amazonaws.serverless.proxy.internal.servlet.AwsProxyHttpServletRequest; import com.amazonaws.serverless.proxy.internal.servlet.FilterHolder; import com.amazonaws.serverless.proxy.internal.testutils.AwsProxyRequestBuilder; -import org.junit.Test; +import org.junit.jupiter.api.Test; import javax.servlet.FilterConfig; import javax.servlet.ServletContext; @@ -17,12 +17,12 @@ import java.util.HashMap; import java.util.Map; -import static junit.framework.TestCase.assertEquals; -import static junit.framework.TestCase.fail; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.fail; public class UrlPathValidatorTest { @Test - public void init_noConfig_setsDefaultStatusCode() { + void init_noConfig_setsDefaultStatusCode() { UrlPathValidator pathValidator = new UrlPathValidator(); try { pathValidator.init(null); @@ -34,7 +34,7 @@ public void init_noConfig_setsDefaultStatusCode() { } @Test - public void init_withConfig_setsCorrectStatusCode() { + void init_withConfig_setsCorrectStatusCode() { UrlPathValidator pathValidator = new UrlPathValidator(); Map params = new HashMap<>(); params.put(UrlPathValidator.PARAM_INVALID_STATUS_CODE, "401"); @@ -49,7 +49,7 @@ public void init_withConfig_setsCorrectStatusCode() { } @Test - public void init_withWrongConfig_setsDefaultStatusCode() { + void init_withWrongConfig_setsDefaultStatusCode() { UrlPathValidator pathValidator = new UrlPathValidator(); Map params = new HashMap<>(); params.put(UrlPathValidator.PARAM_INVALID_STATUS_CODE, "hello"); @@ -64,7 +64,7 @@ public void init_withWrongConfig_setsDefaultStatusCode() { } @Test - public void doFilter_invalidRelativePathUri_setsDefaultStatusCode() { + void doFilter_invalidRelativePathUri_setsDefaultStatusCode() { AwsProxyHttpServletRequest req = new AwsProxyHttpServletRequest(new AwsProxyRequestBuilder("../..", "GET").build(), null, null); AwsHttpServletResponse resp = new AwsHttpServletResponse(req, null); UrlPathValidator pathValidator = new UrlPathValidator(); @@ -79,7 +79,7 @@ public void doFilter_invalidRelativePathUri_setsDefaultStatusCode() { } @Test - public void doFilter_invalidUri_setsDefaultStatusCode() { + void doFilter_invalidUri_setsDefaultStatusCode() { AwsProxyHttpServletRequest req = new AwsProxyHttpServletRequest(new AwsProxyRequestBuilder("wonkyprotocol://˝Ó#\u0009", "GET").build(), null, null); AwsHttpServletResponse resp = new AwsHttpServletResponse(req, null); UrlPathValidator pathValidator = new UrlPathValidator(); diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/model/ApiGatewayAuthorizerContextTest.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/model/ApiGatewayAuthorizerContextTest.java index 87ab0ed7a..196552c1d 100644 --- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/model/ApiGatewayAuthorizerContextTest.java +++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/model/ApiGatewayAuthorizerContextTest.java @@ -2,11 +2,11 @@ import com.amazonaws.serverless.proxy.internal.testutils.AwsProxyRequestBuilder; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.io.IOException; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.*; public class ApiGatewayAuthorizerContextTest { private static final String FIELD_NAME_1 = "CUSTOM_FIELD_1"; @@ -60,7 +60,7 @@ public class ApiGatewayAuthorizerContextTest { + "}"; @Test - public void authorizerContext_serialize_customValues() { + void authorizerContext_serialize_customValues() { try { AwsProxyRequest req = new AwsProxyRequestBuilder().fromJsonString(AUTHORIZER_REQUEST).build(); diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/model/AwsProxyRequestTest.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/model/AwsProxyRequestTest.java index b06e04cf6..6d0aa9eeb 100644 --- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/model/AwsProxyRequestTest.java +++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/model/AwsProxyRequestTest.java @@ -1,13 +1,11 @@ package com.amazonaws.serverless.proxy.model; -import static junit.framework.TestCase.assertTrue; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.MatcherAssert.assertThat; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; +import static org.junit.jupiter.api.Assertions.*; + import java.io.IOException; -import org.junit.Test; +import org.junit.jupiter.api.Test; import com.amazonaws.serverless.proxy.internal.testutils.AwsProxyRequestBuilder; import com.fasterxml.jackson.databind.ObjectMapper; @@ -16,7 +14,7 @@ public class AwsProxyRequestTest { private static final String CUSTOM_HEADER_VALUE = "123456"; @Test - public void deserialize_multiValuedHeaders_caseInsensitive() throws IOException { + void deserialize_multiValuedHeaders_caseInsensitive() throws IOException { AwsProxyRequest req = new AwsProxyRequestBuilder() .fromJsonString(getRequestJson(true, CUSTOM_HEADER_KEY_LOWER_CASE, CUSTOM_HEADER_VALUE)).build(); assertNotNull(req.getMultiValueHeaders().get(CUSTOM_HEADER_KEY_LOWER_CASE.toUpperCase())); @@ -25,7 +23,7 @@ public void deserialize_multiValuedHeaders_caseInsensitive() throws IOException } @Test - public void deserialize_base64Encoded_readsBoolCorrectly() throws IOException { + void deserialize_base64Encoded_readsBoolCorrectly() throws IOException { AwsProxyRequest req = new AwsProxyRequestBuilder() .fromJsonString(getRequestJson(true, CUSTOM_HEADER_KEY_LOWER_CASE, CUSTOM_HEADER_VALUE)).build(); assertTrue(req.isBase64Encoded()); @@ -35,7 +33,7 @@ public void deserialize_base64Encoded_readsBoolCorrectly() throws IOException { } @Test - public void serialize_base64Encoded_fieldContainsIsPrefix() throws IOException { + void serialize_base64Encoded_fieldContainsIsPrefix() throws IOException { AwsProxyRequest req = new AwsProxyRequestBuilder() .fromJsonString(getRequestJson(true, CUSTOM_HEADER_KEY_LOWER_CASE, CUSTOM_HEADER_VALUE)).build(); ObjectMapper mapper = new ObjectMapper(); @@ -106,9 +104,9 @@ private String getRequestJson(boolean base64Encoded, String headerKey, String he } @Test - public void deserialize_singleValuedHeaders() throws IOException { + void deserialize_singleValuedHeaders() throws IOException { AwsProxyRequest req = - new AwsProxyRequestBuilder().fromJsonString(getSingleValueRequestJson()).build(); + new AwsProxyRequestBuilder().fromJsonString(getSingleValueRequestJson()).build(); assertThat(req.getHeaders().get("accept"), is("*")); } diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/model/CognitoAuthorizerClaimsTest.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/model/CognitoAuthorizerClaimsTest.java index 55b5d936f..1ad2314b6 100644 --- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/model/CognitoAuthorizerClaimsTest.java +++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/model/CognitoAuthorizerClaimsTest.java @@ -2,14 +2,14 @@ import com.amazonaws.serverless.proxy.internal.testutils.AwsProxyRequestBuilder; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.io.IOException; import java.time.ZonedDateTime; import java.time.format.DateTimeFormatter; import java.util.Locale; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.*; public class CognitoAuthorizerClaimsTest { @@ -77,7 +77,7 @@ public class CognitoAuthorizerClaimsTest { @Test - public void claims_serialize_validJsonString() { + void claims_serialize_validJsonString() { try { AwsProxyRequest req = new AwsProxyRequestBuilder().fromJsonString(USER_POOLS_REQUEST).build(); @@ -90,7 +90,7 @@ public void claims_serialize_validJsonString() { } @Test - public void claims_dateParse_issueTime() { + void claims_dateParse_issueTime() { try { AwsProxyRequest req = new AwsProxyRequestBuilder().fromJsonString(USER_POOLS_REQUEST).build(); 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 c673a59e1..5a0943d05 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 @@ -2,11 +2,11 @@ import com.amazonaws.serverless.proxy.internal.LambdaContainerHandler; import com.fasterxml.jackson.core.JsonProcessingException; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.util.ArrayList; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.*; public class HttpApiV2ProxyRequestTest { @@ -128,10 +128,10 @@ public class HttpApiV2ProxyRequestTest { " \"body\": \"Hello from Lambda\",\n" + " \"isBase64Encoded\": false,\n" + " \"stageVariables\": {\"stageVariable1\": \"value1\", \"stageVariable2\": \"value2\"}\n" + - " }\n";; + " }\n"; @Test - public void deserialize_fromJsonString_authorizerPopulatedCorrectly() { + void deserialize_fromJsonString_authorizerPopulatedCorrectly() { try { HttpApiV2ProxyRequest req = LambdaContainerHandler.getObjectMapper().readValue(BASE_PROXY_REQUEST, HttpApiV2ProxyRequest.class); assertTrue(req.getRequestContext().getAuthorizer().getJwtAuthorizer().getClaims().containsKey("claim1")); @@ -143,7 +143,7 @@ public void deserialize_fromJsonString_authorizerPopulatedCorrectly() { } @Test - public void deserialize_fromJsonString_authorizerEmptyMap() { + void deserialize_fromJsonString_authorizerEmptyMap() { try { HttpApiV2ProxyRequest req = LambdaContainerHandler.getObjectMapper().readValue(NO_AUTH_PROXY, HttpApiV2ProxyRequest.class); assertNotNull(req.getRequestContext().getAuthorizer()); @@ -156,7 +156,7 @@ public void deserialize_fromJsonString_authorizerEmptyMap() { } @Test - public void deserialize_fromJsonString_lambdaAuthorizer() { + void deserialize_fromJsonString_lambdaAuthorizer() { try { HttpApiV2ProxyRequest req = LambdaContainerHandler.getObjectMapper().readValue(LAMBDA_AUTHORIZER, HttpApiV2ProxyRequest.class); assertNotNull(req.getRequestContext().getAuthorizer()); @@ -171,7 +171,7 @@ public void deserialize_fromJsonString_lambdaAuthorizer() { } @Test - public void deserialize_fromJsonString_isBase64EncodedPopulates() { + void deserialize_fromJsonString_isBase64EncodedPopulates() { try { HttpApiV2ProxyRequest req = LambdaContainerHandler.getObjectMapper().readValue(BASE_PROXY_REQUEST, HttpApiV2ProxyRequest.class); assertFalse(req.isBase64Encoded()); @@ -184,7 +184,7 @@ public void deserialize_fromJsonString_isBase64EncodedPopulates() { } @Test - public void serialize_toJsonString_authorizerPopulatesCorrectly() { + void serialize_toJsonString_authorizerPopulatesCorrectly() { HttpApiV2ProxyRequest req = new HttpApiV2ProxyRequest(); req.setBase64Encoded(false); req.setRequestContext(new HttpApiV2ProxyRequestContext()); diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/model/MultiValuedTreeMapTest.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/model/MultiValuedTreeMapTest.java index edc6d2810..c2566cbe0 100644 --- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/model/MultiValuedTreeMapTest.java +++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/model/MultiValuedTreeMapTest.java @@ -1,17 +1,15 @@ package com.amazonaws.serverless.proxy.model; -import org.junit.Test; +import org.junit.jupiter.api.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; +import static org.junit.jupiter.api.Assertions.*; public class MultiValuedTreeMapTest { @Test - public void add_sameNameCaseSensitive_expectBothValues() { + void add_sameNameCaseSensitive_expectBothValues() { MultiValuedTreeMap map = new MultiValuedTreeMap<>(); map.add("Test", "test"); map.add("Test", "test2"); @@ -28,7 +26,7 @@ public void add_sameNameCaseSensitive_expectBothValues() { } @Test - public void add_sameNameCaseInsensitive_expectOneValue() { + void add_sameNameCaseInsensitive_expectOneValue() { Headers map = new Headers(); map.add("Test", "test"); assertNotNull(map.get("Test")); @@ -41,7 +39,7 @@ public void add_sameNameCaseInsensitive_expectOneValue() { } @Test - public void addFirst_sameNameKey_ExpectFirstReplaced() { + void addFirst_sameNameKey_ExpectFirstReplaced() { MultiValuedTreeMap map = new MultiValuedTreeMap<>(); map.add("Test", "test1"); map.add("Test", "test2"); diff --git a/aws-serverless-java-container-jersey/pom.xml b/aws-serverless-java-container-jersey/pom.xml index 11c9ee9ca..2d491078f 100644 --- a/aws-serverless-java-container-jersey/pom.xml +++ b/aws-serverless-java-container-jersey/pom.xml @@ -100,6 +100,11 @@ ${jersey.version} test + + org.junit.jupiter + junit-jupiter + test + @@ -151,7 +156,7 @@ org.apache.maven.plugins maven-surefire-plugin - 2.9 + 2.22.2 always diff --git a/aws-serverless-java-container-jersey/src/test/java/com/amazonaws/serverless/proxy/jersey/JerseyAwsProxyTest.java b/aws-serverless-java-container-jersey/src/test/java/com/amazonaws/serverless/proxy/jersey/JerseyAwsProxyTest.java index dbcaac407..179555323 100644 --- a/aws-serverless-java-container-jersey/src/test/java/com/amazonaws/serverless/proxy/jersey/JerseyAwsProxyTest.java +++ b/aws-serverless-java-container-jersey/src/test/java/com/amazonaws/serverless/proxy/jersey/JerseyAwsProxyTest.java @@ -30,9 +30,8 @@ import org.glassfish.jersey.logging.LoggingFeature; import org.glassfish.jersey.media.multipart.MultiPartFeature; import org.glassfish.jersey.server.ResourceConfig; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; import javax.ws.rs.core.HttpHeaders; import javax.ws.rs.core.MediaType; @@ -42,16 +41,15 @@ import java.util.Collection; import java.util.UUID; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; -import static org.junit.Assume.assumeTrue; +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 Jersey AWS_PROXY default implementation */ -@RunWith(Parameterized.class) public class JerseyAwsProxyTest { private static final String CUSTOM_HEADER_KEY = "x-custom-header"; private static final String CUSTOM_HEADER_VALUE = "my-custom-value"; @@ -62,43 +60,42 @@ public class JerseyAwsProxyTest { private static ObjectMapper objectMapper = new ObjectMapper(); private static ResourceConfig app = new ResourceConfig().packages("com.amazonaws.serverless.proxy.jersey") - .register(LoggingFeature.class) - .register(ServletRequestFilter.class) - .register(MultiPartFeature.class) - .register(new ResourceBinder()) - .property(LoggingFeature.LOGGING_FEATURE_VERBOSITY_SERVER, LoggingFeature.Verbosity.PAYLOAD_ANY); + .register(LoggingFeature.class) + .register(ServletRequestFilter.class) + .register(MultiPartFeature.class) + .register(new ResourceBinder()) + .property(LoggingFeature.LOGGING_FEATURE_VERBOSITY_SERVER, LoggingFeature.Verbosity.PAYLOAD_ANY); private static ResourceConfig httpApiApp = new ResourceConfig().packages("com.amazonaws.serverless.proxy.jersey") - .register(LoggingFeature.class) - .register(ServletRequestFilter.class) - .register(MultiPartFeature.class) - .register(new ResourceBinder()) - .property(LoggingFeature.LOGGING_FEATURE_VERBOSITY_SERVER, LoggingFeature.Verbosity.PAYLOAD_ANY); + .register(LoggingFeature.class) + .register(ServletRequestFilter.class) + .register(MultiPartFeature.class) + .register(new ResourceBinder()) + .property(LoggingFeature.LOGGING_FEATURE_VERBOSITY_SERVER, LoggingFeature.Verbosity.PAYLOAD_ANY); private static ResourceConfig appWithoutRegisteredDependencies = new ResourceConfig() - .packages("com.amazonaws.serverless.proxy.jersey") - .register(LoggingFeature.class) - .register(ServletRequestFilter.class) - .register(MultiPartFeature.class) - .property(LoggingFeature.LOGGING_FEATURE_VERBOSITY_SERVER, LoggingFeature.Verbosity.PAYLOAD_ANY); + .packages("com.amazonaws.serverless.proxy.jersey") + .register(LoggingFeature.class) + .register(ServletRequestFilter.class) + .register(MultiPartFeature.class) + .property(LoggingFeature.LOGGING_FEATURE_VERBOSITY_SERVER, LoggingFeature.Verbosity.PAYLOAD_ANY); private static JerseyLambdaContainerHandler handler; private static JerseyLambdaContainerHandler httpApiHandler; private static JerseyLambdaContainerHandler handlerWithoutRegisteredDependencies - = JerseyLambdaContainerHandler.getAwsProxyHandler(appWithoutRegisteredDependencies); + = JerseyLambdaContainerHandler.getAwsProxyHandler(appWithoutRegisteredDependencies); private static Context lambdaContext = new MockLambdaContext(); private String type; - public JerseyAwsProxyTest(String reqType) { + public void initJerseyAwsProxyTest(String reqType) { type = reqType; } - @Parameterized.Parameters public static Collection data() { - return Arrays.asList(new Object[] { "API_GW", "ALB", "HTTP_API" }); + return Arrays.asList(new Object[]{"API_GW", "ALB", "HTTP_API"}); } private AwsProxyRequestBuilder getRequestBuilder(String path, String method) { @@ -140,11 +137,13 @@ private JerseyLambdaContainerHandler getHandler() { } } - @Test - public void headers_getHeaders_echo() { + @MethodSource("data") + @ParameterizedTest + void headers_getHeaders_echo(String reqType) { + initJerseyAwsProxyTest(reqType); AwsProxyRequestBuilder request = getRequestBuilder("/echo/headers", "GET") - .json() - .header(CUSTOM_HEADER_KEY, CUSTOM_HEADER_VALUE); + .json() + .header(CUSTOM_HEADER_KEY, CUSTOM_HEADER_VALUE); AwsProxyResponse output = executeRequest(request, lambdaContext); assertEquals(200, output.getStatusCode()); @@ -153,11 +152,13 @@ public void headers_getHeaders_echo() { validateMapResponseModel(output); } - @Test - public void headers_servletRequest_echo() { + @MethodSource("data") + @ParameterizedTest + void headers_servletRequest_echo(String reqType) { + initJerseyAwsProxyTest(reqType); AwsProxyRequestBuilder request = getRequestBuilder("/echo/servlet-headers", "GET") - .json() - .header(CUSTOM_HEADER_KEY, CUSTOM_HEADER_VALUE); + .json() + .header(CUSTOM_HEADER_KEY, CUSTOM_HEADER_VALUE); AwsProxyResponse output = executeRequest(request, lambdaContext); assertEquals(200, output.getStatusCode()); @@ -166,31 +167,37 @@ public void headers_servletRequest_echo() { validateMapResponseModel(output); } - @Test - public void headers_servletRequest_failedDependencyInjection_expectInternalServerError() { + @MethodSource("data") + @ParameterizedTest + void headers_servletRequest_failedDependencyInjection_expectInternalServerError(String reqType) { + initJerseyAwsProxyTest(reqType); assumeTrue("API_GW".equals(type)); AwsProxyRequest request = getRequestBuilder("/echo/servlet-headers", "GET") - .json() - .header(CUSTOM_HEADER_KEY, CUSTOM_HEADER_VALUE) - .build(); + .json() + .header(CUSTOM_HEADER_KEY, CUSTOM_HEADER_VALUE) + .build(); AwsProxyResponse output = handlerWithoutRegisteredDependencies.proxy(request, lambdaContext); assertEquals("application/json", output.getMultiValueHeaders().getFirst("Content-Type")); assertEquals(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode(), output.getStatusCode()); } - @Test - public void context_servletResponse_setCustomHeader() { + @MethodSource("data") + @ParameterizedTest + void context_servletResponse_setCustomHeader(String reqType) { + initJerseyAwsProxyTest(reqType); AwsProxyRequestBuilder request = getRequestBuilder("/echo/servlet-response", "GET") - .json(); + .json(); AwsProxyResponse output = executeRequest(request, lambdaContext); assertEquals(200, output.getStatusCode()); assertTrue(output.getMultiValueHeaders().containsKey(EchoJerseyResource.SERVLET_RESP_HEADER_KEY)); } - @Test - public void context_serverInfo_correctContext() { + @MethodSource("data") + @ParameterizedTest + void context_serverInfo_correctContext(String reqType) { + initJerseyAwsProxyTest(reqType); AwsProxyRequestBuilder request = getRequestBuilder("/echo/servlet-context", "GET"); AwsProxyResponse output = executeRequest(request, lambdaContext); assertEquals(200, output.getStatusCode()); @@ -199,10 +206,12 @@ public void context_serverInfo_correctContext() { validateSingleValueModel(output, AwsServletContext.SERVER_INFO); } - @Test - public void requestScheme_valid_expectHttps() { + @MethodSource("data") + @ParameterizedTest + void requestScheme_valid_expectHttps(String reqType) { + initJerseyAwsProxyTest(reqType); AwsProxyRequestBuilder request = getRequestBuilder("/echo/scheme", "GET") - .json(); + .json(); AwsProxyResponse output = executeRequest(request, lambdaContext); assertEquals(200, output.getStatusCode()); @@ -211,10 +220,12 @@ public void requestScheme_valid_expectHttps() { validateSingleValueModel(output, "https"); } - @Test - public void requestFilter_injectsServletRequest_expectCustomAttribute() { + @MethodSource("data") + @ParameterizedTest + void requestFilter_injectsServletRequest_expectCustomAttribute(String reqType) { + initJerseyAwsProxyTest(reqType); AwsProxyRequestBuilder request = getRequestBuilder("/echo/filter-attribute", "GET") - .json(); + .json(); AwsProxyResponse output = executeRequest(request, lambdaContext); assertEquals(200, output.getStatusCode()); @@ -223,12 +234,14 @@ public void requestFilter_injectsServletRequest_expectCustomAttribute() { validateSingleValueModel(output, ServletRequestFilter.FILTER_ATTRIBUTE_VALUE); } - @Test - public void authorizer_securityContext_customPrincipalSuccess() { + @MethodSource("data") + @ParameterizedTest + void authorizer_securityContext_customPrincipalSuccess(String reqType) { + initJerseyAwsProxyTest(reqType); assumeTrue("API_GW".equals(type)); // TODO: We should figure out a way to run this for HTTP_API too AwsProxyRequestBuilder request = getRequestBuilder("/echo/authorizer-principal", "GET") - .json() - .authorizerPrincipal(AUTHORIZER_PRINCIPAL_ID); + .json() + .authorizerPrincipal(AUTHORIZER_PRINCIPAL_ID); AwsProxyResponse output = executeRequest(request, lambdaContext); assertEquals(200, output.getStatusCode()); @@ -236,14 +249,16 @@ public void authorizer_securityContext_customPrincipalSuccess() { validateSingleValueModel(output, AUTHORIZER_PRINCIPAL_ID); } - @Test - public void authorizer_securityContext_customAuthorizerContextSuccess() { + @MethodSource("data") + @ParameterizedTest + void authorizer_securityContext_customAuthorizerContextSuccess(String reqType) { + initJerseyAwsProxyTest(reqType); assumeTrue("API_GW".equals(type)); AwsProxyRequestBuilder request = getRequestBuilder("/echo/authorizer-context", "GET") - .json() - .authorizerPrincipal(AUTHORIZER_PRINCIPAL_ID) - .authorizerContextValue(CUSTOM_HEADER_KEY, CUSTOM_HEADER_VALUE) - .queryString("key", CUSTOM_HEADER_KEY); + .json() + .authorizerPrincipal(AUTHORIZER_PRINCIPAL_ID) + .authorizerContextValue(CUSTOM_HEADER_KEY, CUSTOM_HEADER_VALUE) + .queryString("key", CUSTOM_HEADER_KEY); AwsProxyResponse output = executeRequest(request, lambdaContext); assertEquals(200, output.getStatusCode()); @@ -252,41 +267,49 @@ public void authorizer_securityContext_customAuthorizerContextSuccess() { validateSingleValueModel(output, CUSTOM_HEADER_VALUE); } - @Test - public void errors_unknownRoute_expect404() { + @MethodSource("data") + @ParameterizedTest + void errors_unknownRoute_expect404(String reqType) { + initJerseyAwsProxyTest(reqType); AwsProxyRequestBuilder request = getRequestBuilder("/echo/test33", "GET"); AwsProxyResponse output = executeRequest(request, lambdaContext); assertEquals(404, output.getStatusCode()); } - @Test - public void error_contentType_invalidContentType() { + @MethodSource("data") + @ParameterizedTest + void error_contentType_invalidContentType(String reqType) { + initJerseyAwsProxyTest(reqType); AwsProxyRequestBuilder request = getRequestBuilder("/echo/json-body", "POST") - .header("Content-Type", "application/octet-stream") - .body("asdasdasd"); + .header("Content-Type", "application/octet-stream") + .body("asdasdasd"); AwsProxyResponse output = executeRequest(request, lambdaContext); assertEquals(415, output.getStatusCode()); } - @Test - public void error_statusCode_methodNotAllowed() { + @MethodSource("data") + @ParameterizedTest + void error_statusCode_methodNotAllowed(String reqType) { + initJerseyAwsProxyTest(reqType); AwsProxyRequestBuilder request = getRequestBuilder("/echo/status-code", "POST") - .json() - .queryString("status", "201"); + .json() + .queryString("status", "201"); AwsProxyResponse output = executeRequest(request, lambdaContext); assertEquals(405, output.getStatusCode()); } - @Test - public void responseBody_responseWriter_validBody() throws JsonProcessingException { + @MethodSource("data") + @ParameterizedTest + void responseBody_responseWriter_validBody(String reqType) throws JsonProcessingException { + initJerseyAwsProxyTest(reqType); SingleValueModel singleValueModel = new SingleValueModel(); singleValueModel.setValue(CUSTOM_HEADER_VALUE); AwsProxyRequestBuilder request = getRequestBuilder("/echo/json-body", "POST") - .json() - .body(objectMapper.writeValueAsString(singleValueModel)); + .json() + .body(objectMapper.writeValueAsString(singleValueModel)); AwsProxyResponse output = executeRequest(request, lambdaContext); assertEquals(200, output.getStatusCode()); @@ -295,18 +318,22 @@ public void responseBody_responseWriter_validBody() throws JsonProcessingExcepti validateSingleValueModel(output, CUSTOM_HEADER_VALUE); } - @Test - public void statusCode_responseStatusCode_customStatusCode() { + @MethodSource("data") + @ParameterizedTest + void statusCode_responseStatusCode_customStatusCode(String reqType) { + initJerseyAwsProxyTest(reqType); AwsProxyRequestBuilder request = getRequestBuilder("/echo/status-code", "GET") - .json() - .queryString("status", "201"); + .json() + .queryString("status", "201"); AwsProxyResponse output = executeRequest(request, lambdaContext); assertEquals(201, output.getStatusCode()); } - @Test - public void base64_binaryResponse_base64Encoding() { + @MethodSource("data") + @ParameterizedTest + void base64_binaryResponse_base64Encoding(String reqType) { + initJerseyAwsProxyTest(reqType); AwsProxyRequestBuilder request = getRequestBuilder("/echo/binary", "GET"); AwsProxyResponse response = executeRequest(request, lambdaContext); @@ -314,8 +341,10 @@ public void base64_binaryResponse_base64Encoding() { assertTrue(Base64.isBase64(response.getBody())); } - @Test - public void exception_mapException_mapToNotImplemented() { + @MethodSource("data") + @ParameterizedTest + void exception_mapException_mapToNotImplemented(String reqType) { + initJerseyAwsProxyTest(reqType); AwsProxyRequestBuilder request = getRequestBuilder("/echo/exception", "GET"); AwsProxyResponse response = executeRequest(request, lambdaContext); @@ -324,24 +353,28 @@ public void exception_mapException_mapToNotImplemented() { assertEquals(Response.Status.NOT_IMPLEMENTED.getStatusCode(), response.getStatusCode()); } - @Test - public void stripBasePath_route_shouldRouteCorrectly() { + @MethodSource("data") + @ParameterizedTest + void stripBasePath_route_shouldRouteCorrectly(String reqType) { + initJerseyAwsProxyTest(reqType); AwsProxyRequestBuilder request = getRequestBuilder("/custompath/echo/status-code", "GET") - .json() - .queryString("status", "201"); + .json() + .queryString("status", "201"); getHandler().stripBasePath("/custompath"); AwsProxyResponse output = executeRequest(request, lambdaContext); assertEquals(201, output.getStatusCode()); getHandler().stripBasePath(""); } - @Test - public void stripBasePath_route_shouldReturn404WithStageAsContext() { + @MethodSource("data") + @ParameterizedTest + void stripBasePath_route_shouldReturn404WithStageAsContext(String reqType) { + initJerseyAwsProxyTest(reqType); assumeTrue(!"ALB".equals(type)); AwsProxyRequestBuilder request = getRequestBuilder("/custompath/echo/status-code", "GET") - .stage("prod") - .json() - .queryString("status", "201"); + .stage("prod") + .json() + .queryString("status", "201"); getHandler().stripBasePath("/custompath"); LambdaContainerHandler.getContainerConfig().setUseStageAsServletContext(true); AwsProxyResponse output = executeRequest(request, lambdaContext); @@ -350,57 +383,67 @@ public void stripBasePath_route_shouldReturn404WithStageAsContext() { LambdaContainerHandler.getContainerConfig().setUseStageAsServletContext(false); } - @Test - public void stripBasePath_route_shouldReturn404() { + @MethodSource("data") + @ParameterizedTest + void stripBasePath_route_shouldReturn404(String reqType) { + initJerseyAwsProxyTest(reqType); AwsProxyRequestBuilder request = getRequestBuilder("/custompath/echo/status-code", "GET") - .json() - .queryString("status", "201"); + .json() + .queryString("status", "201"); getHandler().stripBasePath("/custom"); AwsProxyResponse output = executeRequest(request, lambdaContext); assertEquals(404, output.getStatusCode()); getHandler().stripBasePath(""); } - @Test - public void securityContext_injectPrincipal_expectPrincipalName() { + @MethodSource("data") + @ParameterizedTest + void securityContext_injectPrincipal_expectPrincipalName(String reqType) { + initJerseyAwsProxyTest(reqType); assumeTrue("API_GW".equals(type)); AwsProxyRequestBuilder request = getRequestBuilder("/echo/security-context", "GET") - .authorizerPrincipal(USER_PRINCIPAL); + .authorizerPrincipal(USER_PRINCIPAL); AwsProxyResponse resp = executeRequest(request, lambdaContext); assertEquals(200, resp.getStatusCode()); validateSingleValueModel(resp, USER_PRINCIPAL); } - @Test - public void emptyStream_putNullBody_expectPutToSucceed() { + @MethodSource("data") + @ParameterizedTest + void emptyStream_putNullBody_expectPutToSucceed(String reqType) { + initJerseyAwsProxyTest(reqType); AwsProxyRequestBuilder request = getRequestBuilder("/echo/empty-stream/" + CUSTOM_HEADER_KEY + "/test/2", "PUT") - .nullBody() - .header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON); + .nullBody() + .header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON); AwsProxyResponse resp = executeRequest(request, lambdaContext); assertEquals(200, resp.getStatusCode()); validateSingleValueModel(resp, CUSTOM_HEADER_KEY); } - @Test - public void refererHeader_headerParam_expectCorrectInjection() { + @MethodSource("data") + @ParameterizedTest + void refererHeader_headerParam_expectCorrectInjection(String reqType) { + initJerseyAwsProxyTest(reqType); String refererValue = "test-referer"; AwsProxyRequestBuilder request = getRequestBuilder("/echo/referer-header", "GET") - .nullBody() - .header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON) - .header("Referer", refererValue); + .nullBody() + .header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON) + .header("Referer", refererValue); AwsProxyResponse resp = executeRequest(request, lambdaContext); assertEquals(200, resp.getStatusCode()); validateSingleValueModel(resp, refererValue); } - @Test - public void textPlainContent_plain_responseHonorsContentType() { + @MethodSource("data") + @ParameterizedTest + void textPlainContent_plain_responseHonorsContentType(String reqType) { + initJerseyAwsProxyTest(reqType); AwsProxyRequestBuilder req = getRequestBuilder("/echo/plain", "GET") - .nullBody() - .header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON) - .header(HttpHeaders.ACCEPT, MediaType.TEXT_PLAIN); + .nullBody() + .header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON) + .header(HttpHeaders.ACCEPT, MediaType.TEXT_PLAIN); AwsProxyResponse resp = executeRequest(req, lambdaContext); assertEquals(200, resp.getStatusCode()); diff --git a/aws-serverless-java-container-jersey/src/test/java/com/amazonaws/serverless/proxy/jersey/JerseyInjectionTest.java b/aws-serverless-java-container-jersey/src/test/java/com/amazonaws/serverless/proxy/jersey/JerseyInjectionTest.java index e8e86270b..cfbe5c9bb 100644 --- a/aws-serverless-java-container-jersey/src/test/java/com/amazonaws/serverless/proxy/jersey/JerseyInjectionTest.java +++ b/aws-serverless-java-container-jersey/src/test/java/com/amazonaws/serverless/proxy/jersey/JerseyInjectionTest.java @@ -12,16 +12,15 @@ */ package com.amazonaws.serverless.proxy.jersey; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; import javax.inject.Singleton; import org.glassfish.jersey.internal.inject.AbstractBinder; import org.glassfish.jersey.media.multipart.MultiPartFeature; import org.glassfish.jersey.server.ResourceConfig; -import org.junit.Test; - +import org.junit.jupiter.api.Test; import com.amazonaws.serverless.proxy.model.AwsProxyRequest; import com.amazonaws.serverless.proxy.model.AwsProxyResponse; @@ -47,7 +46,7 @@ protected void configure() { app); @Test - public void can_get_injected_resources() throws Exception { + void can_get_injected_resources() throws Exception { JerseyInjectionTest instance1 = handler.getInjectionManager().getInstance(JerseyInjectionTest.class); assertNotNull(instance1); diff --git a/aws-serverless-java-container-jersey/src/test/java/com/amazonaws/serverless/proxy/jersey/JerseyParamEncodingTest.java b/aws-serverless-java-container-jersey/src/test/java/com/amazonaws/serverless/proxy/jersey/JerseyParamEncodingTest.java index e736cbc1e..25bb26bd4 100644 --- a/aws-serverless-java-container-jersey/src/test/java/com/amazonaws/serverless/proxy/jersey/JerseyParamEncodingTest.java +++ b/aws-serverless-java-container-jersey/src/test/java/com/amazonaws/serverless/proxy/jersey/JerseyParamEncodingTest.java @@ -14,10 +14,9 @@ import com.fasterxml.jackson.databind.ObjectMapper; import org.glassfish.jersey.media.multipart.MultiPartFeature; import org.glassfish.jersey.server.ResourceConfig; -import org.junit.Ignore; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; import javax.ws.rs.core.MediaType; @@ -27,12 +26,11 @@ import java.util.Arrays; import java.util.Collection; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.fail; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.fail; -@RunWith(Parameterized.class) public class JerseyParamEncodingTest { private static final String SIMPLE_ENCODED_PARAM = "p/z+3"; @@ -40,55 +38,54 @@ public class JerseyParamEncodingTest { private static final String QUERY_STRING_KEY = "identifier"; private static final String QUERY_STRING_NON_ENCODED_VALUE = "Space Test"; private static final String QUERY_STRING_ENCODED_VALUE = "Space%20Test"; - private static final byte[] FILE_CONTENTS = new byte[] { - (byte)47, (byte)85, (byte)135, (byte)12, (byte)53, (byte)7, (byte)158, (byte)212, (byte)55, (byte)193, (byte)149, (byte)3, (byte)166, (byte)181, - (byte)151, (byte)84, (byte)122, (byte)200, (byte)244, (byte)5, (byte)115, (byte)159, (byte)66, (byte)64, (byte)143, (byte)211, (byte)13, (byte)63, - (byte)235, (byte)184, (byte)51, (byte)49, (byte)143, (byte)167, (byte)231, (byte)31, (byte)78, (byte)234, (byte)145, (byte)105, (byte)190, (byte)170, - (byte)49, (byte)135, (byte)175, (byte)106, (byte)25, (byte)86, (byte)145, (byte)181, (byte)156, (byte)23, (byte)153, (byte)99, (byte)175, (byte)63, - (byte)43, (byte)208, (byte)5, (byte)16, (byte)140, (byte)103, (byte)146, (byte)254, (byte)155, (byte)97, (byte)53, (byte)100, (byte)137, (byte)6, - (byte)62, (byte)101, (byte)189, (byte)137, (byte)140, (byte)5, (byte)110, (byte)218, (byte)113, (byte)132, (byte)36, (byte)188, (byte)19, (byte)168, - (byte)93, (byte)169, (byte)124, (byte)253, (byte)201, (byte)233, (byte)21, (byte)80, (byte)4, (byte)56, (byte)0, (byte)204, (byte)205, (byte)232, - (byte)213, (byte)253, (byte)232, (byte)91, (byte)153, (byte)169, (byte)82, (byte)247, (byte)78, (byte)71, (byte)188, (byte)71, (byte)23, (byte)171, - (byte)232, (byte)26, (byte)146, (byte)189, (byte)145, (byte)82, (byte)79, (byte)148, (byte)1, (byte)201, (byte)243, (byte)73, (byte)98, (byte)65, - (byte)236, (byte)177, (byte)211, (byte)106, (byte)105, (byte)46, (byte)204, (byte)214, (byte)55, (byte)182, (byte)55, (byte)149, (byte)221, (byte)52, - (byte)186, (byte)122, (byte)255, (byte)195, (byte)60, (byte)146, (byte)21, (byte)212, (byte)139, (byte)38, (byte)146, (byte)166, (byte)14, (byte)174, - (byte)242, (byte)145, (byte)16, (byte)44, (byte)68, (byte)89, (byte)25, (byte)219, (byte)62, (byte)227, (byte)6, (byte)89, (byte)194, (byte)146, (byte)93, - (byte)167, (byte)230, (byte)90, (byte)59, (byte)35, (byte)136, (byte)37, (byte)196, (byte)118, (byte)16, (byte)28, (byte)107, (byte)105, (byte)87, - (byte)195, (byte)86, (byte)87, (byte)180, (byte)176, (byte)118, (byte)6, (byte)29, (byte)26, (byte)51, (byte)94, (byte)21, (byte)23, (byte)32, (byte)156, - (byte)150, (byte)204, (byte)53, (byte)110, (byte)134, (byte)153, (byte)138, (byte)247, (byte)98, (byte)135, (byte)249, (byte)119, (byte)121, (byte)2, - (byte)42, (byte)62, (byte)198, (byte)197, (byte)112, (byte)153, (byte)244, (byte)174, (byte)145, (byte)54, (byte)246, (byte)44, (byte)198, (byte)50, - (byte)2, (byte)37, (byte)102, (byte)50, (byte)103, (byte)207, (byte)81, (byte)62, (byte)138, (byte)164, (byte)140, (byte)64, (byte)247, (byte)115, - (byte)40, (byte)41, (byte)252, (byte)54, (byte)189, (byte)207, (byte)124, (byte)147, (byte)122, (byte)243, (byte)83, (byte)34, (byte)160, (byte)64, (byte)189, (byte)226, (byte)202, (byte)181, (byte)55, (byte)158, (byte)121, (byte)78, (byte)143, (byte)41, (byte)58, (byte)27, (byte)77, (byte)186, (byte)214, (byte)23, (byte)132, (byte)100, (byte)180, (byte)26, (byte)37, (byte)247, (byte)254, (byte)97, (byte)214, (byte)57, (byte)30, (byte)46, (byte)96, (byte)44, (byte)138, (byte)15, (byte)162, (byte)93, (byte)222, (byte)239, (byte)189, (byte)72, (byte)15, (byte)79, (byte)136, (byte)210, (byte)44, (byte)233, (byte)99, (byte)72, (byte)234, (byte)225, (byte)245, (byte)27, (byte)111, (byte)175, (byte)132, (byte)112, (byte)135, (byte)253, (byte)66, (byte)215, (byte)168, (byte)156, (byte)168, (byte)79, (byte)78, (byte)140, (byte)14, (byte)129, (byte)37, (byte)238, (byte)196, (byte)34, (byte)245, (byte)141, (byte)148, (byte)161, (byte)29, (byte)110, (byte)32, (byte)255, (byte)247, (byte)52, (byte)48, (byte)102, (byte)42, (byte)54, (byte)97, (byte)185, (byte)10, (byte)114, (byte)225, (byte)247, (byte)254, (byte)108, (byte)116, (byte)73, (byte)84, (byte)242, (byte)86, (byte)15, (byte)72, (byte)68, (byte)172, (byte)74, (byte)107, (byte)103, (byte)222, (byte)246, (byte)152, (byte)67, (byte)12, (byte)104, (byte)245, (byte)20, (byte)112, (byte)94, (byte)197, (byte)201, (byte)89, (byte)182, (byte)214, (byte)6, (byte)182, (byte)165, (byte)209, (byte)79, (byte)192, (byte)211, (byte)163, (byte)208, (byte)12, (byte)73, (byte)53, (byte)99, (byte)59, (byte)182, (byte)186, (byte)48, (byte)184, (byte)215, (byte)22, (byte)24, (byte)233, (byte)109, (byte)206, (byte)59, (byte)0, (byte)118, (byte)141, (byte)25, (byte)50, (byte)242, (byte)247, (byte)240, (byte)238, (byte)127, (byte)236, (byte)241, (byte)224, (byte)20, (byte)61, (byte)65, (byte)148, (byte)120, (byte)192, (byte)99, (byte)172, (byte)194, (byte)135, (byte)61, (byte)147, (byte)251, (byte)161, (byte)219, (byte)252, (byte)187, (byte)154, (byte)115, (byte)193, (byte)118, (byte)167, (byte)130, (byte)174, (byte)211, (byte)236, (byte)141, (byte)14, (byte)8, (byte)244, (byte)110, (byte)66, (byte)210, (byte)110, (byte)236, (byte)255, (byte)25, (byte)16, (byte)134, (byte)70, (byte)196, (byte)163, (byte)30, (byte)177, (byte)238, (byte)225, (byte)237, (byte)12, (byte)14, (byte)215, (byte)40, (byte)77, (byte)206, (byte)76, (byte)122, (byte)205, (byte)20, (byte)183, (byte)106, (byte)230, (byte)230, (byte)123, (byte)209, (byte)77, (byte)102, (byte)65, (byte)241, (byte)41, (byte)213, (byte)219, (byte)79, (byte)37, (byte)61, (byte)10, (byte)154, (byte)19, (byte)93, (byte)33, (byte)72, (byte)105, (byte)247, (byte)221, (byte)145, (byte)179, (byte)69, (byte)38, (byte)234, (byte)163, (byte)218, (byte)131, (byte)179, (byte)30, (byte)114, (byte)150, (byte)106, (byte)17, (byte)187, (byte)229, (byte)106, (byte)7, (byte)112 + private static final byte[] FILE_CONTENTS = new byte[]{ + (byte)47, (byte)85, (byte)135, (byte)12, (byte)53, (byte)7, (byte)158, (byte)212, (byte)55, (byte)193, (byte)149, (byte)3, (byte)166, (byte)181, + (byte)151, (byte)84, (byte)122, (byte)200, (byte)244, (byte)5, (byte)115, (byte)159, (byte)66, (byte)64, (byte)143, (byte)211, (byte)13, (byte)63, + (byte)235, (byte)184, (byte)51, (byte)49, (byte)143, (byte)167, (byte)231, (byte)31, (byte)78, (byte)234, (byte)145, (byte)105, (byte)190, (byte)170, + (byte)49, (byte)135, (byte)175, (byte)106, (byte)25, (byte)86, (byte)145, (byte)181, (byte)156, (byte)23, (byte)153, (byte)99, (byte)175, (byte)63, + (byte)43, (byte)208, (byte)5, (byte)16, (byte)140, (byte)103, (byte)146, (byte)254, (byte)155, (byte)97, (byte)53, (byte)100, (byte)137, (byte)6, + (byte)62, (byte)101, (byte)189, (byte)137, (byte)140, (byte)5, (byte)110, (byte)218, (byte)113, (byte)132, (byte)36, (byte)188, (byte)19, (byte)168, + (byte)93, (byte)169, (byte)124, (byte)253, (byte)201, (byte)233, (byte)21, (byte)80, (byte)4, (byte)56, (byte)0, (byte)204, (byte)205, (byte)232, + (byte)213, (byte)253, (byte)232, (byte)91, (byte)153, (byte)169, (byte)82, (byte)247, (byte)78, (byte)71, (byte)188, (byte)71, (byte)23, (byte)171, + (byte)232, (byte)26, (byte)146, (byte)189, (byte)145, (byte)82, (byte)79, (byte)148, (byte)1, (byte)201, (byte)243, (byte)73, (byte)98, (byte)65, + (byte)236, (byte)177, (byte)211, (byte)106, (byte)105, (byte)46, (byte)204, (byte)214, (byte)55, (byte)182, (byte)55, (byte)149, (byte)221, (byte)52, + (byte)186, (byte)122, (byte)255, (byte)195, (byte)60, (byte)146, (byte)21, (byte)212, (byte)139, (byte)38, (byte)146, (byte)166, (byte)14, (byte)174, + (byte)242, (byte)145, (byte)16, (byte)44, (byte)68, (byte)89, (byte)25, (byte)219, (byte)62, (byte)227, (byte)6, (byte)89, (byte)194, (byte)146, (byte)93, + (byte)167, (byte)230, (byte)90, (byte)59, (byte)35, (byte)136, (byte)37, (byte)196, (byte)118, (byte)16, (byte)28, (byte)107, (byte)105, (byte)87, + (byte)195, (byte)86, (byte)87, (byte)180, (byte)176, (byte)118, (byte)6, (byte)29, (byte)26, (byte)51, (byte)94, (byte)21, (byte)23, (byte)32, (byte)156, + (byte)150, (byte)204, (byte)53, (byte)110, (byte)134, (byte)153, (byte)138, (byte)247, (byte)98, (byte)135, (byte)249, (byte)119, (byte)121, (byte)2, + (byte)42, (byte)62, (byte)198, (byte)197, (byte)112, (byte)153, (byte)244, (byte)174, (byte)145, (byte)54, (byte)246, (byte)44, (byte)198, (byte)50, + (byte)2, (byte)37, (byte)102, (byte)50, (byte)103, (byte)207, (byte)81, (byte)62, (byte)138, (byte)164, (byte)140, (byte)64, (byte)247, (byte)115, + (byte)40, (byte)41, (byte)252, (byte)54, (byte)189, (byte)207, (byte)124, (byte)147, (byte)122, (byte)243, (byte)83, (byte)34, (byte)160, (byte)64, (byte)189, (byte)226, (byte)202, (byte)181, (byte)55, (byte)158, (byte)121, (byte)78, (byte)143, (byte)41, (byte)58, (byte)27, (byte)77, (byte)186, (byte)214, (byte)23, (byte)132, (byte)100, (byte)180, (byte)26, (byte)37, (byte)247, (byte)254, (byte)97, (byte)214, (byte)57, (byte)30, (byte)46, (byte)96, (byte)44, (byte)138, (byte)15, (byte)162, (byte)93, (byte)222, (byte)239, (byte)189, (byte)72, (byte)15, (byte)79, (byte)136, (byte)210, (byte)44, (byte)233, (byte)99, (byte)72, (byte)234, (byte)225, (byte)245, (byte)27, (byte)111, (byte)175, (byte)132, (byte)112, (byte)135, (byte)253, (byte)66, (byte)215, (byte)168, (byte)156, (byte)168, (byte)79, (byte)78, (byte)140, (byte)14, (byte)129, (byte)37, (byte)238, (byte)196, (byte)34, (byte)245, (byte)141, (byte)148, (byte)161, (byte)29, (byte)110, (byte)32, (byte)255, (byte)247, (byte)52, (byte)48, (byte)102, (byte)42, (byte)54, (byte)97, (byte)185, (byte)10, (byte)114, (byte)225, (byte)247, (byte)254, (byte)108, (byte)116, (byte)73, (byte)84, (byte)242, (byte)86, (byte)15, (byte)72, (byte)68, (byte)172, (byte)74, (byte)107, (byte)103, (byte)222, (byte)246, (byte)152, (byte)67, (byte)12, (byte)104, (byte)245, (byte)20, (byte)112, (byte)94, (byte)197, (byte)201, (byte)89, (byte)182, (byte)214, (byte)6, (byte)182, (byte)165, (byte)209, (byte)79, (byte)192, (byte)211, (byte)163, (byte)208, (byte)12, (byte)73, (byte)53, (byte)99, (byte)59, (byte)182, (byte)186, (byte)48, (byte)184, (byte)215, (byte)22, (byte)24, (byte)233, (byte)109, (byte)206, (byte)59, (byte)0, (byte)118, (byte)141, (byte)25, (byte)50, (byte)242, (byte)247, (byte)240, (byte)238, (byte)127, (byte)236, (byte)241, (byte)224, (byte)20, (byte)61, (byte)65, (byte)148, (byte)120, (byte)192, (byte)99, (byte)172, (byte)194, (byte)135, (byte)61, (byte)147, (byte)251, (byte)161, (byte)219, (byte)252, (byte)187, (byte)154, (byte)115, (byte)193, (byte)118, (byte)167, (byte)130, (byte)174, (byte)211, (byte)236, (byte)141, (byte)14, (byte)8, (byte)244, (byte)110, (byte)66, (byte)210, (byte)110, (byte)236, (byte)255, (byte)25, (byte)16, (byte)134, (byte)70, (byte)196, (byte)163, (byte)30, (byte)177, (byte)238, (byte)225, (byte)237, (byte)12, (byte)14, (byte)215, (byte)40, (byte)77, (byte)206, (byte)76, (byte)122, (byte)205, (byte)20, (byte)183, (byte)106, (byte)230, (byte)230, (byte)123, (byte)209, (byte)77, (byte)102, (byte)65, (byte)241, (byte)41, (byte)213, (byte)219, (byte)79, (byte)37, (byte)61, (byte)10, (byte)154, (byte)19, (byte)93, (byte)33, (byte)72, (byte)105, (byte)247, (byte)221, (byte)145, (byte)179, (byte)69, (byte)38, (byte)234, (byte)163, (byte)218, (byte)131, (byte)179, (byte)30, (byte)114, (byte)150, (byte)106, (byte)17, (byte)187, (byte)229, (byte)106, (byte)7, (byte)112 }; private static ObjectMapper objectMapper = new ObjectMapper(); private static ResourceConfig app = new ResourceConfig().packages("com.amazonaws.serverless.proxy.jersey") - .register(MultiPartFeature.class) - .register(new ResourceBinder()) - .property("jersey.config.server.tracing.type", "ALL") - .property("jersey.config.server.tracing.threshold", "VERBOSE"); + .register(MultiPartFeature.class) + .register(new ResourceBinder()) + .property("jersey.config.server.tracing.type", "ALL") + .property("jersey.config.server.tracing.threshold", "VERBOSE"); private static JerseyLambdaContainerHandler handler; private static ResourceConfig httpApiApp = new ResourceConfig().packages("com.amazonaws.serverless.proxy.jersey") - .register(MultiPartFeature.class) - .register(new ResourceBinder()) - .property("jersey.config.server.tracing.type", "ALL") - .property("jersey.config.server.tracing.threshold", "VERBOSE"); + .register(MultiPartFeature.class) + .register(new ResourceBinder()) + .property("jersey.config.server.tracing.type", "ALL") + .property("jersey.config.server.tracing.threshold", "VERBOSE"); private static JerseyLambdaContainerHandler httpApiHandler; private static Context lambdaContext = new MockLambdaContext(); private String type; - public JerseyParamEncodingTest(String reqType) { + public void initJerseyParamEncodingTest(String reqType) { type = reqType; LambdaContainerHandler.getContainerConfig().addBinaryContentTypes(MediaType.MULTIPART_FORM_DATA); } - @Parameterized.Parameters public static Collection data() { - return Arrays.asList(new Object[] { "API_GW", "ALB", "HTTP_API" }); + return Arrays.asList(new Object[]{"API_GW", "ALB", "HTTP_API"}); } private AwsProxyRequestBuilder getRequestBuilder(String path, String method) { @@ -117,11 +114,13 @@ private AwsProxyResponse executeRequest(AwsProxyRequestBuilder requestBuilder, C } } - @Test - public void queryString_uriInfo_echo() { + @MethodSource("data") + @ParameterizedTest + void queryString_uriInfo_echo(String reqType) { + initJerseyParamEncodingTest(reqType); AwsProxyRequestBuilder request = getRequestBuilder("/echo/query-string", "GET") - .json() - .queryString(QUERY_STRING_KEY, QUERY_STRING_NON_ENCODED_VALUE); + .json() + .queryString(QUERY_STRING_KEY, QUERY_STRING_NON_ENCODED_VALUE); AwsProxyResponse output = executeRequest(request, lambdaContext); assertEquals(200, output.getStatusCode()); @@ -130,11 +129,13 @@ public void queryString_uriInfo_echo() { validateMapResponseModel(output, QUERY_STRING_KEY, QUERY_STRING_NON_ENCODED_VALUE); } - @Test - public void queryString_notEncoded_echo() { + @MethodSource("data") + @ParameterizedTest + void queryString_notEncoded_echo(String reqType) { + initJerseyParamEncodingTest(reqType); AwsProxyRequestBuilder request = getRequestBuilder("/echo/query-string", "GET") - .json() - .queryString(QUERY_STRING_KEY, QUERY_STRING_NON_ENCODED_VALUE); + .json() + .queryString(QUERY_STRING_KEY, QUERY_STRING_NON_ENCODED_VALUE); AwsProxyResponse output = executeRequest(request, lambdaContext); assertEquals(200, output.getStatusCode()); @@ -143,12 +144,14 @@ public void queryString_notEncoded_echo() { validateMapResponseModel(output, QUERY_STRING_KEY, QUERY_STRING_NON_ENCODED_VALUE); } - @Test - @Ignore("We expect to only receive decoded values from API Gateway") - public void queryString_encoded_echo() { + @ParameterizedTest + @Disabled("We expect to only receive decoded values from API Gateway") + @MethodSource("data") + void queryString_encoded_echo(String reqType) { + initJerseyParamEncodingTest(reqType); AwsProxyRequestBuilder request = getRequestBuilder("/echo/query-string", "GET") - .json() - .queryString(QUERY_STRING_KEY, QUERY_STRING_ENCODED_VALUE); + .json() + .queryString(QUERY_STRING_KEY, QUERY_STRING_ENCODED_VALUE); AwsProxyResponse output = executeRequest(request, lambdaContext); assertEquals(200, output.getStatusCode()); @@ -157,8 +160,10 @@ public void queryString_encoded_echo() { validateMapResponseModel(output, QUERY_STRING_KEY, QUERY_STRING_NON_ENCODED_VALUE); } - @Test - public void simpleQueryParam_encoding_expectDecodedParam() { + @MethodSource("data") + @ParameterizedTest + void simpleQueryParam_encoding_expectDecodedParam(String reqType) { + initJerseyParamEncodingTest(reqType); AwsProxyRequestBuilder request = getRequestBuilder("/echo/decoded-param", "GET").queryString("param", SIMPLE_ENCODED_PARAM); AwsProxyResponse resp = executeRequest(request, lambdaContext); @@ -166,8 +171,10 @@ public void simpleQueryParam_encoding_expectDecodedParam() { validateSingleValueModel(resp, SIMPLE_ENCODED_PARAM); } - @Test - public void jsonQueryParam_encoding_expectDecodedParam() { + @MethodSource("data") + @ParameterizedTest + void jsonQueryParam_encoding_expectDecodedParam(String reqType) { + initJerseyParamEncodingTest(reqType); AwsProxyRequestBuilder request = getRequestBuilder("/echo/decoded-param", "GET").queryString("param", JSON_ENCODED_PARAM); AwsProxyResponse resp = executeRequest(request, lambdaContext); @@ -175,8 +182,10 @@ public void jsonQueryParam_encoding_expectDecodedParam() { validateSingleValueModel(resp, JSON_ENCODED_PARAM); } - @Test - public void simpleQueryParam_encoding_expectEncodedParam() { + @MethodSource("data") + @ParameterizedTest + void simpleQueryParam_encoding_expectEncodedParam(String reqType) { + initJerseyParamEncodingTest(reqType); AwsProxyRequestBuilder request = getRequestBuilder("/echo/encoded-param", "GET").queryString("param", SIMPLE_ENCODED_PARAM); String encodedVal = ""; try { @@ -189,8 +198,10 @@ public void simpleQueryParam_encoding_expectEncodedParam() { validateSingleValueModel(resp, encodedVal); } - @Test - public void jsonQueryParam_encoding_expectEncodedParam() { + @MethodSource("data") + @ParameterizedTest + void jsonQueryParam_encoding_expectEncodedParam(String reqType) { + initJerseyParamEncodingTest(reqType); AwsProxyRequestBuilder request = getRequestBuilder("/echo/encoded-param", "GET").queryString("param", JSON_ENCODED_PARAM); String encodedVal = ""; try { @@ -203,52 +214,62 @@ public void jsonQueryParam_encoding_expectEncodedParam() { validateSingleValueModel(resp, encodedVal); } - @Test - public void queryParam_encoding_expectFullyEncodedUrl() { + @MethodSource("data") + @ParameterizedTest + void queryParam_encoding_expectFullyEncodedUrl(String reqType) { + initJerseyParamEncodingTest(reqType); String paramValue = "/+="; AwsProxyRequestBuilder request = getRequestBuilder("/echo/encoded-param", "GET").queryString("param", paramValue); AwsProxyResponse resp = executeRequest(request, lambdaContext); assertNotNull(resp); - assertEquals(resp.getStatusCode(), 200); + assertEquals(200, resp.getStatusCode()); validateSingleValueModel(resp, "%2F%2B%3D"); } - @Test - public void pathParam_encoded_routesToCorrectPath() { + @MethodSource("data") + @ParameterizedTest + void pathParam_encoded_routesToCorrectPath(String reqType) { + initJerseyParamEncodingTest(reqType); String encodedParam = "http%3A%2F%2Fhelloresource.com"; String path = "/echo/encoded-path/" + encodedParam; AwsProxyRequestBuilder request = getRequestBuilder(path, "GET"); AwsProxyResponse resp = executeRequest(request, lambdaContext); assertNotNull(resp); - assertEquals(resp.getStatusCode(), 200); + assertEquals(200, resp.getStatusCode()); validateSingleValueModel(resp, encodedParam); } - @Test - public void pathParam_encoded_returns404() { + @MethodSource("data") + @ParameterizedTest + void pathParam_encoded_returns404(String reqType) { + initJerseyParamEncodingTest(reqType); String encodedParam = "http://helloresource.com"; String path = "/echo/encoded-path/" + encodedParam; AwsProxyRequestBuilder request = getRequestBuilder(path, "GET"); AwsProxyResponse resp = executeRequest(request, lambdaContext); assertNotNull(resp); - assertEquals(resp.getStatusCode(), 404); + assertEquals(404, resp.getStatusCode()); } - @Test - @Ignore - public void queryParam_listOfString_expectCorrectLength() { + @ParameterizedTest + @Disabled + @MethodSource("data") + void queryParam_listOfString_expectCorrectLength(String reqType) { + initJerseyParamEncodingTest(reqType); AwsProxyRequestBuilder request = getRequestBuilder("/echo/list-query-string", "GET").queryString("list", "v1,v2,v3"); AwsProxyResponse resp = executeRequest(request, lambdaContext); assertNotNull(resp); - assertEquals(resp.getStatusCode(), 200); + assertEquals(200, resp.getStatusCode()); validateSingleValueModel(resp, "3"); } - @Test - public void multipart_getFileSize_expectCorrectLength() - throws IOException { + @MethodSource("data") + @ParameterizedTest + void multipart_getFileSize_expectCorrectLength(String reqType) + throws IOException { + initJerseyParamEncodingTest(reqType); AwsProxyRequestBuilder request = getRequestBuilder("/echo/file-size", "POST") - .formFilePart("file", "myfile.jpg", FILE_CONTENTS); + .formFilePart("file", "myfile.jpg", FILE_CONTENTS); AwsProxyResponse resp = executeRequest(request, lambdaContext); assertNotNull(resp); assertEquals(200, resp.getStatusCode()); diff --git a/aws-serverless-java-container-spark/pom.xml b/aws-serverless-java-container-spark/pom.xml index 9da5aa343..f5ea6b868 100644 --- a/aws-serverless-java-container-spark/pom.xml +++ b/aws-serverless-java-container-spark/pom.xml @@ -33,6 +33,11 @@ spark-core ${spark.version} + + org.junit.jupiter + junit-jupiter + test + @@ -84,7 +89,7 @@ org.apache.maven.plugins maven-surefire-plugin - 2.9 + 2.22.2 always 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 index 0c41f91f7..56087ed62 100644 --- 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 @@ -10,10 +10,9 @@ import com.amazonaws.serverless.proxy.model.HttpApiV2ProxyRequest; import com.amazonaws.services.lambda.runtime.Context; -import org.junit.AfterClass; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; import spark.Spark; import javax.servlet.http.Cookie; @@ -23,15 +22,12 @@ import java.util.Arrays; import java.util.Collection; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; +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 -@RunWith(Parameterized.class) public class HelloWorldSparkStreamTest { private static final String CUSTOM_HEADER_KEY = "X-Custom-Header"; private static final String CUSTOM_HEADER_VALUE = "My Header Value"; @@ -47,7 +43,7 @@ public class HelloWorldSparkStreamTest { private String type; - public HelloWorldSparkStreamTest(String reqType) { + public void initHelloWorldSparkStreamTest(String reqType) { type = reqType; try { switch (type) { @@ -70,9 +66,8 @@ public HelloWorldSparkStreamTest(String reqType) { } } - @Parameterized.Parameters public static Collection data() { - return Arrays.asList(new Object[] { "API_GW", "ALB", "HTTP_API" }); + return Arrays.asList(new Object[]{"API_GW", "ALB", "HTTP_API"}); } private AwsProxyRequestBuilder getRequestBuilder() { @@ -97,13 +92,15 @@ private ByteArrayOutputStream executeRequest(AwsProxyRequestBuilder requestBuild return os; } - @AfterClass + @AfterAll public static void stopSpark() { Spark.stop(); } - @Test - public void helloRequest_basicStream_populatesOutputSuccessfully() { + @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); @@ -118,8 +115,10 @@ public void helloRequest_basicStream_populatesOutputSuccessfully() { } } - @Test - public void nullPathRequest_doesntFail_expectA404() { + @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); 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 index 108eeabeb..5402b6a9c 100644 --- 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 @@ -7,11 +7,10 @@ import com.amazonaws.serverless.proxy.internal.testutils.AwsProxyRequestBuilder; import com.amazonaws.serverless.proxy.internal.testutils.MockLambdaContext; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +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 javax.servlet.http.Cookie; @@ -20,11 +19,10 @@ import java.util.Arrays; import java.util.Collection; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.*; import static spark.Spark.get; -@RunWith(Parameterized.class) public class HelloWorldSparkTest { private static final String CUSTOM_HEADER_KEY = "X-Custom-Header"; private static final String CUSTOM_HEADER_VALUE = "My Header Value"; @@ -41,13 +39,12 @@ public class HelloWorldSparkTest { private boolean isAlb; - public HelloWorldSparkTest(boolean alb) { + public void initHelloWorldSparkTest(boolean alb) { isAlb = alb; } - @Parameterized.Parameters public static Collection data() { - return Arrays.asList(new Object[] { false, true }); + return Arrays.asList(new Object[]{false, true}); } private AwsProxyRequestBuilder getRequestBuilder() { @@ -57,7 +54,7 @@ private AwsProxyRequestBuilder getRequestBuilder() { return builder; } - @BeforeClass + @BeforeAll public static void initializeServer() { try { handler = SparkLambdaContainerHandler.getAwsProxyHandler(); @@ -70,13 +67,15 @@ public static void initializeServer() { } } - @AfterClass + @AfterAll public static void stopSpark() { Spark.stop(); } - @Test - public void basicServer_handleRequest_emptyFilters() { + @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()); @@ -86,8 +85,10 @@ public void basicServer_handleRequest_emptyFilters() { assertEquals(BODY_TEXT_RESPONSE, response.getBody()); } - @Test - public void addCookie_setCookieOnResponse_validCustomCookie() { + @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()); @@ -98,8 +99,10 @@ public void addCookie_setCookieOnResponse_validCustomCookie() { assertTrue(response.getMultiValueHeaders().getFirst(HttpHeaders.SET_COOKIE).contains(COOKIE_PATH)); } - @Test - public void multiCookie_setCookieOnResponse_singleHeaderWithMultipleValues() { + @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()); @@ -113,8 +116,10 @@ public void multiCookie_setCookieOnResponse_singleHeaderWithMultipleValues() { assertTrue(response.getMultiValueHeaders().getFirst(HttpHeaders.SET_COOKIE).contains(COOKIE_PATH)); } - @Test - public void rootResource_basicRequest_expectSuccess() { + @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()); @@ -124,8 +129,10 @@ public void rootResource_basicRequest_expectSuccess() { assertEquals(BODY_TEXT_RESPONSE, response.getBody()); } - @Test - public void readCookie_customDomainName_expectValidCookie() { + @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()); 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 index 6042899e4..92c84a49b 100644 --- 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 @@ -11,15 +11,13 @@ import com.amazonaws.serverless.proxy.spark.embeddedserver.LambdaEmbeddedServer; import com.amazonaws.serverless.proxy.spark.embeddedserver.LambdaEmbeddedServerFactory; -import org.junit.AfterClass; -import org.junit.Test; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.Test; import spark.Spark; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.fail; -import static org.mockito.Matchers.anyInt; -import static org.mockito.Matchers.anyObject; -import static org.mockito.Matchers.anyString; +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; @@ -33,11 +31,11 @@ public class InitExceptionHandlerTest { private static LambdaEmbeddedServer embeddedServer = mock(LambdaEmbeddedServer.class); @Test - public void initException_mockException_expectHandlerToRun() { + void initException_mockException_expectHandlerToRun() { try { - when(embeddedServer.ignite(anyString(), anyInt(), anyObject(), anyInt(), anyInt(), anyInt())) - .thenThrow(new ContainerInitializationException(TEST_EXCEPTION_MESSAGE, null)); + 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, @@ -56,7 +54,7 @@ public void initException_mockException_expectHandlerToRun() { } - @AfterClass + @AfterAll public static void stopSpark() { // un-mock the embedded server to avoid blocking other tests reset(embeddedServer); 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 index c778bd57e..52f2a5388 100644 --- 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 @@ -9,8 +9,8 @@ import com.amazonaws.serverless.proxy.spark.filter.CustomHeaderFilter; import com.amazonaws.serverless.proxy.spark.filter.UnauthenticatedFilter; -import org.junit.AfterClass; -import org.junit.Test; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.Test; import spark.Spark; import javax.servlet.DispatcherType; @@ -18,7 +18,7 @@ import java.util.EnumSet; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.*; import static spark.Spark.get; @@ -26,11 +26,11 @@ public class SparkLambdaContainerHandlerTest { private static final String RESPONSE_BODY_TEXT = "hello"; @Test - public void filters_onStartupMethod_executeFilters() { + void filters_onStartupMethod_executeFilters() { SparkLambdaContainerHandler handler = null; try { - handler = SparkLambdaContainerHandler.getAwsProxyHandler(); + handler = SparkLambdaContainerHandler.getAwsProxyHandler(); } catch (ContainerInitializationException e) { e.printStackTrace(); fail(); @@ -62,7 +62,7 @@ public void filters_onStartupMethod_executeFilters() { } @Test - public void filters_unauthenticatedFilter_stopRequestProcessing() { + void filters_unauthenticatedFilter_stopRequestProcessing() { SparkLambdaContainerHandler handler = null; try { @@ -97,7 +97,7 @@ public void filters_unauthenticatedFilter_stopRequestProcessing() { // 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(); + .header(UnauthenticatedFilter.HEADER_NAME, "1").build(); AwsProxyResponse unauthResp = handler.proxy(unauthReq, new MockLambdaContext()); assertNotNull(unauthResp); @@ -105,7 +105,7 @@ public void filters_unauthenticatedFilter_stopRequestProcessing() { assertEquals("", unauthResp.getBody()); } - @AfterClass + @AfterAll public static void stopSpark() { Spark.stop(); } 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 index 968b2b47b..8cb34eae1 100644 --- 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 @@ -1,18 +1,18 @@ package com.amazonaws.serverless.proxy.spark.embeddedserver; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.util.Optional; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.fail; public class LambdaEmbeddedServerTest { private static LambdaEmbeddedServer server = new LambdaEmbeddedServer(null, null, null, false); @Test - public void webSocket_configureWebSocket_noException() { + void webSocket_configureWebSocket_noException() { try { server.configureWebSockets(null, Optional.of(0L)); } catch (Exception e) { diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml index b238a0d55..be0c1d9f0 100644 --- a/aws-serverless-java-container-spring/pom.xml +++ b/aws-serverless-java-container-spring/pom.xml @@ -74,6 +74,11 @@ 6.2.1.Final test + + org.junit.jupiter + junit-jupiter + test + javax.el @@ -199,7 +204,7 @@ org.apache.maven.plugins maven-surefire-plugin - 2.9 + 2.22.2 always diff --git a/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/SlowAppTest.java b/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/SlowAppTest.java index 0844b6246..a33d5374f 100644 --- a/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/SlowAppTest.java +++ b/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/SlowAppTest.java @@ -8,19 +8,17 @@ import com.amazonaws.serverless.proxy.spring.springslowapp.LambdaHandler; import com.amazonaws.serverless.proxy.spring.springslowapp.MessageController; import com.amazonaws.serverless.proxy.spring.springslowapp.SlowAppConfig; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.time.Instant; import java.util.Objects; -import static org.junit.Assert.*; -import static org.junit.Assume.assumeFalse; +import static org.junit.jupiter.api.Assertions.*; public class SlowAppTest { @Test - public void springSlowApp_continuesInBackgroundThread_returnsCorrect() { + void springSlowApp_continuesInBackgroundThread_returnsCorrect() { LambdaHandler slowApp = null; try { slowApp = new LambdaHandler(); @@ -36,7 +34,7 @@ public void springSlowApp_continuesInBackgroundThread_returnsCorrect() { long endRequestTime = Instant.now().toEpochMilli(); assertTrue(endRequestTime - startRequestTime > SlowAppConfig.SlowDownInit.INIT_SLEEP_TIME_MS - 10_000); assertEquals(200, resp.getStatusCode()); - Assert.assertEquals(MessageController.HELLO_MESSAGE, resp.getBody()); + assertEquals(MessageController.HELLO_MESSAGE, resp.getBody()); } } 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 c1365a5b1..6c744f6b5 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 @@ -18,10 +18,9 @@ import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import org.apache.commons.codec.binary.Base64; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.context.ContextConfiguration; @@ -44,11 +43,10 @@ import java.util.EnumSet; import java.util.UUID; -import static org.junit.Assert.*; -import static org.junit.Assume.assumeFalse; -import static org.junit.Assume.assumeTrue; +import static org.junit.jupiter.api.Assertions.*; +import static org.junit.jupiter.api.Assumptions.assumeFalse; +import static org.junit.jupiter.api.Assumptions.assumeTrue; -@RunWith(Parameterized.class) public class SpringAwsProxyTest { private static final String CUSTOM_HEADER_KEY = "x-custom-header"; private static final String CUSTOM_HEADER_VALUE = "my-custom-value"; @@ -72,12 +70,11 @@ public class SpringAwsProxyTest { private String type; - @Parameterized.Parameters public static Collection data() { - return Arrays.asList(new Object[] { "API_GW", "ALB", "HTTP_API" }); + return Arrays.asList(new Object[]{"API_GW", "ALB", "HTTP_API"}); } - public SpringAwsProxyTest(String reqType) { + public void initSpringAwsProxyTest(String reqType) { type = reqType; } @@ -112,16 +109,18 @@ private AwsProxyResponse executeRequest(AwsProxyRequestBuilder requestBuilder, C } } - @Before + @BeforeEach public void clearServletContextCache() { AwsServletContext.clearServletContextCache(); } - @Test - public void controllerAdvice_invalidPath_returnAdvice() { + @MethodSource("data") + @ParameterizedTest + void controllerAdvice_invalidPath_returnAdvice(String reqType) { + initSpringAwsProxyTest(reqType); AwsProxyRequestBuilder request = new AwsProxyRequestBuilder("/echo2", "GET") - .json() - .header(CUSTOM_HEADER_KEY, CUSTOM_HEADER_VALUE); + .json() + .header(CUSTOM_HEADER_KEY, CUSTOM_HEADER_VALUE); AwsProxyResponse output = executeRequest(request, lambdaContext); assertNotNull(output); @@ -130,8 +129,10 @@ public void controllerAdvice_invalidPath_returnAdvice() { } - @Test - public void headers_getHeaders_echo() { + @MethodSource("data") + @ParameterizedTest + void headers_getHeaders_echo(String reqType) { + initSpringAwsProxyTest(reqType); AwsProxyRequestBuilder request = new AwsProxyRequestBuilder("/echo/headers", "GET") .json() .header(CUSTOM_HEADER_KEY, CUSTOM_HEADER_VALUE); @@ -143,8 +144,10 @@ public void headers_getHeaders_echo() { validateMapResponseModel(output); } - @Test - public void headers_servletRequest_echo() { + @MethodSource("data") + @ParameterizedTest + void headers_servletRequest_echo(String reqType) { + initSpringAwsProxyTest(reqType); AwsProxyRequestBuilder request = new AwsProxyRequestBuilder("/echo/servlet-headers", "GET") .json() .header(CUSTOM_HEADER_KEY, CUSTOM_HEADER_VALUE); @@ -156,8 +159,10 @@ public void headers_servletRequest_echo() { validateMapResponseModel(output); } - @Test - public void queryString_uriInfo_echo() { + @MethodSource("data") + @ParameterizedTest + void queryString_uriInfo_echo(String reqType) { + initSpringAwsProxyTest(reqType); AwsProxyRequestBuilder request = new AwsProxyRequestBuilder("/echo/query-string", "GET") .json() .queryString(CUSTOM_HEADER_KEY, CUSTOM_HEADER_VALUE); @@ -169,11 +174,13 @@ public void queryString_uriInfo_echo() { validateMapResponseModel(output); } - @Test - public void queryString_listParameter_expectCorrectLength() { + @MethodSource("data") + @ParameterizedTest + void queryString_listParameter_expectCorrectLength(String reqType) { + initSpringAwsProxyTest(reqType); AwsProxyRequestBuilder request = new AwsProxyRequestBuilder("/echo/list-query-string", "GET") - .json() - .queryString("list", "v1,v2,v3"); + .json() + .queryString("list", "v1,v2,v3"); AwsProxyResponse output = executeRequest(request, lambdaContext); assertEquals(200, output.getStatusCode()); @@ -181,13 +188,15 @@ public void queryString_listParameter_expectCorrectLength() { validateSingleValueModel(output, "3"); } - @Test - public void queryString_multiParam_expectCorrectValueCount() + @MethodSource("data") + @ParameterizedTest + void queryString_multiParam_expectCorrectValueCount(String reqType) throws IOException { + initSpringAwsProxyTest(reqType); AwsProxyRequestBuilder request = new AwsProxyRequestBuilder("/echo/multivalue-query-string", "GET") - .json() - .queryString("multiple", "first") - .queryString("multiple", "second"); + .json() + .queryString("multiple", "first") + .queryString("multiple", "second"); AwsProxyResponse output = executeRequest(request, lambdaContext); assertEquals(200, output.getStatusCode()); @@ -198,36 +207,42 @@ public void queryString_multiParam_expectCorrectValueCount() assertTrue(response.getValues().containsKey("second")); } - @Test - public void dateHeader_notModified_expect304() { + @MethodSource("data") + @ParameterizedTest + void dateHeader_notModified_expect304(String reqType) { + initSpringAwsProxyTest(reqType); AwsProxyRequestBuilder request = new AwsProxyRequestBuilder("/echo/last-modified", "GET") - .json() - .header( - HttpHeaders.IF_MODIFIED_SINCE, - DateTimeFormatter.RFC_1123_DATE_TIME.format(ZonedDateTime.now().minus(1, ChronoUnit.SECONDS)) - ); + .json() + .header( + HttpHeaders.IF_MODIFIED_SINCE, + DateTimeFormatter.RFC_1123_DATE_TIME.format(ZonedDateTime.now().minus(1, ChronoUnit.SECONDS)) + ); AwsProxyResponse output = executeRequest(request, lambdaContext); assertEquals(304, output.getStatusCode()); assertEquals("", output.getBody()); } - @Test - public void dateHeader_notModified_expect200() { + @MethodSource("data") + @ParameterizedTest + void dateHeader_notModified_expect200(String reqType) { + initSpringAwsProxyTest(reqType); AwsProxyRequestBuilder request = new AwsProxyRequestBuilder("/echo/last-modified", "GET") - .json() - .header( - HttpHeaders.IF_MODIFIED_SINCE, - DateTimeFormatter.RFC_1123_DATE_TIME.format(ZonedDateTime.now().minus(5, ChronoUnit.DAYS)) - ); + .json() + .header( + HttpHeaders.IF_MODIFIED_SINCE, + DateTimeFormatter.RFC_1123_DATE_TIME.format(ZonedDateTime.now().minus(5, ChronoUnit.DAYS)) + ); AwsProxyResponse output = executeRequest(request, lambdaContext); assertEquals(200, output.getStatusCode()); assertEquals(EchoResource.STRING_BODY, output.getBody()); } - @Test - public void authorizer_securityContext_customPrincipalSuccess() { + @MethodSource("data") + @ParameterizedTest + void authorizer_securityContext_customPrincipalSuccess(String reqType) { + initSpringAwsProxyTest(reqType); assumeTrue("API_GW".equals(type)); AwsProxyRequestBuilder request = new AwsProxyRequestBuilder("/echo/authorizer-principal", "GET") .json() @@ -240,16 +255,20 @@ public void authorizer_securityContext_customPrincipalSuccess() { validateSingleValueModel(output, AUTHORIZER_PRINCIPAL_ID); } - @Test - public void errors_unknownRoute_expect404() { + @MethodSource("data") + @ParameterizedTest + void errors_unknownRoute_expect404(String reqType) { + initSpringAwsProxyTest(reqType); AwsProxyRequestBuilder request = new AwsProxyRequestBuilder("/echo/test33", "GET"); AwsProxyResponse output = executeRequest(request, lambdaContext); assertEquals(404, output.getStatusCode()); } - @Test - public void error_contentType_invalidContentType() { + @MethodSource("data") + @ParameterizedTest + void error_contentType_invalidContentType(String reqType) { + initSpringAwsProxyTest(reqType); AwsProxyRequestBuilder request = new AwsProxyRequestBuilder("/echo/json-body", "POST") .header("Content-Type", "application/octet-stream") .body("asdasdasd"); @@ -258,8 +277,10 @@ public void error_contentType_invalidContentType() { assertEquals(415, output.getStatusCode()); } - @Test - public void error_statusCode_methodNotAllowed() { + @MethodSource("data") + @ParameterizedTest + void error_statusCode_methodNotAllowed(String reqType) { + initSpringAwsProxyTest(reqType); AwsProxyRequestBuilder request = new AwsProxyRequestBuilder("/echo/status-code", "POST") .json() .queryString("status", "201"); @@ -268,19 +289,23 @@ public void error_statusCode_methodNotAllowed() { assertEquals(405, output.getStatusCode()); } - @Test - public void error_unauthenticatedCall_filterStepsRequest() { + @MethodSource("data") + @ParameterizedTest + void error_unauthenticatedCall_filterStepsRequest(String reqType) { + initSpringAwsProxyTest(reqType); AwsProxyRequestBuilder request = new AwsProxyRequestBuilder("/echo/status-code", "GET") - .header(UnauthenticatedFilter.HEADER_NAME, "1") - .json() - .queryString("status", "201"); + .header(UnauthenticatedFilter.HEADER_NAME, "1") + .json() + .queryString("status", "201"); AwsProxyResponse output = executeRequest(request, lambdaContext); assertEquals(401, output.getStatusCode()); } - @Test - public void responseBody_responseWriter_validBody() throws JsonProcessingException { + @MethodSource("data") + @ParameterizedTest + void responseBody_responseWriter_validBody(String reqType) throws JsonProcessingException { + initSpringAwsProxyTest(reqType); SingleValueModel singleValueModel = new SingleValueModel(); singleValueModel.setValue(CUSTOM_HEADER_VALUE); AwsProxyRequestBuilder request = new AwsProxyRequestBuilder("/echo/json-body", "POST") @@ -294,13 +319,15 @@ public void responseBody_responseWriter_validBody() throws JsonProcessingExcepti validateSingleValueModel(output, CUSTOM_HEADER_VALUE); } - @Test - public void responseBody_responseWriter_validBody_UTF() throws JsonProcessingException { + @MethodSource("data") + @ParameterizedTest + void responseBody_responseWriter_validBody_UTF(String reqType) throws JsonProcessingException { + initSpringAwsProxyTest(reqType); SingleValueModel singleValueModel = new SingleValueModel(); singleValueModel.setValue(UNICODE_VALUE); AwsProxyRequestBuilder request = new AwsProxyRequestBuilder("/echo/json-body", "POST") - .header("Content-Type", "application/json; charset=UTF-8") - .body(objectMapper.writeValueAsString(singleValueModel)); + .header("Content-Type", "application/json; charset=UTF-8") + .body(objectMapper.writeValueAsString(singleValueModel)); LambdaContainerHandler.getContainerConfig().setDefaultContentCharset("UTF-8"); AwsProxyResponse output = executeRequest(request, lambdaContext); assertEquals(200, output.getStatusCode()); @@ -309,8 +336,10 @@ public void responseBody_responseWriter_validBody_UTF() throws JsonProcessingExc LambdaContainerHandler.getContainerConfig().setDefaultContentCharset(ContainerConfig.DEFAULT_CONTENT_CHARSET); } - @Test - public void statusCode_responseStatusCode_customStatusCode() { + @MethodSource("data") + @ParameterizedTest + void statusCode_responseStatusCode_customStatusCode(String reqType) { + initSpringAwsProxyTest(reqType); AwsProxyRequestBuilder request = new AwsProxyRequestBuilder("/echo/status-code", "GET") .json() .queryString("status", "201"); @@ -319,8 +348,10 @@ public void statusCode_responseStatusCode_customStatusCode() { assertEquals(201, output.getStatusCode()); } - @Test - public void base64_binaryResponse_base64Encoding() { + @MethodSource("data") + @ParameterizedTest + void base64_binaryResponse_base64Encoding(String reqType) { + initSpringAwsProxyTest(reqType); AwsProxyRequestBuilder request = new AwsProxyRequestBuilder("/echo/binary", "GET"); AwsProxyResponse response = executeRequest(request, lambdaContext); @@ -328,11 +359,13 @@ public void base64_binaryResponse_base64Encoding() { assertTrue(Base64.isBase64(response.getBody())); } - @Test - public void injectBody_populatedResponse_noException() { + @MethodSource("data") + @ParameterizedTest + void injectBody_populatedResponse_noException(String reqType) { + initSpringAwsProxyTest(reqType); AwsProxyRequestBuilder request = new AwsProxyRequestBuilder("/echo/request-body", "POST") - .header(HttpHeaders.CONTENT_TYPE, "text/plain") - .body("This is a populated body"); + .header(HttpHeaders.CONTENT_TYPE, "text/plain") + .body("This is a populated body"); AwsProxyResponse response = executeRequest(request, lambdaContext); assertNotNull(response.getBody()); @@ -349,15 +382,17 @@ public void injectBody_populatedResponse_noException() { AwsProxyResponse emptyResp = executeRequest(emptyReq, lambdaContext); try { SingleValueModel output = objectMapper.readValue(emptyResp.getBody(), SingleValueModel.class); - assertEquals(null, output.getValue()); + assertNull(output.getValue()); } catch (IOException e) { e.printStackTrace(); fail(); } } - @Test - public void servletRequestEncoding_acceptEncoding_okStatusCode() { + @MethodSource("data") + @ParameterizedTest + void servletRequestEncoding_acceptEncoding_okStatusCode(String reqType) { + initSpringAwsProxyTest(reqType); SingleValueModel singleValueModel = new SingleValueModel(); singleValueModel.setValue(CUSTOM_HEADER_VALUE); AwsProxyRequestBuilder request = null; @@ -375,8 +410,10 @@ public void servletRequestEncoding_acceptEncoding_okStatusCode() { assertEquals(200, output.getStatusCode()); } - @Test - public void request_requestURI() { + @MethodSource("data") + @ParameterizedTest + void request_requestURI(String reqType) { + initSpringAwsProxyTest(reqType); AwsProxyRequestBuilder request = new AwsProxyRequestBuilder("/echo/request-URI", "GET"); AwsProxyResponse output = executeRequest(request, lambdaContext); @@ -385,8 +422,10 @@ public void request_requestURI() { validateSingleValueModel(output, "/echo/request-URI"); } - @Test - public void request_requestURL() { + @MethodSource("data") + @ParameterizedTest + void request_requestURL(String reqType) { + initSpringAwsProxyTest(reqType); AwsProxyRequestBuilder request = new AwsProxyRequestBuilder("/echo/request-url", "GET") .scheme("https") .serverName("api.myserver.com") @@ -398,12 +437,14 @@ public void request_requestURL() { validateSingleValueModel(output, "https://api.myserver.com/echo/request-url"); } - @Test - public void request_encodedPath_returnsDecodedPath() { + @MethodSource("data") + @ParameterizedTest + void request_encodedPath_returnsDecodedPath(String reqType) { + initSpringAwsProxyTest(reqType); AwsProxyRequestBuilder request = new AwsProxyRequestBuilder("/echo/encoded-request-uri/Some%20Thing", "GET") - .scheme("https") - .serverName("api.myserver.com") - .stage("prod"); + .scheme("https") + .serverName("api.myserver.com") + .stage("prod"); AwsProxyResponse output = executeRequest(request, lambdaContext); assertEquals(200, output.getStatusCode()); @@ -412,13 +453,15 @@ public void request_encodedPath_returnsDecodedPath() { } - @Test - public void contextPath_generateLink_returnsCorrectPath() { + @MethodSource("data") + @ParameterizedTest + void contextPath_generateLink_returnsCorrectPath(String reqType) { + initSpringAwsProxyTest(reqType); assumeFalse("ALB".equals(type)); AwsProxyRequestBuilder request = new AwsProxyRequestBuilder("/echo/generate-uri", "GET") - .scheme("https") - .serverName("api.myserver.com") - .stage("prod"); + .scheme("https") + .serverName("api.myserver.com") + .stage("prod"); LambdaContainerHandler.getContainerConfig().addCustomDomain("api.myserver.com"); SpringLambdaContainerHandler.getContainerConfig().setUseStageAsServletContext(true); @@ -432,11 +475,13 @@ public void contextPath_generateLink_returnsCorrectPath() { SpringLambdaContainerHandler.getContainerConfig().setUseStageAsServletContext(false); } - @Test - public void multipart_getFileName_returnsCorrectFileName() + @MethodSource("data") + @ParameterizedTest + void multipart_getFileName_returnsCorrectFileName(String reqType) throws IOException { + initSpringAwsProxyTest(reqType); AwsProxyRequestBuilder request = new AwsProxyRequestBuilder("/echo/attachment", "POST") - .formFilePart("testFile", "myFile.txt", "hello".getBytes()); + .formFilePart("testFile", "myFile.txt", "hello".getBytes()); AwsProxyResponse output = executeRequest(request, lambdaContext); assertEquals(200, output.getStatusCode()); diff --git a/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/SpringServletContextTest.java b/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/SpringServletContextTest.java index 15e9c5b4e..cfc39b845 100644 --- a/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/SpringServletContextTest.java +++ b/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/SpringServletContextTest.java @@ -11,8 +11,8 @@ import com.amazonaws.serverless.proxy.spring.echoapp.CustomHeaderFilter; import com.amazonaws.serverless.proxy.spring.echoapp.EchoSpringAppConfig; import com.amazonaws.serverless.proxy.spring.echoapp.model.ValidatedUserModel; -import org.junit.BeforeClass; -import org.junit.Test; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; @@ -22,7 +22,7 @@ import java.util.EnumSet; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.*; // we don't use the spring annotations to pretend we are running in the actual container public class SpringServletContextTest { @@ -31,7 +31,7 @@ public class SpringServletContextTest { private static SpringLambdaContainerHandler handler; - @BeforeClass + @BeforeAll public static void setUp() { try { handler = SpringLambdaContainerHandler.getAwsProxyHandler(EchoSpringAppConfig.class); @@ -49,7 +49,7 @@ public static void setUp() { } @Test - public void context_autowireValidContext_echoContext() { + void context_autowireValidContext_echoContext() { AwsProxyRequest request = new AwsProxyRequestBuilder("/echo/servlet-context", "GET") .json() .stage(STAGE) @@ -62,7 +62,7 @@ public void context_autowireValidContext_echoContext() { } @Test - public void context_contextAware_contextEcho() { + void context_contextAware_contextEcho() { AwsProxyRequest request = new AwsProxyRequestBuilder("/context/echo", "GET") .json() .stage(STAGE) @@ -75,7 +75,7 @@ public void context_contextAware_contextEcho() { } @Test - public void filter_customHeaderFilter_echoHeaders() { + void filter_customHeaderFilter_echoHeaders() { AwsProxyRequest request = new AwsProxyRequestBuilder("/echo/headers", "GET") .json() .stage(STAGE) @@ -89,7 +89,7 @@ public void filter_customHeaderFilter_echoHeaders() { } @Test - public void filter_validationFilter_emptyName() { + void filter_validationFilter_emptyName() { ValidatedUserModel userModel = new ValidatedUserModel(); userModel.setFirstName("Test"); AwsProxyRequest request = new AwsProxyRequestBuilder("/context/user", "POST") @@ -102,11 +102,11 @@ public void filter_validationFilter_emptyName() { } @Test - public void exception_populatedException_annotationValuesMappedCorrectly() { + void exception_populatedException_annotationValuesMappedCorrectly() { AwsProxyRequest request = new AwsProxyRequestBuilder("/context/exception", "GET") - .stage(STAGE) - .header(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON_VALUE) - .build(); + .stage(STAGE) + .header(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON_VALUE) + .build(); AwsProxyResponse output = handler.proxy(request, lambdaContext); @@ -115,11 +115,11 @@ public void exception_populatedException_annotationValuesMappedCorrectly() { } @Test - public void cookie_injectInResponse_expectCustomSetCookie() { + void cookie_injectInResponse_expectCustomSetCookie() { AwsProxyRequest request = new AwsProxyRequestBuilder("/context/cookie", "GET") - .stage(STAGE) - .header(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON_VALUE) - .build(); + .stage(STAGE) + .header(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON_VALUE) + .build(); AwsProxyResponse output = handler.proxy(request, lambdaContext); diff --git a/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/StaticAppProxyTest.java b/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/StaticAppProxyTest.java index 38d3e3d22..d2b74b26a 100644 --- a/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/StaticAppProxyTest.java +++ b/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/StaticAppProxyTest.java @@ -8,12 +8,13 @@ import com.amazonaws.serverless.proxy.internal.testutils.MockLambdaContext; import com.amazonaws.serverless.proxy.spring.staticapp.LambdaHandler; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.springframework.http.HttpHeaders; import javax.ws.rs.core.MediaType; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; public class StaticAppProxyTest { @@ -21,7 +22,7 @@ public class StaticAppProxyTest { private LambdaHandler lambdaHandler = new LambdaHandler(); @Test - public void staticPage() { + void staticPage() { AwsProxyRequest req = new AwsProxyRequestBuilder("/sample/page", "GET").build(); // we temporarily allow the container to read from any path LambdaContainerHandler.getContainerConfig().addValidFilePath("/"); diff --git a/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/extensibility/CustomServletTest.java b/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/extensibility/CustomServletTest.java index 9cac0aa1f..dd3d3fd71 100644 --- a/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/extensibility/CustomServletTest.java +++ b/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/extensibility/CustomServletTest.java @@ -2,26 +2,26 @@ import com.amazonaws.serverless.proxy.internal.testutils.AwsProxyRequestBuilder; import com.amazonaws.serverless.proxy.internal.testutils.MockLambdaContext; -import org.junit.Test; +import org.junit.jupiter.api.Test; import javax.ws.rs.HttpMethod; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertTrue; public class CustomServletTest { @Test - public void customServlet() throws IOException { + void customServlet() throws IOException { StreamLambdaHandler lambdaHandler = new StreamLambdaHandler(); InputStream requestStream = new AwsProxyRequestBuilder("/test", HttpMethod.GET) .buildStream(); ByteArrayOutputStream responseStream = new ByteArrayOutputStream(); lambdaHandler.handleRequest(requestStream, responseStream, new MockLambdaContext()); - assertTrue("response should contain value set in CustomServlet", - responseStream.toString().contains("Unittest")); + assertTrue(responseStream.toString().contains("Unittest"), + "response should contain value set in CustomServlet"); } } diff --git a/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/profile/SpringProfileTest.java b/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/profile/SpringProfileTest.java index 727a4cdc4..7742db7f6 100644 --- a/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/profile/SpringProfileTest.java +++ b/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/profile/SpringProfileTest.java @@ -9,19 +9,19 @@ import com.amazonaws.serverless.proxy.spring.echoapp.EchoSpringAppConfig; import com.amazonaws.serverless.proxy.spring.echoapp.model.MapResponseModel; import com.fasterxml.jackson.databind.ObjectMapper; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.TestExecutionListeners; -import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.context.junit.jupiter.SpringExtension; import org.springframework.test.context.support.DependencyInjectionTestExecutionListener; import org.springframework.test.context.web.WebAppConfiguration; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; -@RunWith(SpringJUnit4ClassRunner.class) +@ExtendWith(SpringExtension.class) @ContextConfiguration(classes = EchoSpringAppConfig.class) @WebAppConfiguration @TestExecutionListeners(inheritListeners = false, listeners = {DependencyInjectionTestExecutionListener.class}) @@ -32,13 +32,13 @@ public class SpringProfileTest { @Autowired private MockLambdaContext lambdaContext; - @Before + @BeforeEach public void clearServletContextCache() { AwsServletContext.clearServletContextCache(); } @Test - public void profile_defaultProfile() throws Exception { + void profile_defaultProfile() throws Exception { AwsProxyRequest request = new AwsProxyRequestBuilder("/profile/spring-properties", "GET") .build(); @@ -54,7 +54,7 @@ public void profile_defaultProfile() throws Exception { } @Test - public void profile_overrideProfile() throws Exception { + void profile_overrideProfile() throws Exception { AwsProxyRequest request = new AwsProxyRequestBuilder("/profile/spring-properties", "GET") .build(); SpringLambdaContainerHandler handler = SpringLambdaContainerHandler.getAwsProxyHandler(EchoSpringAppConfig.class); diff --git a/aws-serverless-java-container-springboot2/pom.xml b/aws-serverless-java-container-springboot2/pom.xml index 8768c373c..31e90b99e 100644 --- a/aws-serverless-java-container-springboot2/pom.xml +++ b/aws-serverless-java-container-springboot2/pom.xml @@ -159,6 +159,11 @@ 6.2.1.Final test + + org.junit.jupiter + junit-jupiter + test + javax.activation @@ -219,7 +224,7 @@ org.apache.maven.plugins maven-surefire-plugin - 2.9 + 2.22.2 always diff --git a/aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/SecurityAppTest.java b/aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/SecurityAppTest.java index e9682d4c4..e322e1a67 100644 --- a/aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/SecurityAppTest.java +++ b/aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/SecurityAppTest.java @@ -6,13 +6,13 @@ import com.amazonaws.serverless.proxy.model.AwsProxyResponse; import com.amazonaws.serverless.proxy.spring.securityapp.LambdaHandler; import com.amazonaws.serverless.proxy.spring.securityapp.SecurityConfig; -import org.junit.Test; +import org.junit.jupiter.api.Test; import javax.ws.rs.core.HttpHeaders; import javax.ws.rs.core.MediaType; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; public class SecurityAppTest { @@ -24,7 +24,7 @@ public SecurityAppTest() { } @Test - public void helloRequest_withAuth_respondsWithSingleMessage() { + void helloRequest_withAuth_respondsWithSingleMessage() { AwsProxyRequest req = new AwsProxyRequestBuilder("/hello", "GET").build(); AwsProxyResponse resp = handler.handleRequest(req, lambdaContext); assertEquals(401, resp.getStatusCode()); diff --git a/aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/ServletAppTest.java b/aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/ServletAppTest.java index 7c80dc86b..f5e2e8185 100644 --- a/aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/ServletAppTest.java +++ b/aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/ServletAppTest.java @@ -8,10 +8,8 @@ import com.amazonaws.serverless.proxy.model.ContainerConfig; import com.amazonaws.serverless.proxy.spring.servletapp.*; import com.fasterxml.jackson.core.JsonProcessingException; -import org.junit.Assert; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; import javax.ws.rs.core.HttpHeaders; import javax.ws.rs.core.MediaType; @@ -23,9 +21,8 @@ import java.util.Collection; import java.util.stream.Collectors; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.*; -@RunWith(Parameterized.class) public class ServletAppTest { LambdaHandler handler; @@ -33,25 +30,28 @@ public class ServletAppTest { private String type; - @Parameterized.Parameters public static Collection data() { - return Arrays.asList(new Object[] { "API_GW", "ALB", "HTTP_API" }); + return Arrays.asList(new Object[]{"API_GW", "ALB", "HTTP_API"}); } - public ServletAppTest(String reqType) { + public void initServletAppTest(String reqType) { type = reqType; handler = new LambdaHandler(type); } - @Test - public void helloRequest_respondsWithSingleMessage() { + @MethodSource("data") + @ParameterizedTest + void helloRequest_respondsWithSingleMessage(String reqType) { + initServletAppTest(reqType); AwsProxyRequestBuilder req = new AwsProxyRequestBuilder("/hello", "GET"); AwsProxyResponse resp = handler.handleRequest(req, lambdaContext); - Assert.assertEquals(MessageController.HELLO_MESSAGE, resp.getBody()); + assertEquals(MessageController.HELLO_MESSAGE, resp.getBody()); } - @Test - public void validateRequest_invalidData_respondsWith400() { + @MethodSource("data") + @ParameterizedTest + void validateRequest_invalidData_respondsWith400(String reqType) { + initServletAppTest(reqType); UserData ud = new UserData(); AwsProxyRequestBuilder req = new AwsProxyRequestBuilder("/validate", "POST") .header(HttpHeaders.ACCEPT, MediaType.TEXT_PLAIN) @@ -79,8 +79,10 @@ public void validateRequest_invalidData_respondsWith400() { assertEquals(400, resp.getStatusCode()); } - @Test - public void messageObject_parsesObject_returnsCorrectMessage() { + @MethodSource("data") + @ParameterizedTest + void messageObject_parsesObject_returnsCorrectMessage(String reqType) { + initServletAppTest(reqType); AwsProxyRequestBuilder req = new AwsProxyRequestBuilder("/message", "POST") .json() .body(new MessageData("test message")); @@ -90,8 +92,10 @@ public void messageObject_parsesObject_returnsCorrectMessage() { assertEquals("test message", resp.getBody()); } - @Test - public void messageObject_propertiesInContentType_returnsCorrectMessage() { + @MethodSource("data") + @ParameterizedTest + void messageObject_propertiesInContentType_returnsCorrectMessage(String reqType) { + initServletAppTest(reqType); AwsProxyRequestBuilder req = new AwsProxyRequestBuilder("/message", "POST") .header(HttpHeaders.CONTENT_TYPE, "application/json;v=1") .header(HttpHeaders.ACCEPT, "application/json;v=1") @@ -102,8 +106,10 @@ public void messageObject_propertiesInContentType_returnsCorrectMessage() { assertEquals("test message", resp.getBody()); } - @Test - public void echoMessage_fileNameLikeParameter_returnsMessage() { + @MethodSource("data") + @ParameterizedTest + void echoMessage_fileNameLikeParameter_returnsMessage(String reqType) { + initServletAppTest(reqType); AwsProxyRequestBuilder req = new AwsProxyRequestBuilder("/echo/test.test.test", "GET"); AwsProxyResponse resp = handler.handleRequest(req, lambdaContext); assertNotNull(resp); @@ -111,8 +117,10 @@ public void echoMessage_fileNameLikeParameter_returnsMessage() { assertEquals("test.test.test", resp.getBody()); } - @Test - public void getUtf8String_returnsValidUtf8String() { + @MethodSource("data") + @ParameterizedTest + void getUtf8String_returnsValidUtf8String(String reqType) { + initServletAppTest(reqType); // We expect strings to come back as UTF-8 correctly because Spring itself will call the setCharacterEncoding // method on the response to set it to UTF- LambdaContainerHandler.getContainerConfig().setDefaultContentCharset(ContainerConfig.DEFAULT_CONTENT_CHARSET); @@ -125,18 +133,22 @@ public void getUtf8String_returnsValidUtf8String() { assertEquals(MessageController.UTF8_RESPONSE, resp.getBody()); } - @Test - public void getUtf8Json_returnsValidUtf8String() { + @MethodSource("data") + @ParameterizedTest + void getUtf8Json_returnsValidUtf8String(String reqType) { + initServletAppTest(reqType); LambdaContainerHandler.getContainerConfig().setDefaultContentCharset(ContainerConfig.DEFAULT_CONTENT_CHARSET); AwsProxyRequestBuilder req = new AwsProxyRequestBuilder("/content-type/jsonutf8", "GET"); AwsProxyResponse resp = handler.handleRequest(req, lambdaContext); assertNotNull(resp); assertEquals(200, resp.getStatusCode()); - assertEquals("{\"s\":\""+MessageController.UTF8_RESPONSE+"\"}", resp.getBody()); + assertEquals("{\"s\":\"" + MessageController.UTF8_RESPONSE + "\"}", resp.getBody()); } - @Test - public void stream_getUtf8String_returnsValidUtf8String() throws IOException { + @MethodSource("data") + @ParameterizedTest + void stream_getUtf8String_returnsValidUtf8String(String reqType) throws IOException { + initServletAppTest(reqType); LambdaContainerHandler.getContainerConfig().setDefaultContentCharset(ContainerConfig.DEFAULT_CONTENT_CHARSET); LambdaStreamHandler streamHandler = new LambdaStreamHandler(type); AwsProxyRequestBuilder reqBuilder = new AwsProxyRequestBuilder("/content-type/utf8", "GET") @@ -160,8 +172,10 @@ public void stream_getUtf8String_returnsValidUtf8String() throws IOException { assertEquals(MessageController.UTF8_RESPONSE, resp.getBody()); } - @Test - public void stream_getUtf8Json_returnsValidUtf8String() throws IOException { + @MethodSource("data") + @ParameterizedTest + void stream_getUtf8Json_returnsValidUtf8String(String reqType) throws IOException { + initServletAppTest(reqType); LambdaContainerHandler.getContainerConfig().setDefaultContentCharset(ContainerConfig.DEFAULT_CONTENT_CHARSET); LambdaStreamHandler streamHandler = new LambdaStreamHandler(type); AwsProxyRequestBuilder reqBuilder = new AwsProxyRequestBuilder("/content-type/jsonutf8", "GET"); @@ -181,19 +195,23 @@ public void stream_getUtf8Json_returnsValidUtf8String() throws IOException { AwsProxyResponse resp = LambdaContainerHandler.getObjectMapper().readValue(out.toByteArray(), AwsProxyResponse.class); assertNotNull(resp); assertEquals(200, resp.getStatusCode()); - assertEquals("{\"s\":\""+MessageController.UTF8_RESPONSE+"\"}", resp.getBody()); + assertEquals("{\"s\":\"" + MessageController.UTF8_RESPONSE + "\"}", resp.getBody()); } - @Test - public void springExceptionMapping_throw404Ex_expectMappedTo404() { + @MethodSource("data") + @ParameterizedTest + void springExceptionMapping_throw404Ex_expectMappedTo404(String reqType) { + initServletAppTest(reqType); AwsProxyRequestBuilder req = new AwsProxyRequestBuilder("/ex/customstatus", "GET"); AwsProxyResponse resp = handler.handleRequest(req, lambdaContext); assertNotNull(resp); assertEquals(404, resp.getStatusCode()); } - @Test - public void echoMessage_populatesSingleValueHeadersForHttpApiV2() { + @MethodSource("data") + @ParameterizedTest + void echoMessage_populatesSingleValueHeadersForHttpApiV2(String reqType) { + initServletAppTest(reqType); AwsProxyRequestBuilder req = new AwsProxyRequestBuilder("/message", "POST") .header(HttpHeaders.CONTENT_TYPE, "application/json;v=1") .header(HttpHeaders.ACCEPT, "application/json;v=1") diff --git a/aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/SlowAppTest.java b/aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/SlowAppTest.java index 8dabc5f66..f5e83e85e 100644 --- a/aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/SlowAppTest.java +++ b/aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/SlowAppTest.java @@ -7,18 +7,17 @@ import com.amazonaws.serverless.proxy.spring.slowapp.LambdaHandler; import com.amazonaws.serverless.proxy.spring.slowapp.MessageController; import com.amazonaws.serverless.proxy.spring.slowapp.SlowTestApplication; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.time.Instant; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; public class SlowAppTest { @Test - public void slowAppInit_continuesInBackgroundThread_returnsCorrect() { + void slowAppInit_continuesInBackgroundThread_returnsCorrect() { LambdaHandler slowApp = new LambdaHandler(); System.out.println("Start time: " + slowApp.getConstructorTime()); assertTrue(slowApp.getConstructorTime() < 10_000); @@ -28,6 +27,6 @@ public void slowAppInit_continuesInBackgroundThread_returnsCorrect() { long endRequestTime = Instant.now().toEpochMilli(); assertTrue(endRequestTime - startRequestTime > SlowTestApplication.SlowDownInit.INIT_SLEEP_TIME_MS - 10_000); assertEquals(200, resp.getStatusCode()); - Assert.assertEquals(MessageController.HELLO_MESSAGE, resp.getBody()); + assertEquals(MessageController.HELLO_MESSAGE, resp.getBody()); } } diff --git a/aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/WebFluxAppTest.java b/aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/WebFluxAppTest.java index 811a1ab55..0a477ef0f 100644 --- a/aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/WebFluxAppTest.java +++ b/aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/WebFluxAppTest.java @@ -9,18 +9,15 @@ 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.Assert; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +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.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; -@RunWith(Parameterized.class) public class WebFluxAppTest { LambdaHandler handler; @@ -28,34 +25,39 @@ public class WebFluxAppTest { private String type; - @Parameterized.Parameters public static Collection data() { - return Arrays.asList(new Object[] { "API_GW", "ALB", "HTTP_API" }); + return Arrays.asList(new Object[]{"API_GW", "ALB", "HTTP_API"}); } - public WebFluxAppTest(String reqType) { + public void initWebFluxAppTest(String reqType) { type = reqType; handler = new LambdaHandler(type); } - @Test - public void helloRequest_respondsWithSingleMessage() { + @MethodSource("data") + @ParameterizedTest + void helloRequest_respondsWithSingleMessage(String reqType) { + initWebFluxAppTest(reqType); AwsProxyRequestBuilder req = new AwsProxyRequestBuilder("/single", "GET"); AwsProxyResponse resp = handler.handleRequest(req, lambdaContext); System.out.println(resp.getBody()); - Assert.assertEquals(MessageController.MESSAGE, resp.getBody()); + assertEquals(MessageController.MESSAGE, resp.getBody()); } - @Test - public void helloDoubleRequest_respondsWithDoubleMessage() { + @MethodSource("data") + @ParameterizedTest + void helloDoubleRequest_respondsWithDoubleMessage(String reqType) { + initWebFluxAppTest(reqType); AwsProxyRequestBuilder req = new AwsProxyRequestBuilder("/double", "GET"); AwsProxyResponse resp = handler.handleRequest(req, lambdaContext); assertEquals(MessageController.MESSAGE + MessageController.MESSAGE, resp.getBody()); } - @Test - public void messageObject_parsesObject_returnsCorrectMessage() throws JsonProcessingException { + @MethodSource("data") + @ParameterizedTest + void messageObject_parsesObject_returnsCorrectMessage(String reqType) throws JsonProcessingException { + initWebFluxAppTest(reqType); AwsProxyRequestBuilder req = new AwsProxyRequestBuilder("/message", "POST") .json() .body(new MessageData("test message")); diff --git a/aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/embedded/ServerlessServletEmbeddedServerFactoryTest.java b/aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/embedded/ServerlessServletEmbeddedServerFactoryTest.java index 11779420c..2fddcf0a5 100644 --- a/aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/embedded/ServerlessServletEmbeddedServerFactoryTest.java +++ b/aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/embedded/ServerlessServletEmbeddedServerFactoryTest.java @@ -9,14 +9,14 @@ import com.amazonaws.serverless.proxy.model.AwsProxyRequest; import com.amazonaws.serverless.proxy.model.AwsProxyResponse; import com.amazonaws.serverless.proxy.spring.SpringBootLambdaContainerHandler; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.springframework.boot.WebApplicationType; import org.springframework.boot.web.servlet.ServletContextInitializer; import javax.servlet.ServletContext; import javax.servlet.ServletException; -import static org.junit.Assert.fail; +import static org.junit.jupiter.api.Assertions.fail; public class ServerlessServletEmbeddedServerFactoryTest { private SpringBootLambdaContainerHandler handler = new SpringBootLambdaContainerHandler<>( @@ -35,7 +35,7 @@ public ServerlessServletEmbeddedServerFactoryTest() throws ContainerInitializati } @Test - public void getWebServer_callsInitializers() { + void getWebServer_callsInitializers() { ServerlessServletEmbeddedServerFactory factory = new ServerlessServletEmbeddedServerFactory(); factory.getWebServer(new ServletContextInitializer() { @Override diff --git a/aws-serverless-java-container-struts/pom.xml b/aws-serverless-java-container-struts/pom.xml index 9ba433706..7cac0a1ad 100644 --- a/aws-serverless-java-container-struts/pom.xml +++ b/aws-serverless-java-container-struts/pom.xml @@ -49,6 +49,12 @@ struts2-junit-plugin ${struts.version} test + + + junit + junit + + @@ -151,9 +157,9 @@ org.apache.maven.plugins maven-surefire-plugin - 2.9 + 2.22.2 - always + false 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 index eb890cf5b..d288e67e4 100644 --- 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 @@ -25,9 +25,8 @@ import com.fasterxml.jackson.databind.ObjectMapper; import org.apache.commons.codec.binary.Base64; import org.apache.struts2.StrutsRestTestCase; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; import javax.ws.rs.core.Response; import java.io.IOException; @@ -39,16 +38,15 @@ import java.util.Map; import java.util.UUID; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; -import static org.junit.Assume.assumeTrue; +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 */ -@RunWith(Parameterized.class) public class StrutsAwsProxyTest extends StrutsRestTestCase { private static final String CUSTOM_HEADER_KEY = "x-custom-header"; private static final String CUSTOM_HEADER_VALUE = "my-custom-value"; @@ -67,15 +65,14 @@ public class StrutsAwsProxyTest extends StrutsRestTestCase { private final StrutsLambdaContainerHandler httpApiHandler = StrutsLambdaContainerHandler .getHttpApiV2ProxyHandler(); private final Context lambdaContext = new MockLambdaContext(); - private final String type; + private String type; - public StrutsAwsProxyTest(String reqType) { + public void initStrutsAwsProxyTest(String reqType) { type = reqType; } - @Parameterized.Parameters public static Collection data() { - return Arrays.asList(new Object[] { "API_GW", "ALB", "HTTP_API" }); + return Arrays.asList(new Object[]{"API_GW", "ALB", "HTTP_API"}); } private AwsProxyResponse executeRequest(AwsProxyRequestBuilder requestBuilder, Context lambdaContext) { @@ -90,9 +87,11 @@ private AwsProxyResponse executeRequest(AwsProxyRequestBuilder requestBuilder, C throw new RuntimeException("Unknown request type: " + type); } } - - @Test - public void headers_getHeaders_echo() { + + @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) @@ -105,8 +104,10 @@ public void headers_getHeaders_echo() { validateMapResponseModel(output); } - @Test - public void context_servletResponse_setCustomHeader() { + @MethodSource("data") + @ParameterizedTest + void context_servletResponse_setCustomHeader(String reqType) { + initStrutsAwsProxyTest(reqType); AwsProxyRequestBuilder request = new AwsProxyRequestBuilder("/echo", HTTP_METHOD_GET) .queryString("customHeader", "true") .json(); @@ -116,8 +117,10 @@ public void context_servletResponse_setCustomHeader() { assertTrue(output.getMultiValueHeaders().containsKey("XX")); } - @Test - public void context_serverInfo_correctContext() { + @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") @@ -130,8 +133,10 @@ public void context_serverInfo_correctContext() { validateSingleValueModel(output, "Hello Struts2"); } - @Test - public void queryString_uriInfo_echo() { + @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) @@ -145,8 +150,10 @@ public void queryString_uriInfo_echo() { validateMapResponseModel(output); } - @Test - public void requestScheme_valid_expectHttps() { + @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) @@ -159,8 +166,10 @@ public void requestScheme_valid_expectHttps() { validateSingleValueModel(output, "https"); } - @Test - public void authorizer_securityContext_customPrincipalSuccess() { + @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") @@ -174,16 +183,20 @@ public void authorizer_securityContext_customPrincipalSuccess() { validateSingleValueModel(output, AUTHORIZER_PRINCIPAL_ID); } - @Test - public void errors_unknownRoute_expect404() { + @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()); } - @Test - public void error_contentType_invalidContentType() { + @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") @@ -193,8 +206,10 @@ public void error_contentType_invalidContentType() { assertEquals(415, output.getStatusCode()); } - @Test - public void error_statusCode_methodNotAllowed() { + @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(); @@ -204,8 +219,10 @@ public void error_statusCode_methodNotAllowed() { } - @Test - public void responseBody_responseWriter_validBody() throws JsonProcessingException { + @MethodSource("data") + @ParameterizedTest + void responseBody_responseWriter_validBody(String reqType) throws JsonProcessingException { + initStrutsAwsProxyTest(reqType); Map value = new HashMap<>(); value.put(QUERY_STRING_KEY, CUSTOM_HEADER_VALUE); AwsProxyRequestBuilder request = new AwsProxyRequestBuilder("/echo", "POST") @@ -219,8 +236,10 @@ public void responseBody_responseWriter_validBody() throws JsonProcessingExcepti validateSingleValueModel(output, "{\"message\":\"my-custom-value\"}"); } - @Test - public void statusCode_responseStatusCode_customStatusCode() { + @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") @@ -230,8 +249,10 @@ public void statusCode_responseStatusCode_customStatusCode() { assertEquals(201, output.getStatusCode()); } - @Test - public void base64_binaryResponse_base64Encoding() { + @MethodSource("data") + @ParameterizedTest + void base64_binaryResponse_base64Encoding(String reqType) { + initStrutsAwsProxyTest(reqType); AwsProxyRequestBuilder request = new AwsProxyRequestBuilder("/echo", HTTP_METHOD_GET); AwsProxyResponse response = executeRequest(request, lambdaContext); @@ -239,8 +260,10 @@ public void base64_binaryResponse_base64Encoding() { assertTrue(Base64.isBase64(response.getBody())); } - @Test - public void exception_mapException_mapToNotImplemented() { + @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"); @@ -250,8 +273,10 @@ public void exception_mapException_mapToNotImplemented() { assertEquals(Response.Status.NOT_IMPLEMENTED.getStatusCode(), response.getStatusCode()); } - @Test - public void stripBasePath_route_shouldRouteCorrectly() { + @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"); @@ -262,8 +287,10 @@ public void stripBasePath_route_shouldRouteCorrectly() { handler.stripBasePath(""); } - @Test - public void stripBasePath_route_shouldReturn404() { + @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"); @@ -273,8 +300,10 @@ public void stripBasePath_route_shouldReturn404() { handler.stripBasePath(""); } - @Test - public void securityContext_injectPrincipal_expectPrincipalName() { + @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") @@ -285,8 +314,10 @@ public void securityContext_injectPrincipal_expectPrincipalName() { validateSingleValueModel(resp, USER_PRINCIPAL); } - @Test - public void queryParam_encoding_expectUnencodedParam() { + @MethodSource("data") + @ParameterizedTest + void queryParam_encoding_expectUnencodedParam(String reqType) { + initStrutsAwsProxyTest(reqType); assumeTrue("API_GW".equals(type)); String paramValue = "p%2Fz%2B3"; String decodedParam = ""; @@ -303,8 +334,10 @@ public void queryParam_encoding_expectUnencodedParam() { validateSingleValueModel(resp, decodedParam); } - @Test - public void queryParam_encoding_expectEncodedParam() { + @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); diff --git a/pom.xml b/pom.xml index d5ff104b2..3e997e5ec 100644 --- a/pom.xml +++ b/pom.xml @@ -84,15 +84,27 @@ 7.3.0 2.14.0 2.0.3 + 5.9.1 + 4.4.0 + 1.3 UTF-8 - junit - junit - 4.13.2 + org.junit.jupiter + junit-jupiter-api + test + + + org.junit.jupiter + junit-jupiter-engine + test + + + org.junit.jupiter + junit-jupiter-params test @@ -114,8 +126,15 @@ org.mockito - mockito-all - 1.10.19 + mockito-core + ${mockito.version} + test + + + + org.hamcrest + hamcrest-all + ${hamcrest.version} test @@ -128,6 +147,18 @@ + + + + org.junit + junit-bom + ${junit.version} + import + pom + + + + From d84a418b9fe9bcf58b21e843ca91863680b09ab9 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Thu, 8 Dec 2022 13:00:41 +0100 Subject: [PATCH 006/623] chore(deps): Explicitly add more recent commons-io version (#488) --- aws-serverless-java-container-core/pom.xml | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml index 0e777b78a..fb4d818cc 100644 --- a/aws-serverless-java-container-core/pom.xml +++ b/aws-serverless-java-container-core/pom.xml @@ -63,6 +63,11 @@ commons-fileupload 1.4 + + commons-io + commons-io + 2.11.0 + @@ -110,16 +115,6 @@ - - - - commons-io - commons-io - 2.11.0 - - - - From 4e85edcf079aa923558539d25c23ad5503b39f8c Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Thu, 8 Dec 2022 14:35:49 +0100 Subject: [PATCH 007/623] chore(deps): Update Struts dependency to 6.1.1 --- aws-serverless-java-container-struts/pom.xml | 13 +++++++++---- .../proxy/struts/StrutsAwsProxyTest.java | 2 +- .../resources/archetype-resources/build.gradle | 10 +++++----- .../main/resources/archetype-resources/pom.xml | 15 ++++----------- samples/struts/pet-store/build.gradle | 8 ++++---- samples/struts/pet-store/pom.xml | 2 +- 6 files changed, 24 insertions(+), 26 deletions(-) diff --git a/aws-serverless-java-container-struts/pom.xml b/aws-serverless-java-container-struts/pom.xml index 7cac0a1ad..c42747a7f 100644 --- a/aws-serverless-java-container-struts/pom.xml +++ b/aws-serverless-java-container-struts/pom.xml @@ -15,7 +15,7 @@ - 6.0.3 + 6.1.1 @@ -74,7 +74,7 @@ javax.el javax.el-api - 2.2.5 + 3.0.0 test @@ -86,9 +86,9 @@ - org.glassfish.web + org.glassfish javax.el - 2.2.6 + 3.0.0 test @@ -105,6 +105,11 @@ commons-text 1.10.0 + + commons-net + commons-net + 3.9.0 + 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 index d288e67e4..f48547241 100644 --- 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 @@ -24,7 +24,7 @@ import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; import org.apache.commons.codec.binary.Base64; -import org.apache.struts2.StrutsRestTestCase; +import org.apache.struts2.junit.StrutsRestTestCase; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; 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 d37db592f..acfa4baaf 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.0.3') { + implementation ('org.apache.struts:struts2-convention-plugin:6.1.1') { exclude group: 'org.apache.struts', module: 'struts2-core' } - implementation ('org.apache.struts:struts2-rest-plugin:6.0.3') { + implementation ('org.apache.struts:struts2-rest-plugin:6.1.1') { exclude group: 'org.apache.struts', module: 'struts2-core' } - implementation ('org.apache.struts:struts2-bean-validation-plugin:6.0.3') { + implementation ('org.apache.struts:struts2-bean-validation-plugin:6.1.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.0.3') { + implementation ('org.apache.struts:struts2-core:6.1.1') { exclude group: 'org.apache.logging.log4j', module: 'log4j-api' } implementation ('org.hibernate.validator:hibernate-validator:6.1.7.Final') @@ -42,7 +42,7 @@ dependencies { implementation ('com.amazonaws:aws-lambda-java-log4j2:1.5.1') testImplementation('junit:junit:4.13.2') - testImplementation('org.apache.struts:struts2-junit-plugin:6.0.3') { + testImplementation('org.apache.struts:struts2-junit-plugin:6.1.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 ef32c9b28..7c2710ca8 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,19 +15,12 @@ 1.8 1.8 - 6.0.3 + 6.1.1 2.14.0 4.13.2 2.19.0 - - - struts-staging - https://repository.apache.org/content/repositories/staging/ - - - com.amazonaws.serverless @@ -122,13 +115,13 @@ javax.el javax.el-api - 2.2.5 + 3.0.0 test - org.glassfish.web + org.glassfish javax.el - 2.2.6 + 3.0.0 test diff --git a/samples/struts/pet-store/build.gradle b/samples/struts/pet-store/build.gradle index f7d6af5e8..1de0a80e9 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.0.3', - 'org.apache.struts:struts2-rest-plugin:6.0.3', - 'org.apache.struts:struts2-bean-validation-plugin:6.0.3', - 'org.apache.struts:struts2-junit-plugin:6.0.3', + 'org.apache.struts:struts2-convention-plugin:6.1.1', + 'org.apache.struts:struts2-rest-plugin:6.1.1', + 'org.apache.struts:struts2-bean-validation-plugin:6.1.1', + 'org.apache.struts:struts2-junit-plugin:6.1.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 3f6b1d7b8..025229a45 100644 --- a/samples/struts/pet-store/pom.xml +++ b/samples/struts/pet-store/pom.xml @@ -26,7 +26,7 @@ 1.8 1.8 - 6.0.3 + 6.1.1 2.14.0 4.13.2 2.19.0 From 02d3633125e6d6160cfab04304e359ff8e44aa49 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Tue, 13 Dec 2022 15:25:06 +0100 Subject: [PATCH 008/623] chore(deps): Update lambda-java-core dependency to 1.2.2 --- aws-serverless-java-container-core/pom.xml | 2 +- .../src/main/resources/archetype-resources/build.gradle | 3 +-- .../src/main/resources/archetype-resources/pom.xml | 6 ------ samples/jersey/pet-store/build.gradle | 3 +-- samples/jersey/pet-store/pom.xml | 8 +------- samples/spring/pet-store/pom.xml | 8 +------- samples/struts/pet-store/pom.xml | 6 ------ 7 files changed, 5 insertions(+), 31 deletions(-) diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml index fb4d818cc..793c82338 100644 --- a/aws-serverless-java-container-core/pom.xml +++ b/aws-serverless-java-container-core/pom.xml @@ -25,7 +25,7 @@ com.amazonaws aws-lambda-java-core - 1.2.1 + 1.2.2 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 381bc42e6..4ca57d42e 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 @@ -7,8 +7,7 @@ repositories { dependencies { implementation ( - 'com.amazonaws:aws-lambda-java-core:1.2.1', - 'com.amazonaws.serverless:aws-serverless-java-container-jersey:[1.0,)', + 'com.amazonaws.serverless:aws-serverless-java-container-jersey:[1.9,)', 'com.fasterxml.jackson.core:jackson-databind:2.14.0', 'io.symphonia:lambda-logging:1.0.3' ) 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 7c2710ca8..691d65bc2 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 @@ -28,12 +28,6 @@ ${project.version} - - com.amazonaws - aws-lambda-java-core - 1.2.1 - - org.apache.struts struts2-convention-plugin diff --git a/samples/jersey/pet-store/build.gradle b/samples/jersey/pet-store/build.gradle index 10af02e06..7ed83d095 100644 --- a/samples/jersey/pet-store/build.gradle +++ b/samples/jersey/pet-store/build.gradle @@ -7,8 +7,7 @@ repositories { dependencies { implementation ( - 'com.amazonaws:aws-lambda-java-core:1.2.1', - 'com.amazonaws.serverless:aws-serverless-java-container-jersey:[1.0,)', + 'com.amazonaws.serverless:aws-serverless-java-container-jersey:[1.9,)', 'com.fasterxml.jackson.core:jackson-databind:2.14.0', 'io.symphonia:lambda-logging:1.0.3' ) diff --git a/samples/jersey/pet-store/pom.xml b/samples/jersey/pet-store/pom.xml index e24ad8223..fa317309c 100644 --- a/samples/jersey/pet-store/pom.xml +++ b/samples/jersey/pet-store/pom.xml @@ -34,13 +34,7 @@ com.amazonaws.serverless aws-serverless-java-container-jersey - [1.6,) - - - - com.amazonaws - aws-lambda-java-core - 1.2.1 + [1.9,) diff --git a/samples/spring/pet-store/pom.xml b/samples/spring/pet-store/pom.xml index 2d1a472f3..bffa8fcf3 100644 --- a/samples/spring/pet-store/pom.xml +++ b/samples/spring/pet-store/pom.xml @@ -35,13 +35,7 @@ com.amazonaws.serverless aws-serverless-java-container-spring - [1.6,) - - - - com.amazonaws - aws-lambda-java-core - 1.2.1 + [1.9,) diff --git a/samples/struts/pet-store/pom.xml b/samples/struts/pet-store/pom.xml index 025229a45..d2f597b29 100644 --- a/samples/struts/pet-store/pom.xml +++ b/samples/struts/pet-store/pom.xml @@ -39,12 +39,6 @@ [1.9,) - - com.amazonaws - aws-lambda-java-core - 1.2.1 - - org.apache.struts struts2-convention-plugin From 9430b36a67752b2071f17a5951ad7b7d70dc1cae Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Tue, 13 Dec 2022 16:35:42 +0100 Subject: [PATCH 009/623] chore(deps): update Jackson version to 2.14.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 4ca57d42e..c1756d92e 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:[1.9,)', - 'com.fasterxml.jackson.core:jackson-databind:2.14.0', + 'com.fasterxml.jackson.core:jackson-databind:2.14.1', 'io.symphonia:lambda-logging:1.0.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 2ae636fa1..dbb4cf12c 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 @@ 1.8 1.8 2.37 - 2.14.0 + 2.14.1 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 95cf50f90..780810c90 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.14.0', + 'com.fasterxml.jackson.core:jackson-databind:2.14.1', 'io.symphonia:lambda-logging:1.0.3' ) 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 0381379f0..9e1910aa1 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 @@ 1.8 1.8 - 2.14.0 + 2.14.1 2.9.1 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 3e53cd649..8921a0abf 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.19.0', 'org.apache.logging.log4j:log4j-api:2.19.0', 'org.apache.logging.log4j:log4j-slf4j-impl:2.19.0', - 'com.fasterxml.jackson.core:jackson-databind:2.14.0', + 'com.fasterxml.jackson.core:jackson-databind:2.14.1', '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 acfa4baaf..34373b60a 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.14.0') - implementation ('com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.14.0') + implementation ('com.fasterxml.jackson.core:jackson-databind:2.14.1') + implementation ('com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.14.1') implementation ('org.apache.logging.log4j:log4j-core:2.19.0') implementation ('org.apache.logging.log4j:log4j-api:2.19.0') implementation ('org.apache.logging.log4j:log4j-slf4j-impl:2.19.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 691d65bc2..d84ad1902 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 @@ 1.8 1.8 6.1.1 - 2.14.0 + 2.14.1 4.13.2 2.19.0 diff --git a/pom.xml b/pom.xml index 3e997e5ec..88f22abb6 100644 --- a/pom.xml +++ b/pom.xml @@ -82,7 +82,7 @@ 0.7 7.3.0 - 2.14.0 + 2.14.1 2.0.3 5.9.1 4.4.0 diff --git a/samples/jersey/pet-store/build.gradle b/samples/jersey/pet-store/build.gradle index 7ed83d095..ea8ee51d4 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:[1.9,)', - 'com.fasterxml.jackson.core:jackson-databind:2.14.0', + 'com.fasterxml.jackson.core:jackson-databind:2.14.1', 'io.symphonia:lambda-logging:1.0.3' ) diff --git a/samples/jersey/pet-store/pom.xml b/samples/jersey/pet-store/pom.xml index fa317309c..ce0baf4c0 100644 --- a/samples/jersey/pet-store/pom.xml +++ b/samples/jersey/pet-store/pom.xml @@ -27,7 +27,7 @@ 1.8 1.8 2.37 - 2.14.0 + 2.14.1 diff --git a/samples/spark/pet-store/build.gradle b/samples/spark/pet-store/build.gradle index 053d46ecd..5087400ce 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.14.0', + 'com.fasterxml.jackson.core:jackson-databind:2.14.1', 'io.symphonia:lambda-logging:1.0.3' ) } diff --git a/samples/spark/pet-store/pom.xml b/samples/spark/pet-store/pom.xml index e25f0f9e4..04915a2b2 100644 --- a/samples/spark/pet-store/pom.xml +++ b/samples/spark/pet-store/pom.xml @@ -26,7 +26,7 @@ 1.8 1.8 - 2.14.0 + 2.14.1 2.9.1 diff --git a/samples/spring/pet-store/build.gradle b/samples/spring/pet-store/build.gradle index 838afd6ab..7dc80b04a 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.19.0', 'org.apache.logging.log4j:log4j-api:2.19.0', 'org.apache.logging.log4j:log4j-slf4j-impl:2.19.0', - 'com.fasterxml.jackson.core:jackson-databind:2.14.0', + 'com.fasterxml.jackson.core:jackson-databind:2.14.1', '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 1de0a80e9..6aeff27df 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.14.0', - 'com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.14.0', + 'com.fasterxml.jackson.core:jackson-databind:2.14.1', + 'com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.14.1', 'org.apache.logging.log4j:log4j-core:2.19.0', 'org.apache.logging.log4j:log4j-api:2.19.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 d2f597b29..a1bf62595 100644 --- a/samples/struts/pet-store/pom.xml +++ b/samples/struts/pet-store/pom.xml @@ -27,7 +27,7 @@ 1.8 1.8 6.1.1 - 2.14.0 + 2.14.1 4.13.2 2.19.0 From fda6e1d2401b3879e214c0d3c19b5f82414ff9d7 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Tue, 13 Dec 2022 16:37:25 +0100 Subject: [PATCH 010/623] chore(deps): update SLF4J to 2.0.6 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 88f22abb6..5ccd7c99b 100644 --- a/pom.xml +++ b/pom.xml @@ -83,7 +83,7 @@ 0.7 7.3.0 2.14.1 - 2.0.3 + 2.0.6 5.9.1 4.4.0 1.3 From da1f403c5155d89a7e60c5d24dfcaf57a98b0e32 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Tue, 13 Dec 2022 16:53:28 +0100 Subject: [PATCH 011/623] chore(deps): Update Spring dependencies (framework to 5.3.24, security to 5.7.5, boot to 2.7.6) --- aws-serverless-java-container-core/pom.xml | 2 +- aws-serverless-java-container-spring/pom.xml | 4 ++-- aws-serverless-java-container-springboot2/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/springboot2/pet-store/build.gradle | 2 +- samples/springboot2/pet-store/pom.xml | 2 +- 11 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 793c82338..7e531095f 100644 --- a/aws-serverless-java-container-core/pom.xml +++ b/aws-serverless-java-container-core/pom.xml @@ -110,7 +110,7 @@ org.springframework.security spring-security-web - 5.7.4 + 5.7.5 test diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml index be0c1d9f0..4f6c60033 100644 --- a/aws-serverless-java-container-spring/pom.xml +++ b/aws-serverless-java-container-spring/pom.xml @@ -16,8 +16,8 @@ - 5.3.23 - 5.7.4 + 5.3.24 + 5.7.5 diff --git a/aws-serverless-java-container-springboot2/pom.xml b/aws-serverless-java-container-springboot2/pom.xml index 31e90b99e..98662d22b 100644 --- a/aws-serverless-java-container-springboot2/pom.xml +++ b/aws-serverless-java-container-springboot2/pom.xml @@ -15,9 +15,9 @@ 1.10-SNAPSHOT - 5.3.23 - 2.7.5 - 5.7.4 + 5.3.24 + 2.7.6 + 5.7.5 1.8 1.8 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 8921a0abf..24743ce1f 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:5.3.23', - 'org.springframework:spring-context:5.3.23', + 'org.springframework:spring-webmvc:5.3.24', + 'org.springframework:spring-context:5.3.24', 'com.amazonaws.serverless:aws-serverless-java-container-spring:[1.0,)', 'org.apache.logging.log4j:log4j-core:2.19.0', 'org.apache.logging.log4j:log4j-api:2.19.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 5491fbb62..69db642a0 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 @@ 1.8 1.8 - 5.3.23 + 5.3.24 4.13.2 2.19.0 diff --git a/aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/build.gradle index 73c0bdb60..bbf0b8707 100644 --- a/aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/build.gradle +++ b/aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/build.gradle @@ -8,7 +8,7 @@ repositories { dependencies { implementation ( - 'org.springframework.boot:spring-boot-starter-web:2.7.5', + 'org.springframework.boot:spring-boot-starter-web:2.7.6', 'com.amazonaws.serverless:aws-serverless-java-container-springboot2:[1.0,)', 'io.symphonia:lambda-logging:1.0.3' ) diff --git a/aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/pom.xml index 9a0b4123a..17a1419b9 100644 --- a/aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/pom.xml +++ b/aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/pom.xml @@ -16,7 +16,7 @@ org.springframework.boot spring-boot-starter-parent - 2.7.5 + 2.7.6 diff --git a/samples/spring/pet-store/build.gradle b/samples/spring/pet-store/build.gradle index 7dc80b04a..7d51cc703 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:5.3.23', - 'org.springframework:spring-context:5.3.23', + 'org.springframework:spring-webmvc:5.3.24', + 'org.springframework:spring-context:5.3.24', 'com.amazonaws.serverless:aws-serverless-java-container-spring:[1.0,)', 'org.apache.logging.log4j:log4j-core:2.19.0', 'org.apache.logging.log4j:log4j-api:2.19.0', diff --git a/samples/spring/pet-store/pom.xml b/samples/spring/pet-store/pom.xml index bffa8fcf3..4b54b0da5 100644 --- a/samples/spring/pet-store/pom.xml +++ b/samples/spring/pet-store/pom.xml @@ -26,7 +26,7 @@ 1.8 1.8 - 5.3.23 + 5.3.24 4.13.2 2.19.0 diff --git a/samples/springboot2/pet-store/build.gradle b/samples/springboot2/pet-store/build.gradle index 22989c9e9..c0dddba8a 100644 --- a/samples/springboot2/pet-store/build.gradle +++ b/samples/springboot2/pet-store/build.gradle @@ -8,7 +8,7 @@ repositories { dependencies { implementation ( - implementation('org.springframework.boot:spring-boot-starter-web:2.7.5') { + implementation('org.springframework.boot:spring-boot-starter-web:2.7.6') { exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat' }, 'com.amazonaws.serverless:aws-serverless-java-container-springboot2:[1.4,)', diff --git a/samples/springboot2/pet-store/pom.xml b/samples/springboot2/pet-store/pom.xml index 8f7150db7..bf9cf13f6 100644 --- a/samples/springboot2/pet-store/pom.xml +++ b/samples/springboot2/pet-store/pom.xml @@ -13,7 +13,7 @@ org.springframework.boot spring-boot-starter-parent - 2.7.5 + 2.7.6 From f170312f9834a2692eb38475b07323e26497d086 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Wed, 14 Dec 2022 08:53:18 +0100 Subject: [PATCH 012/623] chore(deps): Update Mockito dependency to 4.9.0 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 5ccd7c99b..319ab6f95 100644 --- a/pom.xml +++ b/pom.xml @@ -85,7 +85,7 @@ 2.14.1 2.0.6 5.9.1 - 4.4.0 + 4.9.0 1.3 UTF-8 From 2c038683af19698af01962be7974179ee0b27728 Mon Sep 17 00:00:00 2001 From: anmolk6 <65782524+anmolk6@users.noreply.github.com> Date: Wed, 14 Dec 2022 14:14:13 +0530 Subject: [PATCH 013/623] Fixing NullpointerException in case of non defined statusCode (#497) pdating AwsProxyHttpServletResponseWriter.java Fix provided for #497 This is to resolve NullPointerException when HttpStatusCode is not present in default enum Response.StatusType --- .../servlet/AwsProxyHttpServletResponseWriter.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletResponseWriter.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletResponseWriter.java index 524a36f96..b6061e1e7 100644 --- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletResponseWriter.java +++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletResponseWriter.java @@ -17,13 +17,13 @@ import com.amazonaws.serverless.proxy.ResponseWriter; import com.amazonaws.serverless.proxy.internal.LambdaContainerHandler; 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.Headers; import com.amazonaws.serverless.proxy.model.RequestSource; import com.amazonaws.services.lambda.runtime.Context; import javax.ws.rs.core.Response; +import javax.ws.rs.core.Response.Status; import java.util.Base64; import java.util.HashMap; @@ -74,8 +74,11 @@ public AwsProxyResponse writeResponse(AwsHttpServletResponse containerResponse, awsProxyResponse.setStatusCode(containerResponse.getStatus()); - if (containerResponse.getAwsProxyRequest() != null && containerResponse.getAwsProxyRequest().getRequestSource() == RequestSource.ALB) { - awsProxyResponse.setStatusDescription(containerResponse.getStatus() + " " + Response.Status.fromStatusCode(containerResponse.getStatus()).getReasonPhrase()); + Status responseStatus = Response.Status.fromStatusCode(containerResponse.getStatus()); + + if (containerResponse.getAwsProxyRequest() != null && containerResponse.getAwsProxyRequest().getRequestSource() == RequestSource.ALB + && responseStatus != null) { + awsProxyResponse.setStatusDescription(containerResponse.getStatus() + " " + responseStatus.getReasonPhrase()); } Timer.stop("SERVLET_RESPONSE_WRITE"); From 90671a8a9bbf282679f8033158a5f32b498fb8b9 Mon Sep 17 00:00:00 2001 From: deki Date: Wed, 14 Dec 2022 09:03:13 +0000 Subject: [PATCH 014/623] chore: release -prepare release aws-serverless-java-container-1.9.1 --- aws-serverless-java-container-core/pom.xml | 4 ++-- aws-serverless-java-container-jersey/pom.xml | 6 +++--- aws-serverless-java-container-spark/pom.xml | 6 +++--- aws-serverless-java-container-spring/pom.xml | 6 +++--- aws-serverless-java-container-springboot2/pom.xml | 6 +++--- aws-serverless-java-container-struts/pom.xml | 6 +++--- aws-serverless-jersey-archetype/pom.xml | 6 +++--- aws-serverless-spark-archetype/pom.xml | 6 +++--- aws-serverless-spring-archetype/pom.xml | 6 +++--- aws-serverless-springboot2-archetype/pom.xml | 6 +++--- aws-serverless-struts-archetype/pom.xml | 6 +++--- pom.xml | 4 ++-- 12 files changed, 34 insertions(+), 34 deletions(-) diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml index 7e531095f..cc5efc06a 100644 --- a/aws-serverless-java-container-core/pom.xml +++ b/aws-serverless-java-container-core/pom.xml @@ -6,12 +6,12 @@ AWS Serverless Java container support - Core Allows Java applications written for a servlet container to run in AWS Lambda https://aws.amazon.com/lambda - 1.10-SNAPSHOT + 1.9.1 com.amazonaws.serverless aws-serverless-java-container - 1.10-SNAPSHOT + 1.9.1 .. diff --git a/aws-serverless-java-container-jersey/pom.xml b/aws-serverless-java-container-jersey/pom.xml index 2d491078f..0419dc2e6 100644 --- a/aws-serverless-java-container-jersey/pom.xml +++ b/aws-serverless-java-container-jersey/pom.xml @@ -6,12 +6,12 @@ AWS Serverless Java container support - Jersey implementation Allows Java applications written for Jersey to run in AWS Lambda https://aws.amazon.com/lambda - 1.10-SNAPSHOT + 1.9.1 com.amazonaws.serverless aws-serverless-java-container - 1.10-SNAPSHOT + 1.9.1 .. @@ -24,7 +24,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 1.10-SNAPSHOT + 1.9.1 com.fasterxml.jackson.core diff --git a/aws-serverless-java-container-spark/pom.xml b/aws-serverless-java-container-spark/pom.xml index f5ea6b868..f6071ca50 100644 --- a/aws-serverless-java-container-spark/pom.xml +++ b/aws-serverless-java-container-spark/pom.xml @@ -6,12 +6,12 @@ AWS Serverless Java container support - Spark implementation Allows Java applications written for Spark to run in AWS Lambda https://aws.amazon.com/lambda - 1.10-SNAPSHOT + 1.9.1 com.amazonaws.serverless aws-serverless-java-container - 1.10-SNAPSHOT + 1.9.1 .. @@ -24,7 +24,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 1.10-SNAPSHOT + 1.9.1 diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml index 4f6c60033..49706b995 100644 --- a/aws-serverless-java-container-spring/pom.xml +++ b/aws-serverless-java-container-spring/pom.xml @@ -6,12 +6,12 @@ AWS Serverless Java container support - Spring implementation Allows Java applications written for the Spring framework to run in AWS Lambda https://aws.amazon.com/lambda - 1.10-SNAPSHOT + 1.9.1 com.amazonaws.serverless aws-serverless-java-container - 1.10-SNAPSHOT + 1.9.1 .. @@ -25,7 +25,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 1.10-SNAPSHOT + 1.9.1 diff --git a/aws-serverless-java-container-springboot2/pom.xml b/aws-serverless-java-container-springboot2/pom.xml index 98662d22b..8f7c4cbe3 100644 --- a/aws-serverless-java-container-springboot2/pom.xml +++ b/aws-serverless-java-container-springboot2/pom.xml @@ -3,7 +3,7 @@ aws-serverless-java-container com.amazonaws.serverless - 1.10-SNAPSHOT + 1.9.1 4.0.0 @@ -12,7 +12,7 @@ AWS Serverless Java container support - SpringBoot 2 implementation Allows Java applications written for SpringBoot 2 to run in AWS Lambda https://aws.amazon.com/lambda - 1.10-SNAPSHOT + 1.9.1 5.3.24 @@ -27,7 +27,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 1.10-SNAPSHOT + 1.9.1 diff --git a/aws-serverless-java-container-struts/pom.xml b/aws-serverless-java-container-struts/pom.xml index c42747a7f..ea9ea1ab2 100644 --- a/aws-serverless-java-container-struts/pom.xml +++ b/aws-serverless-java-container-struts/pom.xml @@ -6,12 +6,12 @@ AWS Serverless Java container support - Struts implementation Allows Java applications written for the Struts framework to run in AWS Lambda https://aws.amazon.com/lambda - 1.10-SNAPSHOT + 1.9.1 com.amazonaws.serverless aws-serverless-java-container - 1.10-SNAPSHOT + 1.9.1 @@ -23,7 +23,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 1.10-SNAPSHOT + 1.9.1 diff --git a/aws-serverless-jersey-archetype/pom.xml b/aws-serverless-jersey-archetype/pom.xml index c13c05869..264ee5bad 100644 --- a/aws-serverless-jersey-archetype/pom.xml +++ b/aws-serverless-jersey-archetype/pom.xml @@ -4,17 +4,17 @@ com.amazonaws.serverless aws-serverless-java-container - 1.10-SNAPSHOT + 1.9.1 com.amazonaws.serverless.archetypes aws-serverless-jersey-archetype - 1.10-SNAPSHOT + 1.9.1 maven-archetype https://github.com/awslabs/aws-serverless-java-container.git - HEAD + aws-serverless-java-container-1.9.1 diff --git a/aws-serverless-spark-archetype/pom.xml b/aws-serverless-spark-archetype/pom.xml index ca3ad3952..843a05bc4 100644 --- a/aws-serverless-spark-archetype/pom.xml +++ b/aws-serverless-spark-archetype/pom.xml @@ -4,17 +4,17 @@ com.amazonaws.serverless aws-serverless-java-container - 1.10-SNAPSHOT + 1.9.1 com.amazonaws.serverless.archetypes aws-serverless-spark-archetype - 1.10-SNAPSHOT + 1.9.1 maven-archetype https://github.com/awslabs/aws-serverless-java-container.git - HEAD + aws-serverless-java-container-1.9.1 diff --git a/aws-serverless-spring-archetype/pom.xml b/aws-serverless-spring-archetype/pom.xml index 83dc79743..24f665610 100644 --- a/aws-serverless-spring-archetype/pom.xml +++ b/aws-serverless-spring-archetype/pom.xml @@ -4,17 +4,17 @@ com.amazonaws.serverless aws-serverless-java-container - 1.10-SNAPSHOT + 1.9.1 com.amazonaws.serverless.archetypes aws-serverless-spring-archetype - 1.10-SNAPSHOT + 1.9.1 maven-archetype https://github.com/awslabs/aws-serverless-java-container.git - HEAD + aws-serverless-java-container-1.9.1 diff --git a/aws-serverless-springboot2-archetype/pom.xml b/aws-serverless-springboot2-archetype/pom.xml index 1e7279dbf..5b14469e9 100644 --- a/aws-serverless-springboot2-archetype/pom.xml +++ b/aws-serverless-springboot2-archetype/pom.xml @@ -4,17 +4,17 @@ com.amazonaws.serverless aws-serverless-java-container - 1.10-SNAPSHOT + 1.9.1 com.amazonaws.serverless.archetypes aws-serverless-springboot2-archetype - 1.10-SNAPSHOT + 1.9.1 maven-archetype https://github.com/awslabs/aws-serverless-java-container.git - HEAD + aws-serverless-java-container-1.9.1 diff --git a/aws-serverless-struts-archetype/pom.xml b/aws-serverless-struts-archetype/pom.xml index b91cfa4bd..eee02b4da 100644 --- a/aws-serverless-struts-archetype/pom.xml +++ b/aws-serverless-struts-archetype/pom.xml @@ -4,17 +4,17 @@ com.amazonaws.serverless aws-serverless-java-container - 1.10-SNAPSHOT + 1.9.1 com.amazonaws.serverless.archetypes aws-serverless-struts-archetype - 1.10-SNAPSHOT + 1.9.1 maven-archetype https://github.com/awslabs/aws-serverless-java-container.git - HEAD + aws-serverless-java-container-1.9.1 diff --git a/pom.xml b/pom.xml index 319ab6f95..3be7fe025 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.amazonaws.serverless aws-serverless-java-container pom - 1.10-SNAPSHOT + 1.9.1 AWS Serverless Java container A Java framework to run Spring, Spring Boot, Jersey, Spark, and Struts applications inside AWS Lambda https://github.com/awslabs/aws-serverless-java-container @@ -41,7 +41,7 @@ https://github.com/awslabs/aws-serverless-java-container scm:git:https://github.com/awslabs/aws-serverless-java-container.git - HEAD + aws-serverless-java-container-1.9.1 From 13a93a36a6283775e74ce7b56f1ab91cd0ddccb6 Mon Sep 17 00:00:00 2001 From: deki Date: Wed, 14 Dec 2022 09:03:16 +0000 Subject: [PATCH 015/623] chore: release -prepare for next development iteration --- aws-serverless-java-container-core/pom.xml | 4 ++-- aws-serverless-java-container-jersey/pom.xml | 6 +++--- aws-serverless-java-container-spark/pom.xml | 6 +++--- aws-serverless-java-container-spring/pom.xml | 6 +++--- aws-serverless-java-container-springboot2/pom.xml | 6 +++--- aws-serverless-java-container-struts/pom.xml | 6 +++--- aws-serverless-jersey-archetype/pom.xml | 6 +++--- aws-serverless-spark-archetype/pom.xml | 6 +++--- aws-serverless-spring-archetype/pom.xml | 6 +++--- aws-serverless-springboot2-archetype/pom.xml | 6 +++--- aws-serverless-struts-archetype/pom.xml | 6 +++--- pom.xml | 4 ++-- 12 files changed, 34 insertions(+), 34 deletions(-) diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml index cc5efc06a..7e531095f 100644 --- a/aws-serverless-java-container-core/pom.xml +++ b/aws-serverless-java-container-core/pom.xml @@ -6,12 +6,12 @@ AWS Serverless Java container support - Core Allows Java applications written for a servlet container to run in AWS Lambda https://aws.amazon.com/lambda - 1.9.1 + 1.10-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container - 1.9.1 + 1.10-SNAPSHOT .. diff --git a/aws-serverless-java-container-jersey/pom.xml b/aws-serverless-java-container-jersey/pom.xml index 0419dc2e6..2d491078f 100644 --- a/aws-serverless-java-container-jersey/pom.xml +++ b/aws-serverless-java-container-jersey/pom.xml @@ -6,12 +6,12 @@ AWS Serverless Java container support - Jersey implementation Allows Java applications written for Jersey to run in AWS Lambda https://aws.amazon.com/lambda - 1.9.1 + 1.10-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container - 1.9.1 + 1.10-SNAPSHOT .. @@ -24,7 +24,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 1.9.1 + 1.10-SNAPSHOT com.fasterxml.jackson.core diff --git a/aws-serverless-java-container-spark/pom.xml b/aws-serverless-java-container-spark/pom.xml index f6071ca50..f5ea6b868 100644 --- a/aws-serverless-java-container-spark/pom.xml +++ b/aws-serverless-java-container-spark/pom.xml @@ -6,12 +6,12 @@ AWS Serverless Java container support - Spark implementation Allows Java applications written for Spark to run in AWS Lambda https://aws.amazon.com/lambda - 1.9.1 + 1.10-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container - 1.9.1 + 1.10-SNAPSHOT .. @@ -24,7 +24,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 1.9.1 + 1.10-SNAPSHOT diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml index 49706b995..4f6c60033 100644 --- a/aws-serverless-java-container-spring/pom.xml +++ b/aws-serverless-java-container-spring/pom.xml @@ -6,12 +6,12 @@ AWS Serverless Java container support - Spring implementation Allows Java applications written for the Spring framework to run in AWS Lambda https://aws.amazon.com/lambda - 1.9.1 + 1.10-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container - 1.9.1 + 1.10-SNAPSHOT .. @@ -25,7 +25,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 1.9.1 + 1.10-SNAPSHOT diff --git a/aws-serverless-java-container-springboot2/pom.xml b/aws-serverless-java-container-springboot2/pom.xml index 8f7c4cbe3..98662d22b 100644 --- a/aws-serverless-java-container-springboot2/pom.xml +++ b/aws-serverless-java-container-springboot2/pom.xml @@ -3,7 +3,7 @@ aws-serverless-java-container com.amazonaws.serverless - 1.9.1 + 1.10-SNAPSHOT 4.0.0 @@ -12,7 +12,7 @@ AWS Serverless Java container support - SpringBoot 2 implementation Allows Java applications written for SpringBoot 2 to run in AWS Lambda https://aws.amazon.com/lambda - 1.9.1 + 1.10-SNAPSHOT 5.3.24 @@ -27,7 +27,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 1.9.1 + 1.10-SNAPSHOT diff --git a/aws-serverless-java-container-struts/pom.xml b/aws-serverless-java-container-struts/pom.xml index ea9ea1ab2..c42747a7f 100644 --- a/aws-serverless-java-container-struts/pom.xml +++ b/aws-serverless-java-container-struts/pom.xml @@ -6,12 +6,12 @@ AWS Serverless Java container support - Struts implementation Allows Java applications written for the Struts framework to run in AWS Lambda https://aws.amazon.com/lambda - 1.9.1 + 1.10-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container - 1.9.1 + 1.10-SNAPSHOT @@ -23,7 +23,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 1.9.1 + 1.10-SNAPSHOT diff --git a/aws-serverless-jersey-archetype/pom.xml b/aws-serverless-jersey-archetype/pom.xml index 264ee5bad..c13c05869 100644 --- a/aws-serverless-jersey-archetype/pom.xml +++ b/aws-serverless-jersey-archetype/pom.xml @@ -4,17 +4,17 @@ com.amazonaws.serverless aws-serverless-java-container - 1.9.1 + 1.10-SNAPSHOT com.amazonaws.serverless.archetypes aws-serverless-jersey-archetype - 1.9.1 + 1.10-SNAPSHOT maven-archetype https://github.com/awslabs/aws-serverless-java-container.git - aws-serverless-java-container-1.9.1 + HEAD diff --git a/aws-serverless-spark-archetype/pom.xml b/aws-serverless-spark-archetype/pom.xml index 843a05bc4..ca3ad3952 100644 --- a/aws-serverless-spark-archetype/pom.xml +++ b/aws-serverless-spark-archetype/pom.xml @@ -4,17 +4,17 @@ com.amazonaws.serverless aws-serverless-java-container - 1.9.1 + 1.10-SNAPSHOT com.amazonaws.serverless.archetypes aws-serverless-spark-archetype - 1.9.1 + 1.10-SNAPSHOT maven-archetype https://github.com/awslabs/aws-serverless-java-container.git - aws-serverless-java-container-1.9.1 + HEAD diff --git a/aws-serverless-spring-archetype/pom.xml b/aws-serverless-spring-archetype/pom.xml index 24f665610..83dc79743 100644 --- a/aws-serverless-spring-archetype/pom.xml +++ b/aws-serverless-spring-archetype/pom.xml @@ -4,17 +4,17 @@ com.amazonaws.serverless aws-serverless-java-container - 1.9.1 + 1.10-SNAPSHOT com.amazonaws.serverless.archetypes aws-serverless-spring-archetype - 1.9.1 + 1.10-SNAPSHOT maven-archetype https://github.com/awslabs/aws-serverless-java-container.git - aws-serverless-java-container-1.9.1 + HEAD diff --git a/aws-serverless-springboot2-archetype/pom.xml b/aws-serverless-springboot2-archetype/pom.xml index 5b14469e9..1e7279dbf 100644 --- a/aws-serverless-springboot2-archetype/pom.xml +++ b/aws-serverless-springboot2-archetype/pom.xml @@ -4,17 +4,17 @@ com.amazonaws.serverless aws-serverless-java-container - 1.9.1 + 1.10-SNAPSHOT com.amazonaws.serverless.archetypes aws-serverless-springboot2-archetype - 1.9.1 + 1.10-SNAPSHOT maven-archetype https://github.com/awslabs/aws-serverless-java-container.git - aws-serverless-java-container-1.9.1 + HEAD diff --git a/aws-serverless-struts-archetype/pom.xml b/aws-serverless-struts-archetype/pom.xml index eee02b4da..b91cfa4bd 100644 --- a/aws-serverless-struts-archetype/pom.xml +++ b/aws-serverless-struts-archetype/pom.xml @@ -4,17 +4,17 @@ com.amazonaws.serverless aws-serverless-java-container - 1.9.1 + 1.10-SNAPSHOT com.amazonaws.serverless.archetypes aws-serverless-struts-archetype - 1.9.1 + 1.10-SNAPSHOT maven-archetype https://github.com/awslabs/aws-serverless-java-container.git - aws-serverless-java-container-1.9.1 + HEAD diff --git a/pom.xml b/pom.xml index 3be7fe025..319ab6f95 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.amazonaws.serverless aws-serverless-java-container pom - 1.9.1 + 1.10-SNAPSHOT AWS Serverless Java container A Java framework to run Spring, Spring Boot, Jersey, Spark, and Struts applications inside AWS Lambda https://github.com/awslabs/aws-serverless-java-container @@ -41,7 +41,7 @@ https://github.com/awslabs/aws-serverless-java-container scm:git:https://github.com/awslabs/aws-serverless-java-container.git - aws-serverless-java-container-1.9.1 + HEAD From be15cfd056efc5de1ce2b8cc100db35879fad993 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Wed, 14 Dec 2022 10:39:29 +0100 Subject: [PATCH 016/623] chore(deps): Update OWASP dependency check to 7.4.1 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 319ab6f95..48f6ea9d3 100644 --- a/pom.xml +++ b/pom.xml @@ -81,7 +81,7 @@ 0.7 - 7.3.0 + 7.4.1 2.14.1 2.0.6 5.9.1 From 03db37c35242464ece681f4a49fba5af74d4a5b4 Mon Sep 17 00:00:00 2001 From: Artur Signell Date: Fri, 3 Feb 2023 14:40:46 +0200 Subject: [PATCH 017/623] fix: Write resources using the charset defined in a Content-Type header If a resource is returned using "application/javascript; charset=UTF-8" it should not be written as ISO-8859-1 --- .../internal/servlet/AwsHttpServletResponse.java | 6 +++++- .../servlet/AwsHttpServletResponseTest.java | 14 ++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) 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 63a2dca80..fc03922ce 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 @@ -213,7 +213,11 @@ public void addDateHeader(String s, long l) { @Override public void setHeader(String s, String s1) { if (!canSetHeader()) return; - setHeader(s, s1, true); + if ("Content-Type".equalsIgnoreCase(s)) { + setContentType(s1); + } else { + setHeader(s, s1, true); + } } 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 8a1d8f1e6..39fe7144b 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 @@ -12,6 +12,7 @@ import java.io.IOException; import java.io.PrintWriter; +import java.nio.charset.StandardCharsets; import java.text.ParseException; import java.text.SimpleDateFormat; import java.time.Instant; @@ -38,6 +39,7 @@ public class AwsHttpServletResponseTest { 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"; @Test void cookie_addCookie_verifyPath() { @@ -325,6 +327,18 @@ void characterEncoding_setCharacterEncodingInContentType_overridesDefault() { assertEquals("UTF-8", resp.getCharacterEncoding()); } + @Test + void characterEncoding_encodingInContentTypeHeader_writesCorrectData() throws IOException { + AwsHttpServletResponse resp = new AwsHttpServletResponse(null, new CountDownLatch(1)); + resp.setHeader("Content-Type", JAVASCRIPT_CONTENT_TYPE_WITH_CHARSET); + resp.getOutputStream().write("ü".getBytes(StandardCharsets.UTF_8)); + resp.flushBuffer(); + + assertEquals(JAVASCRIPT_CONTENT_TYPE_WITH_CHARSET, resp.getContentType()); + assertEquals(JAVASCRIPT_CONTENT_TYPE_WITH_CHARSET, resp.getHeader("Content-Type")); + assertEquals("ü",resp.getAwsResponseBodyString()); + } + private int getMaxAge(String header) { Matcher ageMatcher = MAX_AGE_PATTERN.matcher(header); assertTrue(ageMatcher.find()); From f1755de81b0de38c42722fcd16df94e0ea3b9988 Mon Sep 17 00:00:00 2001 From: Artur Signell Date: Fri, 3 Feb 2023 15:08:30 +0200 Subject: [PATCH 018/623] fix: Dispatch to the given servlet when using getNamedDispatcher --- .../servlet/AwsProxyRequestDispatcher.java | 7 ++- .../internal/servlet/AwsServletContext.java | 2 +- .../internal/servlet/FilterChainManager.java | 26 +++++++-- .../proxy/internal/testutils/MockServlet.java | 23 ++++++++ .../servlet/AwsFilterChainManagerTest.java | 53 ++++++++++++++++++- .../servlet/AwsServletContextTest.java | 18 +++---- 6 files changed, 111 insertions(+), 18 deletions(-) create mode 100644 aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/testutils/MockServlet.java diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyRequestDispatcher.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyRequestDispatcher.java index 27a352ebf..fc52d1dba 100644 --- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyRequestDispatcher.java +++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyRequestDispatcher.java @@ -80,7 +80,7 @@ public void forward(ServletRequest servletRequest, ServletResponse servletRespon } if (isNamedDispatcher) { - lambdaContainerHandler.doFilter((HttpServletRequest) servletRequest, (HttpServletResponse) servletResponse, getServlet((HttpServletRequest)servletRequest)); + lambdaContainerHandler.doFilter((HttpServletRequest) servletRequest, (HttpServletResponse) servletResponse, getServlet(dispatchTo)); return; } @@ -148,4 +148,9 @@ void setRequestPath(ServletRequest req, final String destinationPath) { private Servlet getServlet(HttpServletRequest req) { return ((AwsServletContext)lambdaContainerHandler.getServletContext()).getServletForPath(req.getPathInfo()); } + + private Servlet getServlet(String servletName) throws ServletException { + return ((AwsServletContext)lambdaContainerHandler.getServletContext()).getServlet(servletName); + } + } 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 864a9bf10..44ec701ee 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 @@ -171,7 +171,7 @@ public RequestDispatcher getRequestDispatcher(String s) { @Override public RequestDispatcher getNamedDispatcher(String s) { - throw new UnsupportedOperationException(); + return new AwsProxyRequestDispatcher(s, true, containerHandler); } 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 92ff55daf..1bf6f4b2a 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 @@ -132,7 +132,7 @@ FilterChainHolder getFilterChain(final HttpServletRequest request, Servlet servl chainHolder.addFilter(new FilterHolder(new ServletExecutionFilter(servletRegistration), servletContext)); } - putFilterChainCache(type, targetPath, chainHolder); + putFilterChainCache(type, targetPath, servlet, chainHolder); // update total filter size if (filtersSize != registrations.size()) { filtersSize = registrations.size(); @@ -151,13 +151,16 @@ FilterChainHolder getFilterChain(final HttpServletRequest request, Servlet servl * initialized with the cached list of {@link FilterHolder} objects * @param type The dispatcher type for the incoming request * @param targetPath The request path - this is extracted with the getPath method of the request object - * @param servlet Servlet to put at the end of the chain (optional). + * @param servlet The final servlet in the filter chain (if any) * @return A populated FilterChainHolder */ private FilterChainHolder getFilterChainCache(final DispatcherType type, final String targetPath, Servlet servlet) { TargetCacheKey key = new TargetCacheKey(); key.setDispatcherType(type); key.setTargetPath(targetPath); + if (servlet != null) { + key.setServletName(servlet.getServletConfig().getServletName()); + } if (!filterCache.containsKey(key)) { return null; @@ -174,12 +177,16 @@ private FilterChainHolder getFilterChainCache(final DispatcherType type, final S * method to retry this. * @param type DispatcherType from the incoming request * @param targetPath The target path in the API - * @param holder The FilterChainHolder object to save in the cache + * @param servlet The final servlet in the filter chain (if any) + * @param holder The FilterChainHolder object to save in the cache */ - private void putFilterChainCache(final DispatcherType type, final String targetPath, final FilterChainHolder holder) { + private void putFilterChainCache(final DispatcherType type, final String targetPath, Servlet servlet, final FilterChainHolder holder) { TargetCacheKey key = new TargetCacheKey(); key.setDispatcherType(type); key.setTargetPath(targetPath); + if (servlet != null) { + key.setServletName(servlet.getServletConfig().getServletName()); + } // we couldn't compute the hash code because either the target path or dispatcher type were null if (key.hashCode() == -1) { @@ -256,6 +263,7 @@ protected static class TargetCacheKey { private String targetPath; private DispatcherType dispatcherType; + private String servletName; //------------------------------------------------------------- @@ -295,10 +303,15 @@ public int hashCode() { } hashString += ":" + hashDispatcher; + if (servletName != null) { + hashString += ":" + servletName; + } + return hashString.hashCode(); } + @Override public boolean equals(Object key) { if (key == null) { @@ -324,6 +337,11 @@ void setTargetPath(String targetPath) { void setDispatcherType(DispatcherType dispatcherType) { this.dispatcherType = dispatcherType; } + public void setServletName(String servletName) { + this.servletName = servletName; + } + + } @SuppressFBWarnings("URF_UNREAD_FIELD") diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/testutils/MockServlet.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/testutils/MockServlet.java new file mode 100644 index 000000000..b93625bfb --- /dev/null +++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/testutils/MockServlet.java @@ -0,0 +1,23 @@ +package com.amazonaws.serverless.proxy.internal.testutils; + +import java.io.IOException; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +public class MockServlet extends HttpServlet { + + private int serviceCalls = 0; + + @Override + protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + super.service(req, resp); + serviceCalls++; + } + + public int getServiceCalls() { + return serviceCalls; + } +} diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsFilterChainManagerTest.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsFilterChainManagerTest.java index 882aa085c..4eedc0f93 100644 --- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsFilterChainManagerTest.java +++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsFilterChainManagerTest.java @@ -2,6 +2,7 @@ import com.amazonaws.serverless.proxy.internal.testutils.AwsProxyRequestBuilder; import com.amazonaws.serverless.proxy.internal.testutils.MockLambdaContext; +import com.amazonaws.serverless.proxy.internal.testutils.MockServlet; import com.amazonaws.services.lambda.runtime.Context; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; @@ -17,6 +18,8 @@ import static org.junit.jupiter.api.Assertions.*; public class AwsFilterChainManagerTest { + private static final String SERVLET1_NAME = "Servlet 1"; + private static final String SERVLET2_NAME = "Servlet 2"; private static final String REQUEST_CUSTOM_ATTRIBUTE_NAME = "X-Custom-Attribute"; private static final String REQUEST_CUSTOM_ATTRIBUTE_VALUE = "CustomAttrValue"; @@ -36,6 +39,10 @@ public static void setUp() { reg2.addMappingForUrlPatterns(EnumSet.of(DispatcherType.REQUEST), true, "/second/*"); FilterRegistration.Dynamic reg3 = servletContext.addFilter("Filter3", new MockFilter()); reg3.addMappingForUrlPatterns(EnumSet.of(DispatcherType.REQUEST), true, "/third/fourth/*"); + ServletRegistration.Dynamic firstServlet = servletContext.addServlet(SERVLET1_NAME, new MockServlet()); + firstServlet.addMapping("/first/*"); + ServletRegistration.Dynamic secondServlet = servletContext.addServlet(SERVLET2_NAME, new MockServlet()); + secondServlet.addMapping("/second/*"); chainManager = new AwsFilterChainManager((AwsServletContext) servletContext); } @@ -88,6 +95,22 @@ void cacheKey_compare_differentDispatcher() { assertNotEquals(cacheKey, secondCacheKey); } + @Test + void cacheKey_compare_differentServlet() { + FilterChainManager.TargetCacheKey cacheKey = new FilterChainManager.TargetCacheKey(); + cacheKey.setDispatcherType(DispatcherType.REQUEST); + cacheKey.setTargetPath("/first/path"); + cacheKey.setServletName("Dispatcher servlet"); + + FilterChainManager.TargetCacheKey secondCacheKey = new FilterChainManager.TargetCacheKey(); + secondCacheKey.setDispatcherType(DispatcherType.REQUEST); + secondCacheKey.setTargetPath("/first/path"); + cacheKey.setServletName("Real servlet"); + + assertNotEquals(cacheKey.hashCode(), secondCacheKey.hashCode()); + assertNotEquals(cacheKey, secondCacheKey); + } + @Test void cacheKey_compare_additionalChars() { FilterChainManager.TargetCacheKey cacheKey = new FilterChainManager.TargetCacheKey(); @@ -154,7 +177,7 @@ void filterChain_matchMultipleTimes_expectSameMatch() { } @Test - void filerChain_executeMultipleFilters_expectRunEachTime() { + void filterChain_executeMultipleFilters_expectRunEachTime() { AwsProxyHttpServletRequest req = new AwsProxyHttpServletRequest( new AwsProxyRequestBuilder("/first/second", "GET").build(), lambdaContext, null ); @@ -204,6 +227,34 @@ void filerChain_executeMultipleFilters_expectRunEachTime() { assertEquals(REQUEST_CUSTOM_ATTRIBUTE_VALUE, req2.getAttribute(REQUEST_CUSTOM_ATTRIBUTE_NAME)); } + @Test + void filterChain_multipleServlets_callsCorrectServlet() throws IOException, ServletException { + MockServlet servlet1 = (MockServlet) servletContext.getServlet(SERVLET1_NAME); + ServletConfig servlet1Config = ((AwsServletRegistration) servletContext.getServletRegistration(SERVLET1_NAME)).getServletConfig(); + servlet1.init(servlet1Config); + + MockServlet servlet2 = (MockServlet) servletContext.getServlet(SERVLET2_NAME); + ServletConfig servlet2Config = ((AwsServletRegistration) servletContext.getServletRegistration(SERVLET2_NAME)).getServletConfig(); + servlet2.init(servlet2Config); + + AwsProxyHttpServletRequest req = new AwsProxyHttpServletRequest( + new AwsProxyRequestBuilder("/", "GET").build(), lambdaContext, null + ); + AwsHttpServletResponse resp = new AwsHttpServletResponse(req, new CountDownLatch(1)); + + FilterChainHolder servlet1filterChain = chainManager.getFilterChain(req, servlet1); + servlet1filterChain.doFilter(req, resp); + + assertEquals(1, servlet1.getServiceCalls()); + assertEquals(0, servlet2.getServiceCalls()); + + FilterChainHolder servlet2filterChain = chainManager.getFilterChain(req, servlet2); + servlet2filterChain.doFilter(req, resp); + + assertEquals(1, servlet1.getServiceCalls()); + assertEquals(1, servlet2.getServiceCalls()); + } + @Test void filterChain_getFilterChain_multipleFilters() { AwsProxyHttpServletRequest req = new AwsProxyHttpServletRequest( diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsServletContextTest.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsServletContextTest.java index 5c84bca30..35f6723b6 100644 --- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsServletContextTest.java +++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsServletContextTest.java @@ -13,12 +13,7 @@ import javax.servlet.http.HttpServletResponse; import java.io.File; -import java.io.FileNotFoundException; import java.io.IOException; -import java.io.PrintWriter; -import java.io.UnsupportedEncodingException; -import java.nio.file.Files; -import java.nio.file.Paths; import java.util.concurrent.CountDownLatch; import static org.junit.jupiter.api.Assertions.*; @@ -190,12 +185,7 @@ void unsupportedOperations_expectExceptions() { } catch (UnsupportedOperationException e) { exCount++; } - try { - STATIC_CTX.getNamedDispatcher("1"); - } catch (UnsupportedOperationException e) { - exCount++; - } - assertEquals(2, exCount); + assertEquals(1, exCount); assertNull(STATIC_CTX.getServletRegistration("1")); } @@ -232,6 +222,12 @@ void addServlet_callsDefaultConstructor() throws ServletException { assertEquals("", ((TestServlet)ctx.getServlet("srv1")).getId()); } + @Test + void getNamedDispatcher_returnsDispatcher() { + AwsServletContext ctx = new AwsServletContext(null); + assertNotNull(ctx.getNamedDispatcher("/hello")); + } + public static class TestServlet implements Servlet { private String id; From ff842c4f0f9177488014f8ffc3f3894a43a2d026 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Fri, 3 Feb 2023 16:13:12 +0100 Subject: [PATCH 019/623] chore(deps): Update Junit to 5.9.2 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 48f6ea9d3..6aaf501d5 100644 --- a/pom.xml +++ b/pom.xml @@ -84,7 +84,7 @@ 7.4.1 2.14.1 2.0.6 - 5.9.1 + 5.9.2 4.9.0 1.3 UTF-8 From 65d12c2f1335e7f63ddbce29fd2268c12c9b2b6a Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Fri, 3 Feb 2023 16:15:56 +0100 Subject: [PATCH 020/623] chore(deps): Update Spring dependencies (framework to 5.3.25, security to 5.7.6, boot to 2.7.8) --- aws-serverless-java-container-core/pom.xml | 2 +- aws-serverless-java-container-spring/pom.xml | 4 ++-- aws-serverless-java-container-springboot2/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/springboot2/pet-store/build.gradle | 2 +- samples/springboot2/pet-store/pom.xml | 2 +- 11 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 7e531095f..87bbb7927 100644 --- a/aws-serverless-java-container-core/pom.xml +++ b/aws-serverless-java-container-core/pom.xml @@ -110,7 +110,7 @@ org.springframework.security spring-security-web - 5.7.5 + 5.7.6 test diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml index 4f6c60033..4aa95970f 100644 --- a/aws-serverless-java-container-spring/pom.xml +++ b/aws-serverless-java-container-spring/pom.xml @@ -16,8 +16,8 @@ - 5.3.24 - 5.7.5 + 5.3.25 + 5.7.6 diff --git a/aws-serverless-java-container-springboot2/pom.xml b/aws-serverless-java-container-springboot2/pom.xml index 98662d22b..1d7fffd44 100644 --- a/aws-serverless-java-container-springboot2/pom.xml +++ b/aws-serverless-java-container-springboot2/pom.xml @@ -15,9 +15,9 @@ 1.10-SNAPSHOT - 5.3.24 - 2.7.6 - 5.7.5 + 5.3.25 + 2.7.8 + 5.7.6 1.8 1.8 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 24743ce1f..319a102d5 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:5.3.24', - 'org.springframework:spring-context:5.3.24', + 'org.springframework:spring-webmvc:5.3.25', + 'org.springframework:spring-context:5.3.25', 'com.amazonaws.serverless:aws-serverless-java-container-spring:[1.0,)', 'org.apache.logging.log4j:log4j-core:2.19.0', 'org.apache.logging.log4j:log4j-api:2.19.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 69db642a0..855e267d3 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 @@ 1.8 1.8 - 5.3.24 + 5.3.25 4.13.2 2.19.0 diff --git a/aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/build.gradle index bbf0b8707..b47ce60a8 100644 --- a/aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/build.gradle +++ b/aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/build.gradle @@ -8,7 +8,7 @@ repositories { dependencies { implementation ( - 'org.springframework.boot:spring-boot-starter-web:2.7.6', + 'org.springframework.boot:spring-boot-starter-web:2.7.8', 'com.amazonaws.serverless:aws-serverless-java-container-springboot2:[1.0,)', 'io.symphonia:lambda-logging:1.0.3' ) diff --git a/aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/pom.xml index 17a1419b9..b4ad6174f 100644 --- a/aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/pom.xml +++ b/aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/pom.xml @@ -16,7 +16,7 @@ org.springframework.boot spring-boot-starter-parent - 2.7.6 + 2.7.8 diff --git a/samples/spring/pet-store/build.gradle b/samples/spring/pet-store/build.gradle index 7d51cc703..057ca5c70 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:5.3.24', - 'org.springframework:spring-context:5.3.24', + 'org.springframework:spring-webmvc:5.3.25', + 'org.springframework:spring-context:5.3.25', 'com.amazonaws.serverless:aws-serverless-java-container-spring:[1.0,)', 'org.apache.logging.log4j:log4j-core:2.19.0', 'org.apache.logging.log4j:log4j-api:2.19.0', diff --git a/samples/spring/pet-store/pom.xml b/samples/spring/pet-store/pom.xml index 4b54b0da5..013532950 100644 --- a/samples/spring/pet-store/pom.xml +++ b/samples/spring/pet-store/pom.xml @@ -26,7 +26,7 @@ 1.8 1.8 - 5.3.24 + 5.3.25 4.13.2 2.19.0 diff --git a/samples/springboot2/pet-store/build.gradle b/samples/springboot2/pet-store/build.gradle index c0dddba8a..cfc92b151 100644 --- a/samples/springboot2/pet-store/build.gradle +++ b/samples/springboot2/pet-store/build.gradle @@ -8,7 +8,7 @@ repositories { dependencies { implementation ( - implementation('org.springframework.boot:spring-boot-starter-web:2.7.6') { + implementation('org.springframework.boot:spring-boot-starter-web:2.7.8') { exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat' }, 'com.amazonaws.serverless:aws-serverless-java-container-springboot2:[1.4,)', diff --git a/samples/springboot2/pet-store/pom.xml b/samples/springboot2/pet-store/pom.xml index bf9cf13f6..a6f20823d 100644 --- a/samples/springboot2/pet-store/pom.xml +++ b/samples/springboot2/pet-store/pom.xml @@ -13,7 +13,7 @@ org.springframework.boot spring-boot-starter-parent - 2.7.6 + 2.7.8 From 3b99b5348da133625ec625a37ed4b9080c719b70 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Fri, 3 Feb 2023 16:17:08 +0100 Subject: [PATCH 021/623] chore(deps): update Jackson version to 2.14.2 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 6aaf501d5..21a097a39 100644 --- a/pom.xml +++ b/pom.xml @@ -82,7 +82,7 @@ 0.7 7.4.1 - 2.14.1 + 2.14.2 2.0.6 5.9.2 4.9.0 From abae8e8bb830dfdde4b1218a94e91a64d95304a9 Mon Sep 17 00:00:00 2001 From: Artur Signell Date: Fri, 3 Feb 2023 14:40:46 +0200 Subject: [PATCH 022/623] Align header checks --- .../proxy/internal/servlet/AwsHttpServletResponse.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) 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 fc03922ce..65677d00a 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 @@ -213,7 +213,7 @@ public void addDateHeader(String s, long l) { @Override public void setHeader(String s, String s1) { if (!canSetHeader()) return; - if ("Content-Type".equalsIgnoreCase(s)) { + if (isContentTypeHeader(s)) { setContentType(s1); } else { setHeader(s, s1, true); @@ -221,11 +221,16 @@ public void setHeader(String s, String s1) { } + private boolean isContentTypeHeader(String s) { + return s.toLowerCase(Locale.getDefault()).equals(HttpHeaders.CONTENT_TYPE.toLowerCase(Locale.getDefault())); + } + + @Override public void addHeader(String s, String s1) { if (!canSetHeader()) return; // TODO: We should probably have a list of headers that we are not allowed to have multiple values for - if (s.toLowerCase(Locale.getDefault()).equals(HttpHeaders.CONTENT_TYPE.toLowerCase(Locale.getDefault()))) { + if (isContentTypeHeader(s)) { setContentType(s1); } else { setHeader(s, s1, false); From 22393803e3d17a09373745bb52347ba2292e4b38 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Wed, 15 Feb 2023 07:03:02 +0100 Subject: [PATCH 023/623] chore(deps): update Commons Fileupload version to 1.5 --- aws-serverless-java-container-core/pom.xml | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml index 87bbb7927..52301fc3f 100644 --- a/aws-serverless-java-container-core/pom.xml +++ b/aws-serverless-java-container-core/pom.xml @@ -61,12 +61,7 @@ commons-fileupload commons-fileupload - 1.4 - - - commons-io - commons-io - 2.11.0 + 1.5 From f098f97a0b8a03175b040207714beb3b983d63be Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Thu, 16 Feb 2023 14:34:49 +0100 Subject: [PATCH 024/623] doc: added comment for https://stackoverflow.com/a/75471488/3156607 --- .../serverless/proxy/internal/servlet/AwsHttpServletRequest.java | 1 + 1 file changed, 1 insertion(+) 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 61d97bfef..0a2ab1992 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 @@ -145,6 +145,7 @@ public HttpSession getSession(boolean b) { @Override public HttpSession getSession() { log.debug("Trying to access session. Lambda functions are stateless and should not rely on the session"); + // as per Servlet spec this method should create a session if none exists, so we should change it to getSession(true) in the future return this.session; } From dc87300299f7f0559913bb8e9db6023b768551a8 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Tue, 7 Mar 2023 09:43:47 +0100 Subject: [PATCH 025/623] chore(deps): Update Spring dependencies (security to 5.7.7, boot to 2.7.9) --- aws-serverless-java-container-core/pom.xml | 2 +- aws-serverless-java-container-spring/pom.xml | 2 +- aws-serverless-java-container-springboot2/pom.xml | 4 ++-- .../src/main/resources/archetype-resources/build.gradle | 2 +- .../src/main/resources/archetype-resources/pom.xml | 2 +- samples/springboot2/pet-store/build.gradle | 2 +- samples/springboot2/pet-store/pom.xml | 2 +- 7 files changed, 8 insertions(+), 8 deletions(-) diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml index 52301fc3f..b086412ee 100644 --- a/aws-serverless-java-container-core/pom.xml +++ b/aws-serverless-java-container-core/pom.xml @@ -105,7 +105,7 @@ org.springframework.security spring-security-web - 5.7.6 + 5.7.7 test diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml index 4aa95970f..f31f9a0fb 100644 --- a/aws-serverless-java-container-spring/pom.xml +++ b/aws-serverless-java-container-spring/pom.xml @@ -17,7 +17,7 @@ 5.3.25 - 5.7.6 + 5.7.7 diff --git a/aws-serverless-java-container-springboot2/pom.xml b/aws-serverless-java-container-springboot2/pom.xml index 1d7fffd44..0c34b51db 100644 --- a/aws-serverless-java-container-springboot2/pom.xml +++ b/aws-serverless-java-container-springboot2/pom.xml @@ -16,8 +16,8 @@ 5.3.25 - 2.7.8 - 5.7.6 + 2.7.9 + 5.7.7 1.8 1.8 diff --git a/aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/build.gradle index b47ce60a8..15a428b14 100644 --- a/aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/build.gradle +++ b/aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/build.gradle @@ -8,7 +8,7 @@ repositories { dependencies { implementation ( - 'org.springframework.boot:spring-boot-starter-web:2.7.8', + 'org.springframework.boot:spring-boot-starter-web:2.7.9', 'com.amazonaws.serverless:aws-serverless-java-container-springboot2:[1.0,)', 'io.symphonia:lambda-logging:1.0.3' ) diff --git a/aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/pom.xml index b4ad6174f..074b01128 100644 --- a/aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/pom.xml +++ b/aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/pom.xml @@ -16,7 +16,7 @@ org.springframework.boot spring-boot-starter-parent - 2.7.8 + 2.7.9 diff --git a/samples/springboot2/pet-store/build.gradle b/samples/springboot2/pet-store/build.gradle index cfc92b151..8b83cc443 100644 --- a/samples/springboot2/pet-store/build.gradle +++ b/samples/springboot2/pet-store/build.gradle @@ -8,7 +8,7 @@ repositories { dependencies { implementation ( - implementation('org.springframework.boot:spring-boot-starter-web:2.7.8') { + implementation('org.springframework.boot:spring-boot-starter-web:2.7.9') { exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat' }, 'com.amazonaws.serverless:aws-serverless-java-container-springboot2:[1.4,)', diff --git a/samples/springboot2/pet-store/pom.xml b/samples/springboot2/pet-store/pom.xml index a6f20823d..6901fb7e2 100644 --- a/samples/springboot2/pet-store/pom.xml +++ b/samples/springboot2/pet-store/pom.xml @@ -13,7 +13,7 @@ org.springframework.boot spring-boot-starter-parent - 2.7.8 + 2.7.9 From aa27167a2d516790e463982431ee131b1ce264de Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Tue, 7 Mar 2023 09:52:46 +0100 Subject: [PATCH 026/623] chore(deps): Update OWASP dependency check to 8.1.2 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 21a097a39..90d84d55f 100644 --- a/pom.xml +++ b/pom.xml @@ -81,7 +81,7 @@ 0.7 - 7.4.1 + 8.1.2 2.14.2 2.0.6 5.9.2 From 3645aae2c89ff4fab0660ef5bd55cb91bb5eab76 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Fri, 24 Mar 2023 13:03:03 +0100 Subject: [PATCH 027/623] chore(deps): Update Spring dependencies (framework to 5.3.26, boot to 2.7.10) --- aws-serverless-java-container-spring/pom.xml | 2 +- aws-serverless-java-container-springboot2/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/springboot2/pet-store/build.gradle | 2 +- samples/springboot2/pet-store/pom.xml | 2 +- 10 files changed, 13 insertions(+), 13 deletions(-) diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml index f31f9a0fb..7a58ac1d3 100644 --- a/aws-serverless-java-container-spring/pom.xml +++ b/aws-serverless-java-container-spring/pom.xml @@ -16,7 +16,7 @@ - 5.3.25 + 5.3.26 5.7.7 diff --git a/aws-serverless-java-container-springboot2/pom.xml b/aws-serverless-java-container-springboot2/pom.xml index 0c34b51db..d9dfb4aaf 100644 --- a/aws-serverless-java-container-springboot2/pom.xml +++ b/aws-serverless-java-container-springboot2/pom.xml @@ -15,8 +15,8 @@ 1.10-SNAPSHOT - 5.3.25 - 2.7.9 + 5.3.26 + 2.7.10 5.7.7 1.8 1.8 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 319a102d5..1a80d26dc 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:5.3.25', - 'org.springframework:spring-context:5.3.25', + 'org.springframework:spring-webmvc:5.3.26', + 'org.springframework:spring-context:5.3.26', 'com.amazonaws.serverless:aws-serverless-java-container-spring:[1.0,)', 'org.apache.logging.log4j:log4j-core:2.19.0', 'org.apache.logging.log4j:log4j-api:2.19.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 855e267d3..5f30c5c78 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 @@ 1.8 1.8 - 5.3.25 + 5.3.26 4.13.2 2.19.0 diff --git a/aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/build.gradle index 15a428b14..36a13b5d7 100644 --- a/aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/build.gradle +++ b/aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/build.gradle @@ -8,7 +8,7 @@ repositories { dependencies { implementation ( - 'org.springframework.boot:spring-boot-starter-web:2.7.9', + 'org.springframework.boot:spring-boot-starter-web:2.7.10', 'com.amazonaws.serverless:aws-serverless-java-container-springboot2:[1.0,)', 'io.symphonia:lambda-logging:1.0.3' ) diff --git a/aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/pom.xml index 074b01128..5612389cd 100644 --- a/aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/pom.xml +++ b/aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/pom.xml @@ -16,7 +16,7 @@ org.springframework.boot spring-boot-starter-parent - 2.7.9 + 2.7.10 diff --git a/samples/spring/pet-store/build.gradle b/samples/spring/pet-store/build.gradle index 057ca5c70..e47d06260 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:5.3.25', - 'org.springframework:spring-context:5.3.25', + 'org.springframework:spring-webmvc:5.3.26', + 'org.springframework:spring-context:5.3.26', 'com.amazonaws.serverless:aws-serverless-java-container-spring:[1.0,)', 'org.apache.logging.log4j:log4j-core:2.19.0', 'org.apache.logging.log4j:log4j-api:2.19.0', diff --git a/samples/spring/pet-store/pom.xml b/samples/spring/pet-store/pom.xml index 013532950..c467c4984 100644 --- a/samples/spring/pet-store/pom.xml +++ b/samples/spring/pet-store/pom.xml @@ -26,7 +26,7 @@ 1.8 1.8 - 5.3.25 + 5.3.26 4.13.2 2.19.0 diff --git a/samples/springboot2/pet-store/build.gradle b/samples/springboot2/pet-store/build.gradle index 8b83cc443..5f4624197 100644 --- a/samples/springboot2/pet-store/build.gradle +++ b/samples/springboot2/pet-store/build.gradle @@ -8,7 +8,7 @@ repositories { dependencies { implementation ( - implementation('org.springframework.boot:spring-boot-starter-web:2.7.9') { + implementation('org.springframework.boot:spring-boot-starter-web:2.7.10') { exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat' }, 'com.amazonaws.serverless:aws-serverless-java-container-springboot2:[1.4,)', diff --git a/samples/springboot2/pet-store/pom.xml b/samples/springboot2/pet-store/pom.xml index 6901fb7e2..202d9c343 100644 --- a/samples/springboot2/pet-store/pom.xml +++ b/samples/springboot2/pet-store/pom.xml @@ -13,7 +13,7 @@ org.springframework.boot spring-boot-starter-parent - 2.7.9 + 2.7.10 From 188b8b0930f27c6b599836e843017d8eaf137094 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Fri, 24 Mar 2023 15:55:02 +0100 Subject: [PATCH 028/623] chore(deps): update SLF4J to 2.0.7 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 90d84d55f..a526e8f79 100644 --- a/pom.xml +++ b/pom.xml @@ -83,7 +83,7 @@ 0.7 8.1.2 2.14.2 - 2.0.6 + 2.0.7 5.9.2 4.9.0 1.3 From 4266dabfb37103d7aea2df0693355244282d4392 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Fri, 24 Mar 2023 19:45:19 +0100 Subject: [PATCH 029/623] chore(deps): update Mockito to 5.2.0 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index a526e8f79..78b3b4e00 100644 --- a/pom.xml +++ b/pom.xml @@ -85,7 +85,7 @@ 2.14.2 2.0.7 5.9.2 - 4.9.0 + 5.2.0 1.3 UTF-8 From ec8bd789e0c3679f4559935db8f1266b83b8053e Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Fri, 24 Mar 2023 19:45:40 +0100 Subject: [PATCH 030/623] chore(deps): update Struts to 6.1.2 --- 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 c42747a7f..1c628e943 100644 --- a/aws-serverless-java-container-struts/pom.xml +++ b/aws-serverless-java-container-struts/pom.xml @@ -15,7 +15,7 @@ - 6.1.1 + 6.1.2 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 34373b60a..53d46cf91 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.1') { + implementation ('org.apache.struts:struts2-convention-plugin:6.1.2') { exclude group: 'org.apache.struts', module: 'struts2-core' } - implementation ('org.apache.struts:struts2-rest-plugin:6.1.1') { + implementation ('org.apache.struts:struts2-rest-plugin:6.1.2') { exclude group: 'org.apache.struts', module: 'struts2-core' } - implementation ('org.apache.struts:struts2-bean-validation-plugin:6.1.1') { + implementation ('org.apache.struts:struts2-bean-validation-plugin:6.1.2') { 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.1') { + implementation ('org.apache.struts:struts2-core:6.1.2') { exclude group: 'org.apache.logging.log4j', module: 'log4j-api' } implementation ('org.hibernate.validator:hibernate-validator:6.1.7.Final') @@ -42,7 +42,7 @@ dependencies { implementation ('com.amazonaws:aws-lambda-java-log4j2:1.5.1') testImplementation('junit:junit:4.13.2') - testImplementation('org.apache.struts:struts2-junit-plugin:6.1.1') { + testImplementation('org.apache.struts:struts2-junit-plugin:6.1.2') { 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 d84ad1902..044ea80e6 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 @@ 1.8 1.8 - 6.1.1 + 6.1.2 2.14.1 4.13.2 2.19.0 diff --git a/samples/struts/pet-store/build.gradle b/samples/struts/pet-store/build.gradle index 6aeff27df..ed108a3fa 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.1', - 'org.apache.struts:struts2-rest-plugin:6.1.1', - 'org.apache.struts:struts2-bean-validation-plugin:6.1.1', - 'org.apache.struts:struts2-junit-plugin:6.1.1', + 'org.apache.struts:struts2-convention-plugin:6.1.2', + 'org.apache.struts:struts2-rest-plugin:6.1.2', + 'org.apache.struts:struts2-bean-validation-plugin:6.1.2', + 'org.apache.struts:struts2-junit-plugin:6.1.2', '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 a1bf62595..0e6df26ed 100644 --- a/samples/struts/pet-store/pom.xml +++ b/samples/struts/pet-store/pom.xml @@ -26,7 +26,7 @@ 1.8 1.8 - 6.1.1 + 6.1.2 2.14.1 4.13.2 2.19.0 From f3ba895ce91527b85248e054684ecac163e76ebc Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Fri, 24 Mar 2023 20:07:01 +0100 Subject: [PATCH 031/623] chore(deps): update Jersey to 2.39.1 along with JAX-RS API to 2.1.1 --- aws-serverless-java-container-core/pom.xml | 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/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml index b086412ee..462cbc83c 100644 --- a/aws-serverless-java-container-core/pom.xml +++ b/aws-serverless-java-container-core/pom.xml @@ -16,7 +16,7 @@ - 2.1 + 2.1.1 3.1.0 diff --git a/aws-serverless-java-container-jersey/pom.xml b/aws-serverless-java-container-jersey/pom.xml index 2d491078f..ae8949859 100644 --- a/aws-serverless-java-container-jersey/pom.xml +++ b/aws-serverless-java-container-jersey/pom.xml @@ -16,7 +16,7 @@ - 2.37 + 2.39.1 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 c1756d92e..58ac7f618 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 @@ -12,13 +12,13 @@ dependencies { 'io.symphonia:lambda-logging:1.0.3' ) - implementation("org.glassfish.jersey.media:jersey-media-json-jackson:2.37") { + implementation("org.glassfish.jersey.media:jersey-media-json-jackson:2.39.1") { 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:2.37") { + implementation("org.glassfish.jersey.inject:jersey-hk2:2.39.1") { 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 dbb4cf12c..389bd8c25 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 @@ -14,7 +14,7 @@ 1.8 1.8 - 2.37 + 2.39.1 2.14.1 diff --git a/samples/jersey/pet-store/build.gradle b/samples/jersey/pet-store/build.gradle index ea8ee51d4..632fb35da 100644 --- a/samples/jersey/pet-store/build.gradle +++ b/samples/jersey/pet-store/build.gradle @@ -12,13 +12,13 @@ dependencies { 'io.symphonia:lambda-logging:1.0.3' ) - implementation("org.glassfish.jersey.media:jersey-media-json-jackson:2.37") { + implementation("org.glassfish.jersey.media:jersey-media-json-jackson:2.39.1") { 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:2.37") { + implementation("org.glassfish.jersey.inject:jersey-hk2:2.39.1") { exclude group: 'javax.inject', module: "javax.inject" } } diff --git a/samples/jersey/pet-store/pom.xml b/samples/jersey/pet-store/pom.xml index ce0baf4c0..7f26e5c22 100644 --- a/samples/jersey/pet-store/pom.xml +++ b/samples/jersey/pet-store/pom.xml @@ -26,7 +26,7 @@ 1.8 1.8 - 2.37 + 2.39.1 2.14.1 From b4a643eda6c0233d58c83592a50d8269bff8fce3 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Fri, 24 Mar 2023 20:09:43 +0100 Subject: [PATCH 032/623] chore(deps): use Jackson 2.14.2 also in samples and archetypes --- .../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 +- 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 +- 14 files changed, 16 insertions(+), 16 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 58ac7f618..6ed4bc370 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:[1.9,)', - 'com.fasterxml.jackson.core:jackson-databind:2.14.1', + 'com.fasterxml.jackson.core:jackson-databind:2.14.2', 'io.symphonia:lambda-logging:1.0.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 389bd8c25..195dcf39d 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 @@ 1.8 1.8 2.39.1 - 2.14.1 + 2.14.2 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 780810c90..3632fe38a 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.14.1', + 'com.fasterxml.jackson.core:jackson-databind:2.14.2', 'io.symphonia:lambda-logging:1.0.3' ) 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 9e1910aa1..21eaced6e 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 @@ 1.8 1.8 - 2.14.1 + 2.14.2 2.9.1 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 1a80d26dc..126348451 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.19.0', 'org.apache.logging.log4j:log4j-api:2.19.0', 'org.apache.logging.log4j:log4j-slf4j-impl:2.19.0', - 'com.fasterxml.jackson.core:jackson-databind:2.14.1', + 'com.fasterxml.jackson.core:jackson-databind:2.14.2', '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 53d46cf91..a944bcdaf 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.14.1') - implementation ('com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.14.1') + implementation ('com.fasterxml.jackson.core:jackson-databind:2.14.2') + implementation ('com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.14.2') implementation ('org.apache.logging.log4j:log4j-core:2.19.0') implementation ('org.apache.logging.log4j:log4j-api:2.19.0') implementation ('org.apache.logging.log4j:log4j-slf4j-impl:2.19.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 044ea80e6..b9abc256b 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 @@ 1.8 1.8 6.1.2 - 2.14.1 + 2.14.2 4.13.2 2.19.0 diff --git a/samples/jersey/pet-store/build.gradle b/samples/jersey/pet-store/build.gradle index 632fb35da..c0f5bd933 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:[1.9,)', - 'com.fasterxml.jackson.core:jackson-databind:2.14.1', + 'com.fasterxml.jackson.core:jackson-databind:2.14.2', 'io.symphonia:lambda-logging:1.0.3' ) diff --git a/samples/jersey/pet-store/pom.xml b/samples/jersey/pet-store/pom.xml index 7f26e5c22..521112399 100644 --- a/samples/jersey/pet-store/pom.xml +++ b/samples/jersey/pet-store/pom.xml @@ -27,7 +27,7 @@ 1.8 1.8 2.39.1 - 2.14.1 + 2.14.2 diff --git a/samples/spark/pet-store/build.gradle b/samples/spark/pet-store/build.gradle index 5087400ce..f90fcd3c3 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.14.1', + 'com.fasterxml.jackson.core:jackson-databind:2.14.2', 'io.symphonia:lambda-logging:1.0.3' ) } diff --git a/samples/spark/pet-store/pom.xml b/samples/spark/pet-store/pom.xml index 04915a2b2..fe887dbd5 100644 --- a/samples/spark/pet-store/pom.xml +++ b/samples/spark/pet-store/pom.xml @@ -26,7 +26,7 @@ 1.8 1.8 - 2.14.1 + 2.14.2 2.9.1 diff --git a/samples/spring/pet-store/build.gradle b/samples/spring/pet-store/build.gradle index e47d06260..261f094c4 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.19.0', 'org.apache.logging.log4j:log4j-api:2.19.0', 'org.apache.logging.log4j:log4j-slf4j-impl:2.19.0', - 'com.fasterxml.jackson.core:jackson-databind:2.14.1', + 'com.fasterxml.jackson.core:jackson-databind:2.14.2', '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 ed108a3fa..d48136b41 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.14.1', - 'com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.14.1', + 'com.fasterxml.jackson.core:jackson-databind:2.14.2', + 'com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.14.2', 'org.apache.logging.log4j:log4j-core:2.19.0', 'org.apache.logging.log4j:log4j-api:2.19.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 0e6df26ed..6741d350e 100644 --- a/samples/struts/pet-store/pom.xml +++ b/samples/struts/pet-store/pom.xml @@ -27,7 +27,7 @@ 1.8 1.8 6.1.2 - 2.14.1 + 2.14.2 4.13.2 2.19.0 From 35e0ad35c6975ec38919bdd80efaf6e5dc02ca23 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Fri, 24 Mar 2023 20:24:32 +0100 Subject: [PATCH 033/623] chore(deps): set Mockito to 4.11.0 as 5.x requires JDK 11 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 78b3b4e00..2c3ff9524 100644 --- a/pom.xml +++ b/pom.xml @@ -85,7 +85,7 @@ 2.14.2 2.0.7 5.9.2 - 5.2.0 + 4.11.0 1.3 UTF-8 From 63d82cb043b57a20b276d194debd7c7a7a36d7cd Mon Sep 17 00:00:00 2001 From: deki Date: Sat, 25 Mar 2023 06:51:39 +0000 Subject: [PATCH 034/623] chore: release -prepare release aws-serverless-java-container-1.9.2 --- aws-serverless-java-container-core/pom.xml | 4 ++-- aws-serverless-java-container-jersey/pom.xml | 6 +++--- aws-serverless-java-container-spark/pom.xml | 6 +++--- aws-serverless-java-container-spring/pom.xml | 6 +++--- aws-serverless-java-container-springboot2/pom.xml | 6 +++--- aws-serverless-java-container-struts/pom.xml | 6 +++--- aws-serverless-jersey-archetype/pom.xml | 6 +++--- aws-serverless-spark-archetype/pom.xml | 6 +++--- aws-serverless-spring-archetype/pom.xml | 6 +++--- aws-serverless-springboot2-archetype/pom.xml | 6 +++--- aws-serverless-struts-archetype/pom.xml | 6 +++--- pom.xml | 4 ++-- 12 files changed, 34 insertions(+), 34 deletions(-) diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml index 462cbc83c..95f26abb0 100644 --- a/aws-serverless-java-container-core/pom.xml +++ b/aws-serverless-java-container-core/pom.xml @@ -6,12 +6,12 @@ AWS Serverless Java container support - Core Allows Java applications written for a servlet container to run in AWS Lambda https://aws.amazon.com/lambda - 1.10-SNAPSHOT + 1.9.2 com.amazonaws.serverless aws-serverless-java-container - 1.10-SNAPSHOT + 1.9.2 .. diff --git a/aws-serverless-java-container-jersey/pom.xml b/aws-serverless-java-container-jersey/pom.xml index ae8949859..9467cef8b 100644 --- a/aws-serverless-java-container-jersey/pom.xml +++ b/aws-serverless-java-container-jersey/pom.xml @@ -6,12 +6,12 @@ AWS Serverless Java container support - Jersey implementation Allows Java applications written for Jersey to run in AWS Lambda https://aws.amazon.com/lambda - 1.10-SNAPSHOT + 1.9.2 com.amazonaws.serverless aws-serverless-java-container - 1.10-SNAPSHOT + 1.9.2 .. @@ -24,7 +24,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 1.10-SNAPSHOT + 1.9.2 com.fasterxml.jackson.core diff --git a/aws-serverless-java-container-spark/pom.xml b/aws-serverless-java-container-spark/pom.xml index f5ea6b868..fae2d5ea4 100644 --- a/aws-serverless-java-container-spark/pom.xml +++ b/aws-serverless-java-container-spark/pom.xml @@ -6,12 +6,12 @@ AWS Serverless Java container support - Spark implementation Allows Java applications written for Spark to run in AWS Lambda https://aws.amazon.com/lambda - 1.10-SNAPSHOT + 1.9.2 com.amazonaws.serverless aws-serverless-java-container - 1.10-SNAPSHOT + 1.9.2 .. @@ -24,7 +24,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 1.10-SNAPSHOT + 1.9.2 diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml index 7a58ac1d3..76de160dd 100644 --- a/aws-serverless-java-container-spring/pom.xml +++ b/aws-serverless-java-container-spring/pom.xml @@ -6,12 +6,12 @@ AWS Serverless Java container support - Spring implementation Allows Java applications written for the Spring framework to run in AWS Lambda https://aws.amazon.com/lambda - 1.10-SNAPSHOT + 1.9.2 com.amazonaws.serverless aws-serverless-java-container - 1.10-SNAPSHOT + 1.9.2 .. @@ -25,7 +25,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 1.10-SNAPSHOT + 1.9.2 diff --git a/aws-serverless-java-container-springboot2/pom.xml b/aws-serverless-java-container-springboot2/pom.xml index d9dfb4aaf..8d7a064e9 100644 --- a/aws-serverless-java-container-springboot2/pom.xml +++ b/aws-serverless-java-container-springboot2/pom.xml @@ -3,7 +3,7 @@ aws-serverless-java-container com.amazonaws.serverless - 1.10-SNAPSHOT + 1.9.2 4.0.0 @@ -12,7 +12,7 @@ AWS Serverless Java container support - SpringBoot 2 implementation Allows Java applications written for SpringBoot 2 to run in AWS Lambda https://aws.amazon.com/lambda - 1.10-SNAPSHOT + 1.9.2 5.3.26 @@ -27,7 +27,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 1.10-SNAPSHOT + 1.9.2 diff --git a/aws-serverless-java-container-struts/pom.xml b/aws-serverless-java-container-struts/pom.xml index 1c628e943..c6dbf9f1e 100644 --- a/aws-serverless-java-container-struts/pom.xml +++ b/aws-serverless-java-container-struts/pom.xml @@ -6,12 +6,12 @@ AWS Serverless Java container support - Struts implementation Allows Java applications written for the Struts framework to run in AWS Lambda https://aws.amazon.com/lambda - 1.10-SNAPSHOT + 1.9.2 com.amazonaws.serverless aws-serverless-java-container - 1.10-SNAPSHOT + 1.9.2 @@ -23,7 +23,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 1.10-SNAPSHOT + 1.9.2 diff --git a/aws-serverless-jersey-archetype/pom.xml b/aws-serverless-jersey-archetype/pom.xml index c13c05869..fc3b452ff 100644 --- a/aws-serverless-jersey-archetype/pom.xml +++ b/aws-serverless-jersey-archetype/pom.xml @@ -4,17 +4,17 @@ com.amazonaws.serverless aws-serverless-java-container - 1.10-SNAPSHOT + 1.9.2 com.amazonaws.serverless.archetypes aws-serverless-jersey-archetype - 1.10-SNAPSHOT + 1.9.2 maven-archetype https://github.com/awslabs/aws-serverless-java-container.git - HEAD + aws-serverless-java-container-1.9.2 diff --git a/aws-serverless-spark-archetype/pom.xml b/aws-serverless-spark-archetype/pom.xml index ca3ad3952..27fe34a3e 100644 --- a/aws-serverless-spark-archetype/pom.xml +++ b/aws-serverless-spark-archetype/pom.xml @@ -4,17 +4,17 @@ com.amazonaws.serverless aws-serverless-java-container - 1.10-SNAPSHOT + 1.9.2 com.amazonaws.serverless.archetypes aws-serverless-spark-archetype - 1.10-SNAPSHOT + 1.9.2 maven-archetype https://github.com/awslabs/aws-serverless-java-container.git - HEAD + aws-serverless-java-container-1.9.2 diff --git a/aws-serverless-spring-archetype/pom.xml b/aws-serverless-spring-archetype/pom.xml index 83dc79743..03f94e757 100644 --- a/aws-serverless-spring-archetype/pom.xml +++ b/aws-serverless-spring-archetype/pom.xml @@ -4,17 +4,17 @@ com.amazonaws.serverless aws-serverless-java-container - 1.10-SNAPSHOT + 1.9.2 com.amazonaws.serverless.archetypes aws-serverless-spring-archetype - 1.10-SNAPSHOT + 1.9.2 maven-archetype https://github.com/awslabs/aws-serverless-java-container.git - HEAD + aws-serverless-java-container-1.9.2 diff --git a/aws-serverless-springboot2-archetype/pom.xml b/aws-serverless-springboot2-archetype/pom.xml index 1e7279dbf..b2d37a591 100644 --- a/aws-serverless-springboot2-archetype/pom.xml +++ b/aws-serverless-springboot2-archetype/pom.xml @@ -4,17 +4,17 @@ com.amazonaws.serverless aws-serverless-java-container - 1.10-SNAPSHOT + 1.9.2 com.amazonaws.serverless.archetypes aws-serverless-springboot2-archetype - 1.10-SNAPSHOT + 1.9.2 maven-archetype https://github.com/awslabs/aws-serverless-java-container.git - HEAD + aws-serverless-java-container-1.9.2 diff --git a/aws-serverless-struts-archetype/pom.xml b/aws-serverless-struts-archetype/pom.xml index b91cfa4bd..3ed5a50ce 100644 --- a/aws-serverless-struts-archetype/pom.xml +++ b/aws-serverless-struts-archetype/pom.xml @@ -4,17 +4,17 @@ com.amazonaws.serverless aws-serverless-java-container - 1.10-SNAPSHOT + 1.9.2 com.amazonaws.serverless.archetypes aws-serverless-struts-archetype - 1.10-SNAPSHOT + 1.9.2 maven-archetype https://github.com/awslabs/aws-serverless-java-container.git - HEAD + aws-serverless-java-container-1.9.2 diff --git a/pom.xml b/pom.xml index 2c3ff9524..44ac1cb4d 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.amazonaws.serverless aws-serverless-java-container pom - 1.10-SNAPSHOT + 1.9.2 AWS Serverless Java container A Java framework to run Spring, Spring Boot, Jersey, Spark, and Struts applications inside AWS Lambda https://github.com/awslabs/aws-serverless-java-container @@ -41,7 +41,7 @@ https://github.com/awslabs/aws-serverless-java-container scm:git:https://github.com/awslabs/aws-serverless-java-container.git - HEAD + aws-serverless-java-container-1.9.2 From 0210a77f280f7069462795020d039edf7680d3f9 Mon Sep 17 00:00:00 2001 From: deki Date: Sat, 25 Mar 2023 06:51:40 +0000 Subject: [PATCH 035/623] chore: release -prepare for next development iteration --- aws-serverless-java-container-core/pom.xml | 4 ++-- aws-serverless-java-container-jersey/pom.xml | 6 +++--- aws-serverless-java-container-spark/pom.xml | 6 +++--- aws-serverless-java-container-spring/pom.xml | 6 +++--- aws-serverless-java-container-springboot2/pom.xml | 6 +++--- aws-serverless-java-container-struts/pom.xml | 6 +++--- aws-serverless-jersey-archetype/pom.xml | 6 +++--- aws-serverless-spark-archetype/pom.xml | 6 +++--- aws-serverless-spring-archetype/pom.xml | 6 +++--- aws-serverless-springboot2-archetype/pom.xml | 6 +++--- aws-serverless-struts-archetype/pom.xml | 6 +++--- pom.xml | 4 ++-- 12 files changed, 34 insertions(+), 34 deletions(-) diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml index 95f26abb0..462cbc83c 100644 --- a/aws-serverless-java-container-core/pom.xml +++ b/aws-serverless-java-container-core/pom.xml @@ -6,12 +6,12 @@ AWS Serverless Java container support - Core Allows Java applications written for a servlet container to run in AWS Lambda https://aws.amazon.com/lambda - 1.9.2 + 1.10-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container - 1.9.2 + 1.10-SNAPSHOT .. diff --git a/aws-serverless-java-container-jersey/pom.xml b/aws-serverless-java-container-jersey/pom.xml index 9467cef8b..ae8949859 100644 --- a/aws-serverless-java-container-jersey/pom.xml +++ b/aws-serverless-java-container-jersey/pom.xml @@ -6,12 +6,12 @@ AWS Serverless Java container support - Jersey implementation Allows Java applications written for Jersey to run in AWS Lambda https://aws.amazon.com/lambda - 1.9.2 + 1.10-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container - 1.9.2 + 1.10-SNAPSHOT .. @@ -24,7 +24,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 1.9.2 + 1.10-SNAPSHOT com.fasterxml.jackson.core diff --git a/aws-serverless-java-container-spark/pom.xml b/aws-serverless-java-container-spark/pom.xml index fae2d5ea4..f5ea6b868 100644 --- a/aws-serverless-java-container-spark/pom.xml +++ b/aws-serverless-java-container-spark/pom.xml @@ -6,12 +6,12 @@ AWS Serverless Java container support - Spark implementation Allows Java applications written for Spark to run in AWS Lambda https://aws.amazon.com/lambda - 1.9.2 + 1.10-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container - 1.9.2 + 1.10-SNAPSHOT .. @@ -24,7 +24,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 1.9.2 + 1.10-SNAPSHOT diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml index 76de160dd..7a58ac1d3 100644 --- a/aws-serverless-java-container-spring/pom.xml +++ b/aws-serverless-java-container-spring/pom.xml @@ -6,12 +6,12 @@ AWS Serverless Java container support - Spring implementation Allows Java applications written for the Spring framework to run in AWS Lambda https://aws.amazon.com/lambda - 1.9.2 + 1.10-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container - 1.9.2 + 1.10-SNAPSHOT .. @@ -25,7 +25,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 1.9.2 + 1.10-SNAPSHOT diff --git a/aws-serverless-java-container-springboot2/pom.xml b/aws-serverless-java-container-springboot2/pom.xml index 8d7a064e9..d9dfb4aaf 100644 --- a/aws-serverless-java-container-springboot2/pom.xml +++ b/aws-serverless-java-container-springboot2/pom.xml @@ -3,7 +3,7 @@ aws-serverless-java-container com.amazonaws.serverless - 1.9.2 + 1.10-SNAPSHOT 4.0.0 @@ -12,7 +12,7 @@ AWS Serverless Java container support - SpringBoot 2 implementation Allows Java applications written for SpringBoot 2 to run in AWS Lambda https://aws.amazon.com/lambda - 1.9.2 + 1.10-SNAPSHOT 5.3.26 @@ -27,7 +27,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 1.9.2 + 1.10-SNAPSHOT diff --git a/aws-serverless-java-container-struts/pom.xml b/aws-serverless-java-container-struts/pom.xml index c6dbf9f1e..1c628e943 100644 --- a/aws-serverless-java-container-struts/pom.xml +++ b/aws-serverless-java-container-struts/pom.xml @@ -6,12 +6,12 @@ AWS Serverless Java container support - Struts implementation Allows Java applications written for the Struts framework to run in AWS Lambda https://aws.amazon.com/lambda - 1.9.2 + 1.10-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container - 1.9.2 + 1.10-SNAPSHOT @@ -23,7 +23,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 1.9.2 + 1.10-SNAPSHOT diff --git a/aws-serverless-jersey-archetype/pom.xml b/aws-serverless-jersey-archetype/pom.xml index fc3b452ff..c13c05869 100644 --- a/aws-serverless-jersey-archetype/pom.xml +++ b/aws-serverless-jersey-archetype/pom.xml @@ -4,17 +4,17 @@ com.amazonaws.serverless aws-serverless-java-container - 1.9.2 + 1.10-SNAPSHOT com.amazonaws.serverless.archetypes aws-serverless-jersey-archetype - 1.9.2 + 1.10-SNAPSHOT maven-archetype https://github.com/awslabs/aws-serverless-java-container.git - aws-serverless-java-container-1.9.2 + HEAD diff --git a/aws-serverless-spark-archetype/pom.xml b/aws-serverless-spark-archetype/pom.xml index 27fe34a3e..ca3ad3952 100644 --- a/aws-serverless-spark-archetype/pom.xml +++ b/aws-serverless-spark-archetype/pom.xml @@ -4,17 +4,17 @@ com.amazonaws.serverless aws-serverless-java-container - 1.9.2 + 1.10-SNAPSHOT com.amazonaws.serverless.archetypes aws-serverless-spark-archetype - 1.9.2 + 1.10-SNAPSHOT maven-archetype https://github.com/awslabs/aws-serverless-java-container.git - aws-serverless-java-container-1.9.2 + HEAD diff --git a/aws-serverless-spring-archetype/pom.xml b/aws-serverless-spring-archetype/pom.xml index 03f94e757..83dc79743 100644 --- a/aws-serverless-spring-archetype/pom.xml +++ b/aws-serverless-spring-archetype/pom.xml @@ -4,17 +4,17 @@ com.amazonaws.serverless aws-serverless-java-container - 1.9.2 + 1.10-SNAPSHOT com.amazonaws.serverless.archetypes aws-serverless-spring-archetype - 1.9.2 + 1.10-SNAPSHOT maven-archetype https://github.com/awslabs/aws-serverless-java-container.git - aws-serverless-java-container-1.9.2 + HEAD diff --git a/aws-serverless-springboot2-archetype/pom.xml b/aws-serverless-springboot2-archetype/pom.xml index b2d37a591..1e7279dbf 100644 --- a/aws-serverless-springboot2-archetype/pom.xml +++ b/aws-serverless-springboot2-archetype/pom.xml @@ -4,17 +4,17 @@ com.amazonaws.serverless aws-serverless-java-container - 1.9.2 + 1.10-SNAPSHOT com.amazonaws.serverless.archetypes aws-serverless-springboot2-archetype - 1.9.2 + 1.10-SNAPSHOT maven-archetype https://github.com/awslabs/aws-serverless-java-container.git - aws-serverless-java-container-1.9.2 + HEAD diff --git a/aws-serverless-struts-archetype/pom.xml b/aws-serverless-struts-archetype/pom.xml index 3ed5a50ce..b91cfa4bd 100644 --- a/aws-serverless-struts-archetype/pom.xml +++ b/aws-serverless-struts-archetype/pom.xml @@ -4,17 +4,17 @@ com.amazonaws.serverless aws-serverless-java-container - 1.9.2 + 1.10-SNAPSHOT com.amazonaws.serverless.archetypes aws-serverless-struts-archetype - 1.9.2 + 1.10-SNAPSHOT maven-archetype https://github.com/awslabs/aws-serverless-java-container.git - aws-serverless-java-container-1.9.2 + HEAD diff --git a/pom.xml b/pom.xml index 44ac1cb4d..2c3ff9524 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.amazonaws.serverless aws-serverless-java-container pom - 1.9.2 + 1.10-SNAPSHOT AWS Serverless Java container A Java framework to run Spring, Spring Boot, Jersey, Spark, and Struts applications inside AWS Lambda https://github.com/awslabs/aws-serverless-java-container @@ -41,7 +41,7 @@ https://github.com/awslabs/aws-serverless-java-container scm:git:https://github.com/awslabs/aws-serverless-java-container.git - aws-serverless-java-container-1.9.2 + HEAD From 47b259893a0423a9e30706a71c618905f49f277e Mon Sep 17 00:00:00 2001 From: Daan Kerkhofs <17711209+kerkhofsd@users.noreply.github.com> Date: Fri, 14 Apr 2023 11:15:10 +0200 Subject: [PATCH 036/623] gh-511 Adapt AwsProxyHttpServletRequest getLocale tests --- .../AwsProxyHttpServletRequestTest.java | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) 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 73c07a8f2..af272e231 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 @@ -501,7 +501,7 @@ void getLocales_validAcceptHeader_expectSingleLocale(String type) { int localesNo = 0; while (locales.hasMoreElements()) { Locale defaultLocale = locales.nextElement(); - assertEquals(new Locale("fr-CH"), defaultLocale); + assertEquals(new Locale("fr", "CH"), defaultLocale); localesNo++; } assertEquals(1, localesNo); @@ -512,7 +512,7 @@ void getLocales_validAcceptHeader_expectSingleLocale(String type) { void getLocales_validAcceptHeaderMultipleLocales_expectFullLocaleList(String type) { initAwsProxyHttpServletRequestTest(type); AwsProxyRequestBuilder req = getRequestWithHeaders(); - req.header(HttpHeaders.ACCEPT_LANGUAGE, "fr-CH, fr;q=0.9, en;q=0.8, de;q=0.7, *;q=0.5"); + req.header(HttpHeaders.ACCEPT_LANGUAGE, "fr-CA, fr;q=0.9, en;q=0.8, de;q=0.7, *;q=0.5"); HttpServletRequest servletRequest = getRequest(req, null, null); Enumeration locales = servletRequest.getLocales(); List localesList = new ArrayList<>(); @@ -520,14 +520,14 @@ void getLocales_validAcceptHeaderMultipleLocales_expectFullLocaleList(String typ localesList.add(locales.nextElement()); } assertEquals(5, localesList.size()); - assertEquals(new Locale("fr-CH"), localesList.get(0)); - assertEquals(new Locale("fr"), localesList.get(1)); - assertEquals(new Locale("en"), localesList.get(2)); + assertEquals(Locale.CANADA_FRENCH, localesList.get(0)); + assertEquals(Locale.FRENCH, localesList.get(1)); + assertEquals(Locale.ENGLISH, localesList.get(2)); assertEquals(new Locale("de"), localesList.get(3)); assertEquals(new Locale("*"), localesList.get(4)); assertNotNull(servletRequest.getLocale()); - assertEquals(new Locale("fr-CH"), servletRequest.getLocale()); + assertEquals(Locale.CANADA_FRENCH, servletRequest.getLocale()); } @MethodSource("data") @@ -535,7 +535,7 @@ void getLocales_validAcceptHeaderMultipleLocales_expectFullLocaleList(String typ void getLocales_validAcceptHeaderMultipleLocales_expectFullLocaleListOrdered(String type) { initAwsProxyHttpServletRequestTest(type); AwsProxyRequestBuilder req = getRequestWithHeaders(); - req.header(HttpHeaders.ACCEPT_LANGUAGE, "fr-CH, en;q=0.8, de;q=0.7, *;q=0.5, fr;q=0.9"); + req.header(HttpHeaders.ACCEPT_LANGUAGE, "fr-CA, en;q=0.8, de;q=0.7, *;q=0.5, fr;q=0.9"); HttpServletRequest servletRequest = getRequest(req, null, null); Enumeration locales = servletRequest.getLocales(); List localesList = new ArrayList<>(); @@ -543,9 +543,9 @@ void getLocales_validAcceptHeaderMultipleLocales_expectFullLocaleListOrdered(Str localesList.add(locales.nextElement()); } assertEquals(5, localesList.size()); - assertEquals(new Locale("fr-CH"), localesList.get(0)); - assertEquals(new Locale("fr"), localesList.get(1)); - assertEquals(new Locale("en"), localesList.get(2)); + assertEquals(Locale.CANADA_FRENCH, localesList.get(0)); + assertEquals(Locale.FRENCH, localesList.get(1)); + assertEquals(Locale.ENGLISH, localesList.get(2)); assertEquals(new Locale("de"), localesList.get(3)); assertEquals(new Locale("*"), localesList.get(4)); } From be3a7dd3c5dd8bfd9743d868bddad300c40388d1 Mon Sep 17 00:00:00 2001 From: Daan Kerkhofs <17711209+kerkhofsd@users.noreply.github.com> Date: Fri, 14 Apr 2023 11:15:10 +0200 Subject: [PATCH 037/623] gh-511 Support country part in Accept-Language language tags --- .../AwsHttpApiV2ProxyHttpServletRequest.java | 24 ++------- .../servlet/AwsHttpServletRequest.java | 51 +++++++++++++++++-- .../servlet/AwsProxyHttpServletRequest.java | 38 ++------------ 3 files changed, 53 insertions(+), 60 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 09a5e8846..c03facc32 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 @@ -408,31 +408,13 @@ public String getRemoteHost() { @Override public Locale getLocale() { - // Accept-Language: fr-CH, fr;q=0.9, en;q=0.8, de;q=0.7, *;q=0.5 - List values = this.parseHeaderValue( - headers.getFirst(HttpHeaders.ACCEPT_LANGUAGE), ",", ";" - ); - if (values.size() == 0) { - return Locale.getDefault(); - } - return new Locale(values.get(0).getValue()); + List locales = parseAcceptLanguageHeader(headers.getFirst(HttpHeaders.ACCEPT_LANGUAGE)); + return locales.size() == 0 ? Locale.getDefault() : locales.get(0); } @Override public Enumeration getLocales() { - List values = this.parseHeaderValue( - headers.getFirst(HttpHeaders.ACCEPT_LANGUAGE), ",", ";" - ); - - List locales = new ArrayList<>(); - if (values.size() == 0) { - locales.add(Locale.getDefault()); - } else { - for (HeaderValue locale : values) { - locales.add(new Locale(locale.getValue())); - } - } - + List locales = parseAcceptLanguageHeader(headers.getFirst(HttpHeaders.ACCEPT_LANGUAGE)); return Collections.enumeration(locales); } 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 0a2ab1992..d2157e3d8 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 @@ -16,9 +16,11 @@ import com.amazonaws.serverless.proxy.internal.LambdaContainerHandler; import com.amazonaws.serverless.proxy.internal.SecurityUtils; import com.amazonaws.serverless.proxy.internal.testutils.Timer; -import com.amazonaws.serverless.proxy.model.*; +import com.amazonaws.serverless.proxy.model.AwsProxyRequestContext; +import com.amazonaws.serverless.proxy.model.ContainerConfig; +import com.amazonaws.serverless.proxy.model.Headers; +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.fileupload.FileItem; import org.apache.commons.fileupload.FileUploadException; @@ -30,10 +32,15 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.servlet.*; -import javax.servlet.http.*; +import javax.servlet.DispatcherType; +import javax.servlet.ServletContext; +import javax.servlet.ServletException; +import javax.servlet.ServletInputStream; +import javax.servlet.http.Cookie; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; +import javax.servlet.http.Part; import javax.ws.rs.core.MediaType; - import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.UnsupportedEncodingException; @@ -697,6 +704,40 @@ protected List parseHeaderValue(String headerValue, String valueSep return values; } + protected List parseAcceptLanguageHeader(String headerValue) { + // Accept-Language: fr-CH, fr;q=0.9, en;q=0.8, de;q=0.7, *;q=0.5 + List values = this.parseHeaderValue( + headerValue, ",", ";" + ); + + List locales = new ArrayList<>(); + if (values.size() == 0) { + locales.add(Locale.getDefault()); + } else { + for (HeaderValue locale : values) { + locales.add(parseLanguageTag(locale.getValue())); + } + } + + return locales; + } + + protected Locale parseLanguageTag(String languageTag) { + languageTag = languageTag.trim(); + String language; + String country = ""; + + int indexDash = languageTag.indexOf('-'); + if (indexDash > -1) { + country = languageTag.substring(indexDash + 1).trim(); + language = languageTag.substring(0, indexDash).trim(); + } else { + language = languageTag; + } + + return new Locale(language, country); + } + static String decodeRequestPath(String requestPath, ContainerConfig config) { try { return URLDecoder.decode(requestPath, config.getUriEncoding()); 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 61486bc74..c85bf80a4 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 @@ -20,7 +20,6 @@ import com.amazonaws.serverless.proxy.model.Headers; 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; @@ -29,7 +28,6 @@ import javax.servlet.http.*; import javax.ws.rs.core.HttpHeaders; import javax.ws.rs.core.SecurityContext; - import java.io.BufferedReader; import java.io.IOException; import java.io.StringReader; @@ -38,15 +36,7 @@ import java.time.Instant; import java.time.ZonedDateTime; import java.time.format.DateTimeParseException; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.Collections; -import java.util.Enumeration; -import java.util.List; -import java.util.Locale; -import java.util.Map; -import java.util.Set; +import java.util.*; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -471,36 +461,16 @@ public String getRemoteHost() { @Override public Locale getLocale() { - // Accept-Language: fr-CH, fr;q=0.9, en;q=0.8, de;q=0.7, *;q=0.5 - List values = this.parseHeaderValue( - request.getMultiValueHeaders().getFirst(HttpHeaders.ACCEPT_LANGUAGE), ",", ";" - ); - if (values.size() == 0) { - return Locale.getDefault(); - } - return new Locale(values.get(0).getValue()); + List locales = parseAcceptLanguageHeader(request.getMultiValueHeaders().getFirst(HttpHeaders.ACCEPT_LANGUAGE)); + return locales.size() == 0 ? Locale.getDefault() : locales.get(0); } - @Override public Enumeration getLocales() { - List values = this.parseHeaderValue( - request.getMultiValueHeaders().getFirst(HttpHeaders.ACCEPT_LANGUAGE), ",", ";" - ); - - List locales = new ArrayList<>(); - if (values.size() == 0) { - locales.add(Locale.getDefault()); - } else { - for (HeaderValue locale : values) { - locales.add(new Locale(locale.getValue())); - } - } - + List locales = parseAcceptLanguageHeader(request.getMultiValueHeaders().getFirst(HttpHeaders.ACCEPT_LANGUAGE)); return Collections.enumeration(locales); } - @Override public boolean isSecure() { return securityContext.isSecure(); From 4de5f4be69b47007d6b325e99c70e4658d482a2a Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Mon, 24 Apr 2023 08:09:21 +0200 Subject: [PATCH 038/623] chore(deps): Update Spring dependencies (framework to 5.3.27, security to 5.7.8, boot to 2.7.11) --- aws-serverless-java-container-core/pom.xml | 2 +- aws-serverless-java-container-spring/pom.xml | 4 ++-- aws-serverless-java-container-springboot2/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/springboot2/pet-store/build.gradle | 2 +- samples/springboot2/pet-store/pom.xml | 2 +- 11 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 462cbc83c..584c39842 100644 --- a/aws-serverless-java-container-core/pom.xml +++ b/aws-serverless-java-container-core/pom.xml @@ -105,7 +105,7 @@ org.springframework.security spring-security-web - 5.7.7 + 5.7.8 test diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml index 7a58ac1d3..444b95be0 100644 --- a/aws-serverless-java-container-spring/pom.xml +++ b/aws-serverless-java-container-spring/pom.xml @@ -16,8 +16,8 @@ - 5.3.26 - 5.7.7 + 5.3.27 + 5.7.8 diff --git a/aws-serverless-java-container-springboot2/pom.xml b/aws-serverless-java-container-springboot2/pom.xml index d9dfb4aaf..33bb8171b 100644 --- a/aws-serverless-java-container-springboot2/pom.xml +++ b/aws-serverless-java-container-springboot2/pom.xml @@ -15,9 +15,9 @@ 1.10-SNAPSHOT - 5.3.26 - 2.7.10 - 5.7.7 + 5.3.27 + 2.7.11 + 5.7.8 1.8 1.8 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 126348451..713fc0eb1 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:5.3.26', - 'org.springframework:spring-context:5.3.26', + 'org.springframework:spring-webmvc:5.3.27', + 'org.springframework:spring-context:5.3.27', 'com.amazonaws.serverless:aws-serverless-java-container-spring:[1.0,)', 'org.apache.logging.log4j:log4j-core:2.19.0', 'org.apache.logging.log4j:log4j-api:2.19.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 5f30c5c78..3fbd51264 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 @@ 1.8 1.8 - 5.3.26 + 5.3.27 4.13.2 2.19.0 diff --git a/aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/build.gradle index 36a13b5d7..d6946e7f0 100644 --- a/aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/build.gradle +++ b/aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/build.gradle @@ -8,7 +8,7 @@ repositories { dependencies { implementation ( - 'org.springframework.boot:spring-boot-starter-web:2.7.10', + 'org.springframework.boot:spring-boot-starter-web:2.7.11', 'com.amazonaws.serverless:aws-serverless-java-container-springboot2:[1.0,)', 'io.symphonia:lambda-logging:1.0.3' ) diff --git a/aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/pom.xml index 5612389cd..53404bdb1 100644 --- a/aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/pom.xml +++ b/aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/pom.xml @@ -16,7 +16,7 @@ org.springframework.boot spring-boot-starter-parent - 2.7.10 + 2.7.11 diff --git a/samples/spring/pet-store/build.gradle b/samples/spring/pet-store/build.gradle index 261f094c4..4d5a460fe 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:5.3.26', - 'org.springframework:spring-context:5.3.26', + 'org.springframework:spring-webmvc:5.3.27', + 'org.springframework:spring-context:5.3.27', 'com.amazonaws.serverless:aws-serverless-java-container-spring:[1.0,)', 'org.apache.logging.log4j:log4j-core:2.19.0', 'org.apache.logging.log4j:log4j-api:2.19.0', diff --git a/samples/spring/pet-store/pom.xml b/samples/spring/pet-store/pom.xml index c467c4984..73cf9dc1a 100644 --- a/samples/spring/pet-store/pom.xml +++ b/samples/spring/pet-store/pom.xml @@ -26,7 +26,7 @@ 1.8 1.8 - 5.3.26 + 5.3.27 4.13.2 2.19.0 diff --git a/samples/springboot2/pet-store/build.gradle b/samples/springboot2/pet-store/build.gradle index 5f4624197..60affd722 100644 --- a/samples/springboot2/pet-store/build.gradle +++ b/samples/springboot2/pet-store/build.gradle @@ -8,7 +8,7 @@ repositories { dependencies { implementation ( - implementation('org.springframework.boot:spring-boot-starter-web:2.7.10') { + implementation('org.springframework.boot:spring-boot-starter-web:2.7.11') { exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat' }, 'com.amazonaws.serverless:aws-serverless-java-container-springboot2:[1.4,)', diff --git a/samples/springboot2/pet-store/pom.xml b/samples/springboot2/pet-store/pom.xml index 202d9c343..534d565d7 100644 --- a/samples/springboot2/pet-store/pom.xml +++ b/samples/springboot2/pet-store/pom.xml @@ -13,7 +13,7 @@ org.springframework.boot spring-boot-starter-parent - 2.7.10 + 2.7.11 From fe6cb1752af37fa79345c1798aa229a1ea350692 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Mon, 24 Apr 2023 08:58:36 +0200 Subject: [PATCH 039/623] chore(deps): Update Apache HttpComponents dependencies (httpmime, httpclient to 4.5.14, httpcore to 4.4.16) --- aws-serverless-java-container-core/pom.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml index 584c39842..f86819ecc 100644 --- a/aws-serverless-java-container-core/pom.xml +++ b/aws-serverless-java-container-core/pom.xml @@ -68,7 +68,7 @@ org.apache.httpcomponents httpmime - 4.5.13 + 4.5.14 compile @@ -76,7 +76,7 @@ org.apache.httpcomponents httpclient - 4.5.13 + 4.5.14 test @@ -97,7 +97,7 @@ org.apache.httpcomponents httpcore - 4.4.15 + 4.4.16 compile true From c9c0ab53fb54388e355000fe387955d0e2c42150 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Mon, 24 Apr 2023 09:14:37 +0200 Subject: [PATCH 040/623] chore(deps): Update Jackson dependency to 2.15.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 6ed4bc370..949112fcf 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:[1.9,)', - 'com.fasterxml.jackson.core:jackson-databind:2.14.2', + 'com.fasterxml.jackson.core:jackson-databind:2.15.0', 'io.symphonia:lambda-logging:1.0.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 195dcf39d..1783f79a3 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 @@ 1.8 1.8 2.39.1 - 2.14.2 + 2.15.0 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 3632fe38a..73adc7fed 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.14.2', + 'com.fasterxml.jackson.core:jackson-databind:2.15.0', 'io.symphonia:lambda-logging:1.0.3' ) 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 21eaced6e..358bbd5ec 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 @@ 1.8 1.8 - 2.14.2 + 2.15.0 2.9.1 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 713fc0eb1..66093c4b1 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.19.0', 'org.apache.logging.log4j:log4j-api:2.19.0', 'org.apache.logging.log4j:log4j-slf4j-impl:2.19.0', - 'com.fasterxml.jackson.core:jackson-databind:2.14.2', + 'com.fasterxml.jackson.core:jackson-databind:2.15.0', '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 a944bcdaf..83e8e8bb0 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.14.2') - implementation ('com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.14.2') + implementation ('com.fasterxml.jackson.core:jackson-databind:2.15.0') + implementation ('com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.15.0') implementation ('org.apache.logging.log4j:log4j-core:2.19.0') implementation ('org.apache.logging.log4j:log4j-api:2.19.0') implementation ('org.apache.logging.log4j:log4j-slf4j-impl:2.19.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 b9abc256b..c7aafda35 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 @@ 1.8 1.8 6.1.2 - 2.14.2 + 2.15.0 4.13.2 2.19.0 diff --git a/pom.xml b/pom.xml index 2c3ff9524..3bf6fbf0d 100644 --- a/pom.xml +++ b/pom.xml @@ -82,7 +82,7 @@ 0.7 8.1.2 - 2.14.2 + 2.15.0 2.0.7 5.9.2 4.11.0 diff --git a/samples/jersey/pet-store/build.gradle b/samples/jersey/pet-store/build.gradle index c0f5bd933..b32dc8ef8 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:[1.9,)', - 'com.fasterxml.jackson.core:jackson-databind:2.14.2', + 'com.fasterxml.jackson.core:jackson-databind:2.15.0', 'io.symphonia:lambda-logging:1.0.3' ) diff --git a/samples/jersey/pet-store/pom.xml b/samples/jersey/pet-store/pom.xml index 521112399..f6b5bed42 100644 --- a/samples/jersey/pet-store/pom.xml +++ b/samples/jersey/pet-store/pom.xml @@ -27,7 +27,7 @@ 1.8 1.8 2.39.1 - 2.14.2 + 2.15.0 diff --git a/samples/spark/pet-store/build.gradle b/samples/spark/pet-store/build.gradle index f90fcd3c3..78b700c35 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.14.2', + 'com.fasterxml.jackson.core:jackson-databind:2.15.0', 'io.symphonia:lambda-logging:1.0.3' ) } diff --git a/samples/spark/pet-store/pom.xml b/samples/spark/pet-store/pom.xml index fe887dbd5..e2d89cb30 100644 --- a/samples/spark/pet-store/pom.xml +++ b/samples/spark/pet-store/pom.xml @@ -26,7 +26,7 @@ 1.8 1.8 - 2.14.2 + 2.15.0 2.9.1 diff --git a/samples/spring/pet-store/build.gradle b/samples/spring/pet-store/build.gradle index 4d5a460fe..759aa0610 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.19.0', 'org.apache.logging.log4j:log4j-api:2.19.0', 'org.apache.logging.log4j:log4j-slf4j-impl:2.19.0', - 'com.fasterxml.jackson.core:jackson-databind:2.14.2', + 'com.fasterxml.jackson.core:jackson-databind:2.15.0', '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 d48136b41..bd4738f0f 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.14.2', - 'com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.14.2', + 'com.fasterxml.jackson.core:jackson-databind:2.15.0', + 'com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.15.0', 'org.apache.logging.log4j:log4j-core:2.19.0', 'org.apache.logging.log4j:log4j-api:2.19.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 6741d350e..2a90ffc05 100644 --- a/samples/struts/pet-store/pom.xml +++ b/samples/struts/pet-store/pom.xml @@ -27,7 +27,7 @@ 1.8 1.8 6.1.2 - 2.14.2 + 2.15.0 4.13.2 2.19.0 From a4c406e49316b4d2972d28f7054233172cf21bd3 Mon Sep 17 00:00:00 2001 From: deki Date: Mon, 24 Apr 2023 08:13:21 +0000 Subject: [PATCH 041/623] chore: release -prepare release aws-serverless-java-container-1.9.3 --- aws-serverless-java-container-core/pom.xml | 4 ++-- aws-serverless-java-container-jersey/pom.xml | 6 +++--- aws-serverless-java-container-spark/pom.xml | 6 +++--- aws-serverless-java-container-spring/pom.xml | 6 +++--- aws-serverless-java-container-springboot2/pom.xml | 6 +++--- aws-serverless-java-container-struts/pom.xml | 6 +++--- aws-serverless-jersey-archetype/pom.xml | 6 +++--- aws-serverless-spark-archetype/pom.xml | 6 +++--- aws-serverless-spring-archetype/pom.xml | 6 +++--- aws-serverless-springboot2-archetype/pom.xml | 6 +++--- aws-serverless-struts-archetype/pom.xml | 6 +++--- pom.xml | 4 ++-- 12 files changed, 34 insertions(+), 34 deletions(-) diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml index f86819ecc..1f0978bf8 100644 --- a/aws-serverless-java-container-core/pom.xml +++ b/aws-serverless-java-container-core/pom.xml @@ -6,12 +6,12 @@ AWS Serverless Java container support - Core Allows Java applications written for a servlet container to run in AWS Lambda https://aws.amazon.com/lambda - 1.10-SNAPSHOT + 1.9.3 com.amazonaws.serverless aws-serverless-java-container - 1.10-SNAPSHOT + 1.9.3 .. diff --git a/aws-serverless-java-container-jersey/pom.xml b/aws-serverless-java-container-jersey/pom.xml index ae8949859..290b5cf93 100644 --- a/aws-serverless-java-container-jersey/pom.xml +++ b/aws-serverless-java-container-jersey/pom.xml @@ -6,12 +6,12 @@ AWS Serverless Java container support - Jersey implementation Allows Java applications written for Jersey to run in AWS Lambda https://aws.amazon.com/lambda - 1.10-SNAPSHOT + 1.9.3 com.amazonaws.serverless aws-serverless-java-container - 1.10-SNAPSHOT + 1.9.3 .. @@ -24,7 +24,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 1.10-SNAPSHOT + 1.9.3 com.fasterxml.jackson.core diff --git a/aws-serverless-java-container-spark/pom.xml b/aws-serverless-java-container-spark/pom.xml index f5ea6b868..d5210669a 100644 --- a/aws-serverless-java-container-spark/pom.xml +++ b/aws-serverless-java-container-spark/pom.xml @@ -6,12 +6,12 @@ AWS Serverless Java container support - Spark implementation Allows Java applications written for Spark to run in AWS Lambda https://aws.amazon.com/lambda - 1.10-SNAPSHOT + 1.9.3 com.amazonaws.serverless aws-serverless-java-container - 1.10-SNAPSHOT + 1.9.3 .. @@ -24,7 +24,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 1.10-SNAPSHOT + 1.9.3 diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml index 444b95be0..82b2286c8 100644 --- a/aws-serverless-java-container-spring/pom.xml +++ b/aws-serverless-java-container-spring/pom.xml @@ -6,12 +6,12 @@ AWS Serverless Java container support - Spring implementation Allows Java applications written for the Spring framework to run in AWS Lambda https://aws.amazon.com/lambda - 1.10-SNAPSHOT + 1.9.3 com.amazonaws.serverless aws-serverless-java-container - 1.10-SNAPSHOT + 1.9.3 .. @@ -25,7 +25,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 1.10-SNAPSHOT + 1.9.3 diff --git a/aws-serverless-java-container-springboot2/pom.xml b/aws-serverless-java-container-springboot2/pom.xml index 33bb8171b..db2253006 100644 --- a/aws-serverless-java-container-springboot2/pom.xml +++ b/aws-serverless-java-container-springboot2/pom.xml @@ -3,7 +3,7 @@ aws-serverless-java-container com.amazonaws.serverless - 1.10-SNAPSHOT + 1.9.3 4.0.0 @@ -12,7 +12,7 @@ AWS Serverless Java container support - SpringBoot 2 implementation Allows Java applications written for SpringBoot 2 to run in AWS Lambda https://aws.amazon.com/lambda - 1.10-SNAPSHOT + 1.9.3 5.3.27 @@ -27,7 +27,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 1.10-SNAPSHOT + 1.9.3 diff --git a/aws-serverless-java-container-struts/pom.xml b/aws-serverless-java-container-struts/pom.xml index 1c628e943..3a8857551 100644 --- a/aws-serverless-java-container-struts/pom.xml +++ b/aws-serverless-java-container-struts/pom.xml @@ -6,12 +6,12 @@ AWS Serverless Java container support - Struts implementation Allows Java applications written for the Struts framework to run in AWS Lambda https://aws.amazon.com/lambda - 1.10-SNAPSHOT + 1.9.3 com.amazonaws.serverless aws-serverless-java-container - 1.10-SNAPSHOT + 1.9.3 @@ -23,7 +23,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 1.10-SNAPSHOT + 1.9.3 diff --git a/aws-serverless-jersey-archetype/pom.xml b/aws-serverless-jersey-archetype/pom.xml index c13c05869..57df9ba3d 100644 --- a/aws-serverless-jersey-archetype/pom.xml +++ b/aws-serverless-jersey-archetype/pom.xml @@ -4,17 +4,17 @@ com.amazonaws.serverless aws-serverless-java-container - 1.10-SNAPSHOT + 1.9.3 com.amazonaws.serverless.archetypes aws-serverless-jersey-archetype - 1.10-SNAPSHOT + 1.9.3 maven-archetype https://github.com/awslabs/aws-serverless-java-container.git - HEAD + aws-serverless-java-container-1.9.3 diff --git a/aws-serverless-spark-archetype/pom.xml b/aws-serverless-spark-archetype/pom.xml index ca3ad3952..6d58e076f 100644 --- a/aws-serverless-spark-archetype/pom.xml +++ b/aws-serverless-spark-archetype/pom.xml @@ -4,17 +4,17 @@ com.amazonaws.serverless aws-serverless-java-container - 1.10-SNAPSHOT + 1.9.3 com.amazonaws.serverless.archetypes aws-serverless-spark-archetype - 1.10-SNAPSHOT + 1.9.3 maven-archetype https://github.com/awslabs/aws-serverless-java-container.git - HEAD + aws-serverless-java-container-1.9.3 diff --git a/aws-serverless-spring-archetype/pom.xml b/aws-serverless-spring-archetype/pom.xml index 83dc79743..1adb0f474 100644 --- a/aws-serverless-spring-archetype/pom.xml +++ b/aws-serverless-spring-archetype/pom.xml @@ -4,17 +4,17 @@ com.amazonaws.serverless aws-serverless-java-container - 1.10-SNAPSHOT + 1.9.3 com.amazonaws.serverless.archetypes aws-serverless-spring-archetype - 1.10-SNAPSHOT + 1.9.3 maven-archetype https://github.com/awslabs/aws-serverless-java-container.git - HEAD + aws-serverless-java-container-1.9.3 diff --git a/aws-serverless-springboot2-archetype/pom.xml b/aws-serverless-springboot2-archetype/pom.xml index 1e7279dbf..d6a2f1d43 100644 --- a/aws-serverless-springboot2-archetype/pom.xml +++ b/aws-serverless-springboot2-archetype/pom.xml @@ -4,17 +4,17 @@ com.amazonaws.serverless aws-serverless-java-container - 1.10-SNAPSHOT + 1.9.3 com.amazonaws.serverless.archetypes aws-serverless-springboot2-archetype - 1.10-SNAPSHOT + 1.9.3 maven-archetype https://github.com/awslabs/aws-serverless-java-container.git - HEAD + aws-serverless-java-container-1.9.3 diff --git a/aws-serverless-struts-archetype/pom.xml b/aws-serverless-struts-archetype/pom.xml index b91cfa4bd..e60f19e34 100644 --- a/aws-serverless-struts-archetype/pom.xml +++ b/aws-serverless-struts-archetype/pom.xml @@ -4,17 +4,17 @@ com.amazonaws.serverless aws-serverless-java-container - 1.10-SNAPSHOT + 1.9.3 com.amazonaws.serverless.archetypes aws-serverless-struts-archetype - 1.10-SNAPSHOT + 1.9.3 maven-archetype https://github.com/awslabs/aws-serverless-java-container.git - HEAD + aws-serverless-java-container-1.9.3 diff --git a/pom.xml b/pom.xml index 3bf6fbf0d..09e91ab36 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.amazonaws.serverless aws-serverless-java-container pom - 1.10-SNAPSHOT + 1.9.3 AWS Serverless Java container A Java framework to run Spring, Spring Boot, Jersey, Spark, and Struts applications inside AWS Lambda https://github.com/awslabs/aws-serverless-java-container @@ -41,7 +41,7 @@ https://github.com/awslabs/aws-serverless-java-container scm:git:https://github.com/awslabs/aws-serverless-java-container.git - HEAD + aws-serverless-java-container-1.9.3 From 063b443eaa06b137ff50ef1302e766bc28577ce2 Mon Sep 17 00:00:00 2001 From: deki Date: Mon, 24 Apr 2023 08:13:23 +0000 Subject: [PATCH 042/623] chore: release -prepare for next development iteration --- aws-serverless-java-container-core/pom.xml | 4 ++-- aws-serverless-java-container-jersey/pom.xml | 6 +++--- aws-serverless-java-container-spark/pom.xml | 6 +++--- aws-serverless-java-container-spring/pom.xml | 6 +++--- aws-serverless-java-container-springboot2/pom.xml | 6 +++--- aws-serverless-java-container-struts/pom.xml | 6 +++--- aws-serverless-jersey-archetype/pom.xml | 6 +++--- aws-serverless-spark-archetype/pom.xml | 6 +++--- aws-serverless-spring-archetype/pom.xml | 6 +++--- aws-serverless-springboot2-archetype/pom.xml | 6 +++--- aws-serverless-struts-archetype/pom.xml | 6 +++--- pom.xml | 4 ++-- 12 files changed, 34 insertions(+), 34 deletions(-) diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml index 1f0978bf8..f86819ecc 100644 --- a/aws-serverless-java-container-core/pom.xml +++ b/aws-serverless-java-container-core/pom.xml @@ -6,12 +6,12 @@ AWS Serverless Java container support - Core Allows Java applications written for a servlet container to run in AWS Lambda https://aws.amazon.com/lambda - 1.9.3 + 1.10-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container - 1.9.3 + 1.10-SNAPSHOT .. diff --git a/aws-serverless-java-container-jersey/pom.xml b/aws-serverless-java-container-jersey/pom.xml index 290b5cf93..ae8949859 100644 --- a/aws-serverless-java-container-jersey/pom.xml +++ b/aws-serverless-java-container-jersey/pom.xml @@ -6,12 +6,12 @@ AWS Serverless Java container support - Jersey implementation Allows Java applications written for Jersey to run in AWS Lambda https://aws.amazon.com/lambda - 1.9.3 + 1.10-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container - 1.9.3 + 1.10-SNAPSHOT .. @@ -24,7 +24,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 1.9.3 + 1.10-SNAPSHOT com.fasterxml.jackson.core diff --git a/aws-serverless-java-container-spark/pom.xml b/aws-serverless-java-container-spark/pom.xml index d5210669a..f5ea6b868 100644 --- a/aws-serverless-java-container-spark/pom.xml +++ b/aws-serverless-java-container-spark/pom.xml @@ -6,12 +6,12 @@ AWS Serverless Java container support - Spark implementation Allows Java applications written for Spark to run in AWS Lambda https://aws.amazon.com/lambda - 1.9.3 + 1.10-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container - 1.9.3 + 1.10-SNAPSHOT .. @@ -24,7 +24,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 1.9.3 + 1.10-SNAPSHOT diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml index 82b2286c8..444b95be0 100644 --- a/aws-serverless-java-container-spring/pom.xml +++ b/aws-serverless-java-container-spring/pom.xml @@ -6,12 +6,12 @@ AWS Serverless Java container support - Spring implementation Allows Java applications written for the Spring framework to run in AWS Lambda https://aws.amazon.com/lambda - 1.9.3 + 1.10-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container - 1.9.3 + 1.10-SNAPSHOT .. @@ -25,7 +25,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 1.9.3 + 1.10-SNAPSHOT diff --git a/aws-serverless-java-container-springboot2/pom.xml b/aws-serverless-java-container-springboot2/pom.xml index db2253006..33bb8171b 100644 --- a/aws-serverless-java-container-springboot2/pom.xml +++ b/aws-serverless-java-container-springboot2/pom.xml @@ -3,7 +3,7 @@ aws-serverless-java-container com.amazonaws.serverless - 1.9.3 + 1.10-SNAPSHOT 4.0.0 @@ -12,7 +12,7 @@ AWS Serverless Java container support - SpringBoot 2 implementation Allows Java applications written for SpringBoot 2 to run in AWS Lambda https://aws.amazon.com/lambda - 1.9.3 + 1.10-SNAPSHOT 5.3.27 @@ -27,7 +27,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 1.9.3 + 1.10-SNAPSHOT diff --git a/aws-serverless-java-container-struts/pom.xml b/aws-serverless-java-container-struts/pom.xml index 3a8857551..1c628e943 100644 --- a/aws-serverless-java-container-struts/pom.xml +++ b/aws-serverless-java-container-struts/pom.xml @@ -6,12 +6,12 @@ AWS Serverless Java container support - Struts implementation Allows Java applications written for the Struts framework to run in AWS Lambda https://aws.amazon.com/lambda - 1.9.3 + 1.10-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container - 1.9.3 + 1.10-SNAPSHOT @@ -23,7 +23,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 1.9.3 + 1.10-SNAPSHOT diff --git a/aws-serverless-jersey-archetype/pom.xml b/aws-serverless-jersey-archetype/pom.xml index 57df9ba3d..c13c05869 100644 --- a/aws-serverless-jersey-archetype/pom.xml +++ b/aws-serverless-jersey-archetype/pom.xml @@ -4,17 +4,17 @@ com.amazonaws.serverless aws-serverless-java-container - 1.9.3 + 1.10-SNAPSHOT com.amazonaws.serverless.archetypes aws-serverless-jersey-archetype - 1.9.3 + 1.10-SNAPSHOT maven-archetype https://github.com/awslabs/aws-serverless-java-container.git - aws-serverless-java-container-1.9.3 + HEAD diff --git a/aws-serverless-spark-archetype/pom.xml b/aws-serverless-spark-archetype/pom.xml index 6d58e076f..ca3ad3952 100644 --- a/aws-serverless-spark-archetype/pom.xml +++ b/aws-serverless-spark-archetype/pom.xml @@ -4,17 +4,17 @@ com.amazonaws.serverless aws-serverless-java-container - 1.9.3 + 1.10-SNAPSHOT com.amazonaws.serverless.archetypes aws-serverless-spark-archetype - 1.9.3 + 1.10-SNAPSHOT maven-archetype https://github.com/awslabs/aws-serverless-java-container.git - aws-serverless-java-container-1.9.3 + HEAD diff --git a/aws-serverless-spring-archetype/pom.xml b/aws-serverless-spring-archetype/pom.xml index 1adb0f474..83dc79743 100644 --- a/aws-serverless-spring-archetype/pom.xml +++ b/aws-serverless-spring-archetype/pom.xml @@ -4,17 +4,17 @@ com.amazonaws.serverless aws-serverless-java-container - 1.9.3 + 1.10-SNAPSHOT com.amazonaws.serverless.archetypes aws-serverless-spring-archetype - 1.9.3 + 1.10-SNAPSHOT maven-archetype https://github.com/awslabs/aws-serverless-java-container.git - aws-serverless-java-container-1.9.3 + HEAD diff --git a/aws-serverless-springboot2-archetype/pom.xml b/aws-serverless-springboot2-archetype/pom.xml index d6a2f1d43..1e7279dbf 100644 --- a/aws-serverless-springboot2-archetype/pom.xml +++ b/aws-serverless-springboot2-archetype/pom.xml @@ -4,17 +4,17 @@ com.amazonaws.serverless aws-serverless-java-container - 1.9.3 + 1.10-SNAPSHOT com.amazonaws.serverless.archetypes aws-serverless-springboot2-archetype - 1.9.3 + 1.10-SNAPSHOT maven-archetype https://github.com/awslabs/aws-serverless-java-container.git - aws-serverless-java-container-1.9.3 + HEAD diff --git a/aws-serverless-struts-archetype/pom.xml b/aws-serverless-struts-archetype/pom.xml index e60f19e34..b91cfa4bd 100644 --- a/aws-serverless-struts-archetype/pom.xml +++ b/aws-serverless-struts-archetype/pom.xml @@ -4,17 +4,17 @@ com.amazonaws.serverless aws-serverless-java-container - 1.9.3 + 1.10-SNAPSHOT com.amazonaws.serverless.archetypes aws-serverless-struts-archetype - 1.9.3 + 1.10-SNAPSHOT maven-archetype https://github.com/awslabs/aws-serverless-java-container.git - aws-serverless-java-container-1.9.3 + HEAD diff --git a/pom.xml b/pom.xml index 09e91ab36..3bf6fbf0d 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.amazonaws.serverless aws-serverless-java-container pom - 1.9.3 + 1.10-SNAPSHOT AWS Serverless Java container A Java framework to run Spring, Spring Boot, Jersey, Spark, and Struts applications inside AWS Lambda https://github.com/awslabs/aws-serverless-java-container @@ -41,7 +41,7 @@ https://github.com/awslabs/aws-serverless-java-container scm:git:https://github.com/awslabs/aws-serverless-java-container.git - aws-serverless-java-container-1.9.3 + HEAD From e806b75283ccea7a12dbc87a402be3ed8fadad6d Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Mon, 24 Apr 2023 10:40:17 +0200 Subject: [PATCH 043/623] doc: created overview about maintained versions --- README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.md b/README.md index d4c836e28..895313892 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,13 @@ The `aws-serverless-java-container` makes it easy to run Java applications writt 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. +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) From dd524dc35592c5113d9651c088fade9975c21b98 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Mon, 24 Apr 2023 10:44:30 +0200 Subject: [PATCH 044/623] chore: enable CI build for 1.x branch --- .github/workflows/continuous-integration-workflow.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/continuous-integration-workflow.yml b/.github/workflows/continuous-integration-workflow.yml index 2aaf17617..4942f3564 100644 --- a/.github/workflows/continuous-integration-workflow.yml +++ b/.github/workflows/continuous-integration-workflow.yml @@ -4,6 +4,7 @@ on: pull_request: branches: - main + - 1.x workflow_dispatch: jobs: From 749cad712575ab9890aa35a38c87bea49f7eea61 Mon Sep 17 00:00:00 2001 From: Mbea Date: Fri, 31 Mar 2023 16:27:37 -0700 Subject: [PATCH 045/623] Updated versions of Spring, Spring Security, Springboot spring-security-web, servlet API, commons-fileupload. --- aws-serverless-java-container-core/pom.xml | 44 +++++++++++++++---- .../AwsHttpApiV2SecurityContextWriter.java | 2 +- .../proxy/AwsProxyExceptionHandler.java | 6 +-- .../proxy/AwsProxySecurityContextWriter.java | 2 +- .../serverless/proxy/LogFormatter.java | 2 +- .../serverless/proxy/RequestReader.java | 2 +- .../proxy/SecurityContextWriter.java | 2 +- .../internal/LambdaContainerHandler.java | 2 +- .../jaxrs/AwsHttpApiV2SecurityContext.java | 4 +- .../jaxrs/AwsProxySecurityContext.java | 3 +- .../ApacheCombinedServletLogFormatter.java | 7 ++- .../internal/servlet/AwsAsyncContext.java | 6 +-- .../AwsHttpApiV2HttpServletRequestReader.java | 4 +- .../AwsHttpApiV2ProxyHttpServletRequest.java | 8 ++-- .../servlet/AwsHttpServletRequest.java | 33 +++++--------- .../servlet/AwsHttpServletRequestWrapper.java | 4 +- .../servlet/AwsHttpServletResponse.java | 16 +++---- .../internal/servlet/AwsHttpSession.java | 6 +-- .../AwsLambdaServletContainerHandler.java | 10 ++--- .../servlet/AwsProxyHttpServletRequest.java | 32 +++++++++----- .../AwsProxyHttpServletRequestReader.java | 8 ++-- .../AwsProxyHttpServletResponseWriter.java | 4 +- .../servlet/AwsProxyRequestDispatcher.java | 6 +-- .../internal/servlet/AwsProxyRequestPart.java | 2 +- .../internal/servlet/AwsServletContext.java | 43 ++++++++++++++++-- .../servlet/AwsServletInputStream.java | 4 +- .../servlet/AwsServletRegistration.java | 2 +- .../internal/servlet/FilterChainHolder.java | 2 +- .../internal/servlet/FilterChainManager.java | 4 +- .../proxy/internal/servlet/FilterHolder.java | 6 +-- .../ServletLambdaContainerHandlerBuilder.java | 2 +- .../servlet/filters/UrlPathValidator.java | 8 ++-- .../testutils/AwsProxyRequestBuilder.java | 10 +---- .../proxy/internal/testutils/MockServlet.java | 8 ++-- .../proxy/model/MultiValuedTreeMap.java | 2 +- .../proxy/AwsProxyExceptionHandlerTest.java | 6 +-- .../AwsProxySecurityContextWriterTest.java | 3 +- .../serverless/proxy/ResponseWriterTest.java | 2 +- .../internal/LambdaContainerHandlerTest.java | 2 +- .../jaxrs/HttpApiV2SecurityContextTest.java | 4 +- ...ApacheCombinedServletLogFormatterTest.java | 5 +-- .../internal/servlet/AwsAsyncContextTest.java | 12 ++--- .../servlet/AwsFilterChainManagerTest.java | 2 +- ...HttpApiV2HttpServletRequestReaderTest.java | 4 +- .../servlet/AwsHttpServletRequestTest.java | 8 ++-- .../servlet/AwsHttpServletResponseTest.java | 6 +-- .../AwsProxyHttpServletRequestFormTest.java | 8 ++-- .../AwsProxyHttpServletRequestReaderTest.java | 8 ++-- .../AwsProxyHttpServletRequestTest.java | 8 ++-- .../AwsProxyRequestDispatcherTest.java | 8 ++-- .../servlet/AwsServletContextTest.java | 6 +-- .../servlet/AwsServletRegistrationTest.java | 2 +- ...vletLambdaContainerHandlerBuilderTest.java | 2 +- .../servlet/filters/UrlPathValidatorTest.java | 9 ++-- .../pom.xml | 14 +++--- .../SpringBootLambdaContainerHandler.java | 14 ++---- .../spring/SpringBootProxyHandlerBuilder.java | 4 +- ...sReactiveServletEmbeddedServerFactory.java | 2 +- ...erverlessServletEmbeddedServerFactory.java | 2 +- .../proxy/spring/SecurityAppTest.java | 4 +- .../proxy/spring/ServletAppTest.java | 5 +-- ...rlessServletEmbeddedServerFactoryTest.java | 4 +- .../spring/servletapp/MessageController.java | 2 +- .../proxy/spring/servletapp/UserData.java | 6 +-- 64 files changed, 250 insertions(+), 218 deletions(-) diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml index f86819ecc..82135d77a 100644 --- a/aws-serverless-java-container-core/pom.xml +++ b/aws-serverless-java-container-core/pom.xml @@ -17,9 +17,24 @@ 2.1.1 - 3.1.0 + 5.0.0 + + + apache.snapshots + Apache Development Snapshot Repository + https://repository.apache.org/content/repositories/snapshots/ + + false + + + true + + + + + @@ -30,16 +45,16 @@ - javax.servlet - javax.servlet-api - ${servlet.version} + jakarta.servlet + jakarta.servlet-api + 5.0.0 - javax.ws.rs - javax.ws.rs-api - ${jaxrs.version} + jakarta.ws.rs + jakarta.ws.rs-api + 3.0.0-M1 @@ -58,10 +73,15 @@ - + + + org.apache.commons + commons-fileupload2 + 2.0-SNAPSHOT @@ -105,9 +125,14 @@ org.springframework.security spring-security-web - 5.7.8 + 6.0.2 test + + jakarta.activation + jakarta.activation-api + 2.1.0 + @@ -220,4 +245,5 @@ + diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/AwsHttpApiV2SecurityContextWriter.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/AwsHttpApiV2SecurityContextWriter.java index 05d4ed1a2..d4192141a 100644 --- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/AwsHttpApiV2SecurityContextWriter.java +++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/AwsHttpApiV2SecurityContextWriter.java @@ -16,7 +16,7 @@ import com.amazonaws.serverless.proxy.model.HttpApiV2ProxyRequest; import com.amazonaws.services.lambda.runtime.Context; -import javax.ws.rs.core.SecurityContext; +import jakarta.ws.rs.core.SecurityContext; public class AwsHttpApiV2SecurityContextWriter implements SecurityContextWriter { @Override 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 cf2aae3e7..1e30f1415 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 @@ -22,9 +22,9 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.ws.rs.InternalServerErrorException; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.MediaType; +import jakarta.ws.rs.InternalServerErrorException; +import jakarta.ws.rs.core.HttpHeaders; +import jakarta.ws.rs.core.MediaType; import java.io.IOException; import java.io.OutputStream; diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/AwsProxySecurityContextWriter.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/AwsProxySecurityContextWriter.java index 4805e1193..8a58bc478 100644 --- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/AwsProxySecurityContextWriter.java +++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/AwsProxySecurityContextWriter.java @@ -16,7 +16,7 @@ import com.amazonaws.serverless.proxy.model.AwsProxyRequest; import com.amazonaws.services.lambda.runtime.Context; -import javax.ws.rs.core.SecurityContext; +import jakarta.ws.rs.core.SecurityContext; /** * Default implementation of SecurityContextWriter. Creates a SecurityContext object based on an API Gateway diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/LogFormatter.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/LogFormatter.java index dcd524f91..8bc75ca9c 100644 --- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/LogFormatter.java +++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/LogFormatter.java @@ -12,7 +12,7 @@ */ package com.amazonaws.serverless.proxy; -import javax.ws.rs.core.SecurityContext; +import jakarta.ws.rs.core.SecurityContext; /** * Implementations of the log formatter interface are used by {@link com.amazonaws.serverless.proxy.internal.LambdaContainerHandler} class to log each request diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/RequestReader.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/RequestReader.java index e0203d76b..d8293d649 100644 --- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/RequestReader.java +++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/RequestReader.java @@ -17,7 +17,7 @@ import com.amazonaws.serverless.proxy.model.ContainerConfig; import com.amazonaws.services.lambda.runtime.Context; -import javax.ws.rs.core.SecurityContext; +import jakarta.ws.rs.core.SecurityContext; /** diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/SecurityContextWriter.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/SecurityContextWriter.java index 32430d816..27a4c6c75 100644 --- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/SecurityContextWriter.java +++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/SecurityContextWriter.java @@ -15,7 +15,7 @@ import com.amazonaws.serverless.proxy.model.AwsProxyRequest; import com.amazonaws.services.lambda.runtime.Context; -import javax.ws.rs.core.SecurityContext; +import jakarta.ws.rs.core.SecurityContext; /** * This object is used by the container implementation to generated a Jax-Rs SecurityContext object from the 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 e29b1072c..d736d6373 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 @@ -28,7 +28,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.ws.rs.core.SecurityContext; +import jakarta.ws.rs.core.SecurityContext; import java.io.IOException; import java.io.InputStream; diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/jaxrs/AwsHttpApiV2SecurityContext.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/jaxrs/AwsHttpApiV2SecurityContext.java index 6060fb2e2..f0e1f963d 100644 --- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/jaxrs/AwsHttpApiV2SecurityContext.java +++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/jaxrs/AwsHttpApiV2SecurityContext.java @@ -21,8 +21,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.SecurityContext; +import jakarta.ws.rs.core.HttpHeaders; +import jakarta.ws.rs.core.SecurityContext; import java.nio.charset.StandardCharsets; import java.security.Principal; import java.util.Base64; diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/jaxrs/AwsProxySecurityContext.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/jaxrs/AwsProxySecurityContext.java index b05822971..7c128cabe 100644 --- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/jaxrs/AwsProxySecurityContext.java +++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/jaxrs/AwsProxySecurityContext.java @@ -14,10 +14,9 @@ import com.amazonaws.serverless.proxy.model.AwsProxyRequest; import com.amazonaws.serverless.proxy.model.CognitoAuthorizerClaims; -import com.amazonaws.serverless.proxy.model.RequestSource; import com.amazonaws.services.lambda.runtime.Context; -import javax.ws.rs.core.SecurityContext; +import jakarta.ws.rs.core.SecurityContext; import java.security.Principal; diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/ApacheCombinedServletLogFormatter.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/ApacheCombinedServletLogFormatter.java index 715e6f8d9..e0c7a7357 100644 --- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/ApacheCombinedServletLogFormatter.java +++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/ApacheCombinedServletLogFormatter.java @@ -13,15 +13,14 @@ package com.amazonaws.serverless.proxy.internal.servlet; import com.amazonaws.serverless.proxy.LogFormatter; -import com.amazonaws.serverless.proxy.model.AwsProxyRequest; import com.amazonaws.serverless.proxy.model.AwsProxyRequestContext; import com.amazonaws.serverless.proxy.model.HttpApiV2ProxyRequestContext; import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.ws.rs.core.SecurityContext; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.ws.rs.core.SecurityContext; import java.time.*; import java.time.format.DateTimeFormatter; 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 251624541..4a46a70fa 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 @@ -16,9 +16,9 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.servlet.*; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.*; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.ArrayList; import java.util.List; diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpApiV2HttpServletRequestReader.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpApiV2HttpServletRequestReader.java index bacedbaa4..c40740c96 100644 --- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpApiV2HttpServletRequestReader.java +++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpApiV2HttpServletRequestReader.java @@ -18,8 +18,8 @@ import com.amazonaws.serverless.proxy.model.HttpApiV2ProxyRequest; import com.amazonaws.services.lambda.runtime.Context; -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.core.SecurityContext; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.ws.rs.core.SecurityContext; public class AwsHttpApiV2HttpServletRequestReader extends RequestReader { static final String INVALID_REQUEST_ERROR = "The incoming event is not a valid HTTP API v2 proxy request"; 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 c03facc32..d81105bd5 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 @@ -23,10 +23,10 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.servlet.*; -import javax.servlet.http.*; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.SecurityContext; +import jakarta.servlet.*; +import jakarta.servlet.http.*; +import jakarta.ws.rs.core.HttpHeaders; +import jakarta.ws.rs.core.SecurityContext; import java.io.BufferedReader; import java.io.IOException; import java.io.StringReader; 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 d2157e3d8..358ccdfba 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,25 +22,20 @@ 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.fileupload.FileItem; -import org.apache.commons.fileupload.FileUploadException; -import org.apache.commons.fileupload.disk.DiskFileItemFactory; -import org.apache.commons.fileupload.servlet.ServletFileUpload; +import org.apache.commons.fileupload2.FileItem; +import org.apache.commons.fileupload2.FileUploadException; +import org.apache.commons.fileupload2.disk.DiskFileItemFactory; +import org.apache.commons.fileupload2.jaksrvlt.JakSrvltFileUpload; import org.apache.commons.io.FilenameUtils; import org.apache.commons.io.IOUtils; import org.apache.commons.io.input.NullInputStream; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.servlet.DispatcherType; -import javax.servlet.ServletContext; -import javax.servlet.ServletException; -import javax.servlet.ServletInputStream; -import javax.servlet.http.Cookie; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpSession; -import javax.servlet.http.Part; -import javax.ws.rs.core.MediaType; +import jakarta.servlet.*; +import jakarta.servlet.http.*; +import jakarta.ws.rs.core.MediaType; + import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.UnsupportedEncodingException; @@ -185,14 +180,6 @@ public boolean isRequestedSessionIdFromURL() { } - @Override - @Deprecated - public boolean isRequestedSessionIdFromUrl() { - log.debug("Trying to access session. Lambda functions are stateless and should not rely on the session"); - return false; - } - - //------------------------------------------------------------- // Implementation - ServletRequest //------------------------------------------------------------- @@ -525,14 +512,14 @@ protected Map getMultipartFormParametersMap() { if (multipartFormParameters != null) { return multipartFormParameters; } - if (!ServletFileUpload.isMultipartContent(this)) { // isMultipartContent also checks the content type + if (!JakSrvltFileUpload.isMultipartContent(this)) { // isMultipartContent also checks the content type multipartFormParameters = new HashMap<>(); return multipartFormParameters; } Timer.start("SERVLET_REQUEST_GET_MULTIPART_PARAMS"); multipartFormParameters = new TreeMap<>(String.CASE_INSENSITIVE_ORDER); - ServletFileUpload upload = new ServletFileUpload(new DiskFileItemFactory()); + JakSrvltFileUpload upload = new JakSrvltFileUpload(new DiskFileItemFactory()); try { List items = upload.parseRequest(this); diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequestWrapper.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequestWrapper.java index e151c03da..d87b707ec 100644 --- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequestWrapper.java +++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequestWrapper.java @@ -15,8 +15,8 @@ import com.amazonaws.serverless.proxy.internal.LambdaContainerHandler; import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; -import javax.servlet.*; -import javax.servlet.http.*; +import jakarta.servlet.*; +import jakarta.servlet.http.*; import java.io.BufferedReader; import java.io.IOException; import java.io.UnsupportedEncodingException; 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 65677d00a..814958dfa 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 @@ -21,14 +21,14 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.servlet.DispatcherType; -import javax.servlet.ServletOutputStream; -import javax.servlet.WriteListener; -import javax.servlet.http.Cookie; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.MediaType; +import jakarta.servlet.DispatcherType; +import jakarta.servlet.ServletOutputStream; +import jakarta.servlet.WriteListener; +import jakarta.servlet.http.Cookie; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.ws.rs.core.HttpHeaders; +import jakarta.ws.rs.core.MediaType; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.OutputStreamWriter; diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpSession.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpSession.java index 8c3df7f86..eb1f728f9 100644 --- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpSession.java +++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpSession.java @@ -15,9 +15,9 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.servlet.ServletContext; -import javax.servlet.http.HttpSession; -import javax.servlet.http.HttpSessionContext; +import jakarta.servlet.ServletContext; +import jakarta.servlet.http.HttpSession; +import jakarta.servlet.http.HttpSessionContext; import java.time.Instant; import java.util.Collections; 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 52631da54..b35bba92c 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 @@ -19,18 +19,16 @@ import com.amazonaws.serverless.proxy.ResponseWriter; import com.amazonaws.serverless.proxy.SecurityContextWriter; -import com.amazonaws.services.lambda.runtime.Context; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.servlet.*; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpServletResponseWrapper; +import jakarta.servlet.*; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpServletResponseWrapper; import java.io.IOException; import java.util.*; -import java.util.stream.Collectors; /** 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 c85bf80a4..a4ee15150 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 @@ -24,10 +24,11 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.servlet.*; -import javax.servlet.http.*; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.SecurityContext; +import jakarta.servlet.*; +import jakarta.servlet.http.*; +import jakarta.ws.rs.core.HttpHeaders; +import jakarta.ws.rs.core.SecurityContext; + import java.io.BufferedReader; import java.io.IOException; import java.io.StringReader; @@ -483,14 +484,6 @@ public RequestDispatcher getRequestDispatcher(String s) { } - @Override - @Deprecated - public String getRealPath(String s) { - // we are in an archive on a remote server - return null; - } - - @Override public int getRemotePort() { return 0; @@ -542,6 +535,21 @@ public AsyncContext getAsyncContext() { return asyncContext; } + @Override + public String getRequestId() { + return request.getRequestContext().getRequestId(); + } + + @Override + public String getProtocolRequestId() { + return ""; + } + + @Override + public ServletConnection getServletConnection() { + return null; + } + //------------------------------------------------------------- // Methods - Private //------------------------------------------------------------- diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequestReader.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequestReader.java index 932041db9..ec56285f7 100644 --- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequestReader.java +++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequestReader.java @@ -18,10 +18,10 @@ import com.amazonaws.serverless.proxy.model.ContainerConfig; import com.amazonaws.services.lambda.runtime.Context; -import javax.servlet.ServletContext; -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.SecurityContext; +import jakarta.servlet.ServletContext; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.ws.rs.core.HttpHeaders; +import jakarta.ws.rs.core.SecurityContext; /** * Simple implementation of the RequestReader interface that receives an AwsProxyRequest diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletResponseWriter.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletResponseWriter.java index b6061e1e7..0e230e9a7 100644 --- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletResponseWriter.java +++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletResponseWriter.java @@ -22,8 +22,8 @@ import com.amazonaws.serverless.proxy.model.RequestSource; import com.amazonaws.services.lambda.runtime.Context; -import javax.ws.rs.core.Response; -import javax.ws.rs.core.Response.Status; +import jakarta.ws.rs.core.Response; +import jakarta.ws.rs.core.Response.Status; import java.util.Base64; import java.util.HashMap; diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyRequestDispatcher.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyRequestDispatcher.java index fc52d1dba..5ed2ccf44 100644 --- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyRequestDispatcher.java +++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyRequestDispatcher.java @@ -19,9 +19,9 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.servlet.*; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.*; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyRequestPart.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyRequestPart.java index a6a418c2c..c2d1fa62d 100644 --- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyRequestPart.java +++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyRequestPart.java @@ -17,7 +17,7 @@ import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; -import javax.servlet.http.Part; +import jakarta.servlet.http.Part; import java.io.ByteArrayInputStream; import java.io.FileOutputStream; import java.io.IOException; 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 44ec701ee..a362dfc25 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 @@ -20,9 +20,10 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.activation.MimetypesFileTypeMap; -import javax.servlet.*; -import javax.servlet.descriptor.JspConfigDescriptor; +import jakarta.activation.MimetypesFileTypeMap; +import jakarta.servlet.*; +import jakarta.servlet.ServletContext; +import jakarta.servlet.descriptor.JspConfigDescriptor; import java.io.File; import java.io.InputStream; @@ -79,7 +80,6 @@ public AwsServletContext(AwsLambdaServletContainerHandler containerHandler) { this.servletRegistrations = new HashMap<>(); } - //------------------------------------------------------------- // Implementation - ServletContext //------------------------------------------------------------- @@ -95,6 +95,36 @@ public String getContextPath() { return ""; } + @Override + public void setResponseCharacterEncoding(String encoding) { + // do nothing; + } + + @Override + public String getResponseCharacterEncoding() { + return ""; + } + + @Override + public void setRequestCharacterEncoding(String encoding) { + // do nothing; + } + + @Override + public String getRequestCharacterEncoding() { + return ""; + } + + @Override + public void setSessionTimeout(int sessionTimeout) { + // do nothing; + } + + @Override + public int getSessionTimeout() { + return 1; + } + @Override public ServletContext getContext(String s) { @@ -345,6 +375,11 @@ public ServletRegistration.Dynamic addServlet(String s, Class } } + @Override + public ServletRegistration.Dynamic addJspFile(String s, String s1) { + return null; + } + @Override public T createServlet(Class aClass) throws ServletException { diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsServletInputStream.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsServletInputStream.java index 552e75a89..eb155a364 100644 --- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsServletInputStream.java +++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsServletInputStream.java @@ -16,8 +16,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.servlet.ReadListener; -import javax.servlet.ServletInputStream; +import jakarta.servlet.ReadListener; +import jakarta.servlet.ServletInputStream; import java.io.IOException; import java.io.InputStream; diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsServletRegistration.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsServletRegistration.java index 021503c13..9fdc3b3b6 100644 --- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsServletRegistration.java +++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsServletRegistration.java @@ -14,7 +14,7 @@ import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; -import javax.servlet.*; +import jakarta.servlet.*; import java.util.*; /** diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/FilterChainHolder.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/FilterChainHolder.java index bec7a8f4b..b45eed4a1 100644 --- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/FilterChainHolder.java +++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/FilterChainHolder.java @@ -16,7 +16,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.servlet.*; +import jakarta.servlet.*; import java.io.IOException; import java.util.ArrayList; 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 1bf6f4b2a..835170bb5 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 @@ -14,8 +14,8 @@ import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; -import javax.servlet.*; -import javax.servlet.http.HttpServletRequest; +import jakarta.servlet.*; +import jakarta.servlet.http.HttpServletRequest; import java.io.IOException; import java.util.Collections; diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/FilterHolder.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/FilterHolder.java index 987dff14c..c3a4cdb81 100644 --- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/FilterHolder.java +++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/FilterHolder.java @@ -14,9 +14,9 @@ import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; -import javax.servlet.*; -import javax.servlet.annotation.WebFilter; -import javax.servlet.annotation.WebInitParam; +import jakarta.servlet.*; +import jakarta.servlet.annotation.WebFilter; +import jakarta.servlet.annotation.WebInitParam; import java.util.*; /** 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 caead2aaf..b44ec7f26 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 @@ -18,7 +18,7 @@ import com.amazonaws.serverless.proxy.model.AwsProxyResponse; import com.amazonaws.serverless.proxy.model.HttpApiV2ProxyRequest; -import javax.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletRequest; import java.util.ArrayList; import java.util.List; diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/filters/UrlPathValidator.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/filters/UrlPathValidator.java index c69b39c91..aadb26efd 100644 --- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/filters/UrlPathValidator.java +++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/filters/UrlPathValidator.java @@ -15,10 +15,10 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.servlet.*; -import javax.servlet.annotation.WebFilter; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.*; +import jakarta.servlet.annotation.WebFilter; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/testutils/AwsProxyRequestBuilder.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/testutils/AwsProxyRequestBuilder.java index 6fae6db78..adcebb89d 100644 --- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/testutils/AwsProxyRequestBuilder.java +++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/testutils/AwsProxyRequestBuilder.java @@ -23,8 +23,8 @@ import org.apache.http.entity.mime.content.ByteArrayBody; import org.apache.http.entity.mime.content.StringBody; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.MediaType; +import jakarta.ws.rs.core.HttpHeaders; +import jakarta.ws.rs.core.MediaType; import java.io.ByteArrayInputStream; import java.io.File; @@ -35,12 +35,6 @@ import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.util.*; -import java.util.function.BiConsumer; -import java.util.function.BinaryOperator; -import java.util.function.Function; -import java.util.function.Supplier; -import java.util.stream.Collector; -import java.util.stream.Collectors; /** diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/testutils/MockServlet.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/testutils/MockServlet.java index b93625bfb..6dd2ade66 100644 --- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/testutils/MockServlet.java +++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/testutils/MockServlet.java @@ -2,10 +2,10 @@ import java.io.IOException; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; public class MockServlet extends HttpServlet { diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/model/MultiValuedTreeMap.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/model/MultiValuedTreeMap.java index feeab6f2b..ad0593a1f 100644 --- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/model/MultiValuedTreeMap.java +++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/model/MultiValuedTreeMap.java @@ -14,7 +14,7 @@ import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; -import javax.ws.rs.core.MultivaluedMap; +import jakarta.ws.rs.core.MultivaluedMap; import java.io.Serializable; import java.util.ArrayList; 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 dd3417db4..f94371d69 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 @@ -17,9 +17,9 @@ import org.junit.jupiter.api.Test; import org.mockito.Mockito; -import javax.ws.rs.InternalServerErrorException; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.MediaType; +import jakarta.ws.rs.InternalServerErrorException; +import jakarta.ws.rs.core.HttpHeaders; +import jakarta.ws.rs.core.MediaType; import java.io.*; diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/AwsProxySecurityContextWriterTest.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/AwsProxySecurityContextWriterTest.java index 34af09df7..8a2134f48 100644 --- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/AwsProxySecurityContextWriterTest.java +++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/AwsProxySecurityContextWriterTest.java @@ -1,13 +1,12 @@ package com.amazonaws.serverless.proxy; import com.amazonaws.serverless.proxy.model.AwsProxyRequest; -import com.amazonaws.serverless.proxy.AwsProxySecurityContextWriter; import com.amazonaws.serverless.proxy.internal.testutils.AwsProxyRequestBuilder; import com.amazonaws.services.lambda.runtime.Context; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import javax.ws.rs.core.SecurityContext; +import jakarta.ws.rs.core.SecurityContext; import java.lang.reflect.Method; diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/ResponseWriterTest.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/ResponseWriterTest.java index 48c544629..609fb0fdb 100644 --- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/ResponseWriterTest.java +++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/ResponseWriterTest.java @@ -8,7 +8,7 @@ import com.amazonaws.services.lambda.runtime.Context; import org.junit.jupiter.api.Test; -import javax.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletRequest; public class ResponseWriterTest { diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/LambdaContainerHandlerTest.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/LambdaContainerHandlerTest.java index 31a2c575b..98b45fd1b 100644 --- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/LambdaContainerHandlerTest.java +++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/LambdaContainerHandlerTest.java @@ -13,7 +13,7 @@ import org.apache.http.impl.execchain.RequestAbortedException; import org.junit.jupiter.api.Test; -import javax.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletRequest; import java.util.concurrent.CountDownLatch; import static org.junit.jupiter.api.Assertions.*; diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/jaxrs/HttpApiV2SecurityContextTest.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/jaxrs/HttpApiV2SecurityContextTest.java index 0fda7b975..a4c6aa311 100644 --- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/jaxrs/HttpApiV2SecurityContextTest.java +++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/jaxrs/HttpApiV2SecurityContextTest.java @@ -5,8 +5,8 @@ import com.amazonaws.serverless.proxy.model.HttpApiV2ProxyRequest; import org.junit.jupiter.api.Test; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.SecurityContext; +import jakarta.ws.rs.core.HttpHeaders; +import jakarta.ws.rs.core.SecurityContext; import static org.junit.jupiter.api.Assertions.*; diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/ApacheCombinedServletLogFormatterTest.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/ApacheCombinedServletLogFormatterTest.java index e07932680..69b2d7985 100644 --- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/ApacheCombinedServletLogFormatterTest.java +++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/ApacheCombinedServletLogFormatterTest.java @@ -7,15 +7,14 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import java.time.Clock; import java.time.Instant; import java.time.ZoneId; import static com.amazonaws.serverless.proxy.RequestReader.API_GATEWAY_CONTEXT_PROPERTY; -import static com.amazonaws.serverless.proxy.RequestReader.API_GATEWAY_EVENT_PROPERTY; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.MatcherAssert.assertThat; import static org.mockito.ArgumentMatchers.eq; 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 b5b79bba1..2177fa8bb 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 @@ -12,12 +12,12 @@ import com.amazonaws.services.lambda.runtime.Context; import org.junit.jupiter.api.Test; -import javax.servlet.AsyncContext; -import javax.servlet.Servlet; -import javax.servlet.ServletException; -import javax.servlet.ServletRegistration; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.AsyncContext; +import jakarta.servlet.Servlet; +import jakarta.servlet.ServletException; +import jakarta.servlet.ServletRegistration; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.concurrent.CountDownLatch; diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsFilterChainManagerTest.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsFilterChainManagerTest.java index 4eedc0f93..7e7fba49b 100644 --- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsFilterChainManagerTest.java +++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsFilterChainManagerTest.java @@ -9,7 +9,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.servlet.*; +import jakarta.servlet.*; import java.io.IOException; import java.util.EnumSet; diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpApiV2HttpServletRequestReaderTest.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpApiV2HttpServletRequestReaderTest.java index e35fedb7d..12f694bc1 100644 --- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpApiV2HttpServletRequestReaderTest.java +++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpApiV2HttpServletRequestReaderTest.java @@ -7,8 +7,8 @@ import com.amazonaws.serverless.proxy.model.HttpApiV2ProxyRequestContext; import org.junit.jupiter.api.Test; -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.core.HttpHeaders; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.ws.rs.core.HttpHeaders; import static org.junit.jupiter.api.Assertions.*; 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 35903333b..051c12fc6 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 @@ -5,13 +5,11 @@ import com.amazonaws.serverless.proxy.internal.testutils.MockLambdaContext; import com.amazonaws.serverless.proxy.model.ContainerConfig; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; import org.junit.jupiter.api.Test; -import javax.servlet.ServletException; -import javax.servlet.http.Cookie; -import javax.ws.rs.core.HttpHeaders; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.Cookie; +import jakarta.ws.rs.core.HttpHeaders; import static org.junit.jupiter.api.Assertions.*; 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 39fe7144b..6c951a4f1 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 @@ -6,9 +6,9 @@ import org.junit.jupiter.api.Test; -import javax.servlet.http.Cookie; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.MediaType; +import jakarta.servlet.http.Cookie; +import jakarta.ws.rs.core.HttpHeaders; +import jakarta.ws.rs.core.MediaType; import java.io.IOException; import java.io.PrintWriter; 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 a185a1f8a..07a2f410e 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 @@ -10,10 +10,10 @@ import org.apache.http.entity.mime.MultipartEntityBuilder; import org.junit.jupiter.api.Test; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.MediaType; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.ws.rs.core.HttpHeaders; +import jakarta.ws.rs.core.MediaType; import java.io.IOException; import java.nio.charset.Charset; diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequestReaderTest.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequestReaderTest.java index 486e923aa..f92c37168 100644 --- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequestReaderTest.java +++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequestReaderTest.java @@ -6,13 +6,11 @@ import com.amazonaws.serverless.proxy.model.AwsProxyRequest; import com.amazonaws.serverless.proxy.model.ContainerConfig; import com.amazonaws.serverless.proxy.internal.testutils.AwsProxyRequestBuilder; -import com.amazonaws.services.lambda.runtime.Context; import org.junit.jupiter.api.Test; -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.SecurityContext; -import java.lang.reflect.Method; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.ws.rs.core.HttpHeaders; +import jakarta.ws.rs.core.SecurityContext; import static org.junit.jupiter.api.Assertions.*; 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 af272e231..855fae403 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 @@ -8,10 +8,10 @@ import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.SecurityContext; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.ws.rs.core.HttpHeaders; +import jakarta.ws.rs.core.MediaType; +import jakarta.ws.rs.core.SecurityContext; import java.io.IOException; import java.io.InputStream; diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyRequestDispatcherTest.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyRequestDispatcherTest.java index 03c06ad24..254ce04a0 100644 --- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyRequestDispatcherTest.java +++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyRequestDispatcherTest.java @@ -13,10 +13,10 @@ import org.junit.jupiter.api.Test; import org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestWrapper; -import javax.servlet.Servlet; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.Servlet; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; import java.nio.charset.Charset; import java.util.concurrent.CountDownLatch; diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsServletContextTest.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsServletContextTest.java index 35f6723b6..5817527e2 100644 --- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsServletContextTest.java +++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsServletContextTest.java @@ -8,9 +8,9 @@ import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; -import javax.servlet.*; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.*; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import java.io.File; import java.io.IOException; diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsServletRegistrationTest.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsServletRegistrationTest.java index 105abc61d..80bb38060 100644 --- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsServletRegistrationTest.java +++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsServletRegistrationTest.java @@ -2,7 +2,7 @@ import org.junit.jupiter.api.Test; -import javax.servlet.*; +import jakarta.servlet.*; import java.io.IOException; import java.util.Enumeration; diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/ServletLambdaContainerHandlerBuilderTest.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/ServletLambdaContainerHandlerBuilderTest.java index 5ae5aae02..73f8d7908 100644 --- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/ServletLambdaContainerHandlerBuilderTest.java +++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/ServletLambdaContainerHandlerBuilderTest.java @@ -8,7 +8,7 @@ import com.amazonaws.services.lambda.runtime.Context; import org.junit.jupiter.api.Test; -import javax.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletRequest; import java.util.concurrent.CountDownLatch; import static org.junit.jupiter.api.Assertions.*; diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/filters/UrlPathValidatorTest.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/filters/UrlPathValidatorTest.java index 11a018eb4..fa6712c7c 100644 --- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/filters/UrlPathValidatorTest.java +++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/filters/UrlPathValidatorTest.java @@ -1,17 +1,14 @@ package com.amazonaws.serverless.proxy.internal.servlet.filters; -import com.amazonaws.serverless.proxy.internal.servlet.AwsHttpServletRequest; import com.amazonaws.serverless.proxy.internal.servlet.AwsHttpServletResponse; import com.amazonaws.serverless.proxy.internal.servlet.AwsProxyHttpServletRequest; -import com.amazonaws.serverless.proxy.internal.servlet.FilterHolder; import com.amazonaws.serverless.proxy.internal.testutils.AwsProxyRequestBuilder; import org.junit.jupiter.api.Test; -import javax.servlet.FilterConfig; -import javax.servlet.ServletContext; -import javax.servlet.ServletException; +import jakarta.servlet.FilterConfig; +import jakarta.servlet.ServletContext; +import jakarta.servlet.ServletException; -import java.io.IOException; import java.util.Collections; import java.util.Enumeration; import java.util.HashMap; diff --git a/aws-serverless-java-container-springboot2/pom.xml b/aws-serverless-java-container-springboot2/pom.xml index 33bb8171b..c955649d6 100644 --- a/aws-serverless-java-container-springboot2/pom.xml +++ b/aws-serverless-java-container-springboot2/pom.xml @@ -15,11 +15,10 @@ 1.10-SNAPSHOT - 5.3.27 - 2.7.11 - 5.7.8 - 1.8 - 1.8 + 6.0.5 + 3.0.4 + 6.0.2 + 17 @@ -171,6 +170,11 @@ 1.1.1 test + + jakarta.activation + jakarta.activation-api + 2.1.0 + diff --git a/aws-serverless-java-container-springboot2/src/main/java/com/amazonaws/serverless/proxy/spring/SpringBootLambdaContainerHandler.java b/aws-serverless-java-container-springboot2/src/main/java/com/amazonaws/serverless/proxy/spring/SpringBootLambdaContainerHandler.java index ce6bad7b1..1f7719e9a 100644 --- a/aws-serverless-java-container-springboot2/src/main/java/com/amazonaws/serverless/proxy/spring/SpringBootLambdaContainerHandler.java +++ b/aws-serverless-java-container-springboot2/src/main/java/com/amazonaws/serverless/proxy/spring/SpringBootLambdaContainerHandler.java @@ -14,7 +14,6 @@ import com.amazonaws.serverless.exceptions.ContainerInitializationException; import com.amazonaws.serverless.proxy.*; -import com.amazonaws.serverless.proxy.internal.LambdaContainerHandler; import com.amazonaws.serverless.proxy.internal.servlet.*; import com.amazonaws.serverless.proxy.internal.testutils.Timer; import com.amazonaws.serverless.proxy.model.AwsProxyRequest; @@ -25,19 +24,14 @@ import com.amazonaws.services.lambda.runtime.Context; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.boot.SpringApplication; 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 org.springframework.core.env.ConfigurableEnvironment; -import org.springframework.core.env.StandardEnvironment; -import org.springframework.web.context.ConfigurableWebApplicationContext; -import org.springframework.web.servlet.DispatcherServlet; - -import javax.servlet.Servlet; -import javax.servlet.ServletRegistration; -import javax.servlet.http.HttpServletRequest; + +import jakarta.servlet.Servlet; +import jakarta.servlet.ServletRegistration; +import jakarta.servlet.http.HttpServletRequest; import java.util.concurrent.CountDownLatch; /** diff --git a/aws-serverless-java-container-springboot2/src/main/java/com/amazonaws/serverless/proxy/spring/SpringBootProxyHandlerBuilder.java b/aws-serverless-java-container-springboot2/src/main/java/com/amazonaws/serverless/proxy/spring/SpringBootProxyHandlerBuilder.java index b9894834c..cdec18551 100644 --- a/aws-serverless-java-container-springboot2/src/main/java/com/amazonaws/serverless/proxy/spring/SpringBootProxyHandlerBuilder.java +++ b/aws-serverless-java-container-springboot2/src/main/java/com/amazonaws/serverless/proxy/spring/SpringBootProxyHandlerBuilder.java @@ -13,13 +13,11 @@ package com.amazonaws.serverless.proxy.spring; import com.amazonaws.serverless.exceptions.ContainerInitializationException; -import com.amazonaws.serverless.proxy.internal.servlet.AwsProxyHttpServletRequest; import com.amazonaws.serverless.proxy.internal.servlet.ServletLambdaContainerHandlerBuilder; -import com.amazonaws.serverless.proxy.model.AwsProxyRequest; import com.amazonaws.serverless.proxy.model.AwsProxyResponse; import org.springframework.boot.WebApplicationType; -import javax.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletRequest; public final class SpringBootProxyHandlerBuilder extends ServletLambdaContainerHandlerBuilder< RequestType, diff --git a/aws-serverless-java-container-springboot2/src/main/java/com/amazonaws/serverless/proxy/spring/embedded/ServerlessReactiveServletEmbeddedServerFactory.java b/aws-serverless-java-container-springboot2/src/main/java/com/amazonaws/serverless/proxy/spring/embedded/ServerlessReactiveServletEmbeddedServerFactory.java index 9b2c04948..3376452e2 100644 --- a/aws-serverless-java-container-springboot2/src/main/java/com/amazonaws/serverless/proxy/spring/embedded/ServerlessReactiveServletEmbeddedServerFactory.java +++ b/aws-serverless-java-container-springboot2/src/main/java/com/amazonaws/serverless/proxy/spring/embedded/ServerlessReactiveServletEmbeddedServerFactory.java @@ -22,7 +22,7 @@ import org.springframework.http.server.reactive.HttpHandler; import org.springframework.http.server.reactive.ServletHttpHandlerAdapter; -import javax.servlet.*; +import jakarta.servlet.*; import java.io.IOException; import java.util.Enumeration; diff --git a/aws-serverless-java-container-springboot2/src/main/java/com/amazonaws/serverless/proxy/spring/embedded/ServerlessServletEmbeddedServerFactory.java b/aws-serverless-java-container-springboot2/src/main/java/com/amazonaws/serverless/proxy/spring/embedded/ServerlessServletEmbeddedServerFactory.java index ad228f7d4..fbc31145d 100644 --- a/aws-serverless-java-container-springboot2/src/main/java/com/amazonaws/serverless/proxy/spring/embedded/ServerlessServletEmbeddedServerFactory.java +++ b/aws-serverless-java-container-springboot2/src/main/java/com/amazonaws/serverless/proxy/spring/embedded/ServerlessServletEmbeddedServerFactory.java @@ -21,7 +21,7 @@ import org.springframework.boot.web.servlet.server.ServletWebServerFactory; import org.springframework.core.Ordered; -import javax.servlet.ServletException; +import jakarta.servlet.ServletException; @AutoConfigureOrder(Ordered.HIGHEST_PRECEDENCE) public class ServerlessServletEmbeddedServerFactory implements ServletWebServerFactory, WebServer { diff --git a/aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/SecurityAppTest.java b/aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/SecurityAppTest.java index e322e1a67..d0b579509 100644 --- a/aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/SecurityAppTest.java +++ b/aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/SecurityAppTest.java @@ -8,8 +8,8 @@ import com.amazonaws.serverless.proxy.spring.securityapp.SecurityConfig; import org.junit.jupiter.api.Test; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.MediaType; +import jakarta.ws.rs.core.HttpHeaders; +import jakarta.ws.rs.core.MediaType; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; diff --git a/aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/ServletAppTest.java b/aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/ServletAppTest.java index f5e2e8185..aacf5444c 100644 --- a/aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/ServletAppTest.java +++ b/aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/ServletAppTest.java @@ -3,7 +3,6 @@ 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.ContainerConfig; import com.amazonaws.serverless.proxy.spring.servletapp.*; @@ -11,8 +10,8 @@ import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.MediaType; +import jakarta.ws.rs.core.HttpHeaders; +import jakarta.ws.rs.core.MediaType; import java.io.ByteArrayOutputStream; import java.io.IOException; diff --git a/aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/embedded/ServerlessServletEmbeddedServerFactoryTest.java b/aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/embedded/ServerlessServletEmbeddedServerFactoryTest.java index 2fddcf0a5..5ffd4a311 100644 --- a/aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/embedded/ServerlessServletEmbeddedServerFactoryTest.java +++ b/aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/embedded/ServerlessServletEmbeddedServerFactoryTest.java @@ -13,8 +13,8 @@ import org.springframework.boot.WebApplicationType; import org.springframework.boot.web.servlet.ServletContextInitializer; -import javax.servlet.ServletContext; -import javax.servlet.ServletException; +import jakarta.servlet.ServletContext; +import jakarta.servlet.ServletException; import static org.junit.jupiter.api.Assertions.fail; diff --git a/aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/servletapp/MessageController.java b/aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/servletapp/MessageController.java index 6bd516324..927822a4e 100644 --- a/aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/servletapp/MessageController.java +++ b/aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/servletapp/MessageController.java @@ -7,7 +7,7 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.server.ResponseStatusException; -import javax.validation.Valid; +import jakarta.validation.Valid; import java.util.HashMap; import java.util.Map; diff --git a/aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/servletapp/UserData.java b/aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/servletapp/UserData.java index e180c1738..379291a39 100644 --- a/aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/servletapp/UserData.java +++ b/aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/servletapp/UserData.java @@ -1,9 +1,9 @@ package com.amazonaws.serverless.proxy.spring.servletapp; -import javax.validation.constraints.Email; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.Email; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; public class UserData { @NotBlank From 9cf61f0ff285a5dc1432b95bc73facd470b4f26c Mon Sep 17 00:00:00 2001 From: Mbea Date: Sat, 1 Apr 2023 02:08:25 -0700 Subject: [PATCH 046/623] - Did the namespace change on the other components - Fixed 2 failing tests in AwsServletContextTest by adding version 2.0.0 of the angus-mail dependency --- aws-serverless-java-container-core/pom.xml | 6 ++++ .../internal/servlet/AwsServletContext.java | 4 ++- .../proxy/jersey/JerseyHandlerFilter.java | 22 ++++++------- .../jersey/JerseyLambdaContainerHandler.java | 15 +++++---- .../jersey/JerseyServletResponseWriter.java | 6 ++-- .../AwsProxyServletContextSupplier.java | 8 ++--- .../AwsProxyServletRequestSupplier.java | 4 +-- .../AwsProxyServletResponseSupplier.java | 4 +-- .../proxy/jersey/EchoJerseyResource.java | 31 +++++++------------ .../proxy/jersey/JerseyAwsProxyTest.java | 6 ++-- .../proxy/jersey/JerseyInjectionTest.java | 2 +- .../proxy/jersey/JerseyParamEncodingTest.java | 2 +- .../proxy/jersey/ResourceBinder.java | 2 +- .../providers/CustomExceptionMapper.java | 12 +++---- .../providers/ServletRequestFilter.java | 8 ++--- .../spark/SparkLambdaContainerHandler.java | 8 ++--- .../embeddedserver/LambdaEmbeddedServer.java | 2 +- .../spark/HelloWorldSparkStreamTest.java | 2 +- .../proxy/spark/HelloWorldSparkTest.java | 4 +-- .../SparkLambdaContainerHandlerTest.java | 4 +-- .../spark/filter/CustomHeaderFilter.java | 14 ++++----- .../spark/filter/UnauthenticatedFilter.java | 16 +++++----- .../spring/SpringLambdaContainerHandler.java | 6 ++-- .../spring/SpringProxyHandlerBuilder.java | 2 +- .../proxy/spring/SpringAwsProxyTest.java | 15 +++------ .../spring/SpringServletContextTest.java | 4 +-- .../proxy/spring/StaticAppProxyTest.java | 2 +- .../proxy/spring/echoapp/ContextResource.java | 14 ++++----- .../spring/echoapp/CustomHeaderFilter.java | 14 ++++----- .../proxy/spring/echoapp/EchoResource.java | 4 +-- .../spring/echoapp/EchoSpringAppConfig.java | 2 +- .../spring/echoapp/UnauthenticatedFilter.java | 16 +++++----- .../echoapp/model/ValidatedUserModel.java | 2 +- .../spring/extensibility/CustomServlet.java | 6 ++-- .../extensibility/CustomServletTest.java | 2 +- .../CustomSpringLambdaContainerHandler.java | 4 +-- .../struts/StrutsLambdaContainerHandler.java | 8 ++--- .../proxy/struts/StrutsAwsProxyTest.java | 2 +- .../proxy/struts/echoapp/EchoAction.java | 4 +-- .../struts/echoapp/EchoRequestInfoAction.java | 4 +-- .../src/main/java/resource/PingResource.java | 12 +++---- .../test/java/StreamLambdaHandlerTest.java | 8 ++--- .../test/java/StreamLambdaHandlerTest.java | 8 ++--- .../src/main/java/SpringApiConfig.java | 4 +-- .../test/java/StreamLambdaHandlerTest.java | 8 ++--- .../test/java/StreamLambdaHandlerTest.java | 8 ++--- .../test/java/StreamLambdaHandlerTest.java | 8 ++--- .../sample/jersey/PetsResource.java | 6 ++-- .../sample/spark/SparkResources.java | 2 +- .../sample/spark/StreamLambdaHandler.java | 4 +-- .../spark/filter/CognitoIdentityFilter.java | 12 +++---- .../spring/PetStoreSpringAppConfig.java | 4 +-- .../sample/spring/StreamLambdaHandler.java | 4 +-- .../spring/filter/CognitoIdentityFilter.java | 12 +++---- .../sample/springboot2/Application.java | 4 +-- .../springboot2/StreamLambdaHandler.java | 4 +-- .../filter/CognitoIdentityFilter.java | 12 +++---- 57 files changed, 203 insertions(+), 210 deletions(-) diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml index 82135d77a..7c2159d7c 100644 --- a/aws-serverless-java-container-core/pom.xml +++ b/aws-serverless-java-container-core/pom.xml @@ -83,6 +83,12 @@ commons-fileupload2 2.0-SNAPSHOT + + org.eclipse.angus + angus-mail + 2.0.0 + + 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 a362dfc25..4531b14ae 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 @@ -17,13 +17,14 @@ import com.amazonaws.serverless.proxy.internal.SecurityUtils; import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; +import jakarta.activation.spi.MimeTypeRegistryProvider; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import jakarta.activation.MimetypesFileTypeMap; import jakarta.servlet.*; import jakarta.servlet.ServletContext; import jakarta.servlet.descriptor.JspConfigDescriptor; +import jakarta.activation.MimetypesFileTypeMap; import java.io.File; import java.io.InputStream; @@ -166,6 +167,7 @@ public String getMimeType(String s) { if (mimeTypes == null) { mimeTypes = new MimetypesFileTypeMap(); } + // TODO: The getContentType method of the MimetypesFileTypeMap returns application/octet-stream // instead of null when the type cannot be found. We should replace with an implementation that // loads the System mime types ($JAVA_HOME/lib/mime.types diff --git a/aws-serverless-java-container-jersey/src/main/java/com/amazonaws/serverless/proxy/jersey/JerseyHandlerFilter.java b/aws-serverless-java-container-jersey/src/main/java/com/amazonaws/serverless/proxy/jersey/JerseyHandlerFilter.java index 27e3157f0..79d030bda 100644 --- a/aws-serverless-java-container-jersey/src/main/java/com/amazonaws/serverless/proxy/jersey/JerseyHandlerFilter.java +++ b/aws-serverless-java-container-jersey/src/main/java/com/amazonaws/serverless/proxy/jersey/JerseyHandlerFilter.java @@ -26,17 +26,17 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.servlet.Filter; -import javax.servlet.FilterChain; -import javax.servlet.FilterConfig; -import javax.servlet.ServletException; -import javax.servlet.ServletRequest; -import javax.servlet.ServletResponse; -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.InternalServerErrorException; -import javax.ws.rs.core.Application; -import javax.ws.rs.core.SecurityContext; -import javax.ws.rs.core.UriBuilder; +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.ws.rs.InternalServerErrorException; +import jakarta.ws.rs.core.Application; +import jakarta.ws.rs.core.SecurityContext; +import jakarta.ws.rs.core.UriBuilder; import java.io.IOException; import java.io.InputStream; 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 fe50cd0fd..e290e284b 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 @@ -30,14 +30,13 @@ import org.glassfish.jersey.process.internal.RequestScoped; import org.glassfish.jersey.server.ResourceConfig; -import javax.servlet.DispatcherType; -import javax.servlet.FilterRegistration; -import javax.servlet.Servlet; -import javax.servlet.ServletContext; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.ws.rs.core.Application; +import jakarta.servlet.DispatcherType; +import jakarta.servlet.FilterRegistration; +import jakarta.servlet.Servlet; +import jakarta.servlet.ServletContext; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.ws.rs.core.Application; import java.util.EnumSet; import java.util.concurrent.CountDownLatch; diff --git a/aws-serverless-java-container-jersey/src/main/java/com/amazonaws/serverless/proxy/jersey/JerseyServletResponseWriter.java b/aws-serverless-java-container-jersey/src/main/java/com/amazonaws/serverless/proxy/jersey/JerseyServletResponseWriter.java index 938c6f9ff..870390f80 100644 --- a/aws-serverless-java-container-jersey/src/main/java/com/amazonaws/serverless/proxy/jersey/JerseyServletResponseWriter.java +++ b/aws-serverless-java-container-jersey/src/main/java/com/amazonaws/serverless/proxy/jersey/JerseyServletResponseWriter.java @@ -22,9 +22,9 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.servlet.ServletResponse; -import javax.servlet.http.HttpServletResponse; -import javax.ws.rs.InternalServerErrorException; +import jakarta.servlet.ServletResponse; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.ws.rs.InternalServerErrorException; import java.io.IOException; import java.io.OutputStream; diff --git a/aws-serverless-java-container-jersey/src/main/java/com/amazonaws/serverless/proxy/jersey/suppliers/AwsProxyServletContextSupplier.java b/aws-serverless-java-container-jersey/src/main/java/com/amazonaws/serverless/proxy/jersey/suppliers/AwsProxyServletContextSupplier.java index 78f8c5c5a..4d93a89ab 100644 --- a/aws-serverless-java-container-jersey/src/main/java/com/amazonaws/serverless/proxy/jersey/suppliers/AwsProxyServletContextSupplier.java +++ b/aws-serverless-java-container-jersey/src/main/java/com/amazonaws/serverless/proxy/jersey/suppliers/AwsProxyServletContextSupplier.java @@ -15,10 +15,10 @@ import org.glassfish.jersey.server.ContainerRequest; -import javax.servlet.ServletContext; -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.InternalServerErrorException; -import javax.ws.rs.core.Context; +import jakarta.servlet.ServletContext; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.ws.rs.InternalServerErrorException; +import jakarta.ws.rs.core.Context; import java.util.function.Supplier; diff --git a/aws-serverless-java-container-jersey/src/main/java/com/amazonaws/serverless/proxy/jersey/suppliers/AwsProxyServletRequestSupplier.java b/aws-serverless-java-container-jersey/src/main/java/com/amazonaws/serverless/proxy/jersey/suppliers/AwsProxyServletRequestSupplier.java index fe1b21f13..c3a4653bf 100644 --- a/aws-serverless-java-container-jersey/src/main/java/com/amazonaws/serverless/proxy/jersey/suppliers/AwsProxyServletRequestSupplier.java +++ b/aws-serverless-java-container-jersey/src/main/java/com/amazonaws/serverless/proxy/jersey/suppliers/AwsProxyServletRequestSupplier.java @@ -15,8 +15,8 @@ import org.glassfish.jersey.server.ContainerRequest; -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.core.Context; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.ws.rs.core.Context; import java.util.function.Supplier; diff --git a/aws-serverless-java-container-jersey/src/main/java/com/amazonaws/serverless/proxy/jersey/suppliers/AwsProxyServletResponseSupplier.java b/aws-serverless-java-container-jersey/src/main/java/com/amazonaws/serverless/proxy/jersey/suppliers/AwsProxyServletResponseSupplier.java index 1fb6dc175..d4123f22e 100644 --- a/aws-serverless-java-container-jersey/src/main/java/com/amazonaws/serverless/proxy/jersey/suppliers/AwsProxyServletResponseSupplier.java +++ b/aws-serverless-java-container-jersey/src/main/java/com/amazonaws/serverless/proxy/jersey/suppliers/AwsProxyServletResponseSupplier.java @@ -15,8 +15,8 @@ import org.glassfish.jersey.server.ContainerRequest; -import javax.servlet.http.HttpServletResponse; -import javax.ws.rs.core.Context; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.ws.rs.core.Context; import java.util.function.Supplier; diff --git a/aws-serverless-java-container-jersey/src/test/java/com/amazonaws/serverless/proxy/jersey/EchoJerseyResource.java b/aws-serverless-java-container-jersey/src/test/java/com/amazonaws/serverless/proxy/jersey/EchoJerseyResource.java index 5da93ca08..d05c6814f 100644 --- a/aws-serverless-java-container-jersey/src/test/java/com/amazonaws/serverless/proxy/jersey/EchoJerseyResource.java +++ b/aws-serverless-java-container-jersey/src/test/java/com/amazonaws/serverless/proxy/jersey/EchoJerseyResource.java @@ -13,41 +13,34 @@ package com.amazonaws.serverless.proxy.jersey; import com.amazonaws.serverless.proxy.RequestReader; -import com.amazonaws.serverless.proxy.internal.servlet.AwsProxyHttpServletRequest; import com.amazonaws.serverless.proxy.jersey.providers.ServletRequestFilter; import com.amazonaws.serverless.proxy.model.AwsProxyRequestContext; import com.amazonaws.serverless.proxy.jersey.model.MapResponseModel; import com.amazonaws.serverless.proxy.jersey.model.SingleValueModel; -import org.apache.commons.io.IOUtils; import org.glassfish.jersey.media.multipart.FormDataContentDisposition; -import org.glassfish.jersey.media.multipart.FormDataMultiPart; import org.glassfish.jersey.media.multipart.FormDataParam; -import javax.inject.Inject; -import javax.servlet.ServletContext; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.ws.rs.*; -import javax.ws.rs.container.ContainerRequestContext; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; -import javax.ws.rs.core.SecurityContext; -import javax.ws.rs.core.UriInfo; - -import java.io.ByteArrayInputStream; +import jakarta.inject.Inject; +import jakarta.servlet.ServletContext; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.ws.rs.*; +import jakarta.ws.rs.container.ContainerRequestContext; +import jakarta.ws.rs.core.Context; +import jakarta.ws.rs.core.MediaType; +import jakarta.ws.rs.core.Response; +import jakarta.ws.rs.core.SecurityContext; +import jakarta.ws.rs.core.UriInfo; + import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.Enumeration; -import java.util.HashMap; import java.util.List; import java.util.Random; -import static com.amazonaws.serverless.proxy.jersey.JerseyHandlerFilter.JERSEY_SERVLET_REQUEST_PROPERTY; - /** * Jersey application class for aws-serverless-java-container unit proxy diff --git a/aws-serverless-java-container-jersey/src/test/java/com/amazonaws/serverless/proxy/jersey/JerseyAwsProxyTest.java b/aws-serverless-java-container-jersey/src/test/java/com/amazonaws/serverless/proxy/jersey/JerseyAwsProxyTest.java index 179555323..b845a0b69 100644 --- a/aws-serverless-java-container-jersey/src/test/java/com/amazonaws/serverless/proxy/jersey/JerseyAwsProxyTest.java +++ b/aws-serverless-java-container-jersey/src/test/java/com/amazonaws/serverless/proxy/jersey/JerseyAwsProxyTest.java @@ -33,9 +33,9 @@ import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; +import jakarta.ws.rs.core.HttpHeaders; +import jakarta.ws.rs.core.MediaType; +import jakarta.ws.rs.core.Response; import java.io.IOException; import java.util.Arrays; import java.util.Collection; diff --git a/aws-serverless-java-container-jersey/src/test/java/com/amazonaws/serverless/proxy/jersey/JerseyInjectionTest.java b/aws-serverless-java-container-jersey/src/test/java/com/amazonaws/serverless/proxy/jersey/JerseyInjectionTest.java index cfbe5c9bb..e253f34a3 100644 --- a/aws-serverless-java-container-jersey/src/test/java/com/amazonaws/serverless/proxy/jersey/JerseyInjectionTest.java +++ b/aws-serverless-java-container-jersey/src/test/java/com/amazonaws/serverless/proxy/jersey/JerseyInjectionTest.java @@ -15,7 +15,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; -import javax.inject.Singleton; +import jakarta.inject.Singleton; import org.glassfish.jersey.internal.inject.AbstractBinder; import org.glassfish.jersey.media.multipart.MultiPartFeature; diff --git a/aws-serverless-java-container-jersey/src/test/java/com/amazonaws/serverless/proxy/jersey/JerseyParamEncodingTest.java b/aws-serverless-java-container-jersey/src/test/java/com/amazonaws/serverless/proxy/jersey/JerseyParamEncodingTest.java index 25bb26bd4..9dc1ab32a 100644 --- a/aws-serverless-java-container-jersey/src/test/java/com/amazonaws/serverless/proxy/jersey/JerseyParamEncodingTest.java +++ b/aws-serverless-java-container-jersey/src/test/java/com/amazonaws/serverless/proxy/jersey/JerseyParamEncodingTest.java @@ -18,7 +18,7 @@ import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; -import javax.ws.rs.core.MediaType; +import jakarta.ws.rs.core.MediaType; import java.io.IOException; import java.io.UnsupportedEncodingException; diff --git a/aws-serverless-java-container-jersey/src/test/java/com/amazonaws/serverless/proxy/jersey/ResourceBinder.java b/aws-serverless-java-container-jersey/src/test/java/com/amazonaws/serverless/proxy/jersey/ResourceBinder.java index e98ea805a..f35bffd49 100644 --- a/aws-serverless-java-container-jersey/src/test/java/com/amazonaws/serverless/proxy/jersey/ResourceBinder.java +++ b/aws-serverless-java-container-jersey/src/test/java/com/amazonaws/serverless/proxy/jersey/ResourceBinder.java @@ -2,7 +2,7 @@ import org.glassfish.jersey.internal.inject.AbstractBinder; -import javax.inject.Singleton; +import jakarta.inject.Singleton; public class ResourceBinder extends AbstractBinder { @Override diff --git a/aws-serverless-java-container-jersey/src/test/java/com/amazonaws/serverless/proxy/jersey/providers/CustomExceptionMapper.java b/aws-serverless-java-container-jersey/src/test/java/com/amazonaws/serverless/proxy/jersey/providers/CustomExceptionMapper.java index e435aff96..61cddee1b 100644 --- a/aws-serverless-java-container-jersey/src/test/java/com/amazonaws/serverless/proxy/jersey/providers/CustomExceptionMapper.java +++ b/aws-serverless-java-container-jersey/src/test/java/com/amazonaws/serverless/proxy/jersey/providers/CustomExceptionMapper.java @@ -1,11 +1,11 @@ package com.amazonaws.serverless.proxy.jersey.providers; -import javax.inject.Inject; -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.core.Response; -import javax.ws.rs.ext.ExceptionMapper; -import javax.ws.rs.ext.Provider; +import jakarta.inject.Inject; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.ws.rs.core.Response; +import jakarta.ws.rs.ext.ExceptionMapper; +import jakarta.ws.rs.ext.Provider; @Provider @@ -16,7 +16,7 @@ public CustomExceptionMapper() { } @Inject - public javax.inject.Provider request; + public jakarta.inject.Provider request; @Override public Response toResponse(UnsupportedOperationException throwable) { diff --git a/aws-serverless-java-container-jersey/src/test/java/com/amazonaws/serverless/proxy/jersey/providers/ServletRequestFilter.java b/aws-serverless-java-container-jersey/src/test/java/com/amazonaws/serverless/proxy/jersey/providers/ServletRequestFilter.java index 70d65a64c..8ccfe488f 100644 --- a/aws-serverless-java-container-jersey/src/test/java/com/amazonaws/serverless/proxy/jersey/providers/ServletRequestFilter.java +++ b/aws-serverless-java-container-jersey/src/test/java/com/amazonaws/serverless/proxy/jersey/providers/ServletRequestFilter.java @@ -1,10 +1,10 @@ package com.amazonaws.serverless.proxy.jersey.providers; -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.container.ContainerRequestContext; -import javax.ws.rs.container.ContainerRequestFilter; -import javax.ws.rs.core.Context; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.ws.rs.container.ContainerRequestContext; +import jakarta.ws.rs.container.ContainerRequestFilter; +import jakarta.ws.rs.core.Context; import java.io.IOException; 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 index 6b2168aa9..9c1b47511 100644 --- 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 @@ -31,10 +31,10 @@ import spark.Spark; import spark.embeddedserver.EmbeddedServers; -import javax.servlet.DispatcherType; -import javax.servlet.FilterRegistration; -import javax.servlet.Servlet; -import javax.servlet.http.HttpServletRequest; +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; 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 index fadca4941..8d79c613c 100644 --- 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 @@ -25,7 +25,7 @@ import spark.ssl.SslStores; import spark.staticfiles.StaticFilesConfiguration; -import javax.servlet.Filter; +import jakarta.servlet.Filter; import java.util.Map; import java.util.Optional; 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 index 56087ed62..33bc19f1d 100644 --- 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 @@ -15,7 +15,7 @@ import org.junit.jupiter.params.provider.MethodSource; import spark.Spark; -import javax.servlet.http.Cookie; +import jakarta.servlet.http.Cookie; import java.io.ByteArrayOutputStream; import java.io.IOException; 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 index 5402b6a9c..b687784ec 100644 --- 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 @@ -13,8 +13,8 @@ import org.junit.jupiter.params.provider.MethodSource; import spark.Spark; -import javax.servlet.http.Cookie; -import javax.ws.rs.core.HttpHeaders; +import jakarta.servlet.http.Cookie; +import jakarta.ws.rs.core.HttpHeaders; import java.util.Arrays; import java.util.Collection; 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 index 52f2a5388..a5c5e824b 100644 --- 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 @@ -13,8 +13,8 @@ import org.junit.jupiter.api.Test; import spark.Spark; -import javax.servlet.DispatcherType; -import javax.servlet.FilterRegistration; +import jakarta.servlet.DispatcherType; +import jakarta.servlet.FilterRegistration; import java.util.EnumSet; 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 index e3733f3a9..8f4bc99ac 100644 --- 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 @@ -1,13 +1,13 @@ package com.amazonaws.serverless.proxy.spark.filter; -import javax.servlet.Filter; -import javax.servlet.FilterChain; -import javax.servlet.FilterConfig; -import javax.servlet.ServletException; -import javax.servlet.ServletRequest; -import javax.servlet.ServletResponse; -import javax.servlet.http.HttpServletResponse; +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; 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 index 742072ca5..efa41a2d3 100644 --- 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 @@ -1,14 +1,14 @@ package com.amazonaws.serverless.proxy.spark.filter; -import javax.servlet.Filter; -import javax.servlet.FilterChain; -import javax.servlet.FilterConfig; -import javax.servlet.ServletException; -import javax.servlet.ServletRequest; -import javax.servlet.ServletResponse; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +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; 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 22f7c17cd..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 @@ -23,9 +23,9 @@ import org.springframework.web.context.ConfigurableWebApplicationContext; import org.springframework.web.servlet.DispatcherServlet; -import javax.servlet.Servlet; -import javax.servlet.ServletRegistration; -import javax.servlet.http.HttpServletRequest; +import jakarta.servlet.Servlet; +import jakarta.servlet.ServletRegistration; +import jakarta.servlet.http.HttpServletRequest; import java.util.concurrent.CountDownLatch; 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 b1f35c809..5614b94df 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 @@ -18,7 +18,7 @@ import org.springframework.web.context.ConfigurableWebApplicationContext; import org.springframework.web.context.support.AnnotationConfigWebApplicationContext; -import javax.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletRequest; public class SpringProxyHandlerBuilder extends ServletLambdaContainerHandlerBuilder< RequestType, 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 6c744f6b5..1101efc8c 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 @@ -21,19 +21,12 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.test.annotation.DirtiesContext; -import org.springframework.test.context.ContextConfiguration; -import org.springframework.test.context.TestExecutionListeners; -import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; -import org.springframework.test.context.support.DependencyInjectionTestExecutionListener; -import org.springframework.test.context.web.WebAppConfiguration; import org.springframework.web.servlet.DispatcherServlet; -import javax.servlet.DispatcherType; -import javax.servlet.FilterRegistration; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.MediaType; +import jakarta.servlet.DispatcherType; +import jakarta.servlet.FilterRegistration; +import jakarta.ws.rs.core.HttpHeaders; +import jakarta.ws.rs.core.MediaType; import java.io.IOException; import java.time.ZonedDateTime; import java.time.format.DateTimeFormatter; diff --git a/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/SpringServletContextTest.java b/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/SpringServletContextTest.java index cfc39b845..11b6c7c5f 100644 --- a/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/SpringServletContextTest.java +++ b/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/SpringServletContextTest.java @@ -17,8 +17,8 @@ import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; -import javax.servlet.DispatcherType; -import javax.servlet.FilterRegistration; +import jakarta.servlet.DispatcherType; +import jakarta.servlet.FilterRegistration; import java.util.EnumSet; diff --git a/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/StaticAppProxyTest.java b/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/StaticAppProxyTest.java index d2b74b26a..9e828119f 100644 --- a/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/StaticAppProxyTest.java +++ b/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/StaticAppProxyTest.java @@ -11,7 +11,7 @@ import org.junit.jupiter.api.Test; import org.springframework.http.HttpHeaders; -import javax.ws.rs.core.MediaType; +import jakarta.ws.rs.core.MediaType; import static org.junit.jupiter.api.Assertions.assertTrue; import static org.junit.jupiter.api.Assertions.assertEquals; diff --git a/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/echoapp/ContextResource.java b/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/echoapp/ContextResource.java index d52237566..8f7eaf2a0 100644 --- a/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/echoapp/ContextResource.java +++ b/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/echoapp/ContextResource.java @@ -17,13 +17,13 @@ import org.springframework.web.context.ServletContextAware; import org.springframework.web.servlet.config.annotation.EnableWebMvc; -import javax.servlet.ServletContext; -import javax.servlet.ServletRequest; -import javax.servlet.ServletResponse; -import javax.servlet.http.Cookie; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.validation.Valid; +import jakarta.servlet.ServletContext; +import jakarta.servlet.ServletRequest; +import jakarta.servlet.ServletResponse; +import jakarta.servlet.http.Cookie; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.Valid; import static org.springframework.core.annotation.AnnotatedElementUtils.findMergedAnnotation; diff --git a/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/echoapp/CustomHeaderFilter.java b/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/echoapp/CustomHeaderFilter.java index ca0030439..f6427db65 100644 --- a/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/echoapp/CustomHeaderFilter.java +++ b/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/echoapp/CustomHeaderFilter.java @@ -1,13 +1,13 @@ package com.amazonaws.serverless.proxy.spring.echoapp; -import javax.servlet.Filter; -import javax.servlet.FilterChain; -import javax.servlet.FilterConfig; -import javax.servlet.ServletException; -import javax.servlet.ServletRequest; -import javax.servlet.ServletResponse; -import javax.servlet.http.HttpServletResponse; +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; diff --git a/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/echoapp/EchoResource.java b/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/echoapp/EchoResource.java index ceb358bea..cfcc9f878 100644 --- a/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/echoapp/EchoResource.java +++ b/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/echoapp/EchoResource.java @@ -15,8 +15,8 @@ import org.springframework.web.multipart.commons.CommonsMultipartResolver; import org.springframework.web.servlet.config.annotation.EnableWebMvc; -import javax.servlet.ServletContext; -import javax.servlet.http.HttpServletRequest; +import jakarta.servlet.ServletContext; +import jakarta.servlet.http.HttpServletRequest; import java.io.IOException; import java.net.URI; diff --git a/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/echoapp/EchoSpringAppConfig.java b/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/echoapp/EchoSpringAppConfig.java index a4d5f069c..cf4aa495e 100644 --- a/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/echoapp/EchoSpringAppConfig.java +++ b/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/echoapp/EchoSpringAppConfig.java @@ -24,7 +24,7 @@ public MockLambdaContext lambdaContext() { } @Bean - public javax.validation.Validator localValidatorFactoryBean() { + public jakarta.validation.Validator localValidatorFactoryBean() { return new LocalValidatorFactoryBean(); } } diff --git a/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/echoapp/UnauthenticatedFilter.java b/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/echoapp/UnauthenticatedFilter.java index ba16d905f..ac88119e0 100644 --- a/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/echoapp/UnauthenticatedFilter.java +++ b/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/echoapp/UnauthenticatedFilter.java @@ -1,14 +1,14 @@ package com.amazonaws.serverless.proxy.spring.echoapp; -import javax.servlet.Filter; -import javax.servlet.FilterChain; -import javax.servlet.FilterConfig; -import javax.servlet.ServletException; -import javax.servlet.ServletRequest; -import javax.servlet.ServletResponse; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +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; 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 56c157e83..1e5b83c37 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 @@ -3,7 +3,7 @@ import org.hibernate.validator.constraints.Email; import org.hibernate.validator.constraints.NotEmpty; -import javax.validation.constraints.Size; +import jakarta.validation.constraints.Size; public class ValidatedUserModel { @NotEmpty diff --git a/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/extensibility/CustomServlet.java b/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/extensibility/CustomServlet.java index 2b8604d3a..5c344b4d5 100644 --- a/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/extensibility/CustomServlet.java +++ b/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/extensibility/CustomServlet.java @@ -2,9 +2,9 @@ import org.springframework.context.ApplicationContext; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; public class CustomServlet extends HttpServlet { diff --git a/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/extensibility/CustomServletTest.java b/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/extensibility/CustomServletTest.java index dd3d3fd71..5959a8110 100644 --- a/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/extensibility/CustomServletTest.java +++ b/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/extensibility/CustomServletTest.java @@ -4,7 +4,7 @@ import com.amazonaws.serverless.proxy.internal.testutils.MockLambdaContext; import org.junit.jupiter.api.Test; -import javax.ws.rs.HttpMethod; +import jakarta.ws.rs.HttpMethod; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; diff --git a/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/extensibility/CustomSpringLambdaContainerHandler.java b/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/extensibility/CustomSpringLambdaContainerHandler.java index 3ed872330..4e5fe2783 100644 --- a/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/extensibility/CustomSpringLambdaContainerHandler.java +++ b/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/extensibility/CustomSpringLambdaContainerHandler.java @@ -9,8 +9,8 @@ import com.amazonaws.serverless.proxy.spring.SpringLambdaContainerHandler; import org.springframework.web.context.ConfigurableWebApplicationContext; -import javax.servlet.ServletRegistration; -import javax.servlet.http.HttpServletRequest; +import jakarta.servlet.ServletRegistration; +import jakarta.servlet.http.HttpServletRequest; public class CustomSpringLambdaContainerHandler extends SpringLambdaContainerHandler { 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 index 09c460cfa..257de488c 100644 --- 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 @@ -35,10 +35,10 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.servlet.DispatcherType; -import javax.servlet.FilterRegistration; -import javax.servlet.Servlet; -import javax.servlet.http.HttpServletRequest; +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; 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 index f48547241..6d7e2a37f 100644 --- 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 @@ -28,7 +28,7 @@ import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; -import javax.ws.rs.core.Response; +import jakarta.ws.rs.core.Response; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; 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 index d64a54eca..ad6c63180 100644 --- 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 @@ -4,8 +4,8 @@ import org.apache.commons.io.IOUtils; import org.apache.struts2.ServletActionContext; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; 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 index 554156e9d..e810f3197 100644 --- 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 @@ -5,8 +5,8 @@ import com.opensymphony.xwork2.ActionSupport; import org.apache.struts2.ServletActionContext; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import java.util.Enumeration; import java.util.HashMap; import java.util.Map; diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/src/main/java/resource/PingResource.java b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/src/main/java/resource/PingResource.java index 137ed0302..1c56254fd 100644 --- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/src/main/java/resource/PingResource.java +++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/src/main/java/resource/PingResource.java @@ -4,13 +4,13 @@ import java.util.Map; import java.util.HashMap; -import javax.ws.rs.Consumes; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; +import jakarta.ws.rs.Consumes; +import jakarta.ws.rs.GET; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.Produces; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; +import jakarta.ws.rs.core.MediaType; +import jakarta.ws.rs.core.Response; @Path("/ping") public class PingResource { diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/src/test/java/StreamLambdaHandlerTest.java b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/src/test/java/StreamLambdaHandlerTest.java index 3f232ebc6..4a6b00b03 100644 --- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/src/test/java/StreamLambdaHandlerTest.java +++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/src/test/java/StreamLambdaHandlerTest.java @@ -10,10 +10,10 @@ import org.junit.BeforeClass; import org.junit.Test; -import javax.ws.rs.HttpMethod; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; +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; 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 index 3f232ebc6..4a6b00b03 100644 --- 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 @@ -10,10 +10,10 @@ import org.junit.BeforeClass; import org.junit.Test; -import javax.ws.rs.HttpMethod; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; +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; diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/src/main/java/SpringApiConfig.java b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/src/main/java/SpringApiConfig.java index 0982c6b04..83926b5dd 100644 --- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/src/main/java/SpringApiConfig.java +++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/src/main/java/SpringApiConfig.java @@ -11,8 +11,8 @@ import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter; import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import ${groupId}.controller.PingController; diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/src/test/java/StreamLambdaHandlerTest.java b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/src/test/java/StreamLambdaHandlerTest.java index 3f232ebc6..4a6b00b03 100644 --- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/src/test/java/StreamLambdaHandlerTest.java +++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/src/test/java/StreamLambdaHandlerTest.java @@ -10,10 +10,10 @@ import org.junit.BeforeClass; import org.junit.Test; -import javax.ws.rs.HttpMethod; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; +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; diff --git a/aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/src/test/java/StreamLambdaHandlerTest.java b/aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/src/test/java/StreamLambdaHandlerTest.java index 3f232ebc6..4a6b00b03 100644 --- a/aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/src/test/java/StreamLambdaHandlerTest.java +++ b/aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/src/test/java/StreamLambdaHandlerTest.java @@ -10,10 +10,10 @@ import org.junit.BeforeClass; import org.junit.Test; -import javax.ws.rs.HttpMethod; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; +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; 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 index 12fc9fc07..fd63840b5 100644 --- 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 @@ -12,10 +12,10 @@ import org.junit.BeforeClass; import org.junit.Test; -import javax.ws.rs.HttpMethod; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; +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; diff --git a/samples/jersey/pet-store/src/main/java/com/amazonaws/serverless/sample/jersey/PetsResource.java b/samples/jersey/pet-store/src/main/java/com/amazonaws/serverless/sample/jersey/PetsResource.java index 2d92510d7..c8ad7ebdd 100644 --- a/samples/jersey/pet-store/src/main/java/com/amazonaws/serverless/sample/jersey/PetsResource.java +++ b/samples/jersey/pet-store/src/main/java/com/amazonaws/serverless/sample/jersey/PetsResource.java @@ -15,9 +15,9 @@ import com.amazonaws.serverless.sample.jersey.model.Pet; import com.amazonaws.serverless.sample.jersey.model.PetData; -import javax.ws.rs.*; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; +import jakarta.ws.rs.*; +import jakarta.ws.rs.core.MediaType; +import jakarta.ws.rs.core.Response; import java.util.UUID; @Path("/pets") 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 index 7731a70b1..4794b7aec 100644 --- 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 @@ -5,7 +5,7 @@ import com.amazonaws.serverless.sample.spark.model.Pet; import com.amazonaws.serverless.sample.spark.model.PetData; -import javax.ws.rs.core.Response; +import jakarta.ws.rs.core.Response; import java.util.UUID; 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 index 40ace9d33..e02499103 100644 --- 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 @@ -12,8 +12,8 @@ import spark.Spark; -import javax.servlet.DispatcherType; -import javax.servlet.FilterRegistration; +import jakarta.servlet.DispatcherType; +import jakarta.servlet.FilterRegistration; import java.io.IOException; import java.io.InputStream; 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 index 3b0f5dd1f..e45370b0b 100644 --- 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 @@ -7,12 +7,12 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.servlet.Filter; -import javax.servlet.FilterChain; -import javax.servlet.FilterConfig; -import javax.servlet.ServletException; -import javax.servlet.ServletRequest; -import javax.servlet.ServletResponse; +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; diff --git a/samples/spring/pet-store/src/main/java/com/amazonaws/serverless/sample/spring/PetStoreSpringAppConfig.java b/samples/spring/pet-store/src/main/java/com/amazonaws/serverless/sample/spring/PetStoreSpringAppConfig.java index 81179933c..5ac5403cd 100644 --- a/samples/spring/pet-store/src/main/java/com/amazonaws/serverless/sample/spring/PetStoreSpringAppConfig.java +++ b/samples/spring/pet-store/src/main/java/com/amazonaws/serverless/sample/spring/PetStoreSpringAppConfig.java @@ -22,8 +22,8 @@ import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter; import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; @Configuration diff --git a/samples/spring/pet-store/src/main/java/com/amazonaws/serverless/sample/spring/StreamLambdaHandler.java b/samples/spring/pet-store/src/main/java/com/amazonaws/serverless/sample/spring/StreamLambdaHandler.java index 71fb94cea..07675b3fe 100644 --- a/samples/spring/pet-store/src/main/java/com/amazonaws/serverless/sample/spring/StreamLambdaHandler.java +++ b/samples/spring/pet-store/src/main/java/com/amazonaws/serverless/sample/spring/StreamLambdaHandler.java @@ -10,8 +10,8 @@ import com.amazonaws.services.lambda.runtime.Context; import com.amazonaws.services.lambda.runtime.RequestStreamHandler; -import javax.servlet.DispatcherType; -import javax.servlet.FilterRegistration; +import jakarta.servlet.DispatcherType; +import jakarta.servlet.FilterRegistration; import java.io.IOException; import java.io.InputStream; diff --git a/samples/spring/pet-store/src/main/java/com/amazonaws/serverless/sample/spring/filter/CognitoIdentityFilter.java b/samples/spring/pet-store/src/main/java/com/amazonaws/serverless/sample/spring/filter/CognitoIdentityFilter.java index d9eefdc92..ec4242b81 100644 --- a/samples/spring/pet-store/src/main/java/com/amazonaws/serverless/sample/spring/filter/CognitoIdentityFilter.java +++ b/samples/spring/pet-store/src/main/java/com/amazonaws/serverless/sample/spring/filter/CognitoIdentityFilter.java @@ -7,12 +7,12 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.servlet.Filter; -import javax.servlet.FilterChain; -import javax.servlet.FilterConfig; -import javax.servlet.ServletException; -import javax.servlet.ServletRequest; -import javax.servlet.ServletResponse; +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; diff --git a/samples/springboot2/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot2/Application.java b/samples/springboot2/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot2/Application.java index d613fc073..aeb63a253 100644 --- a/samples/springboot2/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot2/Application.java +++ b/samples/springboot2/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot2/Application.java @@ -15,8 +15,8 @@ import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter; import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; @SpringBootApplication diff --git a/samples/springboot2/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot2/StreamLambdaHandler.java b/samples/springboot2/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot2/StreamLambdaHandler.java index 01ea96630..6df4b5ede 100644 --- a/samples/springboot2/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot2/StreamLambdaHandler.java +++ b/samples/springboot2/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot2/StreamLambdaHandler.java @@ -10,8 +10,8 @@ import com.amazonaws.services.lambda.runtime.Context; import com.amazonaws.services.lambda.runtime.RequestStreamHandler; -import javax.servlet.DispatcherType; -import javax.servlet.FilterRegistration; +import jakarta.servlet.DispatcherType; +import jakarta.servlet.FilterRegistration; import java.io.IOException; import java.io.InputStream; diff --git a/samples/springboot2/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot2/filter/CognitoIdentityFilter.java b/samples/springboot2/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot2/filter/CognitoIdentityFilter.java index 5c3482e40..1cc92708b 100644 --- a/samples/springboot2/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot2/filter/CognitoIdentityFilter.java +++ b/samples/springboot2/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot2/filter/CognitoIdentityFilter.java @@ -7,12 +7,12 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.servlet.Filter; -import javax.servlet.FilterChain; -import javax.servlet.FilterConfig; -import javax.servlet.ServletException; -import javax.servlet.ServletRequest; -import javax.servlet.ServletResponse; +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; From 4db2388bfa9e2b81e30a6b4759f5f25268264448 Mon Sep 17 00:00:00 2001 From: Mbea Date: Sat, 1 Apr 2023 02:33:40 -0700 Subject: [PATCH 047/623] Update jersey.version to 3.11 to fix issues in JerseyHandlerFilter --- aws-serverless-java-container-jersey/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aws-serverless-java-container-jersey/pom.xml b/aws-serverless-java-container-jersey/pom.xml index ae8949859..6842a0d79 100644 --- a/aws-serverless-java-container-jersey/pom.xml +++ b/aws-serverless-java-container-jersey/pom.xml @@ -16,7 +16,7 @@ - 2.39.1 + 3.1.1 From 64721198723b63953f0430627d9c4370a53d6db0 Mon Sep 17 00:00:00 2001 From: Mbea Date: Sat, 1 Apr 2023 03:40:38 -0700 Subject: [PATCH 048/623] Upgrade jakarta.validation-api version to 3.0.2 to fix issue in UserData (cannot find symbol @NotBlank, @Email etc...) --- aws-serverless-java-container-springboot2/pom.xml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/aws-serverless-java-container-springboot2/pom.xml b/aws-serverless-java-container-springboot2/pom.xml index c955649d6..7e27942df 100644 --- a/aws-serverless-java-container-springboot2/pom.xml +++ b/aws-serverless-java-container-springboot2/pom.xml @@ -149,7 +149,7 @@ jakarta.validation jakarta.validation-api - 2.0.2 + 3.0.2 test @@ -175,6 +175,12 @@ jakarta.activation-api 2.1.0 + + jakarta.validation + jakarta.validation-api + 3.0.2 + test + From 8017ce6018a3a2dd0df641c655c9874ea11c2041 Mon Sep 17 00:00:00 2001 From: Mbea Date: Tue, 4 Apr 2023 21:58:02 -0700 Subject: [PATCH 049/623] Added jakarta.websocket-api 2.0.0 to fix java.lang.ExceptionInInitializerError in SecurityAppTest - Updated hibernate-validator version to 8.0.0.FINAL to fix failing test in ServletAppTest (jakarta.validation not working) - Updated Spring-core version to 6.0.7 to fix CVSS error --- aws-serverless-java-container-core/pom.xml | 12 +++++++ .../pom.xml | 33 ++++++++++--------- 2 files changed, 30 insertions(+), 15 deletions(-) diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml index 7c2159d7c..0f2c13c55 100644 --- a/aws-serverless-java-container-core/pom.xml +++ b/aws-serverless-java-container-core/pom.xml @@ -99,10 +99,22 @@ + + + + + + +<<<<<<< HEAD org.apache.httpcomponents httpclient 4.5.14 +======= + org.apache.httpcomponents.client5 + httpclient5 + 5.2.1 +>>>>>>> 9d2d4d4 (Added jakarta.websocket-api 2.0.0 to fix java.lang.ExceptionInInitializerError in SecurityAppTest) test diff --git a/aws-serverless-java-container-springboot2/pom.xml b/aws-serverless-java-container-springboot2/pom.xml index 7e27942df..d98d44ca7 100644 --- a/aws-serverless-java-container-springboot2/pom.xml +++ b/aws-serverless-java-container-springboot2/pom.xml @@ -15,7 +15,7 @@ 1.10-SNAPSHOT - 6.0.5 + 6.0.7 3.0.4 6.0.2 17 @@ -146,30 +146,25 @@ test - - jakarta.validation - jakarta.validation-api - 3.0.2 - test - org.hibernate.validator hibernate-validator - 6.2.1.Final + 8.0.0.Final test + org.junit.jupiter junit-jupiter test - - - javax.activation - activation - 1.1.1 - test - + + + + + + + jakarta.activation jakarta.activation-api @@ -181,6 +176,14 @@ 3.0.2 test + + + jakarta.websocket + jakarta.websocket-api + 2.0.0 + provided + + From 1b6254e8cbe463f4f1293ccb7c2f94c160456421 Mon Sep 17 00:00:00 2001 From: Mbea Date: Wed, 5 Apr 2023 12:46:16 -0700 Subject: [PATCH 050/623] - Added jakarta-activation-api 2.1.0, jakarta.el-api 5.0.1 and org.glassfish:jakarta.el 5.0.0-M1 in Spring component's pom.xml -Updated the CommonsMultipartResolver to StandardServletMultipartResolver --- aws-serverless-java-container-spring/pom.xml | 30 +++++++++++-------- .../proxy/spring/echoapp/EchoResource.java | 6 ++-- 2 files changed, 21 insertions(+), 15 deletions(-) diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml index 444b95be0..830c8002b 100644 --- a/aws-serverless-java-container-spring/pom.xml +++ b/aws-serverless-java-container-spring/pom.xml @@ -16,8 +16,8 @@ - 5.3.27 - 5.7.8 + 6.0.7 + 6.0.2 @@ -60,18 +60,23 @@ + + + + + + - javax.activation - activation - 1.1.1 - test + jakarta.activation + jakarta.activation-api + 2.1.0 org.hibernate.validator hibernate-validator - 6.2.1.Final + 8.0.0.Final test @@ -81,18 +86,19 @@ - javax.el - javax.el-api - 3.0.0 + jakarta.el + jakarta.el-api + 5.0.1 test org.glassfish - javax.el - 3.0.0 + jakarta.el + 5.0.0-M1 test + org.springframework.security spring-security-config diff --git a/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/echoapp/EchoResource.java b/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/echoapp/EchoResource.java index cfcc9f878..a6dd033a0 100644 --- a/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/echoapp/EchoResource.java +++ b/aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/echoapp/EchoResource.java @@ -12,7 +12,7 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartResolver; -import org.springframework.web.multipart.commons.CommonsMultipartResolver; +import org.springframework.web.multipart.support.StandardServletMultipartResolver; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import jakarta.servlet.ServletContext; @@ -42,8 +42,8 @@ public class EchoResource { @Bean public MultipartResolver multipartResolver() { - CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(); - multipartResolver.setMaxUploadSize(1000000); + MultipartResolver multipartResolver = new StandardServletMultipartResolver(); + //multipartResolver.setMaxUploadSize(1000000); return multipartResolver; } From 3abb8fc4db9dbf073b8c6def6b1f0238b71f5d74 Mon Sep 17 00:00:00 2001 From: Mbea Date: Wed, 5 Apr 2023 13:51:43 -0700 Subject: [PATCH 051/623] - added jakarta.ws.rs-api 3.1.0 to pom.xml in Jersey component to fix tests failing in JerseyAwsProxyTest class with error (java.lang.NoClassDefFoundError: jakarta/ws/rs/core/EntityPart) --- aws-serverless-java-container-jersey/pom.xml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/aws-serverless-java-container-jersey/pom.xml b/aws-serverless-java-container-jersey/pom.xml index 6842a0d79..ef4a43712 100644 --- a/aws-serverless-java-container-jersey/pom.xml +++ b/aws-serverless-java-container-jersey/pom.xml @@ -105,6 +105,13 @@ junit-jupiter test + + + jakarta.ws.rs + jakarta.ws.rs-api + 3.1.0 + + From 43179c08ba1664b628a87da065a517dba45b8296 Mon Sep 17 00:00:00 2001 From: Mbea Date: Thu, 6 Apr 2023 01:37:21 -0700 Subject: [PATCH 052/623] - excluded Spark and struts modules from the build - updated dependencies versions in Jersey, Spring and SpringBoot archetypes --- .../resources/archetype-resources/pom.xml | 3 +- .../resources/archetype-resources/pom.xml | 2 +- aws-serverless-springboot2-archetype/pom.xml | 80 --------- .../META-INF/maven/archetype-metadata.xml | 39 ----- .../resources/archetype-resources/README.md | 99 ----------- .../archetype-resources/build.gradle | 29 ---- .../resources/archetype-resources/pom.xml | 155 ------------------ .../archetype-resources/src/assembly/bin.xml | 27 --- .../src/main/java/Application.java | 24 --- .../src/main/java/StreamLambdaHandler.java | 39 ----- .../main/java/controller/PingController.java | 20 --- .../src/main/resources/application.properties | 3 - .../test/java/StreamLambdaHandlerTest.java | 90 ---------- .../archetype-resources/template.yml | 52 ------ .../projects/base/archetype.properties | 3 - .../src/test/resources/projects/base/goal.txt | 1 - pom.xml | 8 +- 17 files changed, 7 insertions(+), 667 deletions(-) delete mode 100644 aws-serverless-springboot2-archetype/pom.xml delete mode 100644 aws-serverless-springboot2-archetype/src/main/resources/META-INF/maven/archetype-metadata.xml delete mode 100644 aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/README.md delete mode 100644 aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/build.gradle delete mode 100644 aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/pom.xml delete mode 100644 aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/src/assembly/bin.xml delete mode 100644 aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/src/main/java/Application.java delete mode 100644 aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/src/main/java/StreamLambdaHandler.java delete mode 100644 aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/src/main/java/controller/PingController.java delete mode 100644 aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/src/main/resources/application.properties delete mode 100644 aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/src/test/java/StreamLambdaHandlerTest.java delete mode 100644 aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/template.yml delete mode 100644 aws-serverless-springboot2-archetype/src/test/resources/projects/base/archetype.properties delete mode 100644 aws-serverless-springboot2-archetype/src/test/resources/projects/base/goal.txt 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 1783f79a3..57dfdd6d7 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 @@ -14,7 +14,8 @@ 1.8 1.8 - 2.39.1 + + 3.1.1 2.15.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 3fbd51264..85e071a08 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 @@ 1.8 1.8 - 5.3.27 + 6.0.7 4.13.2 2.19.0 diff --git a/aws-serverless-springboot2-archetype/pom.xml b/aws-serverless-springboot2-archetype/pom.xml deleted file mode 100644 index 1e7279dbf..000000000 --- a/aws-serverless-springboot2-archetype/pom.xml +++ /dev/null @@ -1,80 +0,0 @@ - - 4.0.0 - - - com.amazonaws.serverless - aws-serverless-java-container - 1.10-SNAPSHOT - - - com.amazonaws.serverless.archetypes - aws-serverless-springboot2-archetype - 1.10-SNAPSHOT - maven-archetype - - - https://github.com/awslabs/aws-serverless-java-container.git - HEAD - - - - - The Apache Software License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0.txt - repo - - - - - - - src/main/resources - true - - archetype-resources/pom.xml - archetype-resources/README.md - - - - src/main/resources - false - - archetype-resources/pom.xml - - - - - - - org.apache.maven.archetype - archetype-packaging - 3.0.1 - - - - - - - org.apache.maven.plugins - maven-resources-plugin - 3.1.0 - - \ - - - - org.apache.maven.plugins - maven-archetype-plugin - 3.0.1 - - - - integration-test - - - - - - - - diff --git a/aws-serverless-springboot2-archetype/src/main/resources/META-INF/maven/archetype-metadata.xml b/aws-serverless-springboot2-archetype/src/main/resources/META-INF/maven/archetype-metadata.xml deleted file mode 100644 index 5379692ba..000000000 --- a/aws-serverless-springboot2-archetype/src/main/resources/META-INF/maven/archetype-metadata.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - src/main/java - - **/*.java - - - - src/main/resources - - **/*.properties - - - - src/test/java - - **/*.java - - - - src/assembly - - * - - - - - - template.yml - README.md - build.gradle - - - - \ No newline at end of file diff --git a/aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/README.md b/aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/README.md deleted file mode 100644 index 1017a83ad..000000000 --- a/aws-serverless-springboot2-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/awslabs/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-springboot2-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/build.gradle deleted file mode 100644 index d6946e7f0..000000000 --- a/aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/build.gradle +++ /dev/null @@ -1,29 +0,0 @@ -apply plugin: 'java' - -repositories { - jcenter() - mavenLocal() - mavenCentral() -} - -dependencies { - implementation ( - 'org.springframework.boot:spring-boot-starter-web:2.7.11', - 'com.amazonaws.serverless:aws-serverless-java-container-springboot2:[1.0,)', - 'io.symphonia:lambda-logging:1.0.3' - ) - - testImplementation("junit:junit:4.13.2") -} - -task buildZip(type: Zip) { - from compileJava - from processResources - into('lib') { - from(configurations.compileClasspath) { - exclude 'tomcat-embed-*' - } - } -} - -build.dependsOn buildZip diff --git a/aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/pom.xml deleted file mode 100644 index 53404bdb1..000000000 --- a/aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/pom.xml +++ /dev/null @@ -1,155 +0,0 @@ -#set($dollar = '$') - - - 4.0.0 - - \${groupId} - \${artifactId} - \${version} - jar - - Serverless Spring Boot 2 API - https://github.com/awslabs/aws-serverless-java-container - - - org.springframework.boot - spring-boot-starter-parent - 2.7.11 - - - - 1.8 - 1.8 - - - - - com.amazonaws.serverless - aws-serverless-java-container-springboot2 - ${project.version} - - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-tomcat - - - - - - junit - junit - 4.12 - test - - - - - - shaded-jar - - - - org.apache.maven.plugins - maven-shade-plugin - 3.2.4 - - false - - - - package - - shade - - - - - org.apache.tomcat.embed:* - - - - - - - - - - - assembly-zip - - true - - - - - - org.apache.maven.plugins - maven-jar-plugin - 3.2.0 - - - default-jar - none - - - - - org.apache.maven.plugins - maven-install-plugin - 3.0.0-M1 - - true - - - - - org.apache.maven.plugins - maven-dependency-plugin - 3.2.0 - - - copy-dependencies - package - - copy-dependencies - - - ${dollar}{project.build.directory}${dollar}{file.separator}lib - runtime - - - - - - org.apache.maven.plugins - maven-assembly-plugin - 3.3.0 - - - zip-assembly - package - - single - - - ${dollar}{project.artifactId}-${dollar}{project.version} - - src${dollar}{file.separator}assembly${dollar}{file.separator}bin.xml - - false - - - - - - - - - diff --git a/aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/src/assembly/bin.xml b/aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/src/assembly/bin.xml deleted file mode 100644 index 1e085057d..000000000 --- a/aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/src/assembly/bin.xml +++ /dev/null @@ -1,27 +0,0 @@ - - lambda-package - - zip - - false - - - - ${project.build.directory}${file.separator}lib - lib - - tomcat-embed* - - - - - ${project.build.directory}${file.separator}classes - - ** - - ${file.separator} - - - \ No newline at end of file diff --git a/aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/src/main/java/Application.java b/aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/src/main/java/Application.java deleted file mode 100644 index 1b74086f7..000000000 --- a/aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/src/main/java/Application.java +++ /dev/null @@ -1,24 +0,0 @@ -#macro(loggingOff) - logging.level.root:OFF -#end -#set($logging = "#loggingOff()") -#set($logging = $logging.replaceAll("\n", "").trim()) -package ${groupId}; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.context.annotation.Import; - -import ${groupId}.controller.PingController; - - -@SpringBootApplication -// We use direct @Import instead of @ComponentScan to speed up cold starts -// @ComponentScan(basePackages = "${groupId}.controller") -@Import({ PingController.class }) -public class Application { - - public static void main(String[] args) { - SpringApplication.run(Application.class, args); - } -} \ No newline at end of file diff --git a/aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/src/main/java/StreamLambdaHandler.java b/aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/src/main/java/StreamLambdaHandler.java deleted file mode 100644 index dca9650d3..000000000 --- a/aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/src/main/java/StreamLambdaHandler.java +++ /dev/null @@ -1,39 +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.spring.SpringBootLambdaContainerHandler; -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; - - -public class StreamLambdaHandler implements RequestStreamHandler { - private static SpringBootLambdaContainerHandler handler; - static { - try { - handler = SpringBootLambdaContainerHandler.getAwsProxyHandler(Application.class); - // For applications that take longer than 10 seconds to start, use the async builder: - // handler = new SpringBootProxyHandlerBuilder() - // .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(); - throw new RuntimeException("Could not initialize Spring Boot application", e); - } - } - - @Override - public void handleRequest(InputStream inputStream, OutputStream outputStream, Context context) - throws IOException { - handler.proxyStream(inputStream, outputStream, context); - } -} \ No newline at end of file diff --git a/aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/src/main/java/controller/PingController.java b/aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/src/main/java/controller/PingController.java deleted file mode 100644 index 94f517f07..000000000 --- a/aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/src/main/java/controller/PingController.java +++ /dev/null @@ -1,20 +0,0 @@ -package ${groupId}.controller; - - -import org.springframework.web.bind.annotation.*; -import org.springframework.web.servlet.config.annotation.EnableWebMvc; - -import java.util.HashMap; -import java.util.Map; - - -@RestController -@EnableWebMvc -public class PingController { - @RequestMapping(path = "/ping", method = RequestMethod.GET) - public Map ping() { - Map pong = new HashMap<>(); - pong.put("pong", "Hello, World!"); - return pong; - } -} diff --git a/aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/src/main/resources/application.properties b/aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/src/main/resources/application.properties deleted file mode 100644 index ec1cb9792..000000000 --- a/aws-serverless-springboot2-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/awslabs/aws-serverless-java-container/issues/134 -logging.level.root=WARN \ No newline at end of file diff --git a/aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/src/test/java/StreamLambdaHandlerTest.java b/aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/src/test/java/StreamLambdaHandlerTest.java deleted file mode 100644 index 4a6b00b03..000000000 --- a/aws-serverless-springboot2-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 org.junit.BeforeClass; -import org.junit.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.Assert.*; - - -public class StreamLambdaHandlerTest { - - private static StreamLambdaHandler handler; - private static Context lambdaContext; - - @BeforeClass - 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-springboot2-archetype/src/main/resources/archetype-resources/template.yml b/aws-serverless-springboot2-archetype/src/main/resources/archetype-resources/template.yml deleted file mode 100644 index 8d8e0946a..000000000 --- a/aws-serverless-springboot2-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 Spring Boot 2 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: 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-springboot2-archetype/src/test/resources/projects/base/archetype.properties b/aws-serverless-springboot2-archetype/src/test/resources/projects/base/archetype.properties deleted file mode 100644 index 7df3bf6e1..000000000 --- a/aws-serverless-springboot2-archetype/src/test/resources/projects/base/archetype.properties +++ /dev/null @@ -1,3 +0,0 @@ -groupId=test.service -artifactId=springboot-archetype-test -version=1.0-SNAPSHOT diff --git a/aws-serverless-springboot2-archetype/src/test/resources/projects/base/goal.txt b/aws-serverless-springboot2-archetype/src/test/resources/projects/base/goal.txt deleted file mode 100644 index 597acc768..000000000 --- a/aws-serverless-springboot2-archetype/src/test/resources/projects/base/goal.txt +++ /dev/null @@ -1 +0,0 @@ -package \ No newline at end of file diff --git a/pom.xml b/pom.xml index 3bf6fbf0d..babeeb899 100644 --- a/pom.xml +++ b/pom.xml @@ -27,13 +27,13 @@ aws-serverless-java-container-core aws-serverless-java-container-jersey - aws-serverless-java-container-spark + aws-serverless-java-container-spring - aws-serverless-java-container-struts + aws-serverless-java-container-springboot2 - aws-serverless-struts-archetype + aws-serverless-jersey-archetype - aws-serverless-spark-archetype + aws-serverless-spring-archetype aws-serverless-springboot2-archetype From 7639de8eabb5bd26b15402e94e9f7ff338a17f1f Mon Sep 17 00:00:00 2001 From: Mbea Date: Thu, 6 Apr 2023 01:58:50 -0700 Subject: [PATCH 053/623] chore: removed unnecessary comments --- aws-serverless-java-container-core/pom.xml | 15 --------------- aws-serverless-java-container-spring/pom.xml | 7 ------- aws-serverless-java-container-springboot2/pom.xml | 11 ++--------- pom.xml | 4 ---- 4 files changed, 2 insertions(+), 35 deletions(-) diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml index 0f2c13c55..32ff479c4 100644 --- a/aws-serverless-java-container-core/pom.xml +++ b/aws-serverless-java-container-core/pom.xml @@ -71,13 +71,6 @@ ${jackson.version} - - - org.apache.commons commons-fileupload2 @@ -89,7 +82,6 @@ 2.0.0 - org.apache.httpcomponents @@ -98,13 +90,6 @@ compile - - - - - - - <<<<<<< HEAD org.apache.httpcomponents diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml index 830c8002b..286117995 100644 --- a/aws-serverless-java-container-spring/pom.xml +++ b/aws-serverless-java-container-spring/pom.xml @@ -59,13 +59,6 @@ test - - - - - - - jakarta.activation jakarta.activation-api diff --git a/aws-serverless-java-container-springboot2/pom.xml b/aws-serverless-java-container-springboot2/pom.xml index d98d44ca7..dddbf5520 100644 --- a/aws-serverless-java-container-springboot2/pom.xml +++ b/aws-serverless-java-container-springboot2/pom.xml @@ -28,7 +28,6 @@ aws-serverless-java-container-core 1.10-SNAPSHOT - org.springframework spring-webflux @@ -158,13 +157,7 @@ junit-jupiter test - - - - - - - + jakarta.activation jakarta.activation-api @@ -176,7 +169,7 @@ 3.0.2 test - + jakarta.websocket jakarta.websocket-api diff --git a/pom.xml b/pom.xml index babeeb899..b3439903b 100644 --- a/pom.xml +++ b/pom.xml @@ -27,13 +27,9 @@ aws-serverless-java-container-core aws-serverless-java-container-jersey - aws-serverless-java-container-spring - aws-serverless-java-container-springboot2 - aws-serverless-jersey-archetype - aws-serverless-spring-archetype aws-serverless-springboot2-archetype From 51642dc16b0204dfb67773fb622934e931bdf2fa Mon Sep 17 00:00:00 2001 From: Mbea Date: Thu, 6 Apr 2023 09:58:08 -0700 Subject: [PATCH 054/623] Renamed springboot2 directory and module to springboot3 --- .../pom.xml | 2 +- .../proxy/spring/SpringBootLambdaContainerHandler.java | 0 .../serverless/proxy/spring/SpringBootProxyHandlerBuilder.java | 0 .../ServerlessReactiveServletEmbeddedServerFactory.java | 0 .../spring/embedded/ServerlessServletEmbeddedServerFactory.java | 0 .../com/amazonaws/serverless/proxy/spring/SecurityAppTest.java | 0 .../com/amazonaws/serverless/proxy/spring/ServletAppTest.java | 0 .../java/com/amazonaws/serverless/proxy/spring/SlowAppTest.java | 0 .../com/amazonaws/serverless/proxy/spring/WebFluxAppTest.java | 0 .../embedded/ServerlessServletEmbeddedServerFactoryTest.java | 0 .../serverless/proxy/spring/securityapp/LambdaHandler.java | 0 .../serverless/proxy/spring/securityapp/MessageController.java | 0 .../proxy/spring/securityapp/SecurityApplication.java | 0 .../serverless/proxy/spring/securityapp/SecurityConfig.java | 0 .../serverless/proxy/spring/servletapp/LambdaHandler.java | 0 .../serverless/proxy/spring/servletapp/LambdaStreamHandler.java | 0 .../serverless/proxy/spring/servletapp/MessageController.java | 0 .../serverless/proxy/spring/servletapp/MessageData.java | 0 .../serverless/proxy/spring/servletapp/ServletApplication.java | 0 .../amazonaws/serverless/proxy/spring/servletapp/UserData.java | 0 .../serverless/proxy/spring/slowapp/LambdaHandler.java | 0 .../serverless/proxy/spring/slowapp/MessageController.java | 0 .../serverless/proxy/spring/slowapp/SlowTestApplication.java | 0 .../serverless/proxy/spring/webfluxapp/LambdaHandler.java | 0 .../serverless/proxy/spring/webfluxapp/MessageController.java | 0 .../serverless/proxy/spring/webfluxapp/MessageData.java | 0 .../proxy/spring/webfluxapp/WebFluxTestApplication.java | 0 pom.xml | 2 +- 28 files changed, 2 insertions(+), 2 deletions(-) rename {aws-serverless-java-container-springboot2 => aws-serverless-java-container-springboot3}/pom.xml (99%) rename {aws-serverless-java-container-springboot2 => aws-serverless-java-container-springboot3}/src/main/java/com/amazonaws/serverless/proxy/spring/SpringBootLambdaContainerHandler.java (100%) rename {aws-serverless-java-container-springboot2 => aws-serverless-java-container-springboot3}/src/main/java/com/amazonaws/serverless/proxy/spring/SpringBootProxyHandlerBuilder.java (100%) rename {aws-serverless-java-container-springboot2 => aws-serverless-java-container-springboot3}/src/main/java/com/amazonaws/serverless/proxy/spring/embedded/ServerlessReactiveServletEmbeddedServerFactory.java (100%) rename {aws-serverless-java-container-springboot2 => aws-serverless-java-container-springboot3}/src/main/java/com/amazonaws/serverless/proxy/spring/embedded/ServerlessServletEmbeddedServerFactory.java (100%) rename {aws-serverless-java-container-springboot2 => aws-serverless-java-container-springboot3}/src/test/java/com/amazonaws/serverless/proxy/spring/SecurityAppTest.java (100%) rename {aws-serverless-java-container-springboot2 => aws-serverless-java-container-springboot3}/src/test/java/com/amazonaws/serverless/proxy/spring/ServletAppTest.java (100%) rename {aws-serverless-java-container-springboot2 => aws-serverless-java-container-springboot3}/src/test/java/com/amazonaws/serverless/proxy/spring/SlowAppTest.java (100%) rename {aws-serverless-java-container-springboot2 => aws-serverless-java-container-springboot3}/src/test/java/com/amazonaws/serverless/proxy/spring/WebFluxAppTest.java (100%) rename {aws-serverless-java-container-springboot2 => aws-serverless-java-container-springboot3}/src/test/java/com/amazonaws/serverless/proxy/spring/embedded/ServerlessServletEmbeddedServerFactoryTest.java (100%) rename {aws-serverless-java-container-springboot2 => aws-serverless-java-container-springboot3}/src/test/java/com/amazonaws/serverless/proxy/spring/securityapp/LambdaHandler.java (100%) rename {aws-serverless-java-container-springboot2 => aws-serverless-java-container-springboot3}/src/test/java/com/amazonaws/serverless/proxy/spring/securityapp/MessageController.java (100%) rename {aws-serverless-java-container-springboot2 => aws-serverless-java-container-springboot3}/src/test/java/com/amazonaws/serverless/proxy/spring/securityapp/SecurityApplication.java (100%) rename {aws-serverless-java-container-springboot2 => aws-serverless-java-container-springboot3}/src/test/java/com/amazonaws/serverless/proxy/spring/securityapp/SecurityConfig.java (100%) rename {aws-serverless-java-container-springboot2 => aws-serverless-java-container-springboot3}/src/test/java/com/amazonaws/serverless/proxy/spring/servletapp/LambdaHandler.java (100%) rename {aws-serverless-java-container-springboot2 => aws-serverless-java-container-springboot3}/src/test/java/com/amazonaws/serverless/proxy/spring/servletapp/LambdaStreamHandler.java (100%) rename {aws-serverless-java-container-springboot2 => aws-serverless-java-container-springboot3}/src/test/java/com/amazonaws/serverless/proxy/spring/servletapp/MessageController.java (100%) rename {aws-serverless-java-container-springboot2 => aws-serverless-java-container-springboot3}/src/test/java/com/amazonaws/serverless/proxy/spring/servletapp/MessageData.java (100%) rename {aws-serverless-java-container-springboot2 => aws-serverless-java-container-springboot3}/src/test/java/com/amazonaws/serverless/proxy/spring/servletapp/ServletApplication.java (100%) rename {aws-serverless-java-container-springboot2 => aws-serverless-java-container-springboot3}/src/test/java/com/amazonaws/serverless/proxy/spring/servletapp/UserData.java (100%) rename {aws-serverless-java-container-springboot2 => aws-serverless-java-container-springboot3}/src/test/java/com/amazonaws/serverless/proxy/spring/slowapp/LambdaHandler.java (100%) rename {aws-serverless-java-container-springboot2 => aws-serverless-java-container-springboot3}/src/test/java/com/amazonaws/serverless/proxy/spring/slowapp/MessageController.java (100%) rename {aws-serverless-java-container-springboot2 => aws-serverless-java-container-springboot3}/src/test/java/com/amazonaws/serverless/proxy/spring/slowapp/SlowTestApplication.java (100%) rename {aws-serverless-java-container-springboot2 => aws-serverless-java-container-springboot3}/src/test/java/com/amazonaws/serverless/proxy/spring/webfluxapp/LambdaHandler.java (100%) rename {aws-serverless-java-container-springboot2 => aws-serverless-java-container-springboot3}/src/test/java/com/amazonaws/serverless/proxy/spring/webfluxapp/MessageController.java (100%) rename {aws-serverless-java-container-springboot2 => aws-serverless-java-container-springboot3}/src/test/java/com/amazonaws/serverless/proxy/spring/webfluxapp/MessageData.java (100%) rename {aws-serverless-java-container-springboot2 => aws-serverless-java-container-springboot3}/src/test/java/com/amazonaws/serverless/proxy/spring/webfluxapp/WebFluxTestApplication.java (100%) diff --git a/aws-serverless-java-container-springboot2/pom.xml b/aws-serverless-java-container-springboot3/pom.xml similarity index 99% rename from aws-serverless-java-container-springboot2/pom.xml rename to aws-serverless-java-container-springboot3/pom.xml index dddbf5520..6f6679a1a 100644 --- a/aws-serverless-java-container-springboot2/pom.xml +++ b/aws-serverless-java-container-springboot3/pom.xml @@ -8,7 +8,7 @@ 4.0.0 com.amazonaws.serverless - aws-serverless-java-container-springboot2 + aws-serverless-java-container-springboot3 AWS Serverless Java container support - SpringBoot 2 implementation Allows Java applications written for SpringBoot 2 to run in AWS Lambda https://aws.amazon.com/lambda diff --git a/aws-serverless-java-container-springboot2/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 similarity index 100% rename from aws-serverless-java-container-springboot2/src/main/java/com/amazonaws/serverless/proxy/spring/SpringBootLambdaContainerHandler.java rename to aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/SpringBootLambdaContainerHandler.java diff --git a/aws-serverless-java-container-springboot2/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 similarity index 100% rename from aws-serverless-java-container-springboot2/src/main/java/com/amazonaws/serverless/proxy/spring/SpringBootProxyHandlerBuilder.java rename to aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/SpringBootProxyHandlerBuilder.java diff --git a/aws-serverless-java-container-springboot2/src/main/java/com/amazonaws/serverless/proxy/spring/embedded/ServerlessReactiveServletEmbeddedServerFactory.java b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/embedded/ServerlessReactiveServletEmbeddedServerFactory.java similarity index 100% rename from aws-serverless-java-container-springboot2/src/main/java/com/amazonaws/serverless/proxy/spring/embedded/ServerlessReactiveServletEmbeddedServerFactory.java rename to aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/embedded/ServerlessReactiveServletEmbeddedServerFactory.java diff --git a/aws-serverless-java-container-springboot2/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 similarity index 100% rename from aws-serverless-java-container-springboot2/src/main/java/com/amazonaws/serverless/proxy/spring/embedded/ServerlessServletEmbeddedServerFactory.java rename to aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/embedded/ServerlessServletEmbeddedServerFactory.java diff --git a/aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/SecurityAppTest.java b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/SecurityAppTest.java similarity index 100% rename from aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/SecurityAppTest.java rename to aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/SecurityAppTest.java diff --git a/aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/ServletAppTest.java b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/ServletAppTest.java similarity index 100% rename from aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/ServletAppTest.java rename to aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/ServletAppTest.java diff --git a/aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/SlowAppTest.java b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/SlowAppTest.java similarity index 100% rename from aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/SlowAppTest.java rename to aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/SlowAppTest.java diff --git a/aws-serverless-java-container-springboot2/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 similarity index 100% rename from aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/WebFluxAppTest.java rename to aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/WebFluxAppTest.java diff --git a/aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/embedded/ServerlessServletEmbeddedServerFactoryTest.java b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/embedded/ServerlessServletEmbeddedServerFactoryTest.java similarity index 100% rename from aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/embedded/ServerlessServletEmbeddedServerFactoryTest.java rename to aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/embedded/ServerlessServletEmbeddedServerFactoryTest.java diff --git a/aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/securityapp/LambdaHandler.java b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/securityapp/LambdaHandler.java similarity index 100% rename from aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/securityapp/LambdaHandler.java rename to aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/securityapp/LambdaHandler.java diff --git a/aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/securityapp/MessageController.java b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/securityapp/MessageController.java similarity index 100% rename from aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/securityapp/MessageController.java rename to aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/securityapp/MessageController.java diff --git a/aws-serverless-java-container-springboot2/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 similarity index 100% rename from aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/securityapp/SecurityApplication.java rename to aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/securityapp/SecurityApplication.java diff --git a/aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/securityapp/SecurityConfig.java b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/securityapp/SecurityConfig.java similarity index 100% rename from aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/securityapp/SecurityConfig.java rename to aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/securityapp/SecurityConfig.java diff --git a/aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/servletapp/LambdaHandler.java b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/servletapp/LambdaHandler.java similarity index 100% rename from aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/servletapp/LambdaHandler.java rename to aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/servletapp/LambdaHandler.java diff --git a/aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/servletapp/LambdaStreamHandler.java b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/servletapp/LambdaStreamHandler.java similarity index 100% rename from aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/servletapp/LambdaStreamHandler.java rename to aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/servletapp/LambdaStreamHandler.java diff --git a/aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/servletapp/MessageController.java b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/servletapp/MessageController.java similarity index 100% rename from aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/servletapp/MessageController.java rename to aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/servletapp/MessageController.java diff --git a/aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/servletapp/MessageData.java b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/servletapp/MessageData.java similarity index 100% rename from aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/servletapp/MessageData.java rename to aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/servletapp/MessageData.java diff --git a/aws-serverless-java-container-springboot2/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 similarity index 100% rename from aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/servletapp/ServletApplication.java rename to aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/servletapp/ServletApplication.java diff --git a/aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/servletapp/UserData.java b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/servletapp/UserData.java similarity index 100% rename from aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/servletapp/UserData.java rename to aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/servletapp/UserData.java diff --git a/aws-serverless-java-container-springboot2/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 similarity index 100% rename from aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/slowapp/LambdaHandler.java rename to aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/slowapp/LambdaHandler.java diff --git a/aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/slowapp/MessageController.java b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/slowapp/MessageController.java similarity index 100% rename from aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/slowapp/MessageController.java rename to aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/slowapp/MessageController.java diff --git a/aws-serverless-java-container-springboot2/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 similarity index 100% rename from aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/slowapp/SlowTestApplication.java rename to aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/slowapp/SlowTestApplication.java diff --git a/aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/webfluxapp/LambdaHandler.java b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/webfluxapp/LambdaHandler.java similarity index 100% rename from aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/webfluxapp/LambdaHandler.java rename to aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/webfluxapp/LambdaHandler.java diff --git a/aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/webfluxapp/MessageController.java b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/webfluxapp/MessageController.java similarity index 100% rename from aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/webfluxapp/MessageController.java rename to aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/webfluxapp/MessageController.java diff --git a/aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/webfluxapp/MessageData.java b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/webfluxapp/MessageData.java similarity index 100% rename from aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/webfluxapp/MessageData.java rename to aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/webfluxapp/MessageData.java diff --git a/aws-serverless-java-container-springboot2/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 similarity index 100% rename from aws-serverless-java-container-springboot2/src/test/java/com/amazonaws/serverless/proxy/spring/webfluxapp/WebFluxTestApplication.java rename to aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/webfluxapp/WebFluxTestApplication.java diff --git a/pom.xml b/pom.xml index b3439903b..cbcfda7f4 100644 --- a/pom.xml +++ b/pom.xml @@ -28,7 +28,7 @@ aws-serverless-java-container-core aws-serverless-java-container-jersey aws-serverless-java-container-spring - aws-serverless-java-container-springboot2 + aws-serverless-java-container-springboot3 aws-serverless-jersey-archetype aws-serverless-spring-archetype aws-serverless-springboot2-archetype From dbdb614b167073c63834ed3f68db137c8578bde6 Mon Sep 17 00:00:00 2001 From: Mbea Date: Tue, 11 Apr 2023 10:22:15 -0700 Subject: [PATCH 055/623] fix: updated name and description in SpringBoot3 component pom.xml --- .../pom.xml | 4 +- aws-serverless-springboot3-archetype/pom.xml | 80 +++++++++ .../META-INF/maven/archetype-metadata.xml | 39 +++++ .../resources/archetype-resources/README.md | 99 +++++++++++ .../archetype-resources/build.gradle | 29 ++++ .../resources/archetype-resources/pom.xml | 155 ++++++++++++++++++ .../archetype-resources/src/assembly/bin.xml | 27 +++ .../src/main/java/Application.java | 24 +++ .../src/main/java/StreamLambdaHandler.java | 39 +++++ .../main/java/controller/PingController.java | 20 +++ .../src/main/resources/application.properties | 3 + .../test/java/StreamLambdaHandlerTest.java | 90 ++++++++++ .../archetype-resources/template.yml | 52 ++++++ .../projects/base/archetype.properties | 3 + .../src/test/resources/projects/base/goal.txt | 1 + pom.xml | 2 +- 16 files changed, 664 insertions(+), 3 deletions(-) create mode 100644 aws-serverless-springboot3-archetype/pom.xml create mode 100644 aws-serverless-springboot3-archetype/src/main/resources/META-INF/maven/archetype-metadata.xml create mode 100644 aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/README.md create mode 100644 aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle create mode 100644 aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml create mode 100644 aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/src/assembly/bin.xml create mode 100644 aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/src/main/java/Application.java create mode 100644 aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/src/main/java/StreamLambdaHandler.java create mode 100644 aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/src/main/java/controller/PingController.java create mode 100644 aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/src/main/resources/application.properties create mode 100644 aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/src/test/java/StreamLambdaHandlerTest.java create mode 100644 aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/template.yml create mode 100644 aws-serverless-springboot3-archetype/src/test/resources/projects/base/archetype.properties create mode 100644 aws-serverless-springboot3-archetype/src/test/resources/projects/base/goal.txt diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml index 6f6679a1a..e810ecdf7 100644 --- a/aws-serverless-java-container-springboot3/pom.xml +++ b/aws-serverless-java-container-springboot3/pom.xml @@ -9,8 +9,8 @@ com.amazonaws.serverless aws-serverless-java-container-springboot3 - AWS Serverless Java container support - SpringBoot 2 implementation - Allows Java applications written for SpringBoot 2 to run in AWS Lambda + AWS Serverless Java container support - SpringBoot 3 implementation + Allows Java applications written for SpringBoot 3 to run in AWS Lambda https://aws.amazon.com/lambda 1.10-SNAPSHOT diff --git a/aws-serverless-springboot3-archetype/pom.xml b/aws-serverless-springboot3-archetype/pom.xml new file mode 100644 index 000000000..4003610a3 --- /dev/null +++ b/aws-serverless-springboot3-archetype/pom.xml @@ -0,0 +1,80 @@ + + 4.0.0 + + + com.amazonaws.serverless + aws-serverless-java-container + 1.10-SNAPSHOT + + + com.amazonaws.serverless.archetypes + aws-serverless-springboot3-archetype + 1.10-SNAPSHOT + maven-archetype + + + https://github.com/awslabs/aws-serverless-java-container.git + HEAD + + + + + The Apache Software License, Version 2.0 + http://www.apache.org/licenses/LICENSE-2.0.txt + repo + + + + + + + src/main/resources + true + + archetype-resources/pom.xml + archetype-resources/README.md + + + + src/main/resources + false + + archetype-resources/pom.xml + + + + + + + org.apache.maven.archetype + archetype-packaging + 3.0.1 + + + + + + + org.apache.maven.plugins + maven-resources-plugin + 3.1.0 + + \ + + + + org.apache.maven.plugins + maven-archetype-plugin + 3.0.1 + + + + integration-test + + + + + + + + diff --git a/aws-serverless-springboot3-archetype/src/main/resources/META-INF/maven/archetype-metadata.xml b/aws-serverless-springboot3-archetype/src/main/resources/META-INF/maven/archetype-metadata.xml new file mode 100644 index 000000000..5379692ba --- /dev/null +++ b/aws-serverless-springboot3-archetype/src/main/resources/META-INF/maven/archetype-metadata.xml @@ -0,0 +1,39 @@ + + + + src/main/java + + **/*.java + + + + src/main/resources + + **/*.properties + + + + src/test/java + + **/*.java + + + + src/assembly + + * + + + + + + template.yml + README.md + build.gradle + + + + \ No newline at end of file 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 new file mode 100644 index 000000000..1017a83ad --- /dev/null +++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/README.md @@ -0,0 +1,99 @@ +#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/awslabs/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-springboot3-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle new file mode 100644 index 000000000..36a13b5d7 --- /dev/null +++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle @@ -0,0 +1,29 @@ +apply plugin: 'java' + +repositories { + jcenter() + mavenLocal() + mavenCentral() +} + +dependencies { + implementation ( + 'org.springframework.boot:spring-boot-starter-web:2.7.10', + 'com.amazonaws.serverless:aws-serverless-java-container-springboot2:[1.0,)', + 'io.symphonia:lambda-logging:1.0.3' + ) + + testImplementation("junit:junit:4.13.2") +} + +task buildZip(type: Zip) { + from compileJava + from processResources + into('lib') { + from(configurations.compileClasspath) { + exclude 'tomcat-embed-*' + } + } +} + +build.dependsOn buildZip 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 new file mode 100644 index 000000000..1489ddf24 --- /dev/null +++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml @@ -0,0 +1,155 @@ +#set($dollar = '$') + + + 4.0.0 + + \${groupId} + \${artifactId} + \${version} + jar + + Serverless Spring Boot 2 API + https://github.com/awslabs/aws-serverless-java-container + + + org.springframework.boot + spring-boot-starter-parent + 3.0.4 + + + + 1.8 + 1.8 + + + + + com.amazonaws.serverless + aws-serverless-java-container-springboot2 + ${project.version} + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-tomcat + + + + + + junit + junit + 4.12 + test + + + + + + shaded-jar + + + + org.apache.maven.plugins + maven-shade-plugin + 3.2.4 + + false + + + + package + + shade + + + + + org.apache.tomcat.embed:* + + + + + + + + + + + assembly-zip + + true + + + + + + org.apache.maven.plugins + maven-jar-plugin + 3.2.0 + + + default-jar + none + + + + + org.apache.maven.plugins + maven-install-plugin + 3.0.0-M1 + + true + + + + + org.apache.maven.plugins + maven-dependency-plugin + 3.2.0 + + + copy-dependencies + package + + copy-dependencies + + + ${dollar}{project.build.directory}${dollar}{file.separator}lib + runtime + + + + + + org.apache.maven.plugins + maven-assembly-plugin + 3.3.0 + + + zip-assembly + package + + single + + + ${dollar}{project.artifactId}-${dollar}{project.version} + + src${dollar}{file.separator}assembly${dollar}{file.separator}bin.xml + + false + + + + + + + + + diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/src/assembly/bin.xml b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/src/assembly/bin.xml new file mode 100644 index 000000000..1e085057d --- /dev/null +++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/src/assembly/bin.xml @@ -0,0 +1,27 @@ + + lambda-package + + zip + + false + + + + ${project.build.directory}${file.separator}lib + lib + + tomcat-embed* + + + + + ${project.build.directory}${file.separator}classes + + ** + + ${file.separator} + + + \ No newline at end of file diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/src/main/java/Application.java b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/src/main/java/Application.java new file mode 100644 index 000000000..1b74086f7 --- /dev/null +++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/src/main/java/Application.java @@ -0,0 +1,24 @@ +#macro(loggingOff) + logging.level.root:OFF +#end +#set($logging = "#loggingOff()") +#set($logging = $logging.replaceAll("\n", "").trim()) +package ${groupId}; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.Import; + +import ${groupId}.controller.PingController; + + +@SpringBootApplication +// We use direct @Import instead of @ComponentScan to speed up cold starts +// @ComponentScan(basePackages = "${groupId}.controller") +@Import({ PingController.class }) +public class Application { + + public static void main(String[] args) { + SpringApplication.run(Application.class, args); + } +} \ No newline at end of file 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 new file mode 100644 index 000000000..dca9650d3 --- /dev/null +++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/src/main/java/StreamLambdaHandler.java @@ -0,0 +1,39 @@ +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.spring.SpringBootLambdaContainerHandler; +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; + + +public class StreamLambdaHandler implements RequestStreamHandler { + private static SpringBootLambdaContainerHandler handler; + static { + try { + handler = SpringBootLambdaContainerHandler.getAwsProxyHandler(Application.class); + // For applications that take longer than 10 seconds to start, use the async builder: + // handler = new SpringBootProxyHandlerBuilder() + // .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(); + throw new RuntimeException("Could not initialize Spring Boot application", e); + } + } + + @Override + public void handleRequest(InputStream inputStream, OutputStream outputStream, Context context) + throws IOException { + handler.proxyStream(inputStream, outputStream, context); + } +} \ No newline at end of file diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/src/main/java/controller/PingController.java b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/src/main/java/controller/PingController.java new file mode 100644 index 000000000..94f517f07 --- /dev/null +++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/src/main/java/controller/PingController.java @@ -0,0 +1,20 @@ +package ${groupId}.controller; + + +import org.springframework.web.bind.annotation.*; +import org.springframework.web.servlet.config.annotation.EnableWebMvc; + +import java.util.HashMap; +import java.util.Map; + + +@RestController +@EnableWebMvc +public class PingController { + @RequestMapping(path = "/ping", method = RequestMethod.GET) + public Map ping() { + Map pong = new HashMap<>(); + pong.put("pong", "Hello, World!"); + return pong; + } +} 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 new file mode 100644 index 000000000..ec1cb9792 --- /dev/null +++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/src/main/resources/application.properties @@ -0,0 +1,3 @@ +# Reduce logging level to make sure the application works with SAM local +# https://github.com/awslabs/aws-serverless-java-container/issues/134 +logging.level.root=WARN \ No newline at end of file diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/src/test/java/StreamLambdaHandlerTest.java b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/src/test/java/StreamLambdaHandlerTest.java new file mode 100644 index 000000000..4a6b00b03 --- /dev/null +++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/src/test/java/StreamLambdaHandlerTest.java @@ -0,0 +1,90 @@ +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.BeforeClass; +import org.junit.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.Assert.*; + + +public class StreamLambdaHandlerTest { + + private static StreamLambdaHandler handler; + private static Context lambdaContext; + + @BeforeClass + 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-springboot3-archetype/src/main/resources/archetype-resources/template.yml b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/template.yml new file mode 100644 index 000000000..8d8e0946a --- /dev/null +++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/template.yml @@ -0,0 +1,52 @@ +#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 Spring Boot 2 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: 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-springboot3-archetype/src/test/resources/projects/base/archetype.properties b/aws-serverless-springboot3-archetype/src/test/resources/projects/base/archetype.properties new file mode 100644 index 000000000..7df3bf6e1 --- /dev/null +++ b/aws-serverless-springboot3-archetype/src/test/resources/projects/base/archetype.properties @@ -0,0 +1,3 @@ +groupId=test.service +artifactId=springboot-archetype-test +version=1.0-SNAPSHOT diff --git a/aws-serverless-springboot3-archetype/src/test/resources/projects/base/goal.txt b/aws-serverless-springboot3-archetype/src/test/resources/projects/base/goal.txt new file mode 100644 index 000000000..597acc768 --- /dev/null +++ b/aws-serverless-springboot3-archetype/src/test/resources/projects/base/goal.txt @@ -0,0 +1 @@ +package \ No newline at end of file diff --git a/pom.xml b/pom.xml index cbcfda7f4..08627db23 100644 --- a/pom.xml +++ b/pom.xml @@ -31,7 +31,7 @@ aws-serverless-java-container-springboot3 aws-serverless-jersey-archetype aws-serverless-spring-archetype - aws-serverless-springboot2-archetype + aws-serverless-springboot3-archetype From 578e3d7778248a9b176d50f9d4e6cb991c309842 Mon Sep 17 00:00:00 2001 From: Mbea Date: Fri, 14 Apr 2023 10:43:57 -0700 Subject: [PATCH 056/623] - Updated the pet-store samples - Updated some dependencies versions --- aws-serverless-java-container-core/pom.xml | 22 +++++++------------ .../internal/servlet/AwsServletContext.java | 18 +++++++-------- aws-serverless-java-container-spring/pom.xml | 7 +++--- .../pom.xml | 2 +- .../resources/archetype-resources/pom.xml | 2 +- samples/jersey/pet-store/pom.xml | 4 ++-- samples/quarkus/pet-store/pom.xml | 4 ++-- samples/spring/pet-store/pom.xml | 7 +++--- samples/spring/pet-store/template.yml | 2 +- .../pet-store/README.md | 0 .../pet-store/build.gradle | 0 .../pet-store/pom.xml | 11 +++++----- .../pet-store/src/assembly/bin.xml | 0 .../sample/springboot3}/Application.java | 0 .../springboot3}/StreamLambdaHandler.java | 0 .../controller/PetsController.java | 0 .../filter/CognitoIdentityFilter.java | 0 .../sample/springboot3}/model/Error.java | 0 .../sample/springboot3}/model/Pet.java | 0 .../sample/springboot3}/model/PetData.java | 0 .../pet-store/src/main/resources/logback.xml | 0 .../pet-store/template.yml | 4 ++-- 22 files changed, 38 insertions(+), 45 deletions(-) rename samples/{springboot2 => springboot3}/pet-store/README.md (100%) rename samples/{springboot2 => springboot3}/pet-store/build.gradle (100%) rename samples/{springboot2 => springboot3}/pet-store/pom.xml (96%) rename samples/{springboot2 => springboot3}/pet-store/src/assembly/bin.xml (100%) rename samples/{springboot2/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot2 => springboot3/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3}/Application.java (100%) rename samples/{springboot2/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot2 => springboot3/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3}/StreamLambdaHandler.java (100%) rename samples/{springboot2/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot2 => springboot3/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3}/controller/PetsController.java (100%) rename samples/{springboot2/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot2 => springboot3/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3}/filter/CognitoIdentityFilter.java (100%) rename samples/{springboot2/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot2 => springboot3/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3}/model/Error.java (100%) rename samples/{springboot2/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot2 => springboot3/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3}/model/Pet.java (100%) rename samples/{springboot2/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot2 => springboot3/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3}/model/PetData.java (100%) rename samples/{springboot2 => springboot3}/pet-store/src/main/resources/logback.xml (100%) rename samples/{springboot2 => springboot3}/pet-store/template.yml (90%) diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml index 32ff479c4..0f0bf9516 100644 --- a/aws-serverless-java-container-core/pom.xml +++ b/aws-serverless-java-container-core/pom.xml @@ -16,7 +16,7 @@ - 2.1.1 + 3.1.0 5.0.0 @@ -47,14 +47,14 @@ jakarta.servlet jakarta.servlet-api - 5.0.0 + ${servlet.version} jakarta.ws.rs jakarta.ws.rs-api - 3.0.0-M1 + ${jaxrs.version} @@ -79,7 +79,7 @@ org.eclipse.angus angus-mail - 2.0.0 + 2.0.1 @@ -91,15 +91,9 @@ -<<<<<<< HEAD - org.apache.httpcomponents - httpclient - 4.5.14 -======= org.apache.httpcomponents.client5 httpclient5 5.2.1 ->>>>>>> 9d2d4d4 (Added jakarta.websocket-api 2.0.0 to fix java.lang.ExceptionInInitializerError in SecurityAppTest) test @@ -118,9 +112,9 @@ test - org.apache.httpcomponents - httpcore - 4.4.16 + org.apache.httpcomponents.core5 + httpcore5 + 5.2.1 compile true @@ -134,7 +128,7 @@ jakarta.activation jakarta.activation-api - 2.1.0 + 2.1.1 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 4531b14ae..e1688c9fc 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 @@ -46,8 +46,8 @@ public class AwsServletContext //------------------------------------------------------------- // Constants - Public // ------------------------------------------------------------- - public static final int SERVLET_API_MAJOR_VERSION = 3; - public static final int SERVLET_API_MINOR_VERSION = 1; + public static final int SERVLET_API_MAJOR_VERSION = 5; + public static final int SERVLET_API_MINOR_VERSION = 0; public static final String SERVER_INFO = LambdaContainerHandler.SERVER_INFO + "/" + SERVLET_API_MAJOR_VERSION + "." + SERVLET_API_MINOR_VERSION; @@ -98,32 +98,32 @@ public String getContextPath() { @Override public void setResponseCharacterEncoding(String encoding) { - // do nothing; + throw new UnsupportedOperationException(); } @Override public String getResponseCharacterEncoding() { - return ""; + return null; } @Override public void setRequestCharacterEncoding(String encoding) { - // do nothing; + throw new UnsupportedOperationException(); } @Override public String getRequestCharacterEncoding() { - return ""; + return null; } @Override public void setSessionTimeout(int sessionTimeout) { - // do nothing; + throw new UnsupportedOperationException(); } @Override public int getSessionTimeout() { - return 1; + return 15; } @@ -379,7 +379,7 @@ public ServletRegistration.Dynamic addServlet(String s, Class @Override public ServletRegistration.Dynamic addJspFile(String s, String s1) { - return null; + throw new UnsupportedOperationException(); } diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml index 286117995..f1ae95db2 100644 --- a/aws-serverless-java-container-spring/pom.xml +++ b/aws-serverless-java-container-spring/pom.xml @@ -63,6 +63,7 @@ jakarta.activation jakarta.activation-api 2.1.0 + test @@ -86,9 +87,9 @@ - org.glassfish - jakarta.el - 5.0.0-M1 + org.glassfish.expressly + expressly + 5.0.0 test diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml index e810ecdf7..08856cf54 100644 --- a/aws-serverless-java-container-springboot3/pom.xml +++ b/aws-serverless-java-container-springboot3/pom.xml @@ -16,7 +16,7 @@ 6.0.7 - 3.0.4 + 3.0.5 6.0.2 17 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 1489ddf24..edb821900 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 @@ org.springframework.boot spring-boot-starter-parent - 3.0.4 + 3.0.5 diff --git a/samples/jersey/pet-store/pom.xml b/samples/jersey/pet-store/pom.xml index f6b5bed42..2f0b8f567 100644 --- a/samples/jersey/pet-store/pom.xml +++ b/samples/jersey/pet-store/pom.xml @@ -26,8 +26,8 @@ 1.8 1.8 - 2.39.1 - 2.15.0 + 3.1.1 + 2.14.2 diff --git a/samples/quarkus/pet-store/pom.xml b/samples/quarkus/pet-store/pom.xml index 0147be882..5484ffade 100644 --- a/samples/quarkus/pet-store/pom.xml +++ b/samples/quarkus/pet-store/pom.xml @@ -8,8 +8,8 @@ 3.8.1 true - 1.8 - 1.8 + 17.0.6 + 17.0.6 UTF-8 UTF-8 1.0.1.Final diff --git a/samples/spring/pet-store/pom.xml b/samples/spring/pet-store/pom.xml index 73cf9dc1a..0b85ff945 100644 --- a/samples/spring/pet-store/pom.xml +++ b/samples/spring/pet-store/pom.xml @@ -24,9 +24,8 @@ - 1.8 - 1.8 - 5.3.27 + 17 + 6.0.7 4.13.2 2.19.0 @@ -35,7 +34,7 @@ com.amazonaws.serverless aws-serverless-java-container-spring - [1.9,) + [2.0,) diff --git a/samples/spring/pet-store/template.yml b/samples/spring/pet-store/template.yml index c485cf4c6..5a029f8ae 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: java11 + Runtime: java17 CodeUri: . MemorySize: 512 Policies: AWSLambdaBasicExecutionRole diff --git a/samples/springboot2/pet-store/README.md b/samples/springboot3/pet-store/README.md similarity index 100% rename from samples/springboot2/pet-store/README.md rename to samples/springboot3/pet-store/README.md diff --git a/samples/springboot2/pet-store/build.gradle b/samples/springboot3/pet-store/build.gradle similarity index 100% rename from samples/springboot2/pet-store/build.gradle rename to samples/springboot3/pet-store/build.gradle diff --git a/samples/springboot2/pet-store/pom.xml b/samples/springboot3/pet-store/pom.xml similarity index 96% rename from samples/springboot2/pet-store/pom.xml rename to samples/springboot3/pet-store/pom.xml index 534d565d7..dc1dcc36f 100644 --- a/samples/springboot2/pet-store/pom.xml +++ b/samples/springboot3/pet-store/pom.xml @@ -4,7 +4,7 @@ 4.0.0 com.amazonaws.serverless.sample - serverless-springboot2-example + serverless-springboot3-example 1.0-SNAPSHOT Spring Boot example for the aws-serverless-java-container library Simple pet store written with the Spring framework and Spring Boot @@ -13,7 +13,7 @@ org.springframework.boot spring-boot-starter-parent - 2.7.11 + 3.0.5 @@ -25,8 +25,7 @@ - 1.8 - 1.8 + 17 @@ -43,8 +42,8 @@ com.amazonaws.serverless - aws-serverless-java-container-springboot2 - [1.6,) + aws-serverless-java-container-springboot3 + [2.0,) diff --git a/samples/springboot2/pet-store/src/assembly/bin.xml b/samples/springboot3/pet-store/src/assembly/bin.xml similarity index 100% rename from samples/springboot2/pet-store/src/assembly/bin.xml rename to samples/springboot3/pet-store/src/assembly/bin.xml diff --git a/samples/springboot2/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot2/Application.java b/samples/springboot3/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/Application.java similarity index 100% rename from samples/springboot2/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot2/Application.java rename to samples/springboot3/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/Application.java diff --git a/samples/springboot2/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot2/StreamLambdaHandler.java b/samples/springboot3/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/StreamLambdaHandler.java similarity index 100% rename from samples/springboot2/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot2/StreamLambdaHandler.java rename to samples/springboot3/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/StreamLambdaHandler.java diff --git a/samples/springboot2/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot2/controller/PetsController.java b/samples/springboot3/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/controller/PetsController.java similarity index 100% rename from samples/springboot2/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot2/controller/PetsController.java rename to samples/springboot3/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/controller/PetsController.java diff --git a/samples/springboot2/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot2/filter/CognitoIdentityFilter.java b/samples/springboot3/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/filter/CognitoIdentityFilter.java similarity index 100% rename from samples/springboot2/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot2/filter/CognitoIdentityFilter.java rename to samples/springboot3/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/filter/CognitoIdentityFilter.java diff --git a/samples/springboot2/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot2/model/Error.java b/samples/springboot3/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/model/Error.java similarity index 100% rename from samples/springboot2/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot2/model/Error.java rename to samples/springboot3/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/model/Error.java diff --git a/samples/springboot2/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot2/model/Pet.java b/samples/springboot3/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/model/Pet.java similarity index 100% rename from samples/springboot2/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot2/model/Pet.java rename to samples/springboot3/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/model/Pet.java diff --git a/samples/springboot2/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot2/model/PetData.java b/samples/springboot3/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/model/PetData.java similarity index 100% rename from samples/springboot2/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot2/model/PetData.java rename to samples/springboot3/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/model/PetData.java diff --git a/samples/springboot2/pet-store/src/main/resources/logback.xml b/samples/springboot3/pet-store/src/main/resources/logback.xml similarity index 100% rename from samples/springboot2/pet-store/src/main/resources/logback.xml rename to samples/springboot3/pet-store/src/main/resources/logback.xml diff --git a/samples/springboot2/pet-store/template.yml b/samples/springboot3/pet-store/template.yml similarity index 90% rename from samples/springboot2/pet-store/template.yml rename to samples/springboot3/pet-store/template.yml index c7a17276f..ec78e3ebe 100644 --- a/samples/springboot2/pet-store/template.yml +++ b/samples/springboot3/pet-store/template.yml @@ -11,8 +11,8 @@ Resources: PetStoreFunction: Type: AWS::Serverless::Function Properties: - Handler: com.amazonaws.serverless.sample.springboot2.StreamLambdaHandler::handleRequest - Runtime: java11 + Handler: com.amazonaws.serverless.sample.springboot3.StreamLambdaHandler::handleRequest + Runtime: java17 CodeUri: . MemorySize: 1512 Policies: AWSLambdaBasicExecutionRole From d41e9c5ad9dbcb502bdc43cccb630b89c0f7a3d3 Mon Sep 17 00:00:00 2001 From: mbfreder Date: Mon, 17 Apr 2023 00:49:15 -0700 Subject: [PATCH 057/623] - moved to Servlet 6.0.0 - updated build.gradle files to be aligned to the Maven poms - moved all poms to 2.0-SNAPSHOT --- aws-serverless-java-container-core/pom.xml | 6 ++-- .../AwsHttpApiV2ProxyHttpServletRequest.java | 21 +++++++---- .../servlet/AwsHttpServletRequest.java | 1 - .../servlet/AwsHttpServletRequestWrapper.java | 25 +++++++------ .../servlet/AwsHttpServletResponse.java | 36 +++++++++---------- .../internal/servlet/AwsHttpSession.java | 31 ---------------- .../servlet/AwsProxyRequestDispatcher.java | 6 +--- .../internal/servlet/AwsServletContext.java | 35 +----------------- .../servlet/AwsFilterChainManagerTest.java | 4 +-- .../internal/servlet/AwsHttpSessionTest.java | 28 --------------- .../servlet/AwsServletContextTest.java | 5 ++- aws-serverless-java-container-jersey/pom.xml | 6 ++-- aws-serverless-java-container-spring/pom.xml | 8 ++--- .../pom.xml | 8 ++--- aws-serverless-jersey-archetype/pom.xml | 4 +-- aws-serverless-spring-archetype/pom.xml | 4 +-- aws-serverless-springboot3-archetype/pom.xml | 4 +-- .../resources/archetype-resources/pom.xml | 7 ++-- pom.xml | 2 +- samples/jersey/pet-store/build.gradle | 8 ++--- samples/jersey/pet-store/pom.xml | 4 +-- samples/micronaut/pet-store/build.gradle | 10 +++--- samples/quarkus/pet-store/pom.xml | 2 +- samples/spring/pet-store/build.gradle | 6 ++-- samples/spring/pet-store/pom.xml | 5 +-- samples/springboot3/pet-store/build.gradle | 4 +-- samples/springboot3/pet-store/pom.xml | 2 +- 27 files changed, 99 insertions(+), 183 deletions(-) diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml index 0f0bf9516..645916e75 100644 --- a/aws-serverless-java-container-core/pom.xml +++ b/aws-serverless-java-container-core/pom.xml @@ -6,18 +6,18 @@ AWS Serverless Java container support - Core Allows Java applications written for a servlet container to run in AWS Lambda https://aws.amazon.com/lambda - 1.10-SNAPSHOT + 2.0-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container - 1.10-SNAPSHOT + 2.0-SNAPSHOT .. 3.1.0 - 5.0.0 + 6.0.0 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 d81105bd5..85c8d8c12 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 @@ -428,12 +428,6 @@ public RequestDispatcher getRequestDispatcher(String s) { return getServletContext().getRequestDispatcher(s); } - @Override - public String getRealPath(String s) { - // we are in an archive on a remote server - return null; - } - @Override public int getRemotePort() { return 0; @@ -480,6 +474,21 @@ public AsyncContext getAsyncContext() { return asyncContext; } + @Override + public String getRequestId() { + return null; + } + + @Override + public String getProtocolRequestId() { + return null; + } + + @Override + public ServletConnection getServletConnection() { + return null; + } + private MultiValuedTreeMap parseRawQueryString(String qs) { if (qs == null || "".equals(qs.trim())) { return new MultiValuedTreeMap<>(); 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 358ccdfba..99b2782c5 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 @@ -179,7 +179,6 @@ public boolean isRequestedSessionIdFromURL() { return false; } - //------------------------------------------------------------- // Implementation - ServletRequest //------------------------------------------------------------- diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequestWrapper.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequestWrapper.java index d87b707ec..00c7d77d7 100644 --- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequestWrapper.java +++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequestWrapper.java @@ -177,11 +177,6 @@ public boolean isRequestedSessionIdFromURL() { return originalRequest.isRequestedSessionIdFromURL(); } - @Override - public boolean isRequestedSessionIdFromUrl() { - return originalRequest.isRequestedSessionIdFromUrl(); - } - @Override public boolean authenticate(HttpServletResponse httpServletResponse) throws IOException, ServletException { return originalRequest.authenticate(httpServletResponse); @@ -343,11 +338,6 @@ public RequestDispatcher getRequestDispatcher(String s) { return originalRequest.getRequestDispatcher(s); } - @Override - public String getRealPath(String s) { - return originalRequest.getRealPath(s); - } - @Override public int getRemotePort() { return originalRequest.getRemotePort(); @@ -402,4 +392,19 @@ public AsyncContext getAsyncContext() { public DispatcherType getDispatcherType() { return originalRequest.getDispatcherType(); } + + @Override + public String getRequestId() { + return null; + } + + @Override + public String getProtocolRequestId() { + return null; + } + + @Override + public ServletConnection getServletConnection() { + return null; + } } 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 814958dfa..e325b50d5 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 @@ -152,24 +152,24 @@ public String encodeRedirectURL(String s) { } - @Override - @Deprecated - public String encodeUrl(String s) { - return this.encodeURL(s); - } +// @Override +// @Deprecated +// public String encodeUrl(String s) { +// return this.encodeURL(s); +// } - @Override - @Deprecated - public String encodeRedirectUrl(String s) { - return this.encodeRedirectURL(s); - } +// @Override +// @Deprecated +// public String encodeRedirectUrl(String s) { +// return this.encodeRedirectURL(s); +// } @Override public void sendError(int i, String s) throws IOException { request.setAttribute(AwsHttpServletRequest.DISPATCHER_TYPE_ATTRIBUTE, DispatcherType.ERROR); - setStatus(i, s); + setStatus(i); flushBuffer(); } @@ -259,13 +259,13 @@ public void setStatus(int i) { } - @Override - @Deprecated - public void setStatus(int i, String s) { - if (!canSetHeader()) return; - statusCode = i; - statusMessage = s; - } +// @Override +// @Deprecated +// public void setStatus(int i, String s) { +// if (!canSetHeader()) return; +// statusCode = i; +// statusMessage = s; +// } @Override diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpSession.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpSession.java index eb1f728f9..2163320da 100644 --- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpSession.java +++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpSession.java @@ -17,7 +17,6 @@ import jakarta.servlet.ServletContext; import jakarta.servlet.http.HttpSession; -import jakarta.servlet.http.HttpSessionContext; import java.time.Instant; import java.util.Collections; @@ -87,60 +86,30 @@ public int getMaxInactiveInterval() { return maxInactiveInterval; } - @Override - @Deprecated - public HttpSessionContext getSessionContext() { - throw new UnsupportedOperationException("Session context is deprecated and no longer supported"); - } - @Override public Object getAttribute(String name) { touch(); return attributes.get(name); } - @Override - @Deprecated - public Object getValue(String name) { - throw new UnsupportedOperationException("Session values are deprecated and not supported"); - } - @Override public Enumeration getAttributeNames() { touch(); return Collections.enumeration(attributes.keySet()); } - @Override - @Deprecated - public String[] getValueNames() { - throw new UnsupportedOperationException("Session values are deprecated and not supported"); - } - @Override public void setAttribute(String name, Object value) { touch(); attributes.put(name, value); } - @Override - @Deprecated - public void putValue(String name, Object value) { - throw new UnsupportedOperationException("Session values are deprecated and not supported"); - } - @Override public void removeAttribute(String name) { touch(); attributes.remove(name); } - @Override - @Deprecated - public void removeValue(String name) { - throw new UnsupportedOperationException("Session values are deprecated and not supported"); - } - @Override public void invalidate() { valid = false; diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyRequestDispatcher.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyRequestDispatcher.java index 5ed2ccf44..1d2f3e3ca 100644 --- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyRequestDispatcher.java +++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyRequestDispatcher.java @@ -80,7 +80,7 @@ public void forward(ServletRequest servletRequest, ServletResponse servletRespon } if (isNamedDispatcher) { - lambdaContainerHandler.doFilter((HttpServletRequest) servletRequest, (HttpServletResponse) servletResponse, getServlet(dispatchTo)); + lambdaContainerHandler.doFilter((HttpServletRequest) servletRequest, (HttpServletResponse) servletResponse, getServlet((HttpServletRequest)servletRequest)); return; } @@ -149,8 +149,4 @@ private Servlet getServlet(HttpServletRequest req) { return ((AwsServletContext)lambdaContainerHandler.getServletContext()).getServletForPath(req.getPathInfo()); } - private Servlet getServlet(String servletName) throws ServletException { - return ((AwsServletContext)lambdaContainerHandler.getServletContext()).getServlet(servletName); - } - } 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 e1688c9fc..cd84f8504 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 @@ -123,7 +123,7 @@ public void setSessionTimeout(int sessionTimeout) { @Override public int getSessionTimeout() { - return 15; + return 0; } @@ -206,13 +206,6 @@ public RequestDispatcher getNamedDispatcher(String s) { return new AwsProxyRequestDispatcher(s, true, containerHandler); } - - @Override - @Deprecated - public Servlet getServlet(String s) throws ServletException { - return servletRegistrations.get(s).getServlet(); - } - public Servlet getServletForPath(String path) { String[] pathParts = path.split("/"); for (AwsServletRegistration reg : servletRegistrations.values()) { @@ -238,38 +231,12 @@ public Servlet getServletForPath(String path) { return null; } - - @Override - @Deprecated - public Enumeration getServlets() { - return Collections.enumeration(servletRegistrations.entrySet().stream() - .map((e) -> { - return e.getValue().getServlet(); - } ) - .collect(Collectors.toList())); - } - - - @Override - @Deprecated - public Enumeration getServletNames() { - return Collections.enumeration(servletRegistrations.keySet()); - } - - @Override public void log(String s) { log.info(SecurityUtils.encode(s)); } - @Override - @Deprecated - public void log(Exception e, String s) { - log.error(SecurityUtils.encode(s), e); - } - - @Override public void log(String s, Throwable throwable) { log.error(SecurityUtils.encode(s), throwable); diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsFilterChainManagerTest.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsFilterChainManagerTest.java index 7e7fba49b..1a51b5581 100644 --- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsFilterChainManagerTest.java +++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsFilterChainManagerTest.java @@ -229,11 +229,11 @@ void filterChain_executeMultipleFilters_expectRunEachTime() { @Test void filterChain_multipleServlets_callsCorrectServlet() throws IOException, ServletException { - MockServlet servlet1 = (MockServlet) servletContext.getServlet(SERVLET1_NAME); + MockServlet servlet1 = (MockServlet) ((AwsServletRegistration) servletContext.getServletRegistration(SERVLET1_NAME)).getServlet(); ServletConfig servlet1Config = ((AwsServletRegistration) servletContext.getServletRegistration(SERVLET1_NAME)).getServletConfig(); servlet1.init(servlet1Config); - MockServlet servlet2 = (MockServlet) servletContext.getServlet(SERVLET2_NAME); + MockServlet servlet2 = (MockServlet) ((AwsServletRegistration) servletContext.getServletRegistration(SERVLET2_NAME)).getServlet(); ServletConfig servlet2Config = ((AwsServletRegistration) servletContext.getServletRegistration(SERVLET2_NAME)).getServletConfig(); servlet2.init(servlet2Config); diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpSessionTest.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpSessionTest.java index 77dd4bd32..bcca83dda 100644 --- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpSessionTest.java +++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpSessionTest.java @@ -34,34 +34,6 @@ void new_creationTimePopulatedCorrectly() { assertEquals(session.getLastAccessedTime(), session.getCreationTime()); } - @Test - void values_throwsUnsupportedOperationException() { - int exCount = 0; - AwsHttpSession sess = new AwsHttpSession("id"); - - try { - sess.putValue("test", "test"); - } catch (UnsupportedOperationException e) { - exCount++; - } - try { - sess.removeValue("test"); - } catch (UnsupportedOperationException e) { - exCount++; - } - try { - sess.getValue("test"); - } catch (UnsupportedOperationException e) { - exCount++; - } - try { - sess.getValueNames(); - } catch (UnsupportedOperationException e) { - exCount++; - } - assertEquals(4, exCount); - } - @Test void attributes_dataStoredCorrectly() throws InterruptedException { AwsHttpSession sess = new AwsHttpSession("id"); diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsServletContextTest.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsServletContextTest.java index 5817527e2..ed84462a5 100644 --- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsServletContextTest.java +++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsServletContextTest.java @@ -217,9 +217,8 @@ void servletMappings_expectCorrectServlet() { void addServlet_callsDefaultConstructor() throws ServletException { AwsServletContext ctx = new AwsServletContext(null); ctx.addServlet("srv1", TestServlet.class); - assertNotNull(ctx.getServlet("srv1")); - assertNotNull(ctx.getServletRegistration("srv1")); - assertEquals("", ((TestServlet)ctx.getServlet("srv1")).getId()); + assertNotNull(((AwsServletRegistration) ctx.getServletRegistration("srv1")).getServlet()); + assertEquals("", ((TestServlet)((AwsServletRegistration) ctx.getServletRegistration("srv1")).getServlet()).getId()); } @Test diff --git a/aws-serverless-java-container-jersey/pom.xml b/aws-serverless-java-container-jersey/pom.xml index ef4a43712..e94af8030 100644 --- a/aws-serverless-java-container-jersey/pom.xml +++ b/aws-serverless-java-container-jersey/pom.xml @@ -6,12 +6,12 @@ AWS Serverless Java container support - Jersey implementation Allows Java applications written for Jersey to run in AWS Lambda https://aws.amazon.com/lambda - 1.10-SNAPSHOT + 2.0-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container - 1.10-SNAPSHOT + 2.0-SNAPSHOT .. @@ -24,7 +24,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 1.10-SNAPSHOT + 2.0-SNAPSHOT com.fasterxml.jackson.core diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml index f1ae95db2..8cf77bb25 100644 --- a/aws-serverless-java-container-spring/pom.xml +++ b/aws-serverless-java-container-spring/pom.xml @@ -6,17 +6,17 @@ AWS Serverless Java container support - Spring implementation Allows Java applications written for the Spring framework to run in AWS Lambda https://aws.amazon.com/lambda - 1.10-SNAPSHOT + 2.0-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container - 1.10-SNAPSHOT + 2.0-SNAPSHOT .. - 6.0.7 + 6.0.8 6.0.2 @@ -25,7 +25,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 1.10-SNAPSHOT + 2.0-SNAPSHOT diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml index 08856cf54..34557c57a 100644 --- a/aws-serverless-java-container-springboot3/pom.xml +++ b/aws-serverless-java-container-springboot3/pom.xml @@ -3,7 +3,7 @@ aws-serverless-java-container com.amazonaws.serverless - 1.10-SNAPSHOT + 2.0-SNAPSHOT 4.0.0 @@ -12,10 +12,10 @@ AWS Serverless Java container support - SpringBoot 3 implementation Allows Java applications written for SpringBoot 3 to run in AWS Lambda https://aws.amazon.com/lambda - 1.10-SNAPSHOT + 2.0-SNAPSHOT - 6.0.7 + 6.0.8 3.0.5 6.0.2 17 @@ -26,7 +26,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 1.10-SNAPSHOT + 2.0-SNAPSHOT org.springframework diff --git a/aws-serverless-jersey-archetype/pom.xml b/aws-serverless-jersey-archetype/pom.xml index c13c05869..6df742a57 100644 --- a/aws-serverless-jersey-archetype/pom.xml +++ b/aws-serverless-jersey-archetype/pom.xml @@ -4,12 +4,12 @@ com.amazonaws.serverless aws-serverless-java-container - 1.10-SNAPSHOT + 2.0-SNAPSHOT com.amazonaws.serverless.archetypes aws-serverless-jersey-archetype - 1.10-SNAPSHOT + 2.0-SNAPSHOT maven-archetype diff --git a/aws-serverless-spring-archetype/pom.xml b/aws-serverless-spring-archetype/pom.xml index 83dc79743..396f5e798 100644 --- a/aws-serverless-spring-archetype/pom.xml +++ b/aws-serverless-spring-archetype/pom.xml @@ -4,12 +4,12 @@ com.amazonaws.serverless aws-serverless-java-container - 1.10-SNAPSHOT + 2.0-SNAPSHOT com.amazonaws.serverless.archetypes aws-serverless-spring-archetype - 1.10-SNAPSHOT + 2.0-SNAPSHOT maven-archetype diff --git a/aws-serverless-springboot3-archetype/pom.xml b/aws-serverless-springboot3-archetype/pom.xml index 4003610a3..040f43536 100644 --- a/aws-serverless-springboot3-archetype/pom.xml +++ b/aws-serverless-springboot3-archetype/pom.xml @@ -4,12 +4,12 @@ com.amazonaws.serverless aws-serverless-java-container - 1.10-SNAPSHOT + 2.0-SNAPSHOT com.amazonaws.serverless.archetypes aws-serverless-springboot3-archetype - 1.10-SNAPSHOT + 2.0-SNAPSHOT maven-archetype 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 edb821900..fd770a9b4 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 @@ -10,7 +10,7 @@ \${version} jar - Serverless Spring Boot 2 API + Serverless Spring Boot 3 API https://github.com/awslabs/aws-serverless-java-container @@ -20,14 +20,13 @@ - 1.8 - 1.8 + 17 com.amazonaws.serverless - aws-serverless-java-container-springboot2 + aws-serverless-java-container-springboot3 ${project.version} diff --git a/pom.xml b/pom.xml index 08627db23..1dca94c7c 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.amazonaws.serverless aws-serverless-java-container pom - 1.10-SNAPSHOT + 2.0-SNAPSHOT AWS Serverless Java container A Java framework to run Spring, Spring Boot, Jersey, Spark, and Struts applications inside AWS Lambda https://github.com/awslabs/aws-serverless-java-container diff --git a/samples/jersey/pet-store/build.gradle b/samples/jersey/pet-store/build.gradle index b32dc8ef8..5b073ebe1 100644 --- a/samples/jersey/pet-store/build.gradle +++ b/samples/jersey/pet-store/build.gradle @@ -7,18 +7,18 @@ repositories { dependencies { implementation ( - 'com.amazonaws.serverless:aws-serverless-java-container-jersey:[1.9,)', - 'com.fasterxml.jackson.core:jackson-databind:2.15.0', + 'com.amazonaws.serverless:aws-serverless-java-container-jersey:[2.0,)', + 'com.fasterxml.jackson.core:jackson-databind:2.14.2', 'io.symphonia:lambda-logging:1.0.3' ) - implementation("org.glassfish.jersey.media:jersey-media-json-jackson:2.39.1") { + implementation("org.glassfish.jersey.media:jersey-media-json-jackson:3.1.1") { 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:2.39.1") { + implementation("org.glassfish.jersey.inject:jersey-hk2:3.1.1") { exclude group: 'javax.inject', module: "javax.inject" } } diff --git a/samples/jersey/pet-store/pom.xml b/samples/jersey/pet-store/pom.xml index 2f0b8f567..0505d04f7 100644 --- a/samples/jersey/pet-store/pom.xml +++ b/samples/jersey/pet-store/pom.xml @@ -6,7 +6,7 @@ com.amazonaws.serverless.sample serverless-jersey-example - 1.0-SNAPSHOT + 2.0-SNAPSHOT Jersey example for the aws-serverless-java-container library Simple pet store written in Jersey https://aws.amazon.com/lambda/ @@ -34,7 +34,7 @@ com.amazonaws.serverless aws-serverless-java-container-jersey - [1.9,) + [2.0,) diff --git a/samples/micronaut/pet-store/build.gradle b/samples/micronaut/pet-store/build.gradle index 6282d2d2c..b262a4699 100644 --- a/samples/micronaut/pet-store/build.gradle +++ b/samples/micronaut/pet-store/build.gradle @@ -1,10 +1,10 @@ plugins { id "java" - id "com.github.johnrengelman.shadow" version "5.0.0" + id "com.github.johnrengelman.shadow" version "8.1.1" id "application" id "net.ltgt.apt-eclipse" version "0.21" - id "org.springframework.boot" version "2.1.12.RELEASE" - id "io.spring.dependency-management" version "1.0.6.RELEASE" + id "org.springframework.boot" version "3.0.5" + id "io.spring.dependency-management" version "1.1.0" } version "0.1" @@ -53,8 +53,8 @@ dependencies { // spring support implementation("org.springframework.boot:spring-boot-starter-web") - runtime("io.micronaut.spring:micronaut-spring-boot:1.0.1") - runtime("io.micronaut.spring:micronaut-spring-web:1.0.1") + runtime("io.micronaut.spring:micronaut-spring-boot:5.0.0-M1") + runtime("io.micronaut.spring:micronaut-spring-web:5.0.0-M1") } test.classpath += configurations.developmentOnly diff --git a/samples/quarkus/pet-store/pom.xml b/samples/quarkus/pet-store/pom.xml index 5484ffade..13229ee5d 100644 --- a/samples/quarkus/pet-store/pom.xml +++ b/samples/quarkus/pet-store/pom.xml @@ -4,7 +4,7 @@ 4.0.0 com.amazonaws.serverless.sample serverless-quarkus-example - 1.0-SNAPSHOT + 2.0-SNAPSHOT 3.8.1 true diff --git a/samples/spring/pet-store/build.gradle b/samples/spring/pet-store/build.gradle index 759aa0610..46a7df708 100644 --- a/samples/spring/pet-store/build.gradle +++ b/samples/spring/pet-store/build.gradle @@ -7,9 +7,9 @@ repositories { dependencies { implementation ( - 'org.springframework:spring-webmvc:5.3.27', - 'org.springframework:spring-context:5.3.27', - 'com.amazonaws.serverless:aws-serverless-java-container-spring:[1.0,)', + 'org.springframework:spring-webmvc:6.0.7', + 'org.springframework:spring-context:6.0.7', + 'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0,)', 'org.apache.logging.log4j:log4j-core:2.19.0', 'org.apache.logging.log4j:log4j-api:2.19.0', 'org.apache.logging.log4j:log4j-slf4j-impl:2.19.0', diff --git a/samples/spring/pet-store/pom.xml b/samples/spring/pet-store/pom.xml index 0b85ff945..2194cee2d 100644 --- a/samples/spring/pet-store/pom.xml +++ b/samples/spring/pet-store/pom.xml @@ -6,7 +6,7 @@ com.amazonaws.serverless.sample serverless-spring-example - 1.0-SNAPSHOT + 2.0-SNAPSHOT Spring example for the aws-serverless-java-container library Simple pet store written with the Spring framework https://aws.amazon.com/lambda/ @@ -24,10 +24,11 @@ - 17 6.0.7 4.13.2 2.19.0 + 17.0.6 + 17.0.6 diff --git a/samples/springboot3/pet-store/build.gradle b/samples/springboot3/pet-store/build.gradle index 60affd722..37ba61a59 100644 --- a/samples/springboot3/pet-store/build.gradle +++ b/samples/springboot3/pet-store/build.gradle @@ -8,10 +8,10 @@ repositories { dependencies { implementation ( - implementation('org.springframework.boot:spring-boot-starter-web:2.7.11') { + implementation('org.springframework.boot:spring-boot-starter-web:3.0.5') { exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat' }, - 'com.amazonaws.serverless:aws-serverless-java-container-springboot2:[1.4,)', + 'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0,)', 'io.symphonia:lambda-logging:1.0.3' ) testImplementation("junit:junit") diff --git a/samples/springboot3/pet-store/pom.xml b/samples/springboot3/pet-store/pom.xml index dc1dcc36f..3f0f283ad 100644 --- a/samples/springboot3/pet-store/pom.xml +++ b/samples/springboot3/pet-store/pom.xml @@ -5,7 +5,7 @@ com.amazonaws.serverless.sample serverless-springboot3-example - 1.0-SNAPSHOT + 2.0-SNAPSHOT Spring Boot example for the aws-serverless-java-container library Simple pet store written with the Spring framework and Spring Boot https://aws.amazon.com/lambda/ From 4b1a7b4c7eb76eb36186e927828e448b86e4ab23 Mon Sep 17 00:00:00 2001 From: mbfreder Date: Thu, 20 Apr 2023 09:12:17 -0700 Subject: [PATCH 058/623] Removed java-9 profiles along with the old com.sun.activation:jakarta.activation dependency. --- aws-serverless-java-container-core/pom.xml | 22 ----------------- .../AwsHttpApiV2ProxyHttpServletRequest.java | 4 ++-- .../servlet/AwsHttpServletRequestWrapper.java | 4 ++-- .../servlet/AwsHttpServletResponse.java | 24 ------------------- .../servlet/AwsProxyRequestDispatcher.java | 2 +- .../internal/servlet/AwsServletContext.java | 2 +- aws-serverless-java-container-spring/pom.xml | 2 +- .../pom.xml | 1 - 8 files changed, 7 insertions(+), 54 deletions(-) diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml index 645916e75..ad00d2ef8 100644 --- a/aws-serverless-java-container-core/pom.xml +++ b/aws-serverless-java-container-core/pom.xml @@ -125,11 +125,6 @@ 6.0.2 test - - jakarta.activation - jakarta.activation-api - 2.1.1 - @@ -226,21 +221,4 @@ - - - - java9-plus - - [9,) - - - - com.sun.activation - jakarta.activation - 1.2.2 - - - - - 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 85c8d8c12..bdf11b819 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 @@ -476,12 +476,12 @@ public AsyncContext getAsyncContext() { @Override public String getRequestId() { - return null; + return request.getRequestContext().getRequestId(); } @Override public String getProtocolRequestId() { - return null; + return ""; } @Override diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequestWrapper.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequestWrapper.java index 00c7d77d7..3817e7971 100644 --- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequestWrapper.java +++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequestWrapper.java @@ -395,12 +395,12 @@ public DispatcherType getDispatcherType() { @Override public String getRequestId() { - return null; + return originalRequest.getRequestId(); } @Override public String getProtocolRequestId() { - return null; + return ""; } @Override 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 e325b50d5..c46af7a9b 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 @@ -152,20 +152,6 @@ public String encodeRedirectURL(String s) { } -// @Override -// @Deprecated -// public String encodeUrl(String s) { -// return this.encodeURL(s); -// } - - -// @Override -// @Deprecated -// public String encodeRedirectUrl(String s) { -// return this.encodeRedirectURL(s); -// } - - @Override public void sendError(int i, String s) throws IOException { request.setAttribute(AwsHttpServletRequest.DISPATCHER_TYPE_ATTRIBUTE, DispatcherType.ERROR); @@ -258,16 +244,6 @@ public void setStatus(int i) { statusCode = i; } - -// @Override -// @Deprecated -// public void setStatus(int i, String s) { -// if (!canSetHeader()) return; -// statusCode = i; -// statusMessage = s; -// } - - @Override public int getStatus() { return (statusCode <= 0?SC_OK:statusCode); diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyRequestDispatcher.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyRequestDispatcher.java index 1d2f3e3ca..f314ba0d0 100644 --- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyRequestDispatcher.java +++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyRequestDispatcher.java @@ -80,7 +80,7 @@ public void forward(ServletRequest servletRequest, ServletResponse servletRespon } if (isNamedDispatcher) { - lambdaContainerHandler.doFilter((HttpServletRequest) servletRequest, (HttpServletResponse) servletResponse, getServlet((HttpServletRequest)servletRequest)); + lambdaContainerHandler.doFilter((HttpServletRequest) servletRequest, (HttpServletResponse) servletResponse, ((AwsServletRegistration)servletRequest.getServletContext().getServletRegistration(dispatchTo)).getServlet()); return; } 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 cd84f8504..634f44ff1 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 @@ -46,7 +46,7 @@ public class AwsServletContext //------------------------------------------------------------- // Constants - Public // ------------------------------------------------------------- - public static final int SERVLET_API_MAJOR_VERSION = 5; + public static final int SERVLET_API_MAJOR_VERSION = 6; public static final int SERVLET_API_MINOR_VERSION = 0; public static final String SERVER_INFO = LambdaContainerHandler.SERVER_INFO + "/" + SERVLET_API_MAJOR_VERSION + "." + SERVLET_API_MINOR_VERSION; diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml index 8cf77bb25..5fe784a4f 100644 --- a/aws-serverless-java-container-spring/pom.xml +++ b/aws-serverless-java-container-spring/pom.xml @@ -62,7 +62,7 @@ jakarta.activation jakarta.activation-api - 2.1.0 + 2.1.1 test diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml index 34557c57a..c20fab9f3 100644 --- a/aws-serverless-java-container-springboot3/pom.xml +++ b/aws-serverless-java-container-springboot3/pom.xml @@ -18,7 +18,6 @@ 6.0.8 3.0.5 6.0.2 - 17 From 980ebfa13166b0993b95481c28707c5be9f76e72 Mon Sep 17 00:00:00 2001 From: mbfreder Date: Mon, 24 Apr 2023 14:25:33 -0700 Subject: [PATCH 059/623] chore(deps): Updated sample apps --- .../src/main/resources/archetype-resources/build.gradle | 2 +- .../src/main/resources/archetype-resources/build.gradle | 6 +++--- pom.xml | 2 +- samples/jersey/pet-store/build.gradle | 2 +- samples/jersey/pet-store/pom.xml | 2 +- samples/jersey/pet-store/template.yml | 2 +- samples/quarkus/pet-store/pom.xml | 4 ++-- 7 files changed, 10 insertions(+), 10 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 949112fcf..b1ddfd4a4 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 @@ -7,7 +7,7 @@ repositories { dependencies { implementation ( - 'com.amazonaws.serverless:aws-serverless-java-container-jersey:[1.9,)', + 'com.amazonaws.serverless:aws-serverless-java-container-jersey:[2.0,)', 'com.fasterxml.jackson.core:jackson-databind:2.15.0', 'io.symphonia:lambda-logging:1.0.3' ) 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 66093c4b1..7aedaf58a 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,9 +7,9 @@ repositories { dependencies { implementation ( - 'org.springframework:spring-webmvc:5.3.27', - 'org.springframework:spring-context:5.3.27', - 'com.amazonaws.serverless:aws-serverless-java-container-spring:[1.0,)', + 'org.springframework:spring-webmvc:6.0.8', + 'org.springframework:spring-context:6.0.8', + 'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0,)', 'org.apache.logging.log4j:log4j-core:2.19.0', 'org.apache.logging.log4j:log4j-api:2.19.0', 'org.apache.logging.log4j:log4j-slf4j-impl:2.19.0', diff --git a/pom.xml b/pom.xml index 1dca94c7c..2c97633a8 100644 --- a/pom.xml +++ b/pom.xml @@ -38,7 +38,7 @@ https://github.com/awslabs/aws-serverless-java-container scm:git:https://github.com/awslabs/aws-serverless-java-container.git HEAD - + diff --git a/samples/jersey/pet-store/build.gradle b/samples/jersey/pet-store/build.gradle index 5b073ebe1..11ad779d6 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,)', - 'com.fasterxml.jackson.core:jackson-databind:2.14.2', + 'com.fasterxml.jackson.core:jackson-databind:2.15.0', 'io.symphonia:lambda-logging:1.0.3' ) diff --git a/samples/jersey/pet-store/pom.xml b/samples/jersey/pet-store/pom.xml index 0505d04f7..58511ca20 100644 --- a/samples/jersey/pet-store/pom.xml +++ b/samples/jersey/pet-store/pom.xml @@ -27,7 +27,7 @@ 1.8 1.8 3.1.1 - 2.14.2 + 2.15.0 diff --git a/samples/jersey/pet-store/template.yml b/samples/jersey/pet-store/template.yml index f715064c4..a3fd2bfa0 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: java11 + Runtime: java17 CodeUri: . MemorySize: 512 Policies: AWSLambdaBasicExecutionRole diff --git a/samples/quarkus/pet-store/pom.xml b/samples/quarkus/pet-store/pom.xml index 13229ee5d..d13958adc 100644 --- a/samples/quarkus/pet-store/pom.xml +++ b/samples/quarkus/pet-store/pom.xml @@ -8,8 +8,8 @@ 3.8.1 true - 17.0.6 - 17.0.6 + 17 + 17 UTF-8 UTF-8 1.0.1.Final From 57c712a224401a23a7520780eb1d62cd1a90e00a Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Tue, 25 Apr 2023 12:06:19 +0200 Subject: [PATCH 060/623] chore: modify CI build for 2.x --- .../continuous-integration-workflow.yml | 88 +++++++++---------- 1 file changed, 43 insertions(+), 45 deletions(-) diff --git a/.github/workflows/continuous-integration-workflow.yml b/.github/workflows/continuous-integration-workflow.yml index 4942f3564..c77801214 100644 --- a/.github/workflows/continuous-integration-workflow.yml +++ b/.github/workflows/continuous-integration-workflow.yml @@ -24,25 +24,25 @@ jobs: - uses: actions/checkout@v3 - name: Build latest run: ./gha_build.sh jersey true true - - name: Set up JDK 8 - uses: actions/setup-java@v3 - with: - distribution: 'corretto' - java-version: 8 - - name: Build Jersey 2.27 - run: ./gha_build.sh jersey false false -Djersey.version=2.27 - - name: Build Jersey 2.28 - run: ./gha_build.sh jersey false false -Djersey.version=2.28 - - name: Build Jersey 2.29 - run: ./gha_build.sh jersey false false -Djersey.version=2.29.1 +# - name: Set up JDK 8 +# uses: actions/setup-java@v3 +# with: +# distribution: 'corretto' +# java-version: 8 +# - name: Build Jersey 2.27 +# run: ./gha_build.sh jersey false false -Djersey.version=2.27 +# - name: Build Jersey 2.28 +# run: ./gha_build.sh jersey false false -Djersey.version=2.28 +# - 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_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 & SpringBoot @@ -50,37 +50,35 @@ jobs: steps: - uses: actions/checkout@v3 - name: Build latest - # we reduce the minCoverage for this run because it will skip the SpringBoot 1.5 tests since they are no longer compatible with - # Spring core 5.2 and above. SpringBoot 1.5 is deprecated - run: ./gha_build.sh spring true true -Djacoco.minCoverage=0.4 - - 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 + 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 - build_springboot2: - name: Build and test SpringBoot 2 + build_springboot3: + name: Build and test SpringBoot 3 runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Build latest - run: ./gha_build.sh springboot2 true true + 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 +# - 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_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 +# 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 From 0f40e3a51c7bd45acff5771b1f76e974a76105ca Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Tue, 25 Apr 2023 12:12:10 +0200 Subject: [PATCH 061/623] chore: modify CI build for 2.x to use Corretto 17 --- .../continuous-integration-workflow.yml | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/.github/workflows/continuous-integration-workflow.yml b/.github/workflows/continuous-integration-workflow.yml index c77801214..5728e10b0 100644 --- a/.github/workflows/continuous-integration-workflow.yml +++ b/.github/workflows/continuous-integration-workflow.yml @@ -13,6 +13,11 @@ 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: mvn -q clean install working-directory: ./aws-serverless-java-container-core @@ -22,6 +27,11 @@ 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 jersey true true # - name: Set up JDK 8 @@ -49,6 +59,11 @@ 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 spring true true # - name: Build Spring 5.0 @@ -63,6 +78,11 @@ 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 springboot3 true true # https://github.com/spring-projects/spring-boot/wiki/Supported-Versions From 54befe7d43923c3462786ed75d4f76e8b84f3f45 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Tue, 25 Apr 2023 12:21:24 +0200 Subject: [PATCH 062/623] chore: modify CI build for 2.x to no longer build with Gradle 5 as additional test --- gha_build.sh | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/gha_build.sh b/gha_build.sh index 9d0001ca4..036ac4bee 100755 --- a/gha_build.sh +++ b/gha_build.sh @@ -31,7 +31,7 @@ function archetype { cd ${WORKING_DIR}/${ARCHETYPE_NAME} && mvn -q clean install ARCHETYPE_TEST_DIR=${WORKING_DIR}/$1_archetype_test mkdir -p ${ARCHETYPE_TEST_DIR} - cd ${ARCHETYPE_TEST_DIR} && mvn archetype:generate -DgroupId=my.service -DartifactId=${PROJ_NAME} -Dversion=1.0-SNAPSHOT \ + cd ${ARCHETYPE_TEST_DIR} && mvn archetype:generate -DgroupId=my.service -DartifactId=${PROJ_NAME} -Dversion=2.0-SNAPSHOT \ -DarchetypeGroupId=com.amazonaws.serverless.archetypes \ -DarchetypeArtifactId=${ARCHETYPE_NAME} \ -DarchetypeCatalog=local \ @@ -51,10 +51,10 @@ 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 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 @@ -72,10 +72,10 @@ function sample { 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 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 From 22510fcfee417f5492f6b4a144f9e3f162324f34 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Tue, 25 Apr 2023 13:26:17 +0200 Subject: [PATCH 063/623] feat: Support Jakarta EE along with Spring Boot 3 support - build fixes --- 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/build.gradle | 2 +- .../src/main/resources/archetype-resources/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 | 2 +- samples/jersey/pet-store/pom.xml | 2 +- samples/spring/pet-store/build.gradle | 6 +++--- samples/spring/pet-store/pom.xml | 8 ++++---- samples/springboot3/pet-store/build.gradle | 4 ++-- samples/springboot3/pet-store/pom.xml | 4 ++-- 14 files changed, 23 insertions(+), 23 deletions(-) diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml index ad00d2ef8..a530a49c6 100644 --- a/aws-serverless-java-container-core/pom.xml +++ b/aws-serverless-java-container-core/pom.xml @@ -122,7 +122,7 @@ org.springframework.security spring-security-web - 6.0.2 + 6.0.3 test diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml index 5fe784a4f..af8d73f3c 100644 --- a/aws-serverless-java-container-spring/pom.xml +++ b/aws-serverless-java-container-spring/pom.xml @@ -17,7 +17,7 @@ 6.0.8 - 6.0.2 + 6.0.3 diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml index c20fab9f3..63113f19f 100644 --- a/aws-serverless-java-container-springboot3/pom.xml +++ b/aws-serverless-java-container-springboot3/pom.xml @@ -16,8 +16,8 @@ 6.0.8 - 3.0.5 - 6.0.2 + 3.0.6 + 6.0.3 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 b1ddfd4a4..022d3e53c 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 @@ -7,7 +7,7 @@ repositories { dependencies { implementation ( - 'com.amazonaws.serverless:aws-serverless-java-container-jersey:[2.0,)', + 'com.amazonaws.serverless:aws-serverless-java-container-jersey:[2.0-SNAPSHOT,)', 'com.fasterxml.jackson.core:jackson-databind:2.15.0', 'io.symphonia:lambda-logging:1.0.3' ) 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 7aedaf58a..307af9c8b 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 @@ -9,7 +9,7 @@ dependencies { implementation ( 'org.springframework:spring-webmvc:6.0.8', 'org.springframework:spring-context:6.0.8', - 'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0,)', + 'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)', 'org.apache.logging.log4j:log4j-core:2.19.0', 'org.apache.logging.log4j:log4j-api:2.19.0', 'org.apache.logging.log4j:log4j-slf4j-impl:2.19.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 85e071a08..80348e59b 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 @@ 1.8 1.8 - 6.0.7 + 6.0.8 4.13.2 2.19.0 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 36a13b5d7..d8baa549a 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 @@ -8,8 +8,8 @@ repositories { dependencies { implementation ( - 'org.springframework.boot:spring-boot-starter-web:2.7.10', - 'com.amazonaws.serverless:aws-serverless-java-container-springboot2:[1.0,)', + 'org.springframework.boot:spring-boot-starter-web:3.0.6', + 'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)', 'io.symphonia:lambda-logging:1.0.3' ) 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 fd770a9b4..d841a7230 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 @@ org.springframework.boot spring-boot-starter-parent - 3.0.5 + 3.0.6 diff --git a/samples/jersey/pet-store/build.gradle b/samples/jersey/pet-store/build.gradle index 11ad779d6..6ff7cdd10 100644 --- a/samples/jersey/pet-store/build.gradle +++ b/samples/jersey/pet-store/build.gradle @@ -7,7 +7,7 @@ repositories { dependencies { implementation ( - 'com.amazonaws.serverless:aws-serverless-java-container-jersey:[2.0,)', + 'com.amazonaws.serverless:aws-serverless-java-container-jersey:[2.0-SNAPSHOT,)', 'com.fasterxml.jackson.core:jackson-databind:2.15.0', 'io.symphonia:lambda-logging:1.0.3' ) diff --git a/samples/jersey/pet-store/pom.xml b/samples/jersey/pet-store/pom.xml index 58511ca20..7846c163c 100644 --- a/samples/jersey/pet-store/pom.xml +++ b/samples/jersey/pet-store/pom.xml @@ -34,7 +34,7 @@ com.amazonaws.serverless aws-serverless-java-container-jersey - [2.0,) + [2.0-SNAPSHOT,) diff --git a/samples/spring/pet-store/build.gradle b/samples/spring/pet-store/build.gradle index 46a7df708..0a056aca4 100644 --- a/samples/spring/pet-store/build.gradle +++ b/samples/spring/pet-store/build.gradle @@ -7,9 +7,9 @@ repositories { dependencies { implementation ( - 'org.springframework:spring-webmvc:6.0.7', - 'org.springframework:spring-context:6.0.7', - 'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0,)', + 'org.springframework:spring-webmvc:6.0.8', + 'org.springframework:spring-context:6.0.8', + 'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)', 'org.apache.logging.log4j:log4j-core:2.19.0', 'org.apache.logging.log4j:log4j-api:2.19.0', 'org.apache.logging.log4j:log4j-slf4j-impl:2.19.0', diff --git a/samples/spring/pet-store/pom.xml b/samples/spring/pet-store/pom.xml index 2194cee2d..4562e4444 100644 --- a/samples/spring/pet-store/pom.xml +++ b/samples/spring/pet-store/pom.xml @@ -24,18 +24,18 @@ - 6.0.7 + 6.0.8 4.13.2 2.19.0 - 17.0.6 - 17.0.6 + 17 + 17 com.amazonaws.serverless aws-serverless-java-container-spring - [2.0,) + [2.0-SNAPSHOT,) diff --git a/samples/springboot3/pet-store/build.gradle b/samples/springboot3/pet-store/build.gradle index 37ba61a59..fe2712924 100644 --- a/samples/springboot3/pet-store/build.gradle +++ b/samples/springboot3/pet-store/build.gradle @@ -8,10 +8,10 @@ repositories { dependencies { implementation ( - implementation('org.springframework.boot:spring-boot-starter-web:3.0.5') { + implementation('org.springframework.boot:spring-boot-starter-web:3.0.6') { exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat' }, - 'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0,)', + 'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)', 'io.symphonia:lambda-logging:1.0.3' ) testImplementation("junit:junit") diff --git a/samples/springboot3/pet-store/pom.xml b/samples/springboot3/pet-store/pom.xml index 3f0f283ad..5b455458f 100644 --- a/samples/springboot3/pet-store/pom.xml +++ b/samples/springboot3/pet-store/pom.xml @@ -13,7 +13,7 @@ org.springframework.boot spring-boot-starter-parent - 3.0.5 + 3.0.6 @@ -43,7 +43,7 @@ com.amazonaws.serverless aws-serverless-java-container-springboot3 - [2.0,) + [2.0-SNAPSHOT,) From e075be80de0a73219fd7ef2ce3947634f4cf0e05 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Tue, 25 Apr 2023 13:38:19 +0200 Subject: [PATCH 064/623] chore: modify CI build for 2.x - fix naming --- .github/workflows/continuous-integration-workflow.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/continuous-integration-workflow.yml b/.github/workflows/continuous-integration-workflow.yml index 5728e10b0..2374a45bc 100644 --- a/.github/workflows/continuous-integration-workflow.yml +++ b/.github/workflows/continuous-integration-workflow.yml @@ -55,7 +55,7 @@ jobs: # run: ./gha_build.sh spark true true build_spring: - name: Build and test Spring & SpringBoot + name: Build and test Spring runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 From e82ba5743e6e0285f0a60b2c3776b576e37f1ecd Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Tue, 25 Apr 2023 16:14:18 +0200 Subject: [PATCH 065/623] feat: Support Jakarta EE along with Spring Boot 3 support - build fixes --- .../src/main/resources/archetype-resources/build.gradle | 5 ++--- .../src/main/resources/archetype-resources/build.gradle | 1 - 2 files changed, 2 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 022d3e53c..4f7bda47e 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 @@ -9,16 +9,15 @@ dependencies { implementation ( 'com.amazonaws.serverless:aws-serverless-java-container-jersey:[2.0-SNAPSHOT,)', 'com.fasterxml.jackson.core:jackson-databind:2.15.0', - 'io.symphonia:lambda-logging:1.0.3' ) - implementation("org.glassfish.jersey.media:jersey-media-json-jackson:2.39.1") { + implementation("org.glassfish.jersey.media:jersey-media-json-jackson:3.1.1") { 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:2.39.1") { + implementation("org.glassfish.jersey.inject:jersey-hk2:3.1.1") { exclude group: 'javax.inject', module: "javax.inject" } 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 d8baa549a..45e6ba1b2 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 @@ -10,7 +10,6 @@ dependencies { implementation ( 'org.springframework.boot:spring-boot-starter-web:3.0.6', 'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)', - 'io.symphonia:lambda-logging:1.0.3' ) testImplementation("junit:junit:4.13.2") From c4c4f2eac4a365cdbe6cba24bb9353a940b163e9 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Tue, 25 Apr 2023 16:36:04 +0200 Subject: [PATCH 066/623] chore: create dependabot.yml --- .github/dependabot.yml | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 .github/dependabot.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 000000000..6c2be00af --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,23 @@ +# To get started with Dependabot version updates, you'll need to specify which +# package ecosystems to update and where the package manifests are located. +# Please see the documentation for all configuration options: +# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates + +version: 2 +updates: + - package-ecosystem: maven + directory: "/" + schedule: + interval: "weekly" + - package-ecosystem: maven + directory: "/samples/spring/pet-store" + schedule: + interval: "weekly" + - package-ecosystem: maven + directory: "/samples/springboot3/pet-store" + schedule: + interval: "weekly" + - package-ecosystem: maven + directory: "/samples/jersey/pet-store" + schedule: + interval: "weekly" From 07550d1a466347dcd3e7a2727ad33a2db44fc614 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 25 Apr 2023 14:36:19 +0000 Subject: [PATCH 067/623] chore(deps): bump maven-install-plugin in /samples/springboot3/pet-store Bumps [maven-install-plugin](https://github.com/apache/maven-install-plugin) from 3.0.0-M1 to 3.1.1. - [Release notes](https://github.com/apache/maven-install-plugin/releases) - [Commits](https://github.com/apache/maven-install-plugin/compare/maven-install-plugin-3.0.0-M1...maven-install-plugin-3.1.1) --- updated-dependencies: - dependency-name: org.apache.maven.plugins:maven-install-plugin dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- 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 5b455458f..45937355d 100644 --- a/samples/springboot3/pet-store/pom.xml +++ b/samples/springboot3/pet-store/pom.xml @@ -107,7 +107,7 @@ org.apache.maven.plugins maven-install-plugin - 3.0.0-M1 + 3.1.1 true From 3a0d7b4cccb8cb09f98ed477d6e4c5974a7bbf70 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 25 Apr 2023 14:36:22 +0000 Subject: [PATCH 068/623] chore(deps-dev): bump mockito-core from 4.11.0 to 5.3.1 Bumps [mockito-core](https://github.com/mockito/mockito) from 4.11.0 to 5.3.1. - [Release notes](https://github.com/mockito/mockito/releases) - [Commits](https://github.com/mockito/mockito/compare/v4.11.0...v5.3.1) --- updated-dependencies: - dependency-name: org.mockito:mockito-core dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 2c97633a8..f3083b41f 100644 --- a/pom.xml +++ b/pom.xml @@ -81,7 +81,7 @@ 2.15.0 2.0.7 5.9.2 - 4.11.0 + 5.3.1 1.3 UTF-8 From 55d0f9c1797c95916b69336c846bc581291717b5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 25 Apr 2023 14:36:23 +0000 Subject: [PATCH 069/623] chore(deps): bump maven-dependency-plugin Bumps [maven-dependency-plugin](https://github.com/apache/maven-dependency-plugin) from 3.2.0 to 3.5.0. - [Release notes](https://github.com/apache/maven-dependency-plugin/releases) - [Commits](https://github.com/apache/maven-dependency-plugin/compare/maven-dependency-plugin-3.2.0...maven-dependency-plugin-3.5.0) --- updated-dependencies: - dependency-name: org.apache.maven.plugins:maven-dependency-plugin dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- 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 5b455458f..38562ebcf 100644 --- a/samples/springboot3/pet-store/pom.xml +++ b/samples/springboot3/pet-store/pom.xml @@ -116,7 +116,7 @@ org.apache.maven.plugins maven-dependency-plugin - 3.2.0 + 3.5.0 copy-dependencies From 7c43a2c5945f3717bdd78f67eece579fa54597b5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 25 Apr 2023 14:36:26 +0000 Subject: [PATCH 070/623] chore(deps): bump jacoco-maven-plugin from 0.8.8 to 0.8.10 Bumps [jacoco-maven-plugin](https://github.com/jacoco/jacoco) from 0.8.8 to 0.8.10. - [Release notes](https://github.com/jacoco/jacoco/releases) - [Commits](https://github.com/jacoco/jacoco/compare/v0.8.8...v0.8.10) --- updated-dependencies: - dependency-name: org.jacoco:jacoco-maven-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 2c97633a8..058e3c260 100644 --- a/pom.xml +++ b/pom.xml @@ -234,7 +234,7 @@ org.jacoco jacoco-maven-plugin - 0.8.8 + 0.8.10 From 92a0079f6e16b4981e6a2dc91d93033234af2c2e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 25 Apr 2023 14:36:26 +0000 Subject: [PATCH 071/623] chore(deps): bump maven-jar-plugin in /samples/springboot3/pet-store Bumps [maven-jar-plugin](https://github.com/apache/maven-jar-plugin) from 3.2.0 to 3.3.0. - [Release notes](https://github.com/apache/maven-jar-plugin/releases) - [Commits](https://github.com/apache/maven-jar-plugin/compare/maven-jar-plugin-3.2.0...maven-jar-plugin-3.3.0) --- updated-dependencies: - dependency-name: org.apache.maven.plugins:maven-jar-plugin dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- 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 5b455458f..18f93447d 100644 --- a/samples/springboot3/pet-store/pom.xml +++ b/samples/springboot3/pet-store/pom.xml @@ -96,7 +96,7 @@ org.apache.maven.plugins maven-jar-plugin - 3.2.0 + 3.3.0 default-jar From 593076b7f78fa17911ebfe310344e2488f33f5f1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 25 Apr 2023 14:36:29 +0000 Subject: [PATCH 072/623] chore(deps): bump maven-assembly-plugin Bumps [maven-assembly-plugin](https://github.com/apache/maven-assembly-plugin) from 3.3.0 to 3.5.0. - [Release notes](https://github.com/apache/maven-assembly-plugin/releases) - [Commits](https://github.com/apache/maven-assembly-plugin/compare/maven-assembly-plugin-3.3.0...maven-assembly-plugin-3.5.0) --- updated-dependencies: - dependency-name: org.apache.maven.plugins:maven-assembly-plugin dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- 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 5b455458f..9686aa4e0 100644 --- a/samples/springboot3/pet-store/pom.xml +++ b/samples/springboot3/pet-store/pom.xml @@ -134,7 +134,7 @@ org.apache.maven.plugins maven-assembly-plugin - 3.3.0 + 3.5.0 zip-assembly From 795843ca68923add8cecfbf06138c240afb2ded2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 25 Apr 2023 14:36:29 +0000 Subject: [PATCH 073/623] chore(deps): bump maven-assembly-plugin in /samples/jersey/pet-store Bumps [maven-assembly-plugin](https://github.com/apache/maven-assembly-plugin) from 3.3.0 to 3.5.0. - [Release notes](https://github.com/apache/maven-assembly-plugin/releases) - [Commits](https://github.com/apache/maven-assembly-plugin/compare/maven-assembly-plugin-3.3.0...maven-assembly-plugin-3.5.0) --- updated-dependencies: - dependency-name: org.apache.maven.plugins:maven-assembly-plugin dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- samples/jersey/pet-store/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/jersey/pet-store/pom.xml b/samples/jersey/pet-store/pom.xml index 7846c163c..4e9ca7847 100644 --- a/samples/jersey/pet-store/pom.xml +++ b/samples/jersey/pet-store/pom.xml @@ -157,7 +157,7 @@ org.apache.maven.plugins maven-assembly-plugin - 3.3.0 + 3.5.0 zip-assembly From 485b51d76b04710d7b9c46c0ab0f21b1207de42f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 25 Apr 2023 14:36:33 +0000 Subject: [PATCH 074/623] chore(deps): bump maven-install-plugin in /samples/jersey/pet-store Bumps [maven-install-plugin](https://github.com/apache/maven-install-plugin) from 3.0.0-M1 to 3.1.1. - [Release notes](https://github.com/apache/maven-install-plugin/releases) - [Commits](https://github.com/apache/maven-install-plugin/compare/maven-install-plugin-3.0.0-M1...maven-install-plugin-3.1.1) --- updated-dependencies: - dependency-name: org.apache.maven.plugins:maven-install-plugin dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- samples/jersey/pet-store/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/jersey/pet-store/pom.xml b/samples/jersey/pet-store/pom.xml index 7846c163c..044299bf6 100644 --- a/samples/jersey/pet-store/pom.xml +++ b/samples/jersey/pet-store/pom.xml @@ -130,7 +130,7 @@ org.apache.maven.plugins maven-install-plugin - 3.0.0-M1 + 3.1.1 true From 7e70451ba08f856c284551ebe9a0d0048b695520 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 25 Apr 2023 14:36:37 +0000 Subject: [PATCH 075/623] chore(deps): bump maven-jar-plugin in /samples/jersey/pet-store Bumps [maven-jar-plugin](https://github.com/apache/maven-jar-plugin) from 3.2.0 to 3.3.0. - [Release notes](https://github.com/apache/maven-jar-plugin/releases) - [Commits](https://github.com/apache/maven-jar-plugin/compare/maven-jar-plugin-3.2.0...maven-jar-plugin-3.3.0) --- updated-dependencies: - dependency-name: org.apache.maven.plugins:maven-jar-plugin dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- samples/jersey/pet-store/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/jersey/pet-store/pom.xml b/samples/jersey/pet-store/pom.xml index 7846c163c..a30a1d530 100644 --- a/samples/jersey/pet-store/pom.xml +++ b/samples/jersey/pet-store/pom.xml @@ -119,7 +119,7 @@ org.apache.maven.plugins maven-jar-plugin - 3.2.0 + 3.3.0 default-jar From 76a9348a97973ed2865d1ab0ed63325814dc28de Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 25 Apr 2023 14:36:38 +0000 Subject: [PATCH 076/623] chore(deps): bump maven-install-plugin in /samples/spring/pet-store Bumps [maven-install-plugin](https://github.com/apache/maven-install-plugin) from 3.0.0-M1 to 3.1.1. - [Release notes](https://github.com/apache/maven-install-plugin/releases) - [Commits](https://github.com/apache/maven-install-plugin/compare/maven-install-plugin-3.0.0-M1...maven-install-plugin-3.1.1) --- updated-dependencies: - dependency-name: org.apache.maven.plugins:maven-install-plugin dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- 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 4562e4444..2c062a991 100644 --- a/samples/spring/pet-store/pom.xml +++ b/samples/spring/pet-store/pom.xml @@ -153,7 +153,7 @@ org.apache.maven.plugins maven-install-plugin - 3.0.0-M1 + 3.1.1 true From e34558c48bc7ea841a7f96eceff255a713a7e1fb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 25 Apr 2023 14:36:40 +0000 Subject: [PATCH 077/623] chore(deps): bump maven-dependency-plugin in /samples/jersey/pet-store Bumps [maven-dependency-plugin](https://github.com/apache/maven-dependency-plugin) from 3.2.0 to 3.5.0. - [Release notes](https://github.com/apache/maven-dependency-plugin/releases) - [Commits](https://github.com/apache/maven-dependency-plugin/compare/maven-dependency-plugin-3.2.0...maven-dependency-plugin-3.5.0) --- updated-dependencies: - dependency-name: org.apache.maven.plugins:maven-dependency-plugin dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- samples/jersey/pet-store/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/jersey/pet-store/pom.xml b/samples/jersey/pet-store/pom.xml index 7846c163c..94d3ebfaa 100644 --- a/samples/jersey/pet-store/pom.xml +++ b/samples/jersey/pet-store/pom.xml @@ -139,7 +139,7 @@ org.apache.maven.plugins maven-dependency-plugin - 3.2.0 + 3.5.0 copy-dependencies From 39987ed573d2415fb86156e0c2fbe69f4d852765 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 25 Apr 2023 14:36:42 +0000 Subject: [PATCH 078/623] chore(deps): bump maven-assembly-plugin in /samples/spring/pet-store Bumps [maven-assembly-plugin](https://github.com/apache/maven-assembly-plugin) from 3.3.0 to 3.5.0. - [Release notes](https://github.com/apache/maven-assembly-plugin/releases) - [Commits](https://github.com/apache/maven-assembly-plugin/compare/maven-assembly-plugin-3.3.0...maven-assembly-plugin-3.5.0) --- updated-dependencies: - dependency-name: org.apache.maven.plugins:maven-assembly-plugin dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- 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 4562e4444..ebd952de9 100644 --- a/samples/spring/pet-store/pom.xml +++ b/samples/spring/pet-store/pom.xml @@ -180,7 +180,7 @@ org.apache.maven.plugins maven-assembly-plugin - 3.3.0 + 3.5.0 zip-assembly From c17a7b6f94ee77b39662fe9badbbf4c1e517b8e9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 25 Apr 2023 14:36:48 +0000 Subject: [PATCH 079/623] chore(deps): bump maven-dependency-plugin in /samples/spring/pet-store Bumps [maven-dependency-plugin](https://github.com/apache/maven-dependency-plugin) from 3.2.0 to 3.5.0. - [Release notes](https://github.com/apache/maven-dependency-plugin/releases) - [Commits](https://github.com/apache/maven-dependency-plugin/compare/maven-dependency-plugin-3.2.0...maven-dependency-plugin-3.5.0) --- updated-dependencies: - dependency-name: org.apache.maven.plugins:maven-dependency-plugin dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- 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 4562e4444..1c4b83298 100644 --- a/samples/spring/pet-store/pom.xml +++ b/samples/spring/pet-store/pom.xml @@ -162,7 +162,7 @@ org.apache.maven.plugins maven-dependency-plugin - 3.2.0 + 3.5.0 copy-dependencies From 65cc0dab53c0b935058835e0bbfae0c582773c9e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 25 Apr 2023 14:37:51 +0000 Subject: [PATCH 080/623] chore(deps): bump maven-enforcer-plugin from 3.0.0-M1 to 3.3.0 Bumps [maven-enforcer-plugin](https://github.com/apache/maven-enforcer) from 3.0.0-M1 to 3.3.0. - [Release notes](https://github.com/apache/maven-enforcer/releases) - [Commits](https://github.com/apache/maven-enforcer/compare/enforcer-3.0.0-M1...enforcer-3.3.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] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 2c97633a8..e46456d23 100644 --- a/pom.xml +++ b/pom.xml @@ -161,7 +161,7 @@ org.apache.maven.plugins maven-enforcer-plugin - 3.0.0-M1 + 3.3.0 enforce From b1667272f206fbfb75ae229d5669c0f453d1a0f4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 25 Apr 2023 14:37:55 +0000 Subject: [PATCH 081/623] chore(deps): bump spotbugs-maven-plugin from 4.7.3.0 to 4.7.3.4 Bumps [spotbugs-maven-plugin](https://github.com/spotbugs/spotbugs-maven-plugin) from 4.7.3.0 to 4.7.3.4. - [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.0...spotbugs-maven-plugin-4.7.3.4) --- 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] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 2c97633a8..4a4268931 100644 --- a/pom.xml +++ b/pom.xml @@ -205,7 +205,7 @@ com.github.spotbugs spotbugs-maven-plugin - 4.7.3.0 + 4.7.3.4 - com.google.code.findbugs - annotations - 3.0.1 + com.github.spotbugs + spotbugs-annotations + 4.7.3 provided From f5b12534f46e39d72e27cf8fbc633162d688da26 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 25 Apr 2023 15:17:47 +0000 Subject: [PATCH 083/623] chore(deps): bump maven-jar-plugin in /samples/spring/pet-store Bumps [maven-jar-plugin](https://github.com/apache/maven-jar-plugin) from 3.2.0 to 3.3.0. - [Release notes](https://github.com/apache/maven-jar-plugin/releases) - [Commits](https://github.com/apache/maven-jar-plugin/compare/maven-jar-plugin-3.2.0...maven-jar-plugin-3.3.0) --- updated-dependencies: - dependency-name: org.apache.maven.plugins:maven-jar-plugin dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- 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 3d27acc9c..6f76c7a63 100644 --- a/samples/spring/pet-store/pom.xml +++ b/samples/spring/pet-store/pom.xml @@ -142,7 +142,7 @@ org.apache.maven.plugins maven-jar-plugin - 3.2.0 + 3.3.0 default-jar From de3ff82ee0a9dc97774314f6420c800d1d1a8adc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 25 Apr 2023 15:17:48 +0000 Subject: [PATCH 084/623] chore(deps): bump archetype-packaging from 3.0.1 to 3.2.1 Bumps [archetype-packaging](https://github.com/apache/maven-archetype) from 3.0.1 to 3.2.1. - [Release notes](https://github.com/apache/maven-archetype/releases) - [Commits](https://github.com/apache/maven-archetype/compare/maven-archetype-3.0.1...maven-archetype-3.2.1) --- updated-dependencies: - dependency-name: org.apache.maven.archetype:archetype-packaging dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- aws-serverless-jersey-archetype/pom.xml | 2 +- aws-serverless-spring-archetype/pom.xml | 2 +- aws-serverless-springboot3-archetype/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/aws-serverless-jersey-archetype/pom.xml b/aws-serverless-jersey-archetype/pom.xml index 6df742a57..329e92dbf 100644 --- a/aws-serverless-jersey-archetype/pom.xml +++ b/aws-serverless-jersey-archetype/pom.xml @@ -48,7 +48,7 @@ org.apache.maven.archetype archetype-packaging - 3.0.1 + 3.2.1 diff --git a/aws-serverless-spring-archetype/pom.xml b/aws-serverless-spring-archetype/pom.xml index 396f5e798..97bc6ee3e 100644 --- a/aws-serverless-spring-archetype/pom.xml +++ b/aws-serverless-spring-archetype/pom.xml @@ -48,7 +48,7 @@ org.apache.maven.archetype archetype-packaging - 3.0.1 + 3.2.1 diff --git a/aws-serverless-springboot3-archetype/pom.xml b/aws-serverless-springboot3-archetype/pom.xml index 040f43536..344aa9863 100644 --- a/aws-serverless-springboot3-archetype/pom.xml +++ b/aws-serverless-springboot3-archetype/pom.xml @@ -48,7 +48,7 @@ org.apache.maven.archetype archetype-packaging - 3.0.1 + 3.2.1 From ad630e104cc2b5d64abbcb73ba568c043cd29b8b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 25 Apr 2023 15:17:53 +0000 Subject: [PATCH 085/623] chore(deps): bump maven-javadoc-plugin from 3.3.0 to 3.5.0 Bumps [maven-javadoc-plugin](https://github.com/apache/maven-javadoc-plugin) from 3.3.0 to 3.5.0. - [Release notes](https://github.com/apache/maven-javadoc-plugin/releases) - [Commits](https://github.com/apache/maven-javadoc-plugin/compare/maven-javadoc-plugin-3.3.0...maven-javadoc-plugin-3.5.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] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index ca454100a..33934a0af 100644 --- a/pom.xml +++ b/pom.xml @@ -188,7 +188,7 @@ org.apache.maven.plugins maven-javadoc-plugin - 3.3.0 + 3.5.0 From 44a59d7f3a989991c0ad116e1251ba752657db8e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 25 Apr 2023 15:17:59 +0000 Subject: [PATCH 086/623] chore(deps): bump maven-archetype-plugin from 3.0.1 to 3.2.1 Bumps [maven-archetype-plugin](https://github.com/apache/maven-archetype) from 3.0.1 to 3.2.1. - [Release notes](https://github.com/apache/maven-archetype/releases) - [Commits](https://github.com/apache/maven-archetype/compare/maven-archetype-3.0.1...maven-archetype-3.2.1) --- updated-dependencies: - dependency-name: org.apache.maven.plugins:maven-archetype-plugin dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- aws-serverless-jersey-archetype/pom.xml | 2 +- aws-serverless-spring-archetype/pom.xml | 2 +- aws-serverless-springboot3-archetype/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/aws-serverless-jersey-archetype/pom.xml b/aws-serverless-jersey-archetype/pom.xml index 6df742a57..a2e991f39 100644 --- a/aws-serverless-jersey-archetype/pom.xml +++ b/aws-serverless-jersey-archetype/pom.xml @@ -65,7 +65,7 @@ org.apache.maven.plugins maven-archetype-plugin - 3.0.1 + 3.2.1 diff --git a/aws-serverless-spring-archetype/pom.xml b/aws-serverless-spring-archetype/pom.xml index 396f5e798..7fe877b9e 100644 --- a/aws-serverless-spring-archetype/pom.xml +++ b/aws-serverless-spring-archetype/pom.xml @@ -66,7 +66,7 @@ org.apache.maven.plugins maven-archetype-plugin - 3.0.1 + 3.2.1 diff --git a/aws-serverless-springboot3-archetype/pom.xml b/aws-serverless-springboot3-archetype/pom.xml index 040f43536..94dbcbba2 100644 --- a/aws-serverless-springboot3-archetype/pom.xml +++ b/aws-serverless-springboot3-archetype/pom.xml @@ -65,7 +65,7 @@ org.apache.maven.plugins maven-archetype-plugin - 3.0.1 + 3.2.1 From 8198040713e7e2f61c4af1ae0ce17d8ac1577f69 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 25 Apr 2023 15:18:10 +0000 Subject: [PATCH 087/623] chore(deps): bump dependency-check-maven from 8.1.2 to 8.2.1 Bumps [dependency-check-maven](https://github.com/jeremylong/DependencyCheck) from 8.1.2 to 8.2.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.1.2...v8.2.1) --- updated-dependencies: - dependency-name: org.owasp:dependency-check-maven dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index ca454100a..fb1317591 100644 --- a/pom.xml +++ b/pom.xml @@ -77,7 +77,7 @@ 0.7 - 8.1.2 + 8.2.1 2.15.0 2.0.7 5.9.2 From 1cc6a13d122f9039922db4cd99a19e7b5daee08c Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Tue, 25 Apr 2023 20:54:16 +0200 Subject: [PATCH 088/623] feat: Support Jakarta EE along with Spring Boot 3 support - fixed sample --- .../serverless/sample/springboot3/Application.java | 4 ++-- .../serverless/sample/springboot3/StreamLambdaHandler.java | 4 ++-- .../sample/springboot3/controller/PetsController.java | 6 +++--- .../sample/springboot3/filter/CognitoIdentityFilter.java | 4 ++-- .../serverless/sample/springboot3/model/Error.java | 2 +- .../amazonaws/serverless/sample/springboot3/model/Pet.java | 2 +- .../serverless/sample/springboot3/model/PetData.java | 2 +- 7 files changed, 12 insertions(+), 12 deletions(-) diff --git a/samples/springboot3/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/Application.java b/samples/springboot3/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/Application.java index aeb63a253..c576521f1 100644 --- a/samples/springboot3/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/Application.java +++ b/samples/springboot3/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/Application.java @@ -1,6 +1,6 @@ -package com.amazonaws.serverless.sample.springboot2; +package com.amazonaws.serverless.sample.springboot3; -import com.amazonaws.serverless.sample.springboot2.controller.PetsController; +import com.amazonaws.serverless.sample.springboot3.controller.PetsController; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.SpringApplication; 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 6df4b5ede..7f329357a 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 @@ -1,4 +1,4 @@ -package com.amazonaws.serverless.sample.springboot2; +package com.amazonaws.serverless.sample.springboot3; import com.amazonaws.serverless.exceptions.ContainerInitializationException; @@ -6,7 +6,7 @@ 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.springboot2.filter.CognitoIdentityFilter; +import com.amazonaws.serverless.sample.springboot3.filter.CognitoIdentityFilter; import com.amazonaws.services.lambda.runtime.Context; import com.amazonaws.services.lambda.runtime.RequestStreamHandler; diff --git a/samples/springboot3/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/controller/PetsController.java b/samples/springboot3/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/controller/PetsController.java index bbf69b084..680e629d3 100644 --- a/samples/springboot3/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/controller/PetsController.java +++ b/samples/springboot3/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/controller/PetsController.java @@ -10,12 +10,12 @@ * 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.springboot2.controller; +package com.amazonaws.serverless.sample.springboot3.controller; -import com.amazonaws.serverless.sample.springboot2.model.Pet; -import com.amazonaws.serverless.sample.springboot2.model.PetData; +import com.amazonaws.serverless.sample.springboot3.model.Pet; +import com.amazonaws.serverless.sample.springboot3.model.PetData; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; diff --git a/samples/springboot3/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/filter/CognitoIdentityFilter.java b/samples/springboot3/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/filter/CognitoIdentityFilter.java index 1cc92708b..d6ccae765 100644 --- a/samples/springboot3/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/filter/CognitoIdentityFilter.java +++ b/samples/springboot3/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/filter/CognitoIdentityFilter.java @@ -1,4 +1,4 @@ -package com.amazonaws.serverless.sample.springboot2.filter; +package com.amazonaws.serverless.sample.springboot3.filter; import com.amazonaws.serverless.proxy.RequestReader; @@ -20,7 +20,7 @@ /** * 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.springboot2.StreamLambdaHandler} class. + * 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"; diff --git a/samples/springboot3/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/model/Error.java b/samples/springboot3/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/model/Error.java index a2278ed02..320f21582 100644 --- a/samples/springboot3/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/model/Error.java +++ b/samples/springboot3/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/model/Error.java @@ -10,7 +10,7 @@ * 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.springboot2.model; +package com.amazonaws.serverless.sample.springboot3.model; public class Error { private String message; diff --git a/samples/springboot3/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/model/Pet.java b/samples/springboot3/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/model/Pet.java index ee9a1e029..4f0c4ba8e 100644 --- a/samples/springboot3/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/model/Pet.java +++ b/samples/springboot3/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/model/Pet.java @@ -10,7 +10,7 @@ * 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.springboot2.model; +package com.amazonaws.serverless.sample.springboot3.model; import java.util.Date; diff --git a/samples/springboot3/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/model/PetData.java b/samples/springboot3/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/model/PetData.java index 34a324211..68ea3c18b 100644 --- a/samples/springboot3/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/model/PetData.java +++ b/samples/springboot3/pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/model/PetData.java @@ -10,7 +10,7 @@ * 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.springboot2.model; +package com.amazonaws.serverless.sample.springboot3.model; import java.util.ArrayList; From 5a8297ee368e000605d4489b78b952d0aa04eeac Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Tue, 25 Apr 2023 21:25:24 +0200 Subject: [PATCH 089/623] feat: Support Jakarta EE along with Spring Boot 3 support - requestwrapper should delegate to original request --- .../proxy/internal/servlet/AwsHttpServletRequestWrapper.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/AwsHttpServletRequestWrapper.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequestWrapper.java index 3817e7971..58d7282ba 100644 --- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequestWrapper.java +++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpServletRequestWrapper.java @@ -400,11 +400,11 @@ public String getRequestId() { @Override public String getProtocolRequestId() { - return ""; + return originalRequest.getProtocolRequestId(); } @Override public ServletConnection getServletConnection() { - return null; + return originalRequest.getServletConnection(); } } From 63f1ac561a434c70e14fec70190b2ac3fe141ad8 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Tue, 25 Apr 2023 21:44:08 +0200 Subject: [PATCH 090/623] feat: Support Jakarta EE along with Spring Boot 3 support - dependency cleanup --- aws-serverless-java-container-springboot3/pom.xml | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml index 63113f19f..159e90235 100644 --- a/aws-serverless-java-container-springboot3/pom.xml +++ b/aws-serverless-java-container-springboot3/pom.xml @@ -157,11 +157,6 @@ test - - jakarta.activation - jakarta.activation-api - 2.1.0 - jakarta.validation jakarta.validation-api @@ -173,7 +168,7 @@ jakarta.websocket jakarta.websocket-api 2.0.0 - provided + test From a70a5a6769ab022a7abab3731639dbbf2fb7e93d Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Tue, 25 Apr 2023 21:46:13 +0200 Subject: [PATCH 091/623] chore: add gradle samples to dependabot config --- .github/dependabot.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 6c2be00af..81c896308 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -13,11 +13,23 @@ updates: 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/jersey/pet-store" schedule: interval: "weekly" + - package-ecosystem: gradle + directory: "/samples/jersey/pet-store" + schedule: + interval: "weekly" From 5d2d2bc68546a0655ff81b103bf886e55b80e1cd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 25 Apr 2023 19:46:32 +0000 Subject: [PATCH 092/623] chore(deps): bump maven-resources-plugin from 3.1.0 to 3.3.1 Bumps [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] --- aws-serverless-jersey-archetype/pom.xml | 2 +- aws-serverless-spring-archetype/pom.xml | 2 +- aws-serverless-springboot3-archetype/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/aws-serverless-jersey-archetype/pom.xml b/aws-serverless-jersey-archetype/pom.xml index 091bf5852..51c855ac6 100644 --- a/aws-serverless-jersey-archetype/pom.xml +++ b/aws-serverless-jersey-archetype/pom.xml @@ -57,7 +57,7 @@ org.apache.maven.plugins maven-resources-plugin - 3.1.0 + 3.3.1 \ diff --git a/aws-serverless-spring-archetype/pom.xml b/aws-serverless-spring-archetype/pom.xml index 70a4acc45..3a17f1676 100644 --- a/aws-serverless-spring-archetype/pom.xml +++ b/aws-serverless-spring-archetype/pom.xml @@ -57,7 +57,7 @@ org.apache.maven.plugins maven-resources-plugin - 3.1.0 + 3.3.1 \ diff --git a/aws-serverless-springboot3-archetype/pom.xml b/aws-serverless-springboot3-archetype/pom.xml index fd409e780..21e176026 100644 --- a/aws-serverless-springboot3-archetype/pom.xml +++ b/aws-serverless-springboot3-archetype/pom.xml @@ -57,7 +57,7 @@ org.apache.maven.plugins maven-resources-plugin - 3.1.0 + 3.3.1 \ From 65929975a90cadf1b30d3630031db0de0251cc40 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 25 Apr 2023 19:46:43 +0000 Subject: [PATCH 093/623] chore(deps-dev): bump jakarta.websocket-api from 2.0.0 to 2.1.0 Bumps [jakarta.websocket-api](https://github.com/eclipse-ee4j/websocket-api) from 2.0.0 to 2.1.0. - [Release notes](https://github.com/eclipse-ee4j/websocket-api/releases) - [Changelog](https://github.com/jakartaee/websocket/blob/master/websocket-1.1-changes.txt) - [Commits](https://github.com/eclipse-ee4j/websocket-api/commits) --- updated-dependencies: - dependency-name: jakarta.websocket:jakarta.websocket-api dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- 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 159e90235..411b16da9 100644 --- a/aws-serverless-java-container-springboot3/pom.xml +++ b/aws-serverless-java-container-springboot3/pom.xml @@ -167,7 +167,7 @@ jakarta.websocket jakarta.websocket-api - 2.0.0 + 2.1.0 test From 901cc9779ce090e3795803204154cd7e6e086c15 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Tue, 25 Apr 2023 21:48:39 +0200 Subject: [PATCH 094/623] chore(deps): Update log4j version to 2.20.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 307af9c8b..65aad2359 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.8', 'org.springframework:spring-context:6.0.8', 'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)', - 'org.apache.logging.log4j:log4j-core:2.19.0', - 'org.apache.logging.log4j:log4j-api:2.19.0', - 'org.apache.logging.log4j:log4j-slf4j-impl:2.19.0', + '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.0', '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 80348e59b..e7cd2ba0c 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 @@ 1.8 6.0.8 4.13.2 - 2.19.0 + 2.20.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 83e8e8bb0..ebd3b1b67 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.0') implementation ('com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.15.0') - implementation ('org.apache.logging.log4j:log4j-core:2.19.0') - implementation ('org.apache.logging.log4j:log4j-api:2.19.0') - implementation ('org.apache.logging.log4j:log4j-slf4j-impl:2.19.0') + 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 ('com.amazonaws:aws-lambda-java-log4j2:1.5.1') testImplementation('junit:junit:4.13.2') 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 c7aafda35..8029323dd 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 @@ 6.1.2 2.15.0 4.13.2 - 2.19.0 + 2.20.0 diff --git a/samples/spring/pet-store/build.gradle b/samples/spring/pet-store/build.gradle index 0a056aca4..de5a543b6 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.8', 'org.springframework:spring-context:6.0.8', 'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)', - 'org.apache.logging.log4j:log4j-core:2.19.0', - 'org.apache.logging.log4j:log4j-api:2.19.0', - 'org.apache.logging.log4j:log4j-slf4j-impl:2.19.0', + '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.0', '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 6f76c7a63..0d21b90e0 100644 --- a/samples/spring/pet-store/pom.xml +++ b/samples/spring/pet-store/pom.xml @@ -26,7 +26,7 @@ 6.0.8 4.13.2 - 2.19.0 + 2.20.0 17 17 diff --git a/samples/struts/pet-store/build.gradle b/samples/struts/pet-store/build.gradle index bd4738f0f..2daa12596 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.0', 'com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.15.0', - 'org.apache.logging.log4j:log4j-core:2.19.0', - 'org.apache.logging.log4j:log4j-api:2.19.0', + '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 2a90ffc05..58d630fc5 100644 --- a/samples/struts/pet-store/pom.xml +++ b/samples/struts/pet-store/pom.xml @@ -29,7 +29,7 @@ 6.1.2 2.15.0 4.13.2 - 2.19.0 + 2.20.0 From 9bc0af81c11e2bf5a5c84afece0f06d7c9f780b5 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Wed, 26 Apr 2023 09:17:43 +0200 Subject: [PATCH 095/623] chore(deps): Update maven-shaded-log4j-transformer config --- .../src/main/resources/archetype-resources/pom.xml | 11 +++++------ samples/spring/pet-store/pom.xml | 11 +++++------ 2 files changed, 10 insertions(+), 12 deletions(-) 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 e7cd2ba0c..a0b1bf4e8 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 @@ -94,7 +94,7 @@ org.apache.maven.plugins maven-shade-plugin - 3.2.4 + 3.4.1 package @@ -102,10 +102,9 @@ shade - false + implementation="io.github.edwgiz.log4j.maven.plugins.shade.transformer.Log4j2PluginCacheFileTransformer"> @@ -113,9 +112,9 @@ - com.github.edwgiz - maven-shade-plugin.log4j2-cachefile-transformer - 2.8.1 + io.github.edwgiz + log4j-maven-shade-plugin-extensions + 2.20.0 diff --git a/samples/spring/pet-store/pom.xml b/samples/spring/pet-store/pom.xml index 0d21b90e0..6500914f6 100644 --- a/samples/spring/pet-store/pom.xml +++ b/samples/spring/pet-store/pom.xml @@ -103,7 +103,7 @@ org.apache.maven.plugins maven-shade-plugin - 3.2.4 + 3.4.1 package @@ -111,10 +111,9 @@ shade - false + implementation="io.github.edwgiz.log4j.maven.plugins.shade.transformer.Log4j2PluginCacheFileTransformer"> @@ -122,9 +121,9 @@ - com.github.edwgiz - maven-shade-plugin.log4j2-cachefile-transformer - 2.8.1 + io.github.edwgiz + log4j-maven-shade-plugin-extensions + 2.20.0 From 2aea94f4233b92d10b95bdbd1d7e269f198fe1c3 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Wed, 26 Apr 2023 09:26:35 +0200 Subject: [PATCH 096/623] chore(deps): Update plugins versions in samples and archetypes --- .../src/main/resources/archetype-resources/pom.xml | 10 +++++----- .../src/main/resources/archetype-resources/pom.xml | 2 +- .../src/main/resources/archetype-resources/pom.xml | 6 +++--- .../src/main/resources/archetype-resources/pom.xml | 8 ++++---- samples/jersey/pet-store/pom.xml | 2 +- samples/spark/pet-store/pom.xml | 2 +- samples/springboot3/pet-store/pom.xml | 4 ++-- 7 files changed, 17 insertions(+), 17 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 57dfdd6d7..5fa0be4f9 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 @@ -81,7 +81,7 @@ org.apache.maven.plugins maven-shade-plugin - 3.2.4 + 3.4.1 false @@ -108,7 +108,7 @@ org.apache.maven.plugins maven-jar-plugin - 3.2.0 + 3.3.0 default-jar @@ -119,7 +119,7 @@ org.apache.maven.plugins maven-install-plugin - 3.0.0-M1 + 3.1.1 true @@ -128,7 +128,7 @@ org.apache.maven.plugins maven-dependency-plugin - 3.2.0 + 3.5.0 copy-dependencies @@ -146,7 +146,7 @@ org.apache.maven.plugins maven-assembly-plugin - 3.3.0 + 3.5.0 zip-assembly 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 358bbd5ec..5e9ea5e33 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 @@ -108,7 +108,7 @@ org.apache.maven.plugins maven-install-plugin - 3.0.0-M1 + 3.1.1 true 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 a0b1bf4e8..3e27a514e 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 @@ -132,7 +132,7 @@ org.apache.maven.plugins maven-jar-plugin - 3.2.0 + 3.3.0 default-jar @@ -143,7 +143,7 @@ org.apache.maven.plugins maven-install-plugin - 3.0.0-M1 + 3.1.1 true @@ -152,7 +152,7 @@ org.apache.maven.plugins maven-dependency-plugin - 3.2.0 + 3.5.0 copy-dependencies 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 d841a7230..ffbb37fcf 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 @@ -57,7 +57,7 @@ org.apache.maven.plugins maven-shade-plugin - 3.2.4 + 3.4.1 false @@ -102,7 +102,7 @@ org.apache.maven.plugins maven-install-plugin - 3.0.0-M1 + 3.1.1 true @@ -111,7 +111,7 @@ org.apache.maven.plugins maven-dependency-plugin - 3.2.0 + 3.5.0 copy-dependencies @@ -129,7 +129,7 @@ org.apache.maven.plugins maven-assembly-plugin - 3.3.0 + 3.5.0 zip-assembly diff --git a/samples/jersey/pet-store/pom.xml b/samples/jersey/pet-store/pom.xml index cac128b36..487499845 100644 --- a/samples/jersey/pet-store/pom.xml +++ b/samples/jersey/pet-store/pom.xml @@ -92,7 +92,7 @@ org.apache.maven.plugins maven-shade-plugin - 3.2.4 + 3.4.1 false diff --git a/samples/spark/pet-store/pom.xml b/samples/spark/pet-store/pom.xml index e2d89cb30..e2bbd2280 100644 --- a/samples/spark/pet-store/pom.xml +++ b/samples/spark/pet-store/pom.xml @@ -120,7 +120,7 @@ org.apache.maven.plugins maven-install-plugin - 3.0.0-M1 + 3.1.1 true diff --git a/samples/springboot3/pet-store/pom.xml b/samples/springboot3/pet-store/pom.xml index 0810d02f5..1d4b4f6ec 100644 --- a/samples/springboot3/pet-store/pom.xml +++ b/samples/springboot3/pet-store/pom.xml @@ -62,7 +62,7 @@ org.apache.maven.plugins maven-shade-plugin - 3.2.4 + 3.4.1 false @@ -96,7 +96,7 @@ org.apache.maven.plugins maven-jar-plugin - 3.3.0 + 3.2.0 default-jar From 510e49da476b0b6a2aadbf0ceddfc2414bafb82f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 26 Apr 2023 08:02:03 +0000 Subject: [PATCH 097/623] chore(deps): bump maven-jar-plugin in /samples/springboot3/pet-store Bumps [maven-jar-plugin](https://github.com/apache/maven-jar-plugin) from 3.2.0 to 3.3.0. - [Release notes](https://github.com/apache/maven-jar-plugin/releases) - [Commits](https://github.com/apache/maven-jar-plugin/compare/maven-jar-plugin-3.2.0...maven-jar-plugin-3.3.0) --- updated-dependencies: - dependency-name: org.apache.maven.plugins:maven-jar-plugin dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- 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 1d4b4f6ec..69445d349 100644 --- a/samples/springboot3/pet-store/pom.xml +++ b/samples/springboot3/pet-store/pom.xml @@ -96,7 +96,7 @@ org.apache.maven.plugins maven-jar-plugin - 3.2.0 + 3.3.0 default-jar From ba10f811e4d4f1ec4c4f29e33d77253ef03c8c44 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 26 Apr 2023 08:02:07 +0000 Subject: [PATCH 098/623] chore(deps): bump junit-bom from 5.9.2 to 5.9.3 Bumps [junit-bom](https://github.com/junit-team/junit5) from 5.9.2 to 5.9.3. - [Release notes](https://github.com/junit-team/junit5/releases) - [Commits](https://github.com/junit-team/junit5/compare/r5.9.2...r5.9.3) --- updated-dependencies: - dependency-name: org.junit:junit-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index bc5baf04c..5c8a4edd4 100644 --- a/pom.xml +++ b/pom.xml @@ -80,7 +80,7 @@ 8.2.1 2.15.0 2.0.7 - 5.9.2 + 5.9.3 5.3.1 1.3 UTF-8 From 8a05c04980c19f85bf84ec7c64499a1f77e15d10 Mon Sep 17 00:00:00 2001 From: mbfreder Date: Thu, 27 Apr 2023 10:14:13 -0700 Subject: [PATCH 099/623] feat: Support Jakarta EE along with Spring Boot 3 support - update Springboot3 sample app's README --- samples/springboot3/pet-store/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/samples/springboot3/pet-store/README.md b/samples/springboot3/pet-store/README.md index 8e15b3773..fb3fab3b0 100644 --- a/samples/springboot3/pet-store/README.md +++ b/samples/springboot3/pet-store/README.md @@ -1,5 +1,5 @@ -# Serverless Spring Boot 2 example -A basic pet store written with the [Spring Boot 2 framework](https://projects.spring.io/spring-boot/). The `StreamLambdaHandler` object is the main entry point for Lambda. +# Serverless Spring Boot 3 example +A basic pet store written with the [Spring Boot 3 framework](https://projects.spring.io/spring-boot/). 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. From 8ed5650c69ebecc2bdda867519c0214636b5789d Mon Sep 17 00:00:00 2001 From: Artur Signell Date: Mon, 6 Feb 2023 11:30:15 +0200 Subject: [PATCH 100/623] Load using the application class loader Fixes #506 --- .../serverless/proxy/internal/servlet/AwsServletContext.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) 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 44ec701ee..1732cfe22 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 @@ -519,9 +519,7 @@ public JspConfigDescriptor getJspConfigDescriptor() { @Override public ClassLoader getClassLoader() { - // for the time being we return the default class loader. We may want to let developers override this int the - // future. - return ClassLoader.getSystemClassLoader(); + return getClass().getClassLoader(); } From 5a3238d6ddf926f5433fc79b67f8a8647329e7dc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 May 2023 04:56:57 +0000 Subject: [PATCH 101/623] chore(deps-dev): bump jakarta.activation-api from 2.1.1 to 2.1.2 Bumps [jakarta.activation-api](https://github.com/jakartaee/jaf-api) from 2.1.1 to 2.1.2. - [Release notes](https://github.com/jakartaee/jaf-api/releases) - [Commits](https://github.com/jakartaee/jaf-api/compare/2.1.1...2.1.2) --- updated-dependencies: - dependency-name: jakarta.activation:jakarta.activation-api dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- 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 af8d73f3c..fd0425b4f 100644 --- a/aws-serverless-java-container-spring/pom.xml +++ b/aws-serverless-java-container-spring/pom.xml @@ -62,7 +62,7 @@ jakarta.activation jakarta.activation-api - 2.1.1 + 2.1.2 test From ca25123411bbee02841567fc79c1b509df096660 Mon Sep 17 00:00:00 2001 From: Renato Valenzuela Date: Tue, 2 May 2023 21:33:53 +0000 Subject: [PATCH 102/623] chore(deps-dev): add jakarta-websocket-client-api Needed to upgrade `jakarta.websocket-api` to 2.1.0, because: - "Removed the copy of the jakarta.websocket.* classes from the jakarta.websocket-api jar" [1] [1] https://github.com/jakartaee/websocket/blob/ca41696e7d7a48d4f74d1546e0f006a2e82d657d/spec/src/main/asciidoc/WebSocket.adoc#a1-changes-between-21-and-20 --- aws-serverless-java-container-springboot3/pom.xml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml index 411b16da9..27aa39496 100644 --- a/aws-serverless-java-container-springboot3/pom.xml +++ b/aws-serverless-java-container-springboot3/pom.xml @@ -171,6 +171,13 @@ test + + jakarta.websocket + jakarta.websocket-client-api + 2.1.0 + test + + From 7b047ae3184196cf2d1119a529f862a3fc33de99 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 May 2023 04:56:56 +0000 Subject: [PATCH 103/623] chore(deps): bump maven-gpg-plugin from 3.0.1 to 3.1.0 Bumps [maven-gpg-plugin](https://github.com/apache/maven-gpg-plugin) from 3.0.1 to 3.1.0. - [Commits](https://github.com/apache/maven-gpg-plugin/compare/maven-gpg-plugin-3.0.1...maven-gpg-plugin-3.1.0) --- 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] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 5c8a4edd4..f885a41ff 100644 --- a/pom.xml +++ b/pom.xml @@ -253,7 +253,7 @@ org.apache.maven.plugins maven-gpg-plugin - 3.0.1 + 3.1.0 sign-artifacts From c5b67532bd7a211b41f8da767c1e41c414836b7e Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Tue, 9 May 2023 16:11:06 +0200 Subject: [PATCH 104/623] chore: Remove outdated Micronaut and Quarkus sample code --- README.md | 6 +- samples/micronaut/pet-store/Dockerfile | 24 --- samples/micronaut/pet-store/README.md | 74 --------- samples/micronaut/pet-store/build.gradle | 77 ---------- samples/micronaut/pet-store/docker-build.sh | 25 ---- samples/micronaut/pet-store/gradle.properties | 1 - samples/micronaut/pet-store/micronaut-cli.yml | 5 - samples/micronaut/pet-store/sam-local.sh | 4 - samples/micronaut/pet-store/sam-native.yaml | 30 ---- samples/micronaut/pet-store/scripts/bootstrap | 3 - .../pet-store/scripts/graalvm-build.sh | 9 -- samples/micronaut/pet-store/settings.gradle | 1 - .../amazonaws/micronaut/demo/Application.java | 17 --- .../micronaut/demo/PetsController.java | 79 ---------- .../amazonaws/micronaut/demo/model/Pet.java | 61 -------- .../micronaut/demo/model/PetData.java | 114 -------------- .../native-image.properties | 4 - .../src/main/resources/application.yml | 6 - .../pet-store/src/main/resources/logback.xml | 15 -- samples/quarkus/pet-store/README.md | 68 --------- samples/quarkus/pet-store/pom.xml | 141 ------------------ samples/quarkus/pet-store/sam.native.yaml | 36 ----- .../quarkus/pet-store/src/assembly/zip.xml | 17 --- .../sample/quarkus/PetsController.java | 63 -------- .../serverless/sample/quarkus/model/Pet.java | 50 ------- .../sample/quarkus/model/PetData.java | 102 ------------- .../src/main/resources/application.properties | 4 - 27 files changed, 4 insertions(+), 1032 deletions(-) delete mode 100644 samples/micronaut/pet-store/Dockerfile delete mode 100644 samples/micronaut/pet-store/README.md delete mode 100644 samples/micronaut/pet-store/build.gradle delete mode 100755 samples/micronaut/pet-store/docker-build.sh delete mode 100644 samples/micronaut/pet-store/gradle.properties delete mode 100644 samples/micronaut/pet-store/micronaut-cli.yml delete mode 100755 samples/micronaut/pet-store/sam-local.sh delete mode 100644 samples/micronaut/pet-store/sam-native.yaml delete mode 100755 samples/micronaut/pet-store/scripts/bootstrap delete mode 100755 samples/micronaut/pet-store/scripts/graalvm-build.sh delete mode 100644 samples/micronaut/pet-store/settings.gradle delete mode 100644 samples/micronaut/pet-store/src/main/java/com/amazonaws/micronaut/demo/Application.java delete mode 100644 samples/micronaut/pet-store/src/main/java/com/amazonaws/micronaut/demo/PetsController.java delete mode 100644 samples/micronaut/pet-store/src/main/java/com/amazonaws/micronaut/demo/model/Pet.java delete mode 100644 samples/micronaut/pet-store/src/main/java/com/amazonaws/micronaut/demo/model/PetData.java delete mode 100644 samples/micronaut/pet-store/src/main/resources/META-INF/native-image/graal.spring.demo/graal-spring-demo-application/native-image.properties delete mode 100644 samples/micronaut/pet-store/src/main/resources/application.yml delete mode 100644 samples/micronaut/pet-store/src/main/resources/logback.xml delete mode 100644 samples/quarkus/pet-store/README.md delete mode 100644 samples/quarkus/pet-store/pom.xml delete mode 100644 samples/quarkus/pet-store/sam.native.yaml delete mode 100644 samples/quarkus/pet-store/src/assembly/zip.xml delete mode 100644 samples/quarkus/pet-store/src/main/java/com/amazonaws/serverless/sample/quarkus/PetsController.java delete mode 100644 samples/quarkus/pet-store/src/main/java/com/amazonaws/serverless/sample/quarkus/model/Pet.java delete mode 100644 samples/quarkus/pet-store/src/main/java/com/amazonaws/serverless/sample/quarkus/model/PetData.java delete mode 100644 samples/quarkus/pet-store/src/main/resources/application.properties diff --git a/README.md b/README.md index 895313892..9c483ae27 100644 --- a/README.md +++ b/README.md @@ -17,8 +17,6 @@ Follow the quick start guides in [our wiki](https://github.com/awslabs/aws-serve * [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) -* Micronaut [documentation](https://guides.micronaut.io/micronaut-function-aws-lambda/guide/index.html) and [demo](https://github.com/awslabs/aws-serverless-java-container/tree/master/samples/micronaut/pet-store) (outdated! - needs to be updated to latest Micronaut version) - 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). ```java @@ -52,3 +50,7 @@ public class StreamLambdaHandler implements RequestStreamHandler { ### Videos - [Spring on AWS Lambda](https://www.youtube.com/watch?v=A1rYiHTy9Lg&list=PLCOG9xkUD90IDm9tcY-5nMK6X6g8SD-Sz) YouTube Playlist from [@plantpowerjames](https://twitter.com/plantpowerjames) + +### 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 diff --git a/samples/micronaut/pet-store/Dockerfile b/samples/micronaut/pet-store/Dockerfile deleted file mode 100644 index 6bb80136e..000000000 --- a/samples/micronaut/pet-store/Dockerfile +++ /dev/null @@ -1,24 +0,0 @@ -FROM amazonlinux:2017.03.1.20170812 as graalvm -# install graal to amazon linux. -ENV LANG=en_US.UTF-8 - -RUN yum install -y gcc gcc-c++ libc6-dev zlib1g-dev curl bash zlib zlib-devel zip \ -# && yum install -y libcxx libcxx-devel llvm-toolset-7 \ - && rm -rf /var/cache/yum - - -ENV GRAAL_VERSION 19.2.0.1 -ENV GRAAL_FILENAME graalvm-ce-linux-amd64-${GRAAL_VERSION}.tar.gz - -RUN curl -4 -L https://github.com/oracle/graal/releases/download/vm-${GRAAL_VERSION}/graalvm-ce-linux-amd64-${GRAAL_VERSION}.tar.gz -o /tmp/${GRAAL_FILENAME} - -RUN tar -zxvf /tmp/${GRAAL_FILENAME} -C /tmp \ - && mv /tmp/graalvm-ce-${GRAAL_VERSION} /usr/lib/graalvm - -RUN rm -rf /tmp/* -RUN /usr/lib/graalvm/bin/gu install native-image -ADD scripts/graalvm-build.sh /usr/local/bin/ -RUN chmod +x /usr/local/bin/graalvm-build.sh -VOLUME ["/func"] -WORKDIR /func -ENTRYPOINT ["/usr/local/bin/graalvm-build.sh"] \ No newline at end of file diff --git a/samples/micronaut/pet-store/README.md b/samples/micronaut/pet-store/README.md deleted file mode 100644 index fc5793a59..000000000 --- a/samples/micronaut/pet-store/README.md +++ /dev/null @@ -1,74 +0,0 @@ -# Micronaut Native Pet store example - -The [Micronaut framework](https://micronaut.io/) is compatible with Spring's annotations and makes it easy to use [GraalVM](https://www.graalvm.org/) to build application images into native binaries. Further, Micronaut includes builtin support for AWS Lambda. - -This demo application shows how to use Micronaut to compile our standard pet store example, using Spring annotations, into a native binary with GraalVM and execute it in AWS Lambda. To run this demo, you will need to have [Gradle](https://gradle.org/) installed as well as [Docker](https://www.docker.com/) to run the GraalVM build. - -With all the pre-requisites installed including: - -* JDK 8 or above -* Gradle 5.6.x - -You should be able to build a native image of the application by running the `docker-build.sh` from the repository's root. - -```bash -$ ./docker-build.sh -``` - -The build process will perform the following tasks: -1. Use gradle to compile the application -2. Create a `native-image` folder in the current directory -3. Check if a Docker image called `graalvm-lambda-build` exists on the local machine. If not, create it using the `Dockerfile` in the root of the repository -4. Run the docker image to execute the GraalVM build process - -The output of the build is an executable file called `server` and a deployable zip called `function.zip` in the `native-image` folder: - -```bash -$ ls -lh native-image/ -total 75M --rwxr-xr-x 1 user user 36 Oct 1 16:01 bootstrap --rw-r--r-- 1 user user 18M Oct 1 16:01 function.zip --rwxr-xr-x 1 user user 57M Oct 1 16:01 server -``` - -To run the lambda locally, you can utilize the SAM cli by running `./sam-local.sh`. This should start up the listeners in the `PetsController`, and you can test locally with your preferred http client. - -For example, to test the GET /pets endpoint via curl: -```bash -curl localhost:3000/pets -``` - -You should see JSON output of pets. - -To deploy the application to AWS Lambda you can use the pre-configured `sam-native.yaml` file included in the repo. Using the AWS or SAM CLI, run the following commands: - -```bash -$ aws cloudformation package --template-file sam-native.yaml \ - --output-template-file packaged-sam.yaml \ - --s3-bucket -Uploading to d3e2617f3c8c2e8ca78e35a0dc856884 18553505 / 18553505.0 (100.00%) -Successfully packaged artifacts and wrote output template to file packaged-sam.yaml. -Execute the following command to deploy the packaged template -aws cloudformation deploy --template-file /workspace/graal-spring-demo/packaged-sam.yaml --stack-name - - -$ aws cloudformation deploy --template-file ./packaged-sam.yaml --stack-name MicronautGraalVmDemo --capabilities CAPABILITY_IAM - -Waiting for changeset to be created.. -Waiting for stack create/update to complete -Successfully created/updated stack - MicronautGraalVmDemo -``` - -You can use the AWS CLI to get the API endpoint generated by the deployment process: - -```bash -aws cloudformation describe-stacks --stack-name MicronautGraalVmDemo --query Stacks[0].Outputs[0].OutputValue -"https://xxxxxxxxxx.execute-api.xx-xxxx-1.amazonaws.com/Prod/pets" -``` - -Make a test request to the API endpoint using curl or your preferred http client. - -For example, to check the GET /pets endpoint via curl: -```bash -curl https://xxxxxxxxxx.execute-api.xx-xxxx-1.amazonaws.com/Prod/pets -``` diff --git a/samples/micronaut/pet-store/build.gradle b/samples/micronaut/pet-store/build.gradle deleted file mode 100644 index b262a4699..000000000 --- a/samples/micronaut/pet-store/build.gradle +++ /dev/null @@ -1,77 +0,0 @@ -plugins { - id "java" - id "com.github.johnrengelman.shadow" version "8.1.1" - id "application" - id "net.ltgt.apt-eclipse" version "0.21" - id "org.springframework.boot" version "3.0.5" - id "io.spring.dependency-management" version "1.1.0" -} - -version "0.1" -group "graal.spring.demo" - -repositories { - mavenCentral() - maven { url "https://jcenter.bintray.com" } -} - -configurations { - // for dependencies that are needed for development only - developmentOnly -} - -dependencies { - annotationProcessor platform("io.micronaut:micronaut-bom:$micronautVersion") - annotationProcessor "io.micronaut:micronaut-graal" - annotationProcessor "io.micronaut:micronaut-inject-java" - annotationProcessor "io.micronaut:micronaut-validation" - annotationProcessor "io.micronaut.spring:micronaut-spring-boot" - annotationProcessor "io.micronaut.spring:micronaut-spring-boot-annotation" - annotationProcessor "io.micronaut.spring:micronaut-spring-web-annotation" - testAnnotationProcessor "io.micronaut.spring:micronaut-spring-web-annotation" - - compileOnly "com.oracle.substratevm:svm" - implementation platform("io.micronaut:micronaut-bom:$micronautVersion") - implementation "io.micronaut:micronaut-http-client" - implementation "io.micronaut:micronaut-inject" - implementation "io.micronaut:micronaut-validation" - implementation "io.micronaut:micronaut-runtime" - implementation("io.micronaut.aws:micronaut-function-aws-custom-runtime:1.3.2") { - exclude group: "com.fasterxml.jackson.module", module: "jackson-module-afterburner" - } - implementation("io.micronaut.aws:micronaut-function-aws-api-proxy:1.3.2") { - exclude group: "com.fasterxml.jackson.module", module: "jackson-module-afterburner" - } - developmentOnly "io.micronaut:micronaut-http-server-netty" - runtimeOnly "ch.qos.logback:logback-classic:1.2.3" - testAnnotationProcessor platform("io.micronaut:micronaut-bom:$micronautVersion") - testAnnotationProcessor "io.micronaut:micronaut-inject-java" - testImplementation platform("io.micronaut:micronaut-bom:$micronautVersion") - testImplementation "org.junit.jupiter:junit-jupiter-api" - testImplementation "io.micronaut.test:micronaut-test-junit5" - testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine" - - // spring support - implementation("org.springframework.boot:spring-boot-starter-web") - runtime("io.micronaut.spring:micronaut-spring-boot:5.0.0-M1") - runtime("io.micronaut.spring:micronaut-spring-web:5.0.0-M1") -} - -test.classpath += configurations.developmentOnly - -mainClassName = "graal.spring.demo.Application" -// use JUnit 5 platform -test { - useJUnitPlatform() -} - -shadowJar { - mergeServiceFiles() -} - -run.classpath += configurations.developmentOnly -run.jvmArgs('-noverify', '-XX:TieredStopAtLevel=1', '-Dcom.sun.management.jmxremote') -tasks.withType(JavaCompile){ - options.encoding = "UTF-8" - options.compilerArgs.add('-parameters') -} diff --git a/samples/micronaut/pet-store/docker-build.sh b/samples/micronaut/pet-store/docker-build.sh deleted file mode 100755 index 41a644cc0..000000000 --- a/samples/micronaut/pet-store/docker-build.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash -DOCKER_IMAGE_NAME=graalvm-lambda-build - -if [[ -d "${PWD}/native-image" ]]; then - rm -rf native-image/* -fi - -gradle clean build --info - -if [[ $? -ne 0 ]]; then - echo "Gradle build failed" - exit 1 -fi - -mkdir -p ${PWD}/native-image - -if [[ "$(docker images -q ${DOCKER_IMAGE_NAME} 2> /dev/null)" == "" ]]; then - docker build . -t ${DOCKER_IMAGE_NAME} -fi - -docker run --rm -v ${PWD}:/func ${DOCKER_IMAGE_NAME} - -if [[ -f "${PWD}/native-image/function.zip" ]]; then - echo "The function is ready to deploy in the ./native-image/function.zip file. Use the sam-native.yaml template to set up your Lambda function and API" -fi diff --git a/samples/micronaut/pet-store/gradle.properties b/samples/micronaut/pet-store/gradle.properties deleted file mode 100644 index 04c818602..000000000 --- a/samples/micronaut/pet-store/gradle.properties +++ /dev/null @@ -1 +0,0 @@ -micronautVersion=1.2.3 \ No newline at end of file diff --git a/samples/micronaut/pet-store/micronaut-cli.yml b/samples/micronaut/pet-store/micronaut-cli.yml deleted file mode 100644 index 262c35c06..000000000 --- a/samples/micronaut/pet-store/micronaut-cli.yml +++ /dev/null @@ -1,5 +0,0 @@ -profile: service -defaultPackage: com.amazonaws.micronaut.demo ---- -testFramework: junit -sourceLanguage: java \ No newline at end of file diff --git a/samples/micronaut/pet-store/sam-local.sh b/samples/micronaut/pet-store/sam-local.sh deleted file mode 100755 index 0c82b8511..000000000 --- a/samples/micronaut/pet-store/sam-local.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh - -./docker-build.sh -sam local start-api -t sam-native.yaml \ No newline at end of file diff --git a/samples/micronaut/pet-store/sam-native.yaml b/samples/micronaut/pet-store/sam-native.yaml deleted file mode 100644 index 76a08d1ec..000000000 --- a/samples/micronaut/pet-store/sam-native.yaml +++ /dev/null @@ -1,30 +0,0 @@ -AWSTemplateFormatVersion: '2010-09-09' -Transform: AWS::Serverless-2016-10-31 -Description: AWS Serverless Micronaut API - graal.spring.demo::graal-spring-demo -Globals: - Api: - EndpointConfiguration: REGIONAL -Resources: - GraalVMApiService: - Type: AWS::Serverless::Function - Properties: - Handler: not.used.in.provided.runtime - Runtime: provided - CodeUri: native-image/function.zip - MemorySize: 512 - Policies: AWSLambdaBasicExecutionRole - Tracing: Active - Timeout: 15 - Events: - GetResource: - Type: Api - Properties: - Path: /{proxy+} - Method: any - -Outputs: - MicronautNativeServiceApi: - Description: URL for application - Value: !Sub 'https://${ServerlessRestApi}.execute-api.${AWS::Region}.amazonaws.com/Prod/pets' - Export: - Name: MicronautNativeServiceApi diff --git a/samples/micronaut/pet-store/scripts/bootstrap b/samples/micronaut/pet-store/scripts/bootstrap deleted file mode 100755 index f10361a21..000000000 --- a/samples/micronaut/pet-store/scripts/bootstrap +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -set -euo pipefail -./server \ No newline at end of file diff --git a/samples/micronaut/pet-store/scripts/graalvm-build.sh b/samples/micronaut/pet-store/scripts/graalvm-build.sh deleted file mode 100755 index 44b8b2603..000000000 --- a/samples/micronaut/pet-store/scripts/graalvm-build.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh -echo "Startin GraalVM build" -/usr/lib/graalvm/bin/native-image -H:+TraceClassInitialization --initialize-at-build-time=reactor.core.publisher.Mono --initialize-at-build-time=reactor.core.publisher.Flux --no-fallback --no-server -cp /func/build/libs/pet-store-*-all.jar -rm -rf /func/native-image/* - -chmod 755 /func/server -mv /func/server /func/native-image/server -cp /func/scripts/bootstrap /func/native-image/bootstrap -cd /func/native-image && zip -j function.zip bootstrap server diff --git a/samples/micronaut/pet-store/settings.gradle b/samples/micronaut/pet-store/settings.gradle deleted file mode 100644 index a6e417eb2..000000000 --- a/samples/micronaut/pet-store/settings.gradle +++ /dev/null @@ -1 +0,0 @@ -rootProject.name="pet-store" \ No newline at end of file diff --git a/samples/micronaut/pet-store/src/main/java/com/amazonaws/micronaut/demo/Application.java b/samples/micronaut/pet-store/src/main/java/com/amazonaws/micronaut/demo/Application.java deleted file mode 100644 index 0340d5c42..000000000 --- a/samples/micronaut/pet-store/src/main/java/com/amazonaws/micronaut/demo/Application.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.amazonaws.micronaut.demo; - -import org.springframework.boot.autoconfigure.SpringBootApplication; - -import ch.qos.logback.classic.Level; -import ch.qos.logback.classic.Logger; -import io.micronaut.runtime.Micronaut; - -@SpringBootApplication -public class Application { - - public static void main(String[] args) { - Logger rootLogger = (ch.qos.logback.classic.Logger)org.slf4j.LoggerFactory.getLogger(org.slf4j.Logger.ROOT_LOGGER_NAME); - rootLogger.setLevel(Level.TRACE); - Micronaut.run(Application.class); - } -} \ No newline at end of file diff --git a/samples/micronaut/pet-store/src/main/java/com/amazonaws/micronaut/demo/PetsController.java b/samples/micronaut/pet-store/src/main/java/com/amazonaws/micronaut/demo/PetsController.java deleted file mode 100644 index a0d43e617..000000000 --- a/samples/micronaut/pet-store/src/main/java/com/amazonaws/micronaut/demo/PetsController.java +++ /dev/null @@ -1,79 +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.micronaut.demo; - -import com.amazonaws.micronaut.demo.model.Pet; -import com.amazonaws.micronaut.demo.model.PetData; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; -import org.springframework.web.servlet.config.annotation.EnableWebMvc; - -import javax.annotation.Nullable; -import java.security.Principal; -import java.util.Optional; -import java.util.UUID; - -@RestController -@EnableWebMvc -public class PetsController { - - private PetData petData; - - @Autowired - public PetsController(PetData data) { - petData = data; - } - - @RequestMapping(path = "/pets", method = RequestMethod.POST) - public Pet createPet(@RequestBody Pet newPet) { - if (newPet.getName() == null || newPet.getBreed() == null) { - return null; - } - - Pet dbPet = newPet; - dbPet.setId(UUID.randomUUID().toString()); - return dbPet; - } - - @RequestMapping(path = "/pets", method = RequestMethod.GET) - public Pet[] listPets(@RequestParam("limit") Optional limit, @Nullable Principal principal) { - 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; - } - - @RequestMapping(path = "/pets/{petId}", method = RequestMethod.GET) - public Pet getPet(@RequestParam("petId") String petId) { - 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/micronaut/pet-store/src/main/java/com/amazonaws/micronaut/demo/model/Pet.java b/samples/micronaut/pet-store/src/main/java/com/amazonaws/micronaut/demo/model/Pet.java deleted file mode 100644 index 3f0328ee5..000000000 --- a/samples/micronaut/pet-store/src/main/java/com/amazonaws/micronaut/demo/model/Pet.java +++ /dev/null @@ -1,61 +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.micronaut.demo.model; - -import com.fasterxml.jackson.annotation.JsonFormat; -import com.fasterxml.jackson.annotation.JsonProperty; -import io.micronaut.core.annotation.Introspected; - -import java.util.Date; - -@Introspected -public class Pet { - private String id; - private String breed; - private String name; - private Date dateOfBirth; - - @JsonProperty("petId") - 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; - } - - @JsonFormat(pattern = "YYYY-mm-dd") - public Date getDateOfBirth() { - return dateOfBirth; - } - - public void setDateOfBirth(Date dateOfBirth) { - this.dateOfBirth = dateOfBirth; - } -} diff --git a/samples/micronaut/pet-store/src/main/java/com/amazonaws/micronaut/demo/model/PetData.java b/samples/micronaut/pet-store/src/main/java/com/amazonaws/micronaut/demo/model/PetData.java deleted file mode 100644 index f7bc03c46..000000000 --- a/samples/micronaut/pet-store/src/main/java/com/amazonaws/micronaut/demo/model/PetData.java +++ /dev/null @@ -1,114 +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.micronaut.demo.model; - -import org.springframework.stereotype.Component; - -import java.util.*; -import java.util.concurrent.ThreadLocalRandom; - -@Component -public class PetData { - private static List 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 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 List getBreeds() { - return breeds; - } - - public List getNames() { - return names; - } - - public String getRandomBreed() { - return breeds.get(ThreadLocalRandom.current().nextInt(0, breeds.size() - 1)); - } - - public String getRandomName() { - return names.get(ThreadLocalRandom.current().nextInt(0, names.size() - 1)); - } - - public 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/micronaut/pet-store/src/main/resources/META-INF/native-image/graal.spring.demo/graal-spring-demo-application/native-image.properties b/samples/micronaut/pet-store/src/main/resources/META-INF/native-image/graal.spring.demo/graal-spring-demo-application/native-image.properties deleted file mode 100644 index fd9f904ee..000000000 --- a/samples/micronaut/pet-store/src/main/resources/META-INF/native-image/graal.spring.demo/graal-spring-demo-application/native-image.properties +++ /dev/null @@ -1,4 +0,0 @@ -Args = -H:IncludeResources=application.yml|log4j2.xml \ - -H:Name=server \ - -H:-AllowVMInspection \ - -H:Class=io.micronaut.function.aws.runtime.MicronautLambdaRuntime \ No newline at end of file diff --git a/samples/micronaut/pet-store/src/main/resources/application.yml b/samples/micronaut/pet-store/src/main/resources/application.yml deleted file mode 100644 index c16e60c1d..000000000 --- a/samples/micronaut/pet-store/src/main/resources/application.yml +++ /dev/null @@ -1,6 +0,0 @@ -micronaut: - application: - name: pet-store -jackson: - serialization: - indentOutput: true \ No newline at end of file diff --git a/samples/micronaut/pet-store/src/main/resources/logback.xml b/samples/micronaut/pet-store/src/main/resources/logback.xml deleted file mode 100644 index 6010eb523..000000000 --- a/samples/micronaut/pet-store/src/main/resources/logback.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - true - - - %cyan(%d{HH:mm:ss.SSS}) %gray([%thread]) %highlight(%-5level) %magenta(%logger{36}) - %msg%n - - - - - - - diff --git a/samples/quarkus/pet-store/README.md b/samples/quarkus/pet-store/README.md deleted file mode 100644 index 3ff1371d7..000000000 --- a/samples/quarkus/pet-store/README.md +++ /dev/null @@ -1,68 +0,0 @@ -# Quarkus Native Pet store example - -The [Quarkus framework](https://quarkus.io/) is compatible with Spring's annotations and makes it easy to use [GraalVM](https://www.graalvm.org/) to build application images into native binaries. Further, Micronaut includes builtin support for AWS Lambda. - -This demo application shows how to use Quarkus to compile our standard pet store example, using Spring annotations, into a native binary with GraalVM and execute it in AWS Lambda. To run this demo, you will need to have [Maven](https://maven.apache.org/) installed as well as [Docker](https://www.docker.com/) to build GraalVM native image. - -With all the pre-requisites installed including: - -* JDK 8 or above -* Maven 3.5.x - -You should be able to build a native image of the application by running mvn from the repository's root. - -```bash -$ mvn clean install -Pnative -``` - -The output of the build is a deployable zip called `function.zip` in the `target` folder. - -To run the lambda locally, you can utilize the SAM cli. This should start up the listeners in the `PetsController`, and you can test locally with your preferred http client. - -```bash -sam local start-api -t sam.native.yaml -``` - -For example, to test the GET /pets endpoint via curl: -```bash -curl localhost:3000/pets -``` - -You should see JSON output of pets. - -To deploy the application to AWS Lambda you can use the pre-configured `sam-native.yaml` file included in the repo. Using the AWS or SAM CLI, run the following commands: - -```bash -sam deploy -g -t sam.native.yaml -``` - -You should see the stack deployed successfully: - -```bash -Stack quarkus-sample-pet-store outputs: -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -OutputKey-Description OutputValue -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -PetStoreNativeApi - URL for application https://xxxxxxxxxx.execute-api.xx-xxxx-1.amazonaws.com/Prod/ -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- - -Successfully created/updated stack - quarkus-sample-pet-store in xx-xxxx-1 - -``` - -Make a test request to the API endpoint using curl or your preferred http client. - -For example, to check the GET /pets endpoint via curl: -```bash -curl https://xxxxxxxxxx.execute-api.xx-xxxx-1.amazonaws.com/Prod/pets -``` - -Finally, there’s an environment variable that must be set for native GraalVM deployments. If you look at sam.native.yaml you’ll see this: - -```bash - Environment: - Variables: - DISABLE_SIGNAL_HANDLERS: true -``` - -This environment variable resolves some incompatibilites between GraalVM and the Amazon Lambda Custom Runtime environment. \ No newline at end of file diff --git a/samples/quarkus/pet-store/pom.xml b/samples/quarkus/pet-store/pom.xml deleted file mode 100644 index d13958adc..000000000 --- a/samples/quarkus/pet-store/pom.xml +++ /dev/null @@ -1,141 +0,0 @@ - - - 4.0.0 - com.amazonaws.serverless.sample - serverless-quarkus-example - 2.0-SNAPSHOT - - 3.8.1 - true - 17 - 17 - UTF-8 - UTF-8 - 1.0.1.Final - quarkus-universe-bom - io.quarkus - 1.0.1.Final - 2.22.1 - - - - - ${quarkus.platform.group-id} - ${quarkus.platform.artifact-id} - ${quarkus.platform.version} - pom - import - - - - - - io.quarkus - quarkus-resteasy - - - io.quarkus - quarkus-amazon-lambda-http - - - io.quarkus - quarkus-spring-web - - - io.quarkus - quarkus-junit5 - test - - - io.rest-assured - rest-assured - test - - - - - - io.quarkus - quarkus-maven-plugin - ${quarkus-plugin.version} - - - - build - - - - - - maven-compiler-plugin - ${compiler-plugin.version} - - - maven-surefire-plugin - ${surefire-plugin.version} - - - org.jboss.logmanager.LogManager - - - - - - - - native - - - native - - - - - - maven-failsafe-plugin - ${surefire-plugin.version} - - - - integration-test - verify - - - - ${project.build.directory}/${project.build.finalName}-runner - - - - - - - org.apache.maven.plugins - maven-assembly-plugin - 3.1.0 - - - zip-assembly - package - - single - - - function - - src/assembly/zip.xml - - false - false - - - - - - - - native - - - - diff --git a/samples/quarkus/pet-store/sam.native.yaml b/samples/quarkus/pet-store/sam.native.yaml deleted file mode 100644 index 54ca55d07..000000000 --- a/samples/quarkus/pet-store/sam.native.yaml +++ /dev/null @@ -1,36 +0,0 @@ - AWSTemplateFormatVersion: '2010-09-09' - Transform: AWS::Serverless-2016-10-31 - Description: AWS Serverless Quarkus HTTP - com.amazon.quarkus.demo::pet-store - Globals: - Api: - EndpointConfiguration: REGIONAL - BinaryMediaTypes: - - "*/*" - - Resources: - PetStoreNativeFunction: - Type: AWS::Serverless::Function - Properties: - Handler: not.used.in.provided.runtime - Runtime: provided - CodeUri: target/function.zip - MemorySize: 128 - Policies: AWSLambdaBasicExecutionRole - Tracing: Active - Timeout: 15 - Environment: - Variables: - DISABLE_SIGNAL_HANDLERS: true - Events: - GetResource: - Type: Api - Properties: - Path: /{proxy+} - Method: any - - Outputs: - PetStoreNativeApi: - Description: URL for application - Value: !Sub 'https://${ServerlessRestApi}.execute-api.${AWS::Region}.amazonaws.com/Prod/' - Export: - Name: PetStoreNativeApi diff --git a/samples/quarkus/pet-store/src/assembly/zip.xml b/samples/quarkus/pet-store/src/assembly/zip.xml deleted file mode 100644 index ce2cb6421..000000000 --- a/samples/quarkus/pet-store/src/assembly/zip.xml +++ /dev/null @@ -1,17 +0,0 @@ - - lambda-package - - zip - - false - - - ${project.build.directory}${file.separator}${artifactId}-${version}-runner - / - bootstrap - 755 - - - diff --git a/samples/quarkus/pet-store/src/main/java/com/amazonaws/serverless/sample/quarkus/PetsController.java b/samples/quarkus/pet-store/src/main/java/com/amazonaws/serverless/sample/quarkus/PetsController.java deleted file mode 100644 index 571887850..000000000 --- a/samples/quarkus/pet-store/src/main/java/com/amazonaws/serverless/sample/quarkus/PetsController.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.amazonaws.serverless.sample.quarkus; - -import com.amazonaws.serverless.sample.quarkus.model.Pet; -import com.amazonaws.serverless.sample.quarkus.model.PetData; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -import java.util.Optional; -import java.util.UUID; - -@RestController -public class PetsController { - - private PetData petData; - - @Autowired - public PetsController(PetData data) { - petData = data; - } - - @RequestMapping(path = "/pets", method = RequestMethod.POST) - public Pet createPet(@RequestBody Pet newPet) { - if (newPet.getName() == null || newPet.getBreed() == null) { - return null; - } - - Pet dbPet = newPet; - dbPet.setId(UUID.randomUUID().toString()); - return dbPet; - } - - @RequestMapping(path = "/pets", method = RequestMethod.GET) - public Pet[] listPets(@RequestParam("limit") Optional limit) { - 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; - } - - @RequestMapping(path = "/pets/{petId}", method = RequestMethod.GET) - public Pet getPet(@RequestParam("petId") String petId) { - 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/quarkus/pet-store/src/main/java/com/amazonaws/serverless/sample/quarkus/model/Pet.java b/samples/quarkus/pet-store/src/main/java/com/amazonaws/serverless/sample/quarkus/model/Pet.java deleted file mode 100644 index 475213362..000000000 --- a/samples/quarkus/pet-store/src/main/java/com/amazonaws/serverless/sample/quarkus/model/Pet.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.amazonaws.serverless.sample.quarkus.model; - -import com.fasterxml.jackson.annotation.JsonFormat; -import com.fasterxml.jackson.annotation.JsonProperty; -import io.quarkus.runtime.annotations.RegisterForReflection; - -import java.util.Date; - -@RegisterForReflection -public class Pet { - private String id; - private String breed; - private String name; - private Date dateOfBirth; - - @JsonProperty("petId") - 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; - } - - @JsonFormat(pattern = "YYYY-mm-dd") - public Date getDateOfBirth() { - return dateOfBirth; - } - - public void setDateOfBirth(Date dateOfBirth) { - this.dateOfBirth = dateOfBirth; - } - -} diff --git a/samples/quarkus/pet-store/src/main/java/com/amazonaws/serverless/sample/quarkus/model/PetData.java b/samples/quarkus/pet-store/src/main/java/com/amazonaws/serverless/sample/quarkus/model/PetData.java deleted file mode 100644 index 90b837d0d..000000000 --- a/samples/quarkus/pet-store/src/main/java/com/amazonaws/serverless/sample/quarkus/model/PetData.java +++ /dev/null @@ -1,102 +0,0 @@ -package com.amazonaws.serverless.sample.quarkus.model; - -import org.springframework.stereotype.Component; - -import java.util.*; -import java.util.concurrent.ThreadLocalRandom; - -@Component -public class PetData { - private static List 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 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 List getBreeds() { - return breeds; - } - - public List getNames() { - return names; - } - - public String getRandomBreed() { - return breeds.get(ThreadLocalRandom.current().nextInt(0, breeds.size() - 1)); - } - - public String getRandomName() { - return names.get(ThreadLocalRandom.current().nextInt(0, names.size() - 1)); - } - - public 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/quarkus/pet-store/src/main/resources/application.properties b/samples/quarkus/pet-store/src/main/resources/application.properties deleted file mode 100644 index ee9b09c98..000000000 --- a/samples/quarkus/pet-store/src/main/resources/application.properties +++ /dev/null @@ -1,4 +0,0 @@ -quarkus.native.container-build=true -quarkus.native.container-runtime=docker -quarkus.native.builder-image=quay.io/quarkus/ubi-quarkus-native-image:19.2.1 -quarkus.log.level=INFO \ No newline at end of file From d0fc7b564d3278896d26af85d4c301c45a9f3e7c Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Fri, 19 May 2023 06:04:58 +0200 Subject: [PATCH 105/623] chore(deps): Update Spring dependencies (framework to 6.0.9, security to 6.1.0, boot to 3.1.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/pet-store/build.gradle | 2 +- samples/springboot3/pet-store/pom.xml | 2 +- 11 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 a530a49c6..9b0a5f4b2 100644 --- a/aws-serverless-java-container-core/pom.xml +++ b/aws-serverless-java-container-core/pom.xml @@ -122,7 +122,7 @@ org.springframework.security spring-security-web - 6.0.3 + 6.1.0 test diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml index fd0425b4f..f4eb8376a 100644 --- a/aws-serverless-java-container-spring/pom.xml +++ b/aws-serverless-java-container-spring/pom.xml @@ -16,8 +16,8 @@ - 6.0.8 - 6.0.3 + 6.0.9 + 6.1.0 diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml index 27aa39496..a36ebb3a3 100644 --- a/aws-serverless-java-container-springboot3/pom.xml +++ b/aws-serverless-java-container-springboot3/pom.xml @@ -15,9 +15,9 @@ 2.0-SNAPSHOT - 6.0.8 - 3.0.6 - 6.0.3 + 6.0.9 + 3.1.0 + 6.1.0 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 65aad2359..713a3cdf5 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.8', - 'org.springframework:spring-context:6.0.8', + 'org.springframework:spring-webmvc:6.0.9', + 'org.springframework:spring-context:6.0.9', '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 3e27a514e..16b928407 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 @@ 1.8 1.8 - 6.0.8 + 6.0.9 4.13.2 2.20.0 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 45e6ba1b2..f5f769dc6 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 @@ -8,7 +8,7 @@ repositories { dependencies { implementation ( - 'org.springframework.boot:spring-boot-starter-web:3.0.6', + 'org.springframework.boot:spring-boot-starter-web:3.1.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 ffbb37fcf..ddb9fdb45 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 @@ org.springframework.boot spring-boot-starter-parent - 3.0.6 + 3.1.0 diff --git a/samples/spring/pet-store/build.gradle b/samples/spring/pet-store/build.gradle index de5a543b6..124c92539 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.8', - 'org.springframework:spring-context:6.0.8', + 'org.springframework:spring-webmvc:6.0.9', + 'org.springframework:spring-context:6.0.9', '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 6500914f6..c08616f6e 100644 --- a/samples/spring/pet-store/pom.xml +++ b/samples/spring/pet-store/pom.xml @@ -24,7 +24,7 @@ - 6.0.8 + 6.0.9 4.13.2 2.20.0 17 diff --git a/samples/springboot3/pet-store/build.gradle b/samples/springboot3/pet-store/build.gradle index fe2712924..763fbea9e 100644 --- a/samples/springboot3/pet-store/build.gradle +++ b/samples/springboot3/pet-store/build.gradle @@ -8,7 +8,7 @@ repositories { dependencies { implementation ( - implementation('org.springframework.boot:spring-boot-starter-web:3.0.6') { + implementation('org.springframework.boot:spring-boot-starter-web:3.1.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 69445d349..85c31455b 100644 --- a/samples/springboot3/pet-store/pom.xml +++ b/samples/springboot3/pet-store/pom.xml @@ -13,7 +13,7 @@ org.springframework.boot spring-boot-starter-parent - 3.0.6 + 3.1.0 From 660dd8dbf88298bf31cc604b574ac283f2558fa2 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Fri, 19 May 2023 06:28:56 +0200 Subject: [PATCH 106/623] fix: remove symphonia-logging for now as it is no longer maintained (#496) --- .../src/main/resources/archetype-resources/build.gradle | 1 - samples/jersey/pet-store/build.gradle | 1 - samples/jersey/pet-store/pom.xml | 7 ------- samples/spark/pet-store/build.gradle | 1 - samples/spark/pet-store/pom.xml | 7 ------- samples/springboot3/pet-store/build.gradle | 1 - samples/springboot3/pet-store/pom.xml | 7 ------- 7 files changed, 25 deletions(-) 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 73adc7fed..b7d4672b6 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 @@ -10,7 +10,6 @@ dependencies { '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.0', - 'io.symphonia:lambda-logging:1.0.3' ) testImplementation("junit:junit:4.13.2") diff --git a/samples/jersey/pet-store/build.gradle b/samples/jersey/pet-store/build.gradle index 6ff7cdd10..d12cb4226 100644 --- a/samples/jersey/pet-store/build.gradle +++ b/samples/jersey/pet-store/build.gradle @@ -9,7 +9,6 @@ dependencies { implementation ( 'com.amazonaws.serverless:aws-serverless-java-container-jersey:[2.0-SNAPSHOT,)', 'com.fasterxml.jackson.core:jackson-databind:2.15.0', - 'io.symphonia:lambda-logging:1.0.3' ) implementation("org.glassfish.jersey.media:jersey-media-json-jackson:3.1.1") { diff --git a/samples/jersey/pet-store/pom.xml b/samples/jersey/pet-store/pom.xml index 487499845..86c8eef6c 100644 --- a/samples/jersey/pet-store/pom.xml +++ b/samples/jersey/pet-store/pom.xml @@ -75,13 +75,6 @@ ${jackson.version} - - - io.symphonia - lambda-logging - 1.0.3 - - diff --git a/samples/spark/pet-store/build.gradle b/samples/spark/pet-store/build.gradle index 78b700c35..69b1ccf94 100644 --- a/samples/spark/pet-store/build.gradle +++ b/samples/spark/pet-store/build.gradle @@ -10,7 +10,6 @@ dependencies { '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.0', - 'io.symphonia:lambda-logging:1.0.3' ) } diff --git a/samples/spark/pet-store/pom.xml b/samples/spark/pet-store/pom.xml index e2bbd2280..99e63df53 100644 --- a/samples/spark/pet-store/pom.xml +++ b/samples/spark/pet-store/pom.xml @@ -50,13 +50,6 @@ jackson-databind ${jackson.version} - - - - io.symphonia - lambda-logging - 1.0.3 - diff --git a/samples/springboot3/pet-store/build.gradle b/samples/springboot3/pet-store/build.gradle index 763fbea9e..eed20ae1a 100644 --- a/samples/springboot3/pet-store/build.gradle +++ b/samples/springboot3/pet-store/build.gradle @@ -12,7 +12,6 @@ dependencies { exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat' }, 'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)', - 'io.symphonia:lambda-logging:1.0.3' ) testImplementation("junit:junit") } diff --git a/samples/springboot3/pet-store/pom.xml b/samples/springboot3/pet-store/pom.xml index 85c31455b..b58483d77 100644 --- a/samples/springboot3/pet-store/pom.xml +++ b/samples/springboot3/pet-store/pom.xml @@ -45,13 +45,6 @@ aws-serverless-java-container-springboot3 [2.0-SNAPSHOT,) - - - - io.symphonia - lambda-logging - 1.0.3 - From 34a922fac121dafa193768a762b586a5d783f40d Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Fri, 19 May 2023 06:49:37 +0200 Subject: [PATCH 107/623] chore: cleanup Gradle files --- .../src/main/resources/archetype-resources/build.gradle | 1 - samples/springboot3/pet-store/build.gradle | 2 -- 2 files changed, 3 deletions(-) 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 f5f769dc6..460f0f33f 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 @@ -1,7 +1,6 @@ apply plugin: 'java' repositories { - jcenter() mavenLocal() mavenCentral() } diff --git a/samples/springboot3/pet-store/build.gradle b/samples/springboot3/pet-store/build.gradle index eed20ae1a..216fc83ec 100644 --- a/samples/springboot3/pet-store/build.gradle +++ b/samples/springboot3/pet-store/build.gradle @@ -1,7 +1,6 @@ apply plugin: 'java' repositories { - jcenter() mavenLocal() mavenCentral() } @@ -13,7 +12,6 @@ dependencies { }, 'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)', ) - testImplementation("junit:junit") } task buildZip(type: Zip) { From f51f957df0f0160932eb4e525cb81feb6e285f28 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Fri, 19 May 2023 06:53:28 +0200 Subject: [PATCH 108/623] feat: Support Jakarta EE along with Spring Boot 3 support - java17 runtime should be used --- .../src/main/resources/archetype-resources/template.yml | 2 +- .../src/main/resources/archetype-resources/template.yml | 2 +- .../src/main/resources/archetype-resources/template.yml | 2 +- 3 files changed, 3 insertions(+), 3 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 e6e7e59b3..d8c3cca35 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: java11 + Runtime: java17 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 1c919d023..ec933bc7f 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: java11 + Runtime: java17 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 8d8e0946a..183b64d24 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: java11 + Runtime: java17 CodeUri: . MemorySize: 512 Policies: AWSLambdaBasicExecutionRole From 79cf55d470edfdbcc6fd03cce65e0dfdbcdfc960 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Fri, 19 May 2023 08:19:34 +0200 Subject: [PATCH 109/623] test: move some testutil classes to test-jar (related to #394) --- aws-serverless-java-container-core/pom.xml | 16 +++++++++++++--- .../testutils/AwsProxyRequestBuilder.java | 0 .../testutils/MockLambdaConsoleLogger.java | 0 .../internal/testutils/MockLambdaContext.java | 0 .../proxy/internal/testutils/MockServlet.java | 0 aws-serverless-java-container-jersey/pom.xml | 8 ++++++++ aws-serverless-java-container-spring/pom.xml | 8 ++++++++ .../pom.xml | 8 ++++++++ .../resources/archetype-resources/build.gradle | 1 + .../main/resources/archetype-resources/pom.xml | 10 +++++++++- .../resources/archetype-resources/build.gradle | 1 + .../main/resources/archetype-resources/pom.xml | 12 ++++++++++-- .../resources/archetype-resources/build.gradle | 1 + .../main/resources/archetype-resources/pom.xml | 8 ++++++++ .../resources/archetype-resources/build.gradle | 1 + .../main/resources/archetype-resources/pom.xml | 10 +++++++++- .../resources/archetype-resources/build.gradle | 1 + .../main/resources/archetype-resources/pom.xml | 8 ++++++++ 18 files changed, 86 insertions(+), 7 deletions(-) rename aws-serverless-java-container-core/src/{main => test}/java/com/amazonaws/serverless/proxy/internal/testutils/AwsProxyRequestBuilder.java (100%) rename aws-serverless-java-container-core/src/{main => test}/java/com/amazonaws/serverless/proxy/internal/testutils/MockLambdaConsoleLogger.java (100%) rename aws-serverless-java-container-core/src/{main => test}/java/com/amazonaws/serverless/proxy/internal/testutils/MockLambdaContext.java (100%) rename aws-serverless-java-container-core/src/{main => test}/java/com/amazonaws/serverless/proxy/internal/testutils/MockServlet.java (100%) diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml index 9b0a5f4b2..f4c89c4e2 100644 --- a/aws-serverless-java-container-core/pom.xml +++ b/aws-serverless-java-container-core/pom.xml @@ -115,9 +115,7 @@ org.apache.httpcomponents.core5 httpcore5 5.2.1 - compile - true + test org.springframework.security @@ -129,6 +127,18 @@ + + org.apache.maven.plugins + maven-jar-plugin + 3.3.0 + + + + test-jar + + + + org.apache.maven.plugins maven-surefire-plugin diff --git a/aws-serverless-java-container-core/src/main/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 similarity index 100% rename from aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/testutils/AwsProxyRequestBuilder.java rename to aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/testutils/AwsProxyRequestBuilder.java diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/testutils/MockLambdaConsoleLogger.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/testutils/MockLambdaConsoleLogger.java similarity index 100% rename from aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/testutils/MockLambdaConsoleLogger.java rename to aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/testutils/MockLambdaConsoleLogger.java diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/testutils/MockLambdaContext.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/testutils/MockLambdaContext.java similarity index 100% rename from aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/testutils/MockLambdaContext.java rename to aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/testutils/MockLambdaContext.java diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/testutils/MockServlet.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/testutils/MockServlet.java similarity index 100% rename from aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/testutils/MockServlet.java rename to aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/testutils/MockServlet.java diff --git a/aws-serverless-java-container-jersey/pom.xml b/aws-serverless-java-container-jersey/pom.xml index e94af8030..5467c1ed5 100644 --- a/aws-serverless-java-container-jersey/pom.xml +++ b/aws-serverless-java-container-jersey/pom.xml @@ -32,6 +32,14 @@ + + com.amazonaws.serverless + aws-serverless-java-container-core + 2.0-SNAPSHOT + tests + test-jar + test + diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml index f4eb8376a..8ce88a59e 100644 --- a/aws-serverless-java-container-spring/pom.xml +++ b/aws-serverless-java-container-spring/pom.xml @@ -27,6 +27,14 @@ aws-serverless-java-container-core 2.0-SNAPSHOT + + com.amazonaws.serverless + aws-serverless-java-container-core + 2.0-SNAPSHOT + tests + test-jar + test + diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml index a36ebb3a3..f358dd8fb 100644 --- a/aws-serverless-java-container-springboot3/pom.xml +++ b/aws-serverless-java-container-springboot3/pom.xml @@ -27,6 +27,14 @@ aws-serverless-java-container-core 2.0-SNAPSHOT + + com.amazonaws.serverless + aws-serverless-java-container-core + 2.0-SNAPSHOT + tests + test-jar + test + org.springframework spring-webflux 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 4f7bda47e..0421ac5b0 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 @@ -21,6 +21,7 @@ dependencies { exclude group: 'javax.inject', module: "javax.inject" } + testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests") testImplementation("junit:junit:4.13.2") } 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 5fa0be4f9..738639ce7 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 @@ -25,6 +25,14 @@ aws-serverless-java-container-jersey ${project.version} + + com.amazonaws.serverless + aws-serverless-java-container-core + ${project.version} + tests + test-jar + test + org.glassfish.jersey.media @@ -68,7 +76,7 @@ junit junit - 4.12 + 4.13.2 test 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 b7d4672b6..420550dd8 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 @@ -12,6 +12,7 @@ dependencies { 'com.fasterxml.jackson.core:jackson-databind:2.15.0', ) + testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests") testImplementation("junit:junit:4.13.2") } 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 5e9ea5e33..3c4910a5d 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 @@ -17,7 +17,7 @@ 1.8 1.8 2.15.0 - 2.9.1 + 2.9.4 @@ -26,6 +26,14 @@ aws-serverless-java-container-spark ${project.version} + + com.amazonaws.serverless + aws-serverless-java-container-core + ${project.version} + tests + test-jar + test + com.sparkjava @@ -42,7 +50,7 @@ junit junit - 4.12 + 4.13.2 test 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 713a3cdf5..89d2e99aa 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 @@ -17,6 +17,7 @@ dependencies { 'com.amazonaws:aws-lambda-java-log4j2:1.5.1', ) + testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests") testImplementation("junit:junit:4.13.2") } 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 16b928407..f3f283cfa 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 @@ -27,6 +27,14 @@ aws-serverless-java-container-spring ${project.version} + + com.amazonaws.serverless + aws-serverless-java-container-core + ${project.version} + tests + test-jar + test + org.springframework 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 460f0f33f..2c8bf5ca1 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 @@ -11,6 +11,7 @@ dependencies { 'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)', ) + testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests") testImplementation("junit:junit:4.13.2") } 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 ddb9fdb45..9bb3ee083 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 @@ -29,6 +29,14 @@ aws-serverless-java-container-springboot3 ${project.version} + + com.amazonaws.serverless + aws-serverless-java-container-core + ${project.version} + tests + test-jar + test + org.springframework.boot @@ -44,7 +52,7 @@ junit junit - 4.12 + 4.13.2 test 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 ebd3b1b67..0ff8c3a13 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 @@ -41,6 +41,7 @@ dependencies { implementation ('org.apache.logging.log4j:log4j-slf4j-impl:2.20.0') implementation ('com.amazonaws:aws-lambda-java-log4j2:1.5.1') + testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests") testImplementation('junit:junit:4.13.2') testImplementation('org.apache.struts:struts2-junit-plugin:6.1.2') { 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 8029323dd..8bce22dfd 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 @@ -27,6 +27,14 @@ aws-serverless-java-container-struts ${project.version} + + com.amazonaws.serverless + aws-serverless-java-container-core + ${project.version} + tests + test-jar + test + org.apache.struts From 1792d599baef22d06149b809544995132012cb76 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Fri, 19 May 2023 09:14:13 +0200 Subject: [PATCH 110/623] chore: cleanup pom files --- aws-serverless-java-container-core/pom.xml | 21 -------------------- aws-serverless-java-container-jersey/pom.xml | 5 ----- aws-serverless-java-container-spark/pom.xml | 1 - aws-serverless-java-container-spring/pom.xml | 3 --- aws-serverless-java-container-struts/pom.xml | 1 - pom.xml | 4 ---- samples/spark/pet-store/pom.xml | 2 -- 7 files changed, 37 deletions(-) diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml index f4c89c4e2..23fe75c56 100644 --- a/aws-serverless-java-container-core/pom.xml +++ b/aws-serverless-java-container-core/pom.xml @@ -36,35 +36,30 @@ - com.amazonaws aws-lambda-java-core 1.2.2 - jakarta.servlet jakarta.servlet-api ${servlet.version} - jakarta.ws.rs jakarta.ws.rs-api ${jaxrs.version} - com.fasterxml.jackson.core jackson-databind ${jackson.version} - com.fasterxml.jackson.module jackson-module-afterburner @@ -82,7 +77,6 @@ 2.0.1 - org.apache.httpcomponents httpmime @@ -96,21 +90,6 @@ 5.2.1 test - - org.junit.jupiter - junit-jupiter-api - test - - - org.junit.jupiter - junit-jupiter-engine - test - - - org.junit.jupiter - junit-jupiter-params - test - org.apache.httpcomponents.core5 httpcore5 diff --git a/aws-serverless-java-container-jersey/pom.xml b/aws-serverless-java-container-jersey/pom.xml index 5467c1ed5..f7f7476de 100644 --- a/aws-serverless-java-container-jersey/pom.xml +++ b/aws-serverless-java-container-jersey/pom.xml @@ -41,7 +41,6 @@ test - org.glassfish.jersey.core jersey-server @@ -62,7 +61,6 @@ - commons-codec commons-codec @@ -70,7 +68,6 @@ test - com.fasterxml.jackson.core jackson-databind @@ -79,7 +76,6 @@ test - org.glassfish.jersey.media jersey-media-json-jackson @@ -113,7 +109,6 @@ junit-jupiter test - jakarta.ws.rs jakarta.ws.rs-api diff --git a/aws-serverless-java-container-spark/pom.xml b/aws-serverless-java-container-spark/pom.xml index f5ea6b868..90ce0e273 100644 --- a/aws-serverless-java-container-spark/pom.xml +++ b/aws-serverless-java-container-spark/pom.xml @@ -27,7 +27,6 @@ 1.10-SNAPSHOT - com.sparkjava spark-core diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml index 8ce88a59e..d5fe921ed 100644 --- a/aws-serverless-java-container-spring/pom.xml +++ b/aws-serverless-java-container-spring/pom.xml @@ -36,7 +36,6 @@ test - org.springframework spring-webmvc @@ -44,7 +43,6 @@ true - org.springframework spring-test @@ -52,7 +50,6 @@ test - commons-codec commons-codec diff --git a/aws-serverless-java-container-struts/pom.xml b/aws-serverless-java-container-struts/pom.xml index 1c628e943..30e68b0b1 100644 --- a/aws-serverless-java-container-struts/pom.xml +++ b/aws-serverless-java-container-struts/pom.xml @@ -57,7 +57,6 @@ - commons-codec commons-codec diff --git a/pom.xml b/pom.xml index f885a41ff..e5cfc7d6d 100644 --- a/pom.xml +++ b/pom.xml @@ -87,7 +87,6 @@ - org.junit.jupiter junit-jupiter-api @@ -104,14 +103,12 @@ test - org.slf4j slf4j-api ${slf4j.version} - org.slf4j slf4j-simple @@ -119,7 +116,6 @@ test - org.mockito mockito-core diff --git a/samples/spark/pet-store/pom.xml b/samples/spark/pet-store/pom.xml index 99e63df53..5eef72f4f 100644 --- a/samples/spark/pet-store/pom.xml +++ b/samples/spark/pet-store/pom.xml @@ -37,14 +37,12 @@ [1.6,) - com.sparkjava spark-core ${spark.version} - com.fasterxml.jackson.core jackson-databind From 48784a1f10eb28ef52a86b6af4d0a835f9c201e7 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Fri, 19 May 2023 09:59:43 +0200 Subject: [PATCH 111/623] chore(deps): Update Jackson dependency to 2.15.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 0421ac5b0..8dc113dd2 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.0', + 'com.fasterxml.jackson.core:jackson-databind:2.15.1', ) implementation("org.glassfish.jersey.media:jersey-media-json-jackson:3.1.1") { 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 738639ce7..74148382c 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 @@ 1.8 3.1.1 - 2.15.0 + 2.15.1 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 420550dd8..3cd7c716c 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.0', + 'com.fasterxml.jackson.core:jackson-databind:2.15.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 3c4910a5d..a09d35556 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 @@ 1.8 1.8 - 2.15.0 + 2.15.1 2.9.4 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 89d2e99aa..693cd2ab0 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.0', + 'com.fasterxml.jackson.core:jackson-databind:2.15.1', '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 0ff8c3a13..6e3237854 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.0') - implementation ('com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.15.0') + implementation ('com.fasterxml.jackson.core:jackson-databind:2.15.1') + implementation ('com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.15.1') 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 8bce22dfd..e26888928 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 @@ 1.8 1.8 6.1.2 - 2.15.0 + 2.15.1 4.13.2 2.20.0 diff --git a/pom.xml b/pom.xml index e5cfc7d6d..48536ab5e 100644 --- a/pom.xml +++ b/pom.xml @@ -78,7 +78,7 @@ 0.7 8.2.1 - 2.15.0 + 2.15.1 2.0.7 5.9.3 5.3.1 diff --git a/samples/jersey/pet-store/build.gradle b/samples/jersey/pet-store/build.gradle index d12cb4226..64562ddd1 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.0', + 'com.fasterxml.jackson.core:jackson-databind:2.15.1', ) implementation("org.glassfish.jersey.media:jersey-media-json-jackson:3.1.1") { diff --git a/samples/jersey/pet-store/pom.xml b/samples/jersey/pet-store/pom.xml index 86c8eef6c..3fb17ea55 100644 --- a/samples/jersey/pet-store/pom.xml +++ b/samples/jersey/pet-store/pom.xml @@ -27,7 +27,7 @@ 1.8 1.8 3.1.1 - 2.15.0 + 2.15.1 diff --git a/samples/spark/pet-store/build.gradle b/samples/spark/pet-store/build.gradle index 69b1ccf94..840e71163 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.0', + 'com.fasterxml.jackson.core:jackson-databind:2.15.1', ) } diff --git a/samples/spark/pet-store/pom.xml b/samples/spark/pet-store/pom.xml index 5eef72f4f..dc49e00ee 100644 --- a/samples/spark/pet-store/pom.xml +++ b/samples/spark/pet-store/pom.xml @@ -26,7 +26,7 @@ 1.8 1.8 - 2.15.0 + 2.15.1 2.9.1 diff --git a/samples/spring/pet-store/build.gradle b/samples/spring/pet-store/build.gradle index 124c92539..f92b56bc7 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.0', + 'com.fasterxml.jackson.core:jackson-databind:2.15.1', '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 2daa12596..a146276a8 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.0', - 'com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.15.0', + 'com.fasterxml.jackson.core:jackson-databind:2.15.1', + 'com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.15.1', '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 58d630fc5..1ec2bb4a9 100644 --- a/samples/struts/pet-store/pom.xml +++ b/samples/struts/pet-store/pom.xml @@ -27,7 +27,7 @@ 1.8 1.8 6.1.2 - 2.15.0 + 2.15.1 4.13.2 2.20.0 From 127333144998c5a23bc48551d29e02012ab9ea12 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Fri, 19 May 2023 10:31:02 +0200 Subject: [PATCH 112/623] chore(deps): Update Jersey dependency to 3.1.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 +- 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 f7f7476de..d8645134a 100644 --- a/aws-serverless-java-container-jersey/pom.xml +++ b/aws-serverless-java-container-jersey/pom.xml @@ -16,7 +16,7 @@ - 3.1.1 + 3.1.2 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 8dc113dd2..bf493c5bb 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.1', ) - implementation("org.glassfish.jersey.media:jersey-media-json-jackson:3.1.1") { + implementation("org.glassfish.jersey.media:jersey-media-json-jackson:3.1.2") { 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.1") { + implementation("org.glassfish.jersey.inject:jersey-hk2:3.1.2") { 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 74148382c..8dde5e32f 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 @@ 1.8 1.8 - 3.1.1 + 3.1.2 2.15.1 diff --git a/samples/jersey/pet-store/build.gradle b/samples/jersey/pet-store/build.gradle index 64562ddd1..bc4742cd8 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.1', ) - implementation("org.glassfish.jersey.media:jersey-media-json-jackson:3.1.1") { + implementation("org.glassfish.jersey.media:jersey-media-json-jackson:3.1.2") { 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.1") { + implementation("org.glassfish.jersey.inject:jersey-hk2:3.1.2") { exclude group: 'javax.inject', module: "javax.inject" } } diff --git a/samples/jersey/pet-store/pom.xml b/samples/jersey/pet-store/pom.xml index 3fb17ea55..585fb9d2e 100644 --- a/samples/jersey/pet-store/pom.xml +++ b/samples/jersey/pet-store/pom.xml @@ -26,7 +26,7 @@ 1.8 1.8 - 3.1.1 + 3.1.2 2.15.1 From c95180d8dd0aef5af3235462d073738566b5eed6 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Fri, 19 May 2023 10:56:42 +0200 Subject: [PATCH 113/623] chore: Maven plugin updates --- aws-serverless-java-container-core/pom.xml | 3 +- aws-serverless-java-container-jersey/pom.xml | 3 +- aws-serverless-java-container-spark/pom.xml | 3 +- aws-serverless-java-container-spring/pom.xml | 3 +- .../pom.xml | 3 +- aws-serverless-java-container-struts/pom.xml | 1 - pom.xml | 42 ++++++++++++++++++- 7 files changed, 46 insertions(+), 12 deletions(-) diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml index 23fe75c56..3f8ba0819 100644 --- a/aws-serverless-java-container-core/pom.xml +++ b/aws-serverless-java-container-core/pom.xml @@ -121,9 +121,8 @@ org.apache.maven.plugins maven-surefire-plugin - 2.22.2 - always + false diff --git a/aws-serverless-java-container-jersey/pom.xml b/aws-serverless-java-container-jersey/pom.xml index d8645134a..eccc0fb07 100644 --- a/aws-serverless-java-container-jersey/pom.xml +++ b/aws-serverless-java-container-jersey/pom.xml @@ -166,9 +166,8 @@ org.apache.maven.plugins maven-surefire-plugin - 2.22.2 - always + false diff --git a/aws-serverless-java-container-spark/pom.xml b/aws-serverless-java-container-spark/pom.xml index 90ce0e273..7243a43d9 100644 --- a/aws-serverless-java-container-spark/pom.xml +++ b/aws-serverless-java-container-spark/pom.xml @@ -88,9 +88,8 @@ org.apache.maven.plugins maven-surefire-plugin - 2.22.2 - always + false diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml index d5fe921ed..f5f539091 100644 --- a/aws-serverless-java-container-spring/pom.xml +++ b/aws-serverless-java-container-spring/pom.xml @@ -209,9 +209,8 @@ org.apache.maven.plugins maven-surefire-plugin - 2.22.2 - always + false diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml index f358dd8fb..87cf8d7e9 100644 --- a/aws-serverless-java-container-springboot3/pom.xml +++ b/aws-serverless-java-container-springboot3/pom.xml @@ -239,9 +239,8 @@ org.apache.maven.plugins maven-surefire-plugin - 2.22.2 - always + false diff --git a/aws-serverless-java-container-struts/pom.xml b/aws-serverless-java-container-struts/pom.xml index 30e68b0b1..73a174c6c 100644 --- a/aws-serverless-java-container-struts/pom.xml +++ b/aws-serverless-java-container-struts/pom.xml @@ -161,7 +161,6 @@ org.apache.maven.plugins maven-surefire-plugin - 2.22.2 false diff --git a/pom.xml b/pom.xml index 48536ab5e..5dc367525 100644 --- a/pom.xml +++ b/pom.xml @@ -151,6 +151,12 @@ + + + org.apache.maven.plugins + maven-enforcer-plugin + + @@ -163,6 +169,9 @@ + + 3.6 + @@ -174,6 +183,7 @@ org.apache.maven.plugins maven-compiler-plugin + 3.11.0 1.8 1.8 @@ -186,10 +196,40 @@ maven-javadoc-plugin 3.5.0 - + + org.apache.maven.plugins + maven-surefire-plugin + 3.0.0 + + + org.apache.maven.plugins + maven-clean-plugin + 3.2.0 + + + org.apache.maven.plugins + maven-jar-plugin + 3.3.0 + + + org.apache.maven.plugins + maven-resources-plugin + 3.3.1 + + + org.apache.maven.plugins + maven-deploy-plugin + 3.1.1 + + + org.apache.maven.plugins + maven-install-plugin + 3.1.1 + org.apache.maven.plugins maven-release-plugin + 3.0.0 clean verify install true From 0601ce7438400594e05b16ecce376952b7860317 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Fri, 19 May 2023 11:02:01 +0200 Subject: [PATCH 114/623] chore: remove old OWASP suppressions --- aws-serverless-java-container-core/pom.xml | 3 -- aws-serverless-java-container-jersey/pom.xml | 3 -- aws-serverless-java-container-spark/pom.xml | 3 -- aws-serverless-java-container-spring/pom.xml | 3 -- .../pom.xml | 3 -- aws-serverless-java-container-struts/pom.xml | 3 -- owasp-suppression.xml | 35 ------------------- 7 files changed, 53 deletions(-) delete mode 100644 owasp-suppression.xml diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml index 3f8ba0819..ff6e4b710 100644 --- a/aws-serverless-java-container-core/pom.xml +++ b/aws-serverless-java-container-core/pom.xml @@ -193,9 +193,6 @@ ${dependencyCheck.version} true - - ${project.basedir}/../owasp-suppression.xml - 7 false diff --git a/aws-serverless-java-container-jersey/pom.xml b/aws-serverless-java-container-jersey/pom.xml index eccc0fb07..4ae4c7320 100644 --- a/aws-serverless-java-container-jersey/pom.xml +++ b/aws-serverless-java-container-jersey/pom.xml @@ -192,9 +192,6 @@ ${dependencyCheck.version} true - - ${project.basedir}/../owasp-suppression.xml - 7 false diff --git a/aws-serverless-java-container-spark/pom.xml b/aws-serverless-java-container-spark/pom.xml index 7243a43d9..3a5547ea5 100644 --- a/aws-serverless-java-container-spark/pom.xml +++ b/aws-serverless-java-container-spark/pom.xml @@ -114,9 +114,6 @@ ${dependencyCheck.version} true - - ${project.basedir}/../owasp-suppression.xml - 7 false diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml index f5f539091..b83b4742b 100644 --- a/aws-serverless-java-container-spring/pom.xml +++ b/aws-serverless-java-container-spring/pom.xml @@ -235,9 +235,6 @@ ${dependencyCheck.version} true - - ${project.basedir}/../owasp-suppression.xml - 7 false diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml index 87cf8d7e9..5349fc532 100644 --- a/aws-serverless-java-container-springboot3/pom.xml +++ b/aws-serverless-java-container-springboot3/pom.xml @@ -265,9 +265,6 @@ ${dependencyCheck.version} true - - ${project.basedir}/../owasp-suppression.xml - 7 false diff --git a/aws-serverless-java-container-struts/pom.xml b/aws-serverless-java-container-struts/pom.xml index 73a174c6c..ee1784d78 100644 --- a/aws-serverless-java-container-struts/pom.xml +++ b/aws-serverless-java-container-struts/pom.xml @@ -187,9 +187,6 @@ ${dependencyCheck.version} true - - ${project.basedir}/../owasp-suppression.xml - 7 false diff --git a/owasp-suppression.xml b/owasp-suppression.xml deleted file mode 100644 index 83fde5815..000000000 --- a/owasp-suppression.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - cpe:/a:amazon_aws_project:amazon_aws:7.x-1.2::~~~drupal~~ - - - - cpe:/a:restful_web_services_project:restful_web_services:7.x-2.1::~~~drupal~~ - - - - ^pkg:maven/org\.springframework/spring.*$ - CVE-2016-1000027 - - \ No newline at end of file From e11700a70ad08d04ab5e9dc716372eb13bbace5e Mon Sep 17 00:00:00 2001 From: Artur Signell Date: Fri, 3 Feb 2023 16:00:43 +0200 Subject: [PATCH 115/623] fix: Provide correct mime type for javascript and css The correct mimetype for javascript is a requirement when loading javascript modules# --- .../proxy/internal/servlet/AwsServletContext.java | 7 ++++++- .../proxy/internal/servlet/AwsServletContextTest.java | 7 +++++++ 2 files changed, 13 insertions(+), 1 deletion(-) 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 1531315e9..3ffca36bf 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 @@ -167,7 +167,12 @@ public String getMimeType(String s) { if (mimeTypes == null) { mimeTypes = new MimetypesFileTypeMap(); } - + if (s.endsWith(".css")) { + return "text/css"; + } + if (s.endsWith(".js")) { + return "application/javascript"; + } // TODO: The getContentType method of the MimetypesFileTypeMap returns application/octet-stream // instead of null when the type cannot be found. We should replace with an implementation that // loads the System mime types ($JAVA_HOME/lib/mime.types diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsServletContextTest.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsServletContextTest.java index ed84462a5..4d61f428e 100644 --- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsServletContextTest.java +++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsServletContextTest.java @@ -65,6 +65,13 @@ void getMimeType_mimeTypeOfCorrectFile_expectMime() { mimeType = ctx.getMimeType("file://" + tmpFilePath); assertEquals("text/plain", mimeType); } + @Test + void getMimeType_mimeTypeOfJavascript_expectApplicationJavascript() { + String tmpFilePath = TMP_DIR + "some.js"; + AwsServletContext ctx = new AwsServletContext(null); + String mimeType = ctx.getMimeType(tmpFilePath); + assertEquals("application/javascript", mimeType); + } @Test void getMimeType_unknownExtension_expectAppOctetStream() { From 7d2a74c405eb89a390bfdad2c1f4b49c4987b9f2 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Mon, 6 Feb 2023 11:24:21 +0100 Subject: [PATCH 116/623] fix: provide more accurate result for content type --- .../internal/servlet/AwsServletContext.java | 36 +++++++++++++------ .../servlet/AwsServletContextTest.java | 2 +- 2 files changed, 26 insertions(+), 12 deletions(-) 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 3ffca36bf..0374c7a08 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 @@ -27,10 +27,14 @@ import jakarta.activation.MimetypesFileTypeMap; import java.io.File; +import java.io.IOException; import java.io.InputStream; import java.net.MalformedURLException; import java.net.URISyntaxException; import java.net.URL; +import java.nio.file.Files; +import java.nio.file.InvalidPathException; +import java.nio.file.Paths; import java.util.*; import java.util.stream.Collectors; @@ -160,23 +164,33 @@ public int getEffectiveMinorVersion() { @Override @SuppressFBWarnings("PATH_TRAVERSAL_IN") // suppressing because we are using the getValidFilePath - public String getMimeType(String s) { - if (s == null || !s.contains(".")) { + public String getMimeType(String file) { + if (file == null || !file.contains(".")) { return null; } + String mimeType = null; + try { + mimeType = Files.probeContentType(Paths.get(file)); + } catch (IOException | InvalidPathException e) { + log("unable to probe for content type, will use fallback", e); + } + + // MimetypesFileTypeMap is kept for backwards compatibility, remove in 2.0 if (mimeTypes == null) { mimeTypes = new MimetypesFileTypeMap(); } - if (s.endsWith(".css")) { - return "text/css"; + String backwardsCompatibleMimeType = mimeTypes.getContentType(file); + // The getContentType method of the MimetypesFileTypeMap + // returns MimetypesFileTypeMap.defaultType = application/octet-stream + // instead of null when the type cannot be found. + if (mimeType == null || (backwardsCompatibleMimeType != null && !backwardsCompatibleMimeType.equals(mimeType) + && !MediaType.APPLICATION_OCTET_STREAM.equals(backwardsCompatibleMimeType))) { + log("using type " + backwardsCompatibleMimeType + " from MimetypesFileTypeMap for " + file + + " instead of " + mimeType + " for backwards compatibility"); + mimeType = backwardsCompatibleMimeType; } - if (s.endsWith(".js")) { - return "application/javascript"; - } - // TODO: The getContentType method of the MimetypesFileTypeMap returns application/octet-stream - // instead of null when the type cannot be found. We should replace with an implementation that - // loads the System mime types ($JAVA_HOME/lib/mime.types - return mimeTypes.getContentType(s); + + return mimeType; } diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsServletContextTest.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsServletContextTest.java index 4d61f428e..04209e402 100644 --- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsServletContextTest.java +++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsServletContextTest.java @@ -70,7 +70,7 @@ void getMimeType_mimeTypeOfJavascript_expectApplicationJavascript() { String tmpFilePath = TMP_DIR + "some.js"; AwsServletContext ctx = new AwsServletContext(null); String mimeType = ctx.getMimeType(tmpFilePath); - assertEquals("application/javascript", mimeType); + assertEquals("text/javascript", mimeType); } @Test From 332a8c5f1e98727ce00c3275bd7c5c200bf23577 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Wed, 8 Feb 2023 16:38:41 +0100 Subject: [PATCH 117/623] fix: provide more accurate result for content type (another try as Files.probeContentType returns null on Lambda) --- .../internal/servlet/AwsServletContext.java | 38 ++++++++++--------- 1 file changed, 20 insertions(+), 18 deletions(-) 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 0374c7a08..46328ee70 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 @@ -27,14 +27,11 @@ import jakarta.activation.MimetypesFileTypeMap; import java.io.File; -import java.io.IOException; import java.io.InputStream; import java.net.MalformedURLException; import java.net.URISyntaxException; import java.net.URL; -import java.nio.file.Files; -import java.nio.file.InvalidPathException; -import java.nio.file.Paths; +import java.net.URLConnection; import java.util.*; import java.util.stream.Collectors; @@ -168,26 +165,31 @@ public String getMimeType(String file) { if (file == null || !file.contains(".")) { return null; } - String mimeType = null; - try { - mimeType = Files.probeContentType(Paths.get(file)); - } catch (IOException | InvalidPathException e) { - log("unable to probe for content type, will use fallback", e); - } - // MimetypesFileTypeMap is kept for backwards compatibility, remove in 2.0 + // this implementation would be nice but returns null on Lambda +// try { +// mimeType = Files.probeContentType(Paths.get(file)); +// } catch (IOException | InvalidPathException e) { +// log("unable to probe for content type, will use fallback", e); +// } + if (mimeTypes == null) { mimeTypes = new MimetypesFileTypeMap(); } - String backwardsCompatibleMimeType = mimeTypes.getContentType(file); + String mimeType = mimeTypes.getContentType(file); + // The getContentType method of the MimetypesFileTypeMap // returns MimetypesFileTypeMap.defaultType = application/octet-stream - // instead of null when the type cannot be found. - if (mimeType == null || (backwardsCompatibleMimeType != null && !backwardsCompatibleMimeType.equals(mimeType) - && !MediaType.APPLICATION_OCTET_STREAM.equals(backwardsCompatibleMimeType))) { - log("using type " + backwardsCompatibleMimeType + " from MimetypesFileTypeMap for " + file - + " instead of " + mimeType + " for backwards compatibility"); - mimeType = backwardsCompatibleMimeType; + // instead of null when the type cannot be found. trying to improve the result... + if (mimeType == null || MediaType.APPLICATION_OCTET_STREAM.equals(mimeType)) { + try { + String mimeTypeGuess = URLConnection.guessContentTypeFromName(new File(file).getName()); + if (mimeTypeGuess !=null) { + mimeType = mimeTypeGuess; + } + } catch (Exception e) { + log("couldn't find a better contentType than " + mimeType + " for file " + file, e); + } } return mimeType; From 0c0650edcdf2486868b91d473c7f0434daeccb0f Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Fri, 19 May 2023 11:14:24 +0200 Subject: [PATCH 118/623] fix: for 2.0 we return null instead of application/octet-stream if content type cannot be resolved (as per servlet-api docs), a fix to make probeContentType work in Lambda execution environment is being worked on by the Lambda service team --- aws-serverless-java-container-core/pom.xml | 5 ---- .../internal/servlet/AwsServletContext.java | 29 ++++++++----------- .../servlet/AwsServletContextTest.java | 4 +-- 3 files changed, 14 insertions(+), 24 deletions(-) diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml index ff6e4b710..21f73ae99 100644 --- a/aws-serverless-java-container-core/pom.xml +++ b/aws-serverless-java-container-core/pom.xml @@ -71,11 +71,6 @@ commons-fileupload2 2.0-SNAPSHOT - - org.eclipse.angus - angus-mail - 2.0.1 - org.apache.httpcomponents 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 46328ee70..5211e68df 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 @@ -17,23 +17,25 @@ import com.amazonaws.serverless.proxy.internal.SecurityUtils; import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; -import jakarta.activation.spi.MimeTypeRegistryProvider; + import org.slf4j.Logger; import org.slf4j.LoggerFactory; import jakarta.servlet.*; import jakarta.servlet.ServletContext; import jakarta.servlet.descriptor.JspConfigDescriptor; -import jakarta.activation.MimetypesFileTypeMap; import java.io.File; +import java.io.IOException; import java.io.InputStream; import java.net.MalformedURLException; import java.net.URISyntaxException; import java.net.URL; import java.net.URLConnection; +import java.nio.file.Files; +import java.nio.file.InvalidPathException; +import java.nio.file.Paths; import java.util.*; -import java.util.stream.Collectors; /** @@ -61,7 +63,6 @@ public class AwsServletContext private Map initParameters; private AwsLambdaServletContainerHandler containerHandler; private Logger log = LoggerFactory.getLogger(AwsServletContext.class); - private MimetypesFileTypeMap mimeTypes; // lazily loaded in the getMimeType method //------------------------------------------------------------- @@ -166,22 +167,16 @@ public String getMimeType(String file) { return null; } - // this implementation would be nice but returns null on Lambda -// try { -// mimeType = Files.probeContentType(Paths.get(file)); -// } catch (IOException | InvalidPathException e) { -// log("unable to probe for content type, will use fallback", e); -// } + String mimeType = null; - if (mimeTypes == null) { - mimeTypes = new MimetypesFileTypeMap(); + // may not work on Lambda until mailcap package is present https://github.com/awslabs/aws-serverless-java-container/pull/504 + try { + mimeType = Files.probeContentType(Paths.get(file)); + } catch (IOException | InvalidPathException e) { + log("unable to probe for content type, will use fallback", e); } - String mimeType = mimeTypes.getContentType(file); - // The getContentType method of the MimetypesFileTypeMap - // returns MimetypesFileTypeMap.defaultType = application/octet-stream - // instead of null when the type cannot be found. trying to improve the result... - if (mimeType == null || MediaType.APPLICATION_OCTET_STREAM.equals(mimeType)) { + if (mimeType == null) { try { String mimeTypeGuess = URLConnection.guessContentTypeFromName(new File(file).getName()); if (mimeTypeGuess !=null) { diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsServletContextTest.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsServletContextTest.java index 04209e402..58d0b0542 100644 --- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsServletContextTest.java +++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsServletContextTest.java @@ -74,10 +74,10 @@ void getMimeType_mimeTypeOfJavascript_expectApplicationJavascript() { } @Test - void getMimeType_unknownExtension_expectAppOctetStream() { + void getMimeType_unknownExtension_expectNull() { AwsServletContext ctx = new AwsServletContext(null); String mimeType = ctx.getMimeType("myfile.unkext"); - assertEquals("application/octet-stream", mimeType); + assertNull(mimeType); } From 04d8509172ebf17fcfdad5952c154175ae2dba6f Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Fri, 19 May 2023 13:37:54 +0200 Subject: [PATCH 119/623] test: move to Apache HTTP Client 5 for testing --- aws-serverless-java-container-core/pom.xml | 19 ------------------- .../internal/LambdaContainerHandlerTest.java | 2 +- .../AwsProxyHttpServletRequestFormTest.java | 10 +++++----- .../testutils/AwsProxyRequestBuilder.java | 15 ++++++++------- .../archetype-resources/build.gradle | 1 + .../resources/archetype-resources/pom.xml | 6 ++++++ .../archetype-resources/build.gradle | 1 + .../resources/archetype-resources/pom.xml | 6 ++++++ .../archetype-resources/build.gradle | 1 + .../resources/archetype-resources/pom.xml | 6 ++++++ .../archetype-resources/build.gradle | 1 + .../resources/archetype-resources/pom.xml | 6 ++++++ .../archetype-resources/build.gradle | 1 + .../resources/archetype-resources/pom.xml | 6 ++++++ pom.xml | 7 +++++++ 15 files changed, 56 insertions(+), 32 deletions(-) diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml index 21f73ae99..9d8b5a138 100644 --- a/aws-serverless-java-container-core/pom.xml +++ b/aws-serverless-java-container-core/pom.xml @@ -72,25 +72,6 @@ 2.0-SNAPSHOT - - org.apache.httpcomponents - httpmime - 4.5.14 - compile - - - - org.apache.httpcomponents.client5 - httpclient5 - 5.2.1 - test - - - org.apache.httpcomponents.core5 - httpcore5 - 5.2.1 - test - org.springframework.security spring-security-web diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/LambdaContainerHandlerTest.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/LambdaContainerHandlerTest.java index 98b45fd1b..d6af5112e 100644 --- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/LambdaContainerHandlerTest.java +++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/LambdaContainerHandlerTest.java @@ -10,7 +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.apache.http.impl.execchain.RequestAbortedException; +import org.apache.hc.client5.http.impl.classic.RequestAbortedException; import org.junit.jupiter.api.Test; import jakarta.servlet.http.HttpServletRequest; 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 07a2f410e..79bfa6cd3 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 @@ -5,9 +5,9 @@ import com.amazonaws.serverless.proxy.internal.testutils.AwsProxyRequestBuilder; import org.apache.commons.io.IOUtils; -import org.apache.http.HttpEntity; -import org.apache.http.entity.ContentType; -import org.apache.http.entity.mime.MultipartEntityBuilder; +import org.apache.hc.core5.http.ContentType; +import org.apache.hc.core5.http.HttpEntity; +import org.apache.hc.client5.http.entity.mime.MultipartEntityBuilder;; import org.junit.jupiter.api.Test; import jakarta.servlet.ServletException; @@ -71,7 +71,7 @@ void postForm_getParam_getEncodedFullValue() { void postForm_getParts_parsing() { try { AwsProxyRequest proxyRequest = new AwsProxyRequestBuilder("/form", "POST") - .header(MULTIPART_FORM_DATA.getContentType().getName(), MULTIPART_FORM_DATA.getContentType().getValue()) + .header(HttpHeaders.CONTENT_TYPE, MULTIPART_FORM_DATA.getContentType()) //.header(formData.getContentEncoding().getName(), formData.getContentEncoding().getValue()) .body(IOUtils.toString(MULTIPART_FORM_DATA.getContent(), Charset.defaultCharset())) .build(); @@ -90,7 +90,7 @@ void postForm_getParts_parsing() { void multipart_getParts_binary() { try { AwsProxyRequest proxyRequest = new AwsProxyRequestBuilder("/form", "POST") - .header(MULTIPART_BINARY_DATA.getContentType().getName(), MULTIPART_BINARY_DATA.getContentType().getValue()) + .header(HttpHeaders.CONTENT_TYPE, MULTIPART_BINARY_DATA.getContentType()) .header(HttpHeaders.CONTENT_LENGTH, MULTIPART_BINARY_DATA.getContentLength() + "") .binaryBody(MULTIPART_BINARY_DATA.getContent()) .build(); 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 adcebb89d..9df66a891 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 @@ -18,10 +18,11 @@ import com.fasterxml.jackson.core.JsonProcessingException; import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import org.apache.commons.io.IOUtils; -import org.apache.http.HttpEntity; -import org.apache.http.entity.mime.MultipartEntityBuilder; -import org.apache.http.entity.mime.content.ByteArrayBody; -import org.apache.http.entity.mime.content.StringBody; +import org.apache.hc.core5.http.ContentType; +import org.apache.hc.core5.http.HttpEntity; +import org.apache.hc.client5.http.entity.mime.MultipartEntityBuilder; +import org.apache.hc.client5.http.entity.mime.ByteArrayBody; +import org.apache.hc.client5.http.entity.mime.StringBody; import jakarta.ws.rs.core.HttpHeaders; import jakarta.ws.rs.core.MediaType; @@ -162,7 +163,7 @@ public AwsProxyRequestBuilder formFilePart(String fieldName, String fileName, by return this; } - public AwsProxyRequestBuilder formFieldPart(String fieldName, String fieldValue) + public AwsProxyRequestBuilder formTextFieldPart(String fieldName, String fieldValue) throws IOException { if (request.getMultiValueHeaders() == null) { request.setMultiValueHeaders(new Headers()); @@ -170,7 +171,7 @@ public AwsProxyRequestBuilder formFieldPart(String fieldName, String fieldValue) if (multipartBuilder == null) { multipartBuilder = MultipartEntityBuilder.create(); } - multipartBuilder.addPart(fieldName, new StringBody(fieldValue)); + multipartBuilder.addPart(fieldName, new StringBody(fieldValue, ContentType.TEXT_PLAIN)); buildMultipartBody(); return this; } @@ -188,7 +189,7 @@ private void buildMultipartBody() request.setBody(Base64.getMimeEncoder().encodeToString(finalBuffer)); request.setIsBase64Encoded(true); this.request.setMultiValueHeaders(new Headers()); - header(HttpHeaders.CONTENT_TYPE, bodyEntity.getContentType().getValue()); + header(HttpHeaders.CONTENT_TYPE, bodyEntity.getContentType()); header(HttpHeaders.CONTENT_LENGTH, bodyEntity.getContentLength() + ""); } 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 bf493c5bb..3b18be4cf 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,6 +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("junit:junit:4.13.2") } 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 8dde5e32f..4196c83e4 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 @@ -33,6 +33,12 @@ test-jar test + + org.apache.httpcomponents.client5 + httpclient5 + 5.2.1 + test + org.glassfish.jersey.media 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 3cd7c716c..b2d0dbe0f 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 @@ -13,6 +13,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("junit:junit:4.13.2") } 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 a09d35556..a4281cde3 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 @@ -34,6 +34,12 @@ test-jar test + + org.apache.httpcomponents.client5 + httpclient5 + 5.2.1 + test + com.sparkjava 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 693cd2ab0..45f39c264 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,6 +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("junit:junit:4.13.2") } 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 f3f283cfa..d7e6e5637 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 @@ -35,6 +35,12 @@ test-jar test + + org.apache.httpcomponents.client5 + httpclient5 + 5.2.1 + test + org.springframework 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 2c8bf5ca1..94897b2d6 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 @@ -12,6 +12,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("junit:junit:4.13.2") } 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 9bb3ee083..745498e5e 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 @@ -37,6 +37,12 @@ test-jar test + + org.apache.httpcomponents.client5 + httpclient5 + 5.2.1 + test + org.springframework.boot 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 6e3237854..71f270097 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,6 +42,7 @@ dependencies { implementation ('com.amazonaws:aws-lambda-java-log4j2:1.5.1') testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests") + testImplementation("org.apache.httpcomponents.client5:httpclient5:5.2.1") testImplementation('junit:junit:4.13.2') testImplementation('org.apache.struts:struts2-junit-plugin:6.1.2') { 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 e26888928..bb558e1cb 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 @@ -35,6 +35,12 @@ test-jar test + + org.apache.httpcomponents.client5 + httpclient5 + 5.2.1 + test + org.apache.struts diff --git a/pom.xml b/pom.xml index 5dc367525..84dd89610 100644 --- a/pom.xml +++ b/pom.xml @@ -116,6 +116,13 @@ test + + org.apache.httpcomponents.client5 + httpclient5 + 5.2.1 + test + + org.mockito mockito-core From 9c05f8527b7cc50f8be88b09feea2b81590606ce Mon Sep 17 00:00:00 2001 From: mbfreder Date: Fri, 28 Apr 2023 14:22:26 -0700 Subject: [PATCH 120/623] refactor: temporarily removing fileupload support until release version is available (https://issues.apache.org/jira/browse/FILEUPLOAD-309) --- aws-serverless-java-container-core/pom.xml | 6 +-- .../servlet/AwsHttpServletRequest.java | 39 +------------------ .../AwsProxyHttpServletRequestFormTest.java | 6 ++- .../testutils/AwsProxyRequestBuilder.java | 7 +--- .../proxy/jersey/JerseyParamEncodingTest.java | 1 + .../proxy/spring/SpringAwsProxyTest.java | 2 + 6 files changed, 13 insertions(+), 48 deletions(-) diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml index 9d8b5a138..26bafa9a3 100644 --- a/aws-serverless-java-container-core/pom.xml +++ b/aws-serverless-java-container-core/pom.xml @@ -67,9 +67,9 @@ - org.apache.commons - commons-fileupload2 - 2.0-SNAPSHOT + commons-io + commons-io + 2.11.0 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 99b2782c5..44fd84a96 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,11 +22,6 @@ 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.FileItem; -import org.apache.commons.fileupload2.FileUploadException; -import org.apache.commons.fileupload2.disk.DiskFileItemFactory; -import org.apache.commons.fileupload2.jaksrvlt.JakSrvltFileUpload; -import org.apache.commons.io.FilenameUtils; import org.apache.commons.io.IOUtils; import org.apache.commons.io.input.NullInputStream; import org.slf4j.Logger; @@ -508,39 +503,7 @@ protected Map> getFormUrlEncodedParametersMap() { @SuppressFBWarnings({"FILE_UPLOAD_FILENAME", "WEAK_FILENAMEUTILS"}) protected Map getMultipartFormParametersMap() { - if (multipartFormParameters != null) { - return multipartFormParameters; - } - if (!JakSrvltFileUpload.isMultipartContent(this)) { // isMultipartContent also checks the content type - multipartFormParameters = new HashMap<>(); - return multipartFormParameters; - } - Timer.start("SERVLET_REQUEST_GET_MULTIPART_PARAMS"); - multipartFormParameters = new TreeMap<>(String.CASE_INSENSITIVE_ORDER); - - JakSrvltFileUpload upload = new JakSrvltFileUpload(new DiskFileItemFactory()); - - try { - List items = upload.parseRequest(this); - for (FileItem 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)); - }); - - multipartFormParameters.put(item.getFieldName(), newPart); - } - } catch (FileUploadException e) { - Timer.stop("SERVLET_REQUEST_GET_MULTIPART_PARAMS"); - log.error("Could not read multipart upload file", e); - } - Timer.stop("SERVLET_REQUEST_GET_MULTIPART_PARAMS"); - return multipartFormParameters; + throw new UnsupportedOperationException(); } protected String[] getQueryParamValues(MultiValuedTreeMap qs, String key, boolean isCaseSensitive) { 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 79bfa6cd3..efe32ba2a 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 @@ -7,7 +7,8 @@ import org.apache.commons.io.IOUtils; import org.apache.hc.core5.http.ContentType; import org.apache.hc.core5.http.HttpEntity; -import org.apache.hc.client5.http.entity.mime.MultipartEntityBuilder;; +import org.apache.hc.client5.http.entity.mime.MultipartEntityBuilder; +import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import jakarta.servlet.ServletException; @@ -51,6 +52,7 @@ public class AwsProxyHttpServletRequestFormTest { .build(); private static final String ENCODED_FORM_ENTITY = PART_KEY_1 + "=" + ENCODED_VALUE + "&" + PART_KEY_2 + "=" + PART_VALUE_2; + @Disabled("Disabled until new release of commons-fileupload based on Jakarta APIs") @Test void postForm_getParam_getEncodedFullValue() { try { @@ -67,6 +69,7 @@ void postForm_getParam_getEncodedFullValue() { } } + @Disabled("Disabled until new release of commons-fileupload based on Jakarta APIs") @Test void postForm_getParts_parsing() { try { @@ -86,6 +89,7 @@ void postForm_getParts_parsing() { } } + @Disabled("Disabled until new release of commons-fileupload based on Jakarta APIs") @Test void multipart_getParts_binary() { try { 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..725fada8f 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 @@ -155,12 +155,7 @@ public AwsProxyRequestBuilder form(String key, String value) { } public AwsProxyRequestBuilder formFilePart(String fieldName, String fileName, byte[] content) throws IOException { - if (multipartBuilder == null) { - multipartBuilder = MultipartEntityBuilder.create(); - } - multipartBuilder.addPart(fieldName, new ByteArrayBody(content, fileName)); - buildMultipartBody(); - return this; + throw new UnsupportedOperationException(); } public AwsProxyRequestBuilder formTextFieldPart(String fieldName, String fieldValue) diff --git a/aws-serverless-java-container-jersey/src/test/java/com/amazonaws/serverless/proxy/jersey/JerseyParamEncodingTest.java b/aws-serverless-java-container-jersey/src/test/java/com/amazonaws/serverless/proxy/jersey/JerseyParamEncodingTest.java index 9dc1ab32a..6c575da6c 100644 --- a/aws-serverless-java-container-jersey/src/test/java/com/amazonaws/serverless/proxy/jersey/JerseyParamEncodingTest.java +++ b/aws-serverless-java-container-jersey/src/test/java/com/amazonaws/serverless/proxy/jersey/JerseyParamEncodingTest.java @@ -263,6 +263,7 @@ void queryParam_listOfString_expectCorrectLength(String reqType) { validateSingleValueModel(resp, "3"); } + @Disabled("Disabled until new release of commons-fileupload based on Jakarta APIs") @MethodSource("data") @ParameterizedTest void multipart_getFileSize_expectCorrectLength(String reqType) 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..f78d43812 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 @@ -19,6 +19,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; import org.apache.commons.codec.binary.Base64; import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Disabled; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; import org.springframework.web.servlet.DispatcherServlet; @@ -468,6 +469,7 @@ void contextPath_generateLink_returnsCorrectPath(String reqType) { SpringLambdaContainerHandler.getContainerConfig().setUseStageAsServletContext(false); } + @Disabled("Disabled until new release of commons-fileupload based on Jakarta APIs") @MethodSource("data") @ParameterizedTest void multipart_getFileName_returnsCorrectFileName(String reqType) From ac04f4c0044bcdc8810663730bdf1d196fbd45ea Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Fri, 19 May 2023 13:57:43 +0200 Subject: [PATCH 121/623] chore(deps): Update Commons IO dependency to 2.12.0 --- aws-serverless-java-container-core/pom.xml | 2 +- aws-serverless-java-container-struts/pom.xml | 5 ----- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml index 26bafa9a3..0da33fdd1 100644 --- a/aws-serverless-java-container-core/pom.xml +++ b/aws-serverless-java-container-core/pom.xml @@ -69,7 +69,7 @@ commons-io commons-io - 2.11.0 + 2.12.0 diff --git a/aws-serverless-java-container-struts/pom.xml b/aws-serverless-java-container-struts/pom.xml index ee1784d78..d38edb3c9 100644 --- a/aws-serverless-java-container-struts/pom.xml +++ b/aws-serverless-java-container-struts/pom.xml @@ -94,11 +94,6 @@ - - commons-io - commons-io - 2.11.0 - org.apache.commons commons-text From c8c62f4f6abf40bb554d98bdb3dc6f7d8ff77470 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Fri, 19 May 2023 14:32:58 +0200 Subject: [PATCH 122/623] chore: Use Corretto 17 for release builds --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 64ec8e2d5..7ff2bea79 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -23,7 +23,7 @@ jobs: uses: actions/setup-java@v3 with: distribution: 'corretto' - java-version: 8 + java-version: 17 server-id: sonatype-nexus-staging server-username: MAVEN_USERNAME server-password: MAVEN_PASSWORD From 411214de82c9c838a0d7b550a14dd093e6b356b3 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Fri, 19 May 2023 15:29:33 +0200 Subject: [PATCH 123/623] chore: Maven release plugin configuration --- pom.xml | 2 -- 1 file changed, 2 deletions(-) diff --git a/pom.xml b/pom.xml index 84dd89610..1dd7c8afb 100644 --- a/pom.xml +++ b/pom.xml @@ -238,8 +238,6 @@ maven-release-plugin 3.0.0 - clean verify install - true chore: release - From 0e13fda7746c1e5256eae275507ebd6356e14a9d Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Fri, 19 May 2023 15:39:48 +0200 Subject: [PATCH 124/623] chore: Maven release plugin configuration --- pom.xml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 1dd7c8afb..5931bd956 100644 --- a/pom.xml +++ b/pom.xml @@ -236,8 +236,10 @@ org.apache.maven.plugins maven-release-plugin - 3.0.0 + 2.5.3 + clean verify install + true chore: release - From 21eeec525ab4fef6958e157cce8e8a4a7d0a3ca0 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Fri, 19 May 2023 16:01:40 +0200 Subject: [PATCH 125/623] chore: Maven release plugin configuration (avoid archetype integ tests run twice) --- aws-serverless-jersey-archetype/pom.xml | 7 ------- aws-serverless-spring-archetype/pom.xml | 7 ------- aws-serverless-springboot3-archetype/pom.xml | 7 ------- pom.xml | 3 ++- 4 files changed, 2 insertions(+), 22 deletions(-) diff --git a/aws-serverless-jersey-archetype/pom.xml b/aws-serverless-jersey-archetype/pom.xml index 51c855ac6..315007019 100644 --- a/aws-serverless-jersey-archetype/pom.xml +++ b/aws-serverless-jersey-archetype/pom.xml @@ -66,13 +66,6 @@ org.apache.maven.plugins maven-archetype-plugin 3.2.1 - - - - integration-test - - - diff --git a/aws-serverless-spring-archetype/pom.xml b/aws-serverless-spring-archetype/pom.xml index 3a17f1676..178e0de01 100644 --- a/aws-serverless-spring-archetype/pom.xml +++ b/aws-serverless-spring-archetype/pom.xml @@ -67,13 +67,6 @@ org.apache.maven.plugins maven-archetype-plugin 3.2.1 - - - - integration-test - - - diff --git a/aws-serverless-springboot3-archetype/pom.xml b/aws-serverless-springboot3-archetype/pom.xml index 21e176026..62efb1a20 100644 --- a/aws-serverless-springboot3-archetype/pom.xml +++ b/aws-serverless-springboot3-archetype/pom.xml @@ -66,13 +66,6 @@ org.apache.maven.plugins maven-archetype-plugin 3.2.1 - - - - integration-test - - - diff --git a/pom.xml b/pom.xml index 5931bd956..592f43b40 100644 --- a/pom.xml +++ b/pom.xml @@ -236,11 +236,12 @@ org.apache.maven.plugins maven-release-plugin - 2.5.3 + 3.0.0 clean verify install true chore: release - + true From 2fdb951dd3300de9f2d7ef1a23544098e8d96013 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Fri, 19 May 2023 16:14:25 +0200 Subject: [PATCH 126/623] chore: Maven release plugin configuration (downgrade maven-archetype-plugin to fix integ-tests) --- aws-serverless-jersey-archetype/pom.xml | 9 ++++++++- aws-serverless-spring-archetype/pom.xml | 9 ++++++++- aws-serverless-springboot3-archetype/pom.xml | 9 ++++++++- 3 files changed, 24 insertions(+), 3 deletions(-) diff --git a/aws-serverless-jersey-archetype/pom.xml b/aws-serverless-jersey-archetype/pom.xml index 315007019..d2bace461 100644 --- a/aws-serverless-jersey-archetype/pom.xml +++ b/aws-serverless-jersey-archetype/pom.xml @@ -65,7 +65,14 @@ org.apache.maven.plugins maven-archetype-plugin - 3.2.1 + 3.0.1 + + + + integration-test + + + diff --git a/aws-serverless-spring-archetype/pom.xml b/aws-serverless-spring-archetype/pom.xml index 178e0de01..6f5f2d7d6 100644 --- a/aws-serverless-spring-archetype/pom.xml +++ b/aws-serverless-spring-archetype/pom.xml @@ -66,7 +66,14 @@ org.apache.maven.plugins maven-archetype-plugin - 3.2.1 + 3.0.1 + + + + integration-test + + + diff --git a/aws-serverless-springboot3-archetype/pom.xml b/aws-serverless-springboot3-archetype/pom.xml index 62efb1a20..09c1617be 100644 --- a/aws-serverless-springboot3-archetype/pom.xml +++ b/aws-serverless-springboot3-archetype/pom.xml @@ -65,7 +65,14 @@ org.apache.maven.plugins maven-archetype-plugin - 3.2.1 + 3.0.1 + + + + integration-test + + + From 49cd3204b61605729de6d9364e5bb6b400555e69 Mon Sep 17 00:00:00 2001 From: deki Date: Fri, 19 May 2023 14:22:34 +0000 Subject: [PATCH 127/623] chore: release - prepare release aws-serverless-java-container-2.0.0-M1 --- 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 0da33fdd1..819cce1d6 100644 --- a/aws-serverless-java-container-core/pom.xml +++ b/aws-serverless-java-container-core/pom.xml @@ -6,12 +6,12 @@ AWS Serverless Java container support - Core Allows Java applications written for a servlet container to run in AWS Lambda https://aws.amazon.com/lambda - 2.0-SNAPSHOT + 2.0.0-M1 com.amazonaws.serverless aws-serverless-java-container - 2.0-SNAPSHOT + 2.0.0-M1 .. diff --git a/aws-serverless-java-container-jersey/pom.xml b/aws-serverless-java-container-jersey/pom.xml index 4ae4c7320..b54d00011 100644 --- a/aws-serverless-java-container-jersey/pom.xml +++ b/aws-serverless-java-container-jersey/pom.xml @@ -6,12 +6,12 @@ AWS Serverless Java container support - Jersey implementation Allows Java applications written for Jersey to run in AWS Lambda https://aws.amazon.com/lambda - 2.0-SNAPSHOT + 2.0.0-M1 com.amazonaws.serverless aws-serverless-java-container - 2.0-SNAPSHOT + 2.0.0-M1 .. @@ -24,7 +24,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.0-SNAPSHOT + 2.0.0-M1 com.fasterxml.jackson.core @@ -35,7 +35,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.0-SNAPSHOT + 2.0.0-M1 tests test-jar test diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml index b83b4742b..fb7ac7423 100644 --- a/aws-serverless-java-container-spring/pom.xml +++ b/aws-serverless-java-container-spring/pom.xml @@ -6,12 +6,12 @@ AWS Serverless Java container support - Spring implementation Allows Java applications written for the Spring framework to run in AWS Lambda https://aws.amazon.com/lambda - 2.0-SNAPSHOT + 2.0.0-M1 com.amazonaws.serverless aws-serverless-java-container - 2.0-SNAPSHOT + 2.0.0-M1 .. @@ -25,12 +25,12 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.0-SNAPSHOT + 2.0.0-M1 com.amazonaws.serverless aws-serverless-java-container-core - 2.0-SNAPSHOT + 2.0.0-M1 tests test-jar test diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml index 5349fc532..89a7d24d6 100644 --- a/aws-serverless-java-container-springboot3/pom.xml +++ b/aws-serverless-java-container-springboot3/pom.xml @@ -3,7 +3,7 @@ aws-serverless-java-container com.amazonaws.serverless - 2.0-SNAPSHOT + 2.0.0-M1 4.0.0 @@ -12,7 +12,7 @@ AWS Serverless Java container support - SpringBoot 3 implementation Allows Java applications written for SpringBoot 3 to run in AWS Lambda https://aws.amazon.com/lambda - 2.0-SNAPSHOT + 2.0.0-M1 6.0.9 @@ -25,12 +25,12 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.0-SNAPSHOT + 2.0.0-M1 com.amazonaws.serverless aws-serverless-java-container-core - 2.0-SNAPSHOT + 2.0.0-M1 tests test-jar test diff --git a/aws-serverless-jersey-archetype/pom.xml b/aws-serverless-jersey-archetype/pom.xml index d2bace461..7e21a9d2a 100644 --- a/aws-serverless-jersey-archetype/pom.xml +++ b/aws-serverless-jersey-archetype/pom.xml @@ -4,17 +4,17 @@ com.amazonaws.serverless aws-serverless-java-container - 2.0-SNAPSHOT + 2.0.0-M1 com.amazonaws.serverless.archetypes aws-serverless-jersey-archetype - 2.0-SNAPSHOT + 2.0.0-M1 maven-archetype https://github.com/awslabs/aws-serverless-java-container.git - HEAD + aws-serverless-java-container-2.0.0-M1 diff --git a/aws-serverless-spring-archetype/pom.xml b/aws-serverless-spring-archetype/pom.xml index 6f5f2d7d6..e6026b8a9 100644 --- a/aws-serverless-spring-archetype/pom.xml +++ b/aws-serverless-spring-archetype/pom.xml @@ -4,17 +4,17 @@ com.amazonaws.serverless aws-serverless-java-container - 2.0-SNAPSHOT + 2.0.0-M1 com.amazonaws.serverless.archetypes aws-serverless-spring-archetype - 2.0-SNAPSHOT + 2.0.0-M1 maven-archetype https://github.com/awslabs/aws-serverless-java-container.git - HEAD + aws-serverless-java-container-2.0.0-M1 diff --git a/aws-serverless-springboot3-archetype/pom.xml b/aws-serverless-springboot3-archetype/pom.xml index 09c1617be..abf8a9a5a 100644 --- a/aws-serverless-springboot3-archetype/pom.xml +++ b/aws-serverless-springboot3-archetype/pom.xml @@ -4,17 +4,17 @@ com.amazonaws.serverless aws-serverless-java-container - 2.0-SNAPSHOT + 2.0.0-M1 com.amazonaws.serverless.archetypes aws-serverless-springboot3-archetype - 2.0-SNAPSHOT + 2.0.0-M1 maven-archetype https://github.com/awslabs/aws-serverless-java-container.git - HEAD + aws-serverless-java-container-2.0.0-M1 diff --git a/pom.xml b/pom.xml index 592f43b40..a2185f054 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.amazonaws.serverless aws-serverless-java-container pom - 2.0-SNAPSHOT + 2.0.0-M1 AWS Serverless Java container A Java framework to run Spring, Spring Boot, Jersey, Spark, and Struts applications inside AWS Lambda https://github.com/awslabs/aws-serverless-java-container @@ -37,7 +37,7 @@ https://github.com/awslabs/aws-serverless-java-container scm:git:https://github.com/awslabs/aws-serverless-java-container.git - HEAD + aws-serverless-java-container-2.0.0-M1 From 6271330c1bcaa6bcf250e4d08febb50cc71f8252 Mon Sep 17 00:00:00 2001 From: deki Date: Fri, 19 May 2023 14:22:36 +0000 Subject: [PATCH 128/623] 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 819cce1d6..3693ded88 100644 --- a/aws-serverless-java-container-core/pom.xml +++ b/aws-serverless-java-container-core/pom.xml @@ -6,12 +6,12 @@ AWS Serverless Java container support - Core Allows Java applications written for a servlet container to run in AWS Lambda https://aws.amazon.com/lambda - 2.0.0-M1 + 2.0.0-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container - 2.0.0-M1 + 2.0.0-SNAPSHOT .. diff --git a/aws-serverless-java-container-jersey/pom.xml b/aws-serverless-java-container-jersey/pom.xml index b54d00011..d4e9f42a8 100644 --- a/aws-serverless-java-container-jersey/pom.xml +++ b/aws-serverless-java-container-jersey/pom.xml @@ -6,12 +6,12 @@ AWS Serverless Java container support - Jersey implementation Allows Java applications written for Jersey to run in AWS Lambda https://aws.amazon.com/lambda - 2.0.0-M1 + 2.0.0-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container - 2.0.0-M1 + 2.0.0-SNAPSHOT .. @@ -24,7 +24,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.0.0-M1 + 2.0.0-SNAPSHOT com.fasterxml.jackson.core @@ -35,7 +35,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.0.0-M1 + 2.0.0-SNAPSHOT tests test-jar test diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml index fb7ac7423..c734576a4 100644 --- a/aws-serverless-java-container-spring/pom.xml +++ b/aws-serverless-java-container-spring/pom.xml @@ -6,12 +6,12 @@ AWS Serverless Java container support - Spring implementation Allows Java applications written for the Spring framework to run in AWS Lambda https://aws.amazon.com/lambda - 2.0.0-M1 + 2.0.0-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container - 2.0.0-M1 + 2.0.0-SNAPSHOT .. @@ -25,12 +25,12 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.0.0-M1 + 2.0.0-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container-core - 2.0.0-M1 + 2.0.0-SNAPSHOT tests test-jar test diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml index 89a7d24d6..8e7d42a04 100644 --- a/aws-serverless-java-container-springboot3/pom.xml +++ b/aws-serverless-java-container-springboot3/pom.xml @@ -3,7 +3,7 @@ aws-serverless-java-container com.amazonaws.serverless - 2.0.0-M1 + 2.0.0-SNAPSHOT 4.0.0 @@ -12,7 +12,7 @@ AWS Serverless Java container support - SpringBoot 3 implementation Allows Java applications written for SpringBoot 3 to run in AWS Lambda https://aws.amazon.com/lambda - 2.0.0-M1 + 2.0.0-SNAPSHOT 6.0.9 @@ -25,12 +25,12 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.0.0-M1 + 2.0.0-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container-core - 2.0.0-M1 + 2.0.0-SNAPSHOT tests test-jar test diff --git a/aws-serverless-jersey-archetype/pom.xml b/aws-serverless-jersey-archetype/pom.xml index 7e21a9d2a..e328fee77 100644 --- a/aws-serverless-jersey-archetype/pom.xml +++ b/aws-serverless-jersey-archetype/pom.xml @@ -4,17 +4,17 @@ com.amazonaws.serverless aws-serverless-java-container - 2.0.0-M1 + 2.0.0-SNAPSHOT com.amazonaws.serverless.archetypes aws-serverless-jersey-archetype - 2.0.0-M1 + 2.0.0-SNAPSHOT maven-archetype https://github.com/awslabs/aws-serverless-java-container.git - aws-serverless-java-container-2.0.0-M1 + HEAD diff --git a/aws-serverless-spring-archetype/pom.xml b/aws-serverless-spring-archetype/pom.xml index e6026b8a9..747ff0838 100644 --- a/aws-serverless-spring-archetype/pom.xml +++ b/aws-serverless-spring-archetype/pom.xml @@ -4,17 +4,17 @@ com.amazonaws.serverless aws-serverless-java-container - 2.0.0-M1 + 2.0.0-SNAPSHOT com.amazonaws.serverless.archetypes aws-serverless-spring-archetype - 2.0.0-M1 + 2.0.0-SNAPSHOT maven-archetype https://github.com/awslabs/aws-serverless-java-container.git - aws-serverless-java-container-2.0.0-M1 + HEAD diff --git a/aws-serverless-springboot3-archetype/pom.xml b/aws-serverless-springboot3-archetype/pom.xml index abf8a9a5a..8f478b223 100644 --- a/aws-serverless-springboot3-archetype/pom.xml +++ b/aws-serverless-springboot3-archetype/pom.xml @@ -4,17 +4,17 @@ com.amazonaws.serverless aws-serverless-java-container - 2.0.0-M1 + 2.0.0-SNAPSHOT com.amazonaws.serverless.archetypes aws-serverless-springboot3-archetype - 2.0.0-M1 + 2.0.0-SNAPSHOT maven-archetype https://github.com/awslabs/aws-serverless-java-container.git - aws-serverless-java-container-2.0.0-M1 + HEAD diff --git a/pom.xml b/pom.xml index a2185f054..55d546b05 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.amazonaws.serverless aws-serverless-java-container pom - 2.0.0-M1 + 2.0.0-SNAPSHOT AWS Serverless Java container A Java framework to run Spring, Spring Boot, Jersey, Spark, and Struts applications inside AWS Lambda https://github.com/awslabs/aws-serverless-java-container @@ -37,7 +37,7 @@ https://github.com/awslabs/aws-serverless-java-container scm:git:https://github.com/awslabs/aws-serverless-java-container.git - aws-serverless-java-container-2.0.0-M1 + HEAD From d04202ecaafe3663540e792cbede96c0ac224bbe Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Fri, 19 May 2023 16:35:44 +0200 Subject: [PATCH 129/623] chore: set next version to 2.0.0-SNAPSHOT (although Spark/ Struts are currently not being build for 2.x) --- aws-serverless-java-container-spark/pom.xml | 6 +++--- aws-serverless-java-container-struts/pom.xml | 6 +++--- aws-serverless-spark-archetype/pom.xml | 4 ++-- aws-serverless-struts-archetype/pom.xml | 4 ++-- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/aws-serverless-java-container-spark/pom.xml b/aws-serverless-java-container-spark/pom.xml index 3a5547ea5..8dd1abe28 100644 --- a/aws-serverless-java-container-spark/pom.xml +++ b/aws-serverless-java-container-spark/pom.xml @@ -6,12 +6,12 @@ AWS Serverless Java container support - Spark implementation Allows Java applications written for Spark to run in AWS Lambda https://aws.amazon.com/lambda - 1.10-SNAPSHOT + 2.0.0-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container - 1.10-SNAPSHOT + 2.0.0-SNAPSHOT .. @@ -24,7 +24,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 1.10-SNAPSHOT + 2.0.0-SNAPSHOT diff --git a/aws-serverless-java-container-struts/pom.xml b/aws-serverless-java-container-struts/pom.xml index d38edb3c9..4f1c10b7f 100644 --- a/aws-serverless-java-container-struts/pom.xml +++ b/aws-serverless-java-container-struts/pom.xml @@ -6,12 +6,12 @@ AWS Serverless Java container support - Struts implementation Allows Java applications written for the Struts framework to run in AWS Lambda https://aws.amazon.com/lambda - 1.10-SNAPSHOT + 2.0.0-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container - 1.10-SNAPSHOT + 2.0.0-SNAPSHOT @@ -23,7 +23,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 1.10-SNAPSHOT + 2.0.0-SNAPSHOT diff --git a/aws-serverless-spark-archetype/pom.xml b/aws-serverless-spark-archetype/pom.xml index ca3ad3952..90dcabf45 100644 --- a/aws-serverless-spark-archetype/pom.xml +++ b/aws-serverless-spark-archetype/pom.xml @@ -4,12 +4,12 @@ com.amazonaws.serverless aws-serverless-java-container - 1.10-SNAPSHOT + 2.0.0-SNAPSHOT com.amazonaws.serverless.archetypes aws-serverless-spark-archetype - 1.10-SNAPSHOT + 2.0.0-SNAPSHOT maven-archetype diff --git a/aws-serverless-struts-archetype/pom.xml b/aws-serverless-struts-archetype/pom.xml index b91cfa4bd..1d0e078af 100644 --- a/aws-serverless-struts-archetype/pom.xml +++ b/aws-serverless-struts-archetype/pom.xml @@ -4,12 +4,12 @@ com.amazonaws.serverless aws-serverless-java-container - 1.10-SNAPSHOT + 2.0.0-SNAPSHOT com.amazonaws.serverless.archetypes aws-serverless-struts-archetype - 1.10-SNAPSHOT + 2.0.0-SNAPSHOT maven-archetype From a1eaf0d06aa53e520c8683f34a5600cee75db40c Mon Sep 17 00:00:00 2001 From: deki Date: Fri, 19 May 2023 14:58:38 +0000 Subject: [PATCH 130/623] chore: release - prepare release aws-serverless-java-container-2.0.0-M1 --- 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 3693ded88..819cce1d6 100644 --- a/aws-serverless-java-container-core/pom.xml +++ b/aws-serverless-java-container-core/pom.xml @@ -6,12 +6,12 @@ AWS Serverless Java container support - Core Allows Java applications written for a servlet container to run in AWS Lambda https://aws.amazon.com/lambda - 2.0.0-SNAPSHOT + 2.0.0-M1 com.amazonaws.serverless aws-serverless-java-container - 2.0.0-SNAPSHOT + 2.0.0-M1 .. diff --git a/aws-serverless-java-container-jersey/pom.xml b/aws-serverless-java-container-jersey/pom.xml index d4e9f42a8..b54d00011 100644 --- a/aws-serverless-java-container-jersey/pom.xml +++ b/aws-serverless-java-container-jersey/pom.xml @@ -6,12 +6,12 @@ AWS Serverless Java container support - Jersey implementation Allows Java applications written for Jersey to run in AWS Lambda https://aws.amazon.com/lambda - 2.0.0-SNAPSHOT + 2.0.0-M1 com.amazonaws.serverless aws-serverless-java-container - 2.0.0-SNAPSHOT + 2.0.0-M1 .. @@ -24,7 +24,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.0.0-SNAPSHOT + 2.0.0-M1 com.fasterxml.jackson.core @@ -35,7 +35,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.0.0-SNAPSHOT + 2.0.0-M1 tests test-jar test diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml index c734576a4..fb7ac7423 100644 --- a/aws-serverless-java-container-spring/pom.xml +++ b/aws-serverless-java-container-spring/pom.xml @@ -6,12 +6,12 @@ AWS Serverless Java container support - Spring implementation Allows Java applications written for the Spring framework to run in AWS Lambda https://aws.amazon.com/lambda - 2.0.0-SNAPSHOT + 2.0.0-M1 com.amazonaws.serverless aws-serverless-java-container - 2.0.0-SNAPSHOT + 2.0.0-M1 .. @@ -25,12 +25,12 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.0.0-SNAPSHOT + 2.0.0-M1 com.amazonaws.serverless aws-serverless-java-container-core - 2.0.0-SNAPSHOT + 2.0.0-M1 tests test-jar test diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml index 8e7d42a04..89a7d24d6 100644 --- a/aws-serverless-java-container-springboot3/pom.xml +++ b/aws-serverless-java-container-springboot3/pom.xml @@ -3,7 +3,7 @@ aws-serverless-java-container com.amazonaws.serverless - 2.0.0-SNAPSHOT + 2.0.0-M1 4.0.0 @@ -12,7 +12,7 @@ AWS Serverless Java container support - SpringBoot 3 implementation Allows Java applications written for SpringBoot 3 to run in AWS Lambda https://aws.amazon.com/lambda - 2.0.0-SNAPSHOT + 2.0.0-M1 6.0.9 @@ -25,12 +25,12 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.0.0-SNAPSHOT + 2.0.0-M1 com.amazonaws.serverless aws-serverless-java-container-core - 2.0.0-SNAPSHOT + 2.0.0-M1 tests test-jar test diff --git a/aws-serverless-jersey-archetype/pom.xml b/aws-serverless-jersey-archetype/pom.xml index e328fee77..7e21a9d2a 100644 --- a/aws-serverless-jersey-archetype/pom.xml +++ b/aws-serverless-jersey-archetype/pom.xml @@ -4,17 +4,17 @@ com.amazonaws.serverless aws-serverless-java-container - 2.0.0-SNAPSHOT + 2.0.0-M1 com.amazonaws.serverless.archetypes aws-serverless-jersey-archetype - 2.0.0-SNAPSHOT + 2.0.0-M1 maven-archetype https://github.com/awslabs/aws-serverless-java-container.git - HEAD + aws-serverless-java-container-2.0.0-M1 diff --git a/aws-serverless-spring-archetype/pom.xml b/aws-serverless-spring-archetype/pom.xml index 747ff0838..e6026b8a9 100644 --- a/aws-serverless-spring-archetype/pom.xml +++ b/aws-serverless-spring-archetype/pom.xml @@ -4,17 +4,17 @@ com.amazonaws.serverless aws-serverless-java-container - 2.0.0-SNAPSHOT + 2.0.0-M1 com.amazonaws.serverless.archetypes aws-serverless-spring-archetype - 2.0.0-SNAPSHOT + 2.0.0-M1 maven-archetype https://github.com/awslabs/aws-serverless-java-container.git - HEAD + aws-serverless-java-container-2.0.0-M1 diff --git a/aws-serverless-springboot3-archetype/pom.xml b/aws-serverless-springboot3-archetype/pom.xml index 8f478b223..abf8a9a5a 100644 --- a/aws-serverless-springboot3-archetype/pom.xml +++ b/aws-serverless-springboot3-archetype/pom.xml @@ -4,17 +4,17 @@ com.amazonaws.serverless aws-serverless-java-container - 2.0.0-SNAPSHOT + 2.0.0-M1 com.amazonaws.serverless.archetypes aws-serverless-springboot3-archetype - 2.0.0-SNAPSHOT + 2.0.0-M1 maven-archetype https://github.com/awslabs/aws-serverless-java-container.git - HEAD + aws-serverless-java-container-2.0.0-M1 diff --git a/pom.xml b/pom.xml index 55d546b05..a2185f054 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.amazonaws.serverless aws-serverless-java-container pom - 2.0.0-SNAPSHOT + 2.0.0-M1 AWS Serverless Java container A Java framework to run Spring, Spring Boot, Jersey, Spark, and Struts applications inside AWS Lambda https://github.com/awslabs/aws-serverless-java-container @@ -37,7 +37,7 @@ https://github.com/awslabs/aws-serverless-java-container scm:git:https://github.com/awslabs/aws-serverless-java-container.git - HEAD + aws-serverless-java-container-2.0.0-M1 From 5fb45c1f77a8ad687b6f6921f79f350ed5bc26f0 Mon Sep 17 00:00:00 2001 From: deki Date: Fri, 19 May 2023 14:58:41 +0000 Subject: [PATCH 131/623] 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 819cce1d6..3693ded88 100644 --- a/aws-serverless-java-container-core/pom.xml +++ b/aws-serverless-java-container-core/pom.xml @@ -6,12 +6,12 @@ AWS Serverless Java container support - Core Allows Java applications written for a servlet container to run in AWS Lambda https://aws.amazon.com/lambda - 2.0.0-M1 + 2.0.0-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container - 2.0.0-M1 + 2.0.0-SNAPSHOT .. diff --git a/aws-serverless-java-container-jersey/pom.xml b/aws-serverless-java-container-jersey/pom.xml index b54d00011..d4e9f42a8 100644 --- a/aws-serverless-java-container-jersey/pom.xml +++ b/aws-serverless-java-container-jersey/pom.xml @@ -6,12 +6,12 @@ AWS Serverless Java container support - Jersey implementation Allows Java applications written for Jersey to run in AWS Lambda https://aws.amazon.com/lambda - 2.0.0-M1 + 2.0.0-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container - 2.0.0-M1 + 2.0.0-SNAPSHOT .. @@ -24,7 +24,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.0.0-M1 + 2.0.0-SNAPSHOT com.fasterxml.jackson.core @@ -35,7 +35,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.0.0-M1 + 2.0.0-SNAPSHOT tests test-jar test diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml index fb7ac7423..c734576a4 100644 --- a/aws-serverless-java-container-spring/pom.xml +++ b/aws-serverless-java-container-spring/pom.xml @@ -6,12 +6,12 @@ AWS Serverless Java container support - Spring implementation Allows Java applications written for the Spring framework to run in AWS Lambda https://aws.amazon.com/lambda - 2.0.0-M1 + 2.0.0-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container - 2.0.0-M1 + 2.0.0-SNAPSHOT .. @@ -25,12 +25,12 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.0.0-M1 + 2.0.0-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container-core - 2.0.0-M1 + 2.0.0-SNAPSHOT tests test-jar test diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml index 89a7d24d6..8e7d42a04 100644 --- a/aws-serverless-java-container-springboot3/pom.xml +++ b/aws-serverless-java-container-springboot3/pom.xml @@ -3,7 +3,7 @@ aws-serverless-java-container com.amazonaws.serverless - 2.0.0-M1 + 2.0.0-SNAPSHOT 4.0.0 @@ -12,7 +12,7 @@ AWS Serverless Java container support - SpringBoot 3 implementation Allows Java applications written for SpringBoot 3 to run in AWS Lambda https://aws.amazon.com/lambda - 2.0.0-M1 + 2.0.0-SNAPSHOT 6.0.9 @@ -25,12 +25,12 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.0.0-M1 + 2.0.0-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container-core - 2.0.0-M1 + 2.0.0-SNAPSHOT tests test-jar test diff --git a/aws-serverless-jersey-archetype/pom.xml b/aws-serverless-jersey-archetype/pom.xml index 7e21a9d2a..e328fee77 100644 --- a/aws-serverless-jersey-archetype/pom.xml +++ b/aws-serverless-jersey-archetype/pom.xml @@ -4,17 +4,17 @@ com.amazonaws.serverless aws-serverless-java-container - 2.0.0-M1 + 2.0.0-SNAPSHOT com.amazonaws.serverless.archetypes aws-serverless-jersey-archetype - 2.0.0-M1 + 2.0.0-SNAPSHOT maven-archetype https://github.com/awslabs/aws-serverless-java-container.git - aws-serverless-java-container-2.0.0-M1 + HEAD diff --git a/aws-serverless-spring-archetype/pom.xml b/aws-serverless-spring-archetype/pom.xml index e6026b8a9..747ff0838 100644 --- a/aws-serverless-spring-archetype/pom.xml +++ b/aws-serverless-spring-archetype/pom.xml @@ -4,17 +4,17 @@ com.amazonaws.serverless aws-serverless-java-container - 2.0.0-M1 + 2.0.0-SNAPSHOT com.amazonaws.serverless.archetypes aws-serverless-spring-archetype - 2.0.0-M1 + 2.0.0-SNAPSHOT maven-archetype https://github.com/awslabs/aws-serverless-java-container.git - aws-serverless-java-container-2.0.0-M1 + HEAD diff --git a/aws-serverless-springboot3-archetype/pom.xml b/aws-serverless-springboot3-archetype/pom.xml index abf8a9a5a..8f478b223 100644 --- a/aws-serverless-springboot3-archetype/pom.xml +++ b/aws-serverless-springboot3-archetype/pom.xml @@ -4,17 +4,17 @@ com.amazonaws.serverless aws-serverless-java-container - 2.0.0-M1 + 2.0.0-SNAPSHOT com.amazonaws.serverless.archetypes aws-serverless-springboot3-archetype - 2.0.0-M1 + 2.0.0-SNAPSHOT maven-archetype https://github.com/awslabs/aws-serverless-java-container.git - aws-serverless-java-container-2.0.0-M1 + HEAD diff --git a/pom.xml b/pom.xml index a2185f054..55d546b05 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.amazonaws.serverless aws-serverless-java-container pom - 2.0.0-M1 + 2.0.0-SNAPSHOT AWS Serverless Java container A Java framework to run Spring, Spring Boot, Jersey, Spark, and Struts applications inside AWS Lambda https://github.com/awslabs/aws-serverless-java-container @@ -37,7 +37,7 @@ https://github.com/awslabs/aws-serverless-java-container scm:git:https://github.com/awslabs/aws-serverless-java-container.git - aws-serverless-java-container-2.0.0-M1 + HEAD From 482a36270eb91c70b170a2f84585f566089df1a4 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Fri, 19 May 2023 16:48:43 +0200 Subject: [PATCH 132/623] chore: Maven release plugin configuration --- pom.xml | 34 +++++++++++++++++++++++++++------- 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/pom.xml b/pom.xml index 55d546b05..dbc784417 100644 --- a/pom.xml +++ b/pom.xml @@ -238,6 +238,7 @@ maven-release-plugin 3.0.0 + serverless-java-container-release clean verify install true chore: release - @@ -285,13 +286,7 @@ - release-sign-artifacts - - - performRelease - true - - + serverless-java-container-release @@ -308,6 +303,31 @@ + + org.apache.maven.plugins + maven-javadoc-plugin + + + attach-javadocs + + jar + + + + + + org.apache.maven.plugins + maven-source-plugin + 3.2.1 + + + attach-sources + + jar-no-fork + + + + From 4782761e7fb0553d6f5ba3e18bf542ec90704c21 Mon Sep 17 00:00:00 2001 From: deki Date: Fri, 19 May 2023 15:19:58 +0000 Subject: [PATCH 133/623] chore: release - prepare release aws-serverless-java-container-2.0.0-M1 --- 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 3693ded88..819cce1d6 100644 --- a/aws-serverless-java-container-core/pom.xml +++ b/aws-serverless-java-container-core/pom.xml @@ -6,12 +6,12 @@ AWS Serverless Java container support - Core Allows Java applications written for a servlet container to run in AWS Lambda https://aws.amazon.com/lambda - 2.0.0-SNAPSHOT + 2.0.0-M1 com.amazonaws.serverless aws-serverless-java-container - 2.0.0-SNAPSHOT + 2.0.0-M1 .. diff --git a/aws-serverless-java-container-jersey/pom.xml b/aws-serverless-java-container-jersey/pom.xml index d4e9f42a8..b54d00011 100644 --- a/aws-serverless-java-container-jersey/pom.xml +++ b/aws-serverless-java-container-jersey/pom.xml @@ -6,12 +6,12 @@ AWS Serverless Java container support - Jersey implementation Allows Java applications written for Jersey to run in AWS Lambda https://aws.amazon.com/lambda - 2.0.0-SNAPSHOT + 2.0.0-M1 com.amazonaws.serverless aws-serverless-java-container - 2.0.0-SNAPSHOT + 2.0.0-M1 .. @@ -24,7 +24,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.0.0-SNAPSHOT + 2.0.0-M1 com.fasterxml.jackson.core @@ -35,7 +35,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.0.0-SNAPSHOT + 2.0.0-M1 tests test-jar test diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml index c734576a4..fb7ac7423 100644 --- a/aws-serverless-java-container-spring/pom.xml +++ b/aws-serverless-java-container-spring/pom.xml @@ -6,12 +6,12 @@ AWS Serverless Java container support - Spring implementation Allows Java applications written for the Spring framework to run in AWS Lambda https://aws.amazon.com/lambda - 2.0.0-SNAPSHOT + 2.0.0-M1 com.amazonaws.serverless aws-serverless-java-container - 2.0.0-SNAPSHOT + 2.0.0-M1 .. @@ -25,12 +25,12 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.0.0-SNAPSHOT + 2.0.0-M1 com.amazonaws.serverless aws-serverless-java-container-core - 2.0.0-SNAPSHOT + 2.0.0-M1 tests test-jar test diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml index 8e7d42a04..89a7d24d6 100644 --- a/aws-serverless-java-container-springboot3/pom.xml +++ b/aws-serverless-java-container-springboot3/pom.xml @@ -3,7 +3,7 @@ aws-serverless-java-container com.amazonaws.serverless - 2.0.0-SNAPSHOT + 2.0.0-M1 4.0.0 @@ -12,7 +12,7 @@ AWS Serverless Java container support - SpringBoot 3 implementation Allows Java applications written for SpringBoot 3 to run in AWS Lambda https://aws.amazon.com/lambda - 2.0.0-SNAPSHOT + 2.0.0-M1 6.0.9 @@ -25,12 +25,12 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.0.0-SNAPSHOT + 2.0.0-M1 com.amazonaws.serverless aws-serverless-java-container-core - 2.0.0-SNAPSHOT + 2.0.0-M1 tests test-jar test diff --git a/aws-serverless-jersey-archetype/pom.xml b/aws-serverless-jersey-archetype/pom.xml index e328fee77..7e21a9d2a 100644 --- a/aws-serverless-jersey-archetype/pom.xml +++ b/aws-serverless-jersey-archetype/pom.xml @@ -4,17 +4,17 @@ com.amazonaws.serverless aws-serverless-java-container - 2.0.0-SNAPSHOT + 2.0.0-M1 com.amazonaws.serverless.archetypes aws-serverless-jersey-archetype - 2.0.0-SNAPSHOT + 2.0.0-M1 maven-archetype https://github.com/awslabs/aws-serverless-java-container.git - HEAD + aws-serverless-java-container-2.0.0-M1 diff --git a/aws-serverless-spring-archetype/pom.xml b/aws-serverless-spring-archetype/pom.xml index 747ff0838..e6026b8a9 100644 --- a/aws-serverless-spring-archetype/pom.xml +++ b/aws-serverless-spring-archetype/pom.xml @@ -4,17 +4,17 @@ com.amazonaws.serverless aws-serverless-java-container - 2.0.0-SNAPSHOT + 2.0.0-M1 com.amazonaws.serverless.archetypes aws-serverless-spring-archetype - 2.0.0-SNAPSHOT + 2.0.0-M1 maven-archetype https://github.com/awslabs/aws-serverless-java-container.git - HEAD + aws-serverless-java-container-2.0.0-M1 diff --git a/aws-serverless-springboot3-archetype/pom.xml b/aws-serverless-springboot3-archetype/pom.xml index 8f478b223..abf8a9a5a 100644 --- a/aws-serverless-springboot3-archetype/pom.xml +++ b/aws-serverless-springboot3-archetype/pom.xml @@ -4,17 +4,17 @@ com.amazonaws.serverless aws-serverless-java-container - 2.0.0-SNAPSHOT + 2.0.0-M1 com.amazonaws.serverless.archetypes aws-serverless-springboot3-archetype - 2.0.0-SNAPSHOT + 2.0.0-M1 maven-archetype https://github.com/awslabs/aws-serverless-java-container.git - HEAD + aws-serverless-java-container-2.0.0-M1 diff --git a/pom.xml b/pom.xml index dbc784417..3dadc5ed1 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.amazonaws.serverless aws-serverless-java-container pom - 2.0.0-SNAPSHOT + 2.0.0-M1 AWS Serverless Java container A Java framework to run Spring, Spring Boot, Jersey, Spark, and Struts applications inside AWS Lambda https://github.com/awslabs/aws-serverless-java-container @@ -37,7 +37,7 @@ https://github.com/awslabs/aws-serverless-java-container scm:git:https://github.com/awslabs/aws-serverless-java-container.git - HEAD + aws-serverless-java-container-2.0.0-M1 From 379f48bc32078d3a7a29063927012a00cd8b375f Mon Sep 17 00:00:00 2001 From: deki Date: Fri, 19 May 2023 15:20:00 +0000 Subject: [PATCH 134/623] 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 819cce1d6..3693ded88 100644 --- a/aws-serverless-java-container-core/pom.xml +++ b/aws-serverless-java-container-core/pom.xml @@ -6,12 +6,12 @@ AWS Serverless Java container support - Core Allows Java applications written for a servlet container to run in AWS Lambda https://aws.amazon.com/lambda - 2.0.0-M1 + 2.0.0-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container - 2.0.0-M1 + 2.0.0-SNAPSHOT .. diff --git a/aws-serverless-java-container-jersey/pom.xml b/aws-serverless-java-container-jersey/pom.xml index b54d00011..d4e9f42a8 100644 --- a/aws-serverless-java-container-jersey/pom.xml +++ b/aws-serverless-java-container-jersey/pom.xml @@ -6,12 +6,12 @@ AWS Serverless Java container support - Jersey implementation Allows Java applications written for Jersey to run in AWS Lambda https://aws.amazon.com/lambda - 2.0.0-M1 + 2.0.0-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container - 2.0.0-M1 + 2.0.0-SNAPSHOT .. @@ -24,7 +24,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.0.0-M1 + 2.0.0-SNAPSHOT com.fasterxml.jackson.core @@ -35,7 +35,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.0.0-M1 + 2.0.0-SNAPSHOT tests test-jar test diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml index fb7ac7423..c734576a4 100644 --- a/aws-serverless-java-container-spring/pom.xml +++ b/aws-serverless-java-container-spring/pom.xml @@ -6,12 +6,12 @@ AWS Serverless Java container support - Spring implementation Allows Java applications written for the Spring framework to run in AWS Lambda https://aws.amazon.com/lambda - 2.0.0-M1 + 2.0.0-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container - 2.0.0-M1 + 2.0.0-SNAPSHOT .. @@ -25,12 +25,12 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.0.0-M1 + 2.0.0-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container-core - 2.0.0-M1 + 2.0.0-SNAPSHOT tests test-jar test diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml index 89a7d24d6..8e7d42a04 100644 --- a/aws-serverless-java-container-springboot3/pom.xml +++ b/aws-serverless-java-container-springboot3/pom.xml @@ -3,7 +3,7 @@ aws-serverless-java-container com.amazonaws.serverless - 2.0.0-M1 + 2.0.0-SNAPSHOT 4.0.0 @@ -12,7 +12,7 @@ AWS Serverless Java container support - SpringBoot 3 implementation Allows Java applications written for SpringBoot 3 to run in AWS Lambda https://aws.amazon.com/lambda - 2.0.0-M1 + 2.0.0-SNAPSHOT 6.0.9 @@ -25,12 +25,12 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.0.0-M1 + 2.0.0-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container-core - 2.0.0-M1 + 2.0.0-SNAPSHOT tests test-jar test diff --git a/aws-serverless-jersey-archetype/pom.xml b/aws-serverless-jersey-archetype/pom.xml index 7e21a9d2a..e328fee77 100644 --- a/aws-serverless-jersey-archetype/pom.xml +++ b/aws-serverless-jersey-archetype/pom.xml @@ -4,17 +4,17 @@ com.amazonaws.serverless aws-serverless-java-container - 2.0.0-M1 + 2.0.0-SNAPSHOT com.amazonaws.serverless.archetypes aws-serverless-jersey-archetype - 2.0.0-M1 + 2.0.0-SNAPSHOT maven-archetype https://github.com/awslabs/aws-serverless-java-container.git - aws-serverless-java-container-2.0.0-M1 + HEAD diff --git a/aws-serverless-spring-archetype/pom.xml b/aws-serverless-spring-archetype/pom.xml index e6026b8a9..747ff0838 100644 --- a/aws-serverless-spring-archetype/pom.xml +++ b/aws-serverless-spring-archetype/pom.xml @@ -4,17 +4,17 @@ com.amazonaws.serverless aws-serverless-java-container - 2.0.0-M1 + 2.0.0-SNAPSHOT com.amazonaws.serverless.archetypes aws-serverless-spring-archetype - 2.0.0-M1 + 2.0.0-SNAPSHOT maven-archetype https://github.com/awslabs/aws-serverless-java-container.git - aws-serverless-java-container-2.0.0-M1 + HEAD diff --git a/aws-serverless-springboot3-archetype/pom.xml b/aws-serverless-springboot3-archetype/pom.xml index abf8a9a5a..8f478b223 100644 --- a/aws-serverless-springboot3-archetype/pom.xml +++ b/aws-serverless-springboot3-archetype/pom.xml @@ -4,17 +4,17 @@ com.amazonaws.serverless aws-serverless-java-container - 2.0.0-M1 + 2.0.0-SNAPSHOT com.amazonaws.serverless.archetypes aws-serverless-springboot3-archetype - 2.0.0-M1 + 2.0.0-SNAPSHOT maven-archetype https://github.com/awslabs/aws-serverless-java-container.git - aws-serverless-java-container-2.0.0-M1 + HEAD diff --git a/pom.xml b/pom.xml index 3dadc5ed1..dbc784417 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.amazonaws.serverless aws-serverless-java-container pom - 2.0.0-M1 + 2.0.0-SNAPSHOT AWS Serverless Java container A Java framework to run Spring, Spring Boot, Jersey, Spark, and Struts applications inside AWS Lambda https://github.com/awslabs/aws-serverless-java-container @@ -37,7 +37,7 @@ https://github.com/awslabs/aws-serverless-java-container scm:git:https://github.com/awslabs/aws-serverless-java-container.git - aws-serverless-java-container-2.0.0-M1 + HEAD From 02321c4cff616554c7266a843d494b9e8a523bd0 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Fri, 19 May 2023 17:30:26 +0200 Subject: [PATCH 135/623] refactor: reintegrate fileupload support This reverts commit 9c05f852 --- aws-serverless-java-container-core/pom.xml | 6 +-- .../servlet/AwsHttpServletRequest.java | 39 ++++++++++++++++++- .../AwsProxyHttpServletRequestFormTest.java | 4 -- .../testutils/AwsProxyRequestBuilder.java | 7 +++- .../proxy/jersey/JerseyParamEncodingTest.java | 1 - .../proxy/spring/SpringAwsProxyTest.java | 2 - 6 files changed, 47 insertions(+), 12 deletions(-) diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml index 3693ded88..6fedd2e11 100644 --- a/aws-serverless-java-container-core/pom.xml +++ b/aws-serverless-java-container-core/pom.xml @@ -67,9 +67,9 @@ - commons-io - commons-io - 2.12.0 + org.apache.commons + commons-fileupload2 + 2.0-SNAPSHOT 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 44fd84a96..99b2782c5 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,11 @@ 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.FileItem; +import org.apache.commons.fileupload2.FileUploadException; +import org.apache.commons.fileupload2.disk.DiskFileItemFactory; +import org.apache.commons.fileupload2.jaksrvlt.JakSrvltFileUpload; +import org.apache.commons.io.FilenameUtils; import org.apache.commons.io.IOUtils; import org.apache.commons.io.input.NullInputStream; import org.slf4j.Logger; @@ -503,7 +508,39 @@ protected Map> getFormUrlEncodedParametersMap() { @SuppressFBWarnings({"FILE_UPLOAD_FILENAME", "WEAK_FILENAMEUTILS"}) protected Map getMultipartFormParametersMap() { - throw new UnsupportedOperationException(); + if (multipartFormParameters != null) { + return multipartFormParameters; + } + if (!JakSrvltFileUpload.isMultipartContent(this)) { // isMultipartContent also checks the content type + multipartFormParameters = new HashMap<>(); + return multipartFormParameters; + } + Timer.start("SERVLET_REQUEST_GET_MULTIPART_PARAMS"); + multipartFormParameters = new TreeMap<>(String.CASE_INSENSITIVE_ORDER); + + JakSrvltFileUpload upload = new JakSrvltFileUpload(new DiskFileItemFactory()); + + try { + List items = upload.parseRequest(this); + for (FileItem 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)); + }); + + multipartFormParameters.put(item.getFieldName(), newPart); + } + } catch (FileUploadException e) { + Timer.stop("SERVLET_REQUEST_GET_MULTIPART_PARAMS"); + log.error("Could not read multipart upload file", e); + } + Timer.stop("SERVLET_REQUEST_GET_MULTIPART_PARAMS"); + return multipartFormParameters; } protected String[] getQueryParamValues(MultiValuedTreeMap qs, String key, boolean isCaseSensitive) { 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 efe32ba2a..989066328 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 @@ -8,7 +8,6 @@ import org.apache.hc.core5.http.ContentType; import org.apache.hc.core5.http.HttpEntity; import org.apache.hc.client5.http.entity.mime.MultipartEntityBuilder; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import jakarta.servlet.ServletException; @@ -52,7 +51,6 @@ public class AwsProxyHttpServletRequestFormTest { .build(); private static final String ENCODED_FORM_ENTITY = PART_KEY_1 + "=" + ENCODED_VALUE + "&" + PART_KEY_2 + "=" + PART_VALUE_2; - @Disabled("Disabled until new release of commons-fileupload based on Jakarta APIs") @Test void postForm_getParam_getEncodedFullValue() { try { @@ -69,7 +67,6 @@ void postForm_getParam_getEncodedFullValue() { } } - @Disabled("Disabled until new release of commons-fileupload based on Jakarta APIs") @Test void postForm_getParts_parsing() { try { @@ -89,7 +86,6 @@ void postForm_getParts_parsing() { } } - @Disabled("Disabled until new release of commons-fileupload based on Jakarta APIs") @Test void multipart_getParts_binary() { try { 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 725fada8f..9df66a891 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 @@ -155,7 +155,12 @@ public AwsProxyRequestBuilder form(String key, String value) { } public AwsProxyRequestBuilder formFilePart(String fieldName, String fileName, byte[] content) throws IOException { - throw new UnsupportedOperationException(); + if (multipartBuilder == null) { + multipartBuilder = MultipartEntityBuilder.create(); + } + multipartBuilder.addPart(fieldName, new ByteArrayBody(content, fileName)); + buildMultipartBody(); + return this; } public AwsProxyRequestBuilder formTextFieldPart(String fieldName, String fieldValue) diff --git a/aws-serverless-java-container-jersey/src/test/java/com/amazonaws/serverless/proxy/jersey/JerseyParamEncodingTest.java b/aws-serverless-java-container-jersey/src/test/java/com/amazonaws/serverless/proxy/jersey/JerseyParamEncodingTest.java index 6c575da6c..9dc1ab32a 100644 --- a/aws-serverless-java-container-jersey/src/test/java/com/amazonaws/serverless/proxy/jersey/JerseyParamEncodingTest.java +++ b/aws-serverless-java-container-jersey/src/test/java/com/amazonaws/serverless/proxy/jersey/JerseyParamEncodingTest.java @@ -263,7 +263,6 @@ void queryParam_listOfString_expectCorrectLength(String reqType) { validateSingleValueModel(resp, "3"); } - @Disabled("Disabled until new release of commons-fileupload based on Jakarta APIs") @MethodSource("data") @ParameterizedTest void multipart_getFileSize_expectCorrectLength(String reqType) 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 f78d43812..1101efc8c 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 @@ -19,7 +19,6 @@ import com.fasterxml.jackson.databind.ObjectMapper; import org.apache.commons.codec.binary.Base64; import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; import org.springframework.web.servlet.DispatcherServlet; @@ -469,7 +468,6 @@ void contextPath_generateLink_returnsCorrectPath(String reqType) { SpringLambdaContainerHandler.getContainerConfig().setUseStageAsServletContext(false); } - @Disabled("Disabled until new release of commons-fileupload based on Jakarta APIs") @MethodSource("data") @ParameterizedTest void multipart_getFileName_returnsCorrectFileName(String reqType) From a1054e9be5e3ad43fcf761c0e21c5bcf3d906bb5 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Fri, 19 May 2023 20:32:06 +0200 Subject: [PATCH 136/623] doc: add Spring Boot 3 quick start to README --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9c483ae27..33622db3d 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,7 @@ Currently the following versions are maintained: 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) From 46312b7e765a2a8db90401c4b5021b8ae47cbd61 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 19 May 2023 18:37:00 +0000 Subject: [PATCH 137/623] chore(deps): bump maven-surefire-plugin from 3.0.0 to 3.1.0 Bumps [maven-surefire-plugin](https://github.com/apache/maven-surefire) from 3.0.0 to 3.1.0. - [Release notes](https://github.com/apache/maven-surefire/releases) - [Commits](https://github.com/apache/maven-surefire/compare/surefire-3.0.0...surefire-3.1.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] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index dbc784417..0745c0a37 100644 --- a/pom.xml +++ b/pom.xml @@ -206,7 +206,7 @@ org.apache.maven.plugins maven-surefire-plugin - 3.0.0 + 3.1.0 org.apache.maven.plugins From da6af0f08ff5f2416cd7abfac4b681aa3ecaecfc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 May 2023 04:56:53 +0000 Subject: [PATCH 138/623] chore(deps): bump maven-source-plugin from 3.2.1 to 3.3.0 Bumps [maven-source-plugin](https://github.com/apache/maven-source-plugin) from 3.2.1 to 3.3.0. - [Commits](https://github.com/apache/maven-source-plugin/compare/maven-source-plugin-3.2.1...maven-source-plugin-3.3.0) --- updated-dependencies: - dependency-name: org.apache.maven.plugins:maven-source-plugin dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index dbc784417..eb5ef3953 100644 --- a/pom.xml +++ b/pom.xml @@ -318,7 +318,7 @@ org.apache.maven.plugins maven-source-plugin - 3.2.1 + 3.3.0 attach-sources From 25c58d8297af593e7fefad2338ba90cfd8c384ee Mon Sep 17 00:00:00 2001 From: Salman Date: Mon, 22 May 2023 23:54:36 +0200 Subject: [PATCH 139/623] junit version changed --- .../archetype-resources/build.gradle | 3 ++- .../resources/archetype-resources/pom.xml | 20 +++++++++++++++---- .../test/java/StreamLambdaHandlerTest.java | 8 ++++---- 3 files changed, 22 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 3b18be4cf..1f27cfcba 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,8 @@ dependencies { testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests") testImplementation("org.apache.httpcomponents.client5:httpclient5:5.2.1") - testImplementation("junit:junit:4.13.2") + testImplementation(platform('org.junit:junit-bom:5.9.3')) + testImplementation('org.junit.jupiter:junit-jupiter') } task buildZip(type: Zip) { 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 4196c83e4..25ba806b3 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 @@ -1,4 +1,4 @@ -#set($dollar = '$') + 4.0.0 @@ -17,6 +17,7 @@ 3.1.2 2.15.1 + 5.9.3 @@ -80,13 +81,24 @@ - junit - junit - 4.13.2 + org.junit.jupiter + junit-jupiter test + + + + org.junit + junit-bom + ${junit.version} + import + pom + + + + shaded-jar diff --git a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/src/test/java/StreamLambdaHandlerTest.java b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/src/test/java/StreamLambdaHandlerTest.java index 4a6b00b03..53db9b161 100644 --- a/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/src/test/java/StreamLambdaHandlerTest.java +++ b/aws-serverless-jersey-archetype/src/main/resources/archetype-resources/src/test/java/StreamLambdaHandlerTest.java @@ -7,8 +7,8 @@ import com.amazonaws.serverless.proxy.model.AwsProxyResponse; import com.amazonaws.services.lambda.runtime.Context; -import org.junit.BeforeClass; -import org.junit.Test; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; import jakarta.ws.rs.HttpMethod; import jakarta.ws.rs.core.HttpHeaders; @@ -19,7 +19,7 @@ import java.io.IOException; import java.io.InputStream; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.*; public class StreamLambdaHandlerTest { @@ -27,7 +27,7 @@ public class StreamLambdaHandlerTest { private static StreamLambdaHandler handler; private static Context lambdaContext; - @BeforeClass + @BeforeAll public static void setUp() { handler = new StreamLambdaHandler(); lambdaContext = new MockLambdaContext(); From 5a77b5def4329d2175eac14c382335c2f70d6a6d Mon Sep 17 00:00:00 2001 From: Salman Date: Wed, 24 May 2023 00:26:25 +0200 Subject: [PATCH 140/623] junit version changed for other archetypes and test classes --- .../archetype-resources/build.gradle | 8 ++++++-- .../resources/archetype-resources/pom.xml | 2 +- .../archetype-resources/build.gradle | 7 ++++++- .../resources/archetype-resources/pom.xml | 18 +++++++++++++++--- .../test/java/StreamLambdaHandlerTest.java | 9 ++++----- .../archetype-resources/build.gradle | 7 ++++++- .../resources/archetype-resources/pom.xml | 19 +++++++++++++++---- .../test/java/StreamLambdaHandlerTest.java | 8 ++++---- .../archetype-resources/build.gradle | 7 ++++++- .../resources/archetype-resources/pom.xml | 18 +++++++++++++++--- .../test/java/StreamLambdaHandlerTest.java | 9 ++++----- .../archetype-resources/build.gradle | 7 ++++++- .../resources/archetype-resources/pom.xml | 19 +++++++++++++++---- .../test/java/StreamLambdaHandlerTest.java | 9 ++++----- 14 files changed, 107 insertions(+), 40 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 1f27cfcba..2b4c85b79 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,8 +23,8 @@ 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('org.junit.jupiter:junit-jupiter') + testImplementation(platform("org.junit:junit-bom:5.9.3")) + testImplementation("org.junit.jupiter:junit-jupiter") } task buildZip(type: Zip) { @@ -35,4 +35,8 @@ task buildZip(type: Zip) { } } +test { + useJUnitPlatform() +} + build.dependsOn buildZip 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 25ba806b3..ea7661066 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 @@ -1,4 +1,4 @@ - +#set($dollar = '$') 4.0.0 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 b2d0dbe0f..6c27a2dd6 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,8 @@ dependencies { testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests") testImplementation("org.apache.httpcomponents.client5:httpclient5:5.2.1") - testImplementation("junit:junit:4.13.2") + testImplementation(platform("org.junit:junit-bom:5.9.3")) + testImplementation("org.junit.jupiter:junit-jupiter") } task buildZip(type: Zip) { @@ -32,4 +33,8 @@ task buildZip(type: Zip) { } } +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 index a4281cde3..afa8a6a5c 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,6 +18,7 @@ 1.8 2.15.1 2.9.4 + 5.9.3 @@ -54,13 +55,24 @@ - junit - junit - 4.13.2 + org.junit.jupiter + junit-jupiter test + + + + org.junit + junit-bom + ${junit.version} + import + pom + + + + shaded-jar 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 index 4a6b00b03..26d5360bf 100644 --- 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 @@ -7,8 +7,8 @@ import com.amazonaws.serverless.proxy.model.AwsProxyResponse; import com.amazonaws.services.lambda.runtime.Context; -import org.junit.BeforeClass; -import org.junit.Test; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; import jakarta.ws.rs.HttpMethod; import jakarta.ws.rs.core.HttpHeaders; @@ -19,15 +19,14 @@ import java.io.IOException; import java.io.InputStream; -import static org.junit.Assert.*; - +import static org.junit.jupiter.api.Assertions.*; public class StreamLambdaHandlerTest { private static StreamLambdaHandler handler; private static Context lambdaContext; - @BeforeClass + @BeforeAll public static void setUp() { handler = new StreamLambdaHandler(); lambdaContext = new MockLambdaContext(); 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 45f39c264..5d3bd4f43 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,8 @@ dependencies { testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests") testImplementation("org.apache.httpcomponents.client5:httpclient5:5.2.1") - testImplementation("junit:junit:4.13.2") + testImplementation(platform("org.junit:junit-bom:5.9.3")) + testImplementation("org.junit.jupiter:junit-jupiter") } task buildZip(type: Zip) { @@ -30,4 +31,8 @@ task buildZip(type: Zip) { } } +test { + useJUnitPlatform() +} + build.dependsOn buildZip 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 d7e6e5637..614d6b6d7 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 @@ 1.8 1.8 6.0.9 - 4.13.2 + 5.9.3 2.20.0 @@ -92,14 +92,25 @@ - junit - junit - \${junit.version} + org.junit.jupiter + junit-jupiter test + + + + org.junit + junit-bom + ${junit.version} + import + pom + + + + shaded-jar diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/src/test/java/StreamLambdaHandlerTest.java b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/src/test/java/StreamLambdaHandlerTest.java index 4a6b00b03..53db9b161 100644 --- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/src/test/java/StreamLambdaHandlerTest.java +++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/src/test/java/StreamLambdaHandlerTest.java @@ -7,8 +7,8 @@ import com.amazonaws.serverless.proxy.model.AwsProxyResponse; import com.amazonaws.services.lambda.runtime.Context; -import org.junit.BeforeClass; -import org.junit.Test; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; import jakarta.ws.rs.HttpMethod; import jakarta.ws.rs.core.HttpHeaders; @@ -19,7 +19,7 @@ import java.io.IOException; import java.io.InputStream; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.*; public class StreamLambdaHandlerTest { @@ -27,7 +27,7 @@ public class StreamLambdaHandlerTest { private static StreamLambdaHandler handler; private static Context lambdaContext; - @BeforeClass + @BeforeAll public static void setUp() { handler = new StreamLambdaHandler(); lambdaContext = new MockLambdaContext(); 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 94897b2d6..0daf12985 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 @@ -13,7 +13,8 @@ dependencies { testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests") testImplementation("org.apache.httpcomponents.client5:httpclient5:5.2.1") - testImplementation("junit:junit:4.13.2") + testImplementation(platform("org.junit:junit-bom:5.9.3")) + testImplementation("org.junit.jupiter:junit-jupiter") } task buildZip(type: Zip) { @@ -26,4 +27,8 @@ task buildZip(type: Zip) { } } +test { + useJUnitPlatform() +} + build.dependsOn buildZip 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 745498e5e..7ded34e43 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,6 +21,7 @@ 17 + 5.9.3 @@ -56,13 +57,24 @@ - junit - junit - 4.13.2 + org.junit.jupiter + junit-jupiter test + + + + org.junit + junit-bom + ${junit.version} + import + pom + + + + shaded-jar diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/src/test/java/StreamLambdaHandlerTest.java b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/src/test/java/StreamLambdaHandlerTest.java index 4a6b00b03..26d5360bf 100644 --- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/src/test/java/StreamLambdaHandlerTest.java +++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/src/test/java/StreamLambdaHandlerTest.java @@ -7,8 +7,8 @@ import com.amazonaws.serverless.proxy.model.AwsProxyResponse; import com.amazonaws.services.lambda.runtime.Context; -import org.junit.BeforeClass; -import org.junit.Test; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; import jakarta.ws.rs.HttpMethod; import jakarta.ws.rs.core.HttpHeaders; @@ -19,15 +19,14 @@ import java.io.IOException; import java.io.InputStream; -import static org.junit.Assert.*; - +import static org.junit.jupiter.api.Assertions.*; public class StreamLambdaHandlerTest { private static StreamLambdaHandler handler; private static Context lambdaContext; - @BeforeClass + @BeforeAll public static void setUp() { handler = new StreamLambdaHandler(); lambdaContext = new MockLambdaContext(); 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 71f270097..de4af4974 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,8 @@ dependencies { testImplementation("com.amazonaws.serverless:aws-serverless-java-container-core:[2.0-SNAPSHOT,):tests") testImplementation("org.apache.httpcomponents.client5:httpclient5:5.2.1") - testImplementation('junit:junit:4.13.2') + testImplementation(platform("org.junit:junit-bom:5.9.3")) + testImplementation("org.junit.jupiter:junit-jupiter") testImplementation('org.apache.struts:struts2-junit-plugin:6.1.2') { exclude group: 'org.apache.struts', module: 'struts2-core' } @@ -57,4 +58,8 @@ task buildZip(type: Zip) { } } +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 index bb558e1cb..021fbd3cb 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 @@ 1.8 6.1.2 2.15.1 - 4.13.2 + 5.9.3 2.20.0 @@ -134,13 +134,24 @@ - junit - junit - \${junit.version} + org.junit.jupiter + junit-jupiter test + + + + org.junit + junit-bom + ${junit.version} + import + pom + + + + 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 index fd63840b5..875867778 100644 --- 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 @@ -9,8 +9,8 @@ import com.amazonaws.serverless.proxy.struts.StrutsLambdaHandler; -import org.junit.BeforeClass; -import org.junit.Test; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; import jakarta.ws.rs.HttpMethod; import jakarta.ws.rs.core.HttpHeaders; @@ -21,15 +21,14 @@ import java.io.IOException; import java.io.InputStream; -import static org.junit.Assert.*; - +import static org.junit.jupiter.api.Assertions.*; public class StreamLambdaHandlerTest { private static StrutsLambdaHandler handler; private static Context lambdaContext; - @BeforeClass + @BeforeAll public static void setUp() { handler = new StrutsLambdaHandler(); lambdaContext = new MockLambdaContext(); From da9fc8194e1c8fd1f7393c340c3ff5452f231dd4 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Fri, 26 May 2023 16:27:03 +0200 Subject: [PATCH 141/623] chore(deps): Update maven-assembly-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 +- .../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/pet-store/pom.xml | 2 +- samples/struts/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 ea7661066..e625d8fc0 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 @@ org.apache.maven.plugins maven-assembly-plugin - 3.5.0 + 3.6.0 zip-assembly 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 614d6b6d7..fbe609008 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 @@ org.apache.maven.plugins maven-assembly-plugin - 3.3.0 + 3.6.0 zip-assembly 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 7ded34e43..2cf94de41 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 @@ org.apache.maven.plugins maven-assembly-plugin - 3.5.0 + 3.6.0 zip-assembly 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 021fbd3cb..d8c4e6964 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 @@ org.apache.maven.plugins maven-assembly-plugin - 3.3.0 + 3.6.0 src/main/assembly/dist.xml diff --git a/samples/jersey/pet-store/pom.xml b/samples/jersey/pet-store/pom.xml index 585fb9d2e..31c068c33 100644 --- a/samples/jersey/pet-store/pom.xml +++ b/samples/jersey/pet-store/pom.xml @@ -150,7 +150,7 @@ org.apache.maven.plugins maven-assembly-plugin - 3.5.0 + 3.6.0 zip-assembly diff --git a/samples/spark/pet-store/pom.xml b/samples/spark/pet-store/pom.xml index dc49e00ee..785642251 100644 --- a/samples/spark/pet-store/pom.xml +++ b/samples/spark/pet-store/pom.xml @@ -138,7 +138,7 @@ org.apache.maven.plugins maven-assembly-plugin - 3.3.0 + 3.6.0 zip-assembly diff --git a/samples/spring/pet-store/pom.xml b/samples/spring/pet-store/pom.xml index c08616f6e..ee061e2a1 100644 --- a/samples/spring/pet-store/pom.xml +++ b/samples/spring/pet-store/pom.xml @@ -179,7 +179,7 @@ org.apache.maven.plugins maven-assembly-plugin - 3.5.0 + 3.6.0 zip-assembly diff --git a/samples/springboot3/pet-store/pom.xml b/samples/springboot3/pet-store/pom.xml index b58483d77..fd5a76d8c 100644 --- a/samples/springboot3/pet-store/pom.xml +++ b/samples/springboot3/pet-store/pom.xml @@ -127,7 +127,7 @@ org.apache.maven.plugins maven-assembly-plugin - 3.5.0 + 3.6.0 zip-assembly diff --git a/samples/struts/pet-store/pom.xml b/samples/struts/pet-store/pom.xml index 1ec2bb4a9..723131629 100644 --- a/samples/struts/pet-store/pom.xml +++ b/samples/struts/pet-store/pom.xml @@ -148,7 +148,7 @@ org.apache.maven.plugins maven-assembly-plugin - 3.3.0 + 3.6.0 src/main/assembly/dist.xml From 013babd8465b7fe5b2c35e12094d5465a9997242 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Tue, 30 May 2023 09:42:21 +0200 Subject: [PATCH 142/623] chore(deps): Update maven-dependency-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 +- .../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/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 e625d8fc0..31f5a2f1c 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 @@ org.apache.maven.plugins maven-dependency-plugin - 3.5.0 + 3.6.0 copy-dependencies 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 afa8a6a5c..942de07b1 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 @@ org.apache.maven.plugins maven-dependency-plugin - 3.2.0 + 3.6.0 copy-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 fbe609008..4150f629f 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 @@ org.apache.maven.plugins maven-dependency-plugin - 3.5.0 + 3.6.0 copy-dependencies 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 2cf94de41..d5b1d7953 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 @@ org.apache.maven.plugins maven-dependency-plugin - 3.5.0 + 3.6.0 copy-dependencies diff --git a/samples/jersey/pet-store/pom.xml b/samples/jersey/pet-store/pom.xml index 31c068c33..3c953f445 100644 --- a/samples/jersey/pet-store/pom.xml +++ b/samples/jersey/pet-store/pom.xml @@ -132,7 +132,7 @@ org.apache.maven.plugins maven-dependency-plugin - 3.5.0 + 3.6.0 copy-dependencies diff --git a/samples/spark/pet-store/pom.xml b/samples/spark/pet-store/pom.xml index 785642251..71ad04bfb 100644 --- a/samples/spark/pet-store/pom.xml +++ b/samples/spark/pet-store/pom.xml @@ -120,7 +120,7 @@ org.apache.maven.plugins maven-dependency-plugin - 3.2.0 + 3.6.0 copy-dependencies diff --git a/samples/spring/pet-store/pom.xml b/samples/spring/pet-store/pom.xml index ee061e2a1..9958e007c 100644 --- a/samples/spring/pet-store/pom.xml +++ b/samples/spring/pet-store/pom.xml @@ -161,7 +161,7 @@ org.apache.maven.plugins maven-dependency-plugin - 3.5.0 + 3.6.0 copy-dependencies diff --git a/samples/springboot3/pet-store/pom.xml b/samples/springboot3/pet-store/pom.xml index fd5a76d8c..ba3edc696 100644 --- a/samples/springboot3/pet-store/pom.xml +++ b/samples/springboot3/pet-store/pom.xml @@ -109,7 +109,7 @@ org.apache.maven.plugins maven-dependency-plugin - 3.5.0 + 3.6.0 copy-dependencies From de7714c4e75127a81496f68f06e5a843f5b80453 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 5 Jun 2023 04:56:41 +0000 Subject: [PATCH 143/623] chore(deps): bump maven-release-plugin from 3.0.0 to 3.0.1 Bumps [maven-release-plugin](https://github.com/apache/maven-release) from 3.0.0 to 3.0.1. - [Release notes](https://github.com/apache/maven-release/releases) - [Commits](https://github.com/apache/maven-release/compare/maven-release-3.0.0...maven-release-3.0.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] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 753c3b6af..4fa0f10ac 100644 --- a/pom.xml +++ b/pom.xml @@ -236,7 +236,7 @@ org.apache.maven.plugins maven-release-plugin - 3.0.0 + 3.0.1 serverless-java-container-release clean verify install From e29d8bae830fe15365e08ce08deb2b0a9fddbe9a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Jun 2023 04:57:26 +0000 Subject: [PATCH 144/623] chore(deps): bump maven-surefire-plugin from 3.1.0 to 3.1.2 Bumps [maven-surefire-plugin](https://github.com/apache/maven-surefire) from 3.1.0 to 3.1.2. - [Release notes](https://github.com/apache/maven-surefire/releases) - [Commits](https://github.com/apache/maven-surefire/compare/surefire-3.1.0...surefire-3.1.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] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 753c3b6af..4a49b226b 100644 --- a/pom.xml +++ b/pom.xml @@ -206,7 +206,7 @@ org.apache.maven.plugins maven-surefire-plugin - 3.1.0 + 3.1.2 org.apache.maven.plugins From 9e367e515db08ab40aa36a76a78cc86b1cd4d084 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Tue, 13 Jun 2023 08:10:19 +0200 Subject: [PATCH 145/623] chore(deps): use latest Commons Fileupload SNAPSHOT --- aws-serverless-java-container-core/pom.xml | 4 ++-- .../proxy/internal/servlet/AwsHttpServletRequest.java | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml index 6fedd2e11..4b217850c 100644 --- a/aws-serverless-java-container-core/pom.xml +++ b/aws-serverless-java-container-core/pom.xml @@ -68,8 +68,8 @@ org.apache.commons - commons-fileupload2 - 2.0-SNAPSHOT + commons-fileupload2-jakarta + 2.0.0-SNAPSHOT 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 99b2782c5..06786f7fb 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.FileItem; import org.apache.commons.fileupload2.FileUploadException; import org.apache.commons.fileupload2.disk.DiskFileItemFactory; -import org.apache.commons.fileupload2.jaksrvlt.JakSrvltFileUpload; +import org.apache.commons.fileupload2.jakarta.JakartaServletFileUpload; import org.apache.commons.io.FilenameUtils; import org.apache.commons.io.IOUtils; import org.apache.commons.io.input.NullInputStream; @@ -511,14 +511,14 @@ protected Map getMultipartFormParametersMap() { if (multipartFormParameters != null) { return multipartFormParameters; } - if (!JakSrvltFileUpload.isMultipartContent(this)) { // isMultipartContent also checks the content type + if (!JakartaServletFileUpload.isMultipartContent(this)) { // isMultipartContent also checks the content type multipartFormParameters = new HashMap<>(); return multipartFormParameters; } Timer.start("SERVLET_REQUEST_GET_MULTIPART_PARAMS"); multipartFormParameters = new TreeMap<>(String.CASE_INSENSITIVE_ORDER); - JakSrvltFileUpload upload = new JakSrvltFileUpload(new DiskFileItemFactory()); + JakartaServletFileUpload upload = new JakartaServletFileUpload(DiskFileItemFactory.builder().get()); try { List items = upload.parseRequest(this); From a49bd6539dcdc5dfd53c1a11e7a1b30bda5542cf Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Tue, 13 Jun 2023 12:56:01 +0200 Subject: [PATCH 146/623] fix: as per Servlet spec getSession() creates a session if none exists (see https://stackoverflow.com/a/75471488/3156607) --- .../proxy/internal/servlet/AwsHttpServletRequest.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 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 06786f7fb..e69bb0cd4 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 @@ -144,11 +144,13 @@ public HttpSession getSession(boolean b) { } + /** + * as per Servlet spec this method creates a session if none exists + * @return exisiting or new http session + */ @Override public HttpSession getSession() { - log.debug("Trying to access session. Lambda functions are stateless and should not rely on the session"); - // as per Servlet spec this method should create a session if none exists, so we should change it to getSession(true) in the future - return this.session; + return getSession(true); } From 54659f05a86186482c7e41cb338ca4f1b73e8c1a Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Tue, 13 Jun 2023 14:08:05 +0200 Subject: [PATCH 147/623] chore(deps): Update Jackson dependency to 2.15.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/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 2b4c85b79..28c81422b 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.1', + 'com.fasterxml.jackson.core:jackson-databind:2.15.2', ) implementation("org.glassfish.jersey.media:jersey-media-json-jackson:3.1.2") { 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 31f5a2f1c..e4b248019 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 @@ 1.8 3.1.2 - 2.15.1 + 2.15.2 5.9.3 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 6c27a2dd6..d198e93b0 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.1', + 'com.fasterxml.jackson.core:jackson-databind:2.15.2', ) 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 942de07b1..56038d396 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 @@ 1.8 1.8 - 2.15.1 + 2.15.2 2.9.4 5.9.3 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 5d3bd4f43..ec1354e7d 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.1', + 'com.fasterxml.jackson.core:jackson-databind:2.15.2', '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 de4af4974..126ccc530 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.1') - implementation ('com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.15.1') + implementation ('com.fasterxml.jackson.core:jackson-databind:2.15.2') + implementation ('com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.15.2') 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 d8c4e6964..0a9b32bf3 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 @@ 1.8 1.8 6.1.2 - 2.15.1 + 2.15.2 5.9.3 2.20.0 diff --git a/pom.xml b/pom.xml index 89ad3396e..3a6edf223 100644 --- a/pom.xml +++ b/pom.xml @@ -78,7 +78,7 @@ 0.7 8.2.1 - 2.15.1 + 2.15.2 2.0.7 5.9.3 5.3.1 diff --git a/samples/jersey/pet-store/build.gradle b/samples/jersey/pet-store/build.gradle index bc4742cd8..3bd7dff51 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.1', + 'com.fasterxml.jackson.core:jackson-databind:2.15.2', ) implementation("org.glassfish.jersey.media:jersey-media-json-jackson:3.1.2") { diff --git a/samples/jersey/pet-store/pom.xml b/samples/jersey/pet-store/pom.xml index 3c953f445..c7c4a687f 100644 --- a/samples/jersey/pet-store/pom.xml +++ b/samples/jersey/pet-store/pom.xml @@ -27,7 +27,7 @@ 1.8 1.8 3.1.2 - 2.15.1 + 2.15.2 diff --git a/samples/spark/pet-store/build.gradle b/samples/spark/pet-store/build.gradle index 840e71163..2d0dfaea0 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.1', + 'com.fasterxml.jackson.core:jackson-databind:2.15.2', ) } diff --git a/samples/spark/pet-store/pom.xml b/samples/spark/pet-store/pom.xml index 71ad04bfb..025640202 100644 --- a/samples/spark/pet-store/pom.xml +++ b/samples/spark/pet-store/pom.xml @@ -26,7 +26,7 @@ 1.8 1.8 - 2.15.1 + 2.15.2 2.9.1 diff --git a/samples/spring/pet-store/build.gradle b/samples/spring/pet-store/build.gradle index f92b56bc7..fb6c82f62 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.1', + 'com.fasterxml.jackson.core:jackson-databind:2.15.2', '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 a146276a8..182cedd30 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.1', - 'com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.15.1', + 'com.fasterxml.jackson.core:jackson-databind:2.15.2', + 'com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.15.2', '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 723131629..e2d963b70 100644 --- a/samples/struts/pet-store/pom.xml +++ b/samples/struts/pet-store/pom.xml @@ -27,7 +27,7 @@ 1.8 1.8 6.1.2 - 2.15.1 + 2.15.2 4.13.2 2.20.0 From 7098a4840124a0a1a5af6fa24d777754d01ab3bf Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Thu, 15 Jun 2023 07:19:28 +0200 Subject: [PATCH 148/623] chore(deps): Update Struts dependency to 6.1.2.1 (CVE-2023-34149) --- 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 4f1c10b7f..37df0f2a8 100644 --- a/aws-serverless-java-container-struts/pom.xml +++ b/aws-serverless-java-container-struts/pom.xml @@ -15,7 +15,7 @@ - 6.1.2 + 6.1.2.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 126ccc530..5c5dc0db4 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') { + implementation ('org.apache.struts:struts2-convention-plugin:6.1.2.1') { exclude group: 'org.apache.struts', module: 'struts2-core' } - implementation ('org.apache.struts:struts2-rest-plugin:6.1.2') { + implementation ('org.apache.struts:struts2-rest-plugin:6.1.2.1') { exclude group: 'org.apache.struts', module: 'struts2-core' } - implementation ('org.apache.struts:struts2-bean-validation-plugin:6.1.2') { + implementation ('org.apache.struts:struts2-bean-validation-plugin:6.1.2.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') { + implementation ('org.apache.struts:struts2-core:6.1.2.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.9.3")) testImplementation("org.junit.jupiter:junit-jupiter") - testImplementation('org.apache.struts:struts2-junit-plugin:6.1.2') { + 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 0a9b32bf3..8c3d30e7c 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 @@ 1.8 1.8 - 6.1.2 + 6.1.2.1 2.15.2 5.9.3 2.20.0 diff --git a/samples/struts/pet-store/build.gradle b/samples/struts/pet-store/build.gradle index 182cedd30..b428d9847 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', - 'org.apache.struts:struts2-rest-plugin:6.1.2', - 'org.apache.struts:struts2-bean-validation-plugin:6.1.2', - 'org.apache.struts:struts2-junit-plugin:6.1.2', + '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', '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 e2d963b70..80dff8fdd 100644 --- a/samples/struts/pet-store/pom.xml +++ b/samples/struts/pet-store/pom.xml @@ -26,7 +26,7 @@ 1.8 1.8 - 6.1.2 + 6.1.2.1 2.15.2 4.13.2 2.20.0 From c767944c47c5b4adb334ad925e3c4efd5a1a0e97 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Mon, 19 Jun 2023 10:20:55 +0200 Subject: [PATCH 149/623] chore(deps): use latest Commons Fileupload SNAPSHOT --- .../proxy/internal/servlet/AwsHttpServletRequest.java | 6 +++--- 1 file changed, 3 insertions(+), 3 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 e69bb0cd4..df6627cbd 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,9 +22,9 @@ 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.FileItem; -import org.apache.commons.fileupload2.FileUploadException; -import org.apache.commons.fileupload2.disk.DiskFileItemFactory; +import org.apache.commons.fileupload2.core.FileItem; +import org.apache.commons.fileupload2.core.FileUploadException; +import org.apache.commons.fileupload2.core.disk.DiskFileItemFactory; import org.apache.commons.fileupload2.jakarta.JakartaServletFileUpload; import org.apache.commons.io.FilenameUtils; import org.apache.commons.io.IOUtils; From 3103dc6212c0e3563a56c6482df4f403c1c1889f Mon Sep 17 00:00:00 2001 From: Oleg Zhurakousky Date: Wed, 14 Jun 2023 14:10:28 +0200 Subject: [PATCH 150/623] GH-577 Ensure listeners are notified after dispatch Resolves #577 --- .../serverless/proxy/internal/servlet/AwsAsyncContext.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/AwsAsyncContext.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsAsyncContext.java index 4a46a70fa..7e3642ef0 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 @@ -74,8 +74,8 @@ public void dispatch() { throw new IllegalStateException("Dispatching already started"); } dispatched.set(true); - notifyListeners(NotificationType.START_ASYNC, null); handler.doFilter(req, res, ((AwsServletContext)req.getServletContext()).getServletForPath(req.getRequestURI())); + notifyListeners(NotificationType.START_ASYNC, null); } catch (ServletException | IOException e) { notifyListeners(NotificationType.ERROR, e); } From 55be6718a78b56ca08bafc59c5796a57a5267882 Mon Sep 17 00:00:00 2001 From: Oleg Zhurakousky Date: Thu, 22 Jun 2023 15:09:14 +0200 Subject: [PATCH 151/623] Add test --- .../servlet/AwsHttpServletResponse.java | 4 ++++ .../proxy/spring/ServletAppTest.java | 11 ++++++++++ .../spring/servletapp/MessageController.java | 20 +++++++++++++++++++ 3 files changed, 35 insertions(+) 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 c46af7a9b..f82d062a7 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 @@ -322,6 +322,10 @@ public void write(int b) throws IOException { } } + @Override + public void flush() throws IOException { + flushBuffer(); + } @Override public void close() diff --git a/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/ServletAppTest.java b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/ServletAppTest.java index aacf5444c..b87c80ce6 100644 --- a/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/ServletAppTest.java +++ b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/ServletAppTest.java @@ -38,6 +38,17 @@ public void initServletAppTest(String reqType) { handler = new LambdaHandler(type); } + @MethodSource("data") + @ParameterizedTest + void asyncRequest(String reqType) { + initServletAppTest(reqType); + AwsProxyRequestBuilder req = new AwsProxyRequestBuilder("/async", "POST") + .json() + .body("{\"name\":\"bob\"}"); + AwsProxyResponse resp = handler.handleRequest(req, lambdaContext); + assertEquals("{\"name\":\"BOB\"}", resp.getBody()); + } + @MethodSource("data") @ParameterizedTest void helloRequest_respondsWithSingleMessage(String reqType) { diff --git a/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/servletapp/MessageController.java b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/servletapp/MessageController.java index 927822a4e..a40d2c206 100644 --- a/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/servletapp/MessageController.java +++ b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/servletapp/MessageController.java @@ -5,9 +5,13 @@ import org.springframework.http.ResponseEntity; import org.springframework.validation.Errors; import org.springframework.web.bind.annotation.*; +import org.springframework.web.context.request.async.DeferredResult; import org.springframework.web.server.ResponseStatusException; import jakarta.validation.Valid; +import reactor.core.publisher.Mono; + +import java.util.Collections; import java.util.HashMap; import java.util.Map; @@ -18,6 +22,22 @@ public class MessageController { public static final String UTF8_RESPONSE = "öüäß фрыцшщ"; public static final String EX_MESSAGE = "404 exception message"; + + @RequestMapping(path="/hi", method=RequestMethod.GET, produces = {"text/plain"}) + public Mono hi() { + return Mono.just(HELLO_MESSAGE); + } + + @SuppressWarnings({ "unchecked", "rawtypes" }) + @RequestMapping(path = "/async", method = RequestMethod.POST) + @ResponseBody + public DeferredResult> asyncResult(@RequestBody Map value) { + DeferredResult result = new DeferredResult<>(); + result.setResult(Collections.singletonMap("name", value.get("name").toUpperCase())); + return result; + } + + @RequestMapping(path="/hello", method=RequestMethod.GET, produces = {"text/plain"}) public String hello() { return HELLO_MESSAGE; From 58df143c3032e076f2266b16e14e4ff14ff79830 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Thu, 22 Jun 2023 16:34:45 +0200 Subject: [PATCH 152/623] chore(deps): Update Spring dependencies (framework to 6.0.10, security to 6.1.1, boot to 3.1.1) --- 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/pet-store/build.gradle | 2 +- samples/springboot3/pet-store/pom.xml | 2 +- 10 files changed, 15 insertions(+), 15 deletions(-) diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml index c734576a4..9f01bd60f 100644 --- a/aws-serverless-java-container-spring/pom.xml +++ b/aws-serverless-java-container-spring/pom.xml @@ -16,8 +16,8 @@ - 6.0.9 - 6.1.0 + 6.0.10 + 6.1.1 diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml index 8e7d42a04..a6a0e1880 100644 --- a/aws-serverless-java-container-springboot3/pom.xml +++ b/aws-serverless-java-container-springboot3/pom.xml @@ -15,9 +15,9 @@ 2.0.0-SNAPSHOT - 6.0.9 - 3.1.0 - 6.1.0 + 6.0.10 + 3.1.1 + 6.1.1 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 ec1354e7d..7c14db0dd 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.9', - 'org.springframework:spring-context:6.0.9', + 'org.springframework:spring-webmvc:6.0.10', + 'org.springframework:spring-context:6.0.10', '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 4150f629f..8c1ff6466 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 @@ 1.8 1.8 - 6.0.9 + 6.0.10 5.9.3 2.20.0 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 0daf12985..6de5e677e 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 @@ -7,7 +7,7 @@ repositories { dependencies { implementation ( - 'org.springframework.boot:spring-boot-starter-web:3.1.0', + 'org.springframework.boot:spring-boot-starter-web:3.1.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 d5b1d7953..17772cddd 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 @@ org.springframework.boot spring-boot-starter-parent - 3.1.0 + 3.1.1 diff --git a/samples/spring/pet-store/build.gradle b/samples/spring/pet-store/build.gradle index fb6c82f62..82048da2b 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.9', - 'org.springframework:spring-context:6.0.9', + 'org.springframework:spring-webmvc:6.0.10', + 'org.springframework:spring-context:6.0.10', '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 9958e007c..ff6e2c939 100644 --- a/samples/spring/pet-store/pom.xml +++ b/samples/spring/pet-store/pom.xml @@ -24,7 +24,7 @@ - 6.0.9 + 6.0.10 4.13.2 2.20.0 17 diff --git a/samples/springboot3/pet-store/build.gradle b/samples/springboot3/pet-store/build.gradle index 216fc83ec..6d0270f40 100644 --- a/samples/springboot3/pet-store/build.gradle +++ b/samples/springboot3/pet-store/build.gradle @@ -7,7 +7,7 @@ repositories { dependencies { implementation ( - implementation('org.springframework.boot:spring-boot-starter-web:3.1.0') { + implementation('org.springframework.boot:spring-boot-starter-web:3.1.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 ba3edc696..8a0053fdd 100644 --- a/samples/springboot3/pet-store/pom.xml +++ b/samples/springboot3/pet-store/pom.xml @@ -13,7 +13,7 @@ org.springframework.boot spring-boot-starter-parent - 3.1.0 + 3.1.1 From 1a85422619ab1fe8a942a3035c3c1037c9b0b334 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Thu, 22 Jun 2023 16:40:14 +0200 Subject: [PATCH 153/623] chore(deps): remove old Junit dependency from sample (unused) --- samples/spring/pet-store/pom.xml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/samples/spring/pet-store/pom.xml b/samples/spring/pet-store/pom.xml index ff6e2c939..281a00219 100644 --- a/samples/spring/pet-store/pom.xml +++ b/samples/spring/pet-store/pom.xml @@ -25,7 +25,6 @@ 6.0.10 - 4.13.2 2.20.0 17 17 @@ -86,13 +85,6 @@ aws-lambda-java-log4j2 1.5.1 - - - junit - junit - ${junit.version} - test - From b422a376caa1d36d37f9616ca8dfab01e63aa1dd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 22 Jun 2023 14:42:21 +0000 Subject: [PATCH 154/623] chore(deps): bump dependency-check-maven from 8.2.1 to 8.3.1 Bumps [dependency-check-maven](https://github.com/jeremylong/DependencyCheck) from 8.2.1 to 8.3.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.2.1...v8.3.1) --- updated-dependencies: - dependency-name: org.owasp:dependency-check-maven dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 3a6edf223..f43fff9ec 100644 --- a/pom.xml +++ b/pom.xml @@ -77,7 +77,7 @@ 0.7 - 8.2.1 + 8.3.1 2.15.2 2.0.7 5.9.3 From 56dd87b52d6413a5c9981ebaa2b224ad03691ed7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 22 Jun 2023 14:42:32 +0000 Subject: [PATCH 155/623] chore(deps-dev): bump mockito-core from 5.3.1 to 5.4.0 Bumps [mockito-core](https://github.com/mockito/mockito) from 5.3.1 to 5.4.0. - [Release notes](https://github.com/mockito/mockito/releases) - [Commits](https://github.com/mockito/mockito/compare/v5.3.1...v5.4.0) --- updated-dependencies: - dependency-name: org.mockito:mockito-core dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 3a6edf223..26566413b 100644 --- a/pom.xml +++ b/pom.xml @@ -81,7 +81,7 @@ 2.15.2 2.0.7 5.9.3 - 5.3.1 + 5.4.0 1.3 UTF-8 From 43c66bf4e822149a4c6bd6253316b0949a301046 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Mon, 26 Jun 2023 06:37:54 +0200 Subject: [PATCH 156/623] chore(deps): update maven-shade-plugin to 3.5.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/pet-store/pom.xml | 2 +- 6 files changed, 6 insertions(+), 6 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 e4b248019..a59bebfbe 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 @@ org.apache.maven.plugins maven-shade-plugin - 3.4.1 + 3.5.0 false 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 8c1ff6466..b9d3d72df 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 @@ org.apache.maven.plugins maven-shade-plugin - 3.4.1 + 3.5.0 package 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 17772cddd..2be47cff2 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 @@ org.apache.maven.plugins maven-shade-plugin - 3.4.1 + 3.5.0 false diff --git a/samples/jersey/pet-store/pom.xml b/samples/jersey/pet-store/pom.xml index c7c4a687f..786163929 100644 --- a/samples/jersey/pet-store/pom.xml +++ b/samples/jersey/pet-store/pom.xml @@ -85,7 +85,7 @@ org.apache.maven.plugins maven-shade-plugin - 3.4.1 + 3.5.0 false diff --git a/samples/spring/pet-store/pom.xml b/samples/spring/pet-store/pom.xml index 281a00219..684623a59 100644 --- a/samples/spring/pet-store/pom.xml +++ b/samples/spring/pet-store/pom.xml @@ -95,7 +95,7 @@ org.apache.maven.plugins maven-shade-plugin - 3.4.1 + 3.5.0 package diff --git a/samples/springboot3/pet-store/pom.xml b/samples/springboot3/pet-store/pom.xml index 8a0053fdd..d246cb406 100644 --- a/samples/springboot3/pet-store/pom.xml +++ b/samples/springboot3/pet-store/pom.xml @@ -55,7 +55,7 @@ org.apache.maven.plugins maven-shade-plugin - 3.4.1 + 3.5.0 false From 52feba7c2e1daad4d2c227ada73077d756d42e7c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Jun 2023 04:56:36 +0000 Subject: [PATCH 157/623] chore(deps): bump commons-codec from 1.15 to 1.16.0 Bumps [commons-codec](https://github.com/apache/commons-codec) from 1.15 to 1.16.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.15...rel/commons-codec-1.16.0) --- updated-dependencies: - dependency-name: commons-codec:commons-codec dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- 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 d4e9f42a8..246c4134c 100644 --- a/aws-serverless-java-container-jersey/pom.xml +++ b/aws-serverless-java-container-jersey/pom.xml @@ -64,7 +64,7 @@ commons-codec commons-codec - 1.15 + 1.16.0 test diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml index 9f01bd60f..1423ddf22 100644 --- a/aws-serverless-java-container-spring/pom.xml +++ b/aws-serverless-java-container-spring/pom.xml @@ -53,7 +53,7 @@ commons-codec commons-codec - 1.15 + 1.16.0 test From a5dcb552501757ad1da8a331f76b02cf15832600 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Jun 2023 04:56:40 +0000 Subject: [PATCH 158/623] chore(deps): bump hibernate-validator from 8.0.0.Final to 8.0.1.Final Bumps [hibernate-validator](https://github.com/hibernate/hibernate-validator) from 8.0.0.Final to 8.0.1.Final. - [Changelog](https://github.com/hibernate/hibernate-validator/blob/main/changelog.txt) - [Commits](https://github.com/hibernate/hibernate-validator/compare/8.0.0.Final...8.0.1.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] --- 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 9f01bd60f..25b90b881 100644 --- a/aws-serverless-java-container-spring/pom.xml +++ b/aws-serverless-java-container-spring/pom.xml @@ -75,7 +75,7 @@ org.hibernate.validator hibernate-validator - 8.0.0.Final + 8.0.1.Final test diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml index a6a0e1880..7b0afefa6 100644 --- a/aws-serverless-java-container-springboot3/pom.xml +++ b/aws-serverless-java-container-springboot3/pom.xml @@ -155,7 +155,7 @@ org.hibernate.validator hibernate-validator - 8.0.0.Final + 8.0.1.Final test From 31643df429cb4d5b6e0e48a37e3d8b90e3914bec Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Jun 2023 04:56:45 +0000 Subject: [PATCH 159/623] chore(deps): bump maven-clean-plugin from 3.2.0 to 3.3.1 Bumps [maven-clean-plugin](https://github.com/apache/maven-clean-plugin) from 3.2.0 to 3.3.1. - [Release notes](https://github.com/apache/maven-clean-plugin/releases) - [Commits](https://github.com/apache/maven-clean-plugin/compare/maven-clean-plugin-3.2.0...maven-clean-plugin-3.3.1) --- 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] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 69950a0f5..7a97652c9 100644 --- a/pom.xml +++ b/pom.xml @@ -211,7 +211,7 @@ org.apache.maven.plugins maven-clean-plugin - 3.2.0 + 3.3.1 org.apache.maven.plugins From 207d4a7c17c8d35faa320895963d48872add6cea Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Jun 2023 04:56:58 +0000 Subject: [PATCH 160/623] chore(deps): bump spring-security.version from 6.1.0 to 6.1.1 Bumps `spring-security.version` from 6.1.0 to 6.1.1. Updates `spring-security-web` from 6.1.0 to 6.1.1 - [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.1.0...6.1.1) Updates `spring-security-config` from 6.1.1 to 6.1.1 - [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.1.1...6.1.1) --- updated-dependencies: - dependency-name: org.springframework.security:spring-security-web dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.security:spring-security-config dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- 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 4b217850c..ca4f689e2 100644 --- a/aws-serverless-java-container-core/pom.xml +++ b/aws-serverless-java-container-core/pom.xml @@ -75,7 +75,7 @@ org.springframework.security spring-security-web - 6.1.0 + 6.1.1 test From fb9b2cb7188c57288bf00d50023fe71bcd88f295 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Thu, 29 Jun 2023 09:16:35 +0200 Subject: [PATCH 161/623] chore: add OWASP suppression for CVE-2023-35116 (false positive as per https://github.com/FasterXML/jackson-databind/issues/3972) --- aws-serverless-java-container-core/pom.xml | 3 +++ aws-serverless-java-container-jersey/pom.xml | 3 +++ aws-serverless-java-container-spark/pom.xml | 3 +++ aws-serverless-java-container-spring/pom.xml | 3 +++ .../pom.xml | 3 +++ aws-serverless-java-container-struts/pom.xml | 3 +++ owasp-suppression.xml | 27 +++++++++++++++++++ 7 files changed, 45 insertions(+) create mode 100644 owasp-suppression.xml diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml index ca4f689e2..3eed2022e 100644 --- a/aws-serverless-java-container-core/pom.xml +++ b/aws-serverless-java-container-core/pom.xml @@ -169,6 +169,9 @@ ${dependencyCheck.version} true + + ${project.basedir}/../owasp-suppression.xml + 7 false diff --git a/aws-serverless-java-container-jersey/pom.xml b/aws-serverless-java-container-jersey/pom.xml index 246c4134c..db3f9dd0c 100644 --- a/aws-serverless-java-container-jersey/pom.xml +++ b/aws-serverless-java-container-jersey/pom.xml @@ -192,6 +192,9 @@ ${dependencyCheck.version} true + + ${project.basedir}/../owasp-suppression.xml + 7 false diff --git a/aws-serverless-java-container-spark/pom.xml b/aws-serverless-java-container-spark/pom.xml index 8dd1abe28..8987d66aa 100644 --- a/aws-serverless-java-container-spark/pom.xml +++ b/aws-serverless-java-container-spark/pom.xml @@ -114,6 +114,9 @@ ${dependencyCheck.version} true + + ${project.basedir}/../owasp-suppression.xml + 7 false diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml index 7b051a6f7..9a2b077e8 100644 --- a/aws-serverless-java-container-spring/pom.xml +++ b/aws-serverless-java-container-spring/pom.xml @@ -235,6 +235,9 @@ ${dependencyCheck.version} true + + ${project.basedir}/../owasp-suppression.xml + 7 false diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml index 7b0afefa6..507f6b8e2 100644 --- a/aws-serverless-java-container-springboot3/pom.xml +++ b/aws-serverless-java-container-springboot3/pom.xml @@ -265,6 +265,9 @@ ${dependencyCheck.version} true + + ${project.basedir}/../owasp-suppression.xml + 7 false diff --git a/aws-serverless-java-container-struts/pom.xml b/aws-serverless-java-container-struts/pom.xml index 37df0f2a8..cba005e90 100644 --- a/aws-serverless-java-container-struts/pom.xml +++ b/aws-serverless-java-container-struts/pom.xml @@ -182,6 +182,9 @@ ${dependencyCheck.version} true + + ${project.basedir}/../owasp-suppression.xml + 7 false diff --git a/owasp-suppression.xml b/owasp-suppression.xml new file mode 100644 index 000000000..0f16cbd34 --- /dev/null +++ b/owasp-suppression.xml @@ -0,0 +1,27 @@ + + + + + + + ^pkg:maven/com.fasterxml.jackson.core/jackson-databind@.*$ + CVE-2023-35116 + + \ No newline at end of file From bc106c79a7948309761005e4ad5c8325366be761 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 3 Jul 2023 04:03:42 +0000 Subject: [PATCH 162/623] chore(deps): bump spotbugs-maven-plugin from 4.7.3.4 to 4.7.3.5 Bumps [spotbugs-maven-plugin](https://github.com/spotbugs/spotbugs-maven-plugin) from 4.7.3.4 to 4.7.3.5. - [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.4...spotbugs-maven-plugin-4.7.3.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] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 7a97652c9..6eb0965ce 100644 --- a/pom.xml +++ b/pom.xml @@ -249,7 +249,7 @@ com.github.spotbugs spotbugs-maven-plugin - 4.7.3.4 + 4.7.3.5 + + org.springframework.cloud + spring-cloud-function-serverless-web + 4.1.0-SNAPSHOT + com.amazonaws.serverless aws-serverless-java-container-core 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 new file mode 100644 index 000000000..9647aad2f --- /dev/null +++ b/aws-serverless-java-container-springboot3/src/main/java/com/amazonaws/serverless/proxy/spring/SpringDelegatingLambdaContainerHandler.java @@ -0,0 +1,119 @@ +package com.amazonaws.serverless.proxy.spring; + +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.ProxyHttpServletRequest; +import org.springframework.cloud.function.serverless.web.ProxyMvc; + +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; + +import jakarta.servlet.http.HttpServletRequest; + +/* + * Copyright 2023 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. + */ + +/** + * An implementation of {@link RequestStreamHandler} which delegates to + * Spring Cloud Function serverless web module managed by Spring team. + * + * It requires no sub-classing from the user other then being identified as "Handler". + * The configuration class(es) should be provided via MAIN_CLASS environment variable. + * + */ +public class SpringDelegatingLambdaContainerHandler implements RequestStreamHandler { + + private final Class[] startupClasses; + + private final ProxyMvc mvc; + + private final ObjectMapper mapper; + + private final AwsProxyHttpServletResponseWriter responseWriter; + + public SpringDelegatingLambdaContainerHandler(Class... startupClasses) { + this.startupClasses = startupClasses; + this.mvc = ProxyMvc.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); + + CountDownLatch latch = new CountDownLatch(1); + AwsHttpServletResponse httpServletResponse = new AwsHttpServletResponse(httpServletRequest, latch); + try { + mvc.service(httpServletRequest, httpServletResponse); + latch.await(10, TimeUnit.SECONDS); + 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()); + 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()); + 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/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 new file mode 100644 index 000000000..50bedc320 --- /dev/null +++ b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/SpringDelegatingLambdaContainerHandlerTests.java @@ -0,0 +1,300 @@ +package com.amazonaws.serverless.proxy.spring; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import java.io.ByteArrayInputStream; +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 org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; +import org.springframework.util.CollectionUtils; + +import com.amazonaws.serverless.proxy.spring.servletapp.MessageData; +import com.amazonaws.serverless.proxy.spring.servletapp.ServletApplication; +import com.amazonaws.serverless.proxy.spring.servletapp.UserData; +import com.fasterxml.jackson.databind.ObjectMapper; + +import jakarta.ws.rs.core.HttpHeaders; + +public class SpringDelegatingLambdaContainerHandlerTests { + + 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" + + " \"identity\": {\n" + + " \"accessKey\": null,\n" + + " \"accountId\": null,\n" + + " \"caller\": null,\n" + + " \"cognitoAmr\": null,\n" + + " \"cognitoAuthenticationProvider\": null,\n" + + " \"cognitoAuthenticationType\": null,\n" + + " \"cognitoIdentityId\": null,\n" + + " \"cognitoIdentityPoolId\": null,\n" + + " \"principalOrgId\": null,\n" + + " \"sourceIp\": \"109.210.252.44\",\n" + + " \"user\": null,\n" + + " \"userAgent\": \"curl/7.79.1\",\n" + + " \"userArn\": null\n" + + " },\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\": \"/my/path\",\n" + + " \"rawQueryString\": \"parameter1=value1¶meter1=value2¶meter2=value\",\n" + + " \"cookies\": [\n" + + " \"cookie1\",\n" + + " \"cookie2\"\n" + + " ],\n" + + " \"headers\": {\n" + + " \"header1\": \"value1\",\n" + + " \"header2\": \"value1,value2\"\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\": \"/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" + + " \"pathParameters\": {\n" + + " \"parameter1\": \"value1\"\n" + + " },\n" + + " \"isBase64Encoded\": false,\n" + + " \"stageVariables\": {\n" + + " \"stageVariable1\": \"value1\",\n" + + " \"stageVariable2\": \"value2\"\n" + + " }\n" + + "}"; + + private SpringDelegatingLambdaContainerHandler handler; + + private ObjectMapper mapper = new ObjectMapper(); + + public void initServletAppTest() { + this.handler = new SpringDelegatingLambdaContainerHandler(ServletApplication.class); + } + + public static Collection data() { + return Arrays.asList(new String[]{API_GATEWAY_EVENT, API_GATEWAY_EVENT_V2}); + } + + @MethodSource("data") + @ParameterizedTest + public void testAsyncPost(String jsonEvent) throws Exception { + initServletAppTest(); + InputStream targetStream = new ByteArrayInputStream(this.generateHttpRequest(jsonEvent, "POST", "/async", "{\"name\":\"bob\"}", null)); + ByteArrayOutputStream output = new ByteArrayOutputStream(); + handler.handleRequest(targetStream, output, null); + System.out.println(output.toString(StandardCharsets.UTF_8)); + } + + @MethodSource("data") + @ParameterizedTest + 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)); + ByteArrayOutputStream output = new ByteArrayOutputStream(); + handler.handleRequest(targetStream, output, null); + System.out.println(output.toString(StandardCharsets.UTF_8)); + } + + @MethodSource("data") + @ParameterizedTest + public void testValidate200(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", mapper.writeValueAsString(ud), null)); + ByteArrayOutputStream output = new ByteArrayOutputStream(); + handler.handleRequest(targetStream, output, null); + System.out.println(output.toString(StandardCharsets.UTF_8)); + } + + @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)); + ByteArrayOutputStream output = new ByteArrayOutputStream(); + handler.handleRequest(targetStream, output, null); + System.out.println(output.toString(StandardCharsets.UTF_8)); + } + + @SuppressWarnings({ "rawtypes", "unchecked" }) + @MethodSource("data") + @ParameterizedTest + void messageObject_propertiesInContentType_returnsCorrectMessage(String jsonEvent) throws Exception { + initServletAppTest(); + + Map headers = new HashMap<>(); + 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)); + + ByteArrayOutputStream output = new ByteArrayOutputStream(); + handler.handleRequest(targetStream, output, null); + Map result = mapper.readValue(output.toString(StandardCharsets.UTF_8), Map.class); + assertEquals("test message", result.get("body")); + } + + @SuppressWarnings({ "rawtypes" }) + private byte[] generateHttpRequest(String jsonEvent, String method, String path, String body, 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 generateHttpRequest(requestMap, method, path, body, headers); + } + + @SuppressWarnings({ "unchecked", "rawtypes" }) + private byte[] generateHttpRequest(Map requestMap, String method, String path, String body, Map headers) throws Exception { + requestMap.put("path", path); + requestMap.put("httpMethod", method); + requestMap.put("body", body); + if (!CollectionUtils.isEmpty(headers)) { + requestMap.put("headers", headers); + } + return mapper.writeValueAsBytes(requestMap); + } + + @SuppressWarnings({ "unchecked", "rawtypes" }) + private byte[] generateHttpRequest2(Map requestMap, String method, String path, String body, 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); + if (!CollectionUtils.isEmpty(headers)) { + map.put("headers", headers); + } + return mapper.writeValueAsBytes(map); + } +} From 42e0309fb2c65f195e98e07d8714cf0ccde275df Mon Sep 17 00:00:00 2001 From: Oleg Zhurakousky Date: Wed, 28 Jun 2023 18:29:53 +0200 Subject: [PATCH 164/623] Add spring snapshot repo --- .../pom.xml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml index 94c671cd8..37cc85156 100644 --- a/aws-serverless-java-container-springboot3/pom.xml +++ b/aws-serverless-java-container-springboot3/pom.xml @@ -286,4 +286,22 @@ + + + spring-snapshots + Spring Snapshots + https://repo.spring.io/snapshot + + true + + + + spring-milestones + Spring Milestones + https://repo.spring.io/milestone + + false + + + From fb6f20504f7b93d9a5b1e3f0141ac3ba3fd4f669 Mon Sep 17 00:00:00 2001 From: Oleg Zhurakousky Date: Thu, 29 Jun 2023 08:37:36 +0200 Subject: [PATCH 165/623] Fix tests assertions --- ...DelegatingLambdaContainerHandlerTests.java | 24 ++++++++++++------- 1 file changed, 16 insertions(+), 8 deletions(-) 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 50bedc320..8b50eb9f5 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 @@ -22,6 +22,7 @@ import jakarta.ws.rs.core.HttpHeaders; +@SuppressWarnings("rawtypes") public class SpringDelegatingLambdaContainerHandlerTests { private static String API_GATEWAY_EVENT = "{\n" @@ -208,7 +209,9 @@ public void testAsyncPost(String jsonEvent) throws Exception { InputStream targetStream = new ByteArrayInputStream(this.generateHttpRequest(jsonEvent, "POST", "/async", "{\"name\":\"bob\"}", null)); ByteArrayOutputStream output = new ByteArrayOutputStream(); handler.handleRequest(targetStream, output, null); - System.out.println(output.toString(StandardCharsets.UTF_8)); + Map result = mapper.readValue(output.toString(StandardCharsets.UTF_8), Map.class); + assertEquals(200, result.get("statusCode")); + assertEquals("{\"name\":\"BOB\"}", result.get("body")); } @MethodSource("data") @@ -219,7 +222,9 @@ public void testValidate400(String jsonEvent) throws Exception { InputStream targetStream = new ByteArrayInputStream(this.generateHttpRequest(jsonEvent, "POST", "/validate", mapper.writeValueAsString(ud), null)); ByteArrayOutputStream output = new ByteArrayOutputStream(); handler.handleRequest(targetStream, output, null); - System.out.println(output.toString(StandardCharsets.UTF_8)); + Map result = mapper.readValue(output.toString(StandardCharsets.UTF_8), Map.class); + assertEquals(400, result.get("statusCode")); + assertEquals("3", result.get("body")); } @MethodSource("data") @@ -233,7 +238,9 @@ public void testValidate200(String jsonEvent) throws Exception { InputStream targetStream = new ByteArrayInputStream(this.generateHttpRequest(jsonEvent, "POST", "/validate", mapper.writeValueAsString(ud), null)); ByteArrayOutputStream output = new ByteArrayOutputStream(); handler.handleRequest(targetStream, output, null); - System.out.println(output.toString(StandardCharsets.UTF_8)); + Map result = mapper.readValue(output.toString(StandardCharsets.UTF_8), Map.class); + assertEquals(200, result.get("statusCode")); + assertEquals("VALID", result.get("body")); } @MethodSource("data") @@ -244,10 +251,12 @@ public void messageObject_parsesObject_returnsCorrectMessage(String jsonEvent) t mapper.writeValueAsString(new MessageData("test message")), null)); ByteArrayOutputStream output = new ByteArrayOutputStream(); handler.handleRequest(targetStream, output, null); - System.out.println(output.toString(StandardCharsets.UTF_8)); + Map result = mapper.readValue(output.toString(StandardCharsets.UTF_8), Map.class); + assertEquals(200, result.get("statusCode")); + assertEquals("VALID", result.get("test message")); } - @SuppressWarnings({ "rawtypes", "unchecked" }) + @SuppressWarnings({"unchecked" }) @MethodSource("data") @ParameterizedTest void messageObject_propertiesInContentType_returnsCorrectMessage(String jsonEvent) throws Exception { @@ -265,7 +274,6 @@ void messageObject_propertiesInContentType_returnsCorrectMessage(String jsonEven assertEquals("test message", result.get("body")); } - @SuppressWarnings({ "rawtypes" }) private byte[] generateHttpRequest(String jsonEvent, String method, String path, String body, Map headers) throws Exception { Map requestMap = mapper.readValue(jsonEvent, Map.class); if (requestMap.get("version").equals("2.0")) { @@ -274,7 +282,7 @@ private byte[] generateHttpRequest(String jsonEvent, String method, String path, return generateHttpRequest(requestMap, method, path, body, headers); } - @SuppressWarnings({ "unchecked", "rawtypes" }) + @SuppressWarnings({ "unchecked"}) private byte[] generateHttpRequest(Map requestMap, String method, String path, String body, Map headers) throws Exception { requestMap.put("path", path); requestMap.put("httpMethod", method); @@ -285,7 +293,7 @@ private byte[] generateHttpRequest(Map requestMap, String method, String path, S return mapper.writeValueAsBytes(requestMap); } - @SuppressWarnings({ "unchecked", "rawtypes" }) + @SuppressWarnings({ "unchecked"}) private byte[] generateHttpRequest2(Map requestMap, String method, String path, String body, Map headers) throws Exception { Map map = mapper.readValue(API_GATEWAY_EVENT_V2, Map.class); Map http = (Map) ((Map) map.get("requestContext")).get("http"); From 6fb6ff266a8fe5b70c2b2d583e5d6df710df1149 Mon Sep 17 00:00:00 2001 From: Oleg Zhurakousky Date: Fri, 30 Jun 2023 11:41:01 +0200 Subject: [PATCH 166/623] Fix tests --- .../spring/SpringDelegatingLambdaContainerHandlerTests.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 8b50eb9f5..e242ea6e3 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 @@ -253,7 +253,7 @@ public void messageObject_parsesObject_returnsCorrectMessage(String jsonEvent) t 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("test message")); + assertEquals("test message", result.get("body")); } @SuppressWarnings({"unchecked" }) From 42d92bb8440d955f5bf06b225256ae7b717f3bdb Mon Sep 17 00:00:00 2001 From: Oleg Zhurakousky Date: Fri, 30 Jun 2023 13:17:28 +0200 Subject: [PATCH 167/623] Add spring snapshot/milestone repo to gradle file of pet-store sample --- samples/springboot3/pet-store/build.gradle | 2 ++ 1 file changed, 2 insertions(+) diff --git a/samples/springboot3/pet-store/build.gradle b/samples/springboot3/pet-store/build.gradle index 6d0270f40..00a9d3a1f 100644 --- a/samples/springboot3/pet-store/build.gradle +++ b/samples/springboot3/pet-store/build.gradle @@ -3,6 +3,8 @@ apply plugin: 'java' repositories { mavenLocal() mavenCentral() + maven {url "https://repo.spring.io/milestone"} + maven {url "https://repo.spring.io/snapshot"} } dependencies { From 870d75ec56da7a1faf158a049d908b32403f647e Mon Sep 17 00:00:00 2001 From: Oleg Zhurakousky Date: Fri, 30 Jun 2023 13:28:55 +0200 Subject: [PATCH 168/623] Add spring snapshot/milestone repo to gradle file of springboot3 archetype --- .../src/main/resources/archetype-resources/build.gradle | 2 ++ 1 file changed, 2 insertions(+) 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 6de5e677e..13c8e76b2 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 @@ -3,6 +3,8 @@ apply plugin: 'java' repositories { mavenLocal() mavenCentral() + maven {url "https://repo.spring.io/milestone"} + maven {url "https://repo.spring.io/snapshot"} } dependencies { From 801890d09ce7de593b271e393bb86dffed088c57 Mon Sep 17 00:00:00 2001 From: Oleg Zhurakousky Date: Fri, 30 Jun 2023 17:33:26 +0200 Subject: [PATCH 169/623] Add sample and documentation --- .gitignore | 3 + ...pringDelegatingLambdaContainerHandler.java | 35 +++- samples/springboot3/alt-pet-store/README.md | 39 +++++ .../springboot3/alt-pet-store/builds.gradle | 29 ++++ samples/springboot3/alt-pet-store/pom.xml | 154 ++++++++++++++++++ .../alt-pet-store/src/assembly/bin.xml | 27 +++ .../sample/springboot3/Application.java | 51 ++++++ .../controller/PetsController.java | 77 +++++++++ .../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/logback.xml | 5 + .../springboot3/alt-pet-store/template.yml | 41 +++++ 14 files changed, 726 insertions(+), 5 deletions(-) create mode 100644 samples/springboot3/alt-pet-store/README.md create mode 100644 samples/springboot3/alt-pet-store/builds.gradle create mode 100644 samples/springboot3/alt-pet-store/pom.xml create mode 100644 samples/springboot3/alt-pet-store/src/assembly/bin.xml create mode 100644 samples/springboot3/alt-pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/Application.java create mode 100644 samples/springboot3/alt-pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/controller/PetsController.java create mode 100644 samples/springboot3/alt-pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/filter/CognitoIdentityFilter.java create mode 100644 samples/springboot3/alt-pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/model/Error.java create mode 100644 samples/springboot3/alt-pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/model/Pet.java create mode 100644 samples/springboot3/alt-pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/model/PetData.java create mode 100644 samples/springboot3/alt-pet-store/src/main/resources/logback.xml create mode 100644 samples/springboot3/alt-pet-store/template.yml diff --git a/.gitignore b/.gitignore index 8f6b9d359..2aa1654c2 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,9 @@ *.jar *.war *.ear +*.project +*.classpath +*.settings # Idea project files .idea/ 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 9647aad2f..46ccfb13b 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,27 @@ import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; +import java.net.URL; import java.nio.charset.StandardCharsets; +import java.util.Collections; +import java.util.List; import java.util.Map; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; +import java.util.jar.JarFile; +import java.util.jar.Manifest; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +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.core.KotlinDetector; +import org.springframework.core.io.Resource; +import org.springframework.core.io.support.PathMatchingResourcePatternResolver; +import org.springframework.util.Assert; +import org.springframework.util.ClassUtils; +import org.springframework.util.StringUtils; import com.amazonaws.serverless.proxy.AwsHttpApiV2SecurityContextWriter; import com.amazonaws.serverless.proxy.AwsProxySecurityContextWriter; @@ -48,6 +62,8 @@ */ public class SpringDelegatingLambdaContainerHandler implements RequestStreamHandler { + private static Log logger = LogFactory.getLog(SpringDelegatingLambdaContainerHandler.class); + private final Class[] startupClasses; private final ProxyMvc mvc; @@ -56,6 +72,10 @@ public class SpringDelegatingLambdaContainerHandler implements RequestStreamHand private final AwsProxyHttpServletResponseWriter responseWriter; + public SpringDelegatingLambdaContainerHandler() { + this(new Class[] {FunctionClassUtils.getStartClass()}); + } + public SpringDelegatingLambdaContainerHandler(Class... startupClasses) { this.startupClasses = startupClasses; this.mvc = ProxyMvc.INSTANCE(this.startupClasses); @@ -84,15 +104,17 @@ public void handleRequest(InputStream input, OutputStream output, Context lambda } } - @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()); - httpRequest.setContentType("application/json"); - httpRequest.setContent(v1Request.getBody().getBytes(StandardCharsets.UTF_8)); + + 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); @@ -107,8 +129,11 @@ public HttpServletRequest generateRequest2(Map request, Context lambdaContext, S HttpApiV2ProxyRequest v2Request = this.mapper.convertValue(request, HttpApiV2ProxyRequest.class); ProxyHttpServletRequest httpRequest = new ProxyHttpServletRequest(this.mvc.getApplicationContext().getServletContext(), v2Request.getRequestContext().getHttp().getMethod(), v2Request.getRequestContext().getHttp().getPath()); - httpRequest.setContentType("application/json"); - httpRequest.setContent(v2Request.getBody().getBytes(StandardCharsets.UTF_8)); + + 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); diff --git a/samples/springboot3/alt-pet-store/README.md b/samples/springboot3/alt-pet-store/README.md new file mode 100644 index 000000000..d8cf8383d --- /dev/null +++ b/samples/springboot3/alt-pet-store/README.md @@ -0,0 +1,39 @@ +# Serverless Spring Boot 3 example +A basic pet store written with the [Spring Boot 3 framework](https://projects.spring.io/spring-boot/). Unlike older examples, this example is relying on the new +`SpringDelegatingLambdaContainerHandler`, which you simply need to identify as a _handler_ of the Lambda function. The main configuration class identified as `MAIN_CLASS` +environment variable or `Start-Class` or `Main-Class` entry in Manifest file. See provided `template.yml` file for reference. + + +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/springboot3/alt-pet-store/builds.gradle b/samples/springboot3/alt-pet-store/builds.gradle new file mode 100644 index 000000000..00a9d3a1f --- /dev/null +++ b/samples/springboot3/alt-pet-store/builds.gradle @@ -0,0 +1,29 @@ +apply plugin: 'java' + +repositories { + mavenLocal() + mavenCentral() + maven {url "https://repo.spring.io/milestone"} + maven {url "https://repo.spring.io/snapshot"} +} + +dependencies { + implementation ( + implementation('org.springframework.boot:spring-boot-starter-web:3.1.1') { + exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat' + }, + 'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)', + ) +} + +task buildZip(type: Zip) { + from compileJava + from processResources + into('lib') { + from(configurations.compileClasspath) { + exclude 'tomcat-embed-*' + } + } +} + +build.dependsOn buildZip diff --git a/samples/springboot3/alt-pet-store/pom.xml b/samples/springboot3/alt-pet-store/pom.xml new file mode 100644 index 000000000..a8f6220b5 --- /dev/null +++ b/samples/springboot3/alt-pet-store/pom.xml @@ -0,0 +1,154 @@ + + + 4.0.0 + + com.amazonaws.serverless.sample + petstore-springboot3-example + 2.0-SNAPSHOT + Spring Boot example for the aws-serverless-java-container library + Simple pet store written with the Spring framework and Spring Boot + https://aws.amazon.com/lambda/ + + + org.springframework.boot + spring-boot-starter-parent + 3.1.1 + + + + + The Apache Software License, Version 2.0 + http://www.apache.org/licenses/LICENSE-2.0.txt + repo + + + + + 17 + + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-tomcat + + + + + + com.amazonaws.serverless + aws-serverless-java-container-springboot3 + 2.0.0-SNAPSHOT + + + + + + shaded-jar + + + + org.apache.maven.plugins + maven-shade-plugin + 3.5.0 + + false + + + + package + + shade + + + + + org.apache.tomcat.embed:* + + + + + + + + + + + assembly-zip + + true + + + + + + org.apache.maven.plugins + maven-jar-plugin + 3.3.0 + + + default-jar + none + + + + + org.apache.maven.plugins + maven-install-plugin + 3.1.1 + + true + + + + + org.apache.maven.plugins + maven-dependency-plugin + 3.6.0 + + + copy-dependencies + package + + copy-dependencies + + + ${project.build.directory}/lib + runtime + + + + + + org.apache.maven.plugins + maven-assembly-plugin + 3.6.0 + + + zip-assembly + package + + single + + + ${project.artifactId}-${project.version} + + src${file.separator}assembly${file.separator}bin.xml + + false + + + + + + + + + + + diff --git a/samples/springboot3/alt-pet-store/src/assembly/bin.xml b/samples/springboot3/alt-pet-store/src/assembly/bin.xml new file mode 100644 index 000000000..1e085057d --- /dev/null +++ b/samples/springboot3/alt-pet-store/src/assembly/bin.xml @@ -0,0 +1,27 @@ + + lambda-package + + zip + + false + + + + ${project.build.directory}${file.separator}lib + lib + + tomcat-embed* + + + + + ${project.build.directory}${file.separator}classes + + ** + + ${file.separator} + + + \ No newline at end of file diff --git a/samples/springboot3/alt-pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/Application.java b/samples/springboot3/alt-pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/Application.java new file mode 100644 index 000000000..ee9989df5 --- /dev/null +++ b/samples/springboot3/alt-pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/Application.java @@ -0,0 +1,51 @@ +package com.amazonaws.serverless.sample.springboot3; + +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Import; +import org.springframework.web.servlet.HandlerAdapter; +import org.springframework.web.servlet.HandlerMapping; +import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter; +import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping; + +import com.amazonaws.serverless.sample.springboot3.controller.PetsController; +import com.amazonaws.serverless.sample.springboot3.filter.CognitoIdentityFilter; + +import jakarta.servlet.Filter; + + +@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(); + } + + @Bean("CognitoIdentityFilter") + public Filter cognitoFilter() { + return new CognitoIdentityFilter(); + } + + public static void main(String[] args) { + SpringApplication.run(Application.class, args); + } +} \ No newline at end of file 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 new file mode 100644 index 000000000..680e629d3 --- /dev/null +++ b/samples/springboot3/alt-pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/controller/PetsController.java @@ -0,0 +1,77 @@ +/* + * 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 com.amazonaws.serverless.sample.springboot3.model.Pet; +import com.amazonaws.serverless.sample.springboot3.model.PetData; + +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 java.security.Principal; +import java.util.Optional; +import java.util.UUID; + + +@RestController +@EnableWebMvc +public class PetsController { + @RequestMapping(path = "/pets", method = RequestMethod.POST) + public Pet createPet(@RequestBody Pet newPet) { + if (newPet.getName() == null || newPet.getBreed() == null) { + return null; + } + + Pet dbPet = newPet; + dbPet.setId(UUID.randomUUID().toString()); + return dbPet; + } + + @RequestMapping(path = "/pets", method = RequestMethod.GET) + public Pet[] listPets(@RequestParam("limit") Optional limit, Principal principal) { + 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; + } + + @RequestMapping(path = "/pets/{petId}", method = RequestMethod.GET) + public Pet listPets() { + 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/alt-pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/filter/CognitoIdentityFilter.java b/samples/springboot3/alt-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/alt-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/alt-pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/model/Error.java b/samples/springboot3/alt-pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/model/Error.java new file mode 100644 index 000000000..320f21582 --- /dev/null +++ b/samples/springboot3/alt-pet-store/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/alt-pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/model/Pet.java b/samples/springboot3/alt-pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/model/Pet.java new file mode 100644 index 000000000..4f0c4ba8e --- /dev/null +++ b/samples/springboot3/alt-pet-store/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/alt-pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/model/PetData.java b/samples/springboot3/alt-pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/model/PetData.java new file mode 100644 index 000000000..68ea3c18b --- /dev/null +++ b/samples/springboot3/alt-pet-store/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 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 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 getBreeds() { + return breeds; + } + + public static List 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/alt-pet-store/src/main/resources/logback.xml b/samples/springboot3/alt-pet-store/src/main/resources/logback.xml new file mode 100644 index 000000000..14a3a84fa --- /dev/null +++ b/samples/springboot3/alt-pet-store/src/main/resources/logback.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/samples/springboot3/alt-pet-store/template.yml b/samples/springboot3/alt-pet-store/template.yml new file mode 100644 index 000000000..8a51c8d1d --- /dev/null +++ b/samples/springboot3/alt-pet-store/template.yml @@ -0,0 +1,41 @@ +AWSTemplateFormatVersion: '2010-09-09' +Transform: AWS::Serverless-2016-10-31 +Description: Example Pet Store API written with spring-cloud-function web-proxy support + +Globals: + Api: + # API Gateway regional endpoints + EndpointConfiguration: REGIONAL + +Resources: + PetStoreFunction: + Type: AWS::Serverless::Function + Properties: +# AutoPublishAlias: bcn + FunctionName: pet-store-boot-3 + Handler: com.amazonaws.serverless.proxy.spring.SpringDelegatingLambdaContainerHandler::handleRequest + Runtime: java17 + SnapStart: + ApplyOn: PublishedVersions + CodeUri: . + MemorySize: 1024 + Policies: AWSLambdaBasicExecutionRole + Timeout: 30 + Environment: + Variables: + MAIN_CLASS: com.amazonaws.serverless.sample.springboot3.Application + Events: + HttpApiEvent: + Type: HttpApi + Properties: + TimeoutInMillis: 20000 + PayloadFormatVersion: '1.0' + +Outputs: + SpringPetStoreApi: + Description: URL for application + Value: !Sub 'https://${ServerlessHttpApi}.execute-api.${AWS::Region}.amazonaws.com/pets' + Export: + Name: SpringPetStoreApi + + From 224e5fb0f0a91b99b1a7c29ece158ebfada66df7 Mon Sep 17 00:00:00 2001 From: Oleg Zhurakousky Date: Fri, 30 Jun 2023 19:13:18 +0200 Subject: [PATCH 170/623] Cleanup --- .../SpringDelegatingLambdaContainerHandler.java | 12 ------------ 1 file changed, 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 46ccfb13b..20e154743 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,26 +3,16 @@ import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; -import java.net.URL; import java.nio.charset.StandardCharsets; -import java.util.Collections; -import java.util.List; import java.util.Map; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; -import java.util.jar.JarFile; -import java.util.jar.Manifest; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; 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.core.KotlinDetector; -import org.springframework.core.io.Resource; -import org.springframework.core.io.support.PathMatchingResourcePatternResolver; -import org.springframework.util.Assert; -import org.springframework.util.ClassUtils; import org.springframework.util.StringUtils; import com.amazonaws.serverless.proxy.AwsHttpApiV2SecurityContextWriter; @@ -62,8 +52,6 @@ */ public class SpringDelegatingLambdaContainerHandler implements RequestStreamHandler { - private static Log logger = LogFactory.getLog(SpringDelegatingLambdaContainerHandler.class); - private final Class[] startupClasses; private final ProxyMvc mvc; From 3a96f35a70b184f17c73a686174e50f996cb6df8 Mon Sep 17 00:00:00 2001 From: Oleg Zhurakousky Date: Tue, 4 Jul 2023 10:10:20 +0200 Subject: [PATCH 171/623] Substitute tabs for spaces --- .../proxy/model/AwsProxyRequest.java | 12 +- .../pom.xml | 34 +- ...pringDelegatingLambdaContainerHandler.java | 134 +++-- ...DelegatingLambdaContainerHandlerTests.java | 514 +++++++++--------- .../sample/springboot3/Application.java | 2 +- 5 files changed, 347 insertions(+), 349 deletions(-) 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 af4e6ea77..53ad758f1 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 @@ -30,7 +30,7 @@ public class AwsProxyRequest { private String body; private String version; - private String resource; + private String resource; private AwsProxyRequestContext requestContext; private MultiValuedTreeMap multiValueQueryStringParameters; private Map queryStringParameters; @@ -97,12 +97,12 @@ public String getResource() { } public String getVersion() { - return version; - } + return version; + } - public void setVersion(String version) { - this.version = version; - } + public void setVersion(String version) { + this.version = version; + } public void setResource(String resource) { this.resource = resource; diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml index 37cc85156..532ce8312 100644 --- a/aws-serverless-java-container-springboot3/pom.xml +++ b/aws-serverless-java-container-springboot3/pom.xml @@ -287,21 +287,21 @@ - - spring-snapshots - Spring Snapshots - https://repo.spring.io/snapshot - - true - - - - spring-milestones - Spring Milestones - https://repo.spring.io/milestone - - false - - - + + spring-snapshots + Spring Snapshots + https://repo.spring.io/snapshot + + true + + + + spring-milestones + Spring Milestones + https://repo.spring.io/milestone + + false + + + 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 20e154743..ce3142369 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 @@ -8,8 +8,6 @@ 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.FunctionClassUtils; import org.springframework.cloud.function.serverless.web.ProxyHttpServletRequest; import org.springframework.cloud.function.serverless.web.ProxyMvc; @@ -52,75 +50,75 @@ */ public class SpringDelegatingLambdaContainerHandler implements RequestStreamHandler { - private final Class[] startupClasses; - - private final ProxyMvc mvc; - - private final ObjectMapper mapper; - - private final AwsProxyHttpServletResponseWriter responseWriter; - - public SpringDelegatingLambdaContainerHandler() { - this(new Class[] {FunctionClassUtils.getStartClass()}); - } - - public SpringDelegatingLambdaContainerHandler(Class... startupClasses) { - this.startupClasses = startupClasses; - this.mvc = ProxyMvc.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); - - CountDownLatch latch = new CountDownLatch(1); - AwsHttpServletResponse httpServletResponse = new AwsHttpServletResponse(httpServletRequest, latch); - try { - mvc.service(httpServletRequest, httpServletResponse); - latch.await(10, TimeUnit.SECONDS); - 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); + private final Class[] startupClasses; + + private final ProxyMvc mvc; + + private final ObjectMapper mapper; + + private final AwsProxyHttpServletResponseWriter responseWriter; + + public SpringDelegatingLambdaContainerHandler() { + this(new Class[] {FunctionClassUtils.getStartClass()}); + } + + public SpringDelegatingLambdaContainerHandler(Class... startupClasses) { + this.startupClasses = startupClasses; + this.mvc = ProxyMvc.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); + + CountDownLatch latch = new CountDownLatch(1); + AwsHttpServletResponse httpServletResponse = new AwsHttpServletResponse(httpServletRequest, latch); + try { + mvc.service(httpServletRequest, httpServletResponse); + latch.await(10, TimeUnit.SECONDS); + 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()); + 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.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()); 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 e242ea6e3..dabc30e24 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 @@ -25,284 +25,284 @@ @SuppressWarnings("rawtypes") public class SpringDelegatingLambdaContainerHandlerTests { - 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" - + " \"identity\": {\n" - + " \"accessKey\": null,\n" - + " \"accountId\": null,\n" - + " \"caller\": null,\n" - + " \"cognitoAmr\": null,\n" - + " \"cognitoAuthenticationProvider\": null,\n" - + " \"cognitoAuthenticationType\": null,\n" - + " \"cognitoIdentityId\": null,\n" - + " \"cognitoIdentityPoolId\": null,\n" - + " \"principalOrgId\": null,\n" - + " \"sourceIp\": \"109.210.252.44\",\n" - + " \"user\": null,\n" - + " \"userAgent\": \"curl/7.79.1\",\n" - + " \"userArn\": null\n" - + " },\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 = "{\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" + + " \"identity\": {\n" + + " \"accessKey\": null,\n" + + " \"accountId\": null,\n" + + " \"caller\": null,\n" + + " \"cognitoAmr\": null,\n" + + " \"cognitoAuthenticationProvider\": null,\n" + + " \"cognitoAuthenticationType\": null,\n" + + " \"cognitoIdentityId\": null,\n" + + " \"cognitoIdentityPoolId\": null,\n" + + " \"principalOrgId\": null,\n" + + " \"sourceIp\": \"109.210.252.44\",\n" + + " \"user\": null,\n" + + " \"userAgent\": \"curl/7.79.1\",\n" + + " \"userArn\": null\n" + + " },\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\": \"/my/path\",\n" + - " \"rawQueryString\": \"parameter1=value1¶meter1=value2¶meter2=value\",\n" + - " \"cookies\": [\n" + - " \"cookie1\",\n" + - " \"cookie2\"\n" + - " ],\n" + - " \"headers\": {\n" + - " \"header1\": \"value1\",\n" + - " \"header2\": \"value1,value2\"\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\": \"/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" + - " \"pathParameters\": {\n" + - " \"parameter1\": \"value1\"\n" + - " },\n" + - " \"isBase64Encoded\": false,\n" + - " \"stageVariables\": {\n" + - " \"stageVariable1\": \"value1\",\n" + - " \"stageVariable2\": \"value2\"\n" + - " }\n" + - "}"; + private static String API_GATEWAY_EVENT_V2 = "{\n" + + " \"version\": \"2.0\",\n" + + " \"routeKey\": \"$default\",\n" + + " \"rawPath\": \"/my/path\",\n" + + " \"rawQueryString\": \"parameter1=value1¶meter1=value2¶meter2=value\",\n" + + " \"cookies\": [\n" + + " \"cookie1\",\n" + + " \"cookie2\"\n" + + " ],\n" + + " \"headers\": {\n" + + " \"header1\": \"value1\",\n" + + " \"header2\": \"value1,value2\"\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\": \"/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" + + " \"pathParameters\": {\n" + + " \"parameter1\": \"value1\"\n" + + " },\n" + + " \"isBase64Encoded\": false,\n" + + " \"stageVariables\": {\n" + + " \"stageVariable1\": \"value1\",\n" + + " \"stageVariable2\": \"value2\"\n" + + " }\n" + + "}"; - private SpringDelegatingLambdaContainerHandler handler; + private SpringDelegatingLambdaContainerHandler handler; - private ObjectMapper mapper = new ObjectMapper(); + private ObjectMapper mapper = new ObjectMapper(); - public void initServletAppTest() { - this.handler = new SpringDelegatingLambdaContainerHandler(ServletApplication.class); - } + public void initServletAppTest() { + this.handler = new SpringDelegatingLambdaContainerHandler(ServletApplication.class); + } - public static Collection data() { + public static Collection data() { return Arrays.asList(new String[]{API_GATEWAY_EVENT, API_GATEWAY_EVENT_V2}); } - @MethodSource("data") - @ParameterizedTest - public void testAsyncPost(String jsonEvent) throws Exception { - initServletAppTest(); - InputStream targetStream = new ByteArrayInputStream(this.generateHttpRequest(jsonEvent, "POST", "/async", "{\"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")); - assertEquals("{\"name\":\"BOB\"}", result.get("body")); - } + @MethodSource("data") + @ParameterizedTest + public void testAsyncPost(String jsonEvent) throws Exception { + initServletAppTest(); + InputStream targetStream = new ByteArrayInputStream(this.generateHttpRequest(jsonEvent, "POST", "/async", "{\"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")); + assertEquals("{\"name\":\"BOB\"}", result.get("body")); + } - @MethodSource("data") - @ParameterizedTest - 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)); - ByteArrayOutputStream output = new ByteArrayOutputStream(); - handler.handleRequest(targetStream, output, null); - Map result = mapper.readValue(output.toString(StandardCharsets.UTF_8), Map.class); - assertEquals(400, result.get("statusCode")); - assertEquals("3", result.get("body")); - } + @MethodSource("data") + @ParameterizedTest + 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)); + ByteArrayOutputStream output = new ByteArrayOutputStream(); + handler.handleRequest(targetStream, output, null); + Map result = mapper.readValue(output.toString(StandardCharsets.UTF_8), Map.class); + assertEquals(400, result.get("statusCode")); + assertEquals("3", result.get("body")); + } - @MethodSource("data") - @ParameterizedTest - public void testValidate200(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", mapper.writeValueAsString(ud), 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 testValidate200(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", mapper.writeValueAsString(ud), 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(); + @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")), 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("test message", result.get("body")); + handler.handleRequest(targetStream, output, null); + Map result = mapper.readValue(output.toString(StandardCharsets.UTF_8), Map.class); + assertEquals(200, result.get("statusCode")); + assertEquals("test message", result.get("body")); } - @SuppressWarnings({"unchecked" }) - @MethodSource("data") - @ParameterizedTest - void messageObject_propertiesInContentType_returnsCorrectMessage(String jsonEvent) throws Exception { + @SuppressWarnings({"unchecked" }) + @MethodSource("data") + @ParameterizedTest + void messageObject_propertiesInContentType_returnsCorrectMessage(String jsonEvent) throws Exception { initServletAppTest(); Map headers = new HashMap<>(); - 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)); + 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)); - ByteArrayOutputStream output = new ByteArrayOutputStream(); - handler.handleRequest(targetStream, output, null); - Map result = mapper.readValue(output.toString(StandardCharsets.UTF_8), Map.class); - assertEquals("test message", result.get("body")); + ByteArrayOutputStream output = new ByteArrayOutputStream(); + handler.handleRequest(targetStream, output, null); + Map result = mapper.readValue(output.toString(StandardCharsets.UTF_8), Map.class); + assertEquals("test message", result.get("body")); } - private byte[] generateHttpRequest(String jsonEvent, String method, String path, String body, 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 generateHttpRequest(requestMap, method, path, body, headers); - } + private byte[] generateHttpRequest(String jsonEvent, String method, String path, String body, 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 generateHttpRequest(requestMap, method, path, body, headers); + } - @SuppressWarnings({ "unchecked"}) - private byte[] generateHttpRequest(Map requestMap, String method, String path, String body, Map headers) throws Exception { - requestMap.put("path", path); - requestMap.put("httpMethod", method); - requestMap.put("body", body); - if (!CollectionUtils.isEmpty(headers)) { - requestMap.put("headers", headers); - } - return mapper.writeValueAsBytes(requestMap); - } + @SuppressWarnings({ "unchecked"}) + private byte[] generateHttpRequest(Map requestMap, String method, String path, String body, Map headers) throws Exception { + requestMap.put("path", path); + requestMap.put("httpMethod", method); + requestMap.put("body", body); + if (!CollectionUtils.isEmpty(headers)) { + requestMap.put("headers", headers); + } + return mapper.writeValueAsBytes(requestMap); + } - @SuppressWarnings({ "unchecked"}) - private byte[] generateHttpRequest2(Map requestMap, String method, String path, String body, 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); - if (!CollectionUtils.isEmpty(headers)) { - map.put("headers", headers); - } - return mapper.writeValueAsBytes(map); - } + @SuppressWarnings({ "unchecked"}) + private byte[] generateHttpRequest2(Map requestMap, String method, String path, String body, 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); + if (!CollectionUtils.isEmpty(headers)) { + map.put("headers", headers); + } + return mapper.writeValueAsBytes(map); + } } diff --git a/samples/springboot3/alt-pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/Application.java b/samples/springboot3/alt-pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/Application.java index ee9989df5..428d67267 100644 --- a/samples/springboot3/alt-pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/Application.java +++ b/samples/springboot3/alt-pet-store/src/main/java/com/amazonaws/serverless/sample/springboot3/Application.java @@ -42,7 +42,7 @@ public HandlerAdapter handlerAdapter() { @Bean("CognitoIdentityFilter") public Filter cognitoFilter() { - return new CognitoIdentityFilter(); + return new CognitoIdentityFilter(); } public static void main(String[] args) { From da5cb2b0f37da5397a945080dd9c157486284254 Mon Sep 17 00:00:00 2001 From: Oleg Zhurakousky Date: Thu, 6 Jul 2023 10:30:10 +0200 Subject: [PATCH 172/623] Upgrade s-c-function to 4.0.4 (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 532ce8312..4c41ab834 100644 --- a/aws-serverless-java-container-springboot3/pom.xml +++ b/aws-serverless-java-container-springboot3/pom.xml @@ -25,7 +25,7 @@ org.springframework.cloud spring-cloud-function-serverless-web - 4.1.0-SNAPSHOT + 4.0.4 com.amazonaws.serverless From ff72372fa201655773e2caa2f20a766f320a1e5c Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Tue, 11 Jul 2023 11:11:12 +0200 Subject: [PATCH 173/623] cleanup (#577) --- .../proxy/spring/servletapp/MessageController.java | 8 -------- 1 file changed, 8 deletions(-) diff --git a/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/servletapp/MessageController.java b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/servletapp/MessageController.java index a40d2c206..1923396c6 100644 --- a/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/servletapp/MessageController.java +++ b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/servletapp/MessageController.java @@ -9,7 +9,6 @@ import org.springframework.web.server.ResponseStatusException; import jakarta.validation.Valid; -import reactor.core.publisher.Mono; import java.util.Collections; import java.util.HashMap; @@ -22,12 +21,6 @@ public class MessageController { public static final String UTF8_RESPONSE = "öüäß фрыцшщ"; public static final String EX_MESSAGE = "404 exception message"; - - @RequestMapping(path="/hi", method=RequestMethod.GET, produces = {"text/plain"}) - public Mono hi() { - return Mono.just(HELLO_MESSAGE); - } - @SuppressWarnings({ "unchecked", "rawtypes" }) @RequestMapping(path = "/async", method = RequestMethod.POST) @ResponseBody @@ -37,7 +30,6 @@ public DeferredResult> asyncResult(@RequestBody Map Date: Mon, 17 Jul 2023 14:26:05 +0200 Subject: [PATCH 174/623] chore(deps): align code with Commons Fileupload 2.0.0-M1 (currently under vote https://lists.apache.org/thread/27gkqk3928bw9qcqyhkgw9tzqxllpw67) --- .../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 df6627cbd..1bd12c048 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 @@ -24,7 +24,7 @@ import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import org.apache.commons.fileupload2.core.FileItem; import org.apache.commons.fileupload2.core.FileUploadException; -import org.apache.commons.fileupload2.core.disk.DiskFileItemFactory; +import org.apache.commons.fileupload2.core.DiskFileItemFactory; import org.apache.commons.fileupload2.jakarta.JakartaServletFileUpload; import org.apache.commons.io.FilenameUtils; import org.apache.commons.io.IOUtils; From 5b1560c4d378689d7a784345371d1687b4907176 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Thu, 20 Jul 2023 12:15:37 +0200 Subject: [PATCH 175/623] chore(deps): use Commons Fileupload 2.0.0-M1 instead of SNAPSHOT --- aws-serverless-java-container-core/pom.xml | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml index 3eed2022e..b8cbce252 100644 --- a/aws-serverless-java-container-core/pom.xml +++ b/aws-serverless-java-container-core/pom.xml @@ -20,21 +20,6 @@ 6.0.0 - - - apache.snapshots - Apache Development Snapshot Repository - https://repository.apache.org/content/repositories/snapshots/ - - false - - - true - - - - - com.amazonaws @@ -69,7 +54,7 @@ org.apache.commons commons-fileupload2-jakarta - 2.0.0-SNAPSHOT + 2.0.0-M1 From 5afae31480e0ead72762758bebe908bcfc12ff02 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Thu, 20 Jul 2023 12:31:35 +0200 Subject: [PATCH 176/623] chore(deps): update websocket apis to 2.1.1 (closes #605, #606) --- 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 4c41ab834..02ea48b0a 100644 --- a/aws-serverless-java-container-springboot3/pom.xml +++ b/aws-serverless-java-container-springboot3/pom.xml @@ -180,14 +180,14 @@ jakarta.websocket jakarta.websocket-api - 2.1.0 + 2.1.1 test jakarta.websocket jakarta.websocket-client-api - 2.1.0 + 2.1.1 test From a858154116f4f4efa9aa0b78243f0e7687c012d6 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Thu, 20 Jul 2023 14:03:44 +0200 Subject: [PATCH 177/623] chore(deps): Update Spring dependencies (framework to 6.0.11, security to 6.1.2, boot to 3.1.2) #609, #610, #611, #612, #613 --- 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/builds.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 b8cbce252..dfffbe606 100644 --- a/aws-serverless-java-container-core/pom.xml +++ b/aws-serverless-java-container-core/pom.xml @@ -60,7 +60,7 @@ org.springframework.security spring-security-web - 6.1.1 + 6.1.2 test diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml index 9a2b077e8..7d1a9a25b 100644 --- a/aws-serverless-java-container-spring/pom.xml +++ b/aws-serverless-java-container-spring/pom.xml @@ -16,8 +16,8 @@ - 6.0.10 - 6.1.1 + 6.0.11 + 6.1.2 diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml index 02ea48b0a..b797d89ae 100644 --- a/aws-serverless-java-container-springboot3/pom.xml +++ b/aws-serverless-java-container-springboot3/pom.xml @@ -15,9 +15,9 @@ 2.0.0-SNAPSHOT - 6.0.10 - 3.1.1 - 6.1.1 + 6.0.11 + 3.1.2 + 6.1.2 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 7c14db0dd..c31590715 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.10', - 'org.springframework:spring-context:6.0.10', + 'org.springframework:spring-webmvc:6.0.11', + 'org.springframework:spring-context:6.0.11', '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 b9d3d72df..69927546b 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 @@ 1.8 1.8 - 6.0.10 + 6.0.11 5.9.3 2.20.0 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 13c8e76b2..2d7977bbe 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.1', + 'org.springframework.boot:spring-boot-starter-web:3.1.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 2be47cff2..673cea593 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 @@ org.springframework.boot spring-boot-starter-parent - 3.1.1 + 3.1.2 diff --git a/samples/spring/pet-store/build.gradle b/samples/spring/pet-store/build.gradle index 82048da2b..42813a0ee 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.10', - 'org.springframework:spring-context:6.0.10', + 'org.springframework:spring-webmvc:6.0.11', + 'org.springframework:spring-context:6.0.11', '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 684623a59..2ed9ae0de 100644 --- a/samples/spring/pet-store/pom.xml +++ b/samples/spring/pet-store/pom.xml @@ -24,7 +24,7 @@ - 6.0.10 + 6.0.11 2.20.0 17 17 diff --git a/samples/springboot3/alt-pet-store/builds.gradle b/samples/springboot3/alt-pet-store/builds.gradle index 00a9d3a1f..d6d2ec61d 100644 --- a/samples/springboot3/alt-pet-store/builds.gradle +++ b/samples/springboot3/alt-pet-store/builds.gradle @@ -9,7 +9,7 @@ repositories { dependencies { implementation ( - implementation('org.springframework.boot:spring-boot-starter-web:3.1.1') { + implementation('org.springframework.boot:spring-boot-starter-web:3.1.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 a8f6220b5..1e655268a 100644 --- a/samples/springboot3/alt-pet-store/pom.xml +++ b/samples/springboot3/alt-pet-store/pom.xml @@ -13,7 +13,7 @@ org.springframework.boot spring-boot-starter-parent - 3.1.1 + 3.1.2 diff --git a/samples/springboot3/pet-store/build.gradle b/samples/springboot3/pet-store/build.gradle index 00a9d3a1f..d6d2ec61d 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.1') { + implementation('org.springframework.boot:spring-boot-starter-web:3.1.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 d246cb406..8a21e0fad 100644 --- a/samples/springboot3/pet-store/pom.xml +++ b/samples/springboot3/pet-store/pom.xml @@ -13,7 +13,7 @@ org.springframework.boot spring-boot-starter-parent - 3.1.1 + 3.1.2 From 39045b356102e9b975132dd2cf08320463fcb91a Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Thu, 20 Jul 2023 14:15:30 +0200 Subject: [PATCH 178/623] fix Gradle filename (#603) --- samples/springboot3/alt-pet-store/{builds.gradle => build.gradle} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename samples/springboot3/alt-pet-store/{builds.gradle => build.gradle} (100%) diff --git a/samples/springboot3/alt-pet-store/builds.gradle b/samples/springboot3/alt-pet-store/build.gradle similarity index 100% rename from samples/springboot3/alt-pet-store/builds.gradle rename to samples/springboot3/alt-pet-store/build.gradle From 80fd2773b410fd8b9af25b27cebe8cfa7fd3dc3a Mon Sep 17 00:00:00 2001 From: deki Date: Thu, 20 Jul 2023 12:25:53 +0000 Subject: [PATCH 179/623] chore: release - prepare release aws-serverless-java-container-2.0.0-M2 --- 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 dfffbe606..30b09b0e4 100644 --- a/aws-serverless-java-container-core/pom.xml +++ b/aws-serverless-java-container-core/pom.xml @@ -6,12 +6,12 @@ AWS Serverless Java container support - Core Allows Java applications written for a servlet container to run in AWS Lambda https://aws.amazon.com/lambda - 2.0.0-SNAPSHOT + 2.0.0-M2 com.amazonaws.serverless aws-serverless-java-container - 2.0.0-SNAPSHOT + 2.0.0-M2 .. diff --git a/aws-serverless-java-container-jersey/pom.xml b/aws-serverless-java-container-jersey/pom.xml index db3f9dd0c..cb8ee0a00 100644 --- a/aws-serverless-java-container-jersey/pom.xml +++ b/aws-serverless-java-container-jersey/pom.xml @@ -6,12 +6,12 @@ AWS Serverless Java container support - Jersey implementation Allows Java applications written for Jersey to run in AWS Lambda https://aws.amazon.com/lambda - 2.0.0-SNAPSHOT + 2.0.0-M2 com.amazonaws.serverless aws-serverless-java-container - 2.0.0-SNAPSHOT + 2.0.0-M2 .. @@ -24,7 +24,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.0.0-SNAPSHOT + 2.0.0-M2 com.fasterxml.jackson.core @@ -35,7 +35,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.0.0-SNAPSHOT + 2.0.0-M2 tests test-jar test diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml index 7d1a9a25b..e26732426 100644 --- a/aws-serverless-java-container-spring/pom.xml +++ b/aws-serverless-java-container-spring/pom.xml @@ -6,12 +6,12 @@ AWS Serverless Java container support - Spring implementation Allows Java applications written for the Spring framework to run in AWS Lambda https://aws.amazon.com/lambda - 2.0.0-SNAPSHOT + 2.0.0-M2 com.amazonaws.serverless aws-serverless-java-container - 2.0.0-SNAPSHOT + 2.0.0-M2 .. @@ -25,12 +25,12 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.0.0-SNAPSHOT + 2.0.0-M2 com.amazonaws.serverless aws-serverless-java-container-core - 2.0.0-SNAPSHOT + 2.0.0-M2 tests test-jar test diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml index b797d89ae..812ec42ed 100644 --- a/aws-serverless-java-container-springboot3/pom.xml +++ b/aws-serverless-java-container-springboot3/pom.xml @@ -3,7 +3,7 @@ aws-serverless-java-container com.amazonaws.serverless - 2.0.0-SNAPSHOT + 2.0.0-M2 4.0.0 @@ -12,7 +12,7 @@ AWS Serverless Java container support - SpringBoot 3 implementation Allows Java applications written for SpringBoot 3 to run in AWS Lambda https://aws.amazon.com/lambda - 2.0.0-SNAPSHOT + 2.0.0-M2 6.0.11 @@ -30,12 +30,12 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.0.0-SNAPSHOT + 2.0.0-M2 com.amazonaws.serverless aws-serverless-java-container-core - 2.0.0-SNAPSHOT + 2.0.0-M2 tests test-jar test diff --git a/aws-serverless-jersey-archetype/pom.xml b/aws-serverless-jersey-archetype/pom.xml index e328fee77..c43f6f2a7 100644 --- a/aws-serverless-jersey-archetype/pom.xml +++ b/aws-serverless-jersey-archetype/pom.xml @@ -4,17 +4,17 @@ com.amazonaws.serverless aws-serverless-java-container - 2.0.0-SNAPSHOT + 2.0.0-M2 com.amazonaws.serverless.archetypes aws-serverless-jersey-archetype - 2.0.0-SNAPSHOT + 2.0.0-M2 maven-archetype https://github.com/awslabs/aws-serverless-java-container.git - HEAD + aws-serverless-java-container-2.0.0-M2 diff --git a/aws-serverless-spring-archetype/pom.xml b/aws-serverless-spring-archetype/pom.xml index 747ff0838..d755e5ca2 100644 --- a/aws-serverless-spring-archetype/pom.xml +++ b/aws-serverless-spring-archetype/pom.xml @@ -4,17 +4,17 @@ com.amazonaws.serverless aws-serverless-java-container - 2.0.0-SNAPSHOT + 2.0.0-M2 com.amazonaws.serverless.archetypes aws-serverless-spring-archetype - 2.0.0-SNAPSHOT + 2.0.0-M2 maven-archetype https://github.com/awslabs/aws-serverless-java-container.git - HEAD + aws-serverless-java-container-2.0.0-M2 diff --git a/aws-serverless-springboot3-archetype/pom.xml b/aws-serverless-springboot3-archetype/pom.xml index 8f478b223..504dc334f 100644 --- a/aws-serverless-springboot3-archetype/pom.xml +++ b/aws-serverless-springboot3-archetype/pom.xml @@ -4,17 +4,17 @@ com.amazonaws.serverless aws-serverless-java-container - 2.0.0-SNAPSHOT + 2.0.0-M2 com.amazonaws.serverless.archetypes aws-serverless-springboot3-archetype - 2.0.0-SNAPSHOT + 2.0.0-M2 maven-archetype https://github.com/awslabs/aws-serverless-java-container.git - HEAD + aws-serverless-java-container-2.0.0-M2 diff --git a/pom.xml b/pom.xml index 6eb0965ce..1dc935729 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.amazonaws.serverless aws-serverless-java-container pom - 2.0.0-SNAPSHOT + 2.0.0-M2 AWS Serverless Java container A Java framework to run Spring, Spring Boot, Jersey, Spark, and Struts applications inside AWS Lambda https://github.com/awslabs/aws-serverless-java-container @@ -37,7 +37,7 @@ https://github.com/awslabs/aws-serverless-java-container scm:git:https://github.com/awslabs/aws-serverless-java-container.git - HEAD + aws-serverless-java-container-2.0.0-M2 From 3c55f6224fea14d9f2099807f86296ea920003cc Mon Sep 17 00:00:00 2001 From: deki Date: Thu, 20 Jul 2023 12:25:55 +0000 Subject: [PATCH 180/623] 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 @@ AWS Serverless Java container support - Core Allows Java applications written for a servlet container to run in AWS Lambda https://aws.amazon.com/lambda - 2.0.0-M2 + 2.0.0-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container - 2.0.0-M2 + 2.0.0-SNAPSHOT .. 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 @@ AWS Serverless Java container support - Jersey implementation Allows Java applications written for Jersey to run in AWS Lambda https://aws.amazon.com/lambda - 2.0.0-M2 + 2.0.0-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container - 2.0.0-M2 + 2.0.0-SNAPSHOT .. @@ -24,7 +24,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.0.0-M2 + 2.0.0-SNAPSHOT com.fasterxml.jackson.core @@ -35,7 +35,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.0.0-M2 + 2.0.0-SNAPSHOT tests test-jar test 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 @@ AWS Serverless Java container support - Spring implementation Allows Java applications written for the Spring framework to run in AWS Lambda https://aws.amazon.com/lambda - 2.0.0-M2 + 2.0.0-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container - 2.0.0-M2 + 2.0.0-SNAPSHOT .. @@ -25,12 +25,12 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.0.0-M2 + 2.0.0-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container-core - 2.0.0-M2 + 2.0.0-SNAPSHOT tests test-jar test 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 @@ aws-serverless-java-container com.amazonaws.serverless - 2.0.0-M2 + 2.0.0-SNAPSHOT 4.0.0 @@ -12,7 +12,7 @@ AWS Serverless Java container support - SpringBoot 3 implementation Allows Java applications written for SpringBoot 3 to run in AWS Lambda https://aws.amazon.com/lambda - 2.0.0-M2 + 2.0.0-SNAPSHOT 6.0.11 @@ -30,12 +30,12 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.0.0-M2 + 2.0.0-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container-core - 2.0.0-M2 + 2.0.0-SNAPSHOT tests test-jar test 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 @@ com.amazonaws.serverless aws-serverless-java-container - 2.0.0-M2 + 2.0.0-SNAPSHOT com.amazonaws.serverless.archetypes aws-serverless-jersey-archetype - 2.0.0-M2 + 2.0.0-SNAPSHOT maven-archetype https://github.com/awslabs/aws-serverless-java-container.git - aws-serverless-java-container-2.0.0-M2 + HEAD 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 @@ com.amazonaws.serverless aws-serverless-java-container - 2.0.0-M2 + 2.0.0-SNAPSHOT com.amazonaws.serverless.archetypes aws-serverless-spring-archetype - 2.0.0-M2 + 2.0.0-SNAPSHOT maven-archetype https://github.com/awslabs/aws-serverless-java-container.git - aws-serverless-java-container-2.0.0-M2 + HEAD 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 @@ com.amazonaws.serverless aws-serverless-java-container - 2.0.0-M2 + 2.0.0-SNAPSHOT com.amazonaws.serverless.archetypes aws-serverless-springboot3-archetype - 2.0.0-M2 + 2.0.0-SNAPSHOT maven-archetype https://github.com/awslabs/aws-serverless-java-container.git - aws-serverless-java-container-2.0.0-M2 + HEAD diff --git a/pom.xml b/pom.xml index 1dc935729..6eb0965ce 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.amazonaws.serverless aws-serverless-java-container pom - 2.0.0-M2 + 2.0.0-SNAPSHOT AWS Serverless Java container A Java framework to run Spring, Spring Boot, Jersey, Spark, and Struts applications inside AWS Lambda https://github.com/awslabs/aws-serverless-java-container @@ -37,7 +37,7 @@ https://github.com/awslabs/aws-serverless-java-container scm:git:https://github.com/awslabs/aws-serverless-java-container.git - aws-serverless-java-container-2.0.0-M2 + HEAD From af891860d2185c3749f35da23b60d053d08fab38 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Mon, 14 Aug 2023 08:39:39 +0200 Subject: [PATCH 181/623] 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 @@ 3.1.2 2.15.2 - 5.9.3 + 5.10.0 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 @@ 1.8 2.15.2 2.9.4 - 5.9.3 + 5.10.0 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 @@ 1.8 1.8 6.0.11 - 5.9.3 + 5.10.0 2.20.0 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 @@ 17 - 5.9.3 + 5.10.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 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 @@ 1.8 6.1.2.1 2.15.2 - 5.9.3 + 5.10.0 2.20.0 diff --git a/pom.xml b/pom.xml index 6eb0965ce..219bc2677 100644 --- a/pom.xml +++ b/pom.xml @@ -80,7 +80,7 @@ 8.3.1 2.15.2 2.0.7 - 5.9.3 + 5.10.0 5.4.0 1.3 UTF-8 From 4dac7d827f981465e8c142fd2d1901ff7f2afecb Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Mon, 14 Aug 2023 09:18:45 +0200 Subject: [PATCH 182/623] 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 @@ - 3.1.2 + 3.1.3 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 @@ 1.8 1.8 - 3.1.2 + 3.1.3 2.15.2 5.10.0 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 @@ 1.8 1.8 - 3.1.2 + 3.1.3 2.15.2 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 183/623] 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] --- 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 @@ 0.7 - 8.3.1 + 8.4.0 2.15.2 2.0.7 5.10.0 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 184/623] 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] --- 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 @@ com.amazonaws aws-lambda-java-core - 1.2.2 + 1.2.3 From ae3de8b9367db70f19717d7c8e63e6745a1b90f6 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Thu, 24 Aug 2023 14:28:08 +0200 Subject: [PATCH 185/623] 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 @@ org.springframework.security spring-security-web - 6.1.2 + 6.1.3 test 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 @@ 6.0.11 - 6.1.2 + 6.1.3 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 @@ 6.0.11 - 3.1.2 - 6.1.2 + 3.1.3 + 6.1.3 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 @@ org.springframework.boot spring-boot-starter-parent - 3.1.2 + 3.1.3 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 @@ org.springframework.boot spring-boot-starter-parent - 3.1.2 + 3.1.3 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 @@ org.springframework.boot spring-boot-starter-parent - 3.1.2 + 3.1.3 From bf2e36792b0befdf60b97ba17e9d4dddc8f6b9ab Mon Sep 17 00:00:00 2001 From: kibeom lee Date: Sun, 27 Aug 2023 22:50:45 +0900 Subject: [PATCH 186/623] 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 HttpServletRequest and HttpServletResponse 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 187/623] 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] --- 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 @@ org.apache.maven.plugins maven-enforcer-plugin - 3.3.0 + 3.4.0 enforce 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 188/623] 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] --- 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 @@ 2.15.2 2.0.7 5.10.0 - 5.4.0 + 5.5.0 1.3 UTF-8 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 189/623] 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] --- 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 @@ 0.7 8.4.0 2.15.2 - 2.0.7 + 2.0.9 5.10.0 5.5.0 1.3 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 190/623] 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 191/623] 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 192/623] 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] --- 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 @@ org.apache.maven.plugins maven-enforcer-plugin - 3.4.0 + 3.4.1 enforce 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 193/623] 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 @@ test + + org.springframework.boot + spring-boot-starter-data-jpa + 3.1.3 + test + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-logging + + + org.springframework.boot + spring-boot-starter-tomcat + + + org.apache.tomcat.embed + tomcat-embed-core + + + org.apache.tomcat.embed + tomcat-embed-websocket + + + + + com.h2database + h2 + 2.2.222 + test + + + 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 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 { + private static SpringBootLambdaContainerHandler handler; + private static SpringBootLambdaContainerHandler httpApiHandler; + private String type; + + public LambdaHandler(String reqType) { + type = reqType; + try { + switch (type) { + case "API_GW": + case "ALB": + handler = new SpringBootProxyHandlerBuilder() + .defaultProxy() + .initializationWrapper(new InitializationWrapper()) + .servletApplication() + .springBootApplication(JpaApplication.class) + .buildAndInitialize(); + break; + case "HTTP_API": + httpApiHandler = new SpringBootProxyHandlerBuilder() + .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> asyncResult(@RequestBody Map 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 194/623] 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] --- 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 @@ org.apache.maven.plugins maven-javadoc-plugin - 3.5.0 + 3.6.0 org.apache.maven.plugins 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 195/623] 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 196/623] 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 197/623] 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 198/623] 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 { + private SpringLambdaContainerHandler handler; + + public LambdaHandler() throws ContainerInitializationException { + handler = new SpringProxyHandlerBuilder() + .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 asyncHello() { + DeferredResult 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 199/623] 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 Date: Thu, 21 Sep 2023 15:13:57 +0200 Subject: [PATCH 200/623] 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 @@ org.springframework.security spring-security-web - 6.1.3 + 6.1.4 test 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 @@ - 6.0.11 - 6.1.3 + 6.0.12 + 6.1.4 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 @@ 2.0.0-SNAPSHOT - 6.0.11 - 3.1.3 - 6.1.3 + 6.0.12 + 3.1.4 + 6.1.4 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 @@ 1.8 1.8 - 6.0.11 + 6.0.12 5.10.0 2.20.0 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 @@ org.springframework.boot spring-boot-starter-parent - 3.1.3 + 3.1.4 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 @@ - 6.0.11 + 6.0.12 2.20.0 17 17 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 @@ org.springframework.boot spring-boot-starter-parent - 3.1.3 + 3.1.4 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 @@ org.springframework.boot spring-boot-starter-parent - 3.1.3 + 3.1.4 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 201/623] 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] --- 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 @@ com.github.spotbugs spotbugs-maven-plugin - 4.7.3.5 + 4.7.3.6 + + + + + 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 @@ - + + \ 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 Date: Fri, 12 Jan 2024 16:15:15 +0100 Subject: [PATCH 262/623] 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 @@ org.apache.commons - commons-fileupload2-jakarta - 2.0.0-M1 + commons-fileupload2-jakarta-servlet6 + 2.0.0-M2 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 Date: Fri, 12 Jan 2024 17:16:14 +0100 Subject: [PATCH 263/623] 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 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> 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> getMultipartFormParametersMap() { Timer.start("SERVLET_REQUEST_GET_MULTIPART_PARAMS"); multipartFormParameters = new TreeMap<>(String.CASE_INSENSITIVE_ORDER); - JakartaServletFileUpload upload = new JakartaServletFileUpload(DiskFileItemFactory.builder().get()); + JakartaServletFileUpload upload = + new JakartaServletFileUpload<>(DiskFileItemFactory.builder().get()); try { - List items = upload.parseRequest(this); - for (FileItem item : items) { + List items = upload.parseRequest(this); + for (FileItem item : items) { String fileName = FilenameUtils.getName(item.getName()); AwsProxyRequestPart newPart = new AwsProxyRequestPart(item.get()); newPart.setName(item.getFieldName()); @@ -684,11 +686,10 @@ protected List 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 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 parseAcceptLanguageHeader(String headerValue) { ); List 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 264/623] 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] --- 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 @@ com.github.spotbugs spotbugs-maven-plugin - 4.8.2.0 + 4.8.3.0 + com/amazonaws/serverless/proxy/spring/AWSWebRuntimeEventLoop* + com/amazonaws/serverless/proxy/spring/AWSTypesProcessor* + From 026bb8ef1f87c1bcdf6d0fb504635eb630b47b6e Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Mon, 15 Jan 2024 13:07:17 +0100 Subject: [PATCH 269/623] 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 270/623] 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 @@ org.springframework.boot spring-boot-starter-data-jpa - 3.1.3 + 3.2.1 test @@ -324,6 +324,14 @@ + + org.apache.maven.plugins + maven-compiler-plugin + + 10 + 10 + + 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 271/623] 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 Date: Sun, 21 Jan 2024 08:55:22 +0100 Subject: [PATCH 272/623] 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 @@ maven-archetype - https://github.com/awslabs/aws-serverless-java-container.git + https://github.com/aws/serverless-java-container.git HEAD 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 @@ jar Serverless Jersey API - https://github.com/awslabs/aws-serverless-java-container + https://github.com/aws/serverless-java-container 1.8 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 @@ maven-archetype - https://github.com/awslabs/aws-serverless-java-container.git + https://github.com/aws/serverless-java-container.git HEAD 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 @@ jar Serverless Spark API - https://github.com/awslabs/aws-serverless-java-container + https://github.com/aws/serverless-java-container 1.8 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 @@ maven-archetype - https://github.com/awslabs/aws-serverless-java-container.git + https://github.com/aws/serverless-java-container.git HEAD 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 @@ jar Serverless Spring API - https://github.com/awslabs/aws-serverless-java-container + https://github.com/aws/serverless-java-container 1.8 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 @@ maven-archetype - https://github.com/awslabs/aws-serverless-java-container.git + https://github.com/aws/serverless-java-container.git HEAD 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 @@ jar Serverless Spring Boot 3 API - https://github.com/awslabs/aws-serverless-java-container + https://github.com/aws/serverless-java-container org.springframework.boot 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 @@ maven-archetype - https://github.com/awslabs/aws-serverless-java-container.git + https://github.com/aws/serverless-java-container.git HEAD 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 @@ jar Serverless Struts API - https://github.com/awslabs/aws-serverless-java-container + https://github.com/aws/serverless-java-container 1.8 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 @@ 2.0.0-SNAPSHOT AWS Serverless Java container A Java framework to run Spring, Spring Boot, Jersey, Spark, and Struts applications inside AWS Lambda - https://github.com/awslabs/aws-serverless-java-container + https://github.com/aws/serverless-java-container GitHub Issues - https://github.com/awslabs/aws-serverless-java-container/issues + https://github.com/aws/serverless-java-container/issues @@ -35,8 +35,8 @@ - https://github.com/awslabs/aws-serverless-java-container - scm:git:https://github.com/awslabs/aws-serverless-java-container.git + https://github.com/aws/serverless-java-container + scm:git:https://github.com/aws/serverless-java-container.git HEAD 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 @@ https://aws.amazon.com/lambda/ - https://github.com/awslabs/aws-serverless-java-container.git + https://github.com/aws/serverless-java-container.git 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 @@ https://aws.amazon.com/lambda/ - https://github.com/awslabs/aws-serverless-java-container.git + https://github.com/aws/serverless-java-container.git 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 @@ https://aws.amazon.com/lambda/ - https://github.com/awslabs/aws-serverless-java-container.git + https://github.com/aws/serverless-java-container.git 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 @@ https://aws.amazon.com/lambda/ - https://github.com/awslabs/aws-serverless-java-container.git + https://github.com/aws/serverless-java-container.git From b471fe4b1701ac9dfff0dab2d7fd03378ff28481 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Sun, 21 Jan 2024 09:00:45 +0100 Subject: [PATCH 273/623] 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 @@ - 6.1.2 + 6.1.3 6.2.1 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 @@ 2.0.0-SNAPSHOT - 6.1.2 - 3.2.1 + 6.1.3 + 3.2.2 6.2.1 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 @@ 1.8 1.8 - 6.1.2 + 6.1.3 5.10.1 2.22.1 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 @@ org.springframework.boot spring-boot-starter-parent - 3.2.1 + 3.2.2 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 @@ 1.8 1.8 - 6.1.2.1 + 6.1.3.1 2.16.1 5.10.1 2.22.1 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 @@ - 6.1.2 + 6.1.3 2.22.1 17 17 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 @@ org.springframework.boot spring-boot-starter-parent - 3.2.1 + 3.2.2 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 @@ org.springframework.boot spring-boot-starter-parent - 3.2.1 + 3.2.2 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 @@ 1.8 1.8 - 6.1.2.1 + 6.1.3.1 2.16.1 4.13.2 2.22.1 From fd96f7fb90ab9f9d74f484f4ea17217e486859e9 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Sun, 21 Jan 2024 09:30:36 +0100 Subject: [PATCH 274/623] 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 @@ - - - 4.0.0 - - aws-serverless-java-container-spark - AWS Serverless Java container support - Spark implementation - Allows Java applications written for Spark to run in AWS Lambda - https://aws.amazon.com/lambda - 2.0.0-SNAPSHOT - - - com.amazonaws.serverless - aws-serverless-java-container - 2.0.0-SNAPSHOT - .. - - - - 2.9.4 - - - - - - com.amazonaws.serverless - aws-serverless-java-container-core - 2.0.0-SNAPSHOT - - - - com.sparkjava - spark-core - ${spark.version} - - - org.junit.jupiter - junit-jupiter - test - - - - - - - org.jacoco - jacoco-maven-plugin - - ${basedir}/target/coverage-reports/jacoco-unit.exec - ${basedir}/target/coverage-reports/jacoco-unit.exec - - - - default-prepare-agent - - prepare-agent - - - - jacoco-site - package - - report - - - - jacoco-check - test - - check - - - true - - BUNDLE - - - INSTRUCTION - COVEREDRATIO - ${jacoco.minCoverage} - - - - - - - - - - org.apache.maven.plugins - maven-surefire-plugin - - false - - - - com.github.spotbugs - spotbugs-maven-plugin - - - - analyze-compile - compile - - check - - - - - - org.owasp - dependency-check-maven - ${dependencyCheck.version} - - true - - ${project.basedir}/../owasp-suppression.xml - - 7 - false - - - - - check - - - - - - - - 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 LambdaContainerHandler object that supports the Spark framework: http://sparkjava.com/ - *

- * 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. - *

- * This implementation uses the default AwsProxyHttpServletRequest and Response implementations. - *

- *

- * {@code
- *     // always initialize the handler first
- *     SparkLambdaContainerHandler handler =
- *             SparkLambdaContainerHandler.getAwsProxyHandler();
- *
- *     get("/hello", (req, res) -> {
- *         res.status(200);
- *         res.body("Hello World");
- *     });
- * }
- * 
- * - * @param The request object used by the RequestReader implementation passed to the constructor - * @param The response object produced by the ResponseWriter implementation in the constructor - */ -public class SparkLambdaContainerHandler - extends AwsLambdaServletContainerHandler { - - //------------------------------------------------------------- - // 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 AwsProxyRequest - * and AwsProxyResponse objects. - * - * @return a new instance of SparkLambdaContainerHandler - * - * @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 getAwsProxyHandler() - throws ContainerInitializationException { - SparkLambdaContainerHandler 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 HttpApiV2ProxyRequest - * and AwsProxyResponse objects. - * - * @return a new instance of SparkLambdaContainerHandler - * - * @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 getHttpApiV2ProxyHandler() - throws ContainerInitializationException { - SparkLambdaContainerHandler 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 requestTypeClass, - Class responseTypeClass, - RequestReader requestReader, - ResponseWriter responseWriter, - SecurityContextWriter securityContextWriter, - ExceptionHandler 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) () -> { - 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 webSocketHandlers, - Optional 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 handler; - private static SparkLambdaContainerHandler 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 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 handler; - - private boolean isAlb; - - public void initHelloWorldSparkTest(boolean alb) { - isAlb = alb; - } - - public static Collection 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 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 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 @@ - - 4.0.0 - - - com.amazonaws.serverless - aws-serverless-java-container - 2.0.0-SNAPSHOT - - - com.amazonaws.serverless.archetypes - aws-serverless-spark-archetype - 2.0.0-SNAPSHOT - maven-archetype - - - https://github.com/aws/serverless-java-container.git - HEAD - - - - - The Apache Software License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0.txt - repo - - - - - - - src/main/resources - true - - archetype-resources/pom.xml - archetype-resources/README.md - - - - src/main/resources - false - - archetype-resources/pom.xml - - - - - - - org.apache.maven.archetype - archetype-packaging - 3.0.1 - - - - - - - org.apache.maven.plugins - maven-resources-plugin - 3.1.0 - - \ - - - - - org.apache.maven.plugins - maven-archetype-plugin - 3.0.1 - - - - integration-test - - - - - - - - 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 @@ - - - - src/main/java - - **/*.java - - - - src/test/java - - **/*.java - - - - src/assembly - - * - - - - - - template.yml - README.md - build.gradle - - - - \ 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 = '$') - - - 4.0.0 - - \${groupId} - \${artifactId} - \${version} - jar - - Serverless Spark API - https://github.com/aws/serverless-java-container - - - 1.8 - 1.8 - 2.16.1 - 2.9.4 - 5.10.1 - - - - - com.amazonaws.serverless - aws-serverless-java-container-spark - ${project.version} - - - com.amazonaws.serverless - aws-serverless-java-container-core - ${project.version} - tests - test-jar - test - - - org.apache.httpcomponents.client5 - httpclient5 - 5.2.1 - test - - - - com.sparkjava - spark-core - \${spark.version} - - - - com.fasterxml.jackson.core - jackson-databind - \${jackson.version} - - - - org.junit.jupiter - junit-jupiter - test - - - - - - - org.junit - junit-bom - ${junit.version} - import - pom - - - - - - - shaded-jar - - - - org.apache.maven.plugins - maven-shade-plugin - 3.2.4 - - false - - - - package - - shade - - - - - - org.eclipse.jetty.websocket:* - org.eclipse.jetty:jetty-http - org.eclipse.jetty:jetty-client - org.eclipse.jetty:jetty-webapp - org.eclipse.jetty:jetty-xml - org.eclipse.jetty:jetty-io - - - - - - - - - - - assembly-zip - - true - - - - - - org.apache.maven.plugins - maven-jar-plugin - 3.2.0 - - - default-jar - none - - - - - org.apache.maven.plugins - maven-install-plugin - 3.1.1 - - true - - - - - org.apache.maven.plugins - maven-dependency-plugin - 3.6.1 - - - copy-dependencies - package - - copy-dependencies - - - ${dollar}{project.build.directory}${dollar}{file.separator}lib - runtime - - - - - - org.apache.maven.plugins - maven-assembly-plugin - 3.3.0 - - - zip-assembly - package - - single - - - ${dollar}{project.artifactId}-${dollar}{project.version} - - src${dollar}{file.separator}assembly${dollar}{file.separator}bin.xml - - false - - - - - - - - - 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 @@ - - lambda-package - - zip - - false - - - - ${project.build.directory}${file.separator}lib - - websocket* - jetty-http* - jetty-client* - jetty-webapp* - jetty-xml* - jetty-io* - - lib - - - - ${project.build.directory}${file.separator}classes - - ** - - ${file.separator} - - - \ 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 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 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 @@ - - - 4.0.0 - - com.amazonaws.serverless.sample - serverless-spark-example - 1.0-SNAPSHOT - Spark example for the aws-serverless-java-container library - Simple pet store written with the Spark framework - https://aws.amazon.com/lambda/ - - - https://github.com/aws/serverless-java-container.git - - - - - The Apache Software License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0.txt - repo - - - - - 1.8 - 1.8 - 2.16.1 - 2.9.1 - - - - - com.amazonaws.serverless - aws-serverless-java-container-spark - [1.6,) - - - - com.sparkjava - spark-core - ${spark.version} - - - - com.fasterxml.jackson.core - jackson-databind - ${jackson.version} - - - - - - shaded-jar - - - - org.apache.maven.plugins - maven-shade-plugin - 3.2.4 - - false - - - - package - - shade - - - - - - org.eclipse.jetty.websocket:* - org.eclipse.jetty:jetty-http - org.eclipse.jetty:jetty-client - org.eclipse.jetty:jetty-webapp - org.eclipse.jetty:jetty-xml - org.eclipse.jetty:jetty-io - - - - - - - - - - - assembly-zip - - true - - - - - - org.apache.maven.plugins - maven-jar-plugin - 3.2.0 - - - default-jar - none - - - - - org.apache.maven.plugins - maven-install-plugin - 3.1.1 - - true - - - - - org.apache.maven.plugins - maven-dependency-plugin - 3.6.1 - - - copy-dependencies - package - - copy-dependencies - - - ${project.build.directory}/lib - runtime - - - - - - org.apache.maven.plugins - maven-assembly-plugin - 3.6.0 - - - zip-assembly - package - - single - - - ${project.artifactId}-${project.version} - - src${file.separator}assembly${file.separator}bin.xml - - false - - - - - - - - - - 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 @@ - - lambda-package - - zip - - false - - - - ${project.build.directory}${file.separator}lib - - websocket* - jetty-http* - jetty-client* - jetty-webapp* - jetty-xml* - jetty-io* - - lib - - - - ${project.build.directory}${file.separator}classes - - ** - - ${file.separator} - - - \ 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 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 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 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 getBreeds() { - return breeds; - } - - public static List 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 275/623] 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 Date: Sun, 21 Jan 2024 11:02:04 +0100 Subject: [PATCH 276/623] 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 @@ - 6.3.0.2 + 7.0.0-M1 @@ -25,12 +25,24 @@ aws-serverless-java-container-core 2.0.0-SNAPSHOT + + com.amazonaws.serverless + aws-serverless-java-container-core + 2.0.0-SNAPSHOT + tests + test-jar + test + org.apache.struts struts2-core ${struts.version} + + org.apache.commons + commons-fileupload2-jakarta + commons-io commons-io @@ -71,38 +83,33 @@ - javax.el - javax.el-api - 3.0.0 + jakarta.el + jakarta.el-api + 5.0.1 test - javax.servlet - jsp-api - 2.0 + jakarta.servlet.jsp + jakarta.servlet.jsp-api + 3.1.0 test org.glassfish - javax.el - 3.0.0 + jakarta.el + 5.0.0-M1 test - + org.apache.commons commons-text - 1.10.0 - - - commons-net - commons-net - 3.9.0 + 1.11.0 @@ -198,4 +205,12 @@ + + + + apache-pre-release + https://repository.apache.org/content/repositories/staging/ + default + + 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 @@ 1.8 1.8 - 6.1.3.1 + 7.0.0-M1 2.16.1 5.10.1 2.22.1 @@ -121,15 +121,15 @@ - javax.el - javax.el-api - 3.0.0 + jakarta.el + jakarta.el-api + 5.0.1 test org.glassfish - javax.el - 3.0.0 + jakarta.el + 5.0.0-M1 test @@ -175,4 +175,12 @@ + + + + apache-pre-release + https://repository.apache.org/content/repositories/staging/ + default + + 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 @@ com.amazonaws.serverless.sample serverless-struts-example - 1.0-SNAPSHOT + 2.0-SNAPSHOT Struts example for the aws-serverless-java-container library Simple pet store written with the Apache Struts framework https://aws.amazon.com/lambda/ @@ -26,7 +26,7 @@ 1.8 1.8 - 6.1.3.1 + 7.0.0-M1 2.16.1 4.13.2 2.22.1 @@ -36,7 +36,7 @@ com.amazonaws.serverless aws-serverless-java-container-struts - [1.9,) + [2.0.0-SNAPSHOT,) @@ -79,13 +79,13 @@ org.glassfish - javax.el - 3.0.0 + jakarta.el + 5.0.0-M1 - javax.el - javax.el-api - 3.0.0 + jakarta.el + jakarta.el-api + 5.0.1 @@ -167,4 +167,11 @@ + + + apache-pre-release + https://repository.apache.org/content/repositories/staging/ + default + + 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 277/623] 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] --- 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 @@ 0.7 - 9.0.8 + 9.0.9 2.16.1 2.0.11 5.10.1 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 278/623] 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 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 Date: Tue, 23 Jan 2024 17:32:02 -0800 Subject: [PATCH 279/623] 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 @@ + + + 4.0.0 + + com.amazonaws.serverless.sample + serverless-springboot3-example + 2.0-SNAPSHOT + Spring Boot example for the aws-serverless-java-container library + Simple pet store written with the Spring framework and Spring Boot + https://aws.amazon.com/lambda/ + + + org.springframework.boot + spring-boot-starter-parent + 3.2.2 + + + + + The Apache Software License, Version 2.0 + http://www.apache.org/licenses/LICENSE-2.0.txt + repo + + + + + 21 + + + + + org.springframework.boot + spring-boot-starter-graphql + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-tomcat + + + + + org.springframework.graphql + spring-graphql-test + test + + + com.amazonaws.serverless + aws-serverless-java-container-springboot3 + 2.0.0-SNAPSHOT + + + + + + shaded-jar + + + + org.apache.maven.plugins + maven-shade-plugin + 3.5.1 + + false + + + + package + + shade + + + + + org.apache.tomcat.embed:* + + + + + + + + + + + assembly-zip + + true + + + + + + org.apache.maven.plugins + maven-jar-plugin + 3.3.0 + + + default-jar + none + + + + + org.apache.maven.plugins + maven-install-plugin + 3.1.1 + + true + + + + + org.apache.maven.plugins + maven-dependency-plugin + 3.6.1 + + + copy-dependencies + package + + copy-dependencies + + + ${project.build.directory}/lib + runtime + + + + + + org.apache.maven.plugins + maven-assembly-plugin + 3.6.0 + + + zip-assembly + package + + single + + + ${project.artifactId}-${project.version} + + src${file.separator}assembly${file.separator}bin.xml + + false + + + + + + + + + + + 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 @@ + + lambda-package + + zip + + false + + + + ${project.build.directory}${file.separator}lib + lib + + tomcat-embed* + + + + + ${project.build.directory}${file.separator}classes + + ** + + ${file.separator} + + + 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 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 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 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 @@ + + + + + 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 280/623] 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 --- 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 @@ com.amazonaws.serverless aws-serverless-java-container-springboot3 - [2.0-SNAPSHOT,) + [2.0.0-SNAPSHOT,),[2.0.0-M1,) From c30b1977659f41d0c2742bc7fb5ac6a5d4c1f0f2 Mon Sep 17 00:00:00 2001 From: Oleg Zhurakousky Date: Wed, 24 Jan 2024 19:07:06 +0100 Subject: [PATCH 281/623] 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 @@ ${basedir}/target/coverage-reports/jacoco-unit.exec - com/amazonaws/serverless/proxy/spring/AWSWebRuntimeEventLoop* - com/amazonaws/serverless/proxy/spring/AWSTypesProcessor* + com/amazonaws/serverless/proxy/spring/AwsSpringWebCustomRuntimeEventLoop* + com/amazonaws/serverless/proxy/spring/AwsSpringAotTypesProcessor* 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 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 result = rest.exchange(RequestEntity.post(URI.create(invocationUrl)) - .header("User-Agent", USER_AGENT_VALUE).body(awsResponse, AwsProxyResponse.class), Object.class); + + ResponseEntity 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 @@ org.springframework.boot spring-boot-starter - - - - - - 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 zRWb!e7z<{Mr96 z^C{%ROigEIapRGbFA5g4XoQAe_Y1ii3Ci!KV`?$ zZ2Hy1VP#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 zCU-)_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*^CkcAG#o%I8i186AbS@;qrezPCQYWHe=q-5zF>xO*Kk|VTZD;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#1WK4G|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^YWYqZMV2<`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}DHXG?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)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)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`bbx(8}km#t2a z1A~COG(S4C7~h~k+3;NkxdA4gbB7bRVbm%$DXK0TSBI=Ph6f+PA@$t){_NrRLb`jp zn1u=O0C8%&`rdQgO3kEi#QqiBQcBcbG3wqPrJ8+0r<`L0Co-n8y-NbWbx;}DTq@FD 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)9&g3RDXGV zElux37>A=`#5(UuRx&d4qxrV<38_w?#plbw03l9>Nz$Y zZS;fNq6>cGvoASa2y(D&qR9_{@tVrnvduek+riBR#VCG|4Ne^w@mf2Y;-k90%V zpA6dVw|naH;pM~VAwLcQZ|pyTEr;_S2GpkB?7)+?cW{0yE$G43`viTn+^}IPNlDo3 zmE`*)*tFe^=p+a{a5xR;H0r=&!u9y)kYUv@;NUKZ)`u-KFTv0S&FTEQc;D3d|KEKSxirI9TtAWe#hvOXV z>807~TWI~^rL?)WMmi!T!j-vjsw@f11?#jNTu^cmjp!+A1f__Dw!7oqF>&r$V7gc< z?6D92h~Y?faUD+I8V!w~8Z%ws5S{20(AkaTZc>=z`ZK=>ik1td7Op#vAnD;8S zh<>2tmEZiSm-nEjuaWVE)aUXp$BumSS;qw#Xy7-yeq)(<{2G#ap8z)+lTi( ziMb-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{#Oac|%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@}@fba(;n4EG| zge1i)?NE@M@DC5eEv4; 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@Hvr>?X3^~=1iaRa~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+cGQi*#`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*@L0>mSC(A8f4Rgmv1HG;QDWFj<(1oz)JHr+cP|EPET zSD~QW&W(W?1PF-iZ()b|UrnB(#wG^NR!*X}t~OS-21dpXq)h)YcdA(1A`2nzVFax9rx~WuN=SVt`OIR=eE@$^9&Gx_HCfN= zI(V`)Jn+tJPF~mS?ED7#InwS&6OfH;qDzI_8@t>In6nl zo}q{Ds*cTG*w3CH{Mw9*Zs|iDH^KqmhlLp_+wfwIS24G 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``CIsgMCYD#80(bsKpvwO)0#)1{ zos6v&9c=%W0G-T@9sfSLxeGZvnHk$SnHw57+5X4!u1dvH0YwOvuZ7M^2YOKra0dqR zD`K@MTs(k@h>VeI5UYI%n7#3L_WXVnpu$Vr-g}gEE>Y8ZQQsj_wbl&t6nj{;ga4q8SN#Z6cBZepMoyv7MF-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$9 zhepggNYDlBLM;Q*CB&%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({ zLwJKo9!9xN4Q8a2F`xL&_>KZfN zOK?5jP%CT{^m4_jZahnn4DrqgTr%(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^wQ=F#j9U{wJ9eGH^#vzm$HIm->xSO>WQ~nwLYQ8FS|?l!vWL<%j1~P<+07ZMKkTqE0F*Oy1FchM z2(Nx-db%$WC~|loN~e!U`A4)V4@A|gPZh`TA18`yO1{ 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<%*dJXe!*wZ-yidw|zw|C`cR z`fiF^(yZt?p{ZX|8Ita)UC$=fg6wOve?w+8ww|^7OQ0d zN(3dmJ@mV8>74I$kQl8NM%aC+2l?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^53jQd0`)=C~w%Lo?qw!q3fVi{~2arObUM{s=q)hgBn64~)W0tyi?(vlFb z>tCE=B1cbfyY=V38fUGN(#vmn1aY!@v_c70}pa(Lrle-(-SH8Nd!emQF zf3kz0cE~KzB%37B24|e=l4)L}g1AF@v%J*A;5F7li!>I0`lfO9TR+ak`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+zL;>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` zb6I)QRGp%fRF)^T?i^j&JDBhfNU9?>Sl6WVMM%S?7< ze|4gaDbPooB=F4Y=>~_+y~Q1{Ox@%q>v+_ZIOfnz5y+qy zhi+^!CE*Lv-}>g^%G=bGLqD(aTN;yHDBH#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&p`ZrCBj_Swt*~dVt=5*RK6Y{% zABqK$X59BnrK3r3u=wxklRnA1uh+q`?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!Tus*e$h@^u z>#zV0771Bix~r&h2FJ9)%N{>s>?2tk1$bId)1#G;OKgn-U8jUo^AK;Hu)hQEi}swD(264kAS-SBCD$R(Ro0rh8~Le zzRwxbz_JHDbD+hTX15AWmVw!#rC)-zeZahQQmo6FG1)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*j!eC<5)iUJ&Twj7?*p%vEOGElGhpRZsccM!<k}DeC;TY;rULQs3e}lZyP#UVb=6 zB$Dkm2FaHWUXr7<{R&46sfZ)&(HXxB_=e`%LZci`s7L6c-L7iF&wdmTJz`*^=jD~* zpOZ@jcq8LezVkE^M6D9^QgZqnX&x*mr1_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*ZqsBPh-?g!m*O`}6<}Pfj}Y1n9|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>ZVPiDrneh#&1(Y?uiMo^f5qo@{JEr(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)=#sRiRNg|=%M zR;8BE)QA4#Dsg^EakzttRg9pkfIrF3iVYVM#*_+#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;U;k@%q87=dM*_yvLN0->qswJWb zImaj{Ah&`)C$u#E0mfZh;iyyWNyEg;w0v%QS5 zGXqad{`>!XZJ%+nT+DiVm;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+-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+MljFP1J0GGNR1}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`jTn6JO@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-lYU-Q-b)_fVVl`EP5X}+J9EzT20x8XIv=m7witdu7!3Lh=KE#OyKpT1GWk{YAo^ny|fvZt<+jmsFs=l*%e& zmRkBt5ccv4O7!HAyv2~rsq*(FmMTm?@TX3&1`nu|7C^F{ad%GLuoX}Rl}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 z94m=3eLi=sQb^S5;fqP?3aaXc&`}`lq z&M8dOXvxx9Y1^u_ZQHhO+qP}nwkvJhwoz$Mp6Qcq^7M#eWm}!3U@s07hop` zW24|J{t$aB`W>uBTssEvYMyi$hkaOqWh+^(RV_1MYnE0XPgW?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>Koo2IdXJDsr6IN)7vB41Yy-^Wbo9*2th2QA@C zE0-0Gk12YOO?d_Guu6b3&(PIL`d zh4{`k54hu9o%v1K3PGuccez-wdC<&2fp)>`qIIaf)R{5un7-vwm=>LD7ibnJ$|KyE zzw`X*tM0S|V(I3vf454PY{yA5lbE+36_<1kd=&0Xy4jfvUKZ0$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#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$&*(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`pUyfF4J8A9wE#7_9!X|_s8~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)yesg~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>?%@RvADs9er;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=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_LaezT zqIkG6R+ve#k6!xy*}@Kz@jcRaG9g|~j5fAYegGOE0k8+qtF?EgI99h*W}Cw z7TP&T0tz4QxiW!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<ettJJt~I+sl=&CPHwz zC9dEb#QFQcY?bk11Y=tEl{t+2IG`QFmYS>ECl;kv=N6&_xJLQt>}ZQiFSf+!D*4Ar zGJ~LFB7e_2AQaxg*h{$!eJ6=smO(d2ZNmwzcy3OG@)kNymCWS44|>fP^7QkJHkE9JmLryhcxFASKb4GYkJ|u^Fj=VdF0%6kgKllkt zC|_ov2R4cJ2QjjYjT6jE#J1J<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&Z46ogXCu!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 zmBV|NKlJT?y4Q82er)@lK&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_+KTGRp2aQSMAgyV#b3@{?5q@hPEP6oF3^}|@8GuD6iKbX;!LI!L=P#Za zL$Zuv#=x3fseRMZ()#SQcXv->xW`C|6quwqL1M&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{kb&Z!eXmI}pxP_^kI{}#_ 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`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`nbCtzqJ#@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_&nm{_xaKn3h4&yMyym2k-wMFg(s@ez=DPmuB%`| z6;e@HQKB(|!PU1sW)W6~x|=8m6rL~4dQ9LTk|RzL-_(_77B4I~ZG=q7K%qHiv!FD8 zmt;Vnhb{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@>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!}wjYoBn#2RGEP49&ZH-Z_}R_JK_ z>o*_y!pOI6?Vf*{x-XT;^(_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&xgQmG$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 zUPS&WHikdN<{#Yj|EFQ`UojD4`Zh*CZO4Cv`w^&*FfqBi`iXsWg%%a< zk@*c%j1+xib(4q^nHHO^y5d8iNkvczbqZ5;^ZVu%*PJ!O?X-CoNP*&tOU!5%bwUEw zQN?P*a=KKlu{`7GoA}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-P?URm0Pti*e#5jmfK)6EvaKCT{h)kbJl{AGr1Ekt}pG?^e z*botRf-RsB8q10BTroj{ZP**)2zkXTF+{9<4@$aNDreO7%tttKkR3z`3ljd?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(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?_)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{ zy2_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?@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$SuDvY`AoyfIzL9~ zo|bs1ADoXMr{tRGL% zA#cLu%kuMrYQXJq8(&qS|UYUxdCla(;SJLYIdQp)1luCxniVg~duy zUTPo9%ev2~W}Vbm-*=!DKv$%TktO$2rF~7-W-{ODp{sL%yQY_tcupR@HlA0f#^1l8 zbi>MV~o zz)zl1a?sGv)E}kP$4v3CQgTjpSJo?s>_$e>s2i+M^D5EfrwjFAo(8E%(^ROV0vz0o z-cg0jIk24n!wxZainfH)+?MGu@kg$XgaMY-^H}z^vG~XC7z2;p2Kv`b^3S#b5ssMOJ7724v>S36dD zeypxJ<=E~sD4f5wX060RIF-AR0#{Z z=&y$r8A-e6q18lIF{@O9Mi%dYSYT6erw!@zrl=uj>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~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=HETyWpi!O^`EZ_5AoSv@VbUzsqusIZ;yX!4CsMiznO}S{4e>^0`c<)c~mC#*{90@+T@%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+fV7y;wp#!wj75drv;R*UdSh(}u$%{VSd0gLeFp;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;#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=)N*0b8_O({IeKg?vqQ)hk=JHe z5iqUKm!~mLP0fnRwkCO(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`%uo{sMYq&Vyufb)?OI59ds)O+kyE8@G z@tlpNr0UO~}qd0HQve6njJ zda2+l$gdX7AvvGhxM6OToCuQ|Zw|9!g1)O+7>~{KNvASjp9#Cqce-or+y5xdzWL3gLWt2oa+T(I+{j(&bF1laUsJB{fOgE-B}qslaS>C z)TjzG8XecbS%a+?yT!0QmTex?E478;D|sL*oS4C-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<| zCMLTYMSDG5Ie9O>6Dl#T{@cscz%)}?tC#?rj>iwQ0!YUk~R z$rB-k=fa9x&631Z9Mfqj_GRoS1MzqSMEdaZ2!isP19Sr>qG8!yL(WWF)_&{F)r>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&antYsZnUR6Q9tQUy81r$&ovT#fy;(Db4F&M*C=KxQgHDrRcVR#d+ z0(D|*9#u`w_%2o3faI{?dNd9$#5nj1PROHNq z7HJ(;7B1ThyM>a@Fo^lJb2ls2lD`}ocREH|5pKN;$>gFyM6k)kZG;lA;@kSJIqUhf zX%dhcN(Jtomz4(rNng&1br3Xx33EvCWz%o8s;SpRiKEUFd+KJ+u|gn|J85dZ)Exc&=V|Ns8Xs#P>qv6PX&VAJXJ(ILZO!WJd0 z`+|f5HrEj~isRN7?dBHotcPI7;6W48*%J(9 zftl1Tr`bKH*WNdFx+h;BZ+`p!qKl~|Zt5izh}#pU9FQKE97#$@*pf38Hr8A+`N+50U3$6h%^!4fBN 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<DEEmYcoSh?WdXUsP7O4)&lQXA(BVM5jI8s6;mO}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 zRY(F7Q3s7h$Q-p&L$ucN}it*-9KR z_<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#{oUW>FwHkZ3rBaFeISHfiVSB7%}M) z=10EZ1Ec&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*@m9WIr0kxOc}fX9eOWh zFKfV>+SD$@kESKYm{F*J90XQjr$!<~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^j>dZM7))cw?a`w8R z%3M0R=kdOt^W^$Kq5Z%aJ(a$(*qFpy^W}Ij$h+Jnmc9eaP(vB@{@8t zz=RQ$x4XYC#enS$fxh@;cSZ|D%7ug;0z{C8I8h{KocN-cyv3UG_nk99UNS4ki^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-}ym*?~sZ{FgkQ9tXFSF zls=QGy?fZ=+(@M>P3Y>@O{f44yU^fP>zNzIQ0(&O$JCd_!p?2;} zI6E1j@`DxzgJvqcE@zgapQ?tophO14`=14DUZ*#@%rRi``pi0lkNgidSsHGjXK8gO{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)AYHDQWHk*s~HFq6OaJ3h#BUqUOMkh)~!(ptZ2WP!_$TBV}!@>Ta#eQS_{ffgpfiRbyw1f)X4S z_iU`lNuTy86;%!sF3yh?$5zjW4F?6E9Ts-TnA zDyx5p1h$Z3IsHv7b*Q{5(bkPc{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|;_~=j1TTZ9_1LrbBUHb?)F4fc)&F7hX1v160!vJc!aRI>vp*bYK=CB(Qbtw7 zDr2O^J%%#zHa7M5hGBh#8(2IBAk}zdhAk$`=QYe^0P6Bb+j5X)Grmi$ z6YH?*kx9hX>KCI04iaM_wzSVD+%EWS)@DR&nWsSBc2VIZ>C(jX((ZiV0=cp}rtTO&|GMvbmE4FpBF5Rd z6ZG=>X&>N3?ZN2^11pXEP4L?XUo`qrwxgQm4X~RCttXmZAhnhu4KDK=VkKq?@@Q_Z za`*xyHrsAEsR zV(7)2+|h)%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)MEg6zBSF8XqU$IUhHj+&VwsZqd7) ztjz$#CZrccfmFdi_1$#&wl~A*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!)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}&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$}iwR}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;TT6o0pd7 zteFQ(ND@djf#o2kTkjcgT=dHs7ukmP0&l8{f;o3JuHGd2Op*?p7?Ct=jA*tIg{MZk z$2Lsc0e8Tdcwrjx|_Ok?9uB3Il|^2FF%X#ck}WoIvrzQXN%kT$9NI{79Wm~gZ3`8I+O`)`n30feZ( zDO-fl6IG3c^8S;Y_M-)+^CmM0tT^g0?H#>H8!oC8W%oU!~3|DJ?)~LT9*&GAQG13zOGq6gs*={cu|(V7{R$y@{-iV*9q@AD(#Ktb}J&3&k|5Djs$)9WM7!6#EaJ_ilvbfUvyh8c?-{n zfuFrC0u6}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?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=bnUvQUZcdisyn;-4;ACXOe-Xor9K8Qbp{ldE17+G@VQT+9ZJQ*9dZoXfU2ue|mMhrrZk2R7&~YjFW4`BTq45UwVc6JORKU)wBCTanITh0GD}s$`C5pb(9{b9 znwee6j%?-UV)_7opOioCf5@C?@w^@g& z&68+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&IB8TdoC~)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_yjO!*4aN7{vqzg2t-R|Dav%_NDk z`H_FVlSi==(~f-#65VmQ{EE92x<03lwo5p)s=ZJ^L7PlS>132Whr zR6v~t(#I+(`usYLCoO;Rt8j&b^5g_xgs*98Gp|N}b>-`HtVm)MscD)71y?(K6DRCZV26RsHPHKk)EKKZA%C99t3$t^B0-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<^@QpR4#W~Laz+QBsPt@3L#KF`Yr8}jgHe;5(cfpQ=;Zjtbt;c%y^#-m=hqOT z;KAYakW+$w0&F}>K10&SiPcD9SrDOuczj@U#W})5jGU-_htU`U6Q%wdy((%?J}y+$ z=$4jw1N nJo)qTxG{D(`3*#8tY|67hJRF;)r6F|#I`Ar6I0aafRa=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{!I$hyrk!6%De$gp<_*Gc?ES(OwY8U^)Kjgc{ zSlhpXDb|;{+y9`u{EuMz54rlky2~p6xX2>MV6BZ&k`$q%q7v(xYps2wr9e8^4<;CB zc)eAT~B^rjzO6<4BDDH;il6 zFsM8jL+agQ;zazW(uiQjM%fPf2N~_p{cy29XP11_lQFpt`t#9nlk}>fv((FZt-dBa zuMIc4HmPHW04n0TTG9ug9;&OV9euL$Ib|+M7}}L~z4e%%%b|r~6OQj(S2d7XfYn#xp8;KQ55UYu#gY*De5j6Cc z#R%?rqwpy7I1(kpU7B*Pq=etXeYUn04jg%ZPjYqQNa$==yTG=6KX+=;i2Xg+kjV2T*Gc!(ef z`Q4fR*TA=M5-}z+s%YO+!K{k}S**ic&>o4_Tmv$EQTOp7F6TXPCj-UTXy?OQ=%*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(=*&Aywo3vuJoWZnU!u2_4bNkDTc&&bCYc%T zM~~xYxS#3KXFzQ@OXdc%9QDOxqiTd_> zT;(DX9{5dIuC4pO_xy+3{Ov)1I7j!Z)6&nHUvTRP>VU5dm#849icG)cvl0QOPkCIzG^lOp4#UcNr`VhBp(Ha%8@KPlvT*5u!v_$b#b~%sn3K{mu zaxeD%Q~{;Lw03ZAq(Pc-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>WvlhQ@Uw$du|14)tZ?; zPNZ|xZSwp1y+d4sut8E4*l2JWR|~o0A9vD-?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|=&-S&D+rbJQ$`Y-xL~ol;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?@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(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(n6uBZt02z#noMMxTfF-RzjKre-c+@B)#J3pN-Zv7F}JtAwNk3j?OkpVCL6W1)Q$FLAj zGI!tX;g`O{%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=Hs2%fg;&Qdvr74{E!R?Bd zIRQ?{{xkLJ_44P@y3^#(Be%(pk%$liKbUUo76wSoVfJmt9iTKL3z{uW6L&?jYg>EY zsx{kRiW@q%<$VZvbS(TKKTO4{Ad6l^IeY(F^3}=mX9|FZmQ`~RErNxlBPl3ast}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{T43VJAgxdP(fJ4&U{XR90*#a)G8+clOwdF?hJ?D) zmxu>0>M|g_QRHe_7G|q6o`C>9x4xd$Gl7lAuR~+FtNid=%DRsnf}YI*yOToWO%xnP zY*1G5yDnTGv{{xg5FhWU65q3-|-(+-rJ2WCeSJn(7Az>ej4Jp9+l-GyZ_| zJ8}>iA4g|}q1AhEEv#uWR&$g&Uyht?fVU(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|Ob5$n_%N{!{9xP~LJO0^=V?BK8AbCEFBhDd$^yih$>U z(o{RReCU{#zHSEavFNdc8Yt<%N9pd1flD{ZVSWQu*ea1t#$J5f6*6;tCx=&;EIN^S}*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%omO_+7}saXnJ9 z5ETilbag(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=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@;4Ws)N91)3A6PleMe2<& z!(zv#%Uc?N`(Xmm)OJPYt)BM`nRjoWA&P0Yxl@c9Y02zlPH1J5l$nhPrMwu=atkz4 z)a-1+OEL;d@ctx=s<<+3Sv1VYy0RYmiji|#hy$66#`5;u~BkH4^$EGZ-Y4xyZ=%3KuaeLYKAUr$xMtIh_5mga> zPz<#G0mQ7IxEw-yO}BueN}RaFlg$RwCDB)vLF$wDu%qZyLYsPKdcbHD23$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>k#&nIvoZ5e9Sno)B2r+E0G} z@&M|zf4E0Q$O*NBR2I;?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}$i4zJ`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#%@$&*>K&u3#|`fm2mj*FKVf?du{xZ}WKWETTFhq6_fO$PS5(ItF=3~pFp~*j z!ys1<4EL1)#{`mz@gW|t-FpPkd%pK)n_Rb)F;z7cQ6dym_>YI3&e!=!m006oS3Mjq{q ze%hNzW=G0jpfl2K(x`CDuZCsJV*hm9T~%5n7R_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*<y%T*Aw(XCPrFC=39*y$A`FSzxBiQ#W+uW10d8&gYp4{teh;^p@anft+z$5!Hv&@h0X-@xJG>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{Z*&FZ>iq* zxh|JuJoo2$p8MJ3zO@dQ;%1#~Mrm48 zB0053{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|Yea3AyMYBgm$H_`F^v2%)bux)3s znFIEBDK;-JS5SH|;1?afJb<*=c5puu=w%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+c0{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?eLGR7xEP 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;v zwkW8j+8Ccxo9stEDOT_Go&j%$KCgVO7pm+^%PKEPBZqbMw%s@732XS{cX+wCSjH1s z5)bc=g**<^NNsroY` z?}fHHlgu^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(NKH;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# zuVNFMPte79XgEu!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-9P8zE`J?aZ(iB~Rz<{vvnk2HaZU#K$aVFfYnbAXVUOLU#As5JvS%+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_#S;E*jOdjtg?uKN|l`P8sjz&Qf7a^z9 z;{3-8T+H4y99_zc;JYIvs!sk$G}` 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@bOAH$pLQZ+BKH8E$iM>IDz z3|wc?QP`yI=X5YTlp8h}%p6{Deq?S0QD$Ug>ih1SdPZg237Rl{S~=Ha4~-ckMoIWMn+X@@`V6 z#HHZj>MQbt$Qqp*9T(cjc^lxZ7UO(>PwzF-qEr(wo`vaulxdall|KP`7p4gd`23&Jy=#sAes*0diLB(U$Nx46VQvP)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`G2c!SuOA3CbowPhF6csf1|&qqugUrj;UgGHm| z;j^yoH?MZhR;AYOW_XW2Lg2j%%ejL)B@*bUMD`g<#Z${1+fa57r7X82 zcqY-cfPnK%Y^3@szRner zt)bBToYCph6Jv*W+&t?&9FG4(Iu2w46 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)#HzsWEP!inHm2hI(V(~@W zY7gGU-lO52cHD&SY)>QHgy$=>^X%u0TQZfCizro!*weMyvZC=;MWOawdAx~`3C*W` z%^#^$uRP;gyqEE0<(i8xcQY$oc+6mY#z{-XFxsO1(cN8Y)>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_%$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_426T2TBj0D{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`Q9iCvp*mn7=|CjlpG{x z&r0n}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}{+lnCE#zu$`oVn44eS&T?N*wz~t~E&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 z39BMa5wl5q+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)+ z5iTl6MA7j9m&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 @@ + + + 4.0.0 + + org.springframework.boot + spring-boot-starter-parent + 3.2.0-SNAPSHOT + + + com.amazonaws.serverless.sample + pet-store-native + 0.0.1-SNAPSHOT + pet-store-native + Sample of AWS with Spring Native + + 21 + 2022.0.5-SNAPSHOT + + + + org.springframework.boot + spring-boot-starter + + + com.amazonaws.serverless + aws-serverless-java-container-springboot3 + 2.0.0-SNAPSHOT + + + com.amazonaws + aws-lambda-java-events + 3.9.0 + + + com.amazonaws + aws-lambda-java-core + 1.1.0 + provided + + + + org.springframework.boot + spring-boot-starter-test + test + + + + + + org.springframework.cloud + spring-cloud-dependencies + ${spring-cloud.version} + pom + import + + + + + + + native + + + + org.springframework.boot + spring-boot-maven-plugin + + -agentlib:native-image-agent=config-merge-dir=src/main/resources/META-INF/native-image/ --enable-preview + + --enable-preview + + + + + org.graalvm.buildtools + native-maven-plugin + + + --enable-url-protocols=http --enable-preview + + + + + + build + + package + + + test + + test + + test + + + + + maven-assembly-plugin + + + native-zip + package + + single + + false + + + + + src/assembly/native.xml + + + + + + + + \ 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 @@ + + java-zip + + zip + + + + + target/classes + / + + + src/shell/java + / + true + 0775 + + bootstrap + + + + + + /lib + false + runtime + + + \ 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 @@ + + native-zip + + zip + + + + + src/shell/native + / + true + 0775 + + bootstrap + + + + target + / + true + 0775 + + pet-store-native + + + + \ 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 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 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 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 getBreeds() { + return breeds; + } + + public static List 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 Date: Wed, 24 Jan 2024 21:50:40 +0100 Subject: [PATCH 282/623] 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 Date: Wed, 24 Jan 2024 13:53:20 -0800 Subject: [PATCH 283/623] 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 284/623] 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] --- 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 @@ org.apache.httpcomponents.client5 httpclient5 - 5.3 + 5.3.1 test 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 285/623] 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] --- 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 @@ 2.16.1 2.0.11 5.10.1 - 5.9.0 + 5.10.0 1.3 UTF-8 From 8f0fc79094c8d7025d47ce21d384b08d871a341e Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Thu, 25 Jan 2024 13:44:40 +0100 Subject: [PATCH 286/623] 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 readValue(String json, Class 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 getInitParameterNames() { -// return Collections.enumeration(new ArrayList()); -// } -// -// @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 { +public class AwsSpringWebRuntimeInitializer implements ApplicationContextInitializer { - 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 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 Date: Thu, 25 Jan 2024 13:49:13 +0100 Subject: [PATCH 287/623] 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 Date: Thu, 25 Jan 2024 14:06:03 +0100 Subject: [PATCH 288/623] 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 @@ org.springframework.boot spring-boot-starter-parent - 3.2.0-SNAPSHOT + 3.2.2 com.amazonaws.serverless.sample @@ -31,12 +31,12 @@ com.amazonaws aws-lambda-java-events - 3.9.0 + 3.11.4 com.amazonaws aws-lambda-java-core - 1.1.0 + 1.2.3 provided @@ -119,4 +119,23 @@ + + + + spring-snapshots + Spring Snapshots + https://repo.spring.io/snapshot + + true + + + + spring-milestones + Spring Milestones + https://repo.spring.io/milestone + + false + + + \ No newline at end of file From 01606c1fbcd50b918d95cdc84f0d7056a1d8b889 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Thu, 25 Jan 2024 14:07:26 +0100 Subject: [PATCH 289/623] 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 Date: Thu, 25 Jan 2024 16:18:15 +0100 Subject: [PATCH 290/623] 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 Date: Thu, 25 Jan 2024 16:47:17 +0100 Subject: [PATCH 291/623] 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 Date: Fri, 26 Jan 2024 09:08:43 +0100 Subject: [PATCH 292/623] 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 Date: Fri, 26 Jan 2024 11:04:24 +0100 Subject: [PATCH 293/623] 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 Date: Fri, 26 Jan 2024 11:24:57 +0100 Subject: [PATCH 294/623] 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 @@ native-maven-plugin - --enable-url-protocols=http --enable-preview + --enable-url-protocols=http --enable-preview -march=compatibility 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 295/623] 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 Date: Fri, 26 Jan 2024 18:16:20 +0100 Subject: [PATCH 296/623] 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 @@ 7 false - - - - check - - - 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 @@ 7 false - - - - check - - - 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 @@ 7 false - - - - check - - - 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 @@ 7 false - - - - check - - - From e1acefc727741e0ae0e9c4d34ce52afd41b7265e Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Fri, 26 Jan 2024 20:48:13 +0100 Subject: [PATCH 297/623] 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 Date: Tue, 30 Jan 2024 07:42:52 +0100 Subject: [PATCH 298/623] 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 @@ org.springframework.cloud spring-cloud-function-serverless-web - 4.0.6-SNAPSHOT + 4.0.6 com.amazonaws.serverless From 948f76c57de10d3887b93df83b446c1963ef5238 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Tue, 30 Jan 2024 08:00:09 +0100 Subject: [PATCH 299/623] 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 @@ org.springframework.boot spring-boot-starter-data-jpa - 3.2.1 + ${springboot.version} test @@ -326,8 +326,8 @@ org.apache.maven.plugins maven-compiler-plugin - 10 - 10 + 17 + 17 From 58b296fb49c403aacef133ffe483eff2d4c2a6e7 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Tue, 30 Jan 2024 11:41:27 +0100 Subject: [PATCH 300/623] 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 InitializationWrapper 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 initialize 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 * InitializationWrapper. 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 + * + * AWS Lambda Execution Environments. + */ +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 The request type for the wrapped Java container * @param The response or response writer type for the wrapped Java container */ -public abstract class LambdaContainerHandler { +public abstract class LambdaContainerHandler + implements InitializableLambdaContainerHandler { //------------------------------------------------------------- // Constants From 88f6e4aa07b3cecf644bb4c0d96f366f10a03377 Mon Sep 17 00:00:00 2001 From: Oleg Zhurakousky Date: Tue, 30 Jan 2024 15:27:39 +0100 Subject: [PATCH 301/623] 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 requestParameters, ServerlessHttpServletRequest httpRequest) { + if (!CollectionUtils.isEmpty(requestParameters)) { + for (Entry entry : requestParameters.entrySet()) { + httpRequest.setParameter(entry.getKey(), entry.getValue()); + } + } + } + private static T readValue(String json, Class 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¶meter1=value2¶meter2=value\",\n" + + " \"rawQueryString\": \"parameter1=value1¶meter1=value2&name=Ricky¶meter2=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 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 302/623] 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] --- 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 @@ com.h2database h2 - 2.2.222 + 2.2.224 test From 316c7a4094a5c066f07ca98ef24f00d6d432eb83 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Wed, 31 Jan 2024 10:47:40 +0100 Subject: [PATCH 303/623] 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 Date: Wed, 31 Jan 2024 10:57:40 +0100 Subject: [PATCH 304/623] 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 Date: Wed, 31 Jan 2024 11:04:03 +0100 Subject: [PATCH 305/623] 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 Date: Wed, 31 Jan 2024 11:28:14 +0100 Subject: [PATCH 306/623] 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 Date: Wed, 31 Jan 2024 11:30:05 +0100 Subject: [PATCH 307/623] 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 @@ Sample of AWS with Spring Native 21 - 2022.0.5-SNAPSHOT + 2022.0.5 From 803230cf38ac8f122e3aae6b00e7e9d82777109f Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Wed, 31 Jan 2024 11:36:34 +0100 Subject: [PATCH 308/623] 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 @@ - 21 + 17 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 @@ pet-store-native Sample of AWS with Spring Native - 21 + 17 2022.0.5 From 928d826f094c93b274d52027b2a03fc733f9cfcf Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Wed, 31 Jan 2024 14:32:44 +0100 Subject: [PATCH 309/623] 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 Date: Wed, 31 Jan 2024 14:37:34 +0100 Subject: [PATCH 310/623] 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 Date: Wed, 31 Jan 2024 14:59:20 +0100 Subject: [PATCH 311/623] 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 @@ 7 false - - - - check - - - From 96e8253922eb266d176197789f64e3773ffc060a Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Mon, 5 Feb 2024 06:49:17 +0100 Subject: [PATCH 312/623] 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 @@ 3.1.5 2.16.1 - 5.10.1 + 5.10.2 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 @@ 1.8 1.8 6.1.3 - 5.10.1 + 5.10.2 2.22.1 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 @@ 17 - 5.10.1 + 5.10.2 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 @@ 1.8 7.0.0-M1 2.16.1 - 5.10.1 + 5.10.2 2.22.1 diff --git a/pom.xml b/pom.xml index 0c1dac880..74f0bbc3e 100644 --- a/pom.xml +++ b/pom.xml @@ -80,7 +80,7 @@ 9.0.9 2.16.1 2.0.11 - 5.10.1 + 5.10.2 5.10.0 1.3 UTF-8 From eae6ce8fa9b2d4f94cd6e1a5293ad721e8f7b45a Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Mon, 5 Feb 2024 07:00:58 +0100 Subject: [PATCH 313/623] 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 @@ - 7.0.0-M1 + 7.0.0-M2 @@ -38,16 +38,6 @@ org.apache.struts struts2-core ${struts.version} - - - org.apache.commons - commons-fileupload2-jakarta - - - commons-io - commons-io - - org.apache.struts 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 @@ 1.8 1.8 - 7.0.0-M1 + 7.0.0-M2 2.16.1 5.10.2 2.22.1 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 @@ 1.8 1.8 - 7.0.0-M1 + 7.0.0-M2 2.16.1 4.13.2 2.22.1 From 755752d4749b08160ea7472485f09d79e1e5eeb7 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Mon, 5 Feb 2024 07:04:14 +0100 Subject: [PATCH 314/623] 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 @@ org.apache.struts struts2-core ${struts.version} + + + commons-io + commons-io + + org.apache.struts From 5ed73c02138194e617ac7c5ad4fb66363cfea2d0 Mon Sep 17 00:00:00 2001 From: Maximilian Schellhorn Date: Mon, 5 Feb 2024 17:09:06 +0100 Subject: [PATCH 315/623] 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 @@ -agentlib:native-image-agent=config-merge-dir=src/main/resources/META-INF/native-image/ --enable-preview - --enable-preview - 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 316/623] 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] --- 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 @@ 0.7 9.0.9 2.16.1 - 2.0.11 + 2.0.12 5.10.2 5.10.0 1.3 From c35a5eb1d45588fe20b894d6b8d65ead11f1c795 Mon Sep 17 00:00:00 2001 From: deki Date: Tue, 6 Feb 2024 06:20:52 +0000 Subject: [PATCH 317/623] 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 @@ AWS Serverless Java container support - Core Allows Java applications written for a servlet container to run in AWS Lambda https://aws.amazon.com/lambda - 2.0.0-SNAPSHOT + 2.0.0 com.amazonaws.serverless aws-serverless-java-container - 2.0.0-SNAPSHOT + 2.0.0 .. 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 @@ AWS Serverless Java container support - Jersey implementation Allows Java applications written for Jersey to run in AWS Lambda https://aws.amazon.com/lambda - 2.0.0-SNAPSHOT + 2.0.0 com.amazonaws.serverless aws-serverless-java-container - 2.0.0-SNAPSHOT + 2.0.0 .. @@ -24,7 +24,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.0.0-SNAPSHOT + 2.0.0 com.fasterxml.jackson.core @@ -35,7 +35,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.0.0-SNAPSHOT + 2.0.0 tests test-jar test 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 @@ AWS Serverless Java container support - Spring implementation Allows Java applications written for the Spring framework to run in AWS Lambda https://aws.amazon.com/lambda - 2.0.0-SNAPSHOT + 2.0.0 com.amazonaws.serverless aws-serverless-java-container - 2.0.0-SNAPSHOT + 2.0.0 .. @@ -25,12 +25,12 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.0.0-SNAPSHOT + 2.0.0 com.amazonaws.serverless aws-serverless-java-container-core - 2.0.0-SNAPSHOT + 2.0.0 tests test-jar test 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 @@ aws-serverless-java-container com.amazonaws.serverless - 2.0.0-SNAPSHOT + 2.0.0 4.0.0 @@ -12,7 +12,7 @@ AWS Serverless Java container support - SpringBoot 3 implementation Allows Java applications written for SpringBoot 3 to run in AWS Lambda https://aws.amazon.com/lambda - 2.0.0-SNAPSHOT + 2.0.0 6.1.3 @@ -30,12 +30,12 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.0.0-SNAPSHOT + 2.0.0 com.amazonaws.serverless aws-serverless-java-container-core - 2.0.0-SNAPSHOT + 2.0.0 tests test-jar test 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 @@ com.amazonaws.serverless aws-serverless-java-container - 2.0.0-SNAPSHOT + 2.0.0 com.amazonaws.serverless.archetypes aws-serverless-jersey-archetype - 2.0.0-SNAPSHOT + 2.0.0 maven-archetype https://github.com/aws/serverless-java-container.git - HEAD + aws-serverless-java-container-2.0.0 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 @@ com.amazonaws.serverless aws-serverless-java-container - 2.0.0-SNAPSHOT + 2.0.0 com.amazonaws.serverless.archetypes aws-serverless-spring-archetype - 2.0.0-SNAPSHOT + 2.0.0 maven-archetype https://github.com/aws/serverless-java-container.git - HEAD + aws-serverless-java-container-2.0.0 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 @@ com.amazonaws.serverless aws-serverless-java-container - 2.0.0-SNAPSHOT + 2.0.0 com.amazonaws.serverless.archetypes aws-serverless-springboot3-archetype - 2.0.0-SNAPSHOT + 2.0.0 maven-archetype https://github.com/aws/serverless-java-container.git - HEAD + aws-serverless-java-container-2.0.0 diff --git a/pom.xml b/pom.xml index 5d409adb9..e5542dcaf 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.amazonaws.serverless aws-serverless-java-container pom - 2.0.0-SNAPSHOT + 2.0.0 AWS Serverless Java container A Java framework to run Spring, Spring Boot, Jersey, Spark, and Struts applications inside AWS Lambda https://github.com/aws/serverless-java-container @@ -37,7 +37,7 @@ https://github.com/aws/serverless-java-container scm:git:https://github.com/aws/serverless-java-container.git - HEAD + aws-serverless-java-container-2.0.0 From cda4585fd8125a56f978705ecaf92e610520d458 Mon Sep 17 00:00:00 2001 From: deki Date: Tue, 6 Feb 2024 06:20:54 +0000 Subject: [PATCH 318/623] 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 @@ AWS Serverless Java container support - Core Allows Java applications written for a servlet container to run in AWS Lambda https://aws.amazon.com/lambda - 2.0.0 + 2.1.0-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container - 2.0.0 + 2.1.0-SNAPSHOT .. 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 @@ AWS Serverless Java container support - Jersey implementation Allows Java applications written for Jersey to run in AWS Lambda https://aws.amazon.com/lambda - 2.0.0 + 2.1.0-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container - 2.0.0 + 2.1.0-SNAPSHOT .. @@ -24,7 +24,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.0.0 + 2.1.0-SNAPSHOT com.fasterxml.jackson.core @@ -35,7 +35,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.0.0 + 2.1.0-SNAPSHOT tests test-jar test 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 @@ AWS Serverless Java container support - Spring implementation Allows Java applications written for the Spring framework to run in AWS Lambda https://aws.amazon.com/lambda - 2.0.0 + 2.1.0-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container - 2.0.0 + 2.1.0-SNAPSHOT .. @@ -25,12 +25,12 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.0.0 + 2.1.0-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container-core - 2.0.0 + 2.1.0-SNAPSHOT tests test-jar test 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 @@ aws-serverless-java-container com.amazonaws.serverless - 2.0.0 + 2.1.0-SNAPSHOT 4.0.0 @@ -12,7 +12,7 @@ AWS Serverless Java container support - SpringBoot 3 implementation Allows Java applications written for SpringBoot 3 to run in AWS Lambda https://aws.amazon.com/lambda - 2.0.0 + 2.1.0-SNAPSHOT 6.1.3 @@ -30,12 +30,12 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.0.0 + 2.1.0-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container-core - 2.0.0 + 2.1.0-SNAPSHOT tests test-jar test 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 @@ com.amazonaws.serverless aws-serverless-java-container - 2.0.0 + 2.1.0-SNAPSHOT com.amazonaws.serverless.archetypes aws-serverless-jersey-archetype - 2.0.0 + 2.1.0-SNAPSHOT maven-archetype https://github.com/aws/serverless-java-container.git - aws-serverless-java-container-2.0.0 + HEAD 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 @@ com.amazonaws.serverless aws-serverless-java-container - 2.0.0 + 2.1.0-SNAPSHOT com.amazonaws.serverless.archetypes aws-serverless-spring-archetype - 2.0.0 + 2.1.0-SNAPSHOT maven-archetype https://github.com/aws/serverless-java-container.git - aws-serverless-java-container-2.0.0 + HEAD 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 @@ com.amazonaws.serverless aws-serverless-java-container - 2.0.0 + 2.1.0-SNAPSHOT com.amazonaws.serverless.archetypes aws-serverless-springboot3-archetype - 2.0.0 + 2.1.0-SNAPSHOT maven-archetype https://github.com/aws/serverless-java-container.git - aws-serverless-java-container-2.0.0 + HEAD diff --git a/pom.xml b/pom.xml index e5542dcaf..959b6ab21 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.amazonaws.serverless aws-serverless-java-container pom - 2.0.0 + 2.1.0-SNAPSHOT AWS Serverless Java container A Java framework to run Spring, Spring Boot, Jersey, Spark, and Struts applications inside AWS Lambda https://github.com/aws/serverless-java-container @@ -37,7 +37,7 @@ https://github.com/aws/serverless-java-container scm:git:https://github.com/aws/serverless-java-container.git - aws-serverless-java-container-2.0.0 + HEAD From f326bb2c5d01d3c6cb4811fad8643add5da97ed5 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Tue, 6 Feb 2024 10:35:40 +0100 Subject: [PATCH 319/623] 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 @@ com.amazonaws.serverless aws-serverless-java-container-springboot3 - 2.0.0-SNAPSHOT + [2.0.0-SNAPSHOT,),[2.0.0-M1,) 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 @@ com.amazonaws.serverless aws-serverless-java-container-springboot3 - 2.0.0-SNAPSHOT + [2.0.0-SNAPSHOT,),[2.0.0-M1,) 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 @@ com.amazonaws.serverless aws-serverless-java-container-springboot3 - 2.0.0-SNAPSHOT + [2.0.0-SNAPSHOT,),[2.0.0-M1,) com.amazonaws From 10ce3d85ac7416a3a94461bfe961d008b83e5d2f Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Tue, 6 Feb 2024 10:51:37 +0100 Subject: [PATCH 320/623] 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 @@ AWS Serverless Java container support - Struts implementation Allows Java applications written for the Struts framework to run in AWS Lambda https://aws.amazon.com/lambda - 2.0.0-SNAPSHOT + 2.1.0-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container - 2.0.0-SNAPSHOT + 2.1.0-SNAPSHOT @@ -23,12 +23,12 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.0.0-SNAPSHOT + 2.0.0 com.amazonaws.serverless aws-serverless-java-container-core - 2.0.0-SNAPSHOT + 2.0.0 tests test-jar test 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 @@ com.amazonaws.serverless aws-serverless-java-container - 2.0.0-SNAPSHOT + 2.1.0-SNAPSHOT com.amazonaws.serverless.archetypes aws-serverless-struts-archetype - 2.0.0-SNAPSHOT + 2.1.0-SNAPSHOT maven-archetype From 2623b12b418a7102170e2d2e1452123372f1e418 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Tue, 6 Feb 2024 11:02:34 +0100 Subject: [PATCH 321/623] 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 322/623] 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] --- 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 @@ com.github.spotbugs spotbugs-maven-plugin - 4.8.3.0 + 4.8.3.1 com.amazonaws.serverless.sample 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 @@ org.springframework.boot spring-boot-starter-parent - 3.2.2 + 3.2.3 From 3e282bca95e1cfdb621d5cc7b094b136af41f734 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Mon, 26 Feb 2024 09:50:53 +0100 Subject: [PATCH 325/623] 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 @@ org.apache.maven.plugins maven-shade-plugin - 3.5.1 + 3.5.2 false 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 @@ org.apache.maven.plugins maven-shade-plugin - 3.5.1 + 3.5.2 package 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 @@ org.apache.maven.plugins maven-shade-plugin - 3.5.1 + 3.5.2 false 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 @@ org.apache.maven.plugins maven-shade-plugin - 3.5.1 + 3.5.2 false 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 @@ org.apache.maven.plugins maven-shade-plugin - 3.5.1 + 3.5.2 package 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 @@ org.apache.maven.plugins maven-shade-plugin - 3.5.1 + 3.5.2 false 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 @@ org.apache.maven.plugins maven-shade-plugin - 3.5.1 + 3.5.2 false 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 @@ org.apache.maven.plugins maven-shade-plugin - 3.5.1 + 3.5.2 false From 4e83ca47c8d66cd1ceaf7d442213013941e8c75f Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Mon, 26 Feb 2024 09:51:27 +0100 Subject: [PATCH 326/623] 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 @@ 1.8 6.1.4 5.10.2 - 2.22.1 + 2.23.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 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 @@ 7.0.0-M2 2.16.1 5.10.2 - 2.22.1 + 2.23.0 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 @@ 6.1.4 - 2.22.1 + 2.23.0 17 17 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 @@ 7.0.0-M2 2.16.1 4.13.2 - 2.22.1 + 2.23.0 From 38ce9172e75c71e0281fa1d0d63e6625016fcc96 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Mon, 26 Feb 2024 10:03:28 +0100 Subject: [PATCH 327/623] 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 @@ - 7.0.0-M2 + 7.0.0-M3 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 @@ 1.8 1.8 - 7.0.0-M2 + 7.0.0-M3 2.16.1 5.10.2 2.23.0 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 @@ 1.8 1.8 - 7.0.0-M2 + 7.0.0-M3 2.16.1 4.13.2 2.23.0 From d22f63ff32987d5c3ad5479ba639b28a7153dec6 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Mon, 26 Feb 2024 10:25:22 +0100 Subject: [PATCH 328/623] 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 329/623] 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] --- 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 @@ com.h3xstream.findsecbugs findsecbugs-plugin - 1.12.0 + 1.13.0 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 330/623] 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] --- 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 @@ 2.16.1 2.0.12 5.10.2 - 5.10.0 + 5.11.0 1.3 UTF-8 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 331/623] 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] --- 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 @@ jakarta.activation jakarta.activation-api - 2.1.2 + 2.1.3 test From b577efa56cd27ce0ecd7d6df499e0196a8a21513 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Fri, 22 Mar 2024 13:46:49 +0100 Subject: [PATCH 332/623] 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 @@ org.springframework.security spring-security-web - 6.2.2 + 6.2.3 test 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 @@ - 6.1.4 - 6.2.2 + 6.1.5 + 6.2.3 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 @@ 2.1.0-SNAPSHOT - 6.1.4 - 3.2.3 - 6.2.2 + 6.1.5 + 3.2.4 + 6.2.3 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 @@ 1.8 1.8 - 6.1.4 + 6.1.5 5.10.2 2.23.0 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 @@ org.springframework.boot spring-boot-starter-parent - 3.2.3 + 3.2.4 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 @@ - 6.1.4 + 6.1.5 2.23.0 17 17 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 @@ org.springframework.boot spring-boot-starter-parent - 3.2.3 + 3.2.4 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 @@ org.springframework.boot spring-boot-starter-parent - 3.2.3 + 3.2.4 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 @@ org.springframework.boot spring-boot-starter-parent - 3.2.3 + 3.2.4 com.amazonaws.serverless.sample 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 @@ org.springframework.boot spring-boot-starter-parent - 3.2.3 + 3.2.4 From b39343812a00680fe6ce644a71dafbbbe4f4da65 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Fri, 22 Mar 2024 14:14:19 +0100 Subject: [PATCH 333/623] 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 @@ 1.8 3.1.5 - 2.16.1 + 2.17.0 5.10.2 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 @@ 1.8 1.8 7.0.0-M3 - 2.16.1 + 2.17.0 5.10.2 2.23.0 diff --git a/pom.xml b/pom.xml index cddde7bc1..437e8ae34 100644 --- a/pom.xml +++ b/pom.xml @@ -78,7 +78,7 @@ 0.7 9.0.9 - 2.16.1 + 2.17.0 2.0.12 5.10.2 5.11.0 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 @@ 1.8 1.8 3.1.5 - 2.16.1 + 2.17.0 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 @@ 1.8 1.8 7.0.0-M3 - 2.16.1 + 2.17.0 4.13.2 2.23.0 From 96e0e7cc563a5be44799d2766b54b6fe470c01eb Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Fri, 22 Mar 2024 14:15:08 +0100 Subject: [PATCH 334/623] 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 @@ org.apache.maven.plugins maven-assembly-plugin - 3.6.0 + 3.7.0 zip-assembly 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 @@ org.apache.maven.plugins maven-assembly-plugin - 3.6.0 + 3.7.0 zip-assembly 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 @@ org.apache.maven.plugins maven-assembly-plugin - 3.6.0 + 3.7.0 zip-assembly 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 @@ org.apache.maven.plugins maven-assembly-plugin - 3.6.0 + 3.7.0 src/main/assembly/dist.xml 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 @@ org.apache.maven.plugins maven-assembly-plugin - 3.6.0 + 3.7.0 zip-assembly 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 @@ org.apache.maven.plugins maven-assembly-plugin - 3.6.0 + 3.7.0 zip-assembly 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 @@ org.apache.maven.plugins maven-assembly-plugin - 3.6.0 + 3.7.0 zip-assembly 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 @@ org.apache.maven.plugins maven-assembly-plugin - 3.6.0 + 3.7.0 zip-assembly 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 @@ org.apache.maven.plugins maven-assembly-plugin - 3.6.0 + 3.7.0 zip-assembly 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 @@ org.apache.maven.plugins maven-assembly-plugin - 3.6.0 + 3.7.0 src/main/assembly/dist.xml From 0ba5586ae1b0c1f805251dff2dc36891a86f26c9 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Fri, 22 Mar 2024 14:16:11 +0100 Subject: [PATCH 335/623] 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 @@ 1.8 6.1.5 5.10.2 - 2.23.0 + 2.23.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 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 @@ 7.0.0-M3 2.17.0 5.10.2 - 2.23.0 + 2.23.1 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 @@ 6.1.5 - 2.23.0 + 2.23.1 17 17 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 @@ 7.0.0-M3 2.17.0 4.13.2 - 2.23.0 + 2.23.1 From 10b41f5de02cf618aad688999ee92c0dcd47fdfd Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Fri, 22 Mar 2024 14:46:55 +0100 Subject: [PATCH 336/623] 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 @@ org.apache.maven.plugins maven-assembly-plugin - 3.7.0 + 3.7.1 zip-assembly 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 @@ org.apache.maven.plugins maven-assembly-plugin - 3.7.0 + 3.7.1 zip-assembly 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 @@ org.apache.maven.plugins maven-assembly-plugin - 3.7.0 + 3.7.1 zip-assembly 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 @@ org.apache.maven.plugins maven-assembly-plugin - 3.7.0 + 3.7.1 src/main/assembly/dist.xml 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 @@ org.apache.maven.plugins maven-assembly-plugin - 3.7.0 + 3.7.1 zip-assembly 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 @@ org.apache.maven.plugins maven-assembly-plugin - 3.7.0 + 3.7.1 zip-assembly 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 @@ org.apache.maven.plugins maven-assembly-plugin - 3.7.0 + 3.7.1 zip-assembly 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 @@ org.apache.maven.plugins maven-assembly-plugin - 3.7.0 + 3.7.1 zip-assembly 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 @@ org.apache.maven.plugins maven-assembly-plugin - 3.7.0 + 3.7.1 zip-assembly 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 @@ org.apache.maven.plugins maven-assembly-plugin - 3.7.0 + 3.7.1 src/main/assembly/dist.xml 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 337/623] 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] --- 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 @@ org.apache.maven.plugins maven-compiler-plugin - 3.12.1 + 3.13.0 1.8 1.8 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 338/623] 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] --- 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 @@ org.apache.maven.plugins maven-gpg-plugin - 3.1.0 + 3.2.1 sign-artifacts 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 339/623] 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] --- 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 @@ 0.7 - 9.0.9 + 9.0.10 2.17.0 2.0.12 5.10.2 From 17afb9a418f9a66b2a91e3483fa84eed626aaa2f Mon Sep 17 00:00:00 2001 From: Oleg Zhurakousky Date: Tue, 26 Mar 2024 11:52:47 +0100 Subject: [PATCH 340/623] 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 @@ org.springframework.cloud spring-cloud-function-serverless-web - 4.0.6 + 4.1.1-SNAPSHOT com.amazonaws.serverless 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 Date: Tue, 26 Mar 2024 15:44:51 -0700 Subject: [PATCH 341/623] 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 { 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 getLambdaAuthorizerContext() { return (Map) 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 { 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¶meter1=value2¶meter2=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 342/623] 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] --- 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 @@ 0.7 - 9.0.10 + 9.1.0 2.17.0 2.0.12 5.10.2 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 343/623] 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] --- 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 @@ org.apache.maven.plugins maven-gpg-plugin - 3.2.1 + 3.2.2 sign-artifacts From 82340e139f6f23cff101960bb462a56ef7bbb036 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Thu, 4 Apr 2024 15:09:35 +0200 Subject: [PATCH 344/623] 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 @@ org.springframework.cloud spring-cloud-function-serverless-web - 4.1.1-SNAPSHOT + 4.1.1 com.amazonaws.serverless From 2d3174cfd300f061f9ddd0b44d317a3d90b7bd93 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Thu, 4 Apr 2024 15:20:48 +0200 Subject: [PATCH 345/623] 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 346/623] 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] --- 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 @@ org.jacoco jacoco-maven-plugin - 0.8.11 + 0.8.12 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 347/623] 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] --- 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 @@ org.apache.maven.plugins maven-source-plugin - 3.3.0 + 3.3.1 attach-sources 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 348/623] 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] --- 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 @@ com.github.spotbugs spotbugs-annotations - 4.8.3 + 4.8.4 provided From 1ad9d575ba53ad322fea7a9b59e4a08ad3e54cc3 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Mon, 8 Apr 2024 09:23:58 +0200 Subject: [PATCH 349/623] 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 @@ - 3.1.5 + 3.1.6 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 @@ 1.8 1.8 - 3.1.5 + 3.1.6 2.17.0 5.10.2 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 @@ 1.8 1.8 - 3.1.5 + 3.1.6 2.17.0 From efd68be7438b99bf8071515789f6582e108dd61f Mon Sep 17 00:00:00 2001 From: deki Date: Mon, 8 Apr 2024 08:41:37 +0000 Subject: [PATCH 350/623] 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 @@ AWS Serverless Java container support - Core Allows Java applications written for a servlet container to run in AWS Lambda https://aws.amazon.com/lambda - 2.1.0-SNAPSHOT + 2.0.1 com.amazonaws.serverless aws-serverless-java-container - 2.1.0-SNAPSHOT + 2.0.1 .. 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 @@ AWS Serverless Java container support - Jersey implementation Allows Java applications written for Jersey to run in AWS Lambda https://aws.amazon.com/lambda - 2.1.0-SNAPSHOT + 2.0.1 com.amazonaws.serverless aws-serverless-java-container - 2.1.0-SNAPSHOT + 2.0.1 .. @@ -24,7 +24,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.1.0-SNAPSHOT + 2.0.1 com.fasterxml.jackson.core @@ -35,7 +35,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.1.0-SNAPSHOT + 2.0.1 tests test-jar test 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 @@ AWS Serverless Java container support - Spring implementation Allows Java applications written for the Spring framework to run in AWS Lambda https://aws.amazon.com/lambda - 2.1.0-SNAPSHOT + 2.0.1 com.amazonaws.serverless aws-serverless-java-container - 2.1.0-SNAPSHOT + 2.0.1 .. @@ -25,12 +25,12 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.1.0-SNAPSHOT + 2.0.1 com.amazonaws.serverless aws-serverless-java-container-core - 2.1.0-SNAPSHOT + 2.0.1 tests test-jar test 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 @@ aws-serverless-java-container com.amazonaws.serverless - 2.1.0-SNAPSHOT + 2.0.1 4.0.0 @@ -12,7 +12,7 @@ AWS Serverless Java container support - SpringBoot 3 implementation Allows Java applications written for SpringBoot 3 to run in AWS Lambda https://aws.amazon.com/lambda - 2.1.0-SNAPSHOT + 2.0.1 6.1.5 @@ -30,12 +30,12 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.1.0-SNAPSHOT + 2.0.1 com.amazonaws.serverless aws-serverless-java-container-core - 2.1.0-SNAPSHOT + 2.0.1 tests test-jar test 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 @@ com.amazonaws.serverless aws-serverless-java-container - 2.1.0-SNAPSHOT + 2.0.1 com.amazonaws.serverless.archetypes aws-serverless-jersey-archetype - 2.1.0-SNAPSHOT + 2.0.1 maven-archetype https://github.com/aws/serverless-java-container.git - HEAD + aws-serverless-java-container-2.0.1 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 @@ com.amazonaws.serverless aws-serverless-java-container - 2.1.0-SNAPSHOT + 2.0.1 com.amazonaws.serverless.archetypes aws-serverless-spring-archetype - 2.1.0-SNAPSHOT + 2.0.1 maven-archetype https://github.com/aws/serverless-java-container.git - HEAD + aws-serverless-java-container-2.0.1 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 @@ com.amazonaws.serverless aws-serverless-java-container - 2.1.0-SNAPSHOT + 2.0.1 com.amazonaws.serverless.archetypes aws-serverless-springboot3-archetype - 2.1.0-SNAPSHOT + 2.0.1 maven-archetype https://github.com/aws/serverless-java-container.git - HEAD + aws-serverless-java-container-2.0.1 diff --git a/pom.xml b/pom.xml index 24d8afe19..836490d0e 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.amazonaws.serverless aws-serverless-java-container pom - 2.1.0-SNAPSHOT + 2.0.1 AWS Serverless Java container A Java framework to run Spring, Spring Boot, Jersey, Spark, and Struts applications inside AWS Lambda https://github.com/aws/serverless-java-container @@ -37,7 +37,7 @@ https://github.com/aws/serverless-java-container scm:git:https://github.com/aws/serverless-java-container.git - HEAD + aws-serverless-java-container-2.0.1 From cec132c75e5f64b54c7c98abffd22cec69d6a36c Mon Sep 17 00:00:00 2001 From: deki Date: Mon, 8 Apr 2024 08:41:38 +0000 Subject: [PATCH 351/623] 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 @@ AWS Serverless Java container support - Core Allows Java applications written for a servlet container to run in AWS Lambda https://aws.amazon.com/lambda - 2.0.1 + 2.1.0-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container - 2.0.1 + 2.1.0-SNAPSHOT .. 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 @@ AWS Serverless Java container support - Jersey implementation Allows Java applications written for Jersey to run in AWS Lambda https://aws.amazon.com/lambda - 2.0.1 + 2.1.0-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container - 2.0.1 + 2.1.0-SNAPSHOT .. @@ -24,7 +24,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.0.1 + 2.1.0-SNAPSHOT com.fasterxml.jackson.core @@ -35,7 +35,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.0.1 + 2.1.0-SNAPSHOT tests test-jar test 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 @@ AWS Serverless Java container support - Spring implementation Allows Java applications written for the Spring framework to run in AWS Lambda https://aws.amazon.com/lambda - 2.0.1 + 2.1.0-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container - 2.0.1 + 2.1.0-SNAPSHOT .. @@ -25,12 +25,12 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.0.1 + 2.1.0-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container-core - 2.0.1 + 2.1.0-SNAPSHOT tests test-jar test 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 @@ aws-serverless-java-container com.amazonaws.serverless - 2.0.1 + 2.1.0-SNAPSHOT 4.0.0 @@ -12,7 +12,7 @@ AWS Serverless Java container support - SpringBoot 3 implementation Allows Java applications written for SpringBoot 3 to run in AWS Lambda https://aws.amazon.com/lambda - 2.0.1 + 2.1.0-SNAPSHOT 6.1.5 @@ -30,12 +30,12 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.0.1 + 2.1.0-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container-core - 2.0.1 + 2.1.0-SNAPSHOT tests test-jar test 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 @@ com.amazonaws.serverless aws-serverless-java-container - 2.0.1 + 2.1.0-SNAPSHOT com.amazonaws.serverless.archetypes aws-serverless-jersey-archetype - 2.0.1 + 2.1.0-SNAPSHOT maven-archetype https://github.com/aws/serverless-java-container.git - aws-serverless-java-container-2.0.1 + HEAD 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 @@ com.amazonaws.serverless aws-serverless-java-container - 2.0.1 + 2.1.0-SNAPSHOT com.amazonaws.serverless.archetypes aws-serverless-spring-archetype - 2.0.1 + 2.1.0-SNAPSHOT maven-archetype https://github.com/aws/serverless-java-container.git - aws-serverless-java-container-2.0.1 + HEAD 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 @@ com.amazonaws.serverless aws-serverless-java-container - 2.0.1 + 2.1.0-SNAPSHOT com.amazonaws.serverless.archetypes aws-serverless-springboot3-archetype - 2.0.1 + 2.1.0-SNAPSHOT maven-archetype https://github.com/aws/serverless-java-container.git - aws-serverless-java-container-2.0.1 + HEAD diff --git a/pom.xml b/pom.xml index 836490d0e..24d8afe19 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.amazonaws.serverless aws-serverless-java-container pom - 2.0.1 + 2.1.0-SNAPSHOT AWS Serverless Java container A Java framework to run Spring, Spring Boot, Jersey, Spark, and Struts applications inside AWS Lambda https://github.com/aws/serverless-java-container @@ -37,7 +37,7 @@ https://github.com/aws/serverless-java-container scm:git:https://github.com/aws/serverless-java-container.git - aws-serverless-java-container-2.0.1 + HEAD From aaacbc8f721fc3a0405904c5bcd0741964952fca Mon Sep 17 00:00:00 2001 From: deki Date: Mon, 8 Apr 2024 09:06:27 +0000 Subject: [PATCH 352/623] 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 @@ AWS Serverless Java container support - Core Allows Java applications written for a servlet container to run in AWS Lambda https://aws.amazon.com/lambda - 2.1.0-SNAPSHOT + 2.0.1 com.amazonaws.serverless aws-serverless-java-container - 2.1.0-SNAPSHOT + 2.0.1 .. 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 @@ AWS Serverless Java container support - Jersey implementation Allows Java applications written for Jersey to run in AWS Lambda https://aws.amazon.com/lambda - 2.1.0-SNAPSHOT + 2.0.1 com.amazonaws.serverless aws-serverless-java-container - 2.1.0-SNAPSHOT + 2.0.1 .. @@ -24,7 +24,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.1.0-SNAPSHOT + 2.0.1 com.fasterxml.jackson.core @@ -35,7 +35,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.1.0-SNAPSHOT + 2.0.1 tests test-jar test 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 @@ AWS Serverless Java container support - Spring implementation Allows Java applications written for the Spring framework to run in AWS Lambda https://aws.amazon.com/lambda - 2.1.0-SNAPSHOT + 2.0.1 com.amazonaws.serverless aws-serverless-java-container - 2.1.0-SNAPSHOT + 2.0.1 .. @@ -25,12 +25,12 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.1.0-SNAPSHOT + 2.0.1 com.amazonaws.serverless aws-serverless-java-container-core - 2.1.0-SNAPSHOT + 2.0.1 tests test-jar test 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 @@ aws-serverless-java-container com.amazonaws.serverless - 2.1.0-SNAPSHOT + 2.0.1 4.0.0 @@ -12,7 +12,7 @@ AWS Serverless Java container support - SpringBoot 3 implementation Allows Java applications written for SpringBoot 3 to run in AWS Lambda https://aws.amazon.com/lambda - 2.1.0-SNAPSHOT + 2.0.1 6.1.5 @@ -30,12 +30,12 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.1.0-SNAPSHOT + 2.0.1 com.amazonaws.serverless aws-serverless-java-container-core - 2.1.0-SNAPSHOT + 2.0.1 tests test-jar test 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 @@ com.amazonaws.serverless aws-serverless-java-container - 2.1.0-SNAPSHOT + 2.0.1 com.amazonaws.serverless.archetypes aws-serverless-jersey-archetype - 2.1.0-SNAPSHOT + 2.0.1 maven-archetype https://github.com/aws/serverless-java-container.git - HEAD + aws-serverless-java-container-2.0.1 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 @@ com.amazonaws.serverless aws-serverless-java-container - 2.1.0-SNAPSHOT + 2.0.1 com.amazonaws.serverless.archetypes aws-serverless-spring-archetype - 2.1.0-SNAPSHOT + 2.0.1 maven-archetype https://github.com/aws/serverless-java-container.git - HEAD + aws-serverless-java-container-2.0.1 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 @@ com.amazonaws.serverless aws-serverless-java-container - 2.1.0-SNAPSHOT + 2.0.1 com.amazonaws.serverless.archetypes aws-serverless-springboot3-archetype - 2.1.0-SNAPSHOT + 2.0.1 maven-archetype https://github.com/aws/serverless-java-container.git - HEAD + aws-serverless-java-container-2.0.1 diff --git a/pom.xml b/pom.xml index 24d8afe19..836490d0e 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.amazonaws.serverless aws-serverless-java-container pom - 2.1.0-SNAPSHOT + 2.0.1 AWS Serverless Java container A Java framework to run Spring, Spring Boot, Jersey, Spark, and Struts applications inside AWS Lambda https://github.com/aws/serverless-java-container @@ -37,7 +37,7 @@ https://github.com/aws/serverless-java-container scm:git:https://github.com/aws/serverless-java-container.git - HEAD + aws-serverless-java-container-2.0.1 From 38bbea7216e89733dc4612a74b0a7a0dc365188c Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Mon, 8 Apr 2024 11:18:17 +0200 Subject: [PATCH 353/623] 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 @@ AWS Serverless Java container support - Core Allows Java applications written for a servlet container to run in AWS Lambda https://aws.amazon.com/lambda - 2.0.1 + 2.1.0-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container - 2.0.1 + 2.1.0-SNAPSHOT .. 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 @@ AWS Serverless Java container support - Jersey implementation Allows Java applications written for Jersey to run in AWS Lambda https://aws.amazon.com/lambda - 2.0.1 + 2.1.0-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container - 2.0.1 + 2.1.0-SNAPSHOT .. @@ -24,7 +24,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.0.1 + 2.1.0-SNAPSHOT com.fasterxml.jackson.core @@ -35,7 +35,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.0.1 + 2.1.0-SNAPSHOT tests test-jar test 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 @@ AWS Serverless Java container support - Spring implementation Allows Java applications written for the Spring framework to run in AWS Lambda https://aws.amazon.com/lambda - 2.0.1 + 2.1.0-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container - 2.0.1 + 2.1.0-SNAPSHOT .. @@ -25,12 +25,12 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.0.1 + 2.1.0-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container-core - 2.0.1 + 2.1.0-SNAPSHOT tests test-jar test 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 @@ aws-serverless-java-container com.amazonaws.serverless - 2.0.1 + 2.1.0-SNAPSHOT 4.0.0 @@ -12,7 +12,7 @@ AWS Serverless Java container support - SpringBoot 3 implementation Allows Java applications written for SpringBoot 3 to run in AWS Lambda https://aws.amazon.com/lambda - 2.0.1 + 2.1.0-SNAPSHOT 6.1.5 @@ -30,12 +30,12 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.0.1 + 2.1.0-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container-core - 2.0.1 + 2.1.0-SNAPSHOT tests test-jar test 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 @@ com.amazonaws.serverless aws-serverless-java-container - 2.0.1 + 2.1.0-SNAPSHOT com.amazonaws.serverless.archetypes aws-serverless-jersey-archetype - 2.0.1 + 2.1.0-SNAPSHOT maven-archetype https://github.com/aws/serverless-java-container.git - aws-serverless-java-container-2.0.1 + HEAD 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 @@ com.amazonaws.serverless aws-serverless-java-container - 2.0.1 + 2.1.0-SNAPSHOT com.amazonaws.serverless.archetypes aws-serverless-spring-archetype - 2.0.1 + 2.1.0-SNAPSHOT maven-archetype https://github.com/aws/serverless-java-container.git - aws-serverless-java-container-2.0.1 + HEAD 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 @@ com.amazonaws.serverless aws-serverless-java-container - 2.0.1 + 2.1.0-SNAPSHOT com.amazonaws.serverless.archetypes aws-serverless-springboot3-archetype - 2.0.1 + 2.1.0-SNAPSHOT maven-archetype https://github.com/aws/serverless-java-container.git - aws-serverless-java-container-2.0.1 + HEAD diff --git a/pom.xml b/pom.xml index 836490d0e..24d8afe19 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.amazonaws.serverless aws-serverless-java-container pom - 2.0.1 + 2.1.0-SNAPSHOT AWS Serverless Java container A Java framework to run Spring, Spring Boot, Jersey, Spark, and Struts applications inside AWS Lambda https://github.com/aws/serverless-java-container @@ -37,7 +37,7 @@ https://github.com/aws/serverless-java-container scm:git:https://github.com/aws/serverless-java-container.git - aws-serverless-java-container-2.0.1 + HEAD From df173dd113f3355769a5efd8f64ca8aad1075d88 Mon Sep 17 00:00:00 2001 From: deki Date: Mon, 8 Apr 2024 09:25:48 +0000 Subject: [PATCH 354/623] 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 @@ AWS Serverless Java container support - Core Allows Java applications written for a servlet container to run in AWS Lambda https://aws.amazon.com/lambda - 2.1.0-SNAPSHOT + 2.0.1 com.amazonaws.serverless aws-serverless-java-container - 2.1.0-SNAPSHOT + 2.0.1 .. 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 @@ AWS Serverless Java container support - Jersey implementation Allows Java applications written for Jersey to run in AWS Lambda https://aws.amazon.com/lambda - 2.1.0-SNAPSHOT + 2.0.1 com.amazonaws.serverless aws-serverless-java-container - 2.1.0-SNAPSHOT + 2.0.1 .. @@ -24,7 +24,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.1.0-SNAPSHOT + 2.0.1 com.fasterxml.jackson.core @@ -35,7 +35,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.1.0-SNAPSHOT + 2.0.1 tests test-jar test 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 @@ AWS Serverless Java container support - Spring implementation Allows Java applications written for the Spring framework to run in AWS Lambda https://aws.amazon.com/lambda - 2.1.0-SNAPSHOT + 2.0.1 com.amazonaws.serverless aws-serverless-java-container - 2.1.0-SNAPSHOT + 2.0.1 .. @@ -25,12 +25,12 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.1.0-SNAPSHOT + 2.0.1 com.amazonaws.serverless aws-serverless-java-container-core - 2.1.0-SNAPSHOT + 2.0.1 tests test-jar test 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 @@ aws-serverless-java-container com.amazonaws.serverless - 2.1.0-SNAPSHOT + 2.0.1 4.0.0 @@ -12,7 +12,7 @@ AWS Serverless Java container support - SpringBoot 3 implementation Allows Java applications written for SpringBoot 3 to run in AWS Lambda https://aws.amazon.com/lambda - 2.1.0-SNAPSHOT + 2.0.1 6.1.5 @@ -30,12 +30,12 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.1.0-SNAPSHOT + 2.0.1 com.amazonaws.serverless aws-serverless-java-container-core - 2.1.0-SNAPSHOT + 2.0.1 tests test-jar test 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 @@ com.amazonaws.serverless aws-serverless-java-container - 2.1.0-SNAPSHOT + 2.0.1 com.amazonaws.serverless.archetypes aws-serverless-jersey-archetype - 2.1.0-SNAPSHOT + 2.0.1 maven-archetype https://github.com/aws/serverless-java-container.git - HEAD + aws-serverless-java-container-2.0.1 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 @@ com.amazonaws.serverless aws-serverless-java-container - 2.1.0-SNAPSHOT + 2.0.1 com.amazonaws.serverless.archetypes aws-serverless-spring-archetype - 2.1.0-SNAPSHOT + 2.0.1 maven-archetype https://github.com/aws/serverless-java-container.git - HEAD + aws-serverless-java-container-2.0.1 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 @@ com.amazonaws.serverless aws-serverless-java-container - 2.1.0-SNAPSHOT + 2.0.1 com.amazonaws.serverless.archetypes aws-serverless-springboot3-archetype - 2.1.0-SNAPSHOT + 2.0.1 maven-archetype https://github.com/aws/serverless-java-container.git - HEAD + aws-serverless-java-container-2.0.1 diff --git a/pom.xml b/pom.xml index 24d8afe19..836490d0e 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.amazonaws.serverless aws-serverless-java-container pom - 2.1.0-SNAPSHOT + 2.0.1 AWS Serverless Java container A Java framework to run Spring, Spring Boot, Jersey, Spark, and Struts applications inside AWS Lambda https://github.com/aws/serverless-java-container @@ -37,7 +37,7 @@ https://github.com/aws/serverless-java-container scm:git:https://github.com/aws/serverless-java-container.git - HEAD + aws-serverless-java-container-2.0.1 From 08c5069952b307bf8ac20a09b3c039d7eef94ba2 Mon Sep 17 00:00:00 2001 From: deki Date: Mon, 8 Apr 2024 09:25:50 +0000 Subject: [PATCH 355/623] 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 @@ AWS Serverless Java container support - Core Allows Java applications written for a servlet container to run in AWS Lambda https://aws.amazon.com/lambda - 2.0.1 + 2.1.0-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container - 2.0.1 + 2.1.0-SNAPSHOT .. 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 @@ AWS Serverless Java container support - Jersey implementation Allows Java applications written for Jersey to run in AWS Lambda https://aws.amazon.com/lambda - 2.0.1 + 2.1.0-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container - 2.0.1 + 2.1.0-SNAPSHOT .. @@ -24,7 +24,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.0.1 + 2.1.0-SNAPSHOT com.fasterxml.jackson.core @@ -35,7 +35,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.0.1 + 2.1.0-SNAPSHOT tests test-jar test 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 @@ AWS Serverless Java container support - Spring implementation Allows Java applications written for the Spring framework to run in AWS Lambda https://aws.amazon.com/lambda - 2.0.1 + 2.1.0-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container - 2.0.1 + 2.1.0-SNAPSHOT .. @@ -25,12 +25,12 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.0.1 + 2.1.0-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container-core - 2.0.1 + 2.1.0-SNAPSHOT tests test-jar test 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 @@ aws-serverless-java-container com.amazonaws.serverless - 2.0.1 + 2.1.0-SNAPSHOT 4.0.0 @@ -12,7 +12,7 @@ AWS Serverless Java container support - SpringBoot 3 implementation Allows Java applications written for SpringBoot 3 to run in AWS Lambda https://aws.amazon.com/lambda - 2.0.1 + 2.1.0-SNAPSHOT 6.1.5 @@ -30,12 +30,12 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.0.1 + 2.1.0-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container-core - 2.0.1 + 2.1.0-SNAPSHOT tests test-jar test 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 @@ com.amazonaws.serverless aws-serverless-java-container - 2.0.1 + 2.1.0-SNAPSHOT com.amazonaws.serverless.archetypes aws-serverless-jersey-archetype - 2.0.1 + 2.1.0-SNAPSHOT maven-archetype https://github.com/aws/serverless-java-container.git - aws-serverless-java-container-2.0.1 + HEAD 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 @@ com.amazonaws.serverless aws-serverless-java-container - 2.0.1 + 2.1.0-SNAPSHOT com.amazonaws.serverless.archetypes aws-serverless-spring-archetype - 2.0.1 + 2.1.0-SNAPSHOT maven-archetype https://github.com/aws/serverless-java-container.git - aws-serverless-java-container-2.0.1 + HEAD 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 @@ com.amazonaws.serverless aws-serverless-java-container - 2.0.1 + 2.1.0-SNAPSHOT com.amazonaws.serverless.archetypes aws-serverless-springboot3-archetype - 2.0.1 + 2.1.0-SNAPSHOT maven-archetype https://github.com/aws/serverless-java-container.git - aws-serverless-java-container-2.0.1 + HEAD diff --git a/pom.xml b/pom.xml index 836490d0e..24d8afe19 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.amazonaws.serverless aws-serverless-java-container pom - 2.0.1 + 2.1.0-SNAPSHOT AWS Serverless Java container A Java framework to run Spring, Spring Boot, Jersey, Spark, and Struts applications inside AWS Lambda https://github.com/aws/serverless-java-container @@ -37,7 +37,7 @@ https://github.com/aws/serverless-java-container scm:git:https://github.com/aws/serverless-java-container.git - aws-serverless-java-container-2.0.1 + HEAD From b0058d1914ecb67a15f62329d35ee3ef1d5b8339 Mon Sep 17 00:00:00 2001 From: mbfreder Date: Sun, 7 Apr 2024 22:01:27 -0700 Subject: [PATCH 356/623] 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 Date: Tue, 9 Apr 2024 08:34:04 +0200 Subject: [PATCH 357/623] 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 358/623] 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] --- 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 @@ com.amazonaws aws-lambda-java-events - 3.11.4 + 3.11.5 com.amazonaws 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 359/623] 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] --- 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 @@ com.github.spotbugs spotbugs-maven-plugin - 4.8.3.1 + 4.8.4.0 com.amazonaws.serverless.sample 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 @@ org.springframework.boot spring-boot-starter-parent - 3.2.4 + 3.2.5 From 50121959b5b296c7580a58832aaf00117bd29083 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Mon, 22 Apr 2024 10:19:57 +0200 Subject: [PATCH 365/623] 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 @@ org.apache.maven.plugins maven-jar-plugin - 3.4.0 + 3.4.1 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 @@ org.apache.maven.plugins maven-jar-plugin - 3.4.0 + 3.4.1 default-jar 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 @@ org.apache.maven.plugins maven-jar-plugin - 3.4.0 + 3.4.1 default-jar diff --git a/pom.xml b/pom.xml index c53efed81..f7af293d0 100644 --- a/pom.xml +++ b/pom.xml @@ -216,7 +216,7 @@ org.apache.maven.plugins maven-jar-plugin - 3.4.0 + 3.4.1 org.apache.maven.plugins 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 @@ org.apache.maven.plugins maven-jar-plugin - 3.4.0 + 3.4.1 default-jar 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 @@ org.apache.maven.plugins maven-jar-plugin - 3.4.0 + 3.4.1 default-jar 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 @@ org.apache.maven.plugins maven-jar-plugin - 3.4.0 + 3.4.1 default-jar 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 @@ org.apache.maven.plugins maven-jar-plugin - 3.4.0 + 3.4.1 default-jar 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 @@ org.apache.maven.plugins maven-jar-plugin - 3.4.0 + 3.4.1 default-jar From 964a8dffdf7eb56020852d5986decefa1df0a4bf Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Tue, 23 Apr 2024 17:13:02 +0200 Subject: [PATCH 366/623] 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 @@ test - - jakarta.el - jakarta.el-api - 5.0.1 - test - - org.glassfish.expressly expressly From 2005a5c13c7550facaa8f6e421f98afc952263e1 Mon Sep 17 00:00:00 2001 From: Oleg Zhurakousky Date: Thu, 25 Apr 2024 17:44:28 +0200 Subject: [PATCH 367/623] 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 @@ org.springframework.cloud spring-cloud-function-serverless-web - 4.1.1 + 4.1.2-SNAPSHOT com.amazonaws.serverless 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 368/623] 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] --- 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 @@ commons-codec commons-codec - 1.16.1 + 1.17.0 test 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 @@ commons-codec commons-codec - 1.16.1 + 1.17.0 test From 04a0e635e399c92ea0d22c80b8efd92e4530991b Mon Sep 17 00:00:00 2001 From: mbfreder Date: Sun, 28 Apr 2024 23:48:17 -0700 Subject: [PATCH 369/623] 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 Date: Mon, 29 Apr 2024 14:31:37 +0200 Subject: [PATCH 370/623] 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 @@ org.apache.maven.plugins maven-shade-plugin - 3.5.2 + 3.5.3 false 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 @@ org.apache.maven.plugins maven-shade-plugin - 3.5.2 + 3.5.3 package 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 @@ org.apache.maven.plugins maven-shade-plugin - 3.5.2 + 3.5.3 false 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 @@ org.apache.maven.plugins maven-shade-plugin - 3.5.2 + 3.5.3 false 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 @@ org.apache.maven.plugins maven-shade-plugin - 3.5.2 + 3.5.3 package 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 @@ org.apache.maven.plugins maven-shade-plugin - 3.5.2 + 3.5.3 false 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 @@ org.apache.maven.plugins maven-shade-plugin - 3.5.2 + 3.5.3 false 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 @@ org.apache.maven.plugins maven-shade-plugin - 3.5.2 + 3.5.3 false From e7afb3fb23b72709a10110fdf72c3b6d22770da3 Mon Sep 17 00:00:00 2001 From: mbfreder Date: Mon, 29 Apr 2024 09:37:40 -0700 Subject: [PATCH 371/623] 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 Date: Mon, 29 Apr 2024 23:28:33 -0700 Subject: [PATCH 372/623] 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 373/623] 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] --- 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 @@ com.github.spotbugs spotbugs-maven-plugin - 4.8.4.0 + 4.8.5.0 com.amazonaws.serverless.sample 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 @@ org.springframework.boot spring-boot-starter-parent - 3.2.5 + 3.2.6 From 9d635d06f1fca980b20f6ec28826039b56b5bfb8 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Mon, 27 May 2024 12:55:43 +0200 Subject: [PATCH 383/623] 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 @@ - 3.1.6 + 3.1.7 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 @@ 1.8 1.8 - 3.1.6 + 3.1.7 2.17.1 5.10.2 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 @@ 1.8 1.8 - 3.1.6 + 3.1.7 2.17.1 From 0c7a6288ab46d71b276bbe11b15875dc551cac75 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Fri, 31 May 2024 08:29:34 +0200 Subject: [PATCH 384/623] 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 @@ org.springframework.cloud spring-cloud-function-serverless-web - 4.1.2-SNAPSHOT + 4.1.2 com.amazonaws.serverless From e2c90ae37dd0eae055884ca62e3b8a7406acd80d Mon Sep 17 00:00:00 2001 From: deki Date: Fri, 31 May 2024 06:45:22 +0000 Subject: [PATCH 385/623] 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 @@ AWS Serverless Java container support - Core Allows Java applications written for a servlet container to run in AWS Lambda https://aws.amazon.com/lambda - 2.1.0-SNAPSHOT + 2.0.2 com.amazonaws.serverless aws-serverless-java-container - 2.1.0-SNAPSHOT + 2.0.2 .. 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 @@ AWS Serverless Java container support - Jersey implementation Allows Java applications written for Jersey to run in AWS Lambda https://aws.amazon.com/lambda - 2.1.0-SNAPSHOT + 2.0.2 com.amazonaws.serverless aws-serverless-java-container - 2.1.0-SNAPSHOT + 2.0.2 .. @@ -24,7 +24,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.1.0-SNAPSHOT + 2.0.2 com.fasterxml.jackson.core @@ -35,7 +35,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.1.0-SNAPSHOT + 2.0.2 tests test-jar test 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 @@ AWS Serverless Java container support - Spring implementation Allows Java applications written for the Spring framework to run in AWS Lambda https://aws.amazon.com/lambda - 2.1.0-SNAPSHOT + 2.0.2 com.amazonaws.serverless aws-serverless-java-container - 2.1.0-SNAPSHOT + 2.0.2 .. @@ -25,12 +25,12 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.1.0-SNAPSHOT + 2.0.2 com.amazonaws.serverless aws-serverless-java-container-core - 2.1.0-SNAPSHOT + 2.0.2 tests test-jar test 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 @@ aws-serverless-java-container com.amazonaws.serverless - 2.1.0-SNAPSHOT + 2.0.2 4.0.0 @@ -12,7 +12,7 @@ AWS Serverless Java container support - SpringBoot 3 implementation Allows Java applications written for SpringBoot 3 to run in AWS Lambda https://aws.amazon.com/lambda - 2.1.0-SNAPSHOT + 2.0.2 6.1.8 @@ -30,12 +30,12 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.1.0-SNAPSHOT + 2.0.2 com.amazonaws.serverless aws-serverless-java-container-core - 2.1.0-SNAPSHOT + 2.0.2 tests test-jar test 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 @@ com.amazonaws.serverless aws-serverless-java-container - 2.1.0-SNAPSHOT + 2.0.2 com.amazonaws.serverless.archetypes aws-serverless-jersey-archetype - 2.1.0-SNAPSHOT + 2.0.2 maven-archetype https://github.com/aws/serverless-java-container.git - HEAD + aws-serverless-java-container-2.0.2 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 @@ com.amazonaws.serverless aws-serverless-java-container - 2.1.0-SNAPSHOT + 2.0.2 com.amazonaws.serverless.archetypes aws-serverless-spring-archetype - 2.1.0-SNAPSHOT + 2.0.2 maven-archetype https://github.com/aws/serverless-java-container.git - HEAD + aws-serverless-java-container-2.0.2 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 @@ com.amazonaws.serverless aws-serverless-java-container - 2.1.0-SNAPSHOT + 2.0.2 com.amazonaws.serverless.archetypes aws-serverless-springboot3-archetype - 2.1.0-SNAPSHOT + 2.0.2 maven-archetype https://github.com/aws/serverless-java-container.git - HEAD + aws-serverless-java-container-2.0.2 diff --git a/pom.xml b/pom.xml index b1c832040..b5f3a0b01 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.amazonaws.serverless aws-serverless-java-container pom - 2.1.0-SNAPSHOT + 2.0.2 AWS Serverless Java container A Java framework to run Spring, Spring Boot, Jersey, Spark, and Struts applications inside AWS Lambda https://github.com/aws/serverless-java-container @@ -37,7 +37,7 @@ https://github.com/aws/serverless-java-container scm:git:https://github.com/aws/serverless-java-container.git - HEAD + aws-serverless-java-container-2.0.2 From 9da0d7d3216db80cd37f5e2aea557672d682a3e7 Mon Sep 17 00:00:00 2001 From: deki Date: Fri, 31 May 2024 06:45:24 +0000 Subject: [PATCH 386/623] 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 @@ AWS Serverless Java container support - Core Allows Java applications written for a servlet container to run in AWS Lambda https://aws.amazon.com/lambda - 2.0.2 + 2.1.0-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container - 2.0.2 + 2.1.0-SNAPSHOT .. 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 @@ AWS Serverless Java container support - Jersey implementation Allows Java applications written for Jersey to run in AWS Lambda https://aws.amazon.com/lambda - 2.0.2 + 2.1.0-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container - 2.0.2 + 2.1.0-SNAPSHOT .. @@ -24,7 +24,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.0.2 + 2.1.0-SNAPSHOT com.fasterxml.jackson.core @@ -35,7 +35,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.0.2 + 2.1.0-SNAPSHOT tests test-jar test 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 @@ AWS Serverless Java container support - Spring implementation Allows Java applications written for the Spring framework to run in AWS Lambda https://aws.amazon.com/lambda - 2.0.2 + 2.1.0-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container - 2.0.2 + 2.1.0-SNAPSHOT .. @@ -25,12 +25,12 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.0.2 + 2.1.0-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container-core - 2.0.2 + 2.1.0-SNAPSHOT tests test-jar test 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 @@ aws-serverless-java-container com.amazonaws.serverless - 2.0.2 + 2.1.0-SNAPSHOT 4.0.0 @@ -12,7 +12,7 @@ AWS Serverless Java container support - SpringBoot 3 implementation Allows Java applications written for SpringBoot 3 to run in AWS Lambda https://aws.amazon.com/lambda - 2.0.2 + 2.1.0-SNAPSHOT 6.1.8 @@ -30,12 +30,12 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.0.2 + 2.1.0-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container-core - 2.0.2 + 2.1.0-SNAPSHOT tests test-jar test 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 @@ com.amazonaws.serverless aws-serverless-java-container - 2.0.2 + 2.1.0-SNAPSHOT com.amazonaws.serverless.archetypes aws-serverless-jersey-archetype - 2.0.2 + 2.1.0-SNAPSHOT maven-archetype https://github.com/aws/serverless-java-container.git - aws-serverless-java-container-2.0.2 + HEAD 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 @@ com.amazonaws.serverless aws-serverless-java-container - 2.0.2 + 2.1.0-SNAPSHOT com.amazonaws.serverless.archetypes aws-serverless-spring-archetype - 2.0.2 + 2.1.0-SNAPSHOT maven-archetype https://github.com/aws/serverless-java-container.git - aws-serverless-java-container-2.0.2 + HEAD 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 @@ com.amazonaws.serverless aws-serverless-java-container - 2.0.2 + 2.1.0-SNAPSHOT com.amazonaws.serverless.archetypes aws-serverless-springboot3-archetype - 2.0.2 + 2.1.0-SNAPSHOT maven-archetype https://github.com/aws/serverless-java-container.git - aws-serverless-java-container-2.0.2 + HEAD diff --git a/pom.xml b/pom.xml index b5f3a0b01..b1c832040 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.amazonaws.serverless aws-serverless-java-container pom - 2.0.2 + 2.1.0-SNAPSHOT AWS Serverless Java container A Java framework to run Spring, Spring Boot, Jersey, Spark, and Struts applications inside AWS Lambda https://github.com/aws/serverless-java-container @@ -37,7 +37,7 @@ https://github.com/aws/serverless-java-container scm:git:https://github.com/aws/serverless-java-container.git - aws-serverless-java-container-2.0.2 + HEAD From a4ae7b4ad5c40dbf9ed1926c10955114ecbfcb6c Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Fri, 31 May 2024 10:39:24 +0200 Subject: [PATCH 387/623] 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 @@ org.springframework.security spring-security-web - 6.2.4 + 6.3.0 test 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 @@ 6.1.8 - 6.2.4 + 6.3.0 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 @@ 6.1.8 - 3.2.6 - 6.2.4 + 3.3.0 + 6.3.0 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 @@ org.springframework.boot spring-boot-starter-parent - 3.2.6 + 3.3.0 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 @@ org.springframework.boot spring-boot-starter-parent - 3.2.6 + 3.3.0 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 @@ org.springframework.boot spring-boot-starter-parent - 3.2.6 + 3.3.0 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 @@ org.springframework.boot spring-boot-starter-parent - 3.2.6 + 3.3.0 com.amazonaws.serverless.sample 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 @@ org.springframework.boot spring-boot-starter-parent - 3.2.6 + 3.3.0 From 2e481ce0a98e959f6cee47a56dbe9cc1d2e6a1ce Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Fri, 31 May 2024 10:42:31 +0200 Subject: [PATCH 388/623] 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 @@ jakarta.websocket jakarta.websocket-api - 2.1.1 + 2.2.0 test jakarta.websocket jakarta.websocket-client-api - 2.1.1 + 2.2.0 test 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 389/623] 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] --- 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 @@ org.apache.maven.plugins maven-enforcer-plugin - 3.4.1 + 3.5.0 enforce 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 390/623] 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] --- 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 @@ org.apache.maven.plugins maven-javadoc-plugin - 3.6.3 + 3.7.0 org.apache.maven.plugins From 95328c3e0b8dacd9e7b60cf16a2586ed70da7b20 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Tue, 4 Jun 2024 07:02:40 +0200 Subject: [PATCH 391/623] 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 @@ org.apache.maven.plugins maven-shade-plugin - 3.5.3 + 3.6.0 false 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 @@ org.apache.maven.plugins maven-shade-plugin - 3.5.3 + 3.6.0 package 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 @@ org.apache.maven.plugins maven-shade-plugin - 3.5.3 + 3.6.0 false 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 @@ org.apache.maven.plugins maven-shade-plugin - 3.5.3 + 3.6.0 false 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 @@ org.apache.maven.plugins maven-shade-plugin - 3.5.3 + 3.6.0 package 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 @@ org.apache.maven.plugins maven-shade-plugin - 3.5.3 + 3.6.0 false 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 @@ org.apache.maven.plugins maven-shade-plugin - 3.5.3 + 3.6.0 false 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 @@ org.apache.maven.plugins maven-shade-plugin - 3.5.3 + 3.6.0 false 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 392/623] 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] --- 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 @@ org.apache.maven.plugins maven-surefire-plugin - 3.2.5 + 3.3.0 org.apache.maven.plugins 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 393/623] 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] --- 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 @@ org.apache.maven.plugins maven-release-plugin - 3.0.1 + 3.1.0 serverless-java-container-release clean verify install From 9463113c314b16fcad299f2455ac68ccb5c52660 Mon Sep 17 00:00:00 2001 From: mbfreder Date: Wed, 19 Jun 2024 06:55:59 -0700 Subject: [PATCH 394/623] 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 Date: Thu, 20 Jun 2024 13:47:54 +0200 Subject: [PATCH 395/623] 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 @@ org.springframework.security spring-security-web - 6.3.0 + 6.3.1 test 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 @@ - 6.1.8 - 6.3.0 + 6.1.10 + 6.3.1 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 @@ 2.1.0-SNAPSHOT - 6.1.8 - 3.3.0 - 6.3.0 + 6.1.10 + 3.3.1 + 6.3.1 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 @@ 1.8 1.8 - 6.1.8 + 6.1.10 5.10.2 2.23.1 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 @@ org.springframework.boot spring-boot-starter-parent - 3.3.0 + 3.3.1 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 @@ - 6.1.8 + 6.1.10 2.23.1 17 17 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 @@ org.springframework.boot spring-boot-starter-parent - 3.3.0 + 3.3.1 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 @@ org.springframework.boot spring-boot-starter-parent - 3.3.0 + 3.3.1 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 @@ org.springframework.boot spring-boot-starter-parent - 3.3.0 + 3.3.1 com.amazonaws.serverless.sample 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 @@ org.springframework.boot spring-boot-starter-parent - 3.3.0 + 3.3.1 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 396/623] 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] --- 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 @@ com.github.spotbugs spotbugs-annotations - 4.8.5 + 4.8.6 provided 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 397/623] 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] --- 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 @@ org.apache.maven.plugins maven-clean-plugin - 3.3.2 + 3.4.0 org.apache.maven.plugins From b62d9860e8843a9eff8fbdbe0c420ab72166098a Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Mon, 24 Jun 2024 15:19:50 +0200 Subject: [PATCH 398/623] 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 @@ org.apache.maven.plugins maven-jar-plugin - 3.4.1 + 3.4.2 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 @@ org.apache.maven.plugins maven-jar-plugin - 3.4.1 + 3.4.2 default-jar 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 @@ org.apache.maven.plugins maven-jar-plugin - 3.4.1 + 3.4.2 default-jar 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 @@ org.apache.maven.plugins maven-jar-plugin - 3.2.0 + 3.4.2 default-jar diff --git a/pom.xml b/pom.xml index 203ca2be1..e2ea58f78 100644 --- a/pom.xml +++ b/pom.xml @@ -216,7 +216,7 @@ org.apache.maven.plugins maven-jar-plugin - 3.4.1 + 3.4.2 org.apache.maven.plugins 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 @@ org.apache.maven.plugins maven-jar-plugin - 3.4.1 + 3.4.2 default-jar 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 @@ org.apache.maven.plugins maven-jar-plugin - 3.4.1 + 3.4.2 default-jar 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 @@ org.apache.maven.plugins maven-jar-plugin - 3.4.1 + 3.4.2 default-jar 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 @@ org.apache.maven.plugins maven-jar-plugin - 3.4.1 + 3.4.2 default-jar 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 @@ org.apache.maven.plugins maven-jar-plugin - 3.4.1 + 3.4.2 default-jar 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 399/623] 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] --- 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 @@ com.amazonaws aws-lambda-java-events - 3.11.5 + 3.11.6 com.amazonaws 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 400/623] 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] --- 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 @@ com.github.spotbugs spotbugs-maven-plugin - 4.8.5.0 + 4.8.6.1 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 @@ 1.8 1.8 - 7.0.0-M3 + 7.0.0-M8 2.17.2 4.13.2 2.23.1 @@ -68,7 +68,7 @@ com.jgeppert.struts2 struts2-aws-lambda-support-plugin - 1.4.2 + 1.4.3 From 78b940281dc87ae83451860609b8aa5a03587b25 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Mon, 15 Jul 2024 07:31:16 +0200 Subject: [PATCH 415/623] 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 @@ org.apache.httpcomponents.client5 httpclient5 - 5.2.1 + 5.3.1 test 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 @@ org.apache.httpcomponents.client5 httpclient5 - 5.2.1 + 5.3.1 test 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 @@ org.apache.httpcomponents.client5 httpclient5 - 5.2.1 + 5.3.1 test 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 @@ org.apache.httpcomponents.client5 httpclient5 - 5.2.1 + 5.3.1 test 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 416/623] 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] --- 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 @@ 0.7 - 10.0.2 + 10.0.3 2.17.2 2.0.13 5.10.3 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 417/623] 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] --- 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 @@ com.h2database h2 - 2.2.224 + 2.3.230 test 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 418/623] 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] --- 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 @@ commons-codec commons-codec - 1.17.0 + 1.17.1 test 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 @@ commons-codec commons-codec - 1.17.0 + 1.17.1 test 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 419/623] 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] --- 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 @@ org.apache.maven.plugins maven-javadoc-plugin - 3.7.0 + 3.8.0 org.apache.maven.plugins From 2bddeae3501d9c11fa337cef2e178031699af978 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Mon, 29 Jul 2024 12:25:33 +0200 Subject: [PATCH 420/623] 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 @@ - 6.1.10 + 6.1.11 6.3.1 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 @@ 2.1.0-SNAPSHOT - 6.1.10 - 3.3.1 + 6.1.11 + 3.3.2 6.3.1 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 @@ 1.8 1.8 - 6.1.10 + 6.1.11 5.10.3 2.23.1 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 @@ org.springframework.boot spring-boot-starter-parent - 3.3.1 + 3.3.2 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 @@ - 6.1.10 + 6.1.11 2.23.1 17 17 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 @@ org.springframework.boot spring-boot-starter-parent - 3.3.1 + 3.3.2 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 @@ org.springframework.boot spring-boot-starter-parent - 3.3.1 + 3.3.2 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 @@ org.springframework.boot spring-boot-starter-parent - 3.3.1 + 3.3.2 com.amazonaws.serverless.sample 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 @@ org.springframework.boot spring-boot-starter-parent - 3.3.1 + 3.3.2 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 421/623] 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] --- 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 @@ com.amazonaws aws-lambda-java-events - 3.12.0 + 3.13.0 com.amazonaws From db0f4bc4cb3ea6f9b42ae76682f440cdeff0c9fd Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Mon, 5 Aug 2024 07:27:55 +0200 Subject: [PATCH 422/623] 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 Date: Mon, 5 Aug 2024 08:59:43 +0200 Subject: [PATCH 423/623] 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 @@ - 3.1.7 + 3.1.8 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 @@ 1.8 1.8 - 3.1.7 + 3.1.8 2.17.2 5.10.3 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 @@ 1.8 1.8 - 3.1.7 + 3.1.8 2.17.2 From 72bd0d2c7d0b663783a826ee27035195953fe930 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Mon, 19 Aug 2024 07:33:47 +0200 Subject: [PATCH 424/623] 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 Date: Mon, 19 Aug 2024 09:22:21 +0200 Subject: [PATCH 425/623] 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 @@ 0.7 10.0.3 2.17.2 - 2.0.13 + 2.0.16 5.10.3 5.12.0 1.3 From 6a9902a01b621c5a2b9e5f18c2e9a8c8a23f58b3 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Mon, 19 Aug 2024 09:26:10 +0200 Subject: [PATCH 426/623] 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 @@ 3.1.8 2.17.2 - 5.10.3 + 5.11.0 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 @@ 1.8 1.8 6.1.11 - 5.10.3 + 5.11.0 2.23.1 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 @@ 17 - 5.10.3 + 5.11.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 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 @@ 1.8 7.0.0-M8 2.17.2 - 5.10.3 + 5.11.0 2.23.1 diff --git a/pom.xml b/pom.xml index c810299f0..a6ce83e94 100644 --- a/pom.xml +++ b/pom.xml @@ -80,7 +80,7 @@ 10.0.3 2.17.2 2.0.16 - 5.10.3 + 5.11.0 5.12.0 1.3 UTF-8 From 67b85433f57d7f3b048436ffea8b0ccf1c3e4b76 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Tue, 20 Aug 2024 09:24:48 +0200 Subject: [PATCH 427/623] 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 @@ org.springframework.cloud spring-cloud-function-serverless-web - 4.1.2 + 4.1.3 com.amazonaws.serverless 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 428/623] 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] --- 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 @@ org.apache.maven.plugins maven-deploy-plugin - 3.1.2 + 3.1.3 org.apache.maven.plugins 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 429/623] 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] --- 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 @@ com.h2database h2 - 2.3.230 + 2.3.232 test 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 430/623] 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] --- 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 @@ org.apache.maven.plugins maven-surefire-plugin - 3.3.1 + 3.4.0 org.apache.maven.plugins 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 431/623] 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] --- 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 @@ com.h2database h2 - 2.3.230 + 2.3.232 test From 0fc74307e15464afd42c6e3af8dddb600ac9bdf0 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Fri, 23 Aug 2024 09:35:44 +0200 Subject: [PATCH 432/623] 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 @@ org.springframework.security spring-security-web - 6.3.1 + 6.3.3 test 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 @@ - 6.1.11 - 6.3.1 + 6.1.12 + 6.3.3 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 @@ 2.1.0-SNAPSHOT - 6.1.11 - 3.3.2 - 6.3.1 + 6.1.12 + 3.3.3 + 6.3.3 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 @@ 1.8 1.8 - 6.1.11 + 6.1.12 5.11.0 2.23.1 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 @@ org.springframework.boot spring-boot-starter-parent - 3.3.2 + 3.3.3 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 @@ - 6.1.11 + 6.1.12 2.23.1 17 17 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 @@ org.springframework.boot spring-boot-starter-parent - 3.3.2 + 3.3.3 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 @@ org.springframework.boot spring-boot-starter-parent - 3.3.2 + 3.3.3 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 @@ org.springframework.boot spring-boot-starter-parent - 3.3.2 + 3.3.3 com.amazonaws.serverless.sample 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 @@ org.springframework.boot spring-boot-starter-parent - 3.3.2 + 3.3.3 From 1faca719891f083170109875ef6f0a630a817e60 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Fri, 23 Aug 2024 09:47:39 +0200 Subject: [PATCH 433/623] 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 434/623] 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] --- 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 @@ org.apache.maven.plugins maven-install-plugin - 3.1.2 + 3.1.3 org.apache.maven.plugins 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 @@ org.apache.maven.plugins maven-install-plugin - 3.1.2 + 3.1.3 true 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 @@ org.apache.maven.plugins maven-install-plugin - 3.1.2 + 3.1.3 true 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 @@ org.apache.maven.plugins maven-install-plugin - 3.1.2 + 3.1.3 true 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 @@ org.apache.maven.plugins maven-install-plugin - 3.1.2 + 3.1.3 true 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 @@ org.apache.maven.plugins maven-install-plugin - 3.1.2 + 3.1.3 true From 72af4526d495d7da71f4837193f5e051afb48872 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Mon, 9 Sep 2024 10:17:10 +0200 Subject: [PATCH 435/623] 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 @@ 1.8 6.1.12 5.11.0 - 2.23.1 + 2.24.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 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 @@ 7.0.0-M8 2.17.2 5.11.0 - 2.23.1 + 2.24.0 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 @@ 6.1.12 - 2.23.1 + 2.24.0 17 17 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 @@ 7.0.0-M8 2.17.2 4.13.2 - 2.23.1 + 2.24.0 From 71eac1f27ddda37038c0973de0d9fe052b06b329 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Fri, 20 Sep 2024 15:52:09 +0200 Subject: [PATCH 436/623] 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 @@ 2.1.0-SNAPSHOT - 6.1.12 - 3.3.3 + 6.1.13 + 3.3.4 6.3.3 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 @@ org.springframework.boot spring-boot-starter-parent - 3.3.3 + 3.3.4 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 @@ org.springframework.boot spring-boot-starter-parent - 3.3.3 + 3.3.4 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 @@ org.springframework.boot spring-boot-starter-parent - 3.3.3 + 3.3.4 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 @@ org.springframework.boot spring-boot-starter-parent - 3.3.3 + 3.3.4 com.amazonaws.serverless.sample 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 @@ org.springframework.boot spring-boot-starter-parent - 3.3.3 + 3.3.4 From ed8d0b579520e59b48000970ed06e8be1b7e09ce Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Fri, 20 Sep 2024 16:04:05 +0200 Subject: [PATCH 437/623] 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 @@ - 6.1.12 + 6.1.13 6.3.3 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 @@ 1.8 1.8 - 6.1.12 + 6.1.13 5.11.0 2.24.0 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 @@ - 6.1.12 + 6.1.13 2.24.0 17 17 From 6184609ac2b5ec788295ba05ea67634cc39a6bb8 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Fri, 20 Sep 2024 16:08:33 +0200 Subject: [PATCH 438/623] 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 @@ - 7.0.0-M8 + 7.0.0-M9 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 @@ 1.8 1.8 - 7.0.0-M8 + 7.0.0-M9 2.17.2 5.11.0 2.24.0 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 @@ 1.8 1.8 - 7.0.0-M8 + 7.0.0-M9 2.17.2 4.13.2 2.24.0 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 439/623] 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] --- 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 @@ org.apache.maven.plugins maven-surefire-plugin - 3.4.0 + 3.5.0 org.apache.maven.plugins 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 440/623] 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 441/623] 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 442/623] 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 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 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> multipartFormParameters; private Map> 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 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> getFormUrlEncodedParametersMap() { return urlEncodedFormParameters; } + protected CookieProcessor getCookieProcessor(){ + if (cookieProcessor == null) { + cookieProcessor = new AwsCookieProcessor(); + } + return cookieProcessor; + } + @Override public Collection 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 443/623] 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 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 444/623] 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 Date: Fri, 27 Sep 2024 12:22:45 +0200 Subject: [PATCH 445/623] 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 @@ native-maven-plugin - --enable-url-protocols=http --enable-preview -march=compatibility + --enable-url-protocols=http + -march=compatibility 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 446/623] 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 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 447/623] 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 448/623] 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] --- 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 @@ org.apache.maven.plugins maven-gpg-plugin - 3.2.4 + 3.2.7 sign-artifacts From 8fef6b5d19ef0d6e36c1fd7a81a50a9ef3b707bc Mon Sep 17 00:00:00 2001 From: Nicolas PETERS Date: Sun, 20 Oct 2024 01:43:37 +0200 Subject: [PATCH 449/623] #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 readValue(String json, Class 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 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 Date: Mon, 21 Oct 2024 08:56:55 +0200 Subject: [PATCH 450/623] 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 @@ org.apache.httpcomponents.client5 httpclient5 - 5.3.1 + 5.4 test 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 @@ org.apache.httpcomponents.client5 httpclient5 - 5.3.1 + 5.4 test 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 @@ org.apache.httpcomponents.client5 httpclient5 - 5.3.1 + 5.4 test 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 @@ org.apache.httpcomponents.client5 httpclient5 - 5.3.1 + 5.4 test diff --git a/pom.xml b/pom.xml index c00e4c5df..f2e5579e4 100644 --- a/pom.xml +++ b/pom.xml @@ -119,7 +119,7 @@ org.apache.httpcomponents.client5 httpclient5 - 5.3.1 + 5.4 test From 3a59eff9adaf87b47ec98d33537f30a38fa27a63 Mon Sep 17 00:00:00 2001 From: Nicolas PETERS Date: Tue, 22 Oct 2024 00:45:51 +0200 Subject: [PATCH 451/623] #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 Date: Tue, 22 Oct 2024 10:49:47 -0700 Subject: [PATCH 452/623] 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 Date: Thu, 24 Oct 2024 16:56:04 +0200 Subject: [PATCH 453/623] 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 @@ org.springframework.security spring-security-web - 6.3.3 + 6.3.4 test 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 @@ - 6.1.13 - 6.3.3 + 6.1.14 + 6.3.4 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 @@ 2.1.0-SNAPSHOT - 6.1.13 - 3.3.4 - 6.3.3 + 6.1.14 + 3.3.5 + 6.3.4 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 @@ 1.8 1.8 - 6.1.13 + 6.1.14 5.11.0 2.24.0 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 @@ org.springframework.boot spring-boot-starter-parent - 3.3.4 + 3.3.5 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 @@ - 6.1.13 + 6.1.14 2.24.0 17 17 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 @@ org.springframework.boot spring-boot-starter-parent - 3.3.4 + 3.3.5 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 @@ org.springframework.boot spring-boot-starter-parent - 3.3.4 + 3.3.5 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 @@ org.springframework.boot spring-boot-starter-parent - 3.3.4 + 3.3.5 com.amazonaws.serverless.sample 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 @@ org.springframework.boot spring-boot-starter-parent - 3.3.4 + 3.3.5 From 45df2b0aec44c44f96ccfa5649e59ea4e0c01f90 Mon Sep 17 00:00:00 2001 From: Jay Fennelly Date: Sun, 27 Oct 2024 19:11:20 -0700 Subject: [PATCH 454/623] 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 newQs = new MultiValuedTreeMap<>(); - for (Map.Entry> e : request.getMultiValueQueryStringParameters().entrySet()) { + for (Map.Entry> 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()); } - 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 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 Date: Sun, 27 Oct 2024 19:27:14 -0700 Subject: [PATCH 455/623] 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 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 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 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 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 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 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 Date: Sun, 27 Oct 2024 19:37:15 -0700 Subject: [PATCH 456/623] 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> params, String fieldName, Part newP protected String[] getQueryParamValues(MultiValuedTreeMap qs, String key, boolean isCaseSensitive) { List 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 getQueryParamValuesAsList(MultiValuedTreeMap generateParameterMap(MultiValuedTreeMap qs, ContainerConfig config) { + return generateParameterMap(qs, config, false); + } + + protected Map generateParameterMap(MultiValuedTreeMap qs, ContainerConfig config, boolean decodeQueryParams) { Map output; Map> formEncodedParams = getFormUrlEncodedParametersMap(); if (qs == null) { // Just transform the List 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> 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 decodedQs = new MultiValuedTreeMap(); + if (decodeQueryParams) { + for (Map.Entry> entry : qs.entrySet()) { + String k = decodeValueIfEncoded(entry.getKey()); + List 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> 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 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 Date: Sun, 27 Oct 2024 19:39:39 -0700 Subject: [PATCH 457/623] 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 Date: Sun, 27 Oct 2024 19:43:13 -0700 Subject: [PATCH 458/623] 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 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 getParameterNames() { if (request.getMultiValueQueryStringParameters() == null) { return Collections.enumeration(formParameterNames); } - return Collections.enumeration(Stream.concat(formParameterNames.stream(), - request.getMultiValueQueryStringParameters().keySet().stream()).collect(Collectors.toSet())); + + Set 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 values = new ArrayList<>(Arrays.asList(getQueryParamValues(request.getMultiValueQueryStringParameters(), s, config.isQueryStringCaseSensitive()))); + // List 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 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 Date: Mon, 28 Oct 2024 11:48:17 +0100 Subject: [PATCH 459/623] 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 @@ - 3.1.8 + 3.1.9 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 @@ 1.8 1.8 - 3.1.8 + 3.1.9 2.17.2 5.11.0 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 @@ 1.8 1.8 - 3.1.8 + 3.1.9 2.17.2 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 460/623] 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] --- 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 @@ 2.17.2 2.0.16 5.11.0 - 5.12.0 + 5.14.2 1.3 UTF-8 From d396be6090a2fd96c3b0230dafe908f296986cf2 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Mon, 28 Oct 2024 11:52:18 +0100 Subject: [PATCH 461/623] 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 @@ 1.8 3.1.9 - 2.17.2 + 2.18.0 5.11.0 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 @@ 1.8 1.8 7.0.0-M9 - 2.17.2 + 2.18.0 5.11.0 2.24.0 diff --git a/pom.xml b/pom.xml index f2e5579e4..825097508 100644 --- a/pom.xml +++ b/pom.xml @@ -78,7 +78,7 @@ 0.7 10.0.3 - 2.17.2 + 2.18.0 2.0.16 5.11.0 5.12.0 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 @@ 1.8 1.8 3.1.9 - 2.17.2 + 2.18.0 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 @@ 1.8 1.8 7.0.0-M9 - 2.17.2 + 2.18.0 4.13.2 2.24.0 From 45e77e9d033d8db63e696f68ace154b4531f5d69 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Mon, 28 Oct 2024 11:53:29 +0100 Subject: [PATCH 462/623] 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 @@ 3.1.9 2.18.0 - 5.11.0 + 5.11.3 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 @@ 1.8 1.8 6.1.14 - 5.11.0 + 5.11.3 2.24.0 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 @@ 17 - 5.11.0 + 5.11.3 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 @@ 1.8 7.0.0-M9 2.18.0 - 5.11.0 + 5.11.3 2.24.0 diff --git a/pom.xml b/pom.xml index cc82de4d9..7c55c34aa 100644 --- a/pom.xml +++ b/pom.xml @@ -80,7 +80,7 @@ 10.0.3 2.18.0 2.0.16 - 5.11.0 + 5.11.3 5.14.2 1.3 UTF-8 From 36a6c8da22cb2c724996926621e837d16e40bd48 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Mon, 28 Oct 2024 11:55:24 +0100 Subject: [PATCH 463/623] 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 @@ 1.8 6.1.14 5.11.3 - 2.24.0 + 2.24.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 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 @@ 7.0.0-M9 2.18.0 5.11.3 - 2.24.0 + 2.24.1 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 @@ 6.1.14 - 2.24.0 + 2.24.1 17 17 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 @@ 7.0.0-M9 2.18.0 4.13.2 - 2.24.0 + 2.24.1 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 464/623] 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] --- 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 @@ com.github.spotbugs spotbugs-maven-plugin - 4.8.6.2 + 4.8.6.5 - - com.amazonaws.serverless - aws-serverless-java-container-core - 2.1.0-SNAPSHOT - - - com.amazonaws.serverless - aws-serverless-java-container-core - 2.1.0-SNAPSHOT - tests - test-jar - test - - - - org.apache.struts - struts2-core - ${struts.version} - - - commons-io - commons-io - - - - - org.apache.struts - struts2-json-plugin - ${struts.version} - test - - - - org.apache.struts - struts2-junit-plugin - ${struts.version} - test - - - junit - junit - - - - - - commons-codec - commons-codec - 1.17.1 - test - - - - com.fasterxml.jackson.core - jackson-databind - ${jackson.version} - - - - jakarta.el - jakarta.el-api - 5.0.1 - test - - - - jakarta.servlet.jsp - jakarta.servlet.jsp-api - 3.1.0 - test - - - - org.glassfish - jakarta.el - 5.0.0-M1 - test - - - - - - - org.jacoco - jacoco-maven-plugin - - ${basedir}/target/coverage-reports/jacoco-unit.exec - ${basedir}/target/coverage-reports/jacoco-unit.exec - - - - default-prepare-agent - - prepare-agent - - - - jacoco-site - package - - report - - - - jacoco-check - test - - check - - - true - - BUNDLE - - - INSTRUCTION - COVEREDRATIO - ${jacoco.minCoverage} - - - - - - - - - - org.apache.maven.plugins - maven-surefire-plugin - - false - - - - com.github.spotbugs - spotbugs-maven-plugin - - - - analyze-compile - compile - - check - - - - - - org.owasp - dependency-check-maven - ${dependencyCheck.version} - - true - - ${project.basedir}/../owasp-suppression.xml - - 7 - false - - - - - - - - apache-pre-release - https://repository.apache.org/content/repositories/staging/ - default - - - 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 request type - * @param response type - */ -public class StrutsLambdaContainerHandler extends AwsLambdaServletContainerHandler { - - 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 getAwsProxyHandler() { - return new StrutsLambdaContainerHandler( - AwsProxyRequest.class, - AwsProxyResponse.class, - new AwsProxyHttpServletRequestReader(), - new AwsProxyHttpServletResponseWriter(), - new AwsProxySecurityContextWriter(), - new AwsProxyExceptionHandler()); - } - - public static StrutsLambdaContainerHandler getHttpApiV2ProxyHandler() { - return new StrutsLambdaContainerHandler( - HttpApiV2ProxyRequest.class, - AwsProxyResponse.class, - new AwsHttpApiV2HttpServletRequestReader(), - new AwsProxyHttpServletResponseWriter(true), - new AwsHttpApiV2SecurityContextWriter(), - new AwsProxyExceptionHandler()); - } - - public StrutsLambdaContainerHandler(Class requestTypeClass, - Class responseTypeClass, - RequestReader requestReader, - ResponseWriter responseWriter, - SecurityContextWriter securityContextWriter, - ExceptionHandler 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. - *

- * - * com.amazonaws.serverless.proxy.struts.StrutsLambdaHandler::handleRequest - * - */ -public class StrutsLambdaHandler implements RequestStreamHandler { - - private final StrutsLambdaContainerHandler 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 { - 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 handler = StrutsLambdaContainerHandler - .getAwsProxyHandler(); - private final StrutsLambdaContainerHandler httpApiHandler = StrutsLambdaContainerHandler - .getHttpApiV2ProxyHandler(); - private final Context lambdaContext = new MockLambdaContext(); - private String type; - - public void initStrutsAwsProxyTest(String reqType) { - type = reqType; - } - - public static Collection 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 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> typeRef - = new TypeReference>() { - }; - HashMap 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 headers = new HashMap<>(); - - Enumeration headerNames = request.getHeaderNames(); - while (headerNames.hasMoreElements()) { - String headerName = headerNames.nextElement(); - headers.put(headerName, request.getHeader(headerName)); - } - - result = headers; - break; - case "query-string": - Map params = new HashMap<>(); - - Enumeration 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 @@ - - - - - - %d{yyyy-MM-dd HH:mm:ss} %X{AWSRequestId} %-5p %c{1}:%L - %m%n - - - - - - - - - - - \ 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 @@ - - - - - - - - - - - message - - - - - - - - result - - - - - - - \ 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 @@ - - 4.0.0 - - - com.amazonaws.serverless - aws-serverless-java-container - 2.1.0-SNAPSHOT - - - com.amazonaws.serverless.archetypes - aws-serverless-struts-archetype - 2.1.0-SNAPSHOT - maven-archetype - - - https://github.com/aws/serverless-java-container.git - HEAD - - - - - The Apache Software License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0.txt - repo - - - - - - - src/main/resources - true - - archetype-resources/pom.xml - archetype-resources/README.md - - - - src/main/resources - false - - archetype-resources/pom.xml - - - - - - - org.apache.maven.archetype - archetype-packaging - 3.0.1 - - - - - - - org.apache.maven.plugins - maven-resources-plugin - 3.3.1 - - \ - - - - org.apache.maven.plugins - maven-archetype-plugin - 3.0.1 - - - - integration-test - - - - - - - - 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 @@ - - - - src/main/java - - **/*.java - - - - src/test/java - - **/*.java - - - - src/main/resources - - **/*.properties - **/*.xml - - - - src/main/assembly - - **/*.xml - - - - - - template.yml - README.md - build.gradle - - - - \ 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 @@ - - - 4.0.0 - - \${groupId} - \${artifactId} - \${version} - jar - - Serverless Struts API - https://github.com/aws/serverless-java-container - - - 1.8 - 1.8 - 7.0.0-M9 - 2.18.1 - 5.11.3 - 2.24.1 - - - - - com.amazonaws.serverless - aws-serverless-java-container-struts - ${project.version} - - - com.amazonaws.serverless - aws-serverless-java-container-core - ${project.version} - tests - test-jar - test - - - org.apache.httpcomponents.client5 - httpclient5 - 5.4.1 - test - - - - org.apache.struts - struts2-convention-plugin - \${struts.version} - - - - org.apache.struts - struts2-rest-plugin - \${struts.version} - - - - org.apache.struts - struts2-bean-validation-plugin - \${struts.version} - - - - org.apache.struts - struts2-junit-plugin - \${struts.version} - test - - - - - com.jgeppert.struts2 - struts2-aws-lambda-support-plugin - 1.4.3 - - - - - org.hibernate.validator - hibernate-validator - 6.1.7.Final - - - - com.fasterxml.jackson.core - jackson-core - \${jackson.version} - - - com.fasterxml.jackson.core - jackson-annotations - \${jackson.version} - - - com.fasterxml.jackson.core - jackson-databind - \${jackson.version} - - - com.fasterxml.jackson.dataformat - jackson-dataformat-xml - \${jackson.version} - - - - org.apache.logging.log4j - log4j-core - \${log4j.version} - - - - org.apache.logging.log4j - log4j-api - \${log4j.version} - - - - com.amazonaws - aws-lambda-java-log4j2 - 1.6.0 - - - - jakarta.el - jakarta.el-api - 5.0.1 - test - - - org.glassfish - jakarta.el - 5.0.0-M1 - test - - - - org.junit.jupiter - junit-jupiter - test - - - - - - - org.junit - junit-bom - ${junit.version} - import - pom - - - - - - - - org.apache.maven.plugins - maven-assembly-plugin - 3.7.1 - - - src/main/assembly/dist.xml - - - - - lambda - package - - single - - - - - - - - - - apache-pre-release - https://repository.apache.org/content/repositories/staging/ - default - - - 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 @@ - - lambda - - zip - - false - - - lib - false - - - - - ${basedir}/src/main/resources - - - * - - - - ${project.build.directory}/classes - - - **/*.class - - - - \ 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 { - - private String model = new String(); - private String id; - private Collection 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 @@ - - - - - - %d{yyyy-MM-dd HH:mm:ss} %X{AWSRequestId} %-5p %c{1}:%L - %m%n - - - - - - - - - - - \ 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 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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..amazonaws.com/pets ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -``` -## Test - -### JSON Request: -``` -$ curl https://xxxxxxxxxx.execute-api..amazonaws.com/pets.json -``` - -### XML Request -``` -$ curl https://xxxxxxxxxx.execute-api..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 @@ - - - 4.0.0 - - com.amazonaws.serverless.sample - serverless-struts-example - 2.0-SNAPSHOT - Struts example for the aws-serverless-java-container library - Simple pet store written with the Apache Struts framework - https://aws.amazon.com/lambda/ - - - https://github.com/aws/serverless-java-container.git - - - - - The Apache Software License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0.txt - repo - - - - - 1.8 - 1.8 - 7.0.0-M9 - 2.18.1 - 4.13.2 - 2.24.1 - - - - - com.amazonaws.serverless - aws-serverless-java-container-struts - [2.0.0-SNAPSHOT,) - - - - org.apache.struts - struts2-convention-plugin - ${struts.version} - - - - org.apache.struts - struts2-rest-plugin - ${struts.version} - - - - org.apache.struts - struts2-bean-validation-plugin - ${struts.version} - - - - org.apache.struts - struts2-junit-plugin - ${struts.version} - test - - - - - 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-core - ${jackson.version} - - - com.fasterxml.jackson.core - jackson-annotations - ${jackson.version} - - - com.fasterxml.jackson.core - jackson-databind - ${jackson.version} - - - com.fasterxml.jackson.dataformat - jackson-dataformat-xml - ${jackson.version} - - - - org.apache.logging.log4j - log4j-core - ${log4j.version} - - - - org.apache.logging.log4j - log4j-api - ${log4j.version} - - - - com.amazonaws - aws-lambda-java-log4j2 - 1.6.0 - - - - junit - junit - ${junit.version} - test - - - - - - - org.apache.maven.plugins - maven-compiler-plugin - - 1.8 - 1.8 - - - - org.apache.maven.plugins - maven-assembly-plugin - 3.7.1 - - - src/main/assembly/dist.xml - - - - - lambda - package - - single - - - - - - - - - - apache-pre-release - https://repository.apache.org/content/repositories/staging/ - default - - - 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 @@ - - lambda - - zip - - false - - - lib - false - - - - - ${basedir}/src/main/resources - / - - * - - - - ${project.build.directory}/classes - / - - **/*.class - - - - \ 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 { - - private Pet model = new Pet(); - private String id; - private Collection 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 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 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 getBreeds() { - return breeds; - } - - public static List 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 @@ - - - - - - %d{yyyy-MM-dd HH:mm:ss} %X{AWSRequestId} %-5p %c{1}:%L - %m%n - - - - - - - - - - - \ 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 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 472/623] 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] --- 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 @@ com.github.spotbugs spotbugs-maven-plugin - 4.8.6.5 + 4.8.6.6 com.amazonaws.serverless.sample 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 @@ org.springframework.boot spring-boot-starter-parent - 3.3.5 + 3.4.0 From 1785eb57c7d72f6c1b8468f2e3ad13ddb8298589 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Wed, 27 Nov 2024 08:39:32 +0100 Subject: [PATCH 480/623] 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 generateParameterMap(MultiValuedTreeMap getQueryParamValuesAsList(decodedQs, e.getKey(), false) From 199c7571ddb155e5352eec78e1bbb897f032cb84 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Wed, 27 Nov 2024 11:39:34 +0100 Subject: [PATCH 481/623] 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 Date: Wed, 27 Nov 2024 11:42:58 +0100 Subject: [PATCH 482/623] 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 @@ 1.8 6.2.0 5.11.3 - 2.24.1 + 2.24.2 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 @@ 6.2.0 - 2.24.1 + 2.24.2 17 17 From 25628982712725780527f4a1505f146db699d395 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Wed, 27 Nov 2024 11:59:03 +0100 Subject: [PATCH 483/623] 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 @@ org.apache.maven.archetype archetype-packaging - 3.2.1 + 3.3.1 @@ -65,7 +65,7 @@ org.apache.maven.plugins maven-archetype-plugin - 3.0.1 + 3.3.1 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 @@ org.apache.maven.archetype archetype-packaging - 3.2.1 + 3.3.1 @@ -66,7 +66,7 @@ org.apache.maven.plugins maven-archetype-plugin - 3.0.1 + 3.3.1 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 @@ org.apache.maven.archetype archetype-packaging - 3.2.1 + 3.3.1 @@ -65,7 +65,7 @@ org.apache.maven.plugins maven-archetype-plugin - 3.0.1 + 3.3.1 From 2146847c72a5e1ea8aafe8fb8adae6756cf7a29c Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Wed, 27 Nov 2024 12:15:49 +0100 Subject: [PATCH 484/623] 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 @@ aws-serverless-java-container-springboot3 [2.0.0-SNAPSHOT,),[2.0.0-M1,) + + + org.crac + crac + runtime + com.amazonaws aws-lambda-java-events From 9ad5d1d121698426c06b1da45c186d6948b470df Mon Sep 17 00:00:00 2001 From: deki Date: Wed, 27 Nov 2024 11:24:08 +0000 Subject: [PATCH 485/623] 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 @@ AWS Serverless Java container support - Core Allows Java applications written for a servlet container to run in AWS Lambda https://aws.amazon.com/lambda - 2.1.0-SNAPSHOT + 2.1.0 com.amazonaws.serverless aws-serverless-java-container - 2.1.0-SNAPSHOT + 2.1.0 .. 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 @@ AWS Serverless Java container support - Jersey implementation Allows Java applications written for Jersey to run in AWS Lambda https://aws.amazon.com/lambda - 2.1.0-SNAPSHOT + 2.1.0 com.amazonaws.serverless aws-serverless-java-container - 2.1.0-SNAPSHOT + 2.1.0 .. @@ -24,7 +24,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.1.0-SNAPSHOT + 2.1.0 com.fasterxml.jackson.core @@ -35,7 +35,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.1.0-SNAPSHOT + 2.1.0 tests test-jar test 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 @@ AWS Serverless Java container support - Spring implementation Allows Java applications written for the Spring framework to run in AWS Lambda https://aws.amazon.com/lambda - 2.1.0-SNAPSHOT + 2.1.0 com.amazonaws.serverless aws-serverless-java-container - 2.1.0-SNAPSHOT + 2.1.0 .. @@ -25,12 +25,12 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.1.0-SNAPSHOT + 2.1.0 com.amazonaws.serverless aws-serverless-java-container-core - 2.1.0-SNAPSHOT + 2.1.0 tests test-jar test 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 @@ aws-serverless-java-container com.amazonaws.serverless - 2.1.0-SNAPSHOT + 2.1.0 4.0.0 @@ -12,7 +12,7 @@ AWS Serverless Java container support - SpringBoot 3 implementation Allows Java applications written for SpringBoot 3 to run in AWS Lambda https://aws.amazon.com/lambda - 2.1.0-SNAPSHOT + 2.1.0 6.2.0 @@ -30,12 +30,12 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.1.0-SNAPSHOT + 2.1.0 com.amazonaws.serverless aws-serverless-java-container-core - 2.1.0-SNAPSHOT + 2.1.0 tests test-jar test 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 @@ com.amazonaws.serverless aws-serverless-java-container - 2.1.0-SNAPSHOT + 2.1.0 com.amazonaws.serverless.archetypes aws-serverless-jersey-archetype - 2.1.0-SNAPSHOT + 2.1.0 maven-archetype https://github.com/aws/serverless-java-container.git - HEAD + aws-serverless-java-container-2.1.0 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 @@ com.amazonaws.serverless aws-serverless-java-container - 2.1.0-SNAPSHOT + 2.1.0 com.amazonaws.serverless.archetypes aws-serverless-spring-archetype - 2.1.0-SNAPSHOT + 2.1.0 maven-archetype https://github.com/aws/serverless-java-container.git - HEAD + aws-serverless-java-container-2.1.0 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 @@ com.amazonaws.serverless aws-serverless-java-container - 2.1.0-SNAPSHOT + 2.1.0 com.amazonaws.serverless.archetypes aws-serverless-springboot3-archetype - 2.1.0-SNAPSHOT + 2.1.0 maven-archetype https://github.com/aws/serverless-java-container.git - HEAD + aws-serverless-java-container-2.1.0 diff --git a/pom.xml b/pom.xml index eb28838b1..e9bdb687c 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.amazonaws.serverless aws-serverless-java-container pom - 2.1.0-SNAPSHOT + 2.1.0 AWS Serverless Java container A Java framework to run Spring, Spring Boot, Jersey, Spark, and Struts applications inside AWS Lambda https://github.com/aws/serverless-java-container @@ -37,7 +37,7 @@ https://github.com/aws/serverless-java-container scm:git:https://github.com/aws/serverless-java-container.git - HEAD + aws-serverless-java-container-2.1.0 From 9a497be7542beec2c7bccada559ecff2a12e0faa Mon Sep 17 00:00:00 2001 From: deki Date: Wed, 27 Nov 2024 11:24:09 +0000 Subject: [PATCH 486/623] 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 @@ AWS Serverless Java container support - Core Allows Java applications written for a servlet container to run in AWS Lambda https://aws.amazon.com/lambda - 2.1.0 + 2.2.0-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container - 2.1.0 + 2.2.0-SNAPSHOT .. 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 @@ AWS Serverless Java container support - Jersey implementation Allows Java applications written for Jersey to run in AWS Lambda https://aws.amazon.com/lambda - 2.1.0 + 2.2.0-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container - 2.1.0 + 2.2.0-SNAPSHOT .. @@ -24,7 +24,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.1.0 + 2.2.0-SNAPSHOT com.fasterxml.jackson.core @@ -35,7 +35,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.1.0 + 2.2.0-SNAPSHOT tests test-jar test 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 @@ AWS Serverless Java container support - Spring implementation Allows Java applications written for the Spring framework to run in AWS Lambda https://aws.amazon.com/lambda - 2.1.0 + 2.2.0-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container - 2.1.0 + 2.2.0-SNAPSHOT .. @@ -25,12 +25,12 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.1.0 + 2.2.0-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container-core - 2.1.0 + 2.2.0-SNAPSHOT tests test-jar test 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 @@ aws-serverless-java-container com.amazonaws.serverless - 2.1.0 + 2.2.0-SNAPSHOT 4.0.0 @@ -12,7 +12,7 @@ AWS Serverless Java container support - SpringBoot 3 implementation Allows Java applications written for SpringBoot 3 to run in AWS Lambda https://aws.amazon.com/lambda - 2.1.0 + 2.2.0-SNAPSHOT 6.2.0 @@ -30,12 +30,12 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.1.0 + 2.2.0-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container-core - 2.1.0 + 2.2.0-SNAPSHOT tests test-jar test 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 @@ com.amazonaws.serverless aws-serverless-java-container - 2.1.0 + 2.2.0-SNAPSHOT com.amazonaws.serverless.archetypes aws-serverless-jersey-archetype - 2.1.0 + 2.2.0-SNAPSHOT maven-archetype https://github.com/aws/serverless-java-container.git - aws-serverless-java-container-2.1.0 + HEAD 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 @@ com.amazonaws.serverless aws-serverless-java-container - 2.1.0 + 2.2.0-SNAPSHOT com.amazonaws.serverless.archetypes aws-serverless-spring-archetype - 2.1.0 + 2.2.0-SNAPSHOT maven-archetype https://github.com/aws/serverless-java-container.git - aws-serverless-java-container-2.1.0 + HEAD 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 @@ com.amazonaws.serverless aws-serverless-java-container - 2.1.0 + 2.2.0-SNAPSHOT com.amazonaws.serverless.archetypes aws-serverless-springboot3-archetype - 2.1.0 + 2.2.0-SNAPSHOT maven-archetype https://github.com/aws/serverless-java-container.git - aws-serverless-java-container-2.1.0 + HEAD diff --git a/pom.xml b/pom.xml index e9bdb687c..35597514c 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.amazonaws.serverless aws-serverless-java-container pom - 2.1.0 + 2.2.0-SNAPSHOT AWS Serverless Java container A Java framework to run Spring, Spring Boot, Jersey, Spark, and Struts applications inside AWS Lambda https://github.com/aws/serverless-java-container @@ -37,7 +37,7 @@ https://github.com/aws/serverless-java-container scm:git:https://github.com/aws/serverless-java-container.git - aws-serverless-java-container-2.1.0 + HEAD From e53972bec738e346e6be1ace73c92f2e3699888f Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Thu, 28 Nov 2024 11:11:39 +0100 Subject: [PATCH 487/623] 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 @@ 1.8 3.1.9 - 2.18.1 + 2.18.2 5.11.3 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 @@ 0.7 11.1.0 - 2.18.1 + 2.18.2 2.0.16 5.11.3 5.14.2 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 @@ 1.8 1.8 3.1.9 - 2.18.1 + 2.18.2 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 488/623] 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] --- 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 @@ 0.7 - 11.1.0 + 11.1.1 2.18.2 2.0.16 5.11.3 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 489/623] 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] --- 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 @@ org.apache.maven.plugins maven-javadoc-plugin - 3.11.1 + 3.11.2 org.apache.maven.plugins From 93788406831f98ad28429c3b0b03afcfe6b30bc0 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Mon, 9 Dec 2024 17:15:09 +0100 Subject: [PATCH 490/623] 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 generateParameterMap(MultiValuedTreeMap getQueryParamValuesAsList(decodedQs, e.getKey(), false) From 75c309cb788b9a2119f6300e70e4863845efe7ec Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Thu, 12 Dec 2024 08:55:23 +0100 Subject: [PATCH 491/623] 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 492/623] 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] --- .../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 493/623] 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] --- 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 @@ 6.2.0 - 2.24.2 + 2.24.3 17 17 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 494/623] 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] --- 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 @@ org.hibernate.validator hibernate-validator - 8.0.1.Final + 8.0.2.Final test 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 @@ org.hibernate.validator hibernate-validator - 8.0.1.Final + 8.0.2.Final test From 75fc1853a5b71017381584681a52df468d2afb4e Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Wed, 18 Dec 2024 15:02:39 +0100 Subject: [PATCH 495/623] 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 @@ Sample of AWS with Spring Native 17 - 2023.0.2 @@ -52,18 +51,7 @@ test - - - - org.springframework.cloud - spring-cloud-dependencies - ${spring-cloud.version} - pom - import - - - - + native From 53a747d9743d0f4b69f06eb32e1ad3bdcc002342 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Thu, 19 Dec 2024 15:35:55 +0100 Subject: [PATCH 496/623] 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 @@ org.springframework.security spring-security-web - 6.4.1 + 6.4.2 test 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 @@ - 6.2.0 - 6.4.1 + 6.2.1 + 6.4.2 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 @@ 2.2.0-SNAPSHOT - 6.2.0 - 3.4.0 - 6.4.1 + 6.2.1 + 3.4.1 + 6.4.2 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 @@ 1.8 1.8 - 6.2.0 + 6.2.1 5.11.3 2.24.2 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 @@ org.springframework.boot spring-boot-starter-parent - 3.4.0 + 3.4.1 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 @@ - 6.2.0 + 6.2.1 2.24.3 17 17 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 @@ org.springframework.boot spring-boot-starter-parent - 3.4.0 + 3.4.1 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 @@ org.springframework.boot spring-boot-starter-parent - 3.4.0 + 3.4.1 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 @@ org.springframework.boot spring-boot-starter-parent - 3.4.0 + 3.4.1 com.amazonaws.serverless.sample 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 @@ org.springframework.boot spring-boot-starter-parent - 3.4.0 + 3.4.1 From bd0ae08aa7b43f67a6869d9058fa8659c9ca8db3 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Fri, 20 Dec 2024 11:22:28 +0100 Subject: [PATCH 497/623] 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 Date: Mon, 23 Dec 2024 09:55:05 +0100 Subject: [PATCH 498/623] 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 @@ 3.1.9 2.18.2 - 5.11.3 + 5.11.4 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 @@ 1.8 1.8 6.2.1 - 5.11.3 + 5.11.4 2.24.2 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 @@ 17 - 5.11.3 + 5.11.4 diff --git a/pom.xml b/pom.xml index 6d053b3d9..ecfd98147 100644 --- a/pom.xml +++ b/pom.xml @@ -80,7 +80,7 @@ 11.1.1 2.18.2 2.0.16 - 5.11.3 + 5.11.4 5.14.2 1.3 UTF-8 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 499/623] 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] --- 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 @@ 2.18.2 2.0.16 5.11.4 - 5.14.2 + 5.15.2 1.3 UTF-8 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 500/623] 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] --- 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 @@ commons-codec commons-codec - 1.17.1 + 1.17.2 test 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 @@ commons-codec commons-codec - 1.17.1 + 1.17.2 test From 159a96444666a5780c7babd2c62bcea0fa5fa050 Mon Sep 17 00:00:00 2001 From: deki Date: Wed, 8 Jan 2025 08:28:10 +0000 Subject: [PATCH 501/623] 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 @@ AWS Serverless Java container support - Core Allows Java applications written for a servlet container to run in AWS Lambda https://aws.amazon.com/lambda - 2.2.0-SNAPSHOT + 2.1.1 com.amazonaws.serverless aws-serverless-java-container - 2.2.0-SNAPSHOT + 2.1.1 .. 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 @@ AWS Serverless Java container support - Jersey implementation Allows Java applications written for Jersey to run in AWS Lambda https://aws.amazon.com/lambda - 2.2.0-SNAPSHOT + 2.1.1 com.amazonaws.serverless aws-serverless-java-container - 2.2.0-SNAPSHOT + 2.1.1 .. @@ -24,7 +24,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.2.0-SNAPSHOT + 2.1.1 com.fasterxml.jackson.core @@ -35,7 +35,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.2.0-SNAPSHOT + 2.1.1 tests test-jar test 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 @@ AWS Serverless Java container support - Spring implementation Allows Java applications written for the Spring framework to run in AWS Lambda https://aws.amazon.com/lambda - 2.2.0-SNAPSHOT + 2.1.1 com.amazonaws.serverless aws-serverless-java-container - 2.2.0-SNAPSHOT + 2.1.1 .. @@ -25,12 +25,12 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.2.0-SNAPSHOT + 2.1.1 com.amazonaws.serverless aws-serverless-java-container-core - 2.2.0-SNAPSHOT + 2.1.1 tests test-jar test 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 @@ aws-serverless-java-container com.amazonaws.serverless - 2.2.0-SNAPSHOT + 2.1.1 4.0.0 @@ -12,7 +12,7 @@ AWS Serverless Java container support - SpringBoot 3 implementation Allows Java applications written for SpringBoot 3 to run in AWS Lambda https://aws.amazon.com/lambda - 2.2.0-SNAPSHOT + 2.1.1 6.2.1 @@ -30,12 +30,12 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.2.0-SNAPSHOT + 2.1.1 com.amazonaws.serverless aws-serverless-java-container-core - 2.2.0-SNAPSHOT + 2.1.1 tests test-jar test 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 @@ com.amazonaws.serverless aws-serverless-java-container - 2.2.0-SNAPSHOT + 2.1.1 com.amazonaws.serverless.archetypes aws-serverless-jersey-archetype - 2.2.0-SNAPSHOT + 2.1.1 maven-archetype https://github.com/aws/serverless-java-container.git - HEAD + aws-serverless-java-container-2.1.1 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 @@ com.amazonaws.serverless aws-serverless-java-container - 2.2.0-SNAPSHOT + 2.1.1 com.amazonaws.serverless.archetypes aws-serverless-spring-archetype - 2.2.0-SNAPSHOT + 2.1.1 maven-archetype https://github.com/aws/serverless-java-container.git - HEAD + aws-serverless-java-container-2.1.1 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 @@ com.amazonaws.serverless aws-serverless-java-container - 2.2.0-SNAPSHOT + 2.1.1 com.amazonaws.serverless.archetypes aws-serverless-springboot3-archetype - 2.2.0-SNAPSHOT + 2.1.1 maven-archetype https://github.com/aws/serverless-java-container.git - HEAD + aws-serverless-java-container-2.1.1 diff --git a/pom.xml b/pom.xml index 0458270d1..4f29c41f8 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.amazonaws.serverless aws-serverless-java-container pom - 2.2.0-SNAPSHOT + 2.1.1 AWS Serverless Java container A Java framework to run Spring, Spring Boot, Jersey, Spark, and Struts applications inside AWS Lambda https://github.com/aws/serverless-java-container @@ -37,7 +37,7 @@ https://github.com/aws/serverless-java-container scm:git:https://github.com/aws/serverless-java-container.git - HEAD + aws-serverless-java-container-2.1.1 From 02fb39371fa02d0442c94c2627c90ef8f12cdfc2 Mon Sep 17 00:00:00 2001 From: deki Date: Wed, 8 Jan 2025 08:28:12 +0000 Subject: [PATCH 502/623] 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 @@ AWS Serverless Java container support - Core Allows Java applications written for a servlet container to run in AWS Lambda https://aws.amazon.com/lambda - 2.1.1 + 2.2.0-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container - 2.1.1 + 2.2.0-SNAPSHOT .. 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 @@ AWS Serverless Java container support - Jersey implementation Allows Java applications written for Jersey to run in AWS Lambda https://aws.amazon.com/lambda - 2.1.1 + 2.2.0-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container - 2.1.1 + 2.2.0-SNAPSHOT .. @@ -24,7 +24,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.1.1 + 2.2.0-SNAPSHOT com.fasterxml.jackson.core @@ -35,7 +35,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.1.1 + 2.2.0-SNAPSHOT tests test-jar test 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 @@ AWS Serverless Java container support - Spring implementation Allows Java applications written for the Spring framework to run in AWS Lambda https://aws.amazon.com/lambda - 2.1.1 + 2.2.0-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container - 2.1.1 + 2.2.0-SNAPSHOT .. @@ -25,12 +25,12 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.1.1 + 2.2.0-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container-core - 2.1.1 + 2.2.0-SNAPSHOT tests test-jar test 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 @@ aws-serverless-java-container com.amazonaws.serverless - 2.1.1 + 2.2.0-SNAPSHOT 4.0.0 @@ -12,7 +12,7 @@ AWS Serverless Java container support - SpringBoot 3 implementation Allows Java applications written for SpringBoot 3 to run in AWS Lambda https://aws.amazon.com/lambda - 2.1.1 + 2.2.0-SNAPSHOT 6.2.1 @@ -30,12 +30,12 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.1.1 + 2.2.0-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container-core - 2.1.1 + 2.2.0-SNAPSHOT tests test-jar test 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 @@ com.amazonaws.serverless aws-serverless-java-container - 2.1.1 + 2.2.0-SNAPSHOT com.amazonaws.serverless.archetypes aws-serverless-jersey-archetype - 2.1.1 + 2.2.0-SNAPSHOT maven-archetype https://github.com/aws/serverless-java-container.git - aws-serverless-java-container-2.1.1 + HEAD 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 @@ com.amazonaws.serverless aws-serverless-java-container - 2.1.1 + 2.2.0-SNAPSHOT com.amazonaws.serverless.archetypes aws-serverless-spring-archetype - 2.1.1 + 2.2.0-SNAPSHOT maven-archetype https://github.com/aws/serverless-java-container.git - aws-serverless-java-container-2.1.1 + HEAD 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 @@ com.amazonaws.serverless aws-serverless-java-container - 2.1.1 + 2.2.0-SNAPSHOT com.amazonaws.serverless.archetypes aws-serverless-springboot3-archetype - 2.1.1 + 2.2.0-SNAPSHOT maven-archetype https://github.com/aws/serverless-java-container.git - aws-serverless-java-container-2.1.1 + HEAD diff --git a/pom.xml b/pom.xml index 4f29c41f8..0458270d1 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.amazonaws.serverless aws-serverless-java-container pom - 2.1.1 + 2.2.0-SNAPSHOT AWS Serverless Java container A Java framework to run Spring, Spring Boot, Jersey, Spark, and Struts applications inside AWS Lambda https://github.com/aws/serverless-java-container @@ -37,7 +37,7 @@ https://github.com/aws/serverless-java-container scm:git:https://github.com/aws/serverless-java-container.git - aws-serverless-java-container-2.1.1 + HEAD 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 503/623] 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] --- 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 @@ 0.7 - 11.1.1 + 12.0.0 2.18.2 2.0.16 5.11.4 From 00de575129935ff5cb593fea83687ed213157abd Mon Sep 17 00:00:00 2001 From: Oleg Zhurakousky Date: Mon, 13 Jan 2025 19:31:53 +0100 Subject: [PATCH 504/623] 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 @@ com.amazonaws.serverless aws-serverless-java-container-springboot3 - [2.0.0-SNAPSHOT,),[2.0.0-M1,) + [2.2.0-SNAPSHOT,),[2.2.0-M1,) From 9c7ef12dfe7a28430c66b2bb368ee3c782269bd6 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Tue, 14 Jan 2025 07:30:13 +0200 Subject: [PATCH 505/623] 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 @@ - 3.1.9 + 3.1.10 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 @@ 1.8 1.8 - 3.1.9 + 3.1.10 2.18.2 5.11.4 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 @@ 1.8 1.8 - 3.1.9 + 3.1.10 2.18.2 From 6fa29cdf8b1ec9c98af3a454f0a5c388027e38f5 Mon Sep 17 00:00:00 2001 From: Oleg Zhurakousky Date: Tue, 14 Jan 2025 08:20:30 +0100 Subject: [PATCH 506/623] 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 @@ org.springframework.cloud spring-cloud-function-serverless-web - 4.1.4 + 4.1.5 com.amazonaws.serverless 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 @@ com.amazonaws.serverless aws-serverless-java-container-springboot3 - [2.2.0-SNAPSHOT,),[2.2.0-M1,) + [2.2.0-SNAPSHOT,),[2.1.1,) 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 507/623] 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] --- 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 @@ 0.7 - 12.0.0 + 12.0.1 2.18.2 2.0.16 5.11.4 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 508/623] 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] --- 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 @@ com.github.spotbugs spotbugs-annotations - 4.8.6 + 4.9.0 provided From 5f02ec136b985ab44055aed9a3408b817d0537d9 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Fri, 24 Jan 2025 14:41:59 +0100 Subject: [PATCH 509/623] 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 @@ - 6.2.1 + 6.2.2 6.4.2 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 @@ 2.2.0-SNAPSHOT - 6.2.1 - 3.4.1 + 6.2.2 + 3.4.2 6.4.2 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 @@ 1.8 1.8 - 6.2.1 + 6.2.2 5.11.4 2.24.2 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 @@ org.springframework.boot spring-boot-starter-parent - 3.4.1 + 3.4.2 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 @@ - 6.2.1 + 6.2.2 2.24.3 17 17 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 @@ org.springframework.boot spring-boot-starter-parent - 3.4.1 + 3.4.2 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 @@ org.springframework.boot spring-boot-starter-parent - 3.4.1 + 3.4.2 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 @@ org.springframework.boot spring-boot-starter-parent - 3.4.1 + 3.4.2 com.amazonaws.serverless.sample 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 @@ org.springframework.boot spring-boot-starter-parent - 3.4.1 + 3.4.2 From 817664191be456f53fd92e8c0a4e4b481ecae3ac Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Wed, 29 Jan 2025 14:18:04 +0100 Subject: [PATCH 510/623] 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 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 requestParameters, ServerlessHttpServletRequest httpRequest) { + private static void populateQueryStringParameters(Map requestParameters, ServerlessHttpServletRequest httpRequest) { if (!CollectionUtils.isEmpty(requestParameters)) { for (Entry 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 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 Date: Wed, 29 Jan 2025 14:19:35 +0100 Subject: [PATCH 511/623] 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 512/623] 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] --- 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 @@ commons-codec commons-codec - 1.17.2 + 1.18.0 test 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 @@ commons-codec commons-codec - 1.17.2 + 1.18.0 test 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 513/623] 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] --- 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 @@ 0.7 - 12.0.1 + 12.0.2 2.18.2 2.0.16 5.11.4 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 514/623] 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] --- 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 @@ jakarta.validation jakarta.validation-api - 3.0.2 + 3.1.1 test From 8e11c963627f054a895495205af8b56105ed90e0 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Mon, 3 Feb 2025 06:32:32 +0100 Subject: [PATCH 515/623] 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 @@ org.apache.httpcomponents.client5 httpclient5 - 5.4.1 + 5.4.2 test 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 @@ org.apache.httpcomponents.client5 httpclient5 - 5.4.1 + 5.4.2 test 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 @@ org.apache.httpcomponents.client5 httpclient5 - 5.4.1 + 5.4.2 test diff --git a/pom.xml b/pom.xml index 346ba57e0..84296f74c 100644 --- a/pom.xml +++ b/pom.xml @@ -119,7 +119,7 @@ org.apache.httpcomponents.client5 httpclient5 - 5.4.1 + 5.4.2 test From 695dd06b8d0ff6d1686a2018a9c13ca524453bc8 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Tue, 4 Feb 2025 06:28:58 +0100 Subject: [PATCH 516/623] 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 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 requestParameters, ServerlessHttpServletRequest httpRequest) { if (!CollectionUtils.isEmpty(requestParameters)) { for (Entry 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 Date: Tue, 4 Feb 2025 06:52:14 +0100 Subject: [PATCH 517/623] 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 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 Date: Tue, 4 Feb 2025 06:20:15 +0000 Subject: [PATCH 518/623] 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 @@ AWS Serverless Java container support - Core Allows Java applications written for a servlet container to run in AWS Lambda https://aws.amazon.com/lambda - 2.2.0-SNAPSHOT + 2.1.2 com.amazonaws.serverless aws-serverless-java-container - 2.2.0-SNAPSHOT + 2.1.2 .. 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 @@ AWS Serverless Java container support - Jersey implementation Allows Java applications written for Jersey to run in AWS Lambda https://aws.amazon.com/lambda - 2.2.0-SNAPSHOT + 2.1.2 com.amazonaws.serverless aws-serverless-java-container - 2.2.0-SNAPSHOT + 2.1.2 .. @@ -24,7 +24,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.2.0-SNAPSHOT + 2.1.2 com.fasterxml.jackson.core @@ -35,7 +35,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.2.0-SNAPSHOT + 2.1.2 tests test-jar test 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 @@ AWS Serverless Java container support - Spring implementation Allows Java applications written for the Spring framework to run in AWS Lambda https://aws.amazon.com/lambda - 2.2.0-SNAPSHOT + 2.1.2 com.amazonaws.serverless aws-serverless-java-container - 2.2.0-SNAPSHOT + 2.1.2 .. @@ -25,12 +25,12 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.2.0-SNAPSHOT + 2.1.2 com.amazonaws.serverless aws-serverless-java-container-core - 2.2.0-SNAPSHOT + 2.1.2 tests test-jar test 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 @@ aws-serverless-java-container com.amazonaws.serverless - 2.2.0-SNAPSHOT + 2.1.2 4.0.0 @@ -12,7 +12,7 @@ AWS Serverless Java container support - SpringBoot 3 implementation Allows Java applications written for SpringBoot 3 to run in AWS Lambda https://aws.amazon.com/lambda - 2.2.0-SNAPSHOT + 2.1.2 6.2.2 @@ -30,12 +30,12 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.2.0-SNAPSHOT + 2.1.2 com.amazonaws.serverless aws-serverless-java-container-core - 2.2.0-SNAPSHOT + 2.1.2 tests test-jar test 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 @@ com.amazonaws.serverless aws-serverless-java-container - 2.2.0-SNAPSHOT + 2.1.2 com.amazonaws.serverless.archetypes aws-serverless-jersey-archetype - 2.2.0-SNAPSHOT + 2.1.2 maven-archetype https://github.com/aws/serverless-java-container.git - HEAD + aws-serverless-java-container-2.1.2 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 @@ com.amazonaws.serverless aws-serverless-java-container - 2.2.0-SNAPSHOT + 2.1.2 com.amazonaws.serverless.archetypes aws-serverless-spring-archetype - 2.2.0-SNAPSHOT + 2.1.2 maven-archetype https://github.com/aws/serverless-java-container.git - HEAD + aws-serverless-java-container-2.1.2 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 @@ com.amazonaws.serverless aws-serverless-java-container - 2.2.0-SNAPSHOT + 2.1.2 com.amazonaws.serverless.archetypes aws-serverless-springboot3-archetype - 2.2.0-SNAPSHOT + 2.1.2 maven-archetype https://github.com/aws/serverless-java-container.git - HEAD + aws-serverless-java-container-2.1.2 diff --git a/pom.xml b/pom.xml index 84296f74c..167e2419b 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.amazonaws.serverless aws-serverless-java-container pom - 2.2.0-SNAPSHOT + 2.1.2 AWS Serverless Java container A Java framework to run Spring, Spring Boot, Jersey, Spark, and Struts applications inside AWS Lambda https://github.com/aws/serverless-java-container @@ -37,7 +37,7 @@ https://github.com/aws/serverless-java-container scm:git:https://github.com/aws/serverless-java-container.git - HEAD + aws-serverless-java-container-2.1.2 From c1e60ebe87f9fa057416e874c9d7aa286109864a Mon Sep 17 00:00:00 2001 From: deki Date: Tue, 4 Feb 2025 06:20:17 +0000 Subject: [PATCH 519/623] 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 @@ AWS Serverless Java container support - Core Allows Java applications written for a servlet container to run in AWS Lambda https://aws.amazon.com/lambda - 2.1.2 + 2.2.0-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container - 2.1.2 + 2.2.0-SNAPSHOT .. 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 @@ AWS Serverless Java container support - Jersey implementation Allows Java applications written for Jersey to run in AWS Lambda https://aws.amazon.com/lambda - 2.1.2 + 2.2.0-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container - 2.1.2 + 2.2.0-SNAPSHOT .. @@ -24,7 +24,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.1.2 + 2.2.0-SNAPSHOT com.fasterxml.jackson.core @@ -35,7 +35,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.1.2 + 2.2.0-SNAPSHOT tests test-jar test 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 @@ AWS Serverless Java container support - Spring implementation Allows Java applications written for the Spring framework to run in AWS Lambda https://aws.amazon.com/lambda - 2.1.2 + 2.2.0-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container - 2.1.2 + 2.2.0-SNAPSHOT .. @@ -25,12 +25,12 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.1.2 + 2.2.0-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container-core - 2.1.2 + 2.2.0-SNAPSHOT tests test-jar test 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 @@ aws-serverless-java-container com.amazonaws.serverless - 2.1.2 + 2.2.0-SNAPSHOT 4.0.0 @@ -12,7 +12,7 @@ AWS Serverless Java container support - SpringBoot 3 implementation Allows Java applications written for SpringBoot 3 to run in AWS Lambda https://aws.amazon.com/lambda - 2.1.2 + 2.2.0-SNAPSHOT 6.2.2 @@ -30,12 +30,12 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.1.2 + 2.2.0-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container-core - 2.1.2 + 2.2.0-SNAPSHOT tests test-jar test 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 @@ com.amazonaws.serverless aws-serverless-java-container - 2.1.2 + 2.2.0-SNAPSHOT com.amazonaws.serverless.archetypes aws-serverless-jersey-archetype - 2.1.2 + 2.2.0-SNAPSHOT maven-archetype https://github.com/aws/serverless-java-container.git - aws-serverless-java-container-2.1.2 + HEAD 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 @@ com.amazonaws.serverless aws-serverless-java-container - 2.1.2 + 2.2.0-SNAPSHOT com.amazonaws.serverless.archetypes aws-serverless-spring-archetype - 2.1.2 + 2.2.0-SNAPSHOT maven-archetype https://github.com/aws/serverless-java-container.git - aws-serverless-java-container-2.1.2 + HEAD 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 @@ com.amazonaws.serverless aws-serverless-java-container - 2.1.2 + 2.2.0-SNAPSHOT com.amazonaws.serverless.archetypes aws-serverless-springboot3-archetype - 2.1.2 + 2.2.0-SNAPSHOT maven-archetype https://github.com/aws/serverless-java-container.git - aws-serverless-java-container-2.1.2 + HEAD diff --git a/pom.xml b/pom.xml index 167e2419b..84296f74c 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.amazonaws.serverless aws-serverless-java-container pom - 2.1.2 + 2.2.0-SNAPSHOT AWS Serverless Java container A Java framework to run Spring, Spring Boot, Jersey, Spark, and Struts applications inside AWS Lambda https://github.com/aws/serverless-java-container @@ -37,7 +37,7 @@ https://github.com/aws/serverless-java-container scm:git:https://github.com/aws/serverless-java-container.git - aws-serverless-java-container-2.1.2 + HEAD 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 520/623] 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] --- 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 @@ com.github.spotbugs spotbugs-annotations - 4.9.0 + 4.9.1 provided 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 521/623] 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] --- 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 @@ com.github.spotbugs spotbugs-annotations - 4.9.0 + 4.9.1 provided 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 522/623] 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] --- 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 @@ com.github.spotbugs spotbugs-annotations - 4.9.0 + 4.9.1 provided 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 523/623] 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] --- 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 @@ com.github.spotbugs spotbugs-annotations - 4.9.0 + 4.9.1 provided 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 524/623] 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] --- 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 @@ com.github.spotbugs spotbugs-annotations - 4.9.0 + 4.9.1 provided 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 525/623] 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] --- 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 @@ com.github.spotbugs spotbugs-annotations - 4.9.0 + 4.9.1 provided 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 526/623] 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] --- 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 @@ com.github.spotbugs spotbugs-annotations - 4.9.0 + 4.9.1 provided 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 527/623] 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] --- 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 @@ com.github.spotbugs spotbugs-annotations - 4.9.0 + 4.9.1 provided 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 528/623] 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] --- 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 @@ com.github.spotbugs spotbugs-maven-plugin - 4.8.6.6 + 4.9.1.0 com.amazonaws.serverless.sample 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 @@ org.springframework.boot spring-boot-starter-parent - 3.4.2 + 3.4.3 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 533/623] 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] --- 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 @@ org.apache.maven.plugins maven-compiler-plugin - 3.13.0 + 3.14.0 1.8 1.8 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 534/623] 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] --- 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 @@ org.apache.maven.plugins maven-compiler-plugin - 3.13.0 + 3.14.0 1.8 1.8 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 535/623] 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] --- 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 @@ org.apache.maven.plugins maven-compiler-plugin - 3.13.0 + 3.14.0 1.8 1.8 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 536/623] 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] --- 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 @@ org.apache.maven.plugins maven-compiler-plugin - 3.13.0 + 3.14.0 1.8 1.8 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 537/623] 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] --- 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 @@ org.apache.maven.plugins maven-install-plugin - 3.1.3 + 3.1.4 org.apache.maven.plugins 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 @@ org.apache.maven.plugins maven-install-plugin - 3.1.3 + 3.1.4 true 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 @@ org.apache.maven.plugins maven-install-plugin - 3.1.3 + 3.1.4 true 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 @@ org.apache.maven.plugins maven-install-plugin - 3.1.3 + 3.1.4 true 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 @@ org.apache.maven.plugins maven-install-plugin - 3.1.3 + 3.1.4 true 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 @@ org.apache.maven.plugins maven-install-plugin - 3.1.3 + 3.1.4 true 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 538/623] 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] --- 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 @@ org.apache.maven.plugins maven-deploy-plugin - 3.1.3 + 3.1.4 org.apache.maven.plugins 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 539/623] 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] --- 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 @@ org.apache.maven.plugins maven-deploy-plugin - 3.1.3 + 3.1.4 org.apache.maven.plugins 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 540/623] 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] --- 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 @@ org.apache.maven.plugins maven-deploy-plugin - 3.1.3 + 3.1.4 org.apache.maven.plugins 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 541/623] 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] --- 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 @@ org.apache.maven.plugins maven-deploy-plugin - 3.1.3 + 3.1.4 org.apache.maven.plugins 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 542/623] 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] --- 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 @@ org.apache.maven.plugins maven-deploy-plugin - 3.1.3 + 3.1.4 org.apache.maven.plugins 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 543/623] 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] --- 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 @@ org.apache.maven.plugins maven-deploy-plugin - 3.1.3 + 3.1.4 org.apache.maven.plugins 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 544/623] 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] --- 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 @@ org.apache.maven.plugins maven-deploy-plugin - 3.1.3 + 3.1.4 org.apache.maven.plugins 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 545/623] 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] --- 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 @@ org.apache.maven.plugins maven-deploy-plugin - 3.1.3 + 3.1.4 org.apache.maven.plugins 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 546/623] 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] --- 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 @@ 0.7 12.1.0 - 2.18.2 + 2.18.3 2.0.16 5.11.4 5.15.2 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 @@ 1.8 1.8 3.1.10 - 2.18.2 + 2.18.3 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 547/623] 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] --- .../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 548/623] 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] --- 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 @@ com.github.spotbugs spotbugs-annotations - 4.9.1 + 4.9.3 provided 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 549/623] 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] --- 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 @@ com.github.spotbugs spotbugs-annotations - 4.9.1 + 4.9.3 provided 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 550/623] 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] --- 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 @@ com.github.spotbugs spotbugs-annotations - 4.9.1 + 4.9.3 provided 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 551/623] 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] --- 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 @@ com.github.spotbugs spotbugs-annotations - 4.9.1 + 4.9.3 provided 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 552/623] 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] --- 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 @@ com.github.spotbugs spotbugs-annotations - 4.9.1 + 4.9.3 provided 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 553/623] 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] --- 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 @@ com.github.spotbugs spotbugs-annotations - 4.9.1 + 4.9.3 provided 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 554/623] 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] --- 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 @@ com.github.spotbugs spotbugs-annotations - 4.9.1 + 4.9.3 provided 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 555/623] 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] --- 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 @@ com.github.spotbugs spotbugs-annotations - 4.9.1 + 4.9.3 provided 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 556/623] 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] --- .../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 557/623] 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] --- 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 @@ com.github.spotbugs spotbugs-maven-plugin - 4.9.1.0 + 4.9.3.0 com.amazonaws.serverless.sample 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 @@ org.springframework.boot spring-boot-starter-parent - 3.4.3 + 3.4.4 From 6db27586020f6172849bdfc4e709888fb4267241 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Fri, 4 Apr 2025 22:02:22 +0200 Subject: [PATCH 560/623] 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 @@ 3.1.10 2.18.2 - 5.11.4 + 5.12.1 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 @@ 1.8 1.8 6.2.5 - 5.11.4 + 5.12.1 2.24.2 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 @@ 17 - 5.11.4 + 5.12.1 diff --git a/pom.xml b/pom.xml index a07027339..1a886a4d0 100644 --- a/pom.xml +++ b/pom.xml @@ -80,7 +80,7 @@ 12.1.0 2.18.3 2.0.16 - 5.11.4 + 5.12.1 5.15.2 1.3 UTF-8 From 0bf339d451a7c98c1ada5dcb62681af95fa63731 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Fri, 4 Apr 2025 22:03:15 +0200 Subject: [PATCH 561/623] 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 @@ 1.8 3.1.10 - 2.18.2 + 2.18.3 5.12.1 From dded06df64490c465897eaec3ed8c5c5c3ca8517 Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Fri, 4 Apr 2025 22:03:35 +0200 Subject: [PATCH 562/623] 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 Date: Sat, 5 Apr 2025 08:32:10 +0200 Subject: [PATCH 563/623] 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 564/623] 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] --- 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 @@ 0.7 12.1.0 2.18.3 - 2.0.16 + 2.0.17 5.12.1 5.15.2 1.3 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 565/623] 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] --- 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 @@ 2.18.3 2.0.16 5.12.1 - 5.15.2 + 5.17.0 1.3 UTF-8 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 566/623] 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] --- 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 @@ org.apache.maven.plugins maven-surefire-plugin - 3.5.2 + 3.5.3 org.apache.maven.plugins 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 567/623] 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] --- 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 @@ org.jacoco jacoco-maven-plugin - 0.8.12 + 0.8.13 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 568/623] 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] --- 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 @@ org.apache.maven.plugins maven-surefire-plugin - 3.5.2 + 3.5.3 org.apache.maven.plugins From a161e20f1da2dfe60fec9b97fa668b6e36ca6b5c Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Sat, 5 Apr 2025 09:18:43 +0200 Subject: [PATCH 569/623] 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 @@ org.apache.httpcomponents.client5 httpclient5 - 5.4.2 + 5.4.3 test 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 @@ org.apache.httpcomponents.client5 httpclient5 - 5.4.2 + 5.4.3 test 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 @@ org.apache.httpcomponents.client5 httpclient5 - 5.4.2 + 5.4.3 test diff --git a/pom.xml b/pom.xml index 7693ddf9d..e01461df4 100644 --- a/pom.xml +++ b/pom.xml @@ -119,7 +119,7 @@ org.apache.httpcomponents.client5 httpclient5 - 5.4.2 + 5.4.3 test From 02f36fb9891d0d6fac25e78de1c582bae178cc6c Mon Sep 17 00:00:00 2001 From: deki Date: Sat, 5 Apr 2025 07:37:23 +0000 Subject: [PATCH 570/623] 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 @@ AWS Serverless Java container support - Core Allows Java applications written for a servlet container to run in AWS Lambda https://aws.amazon.com/lambda - 2.2.0-SNAPSHOT + 2.1.3 com.amazonaws.serverless aws-serverless-java-container - 2.2.0-SNAPSHOT + 2.1.3 .. 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 @@ AWS Serverless Java container support - Jersey implementation Allows Java applications written for Jersey to run in AWS Lambda https://aws.amazon.com/lambda - 2.2.0-SNAPSHOT + 2.1.3 com.amazonaws.serverless aws-serverless-java-container - 2.2.0-SNAPSHOT + 2.1.3 .. @@ -24,7 +24,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.2.0-SNAPSHOT + 2.1.3 com.fasterxml.jackson.core @@ -35,7 +35,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.2.0-SNAPSHOT + 2.1.3 tests test-jar test 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 @@ AWS Serverless Java container support - Spring implementation Allows Java applications written for the Spring framework to run in AWS Lambda https://aws.amazon.com/lambda - 2.2.0-SNAPSHOT + 2.1.3 com.amazonaws.serverless aws-serverless-java-container - 2.2.0-SNAPSHOT + 2.1.3 .. @@ -25,12 +25,12 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.2.0-SNAPSHOT + 2.1.3 com.amazonaws.serverless aws-serverless-java-container-core - 2.2.0-SNAPSHOT + 2.1.3 tests test-jar test 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 @@ aws-serverless-java-container com.amazonaws.serverless - 2.2.0-SNAPSHOT + 2.1.3 4.0.0 @@ -12,7 +12,7 @@ AWS Serverless Java container support - SpringBoot 3 implementation Allows Java applications written for SpringBoot 3 to run in AWS Lambda https://aws.amazon.com/lambda - 2.2.0-SNAPSHOT + 2.1.3 6.2.5 @@ -30,12 +30,12 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.2.0-SNAPSHOT + 2.1.3 com.amazonaws.serverless aws-serverless-java-container-core - 2.2.0-SNAPSHOT + 2.1.3 tests test-jar test 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 @@ com.amazonaws.serverless aws-serverless-java-container - 2.2.0-SNAPSHOT + 2.1.3 com.amazonaws.serverless.archetypes aws-serverless-jersey-archetype - 2.2.0-SNAPSHOT + 2.1.3 maven-archetype https://github.com/aws/serverless-java-container.git - HEAD + aws-serverless-java-container-2.1.3 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 @@ com.amazonaws.serverless aws-serverless-java-container - 2.2.0-SNAPSHOT + 2.1.3 com.amazonaws.serverless.archetypes aws-serverless-spring-archetype - 2.2.0-SNAPSHOT + 2.1.3 maven-archetype https://github.com/aws/serverless-java-container.git - HEAD + aws-serverless-java-container-2.1.3 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 @@ com.amazonaws.serverless aws-serverless-java-container - 2.2.0-SNAPSHOT + 2.1.3 com.amazonaws.serverless.archetypes aws-serverless-springboot3-archetype - 2.2.0-SNAPSHOT + 2.1.3 maven-archetype https://github.com/aws/serverless-java-container.git - HEAD + aws-serverless-java-container-2.1.3 diff --git a/pom.xml b/pom.xml index 6bc2ff232..9ac118694 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.amazonaws.serverless aws-serverless-java-container pom - 2.2.0-SNAPSHOT + 2.1.3 AWS Serverless Java container A Java framework to run Spring, Spring Boot, Jersey, Spark, and Struts applications inside AWS Lambda https://github.com/aws/serverless-java-container @@ -37,7 +37,7 @@ https://github.com/aws/serverless-java-container scm:git:https://github.com/aws/serverless-java-container.git - HEAD + aws-serverless-java-container-2.1.3 From 7d20289b26ba3e0a02d9393ccd234b04a0d909b9 Mon Sep 17 00:00:00 2001 From: deki Date: Sat, 5 Apr 2025 07:37:24 +0000 Subject: [PATCH 571/623] 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 @@ AWS Serverless Java container support - Core Allows Java applications written for a servlet container to run in AWS Lambda https://aws.amazon.com/lambda - 2.1.3 + 2.1.4-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container - 2.1.3 + 2.1.4-SNAPSHOT .. 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 @@ AWS Serverless Java container support - Jersey implementation Allows Java applications written for Jersey to run in AWS Lambda https://aws.amazon.com/lambda - 2.1.3 + 2.1.4-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container - 2.1.3 + 2.1.4-SNAPSHOT .. @@ -24,7 +24,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.1.3 + 2.1.4-SNAPSHOT com.fasterxml.jackson.core @@ -35,7 +35,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.1.3 + 2.1.4-SNAPSHOT tests test-jar test 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 @@ AWS Serverless Java container support - Spring implementation Allows Java applications written for the Spring framework to run in AWS Lambda https://aws.amazon.com/lambda - 2.1.3 + 2.1.4-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container - 2.1.3 + 2.1.4-SNAPSHOT .. @@ -25,12 +25,12 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.1.3 + 2.1.4-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container-core - 2.1.3 + 2.1.4-SNAPSHOT tests test-jar test 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 @@ aws-serverless-java-container com.amazonaws.serverless - 2.1.3 + 2.1.4-SNAPSHOT 4.0.0 @@ -12,7 +12,7 @@ AWS Serverless Java container support - SpringBoot 3 implementation Allows Java applications written for SpringBoot 3 to run in AWS Lambda https://aws.amazon.com/lambda - 2.1.3 + 2.1.4-SNAPSHOT 6.2.5 @@ -30,12 +30,12 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.1.3 + 2.1.4-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container-core - 2.1.3 + 2.1.4-SNAPSHOT tests test-jar test 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 @@ com.amazonaws.serverless aws-serverless-java-container - 2.1.3 + 2.1.4-SNAPSHOT com.amazonaws.serverless.archetypes aws-serverless-jersey-archetype - 2.1.3 + 2.1.4-SNAPSHOT maven-archetype https://github.com/aws/serverless-java-container.git - aws-serverless-java-container-2.1.3 + HEAD 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 @@ com.amazonaws.serverless aws-serverless-java-container - 2.1.3 + 2.1.4-SNAPSHOT com.amazonaws.serverless.archetypes aws-serverless-spring-archetype - 2.1.3 + 2.1.4-SNAPSHOT maven-archetype https://github.com/aws/serverless-java-container.git - aws-serverless-java-container-2.1.3 + HEAD 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 @@ com.amazonaws.serverless aws-serverless-java-container - 2.1.3 + 2.1.4-SNAPSHOT com.amazonaws.serverless.archetypes aws-serverless-springboot3-archetype - 2.1.3 + 2.1.4-SNAPSHOT maven-archetype https://github.com/aws/serverless-java-container.git - aws-serverless-java-container-2.1.3 + HEAD diff --git a/pom.xml b/pom.xml index 9ac118694..d679e20a4 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.amazonaws.serverless aws-serverless-java-container pom - 2.1.3 + 2.1.4-SNAPSHOT AWS Serverless Java container A Java framework to run Spring, Spring Boot, Jersey, Spark, and Struts applications inside AWS Lambda https://github.com/aws/serverless-java-container @@ -37,7 +37,7 @@ https://github.com/aws/serverless-java-container scm:git:https://github.com/aws/serverless-java-container.git - aws-serverless-java-container-2.1.3 + HEAD 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 572/623] 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] --- 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 @@ 0.7 - 12.1.0 + 12.1.1 2.18.3 2.0.17 5.12.1 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 573/623] 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] --- 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 @@ 0.7 - 12.1.0 + 12.1.1 2.18.3 2.0.17 5.12.1 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 574/623] 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] --- 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 @@ 0.7 - 12.1.0 + 12.1.1 2.18.3 2.0.17 5.12.1 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 575/623] 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] --- 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 @@ 0.7 - 12.1.0 + 12.1.1 2.18.3 2.0.17 5.12.1 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 576/623] 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] --- 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 @@ 0.7 - 12.1.0 + 12.1.1 2.18.3 2.0.17 5.12.1 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 577/623] 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] --- .../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 578/623] 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] --- 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 @@ 12.1.0 2.18.3 2.0.17 - 5.12.1 + 5.12.2 5.17.0 1.3 UTF-8 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 579/623] 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] --- 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 @@ com.h3xstream.findsecbugs findsecbugs-plugin - 1.13.0 + 1.14.0 From 53beaa1b6c5a8bf2125d1dee5ae0550b5581773b Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Tue, 6 May 2025 14:49:21 +0200 Subject: [PATCH 580/623] 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 @@ org.springframework.security spring-security-web - 6.4.4 + 6.4.5 test 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 @@ - 6.2.5 - 6.4.4 + 6.2.6 + 6.4.5 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 @@ 2.1.4-SNAPSHOT - 6.2.5 - 3.4.4 - 6.4.4 + 6.2.6 + 3.4.5 + 6.4.5 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 @@ 1.8 1.8 - 6.2.5 + 6.2.6 5.12.1 2.24.2 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 @@ org.springframework.boot spring-boot-starter-parent - 3.4.4 + 3.4.5 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 @@ - 6.2.5 + 6.2.6 2.24.3 17 17 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 @@ org.springframework.boot spring-boot-starter-parent - 3.4.4 + 3.4.5 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 @@ org.springframework.boot spring-boot-starter-parent - 3.4.4 + 3.4.5 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 @@ org.springframework.boot spring-boot-starter-parent - 3.4.4 + 3.4.5 com.amazonaws.serverless.sample 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 @@ org.springframework.boot spring-boot-starter-parent - 3.4.4 + 3.4.5 From 36bdfb8c12576b13adb8d273538916526c3496ac Mon Sep 17 00:00:00 2001 From: Dennis Kieselhorst Date: Tue, 6 May 2025 21:29:03 +0200 Subject: [PATCH 581/623] 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 582/623] 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] --- 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 @@ org.apache.maven.archetype archetype-packaging - 3.3.1 + 3.4.0 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 583/623] 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] --- 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 @@ org.apache.maven.plugins maven-archetype-plugin - 3.3.1 + 3.4.0 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 584/623] 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] --- 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 @@ org.apache.maven.plugins maven-archetype-plugin - 3.3.1 + 3.4.0 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 585/623] 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] --- 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 @@ org.apache.maven.archetype archetype-packaging - 3.3.1 + 3.4.0 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 586/623] 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] --- 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 @@ org.apache.maven.plugins maven-archetype-plugin - 3.3.1 + 3.4.0 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 587/623] 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] --- 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 @@ org.apache.maven.archetype archetype-packaging - 3.3.1 + 3.4.0 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 588/623] 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] --- 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 @@ org.apache.httpcomponents.client5 httpclient5 - 5.4.3 + 5.5 test 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 589/623] 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] --- 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 @@ org.springframework.boot spring-boot-starter-parent - 3.4.5 + 3.5.0 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 590/623] 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] --- 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 @@ org.springframework.boot spring-boot-starter-parent - 3.4.5 + 3.5.0 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 591/623] 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] --- 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 @@ org.springframework.boot spring-boot-starter-parent - 3.4.5 + 3.5.0 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 592/623] 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] --- .../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 593/623] 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] --- .../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 594/623] 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] --- .../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 595/623] 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] --- 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 @@ 0.7 12.1.1 - 2.18.3 + 2.19.1 2.0.17 5.12.2 5.17.0 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 @@ 1.8 1.8 3.1.10 - 2.18.3 + 2.19.1 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 596/623] 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] --- 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 @@ - 6.2.6 + 6.2.8 6.4.5 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 @@ 2.1.4-SNAPSHOT - 6.2.6 + 6.2.8 3.4.5 6.4.5 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 @@ - 6.2.6 + 6.2.8 2.24.3 17 17 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 597/623] 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] --- 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 @@ 6.2.8 - 6.4.5 + 6.5.1 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 598/623] 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] --- 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 @@ org.springframework.security spring-security-web - 6.4.5 + 6.5.1 test 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 @@ 6.2.8 - 6.4.5 + 6.5.1 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 599/623] 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] --- .../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 600/623] 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] --- .../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 601/623] 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] --- .../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 Date: Tue, 17 Jun 2025 16:31:10 -0700 Subject: [PATCH 602/623] 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> 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 Date: Tue, 17 Jun 2025 16:01:32 -0700 Subject: [PATCH 603/623] 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 @@ org.apache.commons commons-fileupload2-jakarta-servlet6 - 2.0.0-M2 + 2.0.0-M4 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> getMultipartFormParametersMap() { + protected Map> getMultipartFormParametersMap() throws RuntimeException { if (multipartFormParameters != null) { return multipartFormParameters; } @@ -511,19 +511,20 @@ protected Map> getMultipartFormParametersMap() { List items = upload.parseRequest(this); for (FileItem 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 604/623] 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> 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 Date: Wed, 18 Jun 2025 06:52:31 -0700 Subject: [PATCH 605/623] 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> getMultipartFormParametersMap() throws RuntimeException { + protected Map> getMultipartFormParametersMap() throws IOException { if (multipartFormParameters != null) { return multipartFormParameters; } @@ -523,7 +523,7 @@ protected Map> 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 Date: Wed, 18 Jun 2025 09:26:39 -0700 Subject: [PATCH 606/623] 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> getMultipartFormParametersMap() throws IOExcep List items = upload.parseRequest(this); for (FileItem 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> 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 Date: Wed, 18 Jun 2025 12:57:43 -0700 Subject: [PATCH 607/623] 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> getMultipartFormParametersMap() throws IOExcep List items = upload.parseRequest(this); for (FileItem 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 Date: Wed, 18 Jun 2025 21:30:07 +0000 Subject: [PATCH 608/623] 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 @@ AWS Serverless Java container support - Core Allows Java applications written for a servlet container to run in AWS Lambda https://aws.amazon.com/lambda - 2.1.4-SNAPSHOT + 2.1.4 com.amazonaws.serverless aws-serverless-java-container - 2.1.4-SNAPSHOT + 2.1.4 .. 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 @@ AWS Serverless Java container support - Jersey implementation Allows Java applications written for Jersey to run in AWS Lambda https://aws.amazon.com/lambda - 2.1.4-SNAPSHOT + 2.1.4 com.amazonaws.serverless aws-serverless-java-container - 2.1.4-SNAPSHOT + 2.1.4 .. @@ -24,7 +24,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.1.4-SNAPSHOT + 2.1.4 com.fasterxml.jackson.core @@ -35,7 +35,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.1.4-SNAPSHOT + 2.1.4 tests test-jar test 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 @@ AWS Serverless Java container support - Spring implementation Allows Java applications written for the Spring framework to run in AWS Lambda https://aws.amazon.com/lambda - 2.1.4-SNAPSHOT + 2.1.4 com.amazonaws.serverless aws-serverless-java-container - 2.1.4-SNAPSHOT + 2.1.4 .. @@ -25,12 +25,12 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.1.4-SNAPSHOT + 2.1.4 com.amazonaws.serverless aws-serverless-java-container-core - 2.1.4-SNAPSHOT + 2.1.4 tests test-jar test 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 @@ aws-serverless-java-container com.amazonaws.serverless - 2.1.4-SNAPSHOT + 2.1.4 4.0.0 @@ -12,7 +12,7 @@ AWS Serverless Java container support - SpringBoot 3 implementation Allows Java applications written for SpringBoot 3 to run in AWS Lambda https://aws.amazon.com/lambda - 2.1.4-SNAPSHOT + 2.1.4 6.2.8 @@ -30,12 +30,12 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.1.4-SNAPSHOT + 2.1.4 com.amazonaws.serverless aws-serverless-java-container-core - 2.1.4-SNAPSHOT + 2.1.4 tests test-jar test 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 @@ com.amazonaws.serverless aws-serverless-java-container - 2.1.4-SNAPSHOT + 2.1.4 com.amazonaws.serverless.archetypes aws-serverless-jersey-archetype - 2.1.4-SNAPSHOT + 2.1.4 maven-archetype https://github.com/aws/serverless-java-container.git - HEAD + aws-serverless-java-container-2.1.4 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 @@ com.amazonaws.serverless aws-serverless-java-container - 2.1.4-SNAPSHOT + 2.1.4 com.amazonaws.serverless.archetypes aws-serverless-spring-archetype - 2.1.4-SNAPSHOT + 2.1.4 maven-archetype https://github.com/aws/serverless-java-container.git - HEAD + aws-serverless-java-container-2.1.4 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 @@ com.amazonaws.serverless aws-serverless-java-container - 2.1.4-SNAPSHOT + 2.1.4 com.amazonaws.serverless.archetypes aws-serverless-springboot3-archetype - 2.1.4-SNAPSHOT + 2.1.4 maven-archetype https://github.com/aws/serverless-java-container.git - HEAD + aws-serverless-java-container-2.1.4 diff --git a/pom.xml b/pom.xml index b780be8ef..6040b24f0 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.amazonaws.serverless aws-serverless-java-container pom - 2.1.4-SNAPSHOT + 2.1.4 AWS Serverless Java container A Java framework to run Spring, Spring Boot, Jersey, Spark, and Struts applications inside AWS Lambda https://github.com/aws/serverless-java-container @@ -37,7 +37,7 @@ https://github.com/aws/serverless-java-container scm:git:https://github.com/aws/serverless-java-container.git - HEAD + aws-serverless-java-container-2.1.4 From e8b5aa73852796dd91de1a5c2d7b2884c213fe89 Mon Sep 17 00:00:00 2001 From: vicheey Date: Wed, 18 Jun 2025 21:30:08 +0000 Subject: [PATCH 609/623] 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 @@ AWS Serverless Java container support - Core Allows Java applications written for a servlet container to run in AWS Lambda https://aws.amazon.com/lambda - 2.1.4 + 2.1.5-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container - 2.1.4 + 2.1.5-SNAPSHOT .. 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 @@ AWS Serverless Java container support - Jersey implementation Allows Java applications written for Jersey to run in AWS Lambda https://aws.amazon.com/lambda - 2.1.4 + 2.1.5-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container - 2.1.4 + 2.1.5-SNAPSHOT .. @@ -24,7 +24,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.1.4 + 2.1.5-SNAPSHOT com.fasterxml.jackson.core @@ -35,7 +35,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.1.4 + 2.1.5-SNAPSHOT tests test-jar test 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 @@ AWS Serverless Java container support - Spring implementation Allows Java applications written for the Spring framework to run in AWS Lambda https://aws.amazon.com/lambda - 2.1.4 + 2.1.5-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container - 2.1.4 + 2.1.5-SNAPSHOT .. @@ -25,12 +25,12 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.1.4 + 2.1.5-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container-core - 2.1.4 + 2.1.5-SNAPSHOT tests test-jar test 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 @@ aws-serverless-java-container com.amazonaws.serverless - 2.1.4 + 2.1.5-SNAPSHOT 4.0.0 @@ -12,7 +12,7 @@ AWS Serverless Java container support - SpringBoot 3 implementation Allows Java applications written for SpringBoot 3 to run in AWS Lambda https://aws.amazon.com/lambda - 2.1.4 + 2.1.5-SNAPSHOT 6.2.8 @@ -30,12 +30,12 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.1.4 + 2.1.5-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container-core - 2.1.4 + 2.1.5-SNAPSHOT tests test-jar test 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 @@ com.amazonaws.serverless aws-serverless-java-container - 2.1.4 + 2.1.5-SNAPSHOT com.amazonaws.serverless.archetypes aws-serverless-jersey-archetype - 2.1.4 + 2.1.5-SNAPSHOT maven-archetype https://github.com/aws/serverless-java-container.git - aws-serverless-java-container-2.1.4 + HEAD 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 @@ com.amazonaws.serverless aws-serverless-java-container - 2.1.4 + 2.1.5-SNAPSHOT com.amazonaws.serverless.archetypes aws-serverless-spring-archetype - 2.1.4 + 2.1.5-SNAPSHOT maven-archetype https://github.com/aws/serverless-java-container.git - aws-serverless-java-container-2.1.4 + HEAD 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 @@ com.amazonaws.serverless aws-serverless-java-container - 2.1.4 + 2.1.5-SNAPSHOT com.amazonaws.serverless.archetypes aws-serverless-springboot3-archetype - 2.1.4 + 2.1.5-SNAPSHOT maven-archetype https://github.com/aws/serverless-java-container.git - aws-serverless-java-container-2.1.4 + HEAD diff --git a/pom.xml b/pom.xml index 6040b24f0..dd73a0404 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.amazonaws.serverless aws-serverless-java-container pom - 2.1.4 + 2.1.5-SNAPSHOT AWS Serverless Java container A Java framework to run Spring, Spring Boot, Jersey, Spark, and Struts applications inside AWS Lambda https://github.com/aws/serverless-java-container @@ -37,7 +37,7 @@ https://github.com/aws/serverless-java-container scm:git:https://github.com/aws/serverless-java-container.git - aws-serverless-java-container-2.1.4 + HEAD From 18a067ef56a01fb48b980e74d0c73ee121023264 Mon Sep 17 00:00:00 2001 From: ekruczek Date: Mon, 15 Sep 2025 23:10:39 +0200 Subject: [PATCH 610/623] fix: headers with null values removed from response (#1523) Co-authored-by: Emil Kruczek --- .../proxy/internal/servlet/AwsHttpServletResponse.java | 9 ++++++--- .../internal/servlet/AwsHttpServletResponseTest.java | 10 ++++++++++ 2 files changed, 16 insertions(+), 3 deletions(-) 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 86a72ead6..f5395a0bf 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 @@ -496,9 +496,12 @@ private void setHeader(String key, String value, boolean overwrite) { values = new ArrayList<>(); } - values.add(encodedValue); - - headers.put(encodedKey, values); + if (value == null && overwrite) { + headers.remove(encodedKey); + } else if (value != null) { + values.add(encodedValue); + headers.put(encodedKey, values); + } } private boolean canSetHeader() { 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 88d2a5e74..143caab69 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 @@ -173,6 +173,16 @@ void responseHeaders_getAwsResponseHeaders_expectLatestHeader() { assertEquals("application/xml", awsResp.getFirst(HttpHeaders.CONTENT_TYPE)); } + @Test + void responseHeaders_setHeaderWithNullValue_expectHeaderRemoved() { + AwsHttpServletResponse resp = new AwsHttpServletResponse(null, null); + resp.setHeader(HttpHeaders.CONTENT_DISPOSITION, "inline"); + resp.setHeader(HttpHeaders.CONTENT_DISPOSITION, null); + + Headers awsResp = resp.getAwsResponseHeaders(); + assertEquals(0, awsResp.size()); + } + @Test void responseHeaders_getAwsResponseHeaders_expectedMultpleCookieHeaders() { AwsHttpServletResponse resp = new AwsHttpServletResponse(null, null); From 30af781d5e143f390db9963a4fd6812f60fd8ff7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 18 Sep 2025 15:18:52 -0700 Subject: [PATCH 611/623] chore(deps): bump com.amazonaws:aws-lambda-java-core from 1.2.3 to 1.4.0 (#1524) Bumps [com.amazonaws:aws-lambda-java-core](https://github.com/aws/aws-lambda-java-libs) from 1.2.3 to 1.4.0. - [Commits](https://github.com/aws/aws-lambda-java-libs/commits) --- updated-dependencies: - dependency-name: com.amazonaws:aws-lambda-java-core dependency-version: 1.4.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.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 9d0ff3cb4..e9aa6bbec 100644 --- a/aws-serverless-java-container-core/pom.xml +++ b/aws-serverless-java-container-core/pom.xml @@ -24,7 +24,7 @@ com.amazonaws aws-lambda-java-core - 1.2.3 + 1.4.0 From a1c920b88173233493015cb28adf243c61adcd63 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 18 Sep 2025 15:23:32 -0700 Subject: [PATCH 612/623] chore(deps-dev): bump org.mockito:mockito-core from 5.17.0 to 5.19.0 (#1517) Bumps [org.mockito:mockito-core](https://github.com/mockito/mockito) from 5.17.0 to 5.19.0. - [Release notes](https://github.com/mockito/mockito/releases) - [Commits](https://github.com/mockito/mockito/compare/v5.17.0...v5.19.0) --- updated-dependencies: - dependency-name: org.mockito:mockito-core dependency-version: 5.19.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index dd73a0404..ebc634fbb 100644 --- a/pom.xml +++ b/pom.xml @@ -81,7 +81,7 @@ 2.19.1 2.0.17 5.12.2 - 5.17.0 + 5.19.0 1.3 UTF-8 From af5a61d177ab2f3d67371d8fcfecbd776daae631 Mon Sep 17 00:00:00 2001 From: reedham-aws Date: Thu, 18 Sep 2025 22:58:53 +0000 Subject: [PATCH 613/623] chore: release - prepare release aws-serverless-java-container-2.1.5 --- 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 e9aa6bbec..bd4318e82 100644 --- a/aws-serverless-java-container-core/pom.xml +++ b/aws-serverless-java-container-core/pom.xml @@ -6,12 +6,12 @@ AWS Serverless Java container support - Core Allows Java applications written for a servlet container to run in AWS Lambda https://aws.amazon.com/lambda - 2.1.5-SNAPSHOT + 2.1.5 com.amazonaws.serverless aws-serverless-java-container - 2.1.5-SNAPSHOT + 2.1.5 .. diff --git a/aws-serverless-java-container-jersey/pom.xml b/aws-serverless-java-container-jersey/pom.xml index 1788a36b8..e90446a3b 100644 --- a/aws-serverless-java-container-jersey/pom.xml +++ b/aws-serverless-java-container-jersey/pom.xml @@ -6,12 +6,12 @@ AWS Serverless Java container support - Jersey implementation Allows Java applications written for Jersey to run in AWS Lambda https://aws.amazon.com/lambda - 2.1.5-SNAPSHOT + 2.1.5 com.amazonaws.serverless aws-serverless-java-container - 2.1.5-SNAPSHOT + 2.1.5 .. @@ -24,7 +24,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.1.5-SNAPSHOT + 2.1.5 com.fasterxml.jackson.core @@ -35,7 +35,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.1.5-SNAPSHOT + 2.1.5 tests test-jar test diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml index f03d9db0a..9ab8a97ec 100644 --- a/aws-serverless-java-container-spring/pom.xml +++ b/aws-serverless-java-container-spring/pom.xml @@ -6,12 +6,12 @@ AWS Serverless Java container support - Spring implementation Allows Java applications written for the Spring framework to run in AWS Lambda https://aws.amazon.com/lambda - 2.1.5-SNAPSHOT + 2.1.5 com.amazonaws.serverless aws-serverless-java-container - 2.1.5-SNAPSHOT + 2.1.5 .. @@ -25,12 +25,12 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.1.5-SNAPSHOT + 2.1.5 com.amazonaws.serverless aws-serverless-java-container-core - 2.1.5-SNAPSHOT + 2.1.5 tests test-jar test diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml index 5dcac1562..a41c3a72d 100644 --- a/aws-serverless-java-container-springboot3/pom.xml +++ b/aws-serverless-java-container-springboot3/pom.xml @@ -3,7 +3,7 @@ aws-serverless-java-container com.amazonaws.serverless - 2.1.5-SNAPSHOT + 2.1.5 4.0.0 @@ -12,7 +12,7 @@ AWS Serverless Java container support - SpringBoot 3 implementation Allows Java applications written for SpringBoot 3 to run in AWS Lambda https://aws.amazon.com/lambda - 2.1.5-SNAPSHOT + 2.1.5 6.2.8 @@ -30,12 +30,12 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.1.5-SNAPSHOT + 2.1.5 com.amazonaws.serverless aws-serverless-java-container-core - 2.1.5-SNAPSHOT + 2.1.5 tests test-jar test diff --git a/aws-serverless-jersey-archetype/pom.xml b/aws-serverless-jersey-archetype/pom.xml index 4afdc9996..9f1862e40 100644 --- a/aws-serverless-jersey-archetype/pom.xml +++ b/aws-serverless-jersey-archetype/pom.xml @@ -4,17 +4,17 @@ com.amazonaws.serverless aws-serverless-java-container - 2.1.5-SNAPSHOT + 2.1.5 com.amazonaws.serverless.archetypes aws-serverless-jersey-archetype - 2.1.5-SNAPSHOT + 2.1.5 maven-archetype https://github.com/aws/serverless-java-container.git - HEAD + aws-serverless-java-container-2.1.5 diff --git a/aws-serverless-spring-archetype/pom.xml b/aws-serverless-spring-archetype/pom.xml index 2a2f59b8b..d3cdb9f15 100644 --- a/aws-serverless-spring-archetype/pom.xml +++ b/aws-serverless-spring-archetype/pom.xml @@ -4,17 +4,17 @@ com.amazonaws.serverless aws-serverless-java-container - 2.1.5-SNAPSHOT + 2.1.5 com.amazonaws.serverless.archetypes aws-serverless-spring-archetype - 2.1.5-SNAPSHOT + 2.1.5 maven-archetype https://github.com/aws/serverless-java-container.git - HEAD + aws-serverless-java-container-2.1.5 diff --git a/aws-serverless-springboot3-archetype/pom.xml b/aws-serverless-springboot3-archetype/pom.xml index 74fac6156..02c3738a9 100644 --- a/aws-serverless-springboot3-archetype/pom.xml +++ b/aws-serverless-springboot3-archetype/pom.xml @@ -4,17 +4,17 @@ com.amazonaws.serverless aws-serverless-java-container - 2.1.5-SNAPSHOT + 2.1.5 com.amazonaws.serverless.archetypes aws-serverless-springboot3-archetype - 2.1.5-SNAPSHOT + 2.1.5 maven-archetype https://github.com/aws/serverless-java-container.git - HEAD + aws-serverless-java-container-2.1.5 diff --git a/pom.xml b/pom.xml index ebc634fbb..c4bb9b906 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.amazonaws.serverless aws-serverless-java-container pom - 2.1.5-SNAPSHOT + 2.1.5 AWS Serverless Java container A Java framework to run Spring, Spring Boot, Jersey, Spark, and Struts applications inside AWS Lambda https://github.com/aws/serverless-java-container @@ -37,7 +37,7 @@ https://github.com/aws/serverless-java-container scm:git:https://github.com/aws/serverless-java-container.git - HEAD + aws-serverless-java-container-2.1.5 From 4696691989cfcd5d8957dbdfc280018aa267c8ba Mon Sep 17 00:00:00 2001 From: reedham-aws Date: Thu, 18 Sep 2025 22:58:55 +0000 Subject: [PATCH 614/623] 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 bd4318e82..e9aa6bbec 100644 --- a/aws-serverless-java-container-core/pom.xml +++ b/aws-serverless-java-container-core/pom.xml @@ -6,12 +6,12 @@ AWS Serverless Java container support - Core Allows Java applications written for a servlet container to run in AWS Lambda https://aws.amazon.com/lambda - 2.1.5 + 2.1.5-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container - 2.1.5 + 2.1.5-SNAPSHOT .. diff --git a/aws-serverless-java-container-jersey/pom.xml b/aws-serverless-java-container-jersey/pom.xml index e90446a3b..1788a36b8 100644 --- a/aws-serverless-java-container-jersey/pom.xml +++ b/aws-serverless-java-container-jersey/pom.xml @@ -6,12 +6,12 @@ AWS Serverless Java container support - Jersey implementation Allows Java applications written for Jersey to run in AWS Lambda https://aws.amazon.com/lambda - 2.1.5 + 2.1.5-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container - 2.1.5 + 2.1.5-SNAPSHOT .. @@ -24,7 +24,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.1.5 + 2.1.5-SNAPSHOT com.fasterxml.jackson.core @@ -35,7 +35,7 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.1.5 + 2.1.5-SNAPSHOT tests test-jar test diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml index 9ab8a97ec..f03d9db0a 100644 --- a/aws-serverless-java-container-spring/pom.xml +++ b/aws-serverless-java-container-spring/pom.xml @@ -6,12 +6,12 @@ AWS Serverless Java container support - Spring implementation Allows Java applications written for the Spring framework to run in AWS Lambda https://aws.amazon.com/lambda - 2.1.5 + 2.1.5-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container - 2.1.5 + 2.1.5-SNAPSHOT .. @@ -25,12 +25,12 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.1.5 + 2.1.5-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container-core - 2.1.5 + 2.1.5-SNAPSHOT tests test-jar test diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml index a41c3a72d..5dcac1562 100644 --- a/aws-serverless-java-container-springboot3/pom.xml +++ b/aws-serverless-java-container-springboot3/pom.xml @@ -3,7 +3,7 @@ aws-serverless-java-container com.amazonaws.serverless - 2.1.5 + 2.1.5-SNAPSHOT 4.0.0 @@ -12,7 +12,7 @@ AWS Serverless Java container support - SpringBoot 3 implementation Allows Java applications written for SpringBoot 3 to run in AWS Lambda https://aws.amazon.com/lambda - 2.1.5 + 2.1.5-SNAPSHOT 6.2.8 @@ -30,12 +30,12 @@ com.amazonaws.serverless aws-serverless-java-container-core - 2.1.5 + 2.1.5-SNAPSHOT com.amazonaws.serverless aws-serverless-java-container-core - 2.1.5 + 2.1.5-SNAPSHOT tests test-jar test diff --git a/aws-serverless-jersey-archetype/pom.xml b/aws-serverless-jersey-archetype/pom.xml index 9f1862e40..4afdc9996 100644 --- a/aws-serverless-jersey-archetype/pom.xml +++ b/aws-serverless-jersey-archetype/pom.xml @@ -4,17 +4,17 @@ com.amazonaws.serverless aws-serverless-java-container - 2.1.5 + 2.1.5-SNAPSHOT com.amazonaws.serverless.archetypes aws-serverless-jersey-archetype - 2.1.5 + 2.1.5-SNAPSHOT maven-archetype https://github.com/aws/serverless-java-container.git - aws-serverless-java-container-2.1.5 + HEAD diff --git a/aws-serverless-spring-archetype/pom.xml b/aws-serverless-spring-archetype/pom.xml index d3cdb9f15..2a2f59b8b 100644 --- a/aws-serverless-spring-archetype/pom.xml +++ b/aws-serverless-spring-archetype/pom.xml @@ -4,17 +4,17 @@ com.amazonaws.serverless aws-serverless-java-container - 2.1.5 + 2.1.5-SNAPSHOT com.amazonaws.serverless.archetypes aws-serverless-spring-archetype - 2.1.5 + 2.1.5-SNAPSHOT maven-archetype https://github.com/aws/serverless-java-container.git - aws-serverless-java-container-2.1.5 + HEAD diff --git a/aws-serverless-springboot3-archetype/pom.xml b/aws-serverless-springboot3-archetype/pom.xml index 02c3738a9..74fac6156 100644 --- a/aws-serverless-springboot3-archetype/pom.xml +++ b/aws-serverless-springboot3-archetype/pom.xml @@ -4,17 +4,17 @@ com.amazonaws.serverless aws-serverless-java-container - 2.1.5 + 2.1.5-SNAPSHOT com.amazonaws.serverless.archetypes aws-serverless-springboot3-archetype - 2.1.5 + 2.1.5-SNAPSHOT maven-archetype https://github.com/aws/serverless-java-container.git - aws-serverless-java-container-2.1.5 + HEAD diff --git a/pom.xml b/pom.xml index c4bb9b906..ebc634fbb 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.amazonaws.serverless aws-serverless-java-container pom - 2.1.5 + 2.1.5-SNAPSHOT AWS Serverless Java container A Java framework to run Spring, Spring Boot, Jersey, Spark, and Struts applications inside AWS Lambda https://github.com/aws/serverless-java-container @@ -37,7 +37,7 @@ https://github.com/aws/serverless-java-container scm:git:https://github.com/aws/serverless-java-container.git - aws-serverless-java-container-2.1.5 + HEAD From a55a57af609c71c03142c6a9b62bb432746aca29 Mon Sep 17 00:00:00 2001 From: Adnan Khan Date: Tue, 21 Oct 2025 17:26:15 -0400 Subject: [PATCH 615/623] ci: scope down permissions for owasp-dependency-check.yml --- .github/workflows/owasp-dependency-check.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/owasp-dependency-check.yml b/.github/workflows/owasp-dependency-check.yml index fa2657740..b7df2a770 100644 --- a/.github/workflows/owasp-dependency-check.yml +++ b/.github/workflows/owasp-dependency-check.yml @@ -3,6 +3,9 @@ on: schedule: - cron: "10 10 * * 3" +permissions: + contents: read + jobs: owasp-dependency-check: name: Verify dependencies with OWASP checker From 0c2f8dfe6a61d5b1ac73a1a85832e67241af6fce Mon Sep 17 00:00:00 2001 From: Adnan Khan Date: Tue, 21 Oct 2025 17:26:17 -0400 Subject: [PATCH 616/623] ci: scope down permissions for release.yml --- .github/workflows/release.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 7ff2bea79..9faff653b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -10,6 +10,9 @@ on: description: "Version to use for further development" required: true default: "X.Y.Z-SNAPSHOT" +permissions: + contents: write + jobs: release: runs-on: ubuntu-latest From 2816aae7a701bc0c934b050fc0f067a34d36c6a4 Mon Sep 17 00:00:00 2001 From: Adnan Khan Date: Tue, 21 Oct 2025 17:26:19 -0400 Subject: [PATCH 617/623] ci: scope down permissions for continuous-integration-workflow.yml --- .github/workflows/continuous-integration-workflow.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/continuous-integration-workflow.yml b/.github/workflows/continuous-integration-workflow.yml index 2785cd3dc..08fe294d4 100644 --- a/.github/workflows/continuous-integration-workflow.yml +++ b/.github/workflows/continuous-integration-workflow.yml @@ -8,6 +8,9 @@ on: - 1.x workflow_dispatch: +permissions: + contents: read + jobs: build_core: name: Build and test core From 8f98eea56204fb51194f0007452877829eb93f74 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 Oct 2025 04:18:39 +0000 Subject: [PATCH 618/623] chore(deps): bump org.springframework.boot:spring-boot-starter-web Bumps [org.springframework.boot:spring-boot-starter-web](https://github.com/spring-projects/spring-boot) from 3.4.5 to 3.5.7. - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.4.5...v3.5.7) --- updated-dependencies: - dependency-name: org.springframework.boot:spring-boot-starter-web dependency-version: 3.5.7 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- samples/springboot3/alt-pet-store/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/springboot3/alt-pet-store/build.gradle b/samples/springboot3/alt-pet-store/build.gradle index 653135db0..d2c99b907 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.5') { + implementation('org.springframework.boot:spring-boot-starter-web:3.5.7') { exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat' }, 'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)', From 890ee2d77ec981ef5bdef58182381eff62008fdb Mon Sep 17 00:00:00 2001 From: andreossido Date: Wed, 12 Nov 2025 10:04:10 +0100 Subject: [PATCH 619/623] fix: added missing main class to SpringApplicationBuilder (#1580) fix: replaced `AnnotationConfigServletWebServerApplicationContext` with `ConfigurableWebApplicationContext` (#1580) --- .../proxy/spring/SpringBootLambdaContainerHandler.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) 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 6b3dd5ca2..cf4e5842f 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 @@ -18,7 +18,7 @@ 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.web.context.ConfigurableWebApplicationContext; import org.springframework.context.ConfigurableApplicationContext; import com.amazonaws.serverless.exceptions.ContainerInitializationException; @@ -192,12 +192,15 @@ public void initialize() SpringApplicationBuilder builder = new SpringApplicationBuilder(getEmbeddedContainerClasses()) .web(springWebApplicationType); // .REACTIVE, .SERVLET + if(springBootInitializer != null) { + builder.main(springBootInitializer); + } if (springProfiles != null) { builder.profiles(springProfiles); } applicationContext = builder.run(); if (springWebApplicationType == WebApplicationType.SERVLET) { - ((AnnotationConfigServletWebServerApplicationContext)applicationContext).setServletContext(getServletContext()); + ((ConfigurableWebApplicationContext)applicationContext).setServletContext(getServletContext()); AwsServletRegistration reg = (AwsServletRegistration)getServletContext().getServletRegistration(DISPATCHER_SERVLET_REGISTRATION_NAME); if (reg != null) { reg.setLoadOnStartup(1); From 9c18414d5ce24b86bfd33055b57b97e88bc485d1 Mon Sep 17 00:00:00 2001 From: tobixlea Date: Thu, 11 Dec 2025 12:53:52 -0800 Subject: [PATCH 620/623] update spring boot to version v3.5 to prepare support for v4.0 --- 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 5dcac1562..dc9ffca03 100644 --- a/aws-serverless-java-container-springboot3/pom.xml +++ b/aws-serverless-java-container-springboot3/pom.xml @@ -16,7 +16,7 @@ 6.2.8 - 3.4.5 + 3.5.8 6.4.5 From 9a02c12505057042c254f1155678e7ba957dc00c Mon Sep 17 00:00:00 2001 From: tobixlea Date: Thu, 11 Dec 2025 15:02:06 -0800 Subject: [PATCH 621/623] verify sample projects work; update dockerfile architecture --- samples/springboot3/pet-store-native/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/springboot3/pet-store-native/Dockerfile b/samples/springboot3/pet-store-native/Dockerfile index 4fb614e3f..7d5833bfe 100644 --- a/samples/springboot3/pet-store-native/Dockerfile +++ b/samples/springboot3/pet-store-native/Dockerfile @@ -8,7 +8,7 @@ RUN yum -y update \ # Graal VM ENV GRAAL_VERSION 21.0.2 -ENV ARCHITECTURE x64 +ENV ARCHITECTURE aarch64 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 From 397e459903ecb2ab0bf1057cd21c393f08df0c56 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 11 Dec 2025 23:23:45 +0000 Subject: [PATCH 622/623] chore(deps): bump org.springframework:spring-webmvc Bumps [org.springframework:spring-webmvc](https://github.com/spring-projects/spring-framework) from 6.2.8 to 6.2.10. - [Release notes](https://github.com/spring-projects/spring-framework/releases) - [Commits](https://github.com/spring-projects/spring-framework/compare/v6.2.8...v6.2.10) --- updated-dependencies: - dependency-name: org.springframework:spring-webmvc dependency-version: 6.2.10 dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- 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 3603df159..27a49d371 100644 --- a/samples/spring/pet-store/pom.xml +++ b/samples/spring/pet-store/pom.xml @@ -24,7 +24,7 @@ - 6.2.8 + 6.2.10 2.24.3 17 17 From 27d2f8df47f68edd55821fe9684e8c693401661b Mon Sep 17 00:00:00 2001 From: andreossido Date: Tue, 13 Jan 2026 12:31:14 +0100 Subject: [PATCH 623/623] test: added unit tests for `SpringBootLambdaContainerHandler.initialize` --- .../SpringBootLambdaContainerHandler.java | 5 +- .../SpringBootLambdaContainerHandlerTest.java | 76 +++++++++++++++++++ 2 files changed, 80 insertions(+), 1 deletion(-) create mode 100644 aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/SpringBootLambdaContainerHandlerTest.java 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 cf4e5842f..45bf28efe 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 @@ -184,13 +184,16 @@ protected void handleRequest(HttpServletRequest containerRequest, AwsHttpServlet Timer.stop("SPRINGBOOT2_HANDLE_REQUEST"); } + SpringApplicationBuilder getSpringApplicationBuilder(Class... sources) { + return new SpringApplicationBuilder(sources); + } @Override public void initialize() throws ContainerInitializationException { Timer.start("SPRINGBOOT2_COLD_START"); - SpringApplicationBuilder builder = new SpringApplicationBuilder(getEmbeddedContainerClasses()) + SpringApplicationBuilder builder = getSpringApplicationBuilder(getEmbeddedContainerClasses()) .web(springWebApplicationType); // .REACTIVE, .SERVLET if(springBootInitializer != null) { builder.main(springBootInitializer); diff --git a/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/SpringBootLambdaContainerHandlerTest.java b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/SpringBootLambdaContainerHandlerTest.java new file mode 100644 index 000000000..871a751bb --- /dev/null +++ b/aws-serverless-java-container-springboot3/src/test/java/com/amazonaws/serverless/proxy/spring/SpringBootLambdaContainerHandlerTest.java @@ -0,0 +1,76 @@ +package com.amazonaws.serverless.proxy.spring; + +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.doAnswer; +import static org.mockito.Mockito.never; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; + +import com.amazonaws.serverless.exceptions.ContainerInitializationException; +import com.amazonaws.serverless.proxy.AwsProxyExceptionHandler; +import com.amazonaws.serverless.proxy.AwsProxySecurityContextWriter; +import com.amazonaws.serverless.proxy.InitializationWrapper; +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.spring.servletapp.ServletApplication; +import com.amazonaws.serverless.proxy.spring.webfluxapp.WebFluxTestApplication; +import java.util.Collection; +import java.util.List; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.EnumSource; +import org.junit.jupiter.params.provider.MethodSource; +import org.mockito.Mockito; +import org.springframework.boot.WebApplicationType; +import org.springframework.boot.builder.SpringApplicationBuilder; + +class SpringBootLambdaContainerHandlerTest { + + SpringBootLambdaContainerHandler handler; + SpringApplicationBuilder springApplicationBuilder; + + public static Collection data() { + return List.of(new TestData(WebApplicationType.SERVLET, ServletApplication.class), + new TestData(WebApplicationType.REACTIVE, WebFluxTestApplication.class)); + } + + private void initSpringBootLambdaContainerHandlerTest(Class springBootInitializer, + WebApplicationType applicationType) { + handler = Mockito.spy(new SpringBootLambdaContainerHandler<>(AwsProxyRequest.class, + AwsProxyResponse.class, + new AwsProxyHttpServletRequestReader(), + new AwsProxyHttpServletResponseWriter(), + new AwsProxySecurityContextWriter(), + new AwsProxyExceptionHandler(), + springBootInitializer, + new InitializationWrapper(), + applicationType)); + + doAnswer(d -> { + springApplicationBuilder = ((SpringApplicationBuilder) Mockito.spy(d.callRealMethod())); + return springApplicationBuilder; + }).when(handler).getSpringApplicationBuilder(any(Class[].class)); + } + + @ParameterizedTest + @MethodSource("data") + void initialize_withSpringBootInitializer(TestData data) throws ContainerInitializationException { + initSpringBootLambdaContainerHandlerTest(data.springBootApplication(), data.applicationType()); + handler.initialize(); + + verify(springApplicationBuilder, times(1)).main(data.springBootApplication()); + } + + @ParameterizedTest + @EnumSource(WebApplicationType.class) + void initialize_withoutSpringBootInitializer(WebApplicationType webApplicationType) { + initSpringBootLambdaContainerHandlerTest(null, webApplicationType); + assertThrows(IllegalArgumentException.class, handler::initialize, "Source must not be null"); + + verify(springApplicationBuilder, never()).main(any()); + } + + record TestData(WebApplicationType applicationType, Class springBootApplication) {} +} \ No newline at end of file