Commit 94a9748c authored by Marcus Eisele's avatar Marcus Eisele Committed by Brian Clozel

Fix 'spring.resources.cache.period' for WebMvc

Before this change it got overwritten by forwarding an empty
CacheControl to Spring. Spring itself sets CacheSeconds already
correctly in absence (=null) of a CacheControl.

Also:
* Fixes bug in WebMvcAutoConfigurationTests.cachePeriod which
prevented it to assert anything

See gh-16488
Closes gh-16730
parent 0b4934d1
...@@ -476,6 +476,10 @@ public class ResourceProperties { ...@@ -476,6 +476,10 @@ public class ResourceProperties {
.staleIfError(duration.getSeconds(), TimeUnit.SECONDS)); .staleIfError(duration.getSeconds(), TimeUnit.SECONDS));
map.from(this::getSMaxAge).whenNonNull().to((duration) -> control map.from(this::getSMaxAge).whenNonNull().to((duration) -> control
.sMaxAge(duration.getSeconds(), TimeUnit.SECONDS)); .sMaxAge(duration.getSeconds(), TimeUnit.SECONDS));
// check if cacheControl remained untouched
if (control.getHeaderValue() == null) {
return null;
}
return control; return control;
} }
......
...@@ -76,7 +76,7 @@ public class ResourcePropertiesTests { ...@@ -76,7 +76,7 @@ public class ResourcePropertiesTests {
public void emptyCacheControl() { public void emptyCacheControl() {
CacheControl cacheControl = this.properties.getCache().getCachecontrol() CacheControl cacheControl = this.properties.getCache().getCachecontrol()
.toHttpCacheControl(); .toHttpCacheControl();
assertThat(cacheControl.getHeaderValue()).isNull(); assertThat(cacheControl).isNull();
} }
@Test @Test
......
...@@ -803,13 +803,12 @@ public class WebMvcAutoConfigurationTests { ...@@ -803,13 +803,12 @@ public class WebMvcAutoConfigurationTests {
Map<String, Object> handlerMap = getHandlerMap( Map<String, Object> handlerMap = getHandlerMap(
context.getBean("resourceHandlerMapping", HandlerMapping.class)); context.getBean("resourceHandlerMapping", HandlerMapping.class));
assertThat(handlerMap).hasSize(2); assertThat(handlerMap).hasSize(2);
for (Object handler : handlerMap.keySet()) { for (Object handler : handlerMap.values()) {
if (handler instanceof ResourceHttpRequestHandler) { if (handler instanceof ResourceHttpRequestHandler) {
assertThat(((ResourceHttpRequestHandler) handler).getCacheSeconds()) assertThat(((ResourceHttpRequestHandler) handler).getCacheSeconds())
.isEqualTo(-1); .isEqualTo(5);
assertThat(((ResourceHttpRequestHandler) handler).getCacheControl()) assertThat(((ResourceHttpRequestHandler) handler).getCacheControl())
.isEqualToComparingFieldByField( .isNull();
CacheControl.maxAge(5, TimeUnit.SECONDS));
} }
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment