Commit Graph

13816 Commits

Author SHA1 Message Date
Rossen Stoyanchev 935577f00b Replace WebSocketHandlerAdapterSupport with delegation
This commit removes the base class WebSocketHandlerAdapterSupport which
was mainly a container for properties. Instead we use a
java.util.Function to create the WebSocketSession which differs in any
way by client and server, which in turn allows  HandshakeInfo to become
a simple immutable container once again.

Also for Undertow the WebSocketConnectionCallback implementation has
been moved into the server.upgrade package since it is for server-side
use only.

Issue: SPR-14527
2016-12-23 17:23:23 -05:00
Violeta Georgieva d49ab90187 Jetty/Standard/UndertowWebSocketClient headers test 2016-12-23 17:23:22 -05:00
Violeta Georgieva b4b7b163d1 Add WebSocketClient for Undertow
Issue: SPR-14527
2016-12-23 17:23:22 -05:00
Violeta Georgieva 30ee71ea1a Add WebSocketClient for Java WebSocket (JSR-356)
Issue: SPR-14527
2016-12-23 17:23:22 -05:00
Violeta Georgieva bd09a76a1e Add WebSocketClient for Jetty
Issue: SPR-14527
2016-12-23 17:23:22 -05:00
Violeta Georgieva 113d1b6970 Polishing 2016-12-23 17:23:22 -05:00
Juergen Hoeller ef5c797569 Polishing 2016-12-23 21:23:30 +01:00
Juergen Hoeller 3295a4e6ef ConfigurationClassParser enforces @Bean declaration order through ASM metadata
Issue: SPR-14505
2016-12-23 20:29:12 +01:00
Juergen Hoeller 8147c112f5 LinkedCaseInsensitiveMap delegates to LinkedHashMap instead of extending it
Issue: SPR-15026
2016-12-23 18:57:50 +01:00
Juergen Hoeller d3f97e3092 ObjectProvider offers getIfAvailable/getIfUnique variants with default supplier
Issue: SPR-14980
2016-12-23 18:49:12 +01:00
Juergen Hoeller 54b8aab1c6 Kotlin plugin conditionally deactivated on JDK 9 2016-12-23 18:45:51 +01:00
Sebastien Deleuze fbf88d19da Allow to specify hints with the functional web API
The most common use case is specifying JSON views.

ServerResponse.BodyBuilder#hint(String, Object) allows to
specify response body serialization hints.

ServerRequest#body(BodyExtractor, Map) allows to specify
request body extraction hints.

Issue: SPR-15030
2016-12-23 17:58:34 +01:00
Juergen Hoeller f51fe5fd39 Polishing 2016-12-23 12:27:07 +01:00
Juergen Hoeller e788b8467d GenericApplicationContext offers Supplier-based registration with BeanDefinitionCustomizer callback
Issue: SPR-14832
2016-12-23 12:26:47 +01:00
Rossen Stoyanchev a86f89daa8 Update repositories 2016-12-22 22:23:31 -05:00
Rossen Stoyanchev 3d1b6fd362 Add WebSocket integration test 2016-12-22 22:07:02 -05:00
Stephane Maldini dc9f338add Update to reactor core 3.0.4 and netty 0.6 RELEASE (from repo.spring.io/release) 2016-12-23 03:02:16 +00:00
Juergen Hoeller 5c48daa8eb Remove unused Log object from MessageHeaderAccessor
Issue: SPR-15045
2016-12-22 23:34:19 +01:00
Juergen Hoeller 2819f7c781 Polishing 2016-12-22 22:36:07 +01:00
Juergen Hoeller ae62341fa3 Avoid deprecated Scheduler.shutdown() in favor of Scheduler.dispose() 2016-12-22 22:35:54 +01:00
Rossen Stoyanchev 3719f75d3b Minor refactoring + polish
- RxNettyWebSocketSession filters out WebSocketCloseFrame again
- add before/afterHandshake helper methods in WebSocketClientSupport
- log request headers on server and response headers on client
- polish 400 request handling in HandshakeWebSocketService
2016-12-22 16:18:15 -05:00
Juergen Hoeller d64d9ab370 Consistent ClassLoader propagation and ConcurrentHashMap setup for AspectJ pointcuts
Issue: SPR-15040
2016-12-22 17:00:04 +01:00
Rossen Stoyanchev 0d0d461903 Use WebSocketFrameAggregator for Reactor and RxNetty
WebSocket frames are now aggregated through a Netty decoder so that
we always receive fully assembled messages by default capped at 64K.

Issue: SPR-14527
2016-12-21 14:14:37 -05:00
Rossen Stoyanchev 00387c3bbd Re-enable Reactor WebSocket integration tests 2016-12-21 12:39:56 -05:00
Brian Clozel 54901ab865 Avoid explicit DecoratedObjectFactory setup in JettyRequestUpgradeStrategy
Align Jetty support on spring-websocket module.

Issue: SPR-14940
2016-12-21 17:27:27 +01:00
Sebastien Deleuze 7b183048b8 Introduce SSE support in WebClient
Issue: SPR-14539
2016-12-21 17:24:45 +01:00
Sebastien Deleuze 69b69442bc Add ServerSentEventHttpMessageReader
This HTTP message reader parse incoming Server-Sent
Events and turn them into Flux<String>, Flux<Pojo>
or Flux<ServerSentEvent>.

Issue: SPR-14539
2016-12-21 17:07:41 +01:00
Sebastien Deleuze 183b326f6d Add ServerSentEvent#toString() 2016-12-21 16:46:43 +01:00
Sebastien Deleuze 419d2b4e0a Polish ServerSentEventHttpMessageWriterTests 2016-12-21 16:46:43 +01:00
Sebastien Deleuze a8d8273dc1 Fix a typo in ServerSentEventHttpMessageWriter Javadoc 2016-12-21 16:46:42 +01:00
Juergen Hoeller b54aee27be Polishing 2016-12-21 14:42:43 +01:00
Juergen Hoeller 598122fe8a Avoid package cycle between http.server and web.util 2016-12-21 14:42:32 +01:00
Juergen Hoeller 98d306f558 Upgrade to RxJava 2.0.3 and XMLUnit 2.3 2016-12-21 14:41:25 +01:00
Juergen Hoeller 4125825cf3 Upgrade to Hibernate ORM 5.2.6 2016-12-21 09:59:43 +01:00
Juergen Hoeller 483abfe266 Avoid explicit DecoratedObjectFactory setup in JettyRequestUpgradeStrategy
Issue: SPR-14940
(cherry picked from commit 709d4ba)
2016-12-21 09:56:13 +01:00
Sebastien Deleuze e07d110a67 Update to reactor-core 3.0.4.BUILD-SNAPSHOT 2016-12-21 08:40:19 +01:00
Stephane Maldini 804935a8eb try less log and increase timeout 2016-12-21 00:48:29 +00:00
Sebastien Deleuze a1ae9ac1bd Add ServerHttpRequest.Builder#header(String, String)
This method allows to set or override easily a specific header value.
2016-12-20 23:54:22 +01:00
Sebastien Deleuze 712a63205c Add HttpHeaders#setAcceptLanguageAsLocale(Locale)
Issue: SPR-15024
2016-12-20 22:33:09 +01:00
Juergen Hoeller 82c1c859d9 Polishing
(cherry picked from commit 9cb4de8)
2016-12-20 21:17:48 +01:00
Juergen Hoeller 154ef8bf10 Polishing 2016-12-20 19:57:52 +01:00
Juergen Hoeller 9005481a49 Supplier registration support for annotated bean classes
Issue: SPR-14832
2016-12-20 19:57:44 +01:00
Rossen Stoyanchev 3b987c263c Sub-protocol negotiation for reactive WebSocket support
Issue: SPR-14527
2016-12-20 12:22:24 -05:00
Stephane Maldini 241d5f7a3b Sync reactor-netty client response update and uncomment in tests 2016-12-20 14:37:32 +00:00
Juergen Hoeller 97ea22cb4a Defensively catch any exception from match attempts (for compatibility with AspectJ 1.8.10)
Issue: SPR-15019
2016-12-20 12:17:51 +01:00
Juergen Hoeller f6b2a21206 ConfigurationClassPostProcessor programmatically registers unified ImportAwareBeanPostProcessor
Issue: SPR-14931
2016-12-20 12:16:16 +01:00
Rossen Stoyanchev 30df137273 HandshakeWebSocketService detects upgrade strategies
Issue: SPR-14527
2016-12-19 18:30:14 -05:00
Rossen Stoyanchev 47e141675f Minor refactoring + polish reactive WebSocket support
Rename classes not specific to Tomcat:
TomcatWebSocketSession -> StandardWebSocketSession
TomcatWebSocketHandlerAdapter -> StandardWebSocketHandlerAdapter

WebSocketSessionSupport is renamed to AbstractWebSocketSession since it
actually is a WebSocketSession and pre-implements a number of methods.

ServerEndpointRegistration is now package private (mainly for use in
upgrade strategies) and renamed to DefaultServerEndpointConfig.
2016-12-19 18:16:36 -05:00
Rossen Stoyanchev 5fd600d2ad Fix failing test 2016-12-19 15:29:00 -05:00
Rossen Stoyanchev 1243556047 Add Reactor Netty WebSocketClient support
Issue: SPR-14527
2016-12-19 14:57:10 -05:00