Skip to content

Commit 26d0db0

Browse files
committed
Changed import of exception handler in main handlers implementations
1 parent 5708da6 commit 26d0db0

File tree

4 files changed

+26
-18
lines changed

4 files changed

+26
-18
lines changed

aws-serverless-java-container-jersey/src/main/java/com/amazonaws/serverless/proxy/jersey/JerseyLambdaContainerHandler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
package com.amazonaws.serverless.proxy.jersey;
1414

1515

16-
import com.amazonaws.serverless.proxy.internal.AwsProxyExceptionHandler;
16+
import com.amazonaws.serverless.proxy.AwsProxyExceptionHandler;
1717
import com.amazonaws.serverless.proxy.AwsProxySecurityContextWriter;
1818
import com.amazonaws.serverless.proxy.ExceptionHandler;
1919
import com.amazonaws.serverless.proxy.internal.LambdaContainerHandler;

aws-serverless-java-container-spark/src/main/java/com/amazonaws/serverless/proxy/spark/SparkLambdaContainerHandler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,12 @@
1313
package com.amazonaws.serverless.proxy.spark;
1414

1515
import com.amazonaws.serverless.exceptions.ContainerInitializationException;
16+
import com.amazonaws.serverless.proxy.AwsProxyExceptionHandler;
1617
import com.amazonaws.serverless.proxy.AwsProxySecurityContextWriter;
1718
import com.amazonaws.serverless.proxy.ExceptionHandler;
1819
import com.amazonaws.serverless.proxy.RequestReader;
1920
import com.amazonaws.serverless.proxy.ResponseWriter;
2021
import com.amazonaws.serverless.proxy.SecurityContextWriter;
21-
import com.amazonaws.serverless.proxy.internal.*;
2222
import com.amazonaws.serverless.proxy.model.AwsProxyRequest;
2323
import com.amazonaws.serverless.proxy.model.AwsProxyResponse;
2424
import com.amazonaws.serverless.proxy.internal.servlet.*;

aws-serverless-java-container-spring/src/main/java/com/amazonaws/serverless/proxy/spring/SpringBootLambdaContainerHandler.java

Lines changed: 23 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -13,26 +13,28 @@
1313
package com.amazonaws.serverless.proxy.spring;
1414

1515
import com.amazonaws.serverless.exceptions.ContainerInitializationException;
16+
import com.amazonaws.serverless.proxy.AwsProxyExceptionHandler;
1617
import com.amazonaws.serverless.proxy.AwsProxySecurityContextWriter;
1718
import com.amazonaws.serverless.proxy.ExceptionHandler;
1819
import com.amazonaws.serverless.proxy.RequestReader;
1920
import com.amazonaws.serverless.proxy.ResponseWriter;
2021
import com.amazonaws.serverless.proxy.SecurityContextWriter;
21-
import com.amazonaws.serverless.proxy.internal.*;
2222
import com.amazonaws.serverless.proxy.model.AwsProxyRequest;
2323
import com.amazonaws.serverless.proxy.model.AwsProxyResponse;
2424
import com.amazonaws.serverless.proxy.internal.servlet.*;
2525
import com.amazonaws.services.lambda.runtime.Context;
2626
import org.slf4j.Logger;
2727
import org.slf4j.LoggerFactory;
28+
import org.springframework.core.env.ConfigurableEnvironment;
29+
import org.springframework.core.env.StandardEnvironment;
2830
import org.springframework.web.SpringServletContainerInitializer;
2931
import org.springframework.web.WebApplicationInitializer;
3032
import org.springframework.web.context.WebApplicationContext;
3133
import org.springframework.web.context.support.WebApplicationContextUtils;
3234
import org.springframework.web.servlet.DispatcherServlet;
3335

3436
import javax.servlet.*;
35-
import javax.servlet.http.HttpServletResponse;
37+
3638
import java.util.*;
3739
import java.util.concurrent.CountDownLatch;
3840

@@ -47,9 +49,9 @@
4749
* @param <ResponseType> The expected return type
4850
*/
4951
public class SpringBootLambdaContainerHandler<RequestType, ResponseType> extends AwsLambdaServletContainerHandler<RequestType, ResponseType, AwsProxyHttpServletRequest, AwsHttpServletResponse> {
50-
static ThreadLocal<HttpServletResponse> currentResponse = new ThreadLocal<>();
5152
private final Class<? extends WebApplicationInitializer> springBootInitializer;
5253
private static final Logger log = LoggerFactory.getLogger(SpringBootLambdaContainerHandler.class);
54+
private String[] springProfiles = null;
5355

5456
// State vars
5557
private boolean initialized;
@@ -91,6 +93,12 @@ public SpringBootLambdaContainerHandler(RequestReader<RequestType, AwsProxyHttpS
9193
this.springBootInitializer = springBootInitializer;
9294
}
9395

96+
public void activateSpringProfiles(String... profiles) {
97+
springProfiles = profiles;
98+
// force a re-initialization
99+
initialized = false;
100+
}
101+
94102
@Override
95103
protected AwsHttpServletResponse getContainerResponse(AwsProxyHttpServletRequest request, CountDownLatch latch) {
96104
return new AwsHttpServletResponse(request, latch);
@@ -109,23 +117,23 @@ protected void handleRequest(AwsProxyHttpServletRequest containerRequest, AwsHtt
109117
LinkedHashSet<Class<?>> webAppInitializers = new LinkedHashSet<>();
110118
webAppInitializers.add(springBootInitializer);
111119
springServletContainerInitializer.onStartup(webAppInitializers, getServletContext());
120+
121+
if (springProfiles != null && springProfiles.length > 0) {
122+
ConfigurableEnvironment springEnv = new StandardEnvironment();
123+
springEnv.setActiveProfiles(springProfiles);
124+
125+
}
126+
112127
initialized = true;
113128
}
114129

115130
containerRequest.setServletContext(getServletContext());
116131

117-
currentResponse.set(containerResponse);
118-
try {
119-
WebApplicationContext applicationContext = WebApplicationContextUtils.getRequiredWebApplicationContext(getServletContext());
120-
DispatcherServlet dispatcherServlet = applicationContext.getBean("dispatcherServlet", DispatcherServlet.class);
121-
// process filters & invoke servlet
122-
log.debug("Process filters & invoke servlet: {}", dispatcherServlet);
123-
doFilter(containerRequest, containerResponse, dispatcherServlet);
124-
} finally {
125-
// call the flush method to release the latch
126-
SpringBootLambdaContainerHandler.currentResponse.remove();
127-
currentResponse.remove();
128-
}
132+
WebApplicationContext applicationContext = WebApplicationContextUtils.getRequiredWebApplicationContext(getServletContext());
133+
134+
DispatcherServlet dispatcherServlet = applicationContext.getBean("dispatcherServlet", DispatcherServlet.class);
135+
// process filters & invoke servlet
136+
doFilter(containerRequest, containerResponse, dispatcherServlet);
129137
}
130138

131139
private class SpringBootAwsServletContext extends AwsServletContext {

aws-serverless-java-container-spring/src/main/java/com/amazonaws/serverless/proxy/spring/SpringLambdaContainerHandler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,12 @@
1313
package com.amazonaws.serverless.proxy.spring;
1414

1515
import com.amazonaws.serverless.exceptions.ContainerInitializationException;
16+
import com.amazonaws.serverless.proxy.AwsProxyExceptionHandler;
1617
import com.amazonaws.serverless.proxy.AwsProxySecurityContextWriter;
1718
import com.amazonaws.serverless.proxy.ExceptionHandler;
1819
import com.amazonaws.serverless.proxy.RequestReader;
1920
import com.amazonaws.serverless.proxy.ResponseWriter;
2021
import com.amazonaws.serverless.proxy.SecurityContextWriter;
21-
import com.amazonaws.serverless.proxy.internal.*;
2222
import com.amazonaws.serverless.proxy.model.AwsProxyRequest;
2323
import com.amazonaws.serverless.proxy.model.AwsProxyResponse;
2424
import com.amazonaws.serverless.proxy.internal.servlet.*;

0 commit comments

Comments
 (0)