Skip to content

Commit 2363568

Browse files
authored
Merge pull request #44 from wreulicke/feature/update-spring-boot
Update spring boot to 2.x from 1.x
2 parents 0a35552 + 4e1ba9b commit 2363568

File tree

10 files changed

+60
-16
lines changed

10 files changed

+60
-16
lines changed

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# dependency versions
2-
springBootVersion = 1.5.9.RELEASE
2+
springBootVersion = 2.0.6.RELEASE
33
springSecurityOauth2Version = 2.2.1.RELEASE
44
awsJavaSdkVersion = 1.11.233
55

spar-wings-monolith/src/main/java/jp/xet/sparwings/spring/data/EmptyPage.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@
1919
import java.util.Collections;
2020
import java.util.Iterator;
2121
import java.util.List;
22+
import java.util.function.Function;
2223

23-
import org.springframework.core.convert.converter.Converter;
2424
import org.springframework.data.domain.Page;
2525
import org.springframework.data.domain.Pageable;
2626
import org.springframework.data.domain.Sort;
@@ -124,7 +124,8 @@ public Pageable previousPageable() {
124124
}
125125

126126
@Override
127-
public <S> Page<S> map(Converter<? super T, ? extends S> converter) {
127+
public <U> Page<U> map(Function<? super T, ? extends U> converter) {
128128
return new EmptyPage<>(pageable);
129129
}
130+
130131
}

spar-wings-monolith/src/main/java/jp/xet/sparwings/spring/web/error/attribute/ProductionErrorAttributes.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,13 @@
1919
import java.util.LinkedHashMap;
2020
import java.util.Map;
2121

22-
import org.springframework.boot.autoconfigure.web.DefaultErrorAttributes;
23-
import org.springframework.boot.autoconfigure.web.ErrorAttributes;
22+
import org.springframework.boot.web.servlet.error.DefaultErrorAttributes;
23+
import org.springframework.boot.web.servlet.error.ErrorAttributes;
2424
import org.springframework.http.HttpStatus;
2525
import org.springframework.util.StringUtils;
2626
import org.springframework.validation.BindingResult;
2727
import org.springframework.web.context.request.RequestAttributes;
28+
import org.springframework.web.context.request.WebRequest;
2829

2930
/**
3031
* TODO for daisuke
@@ -48,7 +49,7 @@ public class ProductionErrorAttributes implements ErrorAttributes {
4849

4950

5051
@Override
51-
public Map<String, Object> getErrorAttributes(RequestAttributes requestAttributes, boolean includeStackTrace) {
52+
public Map<String, Object> getErrorAttributes(WebRequest requestAttributes, boolean includeStackTrace) {
5253
Map<String, Object> errorAttributes = new LinkedHashMap<>();
5354
errorAttributes.put("timestamp", new Date());
5455
addStatus(errorAttributes, requestAttributes);
@@ -74,7 +75,7 @@ private void addStatus(Map<String, Object> errorAttributes,
7475
}
7576
}
7677

77-
private void addErrorDetails(Map<String, Object> errorAttributes, RequestAttributes requestAttributes) {
78+
private void addErrorDetails(Map<String, Object> errorAttributes, WebRequest requestAttributes) {
7879
Throwable error = getError(requestAttributes);
7980
Object message = getAttribute(requestAttributes, "javax.servlet.error.message");
8081
if ((StringUtils.isEmpty(message) == false || errorAttributes.get("message") == null)
@@ -92,7 +93,7 @@ private void addPath(Map<String, Object> errorAttributes,
9293
}
9394

9495
@Override
95-
public Throwable getError(RequestAttributes requestAttributes) {
96+
public Throwable getError(WebRequest requestAttributes) {
9697
Throwable exception = getAttribute(requestAttributes, ERROR_ATTRIBUTE);
9798
if (exception == null) {
9899
exception = getAttribute(requestAttributes, "javax.servlet.error.exception");
@@ -104,4 +105,5 @@ public Throwable getError(RequestAttributes requestAttributes) {
104105
private <T> T getAttribute(RequestAttributes requestAttributes, String name) {
105106
return (T) requestAttributes.getAttribute(name, RequestAttributes.SCOPE_REQUEST);
106107
}
108+
107109
}

spar-wings-monolith/src/main/java/jp/xet/sparwings/spring/web/error/handler/DefaultRestErrorResolver.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -219,6 +219,11 @@ protected String getMessage(String msg, ServletWebRequest webRequest, Exception
219219
if (localeResolver != null) {
220220
locale = localeResolver.resolveLocale(webRequest.getRequest());
221221
}
222+
223+
if (locale == null) {
224+
locale = Locale.getDefault();
225+
}
226+
222227
message = messageSource.getMessage(message, null, message, locale);
223228
}
224229

spar-wings-monolith/src/main/java/jp/xet/sparwings/spring/web/error/handler/RestExceptionHandler.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,10 @@ protected ModelAndView getModelAndView(ServletWebRequest webRequest, Object hand
232232

233233
private void applyStatusIfPossible(ServletWebRequest webRequest, RestError error) {
234234
if (!WebUtils.isIncludeRequest(webRequest.getRequest())) {
235-
webRequest.getResponse().setStatus(error.getStatus().value());
235+
HttpServletResponse response = webRequest.getResponse();
236+
if (response != null) {
237+
response.setStatus(error.getStatus().value());
238+
}
236239
}
237240
//TODO support response.sendError ?
238241
}
@@ -250,7 +253,13 @@ private ModelAndView handleResponseBody(Object body, ServletWebRequest webReques
250253

251254
MediaType.sortByQualityValue(acceptedMediaTypes);
252255

253-
try (ServerHttpResponse outputMessage = new ServletServerHttpResponse(webRequest.getResponse())) {
256+
HttpServletResponse response = webRequest.getResponse();
257+
258+
if (response == null) {
259+
return null;
260+
}
261+
262+
try (ServerHttpResponse outputMessage = new ServletServerHttpResponse(response)) {
254263
Class<?> bodyType = body.getClass();
255264
List<HttpMessageConverter<?>> converters = allMessageConverters;
256265

spar-wings-ratelimiter/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ dependencies {
66
compileOnly "javax.servlet:javax.servlet-api"
77
compile "org.springframework:spring-webmvc"
88
compile "org.springframework.security:spring-security-core"
9-
compile "org.springframework.data:spring-data-redis:1.7.11.RELEASE"
10-
compile "redis.clients:jedis:2.5.2"
9+
compile "org.springframework.data:spring-data-redis"
10+
compile "redis.clients:jedis"
1111
compile "jp.xet:baseunits:$baseunitsVersion"
1212
compile project(":spar-wings-httpexceptions")
1313
}

spar-wings-ratelimiter/src/main/java/jp/xet/sparwings/spring/web/ratelimiter/RedisRateLimitService.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,9 @@ public RateLimitDescriptor consume(HttpServletRequest request, long consumption)
6363
delta -= secSinceLastUpdate * fillRate;
6464
}
6565
Long carma = redisTemplate.opsForValue().increment(cKey, delta);
66+
if (carma == null) {
67+
throw new AssertionError("Unexpected condition. can not do in transaction");
68+
}
6669

6770
if (carma < consumption) {
6871
redisTemplate.opsForValue().set(cKey, consumption);
@@ -104,6 +107,9 @@ public RateLimitDescriptor get(HttpServletRequest request) {
104107
delta -= msSinceLastUpdate * fillRate;
105108
}
106109
Long carma = redisTemplate.opsForValue().increment(cKey, delta);
110+
if (carma == null) {
111+
throw new AssertionError("Unexpected condition. can not do in transaction");
112+
}
107113

108114
long expire = carma / fillRate;
109115
redisTemplate.expire(tKey, expire, TimeUnit.SECONDS);

spar-wings-spring-data-chunk/src/main/java/jp/xet/sparwings/spring/data/web/ChunkableHandlerMethodArgumentResolver.java

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,10 @@ public class ChunkableHandlerMethodArgumentResolver implements HandlerMethodArgu
7272
private static Chunkable getDefaultChunkRequestFrom(MethodParameter parameter) {
7373
ChunkableDefault defaults = parameter.getParameterAnnotation(ChunkableDefault.class);
7474

75+
if (defaults == null) {
76+
throw new IllegalArgumentException("MethodParameter must have @ChunkableDefault");
77+
}
78+
7579
int defaultPageSize = defaults.size();
7680
if (defaultPageSize == 10) {
7781
defaultPageSize = defaults.value();
@@ -183,7 +187,7 @@ public Object resolveArgument(MethodParameter methodParameter, ModelAndViewConta
183187
// Limit upper bound
184188
pageSize = pageSize > maxPageSize ? maxPageSize : pageSize;
185189

186-
Direction direction = Direction.fromStringOrNull(directionString);
190+
Direction direction = Direction.fromOptionalString(directionString).orElse(null);
187191

188192
if (StringUtils.hasText(next)) {
189193
return new ChunkRequest(next, PaginationRelation.NEXT, pageSize, direction);
@@ -214,9 +218,12 @@ private Chunkable getDefaultFromAnnotationOrFallback(MethodParameter methodParam
214218
protected String getParameterNameToUse(String source, MethodParameter parameter) {
215219
StringBuilder builder = new StringBuilder(prefix);
216220

217-
if (parameter != null && parameter.hasParameterAnnotation(Qualifier.class)) {
218-
builder.append(parameter.getParameterAnnotation(Qualifier.class).value());
219-
builder.append(qualifierDelimiter);
221+
if (parameter != null) {
222+
Qualifier qualifier = parameter.getParameterAnnotation(Qualifier.class);
223+
if (qualifier != null) {
224+
builder.append(qualifier.value());
225+
builder.append(qualifierDelimiter);
226+
}
220227
}
221228

222229
return builder.append(source).toString();

spar-wings-spring-data-chunk/src/main/java/jp/xet/sparwings/spring/data/web/SpringDataChunkableAnnotationUtils.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,10 @@ class SpringDataChunkableAnnotationUtils {
4040
public static void assertChunkableUniqueness(MethodParameter parameter) {
4141
Method method = parameter.getMethod();
4242

43+
if (method == null) {
44+
throw new IllegalArgumentException("MethodParameter must has method");
45+
}
46+
4347
if (containsMoreThanOneChunkableParameter(method)) {
4448
Annotation[][] annotations = method.getParameterAnnotations();
4549
assertQualifiersFor(method.getParameterTypes(), annotations);

spar-wings-spring-s3/src/main/java/jp/xet/sparwings/spring/s3/S3ObjectResourceLoader.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,17 @@ public Resource getResource(String location) {
9191
UriComponents components = UriComponentsBuilder.fromUriString(location).build();
9292
if (Objects.equals(components.getScheme(), "s3")) {
9393
String bucketName = components.getHost();
94+
95+
if (bucketName == null) {
96+
throw new IllegalArgumentException("location must contain host");
97+
}
98+
9499
String key = components.getPath();
100+
101+
if (key == null) {
102+
throw new IllegalArgumentException("location must contain path");
103+
}
104+
95105
if (key.startsWith("/")) {
96106
key = key.substring(1);
97107
}

0 commit comments

Comments
 (0)