Skip to content

Commit 905aa4b

Browse files
committed
Migrated to AwsProxyResponseEvent
1 parent abc09a8 commit 905aa4b

File tree

49 files changed

+316
-451
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+316
-451
lines changed

aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/AwsAlbExceptionHandler.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
import com.amazonaws.serverless.exceptions.InvalidRequestEventException;
44
import com.amazonaws.serverless.proxy.internal.LambdaContainerHandler;
5-
import com.amazonaws.serverless.proxy.model.AwsProxyResponse;
65
import com.amazonaws.serverless.proxy.model.ErrorModel;
6+
import com.amazonaws.services.lambda.runtime.events.AwsProxyResponseEvent;
77
import com.fasterxml.jackson.core.JsonProcessingException;
88
import jakarta.ws.rs.InternalServerErrorException;
99
import jakarta.ws.rs.core.HttpHeaders;
@@ -18,7 +18,7 @@
1818
import java.util.List;
1919
import java.util.Map;
2020

21-
public class AwsAlbExceptionHandler implements ExceptionHandler<AwsProxyResponse>{
21+
public class AwsAlbExceptionHandler implements ExceptionHandler<AwsProxyResponseEvent>{
2222

2323
private Logger log = LoggerFactory.getLogger(AwsAlbExceptionHandler.class);
2424

@@ -46,13 +46,13 @@ public class AwsAlbExceptionHandler implements ExceptionHandler<AwsProxyResponse
4646
headers.put(HttpHeaders.CONTENT_TYPE, values);
4747
}
4848
@Override
49-
public AwsProxyResponse handle(Throwable ex) {
49+
public AwsProxyResponseEvent handle(Throwable ex) {
5050
log.error("Called exception handler for:", ex);
5151

5252
// adding a print stack trace in case we have no appender or we are running inside SAM local, where need the
5353
// output to go to the stderr.
5454
ex.printStackTrace();
55-
AwsProxyResponse responseEvent = new AwsProxyResponse();
55+
AwsProxyResponseEvent responseEvent = new AwsProxyResponseEvent();
5656

5757
responseEvent.setMultiValueHeaders(headers);
5858
if (ex instanceof InvalidRequestEventException || ex instanceof InternalServerErrorException) {
@@ -69,7 +69,7 @@ public AwsProxyResponse handle(Throwable ex) {
6969

7070
@Override
7171
public void handle(Throwable ex, OutputStream stream) throws IOException {
72-
AwsProxyResponse response = handle(ex);
72+
AwsProxyResponseEvent response = handle(ex);
7373

7474
LambdaContainerHandler.getObjectMapper().writeValue(stream, response);
7575
}

aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/AwsProxyExceptionHandler.java

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,10 @@
1414

1515
import com.amazonaws.serverless.exceptions.InvalidRequestEventException;
1616
import com.amazonaws.serverless.proxy.internal.LambdaContainerHandler;
17-
import com.amazonaws.serverless.proxy.model.AwsProxyResponse;
1817
import com.amazonaws.serverless.proxy.model.ErrorModel;
1918
import com.amazonaws.serverless.proxy.model.Headers;
2019

20+
import com.amazonaws.services.lambda.runtime.events.AwsProxyResponseEvent;
2121
import com.fasterxml.jackson.core.JsonProcessingException;
2222
import org.slf4j.Logger;
2323
import org.slf4j.LoggerFactory;
@@ -39,7 +39,7 @@
3939
* @see ExceptionHandler
4040
*/
4141
public class AwsProxyExceptionHandler
42-
implements ExceptionHandler<AwsProxyResponse> {
42+
implements ExceptionHandler<AwsProxyResponseEvent> {
4343

4444
private Logger log = LoggerFactory.getLogger(AwsProxyExceptionHandler.class);
4545

@@ -72,23 +72,29 @@ public class AwsProxyExceptionHandler
7272

7373

7474
@Override
75-
public AwsProxyResponse handle(Throwable ex) {
75+
public AwsProxyResponseEvent handle(Throwable ex) {
7676
log.error("Called exception handler for:", ex);
7777

7878
// adding a print stack trace in case we have no appender or we are running inside SAM local, where need the
7979
// output to go to the stderr.
8080
ex.printStackTrace();
81+
AwsProxyResponseEvent responseEvent = new AwsProxyResponseEvent();
82+
responseEvent.setMultiValueHeaders(headers);
8183
if (ex instanceof InvalidRequestEventException || ex instanceof InternalServerErrorException) {
82-
return new AwsProxyResponse(500, headers, getErrorJson(INTERNAL_SERVER_ERROR));
84+
responseEvent.setBody(getErrorJson(INTERNAL_SERVER_ERROR));
85+
responseEvent.setStatusCode(500);
86+
return responseEvent;
8387
} else {
84-
return new AwsProxyResponse(502, headers, getErrorJson(GATEWAY_TIMEOUT_ERROR));
88+
responseEvent.setBody(getErrorJson(GATEWAY_TIMEOUT_ERROR));
89+
responseEvent.setStatusCode(502);
90+
return responseEvent;
8591
}
8692
}
8793

8894

8995
@Override
9096
public void handle(Throwable ex, OutputStream stream) throws IOException {
91-
AwsProxyResponse response = handle(ex);
97+
AwsProxyResponseEvent response = handle(ex);
9298

9399
LambdaContainerHandler.getObjectMapper().writeValue(stream, response);
94100
}

aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsAlbHttpServletRequest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ public AwsAlbHttpServletRequest(ApplicationLoadBalancerRequestEvent albRequest,
4646
this.config = config;
4747
}
4848

49-
public ApplicationLoadBalancerRequestEvent getAwsProxyRequest() {
49+
public ApplicationLoadBalancerRequestEvent getAlbRequest() {
5050
return this.request;
5151
}
5252
@Override

aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsAlbHttpServletResponseWriter.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,16 @@
44
import com.amazonaws.serverless.proxy.ResponseWriter;
55
import com.amazonaws.serverless.proxy.internal.LambdaContainerHandler;
66
import com.amazonaws.serverless.proxy.internal.testutils.Timer;
7-
import com.amazonaws.serverless.proxy.model.AwsProxyResponse;
87
import com.amazonaws.serverless.proxy.model.Headers;
98
import com.amazonaws.services.lambda.runtime.Context;
9+
import com.amazonaws.services.lambda.runtime.events.AwsProxyResponseEvent;
1010
import jakarta.ws.rs.core.Response;
1111

1212
import java.util.Base64;
1313
import java.util.HashMap;
1414
import java.util.Map;
1515

16-
public class AwsAlbHttpServletResponseWriter extends ResponseWriter<AwsHttpServletResponse, AwsProxyResponse> {
16+
public class AwsAlbHttpServletResponseWriter extends ResponseWriter<AwsHttpServletResponse, AwsProxyResponseEvent> {
1717

1818
private boolean writeSingleValueHeaders;
1919

@@ -26,17 +26,17 @@ public AwsAlbHttpServletResponseWriter(boolean singleValueHeaders) {
2626
}
2727

2828
@Override
29-
public AwsProxyResponse writeResponse(AwsHttpServletResponse containerResponse, Context lambdaContext) throws InvalidResponseObjectException {
29+
public AwsProxyResponseEvent writeResponse(AwsHttpServletResponse containerResponse, Context lambdaContext) throws InvalidResponseObjectException {
3030
Timer.start("SERVLET_RESPONSE_WRITE");
31-
AwsProxyResponse awsProxyResponse = new AwsProxyResponse();
31+
AwsProxyResponseEvent awsProxyResponse = new AwsProxyResponseEvent();
3232
if (containerResponse.getAwsResponseBodyString() != null) {
3333
String responseString;
3434

3535
if (!isBinary(containerResponse.getContentType()) && isValidUtf8(containerResponse.getAwsResponseBodyBytes())) {
3636
responseString = containerResponse.getAwsResponseBodyString();
3737
} else {
3838
responseString = Base64.getEncoder().encodeToString(containerResponse.getAwsResponseBodyBytes());
39-
awsProxyResponse.setBase64Encoded(true);
39+
awsProxyResponse.setIsBase64Encoded(true);
4040
}
4141

4242
awsProxyResponse.setBody(responseString);

aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletResponseWriter.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@
1717
import com.amazonaws.serverless.proxy.ResponseWriter;
1818
import com.amazonaws.serverless.proxy.internal.LambdaContainerHandler;
1919
import com.amazonaws.serverless.proxy.internal.testutils.Timer;
20-
import com.amazonaws.serverless.proxy.model.AwsProxyResponse;
2120
import com.amazonaws.serverless.proxy.model.Headers;
2221
import com.amazonaws.services.lambda.runtime.Context;
22+
import com.amazonaws.services.lambda.runtime.events.AwsProxyResponseEvent;
2323

2424
import java.util.Base64;
2525
import java.util.HashMap;
@@ -30,7 +30,7 @@
3030
* Creates an <code>AwsProxyResponse</code> object given an <code>AwsHttpServletResponse</code> object. If the
3131
* response is not populated with a status code we infer a default 200 status code.
3232
*/
33-
public class AwsProxyHttpServletResponseWriter extends ResponseWriter<AwsHttpServletResponse, AwsProxyResponse> {
33+
public class AwsProxyHttpServletResponseWriter extends ResponseWriter<AwsHttpServletResponse, AwsProxyResponseEvent> {
3434

3535
private boolean writeSingleValueHeaders;
3636

@@ -47,18 +47,18 @@ public AwsProxyHttpServletResponseWriter(boolean singleValueHeaders) {
4747
//-------------------------------------------------------------
4848

4949
@Override
50-
public AwsProxyResponse writeResponse(AwsHttpServletResponse containerResponse, Context lambdaContext)
50+
public AwsProxyResponseEvent writeResponse(AwsHttpServletResponse containerResponse, Context lambdaContext)
5151
throws InvalidResponseObjectException {
5252
Timer.start("SERVLET_RESPONSE_WRITE");
53-
AwsProxyResponse awsProxyResponse = new AwsProxyResponse();
53+
AwsProxyResponseEvent awsProxyResponse = new AwsProxyResponseEvent();
5454
if (containerResponse.getAwsResponseBodyString() != null) {
5555
String responseString;
5656

5757
if (!isBinary(containerResponse.getContentType()) && isValidUtf8(containerResponse.getAwsResponseBodyBytes())) {
5858
responseString = containerResponse.getAwsResponseBodyString();
5959
} else {
6060
responseString = Base64.getEncoder().encodeToString(containerResponse.getAwsResponseBodyBytes());
61-
awsProxyResponse.setBase64Encoded(true);
61+
awsProxyResponse.setIsBase64Encoded(true);
6262
}
6363

6464
awsProxyResponse.setBody(responseString);

aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/ServletLambdaContainerHandlerBuilder.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@
1414

1515
import com.amazonaws.serverless.exceptions.ContainerInitializationException;
1616
import com.amazonaws.serverless.proxy.*;
17-
import com.amazonaws.serverless.proxy.model.AwsProxyResponse;
1817

1918
import com.amazonaws.services.lambda.runtime.events.ApplicationLoadBalancerRequestEvent;
19+
import com.amazonaws.services.lambda.runtime.events.AwsProxyResponseEvent;
2020
import com.amazonaws.services.lambda.runtime.events.apigateway.APIGatewayProxyRequestEvent;
2121
import com.amazonaws.services.lambda.runtime.events.apigateway.APIGatewayV2HTTPEvent;
2222
import jakarta.servlet.http.HttpServletRequest;
@@ -99,7 +99,7 @@ public Builder defaultProxy() {
9999
.securityContextWriter((SecurityContextWriter<RequestType>) new AwsProxySecurityContextWriter())
100100
.exceptionHandler((ExceptionHandler<ResponseType>) new AwsProxyExceptionHandler())
101101
.requestTypeClass((Class<RequestType>) APIGatewayProxyRequestEvent.class)
102-
.responseTypeClass((Class<ResponseType>) AwsProxyResponse.class);
102+
.responseTypeClass((Class<ResponseType>) AwsProxyResponseEvent.class);
103103
return self();
104104
}
105105

@@ -110,7 +110,7 @@ public Builder defaultAlbProxy() {
110110
.securityContextWriter((SecurityContextWriter<RequestType>) new AwsAlbSecurityContextWriter())
111111
.exceptionHandler((ExceptionHandler<ResponseType>) new AwsAlbExceptionHandler())
112112
.requestTypeClass((Class<RequestType>) ApplicationLoadBalancerRequestEvent.class)
113-
.responseTypeClass((Class<ResponseType>) AwsProxyResponse.class);
113+
.responseTypeClass((Class<ResponseType>) AwsProxyResponseEvent.class);
114114
return self();
115115
}
116116

@@ -126,7 +126,7 @@ public Builder defaultHttpApiV2Proxy() {
126126
.securityContextWriter((SecurityContextWriter<RequestType>) new AwsHttpApiV2SecurityContextWriter())
127127
.exceptionHandler((ExceptionHandler<ResponseType>) new AwsProxyExceptionHandler())
128128
.requestTypeClass((Class<RequestType>) APIGatewayV2HTTPEvent.class)
129-
.responseTypeClass((Class<ResponseType>) AwsProxyResponse.class);
129+
.responseTypeClass((Class<ResponseType>) AwsProxyResponseEvent.class);
130130
return self();
131131

132132
}

aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/model/AwsProxyResponse.java

Lines changed: 0 additions & 142 deletions
This file was deleted.

0 commit comments

Comments
 (0)