syncBody better differentiates plain vs multipart forms
FromHttpMessageWriter and MultipartHttpMessageWriter both support
MultiValueMap except the former supports String values only. This
presents an issue since either full generic type information must be
provided, which is cumbersome on the client side, or if left out there
is no good way to order the writers to make a proper decision.
This commit:
- refines the canWrite behavior of to not a
accept MultiValueMap without proper generic information unless the
MediaType is explicitly set providing a strong hint.
- modifies MultipartHttpMessageWriter to be configured with a
FormHttpMessageWriter so it can write both plan and multipart data with
the ability to properly differentiate based on actual map values.
Issue: SPR-16131
@ -53,6 +64,9 @@ public class FormHttpMessageWriter implements HttpMessageWriter<MultiValueMap<St
@@ -53,6 +64,9 @@ public class FormHttpMessageWriter implements HttpMessageWriter<MultiValueMap<St
@ -75,12 +89,27 @@ public class FormHttpMessageWriter implements HttpMessageWriter<MultiValueMap<St
@@ -75,12 +89,27 @@ public class FormHttpMessageWriter implements HttpMessageWriter<MultiValueMap<St
@ -96,11 +125,8 @@ public class FormHttpMessageWriter implements HttpMessageWriter<MultiValueMap<St
@@ -96,11 +125,8 @@ public class FormHttpMessageWriter implements HttpMessageWriter<MultiValueMap<St
@ -118,17 +144,20 @@ public class FormHttpMessageWriter implements HttpMessageWriter<MultiValueMap<St
@@ -118,17 +144,20 @@ public class FormHttpMessageWriter implements HttpMessageWriter<MultiValueMap<St
@ -145,9 +174,4 @@ public class FormHttpMessageWriter implements HttpMessageWriter<MultiValueMap<St
@@ -145,9 +174,4 @@ public class FormHttpMessageWriter implements HttpMessageWriter<MultiValueMap<St
@ -106,14 +153,15 @@ public class MultipartHttpMessageWriter implements HttpMessageWriter<MultiValueM
@@ -106,14 +153,15 @@ public class MultipartHttpMessageWriter implements HttpMessageWriter<MultiValueM
@ -121,19 +169,47 @@ public class MultipartHttpMessageWriter implements HttpMessageWriter<MultiValueM
@@ -121,19 +169,47 @@ public class MultipartHttpMessageWriter implements HttpMessageWriter<MultiValueM
@ -99,12 +99,11 @@ public class DefaultClientCodecConfigurer extends AbstractCodecConfigurer implem
@@ -99,12 +99,11 @@ public class DefaultClientCodecConfigurer extends AbstractCodecConfigurer implem
@ -122,7 +121,7 @@ public class DefaultClientCodecConfigurer extends AbstractCodecConfigurer implem
@@ -122,7 +121,7 @@ public class DefaultClientCodecConfigurer extends AbstractCodecConfigurer implem
@ -52,8 +52,7 @@ public class MultipartIntegrationTests extends AbstractRouterFunctionIntegration
@@ -52,8 +52,7 @@ public class MultipartIntegrationTests extends AbstractRouterFunctionIntegration
@ -67,8 +66,7 @@ public class MultipartIntegrationTests extends AbstractRouterFunctionIntegration
@@ -67,8 +66,7 @@ public class MultipartIntegrationTests extends AbstractRouterFunctionIntegration
@ -83,8 +82,7 @@ public class MultipartIntegrationTests extends AbstractHttpHandlerIntegrationTes
@@ -83,8 +82,7 @@ public class MultipartIntegrationTests extends AbstractHttpHandlerIntegrationTes
@ -98,8 +96,7 @@ public class MultipartIntegrationTests extends AbstractHttpHandlerIntegrationTes
@@ -98,8 +96,7 @@ public class MultipartIntegrationTests extends AbstractHttpHandlerIntegrationTes
@ -114,8 +111,7 @@ public class MultipartIntegrationTests extends AbstractHttpHandlerIntegrationTes
@@ -114,8 +111,7 @@ public class MultipartIntegrationTests extends AbstractHttpHandlerIntegrationTes
@ -130,8 +126,7 @@ public class MultipartIntegrationTests extends AbstractHttpHandlerIntegrationTes
@@ -130,8 +126,7 @@ public class MultipartIntegrationTests extends AbstractHttpHandlerIntegrationTes