diff --git a/spring-boot-project/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/web/reactive/WebFluxTypeExcludeFilter.java b/spring-boot-project/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/web/reactive/WebFluxTypeExcludeFilter.java index 5ca155d0c3..a7d3dd0b9a 100644 --- a/spring-boot-project/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/web/reactive/WebFluxTypeExcludeFilter.java +++ b/spring-boot-project/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/web/reactive/WebFluxTypeExcludeFilter.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2019 the original author or authors. + * Copyright 2012-2020 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,6 +21,8 @@ import java.util.Collections; import java.util.LinkedHashSet; import java.util.Set; +import com.fasterxml.jackson.databind.Module; + import org.springframework.boot.context.TypeExcludeFilter; import org.springframework.boot.jackson.JsonComponent; import org.springframework.boot.test.autoconfigure.filter.StandardAnnotationCustomizableTypeExcludeFilter; @@ -54,6 +56,11 @@ public final class WebFluxTypeExcludeFilter extends StandardAnnotationCustomizab includes.add(GenericConverter.class); includes.add(WebExceptionHandler.class); includes.add(WebFilter.class); + try { + includes.add(Module.class); + } + catch (Throwable ex) { + } DEFAULT_INCLUDES = Collections.unmodifiableSet(includes); } diff --git a/spring-boot-project/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/web/servlet/WebMvcTypeExcludeFilter.java b/spring-boot-project/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/web/servlet/WebMvcTypeExcludeFilter.java index 17a2368622..508ca409ae 100644 --- a/spring-boot-project/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/web/servlet/WebMvcTypeExcludeFilter.java +++ b/spring-boot-project/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/web/servlet/WebMvcTypeExcludeFilter.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2019 the original author or authors. + * Copyright 2012-2020 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,6 +21,8 @@ import java.util.Collections; import java.util.LinkedHashSet; import java.util.Set; +import com.fasterxml.jackson.databind.Module; + import org.springframework.boot.context.TypeExcludeFilter; import org.springframework.boot.jackson.JsonComponent; import org.springframework.boot.test.autoconfigure.filter.StandardAnnotationCustomizableTypeExcludeFilter; @@ -68,6 +70,11 @@ public final class WebMvcTypeExcludeFilter extends StandardAnnotationCustomizabl includes.add(Converter.class); includes.add(GenericConverter.class); includes.add(HandlerInterceptor.class); + try { + includes.add(Module.class); + } + catch (Throwable ex) { + } for (String optionalInclude : OPTIONAL_INCLUDES) { try { includes.add(ClassUtils.forName(optionalInclude, null)); diff --git a/spring-boot-project/spring-boot-test-autoconfigure/src/test/java/org/springframework/boot/test/autoconfigure/web/reactive/WebFluxTypeExcludeFilterTests.java b/spring-boot-project/spring-boot-test-autoconfigure/src/test/java/org/springframework/boot/test/autoconfigure/web/reactive/WebFluxTypeExcludeFilterTests.java index 66563d1666..a8ce35b101 100644 --- a/spring-boot-project/spring-boot-test-autoconfigure/src/test/java/org/springframework/boot/test/autoconfigure/web/reactive/WebFluxTypeExcludeFilterTests.java +++ b/spring-boot-project/spring-boot-test-autoconfigure/src/test/java/org/springframework/boot/test/autoconfigure/web/reactive/WebFluxTypeExcludeFilterTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2019 the original author or authors. + * Copyright 2012-2020 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,6 +18,7 @@ package org.springframework.boot.test.autoconfigure.web.reactive; import java.io.IOException; +import com.fasterxml.jackson.databind.module.SimpleModule; import org.junit.jupiter.api.Test; import reactor.core.publisher.Mono; @@ -57,6 +58,7 @@ class WebFluxTypeExcludeFilterTests { assertThat(excludes(filter, ExampleService.class)).isTrue(); assertThat(excludes(filter, ExampleRepository.class)).isTrue(); assertThat(excludes(filter, ExampleWebFilter.class)).isFalse(); + assertThat(excludes(filter, ExampleModule.class)).isFalse(); } @Test @@ -69,6 +71,7 @@ class WebFluxTypeExcludeFilterTests { assertThat(excludes(filter, ExampleService.class)).isTrue(); assertThat(excludes(filter, ExampleRepository.class)).isTrue(); assertThat(excludes(filter, ExampleWebFilter.class)).isFalse(); + assertThat(excludes(filter, ExampleModule.class)).isFalse(); } @Test @@ -81,6 +84,7 @@ class WebFluxTypeExcludeFilterTests { assertThat(excludes(filter, ExampleService.class)).isTrue(); assertThat(excludes(filter, ExampleRepository.class)).isTrue(); assertThat(excludes(filter, ExampleWebFilter.class)).isTrue(); + assertThat(excludes(filter, ExampleModule.class)).isTrue(); } @Test @@ -93,6 +97,7 @@ class WebFluxTypeExcludeFilterTests { assertThat(excludes(filter, ExampleService.class)).isTrue(); assertThat(excludes(filter, ExampleRepository.class)).isFalse(); assertThat(excludes(filter, ExampleWebFilter.class)).isFalse(); + assertThat(excludes(filter, ExampleModule.class)).isFalse(); } @Test @@ -105,6 +110,7 @@ class WebFluxTypeExcludeFilterTests { assertThat(excludes(filter, ExampleService.class)).isTrue(); assertThat(excludes(filter, ExampleRepository.class)).isTrue(); assertThat(excludes(filter, ExampleWebFilter.class)).isFalse(); + assertThat(excludes(filter, ExampleModule.class)).isFalse(); } private boolean excludes(WebFluxTypeExcludeFilter filter, Class type) throws IOException { @@ -175,4 +181,8 @@ class WebFluxTypeExcludeFilterTests { } + static class ExampleModule extends SimpleModule { + + } + } diff --git a/spring-boot-project/spring-boot-test-autoconfigure/src/test/java/org/springframework/boot/test/autoconfigure/web/servlet/WebMvcTypeExcludeFilterTests.java b/spring-boot-project/spring-boot-test-autoconfigure/src/test/java/org/springframework/boot/test/autoconfigure/web/servlet/WebMvcTypeExcludeFilterTests.java index e9480855fc..79b430b93f 100644 --- a/spring-boot-project/spring-boot-test-autoconfigure/src/test/java/org/springframework/boot/test/autoconfigure/web/servlet/WebMvcTypeExcludeFilterTests.java +++ b/spring-boot-project/spring-boot-test-autoconfigure/src/test/java/org/springframework/boot/test/autoconfigure/web/servlet/WebMvcTypeExcludeFilterTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2019 the original author or authors. + * Copyright 2012-2020 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,6 +18,7 @@ package org.springframework.boot.test.autoconfigure.web.servlet; import java.io.IOException; +import com.fasterxml.jackson.databind.module.SimpleModule; import org.junit.jupiter.api.Test; import org.springframework.context.annotation.ComponentScan.Filter; @@ -57,6 +58,7 @@ class WebMvcTypeExcludeFilterTests { assertThat(excludes(filter, ExampleRepository.class)).isTrue(); assertThat(excludes(filter, ExampleWebSecurityConfigurer.class)).isFalse(); assertThat(excludes(filter, ExampleHandlerInterceptor.class)).isFalse(); + assertThat(excludes(filter, ExampleModule.class)).isFalse(); } @Test @@ -71,6 +73,7 @@ class WebMvcTypeExcludeFilterTests { assertThat(excludes(filter, ExampleRepository.class)).isTrue(); assertThat(excludes(filter, ExampleWebSecurityConfigurer.class)).isFalse(); assertThat(excludes(filter, ExampleHandlerInterceptor.class)).isFalse(); + assertThat(excludes(filter, ExampleModule.class)).isFalse(); } @Test @@ -85,6 +88,7 @@ class WebMvcTypeExcludeFilterTests { assertThat(excludes(filter, ExampleRepository.class)).isTrue(); assertThat(excludes(filter, ExampleWebSecurityConfigurer.class)).isTrue(); assertThat(excludes(filter, ExampleHandlerInterceptor.class)).isTrue(); + assertThat(excludes(filter, ExampleModule.class)).isTrue(); } @Test @@ -98,6 +102,7 @@ class WebMvcTypeExcludeFilterTests { assertThat(excludes(filter, ExampleService.class)).isTrue(); assertThat(excludes(filter, ExampleRepository.class)).isFalse(); assertThat(excludes(filter, ExampleHandlerInterceptor.class)).isFalse(); + assertThat(excludes(filter, ExampleModule.class)).isFalse(); } @Test @@ -112,6 +117,7 @@ class WebMvcTypeExcludeFilterTests { assertThat(excludes(filter, ExampleRepository.class)).isTrue(); assertThat(excludes(filter, ExampleWebSecurityConfigurer.class)).isFalse(); assertThat(excludes(filter, ExampleHandlerInterceptor.class)).isFalse(); + assertThat(excludes(filter, ExampleModule.class)).isFalse(); } private boolean excludes(WebMvcTypeExcludeFilter filter, Class type) throws IOException { @@ -185,4 +191,8 @@ class WebMvcTypeExcludeFilterTests { } + static class ExampleModule extends SimpleModule { + + } + }