in aws-serverless-java-container-jersey/src/main/java/com/amazonaws/serverless/proxy/jersey/JerseyLambdaContainerHandler.java [142:178]
public JerseyLambdaContainerHandler(Class<RequestType> requestTypeClass,
Class<ResponseType> responseTypeClass,
RequestReader<RequestType, HttpServletRequest> requestReader,
ResponseWriter<AwsHttpServletResponse, ResponseType> responseWriter,
SecurityContextWriter<RequestType> securityContextWriter,
ExceptionHandler<ResponseType> exceptionHandler,
Application jaxRsApplication) {
super(requestTypeClass, responseTypeClass, requestReader, responseWriter, securityContextWriter, exceptionHandler);
Timer.start("JERSEY_CONTAINER_CONSTRUCTOR");
initialized = false;
if (jaxRsApplication instanceof ResourceConfig) {
((ResourceConfig)jaxRsApplication).register(new AbstractBinder() {
@Override
protected void configure() {
bindFactory(AwsProxyServletContextSupplier.class)
.proxy(true)
.proxyForSameScope(true)
.to(ServletContext.class)
.in(RequestScoped.class);
bindFactory(AwsProxyServletRequestSupplier.class)
.proxy(true)
.proxyForSameScope(true)
.to(HttpServletRequest.class)
.in(RequestScoped.class);
bindFactory(AwsProxyServletResponseSupplier.class)
.proxy(true)
.proxyForSameScope(true)
.to(HttpServletResponse.class)
.in(RequestScoped.class);
}
});
}
this.jerseyFilter = new JerseyHandlerFilter(jaxRsApplication);
Timer.stop("JERSEY_CONTAINER_CONSTRUCTOR");
}