Commit Graph

16965 Commits

Author SHA1 Message Date
Juergen Hoeller
2b2bf27933 Polishing 2018-07-25 15:26:52 +02:00
Juergen Hoeller
3881a4aded Polishing 2018-07-25 14:16:02 +02:00
Juergen Hoeller
3899b7a909 Refactor DefaultCodecs.protobufWriter into protobufEncoder
Includes nullability declarations for the protobuf package.

Issue: SPR-15776
2018-07-25 14:15:50 +02:00
Juergen Hoeller
fd8e4abe5d Introduce ResolvableType.toClass() shortcut
Issue: SPR-17086
2018-07-25 14:15:19 +02:00
Juergen Hoeller
31bfc1dc2b Differentiate internal LogAdapter from core.log.LogDelegateFactory
Issue: SPR-16585
Issue: SPR-17012
2018-07-25 14:14:38 +02:00
Sebastien Deleuze
d3b244a81b Optimize class detection by sharing the ClassLoader
Issue: SPR-17083
2018-07-25 11:09:42 +02:00
Rossen Stoyanchev
32faf09a80 Add check for mixing @EnableWebMvc and @EnableWebFlux
Issue: SPR-16609
2018-07-24 20:47:26 -04:00
Rossen Stoyanchev
0be8c20fca Consistent logging of selected media types 2018-07-24 20:47:26 -04:00
sdeleuze
36a07aa897 Support Protobuf serialization in WebFlux
This commit introduces Protobuf support in WebFlux via dedicated
codecs.

Flux<Message> are serialized/deserialized using delimited Protobuf
messages with the size of each message specified before the message
itself. In that case, a "delimited=true" parameter is added to the
content type.

Mono<Message> are expected to use regular Protobuf message
format (without the size prepended before the message).

Related HttpMessageReader/Writer are automatically registered when the
"com.google.protobuf:protobuf-java" library is detected in the classpath,
and can be customized easily if needed via CodecConfigurer, for example
to specify protocol extensions via the ExtensionRegistry based
constructors.

Both "application/x-protobuf" and "application/octet-stream" mime types
are supported.

Issue: SPR-15776
2018-07-25 01:17:06 +02:00
Juergen Hoeller
4475c67ba8 Fix checkstyle violation 2018-07-24 22:44:54 +02:00
Brian Clozel
195f3f07e7 ResponseEntityResultHandler overwrites headers
Prior to this commit, controller handlers (regular and exception
handlers as well) would not overwrite existing HTTP response headers on
the exchange. This would lead to situations where Content-Type values
set during the initial handling phase would not be overwritten when
handling an error later on.

This commit aligns the implementation of that result handler on the
Spring MVC one in that regard.

Issue: SPR-17082
2018-07-24 22:21:30 +02:00
Juergen Hoeller
90d395edcf Polishing 2018-07-24 22:18:12 +02:00
Rossen Stoyanchev
2e4f5a7923 Consistently remove forwarded headers in WebFlux
Preparation for SPR-17072
2018-07-24 16:05:47 -04:00
Rossen Stoyanchev
41aa4218af Polish WebFlux ForwardedHeaderFilter and tests
Preparation for SPR-17072
2018-07-24 16:05:47 -04:00
Juergen Hoeller
02403f6a34 Polishing 2018-07-24 21:44:43 +02:00
Juergen Hoeller
11881ff211 Polishing 2018-07-24 18:45:52 +02:00
Juergen Hoeller
a18cfd71b9 Upgrade to Reactor Californium M1
Issue: SPR-16386
2018-07-24 18:45:15 +02:00
Rossen Stoyanchev
2fdb8c9c8c Update STOMP section on working with subscriptions
1. Revise @SubscribeMapping to address common points of confusion.
2. Add ExecutorSubsribableChannel.
3. Split Events and Interception in two.

Issue: SPR-16950
2018-07-24 12:23:13 -04:00
Rossen Stoyanchev
9b2c8404dc "Order of messages" in STOMP section of reference docs
Issue: SPR-13989
2018-07-24 12:23:13 -04:00
Rossen Stoyanchev
23c379d5c0 Order setter for DefaultSimpUserRegistry
Issue: SPR-17023
2018-07-24 12:23:13 -04:00
Sebastien Deleuze
36bbbab02d Deprecate ExtensionRegistryInitializer in protobuf support
In order to be consistent with SPR-15776, and since it does not
provide clear added value, this commit deprecates
ExtensionRegistryInitializer and uses ExtensionRegistry
parameter instead in ProtobufHttpMessageConverter and
ProtobufJsonFormatHttpMessageConverter constructors.

Issue: SPR-17081
2018-07-24 17:25:55 +02:00
Juergen Hoeller
dd4468a74a Polishing 2018-07-24 16:16:52 +02:00
Juergen Hoeller
7f1a8d78b5 BeanFactoryAdvisorRetrievalHelper avoids synchronization for name cache
Issue: SPR-16570
2018-07-24 16:16:44 +02:00
Juergen Hoeller
47d8fe83df Upgrade to Interceptor API 1.2.2, Moneta 1.3, Rome 1.11 2018-07-24 14:44:56 +02:00
Juergen Hoeller
fac2e35f96 Refactor util.log.LogUtils into core.log.LogDelegateFactory
Issue: SPR-17012
2018-07-24 14:44:34 +02:00
Juergen Hoeller
20c34cbb9b Provide predetermined capacity for cache operation collections
Issue: SPR-17079
2018-07-24 13:27:02 +02:00
Juergen Hoeller
8e5f243320 Upgrade to Mockito 2.20 2018-07-24 13:09:32 +02:00
Juergen Hoeller
a9c9ba6601 Generic matching for ObjectProvider stream and empty vararg resolution
Issue: SPR-11419
Issue: SPR-15338
2018-07-24 13:03:54 +02:00
Rossen Stoyanchev
6372c0f47c Ensure headers work with ResponseEntity + reactive body
Issue: SPR-17076
2018-07-24 00:24:29 -04:00
Rossen Stoyanchev
7500b144ae Option to preserve publish order
Issue: SPR-13989
2018-07-23 23:24:39 -04:00
Juergen Hoeller
430250c80f Upgrade to RxJava 2.1.17 2018-07-24 01:10:27 +02:00
Juergen Hoeller
5f51e86185 Avoid relying on runtime constructor order for argument conversion 2018-07-24 01:04:47 +02:00
Juergen Hoeller
1b09718104 Polishing 2018-07-24 00:45:21 +02:00
Juergen Hoeller
1603c4ab2f Programmatic ObjectProvider retrieval through BeanFactory API
Introduces getBeanProvider(Class) and getBeanProvider(ResolvableType), also narrowing getBean(String, Class) and isTypeMatch(String, Class) to a non-null Class argument and enriching NoUniqueBeanDefinitionException with a full ResolvableType. In addition, ObjectProvider supports iterable/stream access for collection-style resolution of multiple matching beans now, and collection injection falls back to an empty collection in a single-constructor case with non-null arguments.

Issue: SPR-17075
Issue: SPR-11419
Issue: SPR-15338
2018-07-24 00:42:03 +02:00
Vedran Pavic
82194f4ee0 Set SameSite default to Lax
Issue: SPR-16418
2018-07-23 18:23:05 +02:00
Sebastien Deleuze
0def1640f2 Support single-value reactive types in @MessageMapping
This commit adds support for single-value reactive types in
@MessageMapping by converting them using ReactiveAdapterRegistry
and MonoToListenableFutureAdapter.

MonoToListenableFutureAdapter previously package private and used only
in org.springframework.messaging.tcp.reactor has been moved to
org.springframework.messaging.support and made public in order to be
used by ReactiveReturnValueHandler as well.

Issue: SPR-16634
2018-07-23 15:20:48 +02:00
Sebastien Deleuze
b09fad13a1 Catch errors when adding SourceHttpMessageConverter
This commit ignores errors like TransformerFactoryConfigurationError
that can be thrown when instantiating SourceHttpMessageConverter on
platforms where no TransformerFactory implementation is available,
like when compiling/running as GraalVM native images.

Issue: SPR-17007
2018-07-23 10:39:26 +02:00
Sebastien Deleuze
f8f8d28f08 Support running Kotlin apps without kotlin-reflect
This commit includes an optimization of BeansUtils#instantiateClass
that favors Java reflection for default constructors before leveraging
Kotlin one for finding primary constructors and avoids Kotlin related
conditions when running in Java.

Issue: SPR-17069
2018-07-23 09:54:48 +02:00
Juergen Hoeller
bccff73e2b AspectJExpressionPointcut leniently ignores non-composable interfaces
Issue: SPR-17003
2018-07-22 22:28:48 +02:00
Juergen Hoeller
f58854f4b9 Locally cache factory method candidates per factory class
Issue: SPR-17071
2018-07-22 19:22:20 +02:00
Juergen Hoeller
13873dafb7 Polishing 2018-07-22 17:55:31 +02:00
Juergen Hoeller
cfbacfd89b Revise ResolvableType.as for introspection performance
This revision limits serializability of derived interfaces, superclasses and type parameters, optimizing for introspection performance instead.

Issue: SPR-17070
2018-07-22 17:49:53 +02:00
stsypanov
5051850fa9 SPR-17074 Replace iteration over Map::ketSet with Map::entrySet 2018-07-21 13:12:43 +02:00
Juergen Hoeller
3c65c17053 Correctly determine and propagate validation hints to DataBinder
Issue: SPR-17073
2018-07-21 12:19:37 +02:00
Rossen Stoyanchev
c57e1afd2b ResulatMatcher.matchAll
Issue: SPR-16417
2018-07-20 23:02:47 -04:00
Rossen Stoyanchev
91122ec0f5 Add Consumer methods to WebTestClient assertion classes
Issue: SPR-16574
2018-07-20 22:28:40 -04:00
Rossen Stoyanchev
20de5003ff Hamcrest methods in WebTestClient
Issue: SPR-16729
2018-07-20 17:40:38 -04:00
Rossen Stoyanchev
0c62d6b5da Polish
Leaving out hamcrest for now, to address more broadly.

Issue: SPR-16741
2018-07-20 17:40:38 -04:00
Eric Deandrea
2734f01067 Provide XML assertions in WebTestClient
Adds XML-based assertions in
org.springframework.test.web.reactive.server.WebTestClient.BodyContentSpec
for asserting against the XML body as well as xPath,
similar to those assertions offered when using
MockMvcResultMatchers.xpath().

Issue: SPR-16741
2018-07-20 17:38:04 -04:00
Juergen Hoeller
bb5d99a083 Upgrade to Hibernate ORM 5.3.3, Undertow 2.0.11, Mockito 2.19.1 2018-07-20 18:56:52 +02:00