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
Rossen Stoyanchev
043c0eff4f
Same session after mutate for WebTestClient mock server
...
Issue: SPR-15674
2017-06-23 19:19:14 -04:00
Sebastien Deleuze
d57cd37266
Upgrade to Kotlin 1.1.3
...
This commit also enables Kotlin build with JDK 9 since this new
version supports it.
2017-06-24 01:13:22 +02:00
Rossen Stoyanchev
97390fd939
Polish
2017-06-23 17:05:57 -04:00
Rossen Stoyanchev
12850c5fc4
Fix test failure by using the new cloneBuilder method
...
The cloneBuilder helps to avoid the issue in the comment of the ticket.
Rather than creating the WebClient to then obtain a fresh builder which
causes connector instantiation, we now use the cloneBuilder
Issue: SPR-15674
2017-06-23 16:22:10 -04:00
Brian Clozel
8ac29c8ce7
Add cloneBuilder method on WebClient.Builder
...
This commit adds a new `cloneBuilder()` method on `WebClient.Builder`;
we can now reuse the customizations of an existing builder without
sharing its state across several `WebClient` building code paths.
Issue: SPR-15690
2017-06-23 16:16:23 -04:00
Rossen Stoyanchev
8fc3b3bc37
Add WebTestClientConfigurer
...
Issue: SPR-15674
2017-06-23 14:45:46 -04:00
Rossen Stoyanchev
4db0ce12e1
Add MockServerConfigurer to WebTestClient
...
Issue: SPR-15674
2017-06-23 10:46:59 -04:00
Rossen Stoyanchev
c37c59f578
Consumer methods for WebHttpHandlerBuilder
...
Replace the more limited List-based methods to add filtes and exception
handlers with Consumer<List<?>> variants.
2017-06-23 07:12:10 -04:00
Rossen Stoyanchev
782c595cf7
Polish
2017-06-22 18:33:27 -04:00
Eko Kurniawan Khannedy
ac68cc35c2
Ordered WebMvcConfigurer interceptor registrations
...
Issue: SPR-15620
2017-06-22 18:33:27 -04:00