Brian Clozel
839b6c18d4
Optimize Flux pipeline in ClientHttpRequest
2017-07-04 10:11:56 +02:00
Arjen Poutsma
f8589d9eca
Return MultiValueMap from ServerRequest.queryParams instead of List
...
This commit changes ServerRequest.queryParams from returning a
List<String> given a String name, to returning a
MultiValueMap<String, String>, which gives more flexibility.
2017-07-03 16:23:33 +02:00
Arjen Poutsma
2ccbc55ffd
Use PathContainer in web.reactive.function.server
...
This commit uses the newly introduced `PathContainer` and `RequestPath`
support in the functional web framework. It exposes the path container
as property in `ServerRequest`, and uses that in the path-based
`RequestPredicates`.
2017-07-03 13:36:30 +02:00
Sebastien Deleuze
727ca4514a
Stream custom types in Jackson2JsonEncoder
...
Issue: SPR-15727
2017-07-03 10:25:59 +02:00
Sebastien Deleuze
9901c38f9d
Improve logging of DefaultCorsProcessor for rejected headers
...
Issue: SPR-15708
2017-07-03 09:47:43 +02:00
Sebastien Deleuze
1fa8410995
Leverage RFC_1123_DATE_TIME formatter in tests
...
Issue: SPR-15661
2017-07-02 22:33:43 +02:00
Sam Brannen
f790337880
Clean up warnings in spring-test
2017-07-02 21:28:39 +02:00
Rossen Stoyanchev
9528c3532d
Fix typo
2017-07-01 21:07:08 -04:00
Rossen Stoyanchev
15cf9c1d78
Switch to ContainerPath variants in HandlerMapping's
2017-07-01 20:05:17 -04:00
Rossen Stoyanchev
145eab9c2f
Remove PathMatchResultComparator
...
Follow-up change to the previous commit.
2017-07-01 17:27:54 -04:00
Rossen Stoyanchev
a5e54788cc
Remove PathPatternComparator
...
Direct comparison of a pattern (as a String) to the path does not make
much sense now that we deal with URL encoding through PathContainer
which exposes (safely) decoded path segments.
Removing the PathPatternComparator also means we can keep patterns
pre-sorted instead of sorting them all the time. That probably offsets
any benefits from comparing to the lookup path for direct matches and
patterns are still sorted according to specificity.
2017-06-30 18:19:35 -04:00
Rossen Stoyanchev
850083ca6c
Polish
2017-06-30 18:19:35 -04:00
Rossen Stoyanchev
8581afa621
WebFlux compiles after PathPattern/Container changes
2017-06-30 18:19:35 -04:00
Andy Clement
26448a0ebc
Rework matching to use PathContainer
2017-06-30 18:19:35 -04:00
Rossen Stoyanchev
fc3fcf05fd
Refactor PathSegmentContainer -> PathContainer
...
The new PathContainer represent the path as a series of elements
including separators. This naturally represents leading/trailing
slashes and empty path segments which in turn makes it easier to match
in PathPattern as well as to reconstruct the path.
2017-06-30 18:19:35 -04:00
Juergen Hoeller
6534359473
FactoryBean object cache cleared on shutdown
...
Issue: SPR-15722
2017-06-30 20:57:15 +02:00
Juergen Hoeller
9afce23845
WebSocketSession.getUri() may return null
...
Issue: SPR-15721
2017-06-30 20:56:21 +02:00
Arjen Poutsma
930f0f1760
Add ServerRequest.cookies()
...
This commit introduces a cookies() method on ServerRequest, returning a
MultiValueMap<String, HttpCookie>.
Issue: SPR-15715
2017-06-30 16:31:37 +02:00
Arjen Poutsma
621df7c978
Add ByteBuf leak detection @Rule
...
This commit introduces a JUnit rule that detects ByteBuf leaks in
subclasses of AbstractDataBufferAllocatingTestCase.
2017-06-30 10:52:00 +02:00
Juergen Hoeller
b33d8c6ade
Merge pull request #1467 from violetagg/deferred-result-handle-error
...
Polish - the flag continueProcessing is not needed
2017-06-30 10:33:39 +02:00
Violeta Georgieva
5f020d1ee7
Polish - the flag continueProcessing is not needed
2017-06-30 09:59:32 +03:00
Juergen Hoeller
5f4d1a4628
CronSequenceGenerator.isValidExpression actually validates cron fields
...
Issue: SPR-15604
2017-06-30 01:54:32 +02:00
Juergen Hoeller
cc74a2891a
@Nullable all the way: null-safety at field level
...
This commits extends nullability declarations to the field level, formalizing the interaction between methods and their underlying fields and therefore avoiding any nullability mismatch.
Issue: SPR-15720
2017-06-30 01:54:16 +02:00
Juergen Hoeller
c4694c3f5c
WebAsyncManager defensively ignores attribute type mismatch
...
Issue: SPR-15709
2017-06-30 01:53:30 +02:00
Juergen Hoeller
af69c5b6a9
Upgrade to AspectJ 1.9 beta 6
...
Issue: SPR-15686
2017-06-30 01:53:22 +02:00
Rossen Stoyanchev
8f4eb23540
Remove use of Optional in SyncHandlerMethodArgumentResolver
...
... and a couple more protected methods in WebFlux
Issue: SPR-15718
2017-06-29 17:19:48 -04:00
Rossen Stoyanchev
7de6cfa1df
Refactor WebSession#getAttribute options
...
Issue: SPR-15718
2017-06-29 15:23:36 -04:00
Rossen Stoyanchev
9253facf02
Refactor ServerWebExchange#getAttribute options
...
Issue: SPR-15718
2017-06-29 14:55:30 -04:00
Stephane Maldini
cd643704ad
Update to reactor core 3.1.0.B-S with context update for monoSendOperator
...
Explicit typing for older jvm compilation in BodyExtractor
2017-06-29 10:47:28 -07:00
Rossen Stoyanchev
67330dfc23
Expose mapped handler as an exchange attribute
...
Issue: SPR-15564
2017-06-29 13:18:39 -04:00
Arjen Poutsma
58a5e7f17b
Proper closing of resources
...
This commit introduces a `doFinally` block that properly signals the
end of input for the non-blocking XML and JSON parsers.
2017-06-29 16:48:53 +02:00
Arjen Poutsma
9d7b8503d0
Delay DataBuffer release until stream is closed
...
This commit changes the release of data buffers from a finally block
into a `doFinally()` lambda on the returned `Flux<XMLEvent>` stream.
Issue: SPR-15707
2017-06-29 16:19:03 +02:00
Stephane Nicoll
b1f06fddd2
Polish
...
Issue: SPR-14528
2017-06-29 10:26:50 +02:00
Arjen Poutsma
33f99910dd
Change spaces to tabs in build.gradle
2017-06-28 16:41:26 +02:00
Arjen Poutsma
31e0e53750
Leverage Jackson non-blocking parser
...
This commit introduces the Jackson2Tokenizer as a replacement for the
JsonObjectDecoder. The latter was dropped because of its complexity, and
hard dependency on Netty's ByteBuf.
The new Jackson2Tokenizer leverages the new non-blocking JSON parser,
using it to parse the incoming data buffers into TokenBuffers, each
token buffer representing one JSON object. As with JsonObjectDecoder,
it also supports streaming individual JSON array elements.
Issue: SPR-14528
2017-06-28 16:19:01 +02:00
Arjen Poutsma
b778f94a07
Made ObjectMapper field private with protected accessor
2017-06-28 16:19:01 +02:00
Rossen Stoyanchev
667437e300
Polish
2017-06-27 18:48:45 -04:00
Sebastien Deleuze
d728d597f2
Add missing license headers in Kotlin files
2017-06-27 14:39:26 +02:00
Juergen Hoeller
87430f3cd3
ListenableFuture provides CompletableFuture adaptation via completable()
...
Issue: SPR-15696
2017-06-27 00:43:37 +02:00
Juergen Hoeller
98642c7e29
Consistent ScriptTemplateView locale resolution via request
...
Issue: SPR-15064
2017-06-26 23:28:49 +02:00
Juergen Hoeller
41eaf03bc8
Compatibility with covariant return type on JDK 9's ByteBuffer
...
Issue: SPR-15686
2017-06-26 23:22:28 +02:00
Rossen Stoyanchev
cea1a0f1ca
Polish
2017-06-26 15:51:17 -04:00
Violeta Georgieva
9cb74b1399
Enable suspend/resume on reactive TomcatWebSocketSession
2017-06-26 15:39:02 -04:00
Rossen Stoyanchev
5b8f7f503f
Deprecate adapter classes for async interceptors
2017-06-26 15:34:51 -04:00
Rossen Stoyanchev
eb0479dee8
Polish
2017-06-26 14:50:11 -04:00
Violeta Georgieva
e0678ba583
Add onError callback to DeferredResult
...
Issue: SPR-15614
2017-06-26 14:12:56 -04:00
Juergen Hoeller
140542e8b1
Polishing
2017-06-26 18:59:17 +02:00
Juergen Hoeller
098ff6f0f8
Compatibility with JDK 9 release candidate build (175)
...
Includes upgrade to Objenesis 2.6, Gradle 3.5.1, RxJava 2.1.1, JSON Binding API 1.0 final.
Issue: SPR-15686
Issue: SPR-15600
2017-06-26 18:58:59 +02:00
Juergen Hoeller
155a1c6c71
AsyncHandlerInterceptor.afterConcurrentHandlingStarted declared as default method
...
Issue: SPR-15702
2017-06-26 18:58:39 +02:00
Sebastien Deleuze
ba3a12e4cc
Use fixed GMT time-zone for WebSession Clock
...
Issue: SPR-15675
2017-06-26 18:01:21 +02:00