diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/config/YamlProcessor.java b/spring-beans/src/main/java/org/springframework/beans/factory/config/YamlProcessor.java index 6d929f2ba5..a7ea8c8d1f 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/config/YamlProcessor.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/config/YamlProcessor.java @@ -351,6 +351,7 @@ public abstract class YamlProcessor { /** * Callback interface used to process the YAML parsing results. */ + @FunctionalInterface public interface MatchCallback { /** @@ -367,6 +368,7 @@ public abstract class YamlProcessor { /** * Strategy interface used to test if properties match. */ + @FunctionalInterface public interface DocumentMatcher { /** diff --git a/spring-beans/src/test/java/org/springframework/beans/factory/config/YamlPropertiesFactoryBeanTests.java b/spring-beans/src/test/java/org/springframework/beans/factory/config/YamlPropertiesFactoryBeanTests.java index 828ac08081..c484cba81e 100644 --- a/spring-beans/src/test/java/org/springframework/beans/factory/config/YamlPropertiesFactoryBeanTests.java +++ b/spring-beans/src/test/java/org/springframework/beans/factory/config/YamlPropertiesFactoryBeanTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2019 the original author or authors. + * Copyright 2002-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. @@ -24,7 +24,6 @@ import org.yaml.snakeyaml.Yaml; import org.yaml.snakeyaml.constructor.DuplicateKeyException; import org.yaml.snakeyaml.scanner.ScannerException; -import org.springframework.beans.factory.config.YamlProcessor.DocumentMatcher; import org.springframework.beans.factory.config.YamlProcessor.MatchStatus; import org.springframework.beans.factory.config.YamlProcessor.ResolutionMethod; import org.springframework.core.io.ByteArrayResource; @@ -39,10 +38,10 @@ import static org.assertj.core.api.Assertions.assertThatExceptionOfType; * @author Dave Syer * @author Juergen Hoeller */ -public class YamlPropertiesFactoryBeanTests { +class YamlPropertiesFactoryBeanTests { @Test - public void loadResource() { + void loadResource() { YamlPropertiesFactoryBean factory = new YamlPropertiesFactoryBean(); factory.setResources(new ByteArrayResource("foo: bar\nspam:\n foo: baz".getBytes())); Properties properties = factory.getObject(); @@ -51,7 +50,7 @@ public class YamlPropertiesFactoryBeanTests { } @Test - public void badResource() { + void badResource() { YamlPropertiesFactoryBean factory = new YamlPropertiesFactoryBean(); factory.setResources(new ByteArrayResource("foo: bar\ncd\nspam:\n foo: baz".getBytes())); assertThatExceptionOfType(ScannerException.class) @@ -60,7 +59,7 @@ public class YamlPropertiesFactoryBeanTests { } @Test - public void loadResourcesWithOverride() { + void loadResourcesWithOverride() { YamlPropertiesFactoryBean factory = new YamlPropertiesFactoryBean(); factory.setResources( new ByteArrayResource("foo: bar\nspam:\n foo: baz".getBytes()), @@ -72,7 +71,7 @@ public class YamlPropertiesFactoryBeanTests { } @Test - public void loadResourcesWithInternalOverride() { + void loadResourcesWithInternalOverride() { YamlPropertiesFactoryBean factory = new YamlPropertiesFactoryBean(); factory.setResources(new ByteArrayResource( "foo: bar\nspam:\n foo: baz\nfoo: bucket".getBytes())); @@ -80,7 +79,7 @@ public class YamlPropertiesFactoryBeanTests { } @Test - public void loadResourcesWithNestedInternalOverride() { + void loadResourcesWithNestedInternalOverride() { YamlPropertiesFactoryBean factory = new YamlPropertiesFactoryBean(); factory.setResources(new ByteArrayResource( "foo:\n bar: spam\n foo: baz\nbreak: it\nfoo: bucket".getBytes())); @@ -88,7 +87,7 @@ public class YamlPropertiesFactoryBeanTests { } @Test - public void loadResourceWithMultipleDocuments() { + void loadResourceWithMultipleDocuments() { YamlPropertiesFactoryBean factory = new YamlPropertiesFactoryBean(); factory.setResources(new ByteArrayResource( "foo: bar\nspam: baz\n---\nfoo: bag".getBytes())); @@ -98,7 +97,7 @@ public class YamlPropertiesFactoryBeanTests { } @Test - public void loadResourceWithSelectedDocuments() { + void loadResourceWithSelectedDocuments() { YamlPropertiesFactoryBean factory = new YamlPropertiesFactoryBean(); factory.setResources(new ByteArrayResource( "foo: bar\nspam: baz\n---\nfoo: bag\nspam: bad".getBytes())); @@ -110,7 +109,7 @@ public class YamlPropertiesFactoryBeanTests { } @Test - public void loadResourceWithDefaultMatch() { + void loadResourceWithDefaultMatch() { YamlPropertiesFactoryBean factory = new YamlPropertiesFactoryBean(); factory.setMatchDefault(true); factory.setResources(new ByteArrayResource( @@ -129,20 +128,17 @@ public class YamlPropertiesFactoryBeanTests { } @Test - public void loadResourceWithoutDefaultMatch() { + void loadResourceWithoutDefaultMatch() { YamlPropertiesFactoryBean factory = new YamlPropertiesFactoryBean(); factory.setMatchDefault(false); factory.setResources(new ByteArrayResource( "one: two\n---\nfoo: bar\nspam: baz\n---\nfoo: bag\nspam: bad".getBytes())); - factory.setDocumentMatchers(new DocumentMatcher() { - @Override - public MatchStatus matches(Properties properties) { + factory.setDocumentMatchers(properties -> { if (!properties.containsKey("foo")) { return MatchStatus.ABSTAIN; } return ("bag".equals(properties.getProperty("foo")) ? MatchStatus.FOUND : MatchStatus.NOT_FOUND); - } }); Properties properties = factory.getObject(); assertThat(properties.getProperty("foo")).isEqualTo("bag"); @@ -151,7 +147,7 @@ public class YamlPropertiesFactoryBeanTests { } @Test - public void loadResourceWithDefaultMatchSkippingMissedMatch() { + void loadResourceWithDefaultMatchSkippingMissedMatch() { YamlPropertiesFactoryBean factory = new YamlPropertiesFactoryBean(); factory.setMatchDefault(true); factory.setResources(new ByteArrayResource( @@ -170,7 +166,7 @@ public class YamlPropertiesFactoryBeanTests { } @Test - public void loadNonExistentResource() { + void loadNonExistentResource() { YamlPropertiesFactoryBean factory = new YamlPropertiesFactoryBean(); factory.setResolutionMethod(ResolutionMethod.OVERRIDE_AND_IGNORE); factory.setResources(new ClassPathResource("no-such-file.yml")); @@ -179,7 +175,7 @@ public class YamlPropertiesFactoryBeanTests { } @Test - public void loadNull() { + void loadNull() { YamlPropertiesFactoryBean factory = new YamlPropertiesFactoryBean(); factory.setResources(new ByteArrayResource("foo: bar\nspam:".getBytes())); Properties properties = factory.getObject(); @@ -188,7 +184,7 @@ public class YamlPropertiesFactoryBeanTests { } @Test - public void loadEmptyArrayValue() { + void loadEmptyArrayValue() { YamlPropertiesFactoryBean factory = new YamlPropertiesFactoryBean(); factory.setResources(new ByteArrayResource("a: alpha\ntest: []".getBytes())); Properties properties = factory.getObject(); @@ -197,7 +193,7 @@ public class YamlPropertiesFactoryBeanTests { } @Test - public void loadArrayOfString() { + void loadArrayOfString() { YamlPropertiesFactoryBean factory = new YamlPropertiesFactoryBean(); factory.setResources(new ByteArrayResource("foo:\n- bar\n- baz".getBytes())); Properties properties = factory.getObject(); @@ -207,7 +203,7 @@ public class YamlPropertiesFactoryBeanTests { } @Test - public void loadArrayOfInteger() { + void loadArrayOfInteger() { YamlPropertiesFactoryBean factory = new YamlPropertiesFactoryBean(); factory.setResources(new ByteArrayResource("foo:\n- 1\n- 2".getBytes())); Properties properties = factory.getObject(); @@ -217,7 +213,7 @@ public class YamlPropertiesFactoryBeanTests { } @Test - public void loadArrayOfObject() { + void loadArrayOfObject() { YamlPropertiesFactoryBean factory = new YamlPropertiesFactoryBean(); factory.setResources(new ByteArrayResource( "foo:\n- bar:\n spam: crap\n- baz\n- one: two\n three: four".getBytes() @@ -232,7 +228,7 @@ public class YamlPropertiesFactoryBeanTests { @Test @SuppressWarnings("unchecked") - public void yaml() { + void yaml() { Yaml yaml = new Yaml(); Map map = yaml.loadAs("foo: bar\nspam:\n foo: baz", Map.class); assertThat(map.get("foo")).isEqualTo("bar"); diff --git a/spring-context/src/main/java/org/springframework/context/ApplicationContextInitializer.java b/spring-context/src/main/java/org/springframework/context/ApplicationContextInitializer.java index 43de23e225..42e750fc24 100644 --- a/spring-context/src/main/java/org/springframework/context/ApplicationContextInitializer.java +++ b/spring-context/src/main/java/org/springframework/context/ApplicationContextInitializer.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2018 the original author or authors. + * Copyright 2002-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. @@ -28,7 +28,7 @@ package org.springframework.context; * *

{@code ApplicationContextInitializer} processors are encouraged to detect * whether Spring's {@link org.springframework.core.Ordered Ordered} interface has been - * implemented or if the @{@link org.springframework.core.annotation.Order Order} + * implemented or if the {@link org.springframework.core.annotation.Order @Order} * annotation is present and to sort instances accordingly if so prior to invocation. * * @author Chris Beams @@ -39,6 +39,7 @@ package org.springframework.context; * @see org.springframework.web.servlet.FrameworkServlet#setContextInitializerClasses * @see org.springframework.web.servlet.FrameworkServlet#applyInitializers */ +@FunctionalInterface public interface ApplicationContextInitializer { /** diff --git a/spring-context/src/main/java/org/springframework/validation/MessageCodeFormatter.java b/spring-context/src/main/java/org/springframework/validation/MessageCodeFormatter.java index 9a9d638afc..e8db79267b 100644 --- a/spring-context/src/main/java/org/springframework/validation/MessageCodeFormatter.java +++ b/spring-context/src/main/java/org/springframework/validation/MessageCodeFormatter.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2018 the original author or authors. + * Copyright 2002-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. @@ -26,6 +26,7 @@ import org.springframework.lang.Nullable; * @see DefaultMessageCodesResolver * @see DefaultMessageCodesResolver.Format */ +@FunctionalInterface public interface MessageCodeFormatter { /** diff --git a/spring-context/src/test/java/org/springframework/validation/DefaultMessageCodesResolverTests.java b/spring-context/src/test/java/org/springframework/validation/DefaultMessageCodesResolverTests.java index 01c06157a4..962ea0c806 100644 --- a/spring-context/src/test/java/org/springframework/validation/DefaultMessageCodesResolverTests.java +++ b/spring-context/src/test/java/org/springframework/validation/DefaultMessageCodesResolverTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2019 the original author or authors. + * Copyright 2002-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. @@ -28,22 +28,20 @@ import static org.assertj.core.api.Assertions.assertThat; * * @author Phillip Webb */ -public class DefaultMessageCodesResolverTests { +class DefaultMessageCodesResolverTests { + + private final DefaultMessageCodesResolver resolver = new DefaultMessageCodesResolver(); - private DefaultMessageCodesResolver resolver = new DefaultMessageCodesResolver(); @Test - public void shouldResolveMessageCode() throws Exception { + void shouldResolveMessageCode() throws Exception { String[] codes = resolver.resolveMessageCodes("errorCode", "objectName"); - assertThat(codes).containsExactly( - "errorCode.objectName", - "errorCode"); + assertThat(codes).containsExactly("errorCode.objectName", "errorCode"); } @Test - public void shouldResolveFieldMessageCode() throws Exception { - String[] codes = resolver.resolveMessageCodes("errorCode", "objectName", "field", - TestBean.class); + void shouldResolveFieldMessageCode() throws Exception { + String[] codes = resolver.resolveMessageCodes("errorCode", "objectName", "field", TestBean.class); assertThat(codes).containsExactly( "errorCode.objectName.field", "errorCode.field", @@ -52,9 +50,8 @@ public class DefaultMessageCodesResolverTests { } @Test - public void shouldResolveIndexedFieldMessageCode() throws Exception { - String[] codes = resolver.resolveMessageCodes("errorCode", "objectName", "a.b[3].c[5].d", - TestBean.class); + void shouldResolveIndexedFieldMessageCode() throws Exception { + String[] codes = resolver.resolveMessageCodes("errorCode", "objectName", "a.b[3].c[5].d", TestBean.class); assertThat(codes).containsExactly( "errorCode.objectName.a.b[3].c[5].d", "errorCode.objectName.a.b[3].c.d", @@ -68,19 +65,16 @@ public class DefaultMessageCodesResolverTests { } @Test - public void shouldResolveMessageCodeWithPrefix() throws Exception { + void shouldResolveMessageCodeWithPrefix() throws Exception { resolver.setPrefix("prefix."); String[] codes = resolver.resolveMessageCodes("errorCode", "objectName"); - assertThat(codes).containsExactly( - "prefix.errorCode.objectName", - "prefix.errorCode"); + assertThat(codes).containsExactly("prefix.errorCode.objectName", "prefix.errorCode"); } @Test - public void shouldResolveFieldMessageCodeWithPrefix() throws Exception { + void shouldResolveFieldMessageCodeWithPrefix() throws Exception { resolver.setPrefix("prefix."); - String[] codes = resolver.resolveMessageCodes("errorCode", "objectName", "field", - TestBean.class); + String[] codes = resolver.resolveMessageCodes("errorCode", "objectName", "field", TestBean.class); assertThat(codes).containsExactly( "prefix.errorCode.objectName.field", "prefix.errorCode.field", @@ -89,10 +83,9 @@ public class DefaultMessageCodesResolverTests { } @Test - public void shouldSupportNullPrefix() throws Exception { + void shouldSupportNullPrefix() throws Exception { resolver.setPrefix(null); - String[] codes = resolver.resolveMessageCodes("errorCode", "objectName", "field", - TestBean.class); + String[] codes = resolver.resolveMessageCodes("errorCode", "objectName", "field", TestBean.class); assertThat(codes).containsExactly( "errorCode.objectName.field", "errorCode.field", @@ -101,9 +94,8 @@ public class DefaultMessageCodesResolverTests { } @Test - public void shouldSupportMalformedIndexField() throws Exception { - String[] codes = resolver.resolveMessageCodes("errorCode", "objectName", "field[", - TestBean.class); + void shouldSupportMalformedIndexField() throws Exception { + String[] codes = resolver.resolveMessageCodes("errorCode", "objectName", "field[", TestBean.class); assertThat(codes).containsExactly( "errorCode.objectName.field[", "errorCode.field[", @@ -112,9 +104,8 @@ public class DefaultMessageCodesResolverTests { } @Test - public void shouldSupportNullFieldType() throws Exception { - String[] codes = resolver.resolveMessageCodes("errorCode", "objectName", "field", - null); + void shouldSupportNullFieldType() throws Exception { + String[] codes = resolver.resolveMessageCodes("errorCode", "objectName", "field", null); assertThat(codes).containsExactly( "errorCode.objectName.field", "errorCode.field", @@ -122,19 +113,16 @@ public class DefaultMessageCodesResolverTests { } @Test - public void shouldSupportPostfixFormat() throws Exception { + void shouldSupportPostfixFormat() throws Exception { resolver.setMessageCodeFormatter(Format.POSTFIX_ERROR_CODE); String[] codes = resolver.resolveMessageCodes("errorCode", "objectName"); - assertThat(codes).containsExactly( - "objectName.errorCode", - "errorCode"); + assertThat(codes).containsExactly("objectName.errorCode", "errorCode"); } @Test - public void shouldSupportFieldPostfixFormat() throws Exception { + void shouldSupportFieldPostfixFormat() throws Exception { resolver.setMessageCodeFormatter(Format.POSTFIX_ERROR_CODE); - String[] codes = resolver.resolveMessageCodes("errorCode", "objectName", "field", - TestBean.class); + String[] codes = resolver.resolveMessageCodes("errorCode", "objectName", "field", TestBean.class); assertThat(codes).containsExactly( "objectName.field.errorCode", "field.errorCode", @@ -143,18 +131,11 @@ public class DefaultMessageCodesResolverTests { } @Test - public void shouldSupportCustomFormat() throws Exception { - resolver.setMessageCodeFormatter(new MessageCodeFormatter() { - @Override - public String format(String errorCode, String objectName, String field) { - return DefaultMessageCodesResolver.Format.toDelimitedString( - "CUSTOM-" + errorCode, objectName, field); - } - }); + void shouldSupportCustomFormat() throws Exception { + resolver.setMessageCodeFormatter((errorCode, objectName, field) -> + DefaultMessageCodesResolver.Format.toDelimitedString("CUSTOM-" + errorCode, objectName, field)); String[] codes = resolver.resolveMessageCodes("errorCode", "objectName"); - assertThat(codes).containsExactly( - "CUSTOM-errorCode.objectName", - "CUSTOM-errorCode"); + assertThat(codes).containsExactly("CUSTOM-errorCode.objectName", "CUSTOM-errorCode"); } } diff --git a/spring-core/src/main/java/org/springframework/util/IdGenerator.java b/spring-core/src/main/java/org/springframework/util/IdGenerator.java index e101522b37..0c797301b8 100644 --- a/spring-core/src/main/java/org/springframework/util/IdGenerator.java +++ b/spring-core/src/main/java/org/springframework/util/IdGenerator.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2015 the original author or authors. + * Copyright 2002-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. @@ -19,11 +19,12 @@ package org.springframework.util; import java.util.UUID; /** - * Contract for generating universally unique identifiers {@link UUID (UUIDs)}. + * Contract for generating universally unique identifiers ({@link UUID UUIDs}). * * @author Rossen Stoyanchev * @since 4.0 */ +@FunctionalInterface public interface IdGenerator { /** diff --git a/spring-messaging/src/test/java/org/springframework/messaging/support/MessageBuilderTests.java b/spring-messaging/src/test/java/org/springframework/messaging/support/MessageBuilderTests.java index 07508f1c48..02d13091f9 100644 --- a/spring-messaging/src/test/java/org/springframework/messaging/support/MessageBuilderTests.java +++ b/spring-messaging/src/test/java/org/springframework/messaging/support/MessageBuilderTests.java @@ -26,7 +26,6 @@ import org.junit.jupiter.api.Test; import org.springframework.messaging.Message; import org.springframework.messaging.MessageHeaders; -import org.springframework.util.IdGenerator; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException; @@ -36,16 +35,16 @@ import static org.assertj.core.api.Assertions.assertThatIllegalStateException; * @author Mark Fisher * @author Rossen Stoyanchev */ -public class MessageBuilderTests { +class MessageBuilderTests { @Test - public void testSimpleMessageCreation() { + void simpleMessageCreation() { Message message = MessageBuilder.withPayload("foo").build(); assertThat(message.getPayload()).isEqualTo("foo"); } @Test - public void testHeaderValues() { + void headerValues() { Message message = MessageBuilder.withPayload("test") .setHeader("foo", "bar") .setHeader("count", 123) @@ -55,7 +54,7 @@ public class MessageBuilderTests { } @Test - public void testCopiedHeaderValues() { + void copiedHeaderValues() { Message message1 = MessageBuilder.withPayload("test1") .setHeader("foo", "1") .setHeader("bar", "2") @@ -74,21 +73,21 @@ public class MessageBuilderTests { } @Test - public void testIdHeaderValueReadOnly() { + void idHeaderValueReadOnly() { UUID id = UUID.randomUUID(); assertThatIllegalArgumentException().isThrownBy(() -> MessageBuilder.withPayload("test").setHeader(MessageHeaders.ID, id)); } @Test - public void testTimestampValueReadOnly() { + void timestampValueReadOnly() { Long timestamp = 12345L; assertThatIllegalArgumentException().isThrownBy(() -> MessageBuilder.withPayload("test").setHeader(MessageHeaders.TIMESTAMP, timestamp).build()); } @Test - public void copyHeadersIfAbsent() { + void copyHeadersIfAbsent() { Message message1 = MessageBuilder.withPayload("test1") .setHeader("foo", "bar").build(); Message message2 = MessageBuilder.withPayload("test2") @@ -100,7 +99,7 @@ public class MessageBuilderTests { } @Test - public void createFromMessage() { + void createFromMessage() { Message message1 = MessageBuilder.withPayload("test") .setHeader("foo", "bar").build(); Message message2 = MessageBuilder.fromMessage(message1).build(); @@ -109,7 +108,7 @@ public class MessageBuilderTests { } @Test // gh-23417 - public void createErrorMessageFromErrorMessage() { + void createErrorMessageFromErrorMessage() { Message source = MessageBuilder.withPayload("test").setHeader("foo", "bar").build(); RuntimeException ex = new RuntimeException(); ErrorMessage errorMessage1 = new ErrorMessage(ex, Collections.singletonMap("baz", "42"), source); @@ -122,7 +121,7 @@ public class MessageBuilderTests { } @Test - public void createIdRegenerated() { + void createIdRegenerated() { Message message1 = MessageBuilder.withPayload("test") .setHeader("foo", "bar").build(); Message message2 = MessageBuilder.fromMessage(message1).setHeader("another", 1).build(); @@ -131,7 +130,7 @@ public class MessageBuilderTests { } @Test - public void testRemove() { + void remove() { Message message1 = MessageBuilder.withPayload(1) .setHeader("foo", "bar").build(); Message message2 = MessageBuilder.fromMessage(message1) @@ -141,7 +140,7 @@ public class MessageBuilderTests { } @Test - public void testSettingToNullRemoves() { + void settingToNullRemoves() { Message message1 = MessageBuilder.withPayload(1) .setHeader("foo", "bar").build(); Message message2 = MessageBuilder.fromMessage(message1) @@ -151,28 +150,28 @@ public class MessageBuilderTests { } @Test - public void testNotModifiedSameMessage() throws Exception { + void notModifiedSameMessage() throws Exception { Message original = MessageBuilder.withPayload("foo").build(); Message result = MessageBuilder.fromMessage(original).build(); assertThat(result).isEqualTo(original); } @Test - public void testContainsHeaderNotModifiedSameMessage() throws Exception { + void containsHeaderNotModifiedSameMessage() throws Exception { Message original = MessageBuilder.withPayload("foo").setHeader("bar", 42).build(); Message result = MessageBuilder.fromMessage(original).build(); assertThat(result).isEqualTo(original); } @Test - public void testSameHeaderValueAddedNotModifiedSameMessage() throws Exception { + void sameHeaderValueAddedNotModifiedSameMessage() throws Exception { Message original = MessageBuilder.withPayload("foo").setHeader("bar", 42).build(); Message result = MessageBuilder.fromMessage(original).setHeader("bar", 42).build(); assertThat(result).isEqualTo(original); } @Test - public void testCopySameHeaderValuesNotModifiedSameMessage() throws Exception { + void copySameHeaderValuesNotModifiedSameMessage() throws Exception { Date current = new Date(); Map originalHeaders = new HashMap<>(); originalHeaders.put("b", "xyz"); @@ -187,7 +186,7 @@ public class MessageBuilderTests { } @Test - public void testBuildMessageWithMutableHeaders() { + void buildMessageWithMutableHeaders() { MessageHeaderAccessor accessor = new MessageHeaderAccessor(); accessor.setLeaveMutable(true); MessageHeaders headers = accessor.getMessageHeaders(); @@ -199,7 +198,7 @@ public class MessageBuilderTests { } @Test - public void testBuildMessageWithDefaultMutability() { + void buildMessageWithDefaultMutability() { MessageHeaderAccessor accessor = new MessageHeaderAccessor(); MessageHeaders headers = accessor.getMessageHeaders(); Message message = MessageBuilder.createMessage("foo", headers); @@ -212,21 +211,16 @@ public class MessageBuilderTests { } @Test - public void testBuildMessageWithoutIdAndTimestamp() { + void buildMessageWithoutIdAndTimestamp() { MessageHeaderAccessor headerAccessor = new MessageHeaderAccessor(); - headerAccessor.setIdGenerator(new IdGenerator() { - @Override - public UUID generateId() { - return MessageHeaders.ID_VALUE_NONE; - } - }); + headerAccessor.setIdGenerator(() -> MessageHeaders.ID_VALUE_NONE); Message message = MessageBuilder.createMessage("foo", headerAccessor.getMessageHeaders()); assertThat(message.getHeaders().getId()).isNull(); assertThat(message.getHeaders().getTimestamp()).isNull(); } @Test - public void testBuildMultipleMessages() { + void buildMultipleMessages() { MessageHeaderAccessor headerAccessor = new MessageHeaderAccessor(); MessageBuilder messageBuilder = MessageBuilder.withPayload("payload").setHeaders(headerAccessor); @@ -243,4 +237,5 @@ public class MessageBuilderTests { assertThat(message2.getHeaders().get("foo")).isEqualTo("bar2"); assertThat(message3.getHeaders().get("foo")).isEqualTo("bar3"); } + } diff --git a/spring-test/src/main/java/org/springframework/test/web/servlet/DispatcherServletCustomizer.java b/spring-test/src/main/java/org/springframework/test/web/servlet/DispatcherServletCustomizer.java index cca972bdce..04c98346a2 100644 --- a/spring-test/src/main/java/org/springframework/test/web/servlet/DispatcherServletCustomizer.java +++ b/spring-test/src/main/java/org/springframework/test/web/servlet/DispatcherServletCustomizer.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2016 the original author or authors. + * Copyright 2002-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. @@ -25,6 +25,7 @@ import org.springframework.web.servlet.DispatcherServlet; * @author Stephane Nicoll * @since 4.3.4 */ +@FunctionalInterface public interface DispatcherServletCustomizer { /**