Skip to content

Commit 526a35c

Browse files
committed
Updated Spring version to 5.0.3.RELEASE. Made the spring-webmvc depedency optional to allow implementer to include their version. The code is tested with Spring 4.x and 5.x. This closes #95.
1 parent d57212b commit 526a35c

File tree

8 files changed

+26
-13
lines changed

8 files changed

+26
-13
lines changed

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ public class AwsHttpServletResponse
7878
public AwsHttpServletResponse(AwsHttpServletRequest req, CountDownLatch latch) {
7979
writersCountDownLatch = latch;
8080
request = req;
81+
statusCode = 0;
8182
}
8283

8384

@@ -233,7 +234,7 @@ public void setStatus(int i, String s) {
233234

234235
@Override
235236
public int getStatus() {
236-
return statusCode;
237+
return (statusCode <= 0?SC_OK:statusCode);
237238
}
238239

239240

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import org.apache.commons.fileupload.FileUploadException;
2626
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
2727
import org.apache.commons.fileupload.servlet.ServletFileUpload;
28+
import org.apache.commons.io.input.NullInputStream;
2829
import org.slf4j.Logger;
2930
import org.slf4j.LoggerFactory;
3031

@@ -403,7 +404,7 @@ public String getContentType() {
403404
public ServletInputStream getInputStream()
404405
throws IOException {
405406
if (request.getBody() == null) {
406-
return null;
407+
return new AwsServletInputStream(new NullInputStream(0, false, false));
407408
}
408409
byte[] bodyBytes = null;
409410
if (request.isBase64Encoded()) {

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

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -50,11 +50,8 @@ public AwsProxyResponse writeResponse(AwsHttpServletResponse containerResponse,
5050
}
5151
awsProxyResponse.setHeaders(containerResponse.getAwsResponseHeaders());
5252

53-
if (containerResponse.getStatus() <= 0) {
54-
awsProxyResponse.setStatusCode(200);
55-
} else {
56-
awsProxyResponse.setStatusCode(containerResponse.getStatus());
57-
}
53+
awsProxyResponse.setStatusCode(containerResponse.getStatus());
54+
5855
Timer.stop("SERVLET_RESPONSE_WRITE");
5956
return awsProxyResponse;
6057
}

aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/testutils/AwsProxyRequestBuilder.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ public AwsProxyRequestBuilder(String path, String httpMethod) {
7272
this.request.getRequestContext().setRequestId("test-invoke-request");
7373
this.request.getRequestContext().setStage("test");
7474
this.request.getRequestContext().setProtocol("HTTP/1.1");
75+
this.request.getRequestContext().setRequestTimeEpoch(System.currentTimeMillis());
7576
ApiGatewayRequestIdentity identity = new ApiGatewayRequestIdentity();
7677
identity.setSourceIp("127.0.0.1");
7778
this.request.getRequestContext().setIdentity(identity);

aws-serverless-java-container-spring/pom.xml

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@
1515
</parent>
1616

1717
<properties>
18-
<spring.version>4.3.13.RELEASE</spring.version>
19-
<spring-security.version>4.2.4.RELEASE</spring-security.version>
18+
<spring.version>5.0.3.RELEASE</spring.version>
19+
<spring-security.version>5.0.1.RELEASE</spring-security.version>
2020
<jackson.version>2.9.3</jackson.version>
2121
</properties>
2222

@@ -33,6 +33,7 @@
3333
<groupId>org.springframework</groupId>
3434
<artifactId>spring-webmvc</artifactId>
3535
<version>${spring.version}</version>
36+
<optional>true</optional>
3637
</dependency>
3738

3839
<!-- https://mvnrepository.com/artifact/org.springframework/spring-test -->
@@ -83,6 +84,16 @@
8384
<artifactId>spring-boot-autoconfigure</artifactId>
8485
<version>1.5.9.RELEASE</version>
8586
<scope>test</scope>
87+
<exclusions>
88+
<exclusion>
89+
<groupId>org.springframework</groupId>
90+
<artifactId>spring-context</artifactId>
91+
</exclusion>
92+
<exclusion>
93+
<groupId>org.springframework</groupId>
94+
<artifactId>spring-core</artifactId>
95+
</exclusion>
96+
</exclusions>
8697
</dependency>
8798
<dependency>
8899
<groupId>org.springframework.security</groupId>

aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/SpringAwsProxyTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,7 @@ public void injectBody_populatedResponse_noException() {
214214

215215
AwsProxyResponse response = handler.proxy(request, lambdaContext);
216216
assertNotNull(response.getBody());
217+
assertEquals(200, response.getStatusCode());
217218
try {
218219
SingleValueModel output = objectMapper.readValue(response.getBody(), SingleValueModel.class);
219220
assertEquals("true", output.getValue());

aws-serverless-java-container-spring/src/test/java/com/amazonaws/serverless/proxy/spring/echoapp/EchoResource.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import java.net.URI;
1717
import java.util.Enumeration;
1818
import java.util.Map;
19+
import java.util.Optional;
1920
import java.util.Random;
2021

2122
import static org.springframework.web.servlet.mvc.method.annotation.MvcUriComponentsBuilder.fromMethodCall;
@@ -119,10 +120,10 @@ public SingleValueModel echoRequestURL(HttpServletRequest request) {
119120
}
120121

121122
@RequestMapping(path = "/request-body", method = RequestMethod.POST)
122-
public SingleValueModel helloForPopulatedBody(@RequestBody(required = false) String input) {
123+
public SingleValueModel helloForPopulatedBody(@RequestBody(required = false) Optional<String> input) {
123124
SingleValueModel valueModel = new SingleValueModel();
124-
System.out.println("Input: \"" + input + "\"");
125-
if (input != null && !"null".equals(input)) {
125+
if (input.isPresent() && !"null".equals(input.get())) {
126+
System.out.println("Input: \"" + input.get() + "\"");
126127
valueModel.setValue("true");
127128
}
128129

samples/spring/pet-store/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
<properties>
2727
<maven.compiler.source>1.8</maven.compiler.source>
2828
<maven.compiler.target>1.8</maven.compiler.target>
29-
<spring.version>5.0.2.RELEASE</spring.version>
29+
<spring.version>5.0.3.RELEASE</spring.version>
3030
<jackson.version>2.8.4</jackson.version>
3131
</properties>
3232

0 commit comments

Comments
 (0)