diff --git a/spring-context/src/main/java/org/springframework/remoting/support/SimpleHttpServerFactoryBean.java b/spring-context/src/main/java/org/springframework/remoting/support/SimpleHttpServerFactoryBean.java index 57d4a2281363..47a4452514fd 100644 --- a/spring-context/src/main/java/org/springframework/remoting/support/SimpleHttpServerFactoryBean.java +++ b/spring-context/src/main/java/org/springframework/remoting/support/SimpleHttpServerFactoryBean.java @@ -153,15 +153,15 @@ public void afterPropertiesSet() throws IOException { this.server.setExecutor(this.executor); } if (this.contexts != null) { - for (String key : this.contexts.keySet()) { - HttpContext httpContext = this.server.createContext(key, this.contexts.get(key)); + this.contexts.forEach((key, context) -> { + HttpContext httpContext = this.server.createContext(key, context); if (this.filters != null) { httpContext.getFilters().addAll(this.filters); } if (this.authenticator != null) { httpContext.setAuthenticator(this.authenticator); } - } + }); } if (this.logger.isInfoEnabled()) { this.logger.info("Starting HttpServer at address " + address); diff --git a/spring-messaging/src/main/java/org/springframework/messaging/simp/broker/DefaultSubscriptionRegistry.java b/spring-messaging/src/main/java/org/springframework/messaging/simp/broker/DefaultSubscriptionRegistry.java index b926fae2d5af..15cbb7917904 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/simp/broker/DefaultSubscriptionRegistry.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/simp/broker/DefaultSubscriptionRegistry.java @@ -196,8 +196,8 @@ private MultiValueMap filterSubscriptions( return allMatches; } MultiValueMap result = new LinkedMultiValueMap<>(allMatches.size()); - for (String sessionId : allMatches.keySet()) { - for (String subId : allMatches.get(sessionId)) { + allMatches.forEach((sessionId, subIds) -> { + for (String subId : subIds) { SessionSubscriptionInfo info = this.subscriptionRegistry.getSubscriptions(sessionId); if (info == null) { continue; @@ -225,7 +225,7 @@ private MultiValueMap filterSubscriptions( logger.debug("Failed to evaluate selector", ex); } } - } + }); return result; } diff --git a/spring-test/src/main/java/org/springframework/mock/web/MockHttpServletRequest.java b/spring-test/src/main/java/org/springframework/mock/web/MockHttpServletRequest.java index f9eaf0208bbb..fa0440baa113 100644 --- a/spring-test/src/main/java/org/springframework/mock/web/MockHttpServletRequest.java +++ b/spring-test/src/main/java/org/springframework/mock/web/MockHttpServletRequest.java @@ -526,8 +526,7 @@ public void setParameter(String name, String... values) { */ public void setParameters(Map params) { Assert.notNull(params, "Parameter map must not be null"); - for (String key : params.keySet()) { - Object value = params.get(key); + params.forEach((key, value) -> { if (value instanceof String) { setParameter(key, (String) value); } @@ -538,7 +537,7 @@ else if (value instanceof String[]) { throw new IllegalArgumentException( "Parameter map value must be single value " + " or array of type [" + String.class.getName() + "]"); } - } + }); } /** @@ -576,8 +575,7 @@ public void addParameter(String name, String... values) { */ public void addParameters(Map params) { Assert.notNull(params, "Parameter map must not be null"); - for (String key : params.keySet()) { - Object value = params.get(key); + params.forEach((key, value) -> { if (value instanceof String) { addParameter(key, (String) value); } @@ -588,7 +586,7 @@ else if (value instanceof String[]) { throw new IllegalArgumentException("Parameter map value must be single value " + " or array of type [" + String.class.getName() + "]"); } - } + }); } /** diff --git a/spring-test/src/main/java/org/springframework/test/web/ModelAndViewAssert.java b/spring-test/src/main/java/org/springframework/test/web/ModelAndViewAssert.java index 9510e718e502..c50d69c15961 100644 --- a/spring-test/src/main/java/org/springframework/test/web/ModelAndViewAssert.java +++ b/spring-test/src/main/java/org/springframework/test/web/ModelAndViewAssert.java @@ -118,14 +118,13 @@ public static void assertModelAttributeValues(ModelAndView mav, Map { Object assertionValue = expectedModel.get(modelName); - Object mavValue = model.get(modelName); if (!assertionValue.equals(mavValue)) { sb.append("Value under name '").append(modelName).append("' differs, should have been '").append( assertionValue).append("' but was '").append(mavValue).append("'\n"); } - } + }); if (sb.length() != 0) { sb.insert(0, "Values of expected model do not match.\n"); diff --git a/spring-test/src/main/java/org/springframework/test/web/servlet/request/MockHttpServletRequestBuilder.java b/spring-test/src/main/java/org/springframework/test/web/servlet/request/MockHttpServletRequestBuilder.java index 6953ec4b4d30..04fb7a76af8d 100644 --- a/spring-test/src/main/java/org/springframework/test/web/servlet/request/MockHttpServletRequestBuilder.java +++ b/spring-test/src/main/java/org/springframework/test/web/servlet/request/MockHttpServletRequestBuilder.java @@ -345,11 +345,11 @@ public MockHttpServletRequestBuilder param(String name, String... values) { * @since 4.2.4 */ public MockHttpServletRequestBuilder params(MultiValueMap params) { - for (String name : params.keySet()) { - for (String value : params.get(name)) { + params.forEach((name, values) -> { + for (String value : values) { this.parameters.add(name, value); } - } + }); return this; } @@ -414,9 +414,7 @@ public MockHttpServletRequestBuilder sessionAttr(String name, Object value) { */ public MockHttpServletRequestBuilder sessionAttrs(Map sessionAttributes) { Assert.notEmpty(sessionAttributes, "'sessionAttributes' must not be empty"); - for (String name : sessionAttributes.keySet()) { - sessionAttr(name, sessionAttributes.get(name)); - } + sessionAttributes.forEach(this::sessionAttr); return this; } @@ -436,9 +434,7 @@ public MockHttpServletRequestBuilder flashAttr(String name, Object value) { */ public MockHttpServletRequestBuilder flashAttrs(Map flashAttributes) { Assert.notEmpty(flashAttributes, "'flashAttributes' must not be empty"); - for (String name : flashAttributes.keySet()) { - flashAttr(name, flashAttributes.get(name)); - } + flashAttributes.forEach(this::flashAttr); return this; } @@ -624,22 +620,22 @@ public final MockHttpServletRequest buildRequest(ServletContext servletContext) request.setContent(this.content); request.setContentType(this.contentType); - for (String name : this.headers.keySet()) { - for (Object value : this.headers.get(name)) { + this.headers.forEach((name, values) -> { + for (Object value : values) { request.addHeader(name, value); } - } + }); if (this.url.getRawQuery() != null) { request.setQueryString(this.url.getRawQuery()); } addRequestParams(request, UriComponentsBuilder.fromUri(this.url).build().getQueryParams()); - for (String name : this.parameters.keySet()) { - for (String value : this.parameters.get(name)) { + this.parameters.forEach((name, values) -> { + for (String value : values) { request.addParameter(name, value); } - } + }); if (this.content != null && this.content.length > 0) { String requestContentType = request.getContentType(); @@ -658,14 +654,12 @@ public final MockHttpServletRequest buildRequest(ServletContext servletContext) request.setPreferredLocales(this.locales); } - for (String name : this.requestAttributes.keySet()) { - request.setAttribute(name, this.requestAttributes.get(name)); - } - for (String name : this.sessionAttributes.keySet()) { + this.requestAttributes.forEach(request::setAttribute); + this.sessionAttributes.forEach((name, attribute) -> { HttpSession session = request.getSession(); Assert.state(session != null, "No HttpSession"); - session.setAttribute(name, this.sessionAttributes.get(name)); - } + session.setAttribute(name, attribute); + }); FlashMap flashMap = new FlashMap(); flashMap.putAll(this.flashAttributes); diff --git a/spring-test/src/main/java/org/springframework/test/web/servlet/result/PrintingResultHandler.java b/spring-test/src/main/java/org/springframework/test/web/servlet/result/PrintingResultHandler.java index 2c6d527310b1..b98e577fc3d8 100644 --- a/spring-test/src/main/java/org/springframework/test/web/servlet/result/PrintingResultHandler.java +++ b/spring-test/src/main/java/org/springframework/test/web/servlet/result/PrintingResultHandler.java @@ -135,13 +135,13 @@ protected final HttpHeaders getRequestHeaders(MockHttpServletRequest request) { protected final MultiValueMap getParamsMultiValueMap(MockHttpServletRequest request) { Map params = request.getParameterMap(); MultiValueMap multiValueMap = new LinkedMultiValueMap<>(); - for (String name : params.keySet()) { + params.forEach((name, values) -> { if (params.get(name) != null) { - for (String value : params.get(name)) { + for (String value : values) { multiValueMap.add(name, value); } } - } + }); return multiValueMap; } @@ -235,10 +235,10 @@ protected void printFlashMap(FlashMap flashMap) throws Exception { this.printer.printValue("Attributes", null); } else { - for (String name : flashMap.keySet()) { + flashMap.forEach((name, value) -> { this.printer.printValue("Attribute", name); - this.printer.printValue("value", flashMap.get(name)); - } + this.printer.printValue("value", value); + }); } } diff --git a/spring-web/src/main/java/org/springframework/http/converter/json/Jackson2ObjectMapperBuilder.java b/spring-web/src/main/java/org/springframework/http/converter/json/Jackson2ObjectMapperBuilder.java index 1fd56b25f8da..1e83741e6726 100644 --- a/spring-web/src/main/java/org/springframework/http/converter/json/Jackson2ObjectMapperBuilder.java +++ b/spring-web/src/main/java/org/springframework/http/converter/json/Jackson2ObjectMapperBuilder.java @@ -660,9 +660,7 @@ else if (this.findWellKnownModules) { objectMapper.setFilterProvider(this.filters); } - for (Class target : this.mixIns.keySet()) { - objectMapper.addMixIn(target, this.mixIns.get(target)); - } + this.mixIns.forEach((target, mixinSource) -> objectMapper.addMixIn(target, mixinSource)); if (!this.serializers.isEmpty() || !this.deserializers.isEmpty()) { SimpleModule module = new SimpleModule(); @@ -672,9 +670,7 @@ else if (this.findWellKnownModules) { } customizeDefaultFeatures(objectMapper); - for (Object feature : this.features.keySet()) { - configureFeature(objectMapper, feature, this.features.get(feature)); - } + this.features.forEach((feature, enabled) -> configureFeature(objectMapper, feature, enabled)); if (this.handlerInstantiator != null) { objectMapper.setHandlerInstantiator(this.handlerInstantiator); @@ -699,16 +695,14 @@ private void customizeDefaultFeatures(ObjectMapper objectMapper) { @SuppressWarnings("unchecked") private void addSerializers(SimpleModule module) { - for (Class type : this.serializers.keySet()) { - module.addSerializer((Class) type, (JsonSerializer) this.serializers.get(type)); - } + this.serializers.forEach((type, serializer) -> + module.addSerializer((Class) type, (JsonSerializer) serializer)); } @SuppressWarnings("unchecked") private void addDeserializers(SimpleModule module) { - for (Class type : this.deserializers.keySet()) { - module.addDeserializer((Class) type, (JsonDeserializer) this.deserializers.get(type)); - } + this.deserializers.forEach((type, deserializer) -> + module.addDeserializer((Class) type, (JsonDeserializer) deserializer)); } private void configureFeature(ObjectMapper objectMapper, Object feature, boolean enabled) { diff --git a/spring-web/src/main/java/org/springframework/web/method/annotation/SessionAttributesHandler.java b/spring-web/src/main/java/org/springframework/web/method/annotation/SessionAttributesHandler.java index ee90f4f95f18..4582fd6f3415 100644 --- a/spring-web/src/main/java/org/springframework/web/method/annotation/SessionAttributesHandler.java +++ b/spring-web/src/main/java/org/springframework/web/method/annotation/SessionAttributesHandler.java @@ -112,12 +112,11 @@ public boolean isHandlerSessionAttribute(String attributeName, Class attribut * @param attributes candidate attributes for session storage */ public void storeAttributes(WebRequest request, Map attributes) { - for (String name : attributes.keySet()) { - Object value = attributes.get(name); + attributes.forEach((name, value) -> { if (value != null && isHandlerSessionAttribute(name, value.getClass())) { this.sessionAttributeStore.storeAttribute(request, name, value); } - } + }); } /** diff --git a/spring-web/src/main/java/org/springframework/web/util/UrlPathHelper.java b/spring-web/src/main/java/org/springframework/web/util/UrlPathHelper.java index feefad654089..833da5b73b32 100644 --- a/spring-web/src/main/java/org/springframework/web/util/UrlPathHelper.java +++ b/spring-web/src/main/java/org/springframework/web/util/UrlPathHelper.java @@ -567,11 +567,11 @@ public MultiValueMap decodeMatrixVariables(HttpServletRequest re } else { MultiValueMap decodedVars = new LinkedMultiValueMap<>(vars.size()); - for (String key : vars.keySet()) { - for (String value : vars.get(key)) { + vars.forEach((key, values) -> { + for (String value : values) { decodedVars.add(key, decodeInternal(request, value)); } - } + }); return decodedVars; } } diff --git a/spring-webflux/src/main/java/org/springframework/web/reactive/result/method/annotation/MatrixVariableMapMethodArgumentResolver.java b/spring-webflux/src/main/java/org/springframework/web/reactive/result/method/annotation/MatrixVariableMapMethodArgumentResolver.java index 1a81a98fb65e..513ff6cdd825 100644 --- a/spring-webflux/src/main/java/org/springframework/web/reactive/result/method/annotation/MatrixVariableMapMethodArgumentResolver.java +++ b/spring-webflux/src/main/java/org/springframework/web/reactive/result/method/annotation/MatrixVariableMapMethodArgumentResolver.java @@ -90,11 +90,11 @@ public Object resolveArgumentValue(MethodParameter parameter, BindingContext bin } else { for (MultiValueMap vars : matrixVariables.values()) { - for (String name : vars.keySet()) { - for (String value : vars.get(name)) { + vars.forEach((name, values) -> { + for (String value : values) { map.add(name, value); } - } + }); } } diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/FlashMap.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/FlashMap.java index 329f459a66d8..ae947f9f0aeb 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/FlashMap.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/FlashMap.java @@ -80,11 +80,11 @@ public String getTargetRequestPath() { */ public FlashMap addTargetRequestParams(@Nullable MultiValueMap params) { if (params != null) { - for (String key : params.keySet()) { - for (String value : params.get(key)) { + params.forEach((key, values) -> { + for (String value : values) { addTargetRequestParam(key, value); } - } + }); } return this; } diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/MatrixVariableMapMethodArgumentResolver.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/MatrixVariableMapMethodArgumentResolver.java index b66a24080de7..14819a2b4024 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/MatrixVariableMapMethodArgumentResolver.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/MatrixVariableMapMethodArgumentResolver.java @@ -86,11 +86,11 @@ public Object resolveArgument(MethodParameter parameter, @Nullable ModelAndViewC } else { for (MultiValueMap vars : matrixVariables.values()) { - for (String name : vars.keySet()) { - for (String value : vars.get(name)) { + vars.forEach((name, values) -> { + for (String value : values) { map.add(name, value); } - } + }); } } diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/support/RedirectAttributesModelMap.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/support/RedirectAttributesModelMap.java index 825b043f4f66..84fb2652e7d1 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/support/RedirectAttributesModelMap.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/support/RedirectAttributesModelMap.java @@ -111,9 +111,7 @@ public RedirectAttributesModelMap addAllAttributes(@Nullable Collection attri @Override public RedirectAttributesModelMap addAllAttributes(@Nullable Map attributes) { if (attributes != null) { - for (String key : attributes.keySet()) { - addAttribute(key, attributes.get(key)); - } + attributes.forEach(this::addAttribute); } return this; } @@ -125,11 +123,11 @@ public RedirectAttributesModelMap addAllAttributes(@Nullable Map attr @Override public RedirectAttributesModelMap mergeAttributes(@Nullable Map attributes) { if (attributes != null) { - for (String key : attributes.keySet()) { + attributes.forEach((key, attribute) -> { if (!containsKey(key)) { - addAttribute(key, attributes.get(key)); + addAttribute(key, attribute); } - } + }); } return this; } @@ -155,9 +153,7 @@ public Object put(String key, @Nullable Object value) { @Override public void putAll(@Nullable Map map) { if (map != null) { - for (String key : map.keySet()) { - put(key, formatValue(map.get(key))); - } + map.forEach((key, value) -> put(key, formatValue(value))); } } diff --git a/spring-websocket/src/main/java/org/springframework/web/socket/client/AbstractWebSocketClient.java b/spring-websocket/src/main/java/org/springframework/web/socket/client/AbstractWebSocketClient.java index 56b6e65e5701..5bf3522d6e50 100644 --- a/spring-websocket/src/main/java/org/springframework/web/socket/client/AbstractWebSocketClient.java +++ b/spring-websocket/src/main/java/org/springframework/web/socket/client/AbstractWebSocketClient.java @@ -84,12 +84,11 @@ public final ListenableFuture doHandshake(WebSocketHandler web HttpHeaders headersToUse = new HttpHeaders(); if (headers != null) { - for (String header : headers.keySet()) { - List values = headers.get(header); + headers.forEach((header, values) -> { if (values != null && !specialHeaders.contains(header.toLowerCase())) { headersToUse.put(header, values); } - } + }); } List subProtocols = diff --git a/spring-websocket/src/main/java/org/springframework/web/socket/client/jetty/JettyWebSocketClient.java b/spring-websocket/src/main/java/org/springframework/web/socket/client/jetty/JettyWebSocketClient.java index 8f4af0214ca7..9043df396d16 100644 --- a/spring-websocket/src/main/java/org/springframework/web/socket/client/jetty/JettyWebSocketClient.java +++ b/spring-websocket/src/main/java/org/springframework/web/socket/client/jetty/JettyWebSocketClient.java @@ -147,9 +147,7 @@ public ListenableFuture doHandshakeInternal(WebSocketHandler w request.addExtensions(new WebSocketToJettyExtensionConfigAdapter(e)); } - for (String header : headers.keySet()) { - request.setHeader(header, headers.get(header)); - } + headers.forEach(request::setHeader); Principal user = getUser(); final JettyWebSocketSession wsSession = new JettyWebSocketSession(attributes, user); diff --git a/spring-websocket/src/main/java/org/springframework/web/socket/config/annotation/AbstractWebSocketHandlerRegistration.java b/spring-websocket/src/main/java/org/springframework/web/socket/config/annotation/AbstractWebSocketHandlerRegistration.java index fe3d1b9ed5d9..0e180c1ae33c 100644 --- a/spring-websocket/src/main/java/org/springframework/web/socket/config/annotation/AbstractWebSocketHandlerRegistration.java +++ b/spring-websocket/src/main/java/org/springframework/web/socket/config/annotation/AbstractWebSocketHandlerRegistration.java @@ -153,21 +153,21 @@ protected final M getMappings() { M mappings = createMappings(); if (this.sockJsServiceRegistration != null) { SockJsService sockJsService = this.sockJsServiceRegistration.getSockJsService(); - for (WebSocketHandler wsHandler : this.handlerMap.keySet()) { - for (String path : this.handlerMap.get(wsHandler)) { + this.handlerMap.forEach((wsHandler, paths) -> { + for (String path : paths) { String pathPattern = (path.endsWith("/") ? path + "**" : path + "/**"); addSockJsServiceMapping(mappings, sockJsService, wsHandler, pathPattern); } - } + }); } else { HandshakeHandler handshakeHandler = getOrCreateHandshakeHandler(); HandshakeInterceptor[] interceptors = getInterceptors(); - for (WebSocketHandler wsHandler : this.handlerMap.keySet()) { - for (String path : this.handlerMap.get(wsHandler)) { + this.handlerMap.forEach((wsHandler, paths) -> { + for (String path : paths) { addWebSocketHandlerMapping(mappings, wsHandler, handshakeHandler, interceptors, path); } - } + }); } return mappings; diff --git a/spring-websocket/src/main/java/org/springframework/web/socket/config/annotation/ServletWebSocketHandlerRegistry.java b/spring-websocket/src/main/java/org/springframework/web/socket/config/annotation/ServletWebSocketHandlerRegistry.java index 6be3b68c6c95..d415f6200ba8 100644 --- a/spring-websocket/src/main/java/org/springframework/web/socket/config/annotation/ServletWebSocketHandlerRegistry.java +++ b/spring-websocket/src/main/java/org/springframework/web/socket/config/annotation/ServletWebSocketHandlerRegistry.java @@ -127,11 +127,11 @@ public AbstractHandlerMapping getHandlerMapping() { for (ServletWebSocketHandlerRegistration registration : this.registrations) { updateTaskScheduler(registration); MultiValueMap mappings = registration.getMappings(); - for (HttpRequestHandler httpHandler : mappings.keySet()) { - for (String pattern : mappings.get(httpHandler)) { + mappings.forEach((httpHandler, patterns) -> { + for (String pattern : patterns) { urlMap.put(pattern, httpHandler); } - } + }); } WebSocketHandlerMapping hm = new WebSocketHandlerMapping(); hm.setUrlMap(urlMap); diff --git a/spring-websocket/src/main/java/org/springframework/web/socket/config/annotation/WebMvcStompEndpointRegistry.java b/spring-websocket/src/main/java/org/springframework/web/socket/config/annotation/WebMvcStompEndpointRegistry.java index fd1d854739da..ac162ef97ba4 100644 --- a/spring-websocket/src/main/java/org/springframework/web/socket/config/annotation/WebMvcStompEndpointRegistry.java +++ b/spring-websocket/src/main/java/org/springframework/web/socket/config/annotation/WebMvcStompEndpointRegistry.java @@ -150,11 +150,11 @@ public AbstractHandlerMapping getHandlerMapping() { Map urlMap = new LinkedHashMap<>(); for (WebMvcStompWebSocketEndpointRegistration registration : this.registrations) { MultiValueMap mappings = registration.getMappings(); - for (HttpRequestHandler httpHandler : mappings.keySet()) { - for (String pattern : mappings.get(httpHandler)) { + mappings.forEach((httpHandler, patterns) -> { + for (String pattern : patterns) { urlMap.put(pattern, httpHandler); } - } + }); } WebSocketHandlerMapping hm = new WebSocketHandlerMapping(); hm.setUrlMap(urlMap); diff --git a/spring-websocket/src/main/java/org/springframework/web/socket/server/standard/AbstractTyrusRequestUpgradeStrategy.java b/spring-websocket/src/main/java/org/springframework/web/socket/server/standard/AbstractTyrusRequestUpgradeStrategy.java index 8b48a583a605..6b76794ec54d 100644 --- a/spring-websocket/src/main/java/org/springframework/web/socket/server/standard/AbstractTyrusRequestUpgradeStrategy.java +++ b/spring-websocket/src/main/java/org/springframework/web/socket/server/standard/AbstractTyrusRequestUpgradeStrategy.java @@ -184,9 +184,7 @@ private RequestContext createRequestContext(HttpServletRequest request, String e .secure(request.isSecure()) .remoteAddr(request.getRemoteAddr()) .build(); - for (String header : headers.keySet()) { - context.getHeaders().put(header, headers.get(header)); - } + headers.forEach((header, value) -> context.getHeaders().put(header, value)); return context; }