Oleg Zhurakousky
384cd8509b
Fix previous commit's byte[] handling
2021-09-23 16:04:00 +02:00
Oleg Zhurakousky
bc5f449832
Fix handling of byte[] in MessageAwareJsonDecoder
2021-09-23 14:55:18 +02:00
Oleg Zhurakousky
28b1c86849
GH-745 Ensure RSocket support is ready to receive non-Message
2021-09-22 17:24:37 +02:00
Oleg Zhurakousky
acc5548b54
GH-745 Fix conversion issue with json Strings and byte[]
...
Resolves #745
2021-09-22 12:11:00 +02:00
Oleg Zhurakousky
f95c10337c
Split RSocket configuration from RSocketStrategiesCustomizer
2021-09-08 17:29:33 +02:00
Oleg Zhurakousky
2f425abb3f
Minor simplification in FunctionRSocketMessageHandler
2021-03-17 14:58:35 +01:00
Oleg Zhurakousky
93ce61f5ab
RSocket - Add Cbor test, fixed consumer test and minor cleanup
...
polish
2021-03-16 20:53:48 +01:00
Oleg Zhurakousky
d509640827
GH-667 Ensure delegation to other available argument resolvers
...
In RSocket module we provide custom argument resolver that is aware of how to create a Message if incoming data is application/json
However in the event it's anything else, this fix ensures that there is a delegation model to give other argument resolvers a chance
Resolves #667
2021-03-16 13:00:37 +01:00
Oleg Zhurakousky
51dd8cf1d5
Fix encoder/decoder to return decodableMimeTypes
...
This effectively fixes the Cbor exclusiion
2021-03-15 12:23:27 +01:00
Oleg Zhurakousky
2dea991c3e
Fix header propagation for rsocket message
2021-03-10 15:25:50 +01:00
Oleg Zhurakousky
485d6967bd
Fix checkstyle
2021-03-10 06:51:01 +01:00
Oleg Zhurakousky
9f8c29a4e7
Remove dependency on web classes from new Encoder/Decoder implementation
...
The web dependency still need to be there since it appears that spring-rsocket requires it
2021-03-05 15:08:25 +01:00
Oleg Zhurakousky
c8a0cebd1f
Cleanup 'handleAndReply' logic in RSocketListenerFunction
2021-03-05 09:51:59 +01:00
Oleg Zhurakousky
157949df93
Fix Message sanitizing logic in FunctionRSocketUtils
...
Only sanitize headers that are not serializable
2021-03-05 08:43:19 +01:00
Oleg Zhurakousky
fcd427ca29
GH-663 Fix how strtategies are used to register additional encoders/decoders
...
Resolves #663
2021-03-05 08:08:16 +01:00
Oleg Zhurakousky
f80d0de0a3
GH-660 Add initial suppport for sending/receiving Messages
...
Resolves #660
2021-03-03 06:38:33 +01:00
Oleg Zhurakousky
9d6a23f102
GH-654 Add more tests, cleanup and initial javadoc
2021-02-24 08:49:53 +01:00
Oleg Zhurakousky
40d0507609
GH-654 Fix how RoutingFunction is treated by RSocketListenerFunction
2021-02-23 16:58:37 +01:00
Oleg Zhurakousky
3b8b110e0a
GH-654 Initial support for non-SpEL based routing mechanism
2021-02-23 06:19:45 +01:00
Oleg Zhurakousky
427669a97c
Fix spelling error in constant name
2021-02-22 14:11:27 +01:00
Oleg Zhurakousky
386931966c
GH-653 Retain original 'lookupDestination' while adding 'reconsiledLookupDestination'
...
This is necessary to retain user provided information while also prpviding a way to reconsile the actual destination/function
2021-02-22 14:08:02 +01:00
Oleg Zhurakousky
59d0314435
GH-652 Improve error messaging and function exist check
...
FunctionRSocketUtils looks up function by a bean name hen it attempts to determine if there is a remote routing. That is not correct since bean name may not exist if function was manually registered. Also, the error message 'Must only contain one output redirect' was not clear as it was not showing the actual function name for propper debugging
Resolves #651
2021-02-22 12:19:57 +01:00
Oleg Zhurakousky
56b3c49120
GH-653 Make consistent priority order of function definition in RSocket
...
With this commit spring.cloud.function.routing-expression property takes precedence over all, then route(<function.definition>) and then spring.cloud.function.definition property
2021-02-22 11:11:55 +01:00
Oleg Zhurakousky
a161dfa660
Simplified RoutingFunction configuration
...
If routing-expression is provided there is no need to explicitely set function.definition to 'functionRouter'
2021-02-18 15:35:26 +01:00
Oleg Zhurakousky
72f05fc591
Refactor FunctionCatalog implementation
2020-10-16 17:59:06 +02:00
Oleg Zhurakousky
bf001bc754
Revert "Temporarily disable rsocket-routing-broker integration"
...
This reverts commit 63f655fb45 .
2020-09-23 17:12:46 +02:00
Oleg Zhurakousky
63f655fb45
Temporarily disable rsocket-routing-broker integration
2020-09-23 16:24:01 +02:00
Oleg Zhurakousky
e19ed2ff68
GH-587 Add support for inferring 'accept' content type for simple types
...
This fix also introduces new Function property 'accept' with no default value which implicitely would default to application/json unless the output type of the function is String at which point it would default to text/plain. However, if it was explicitely set in FunctionProperties it will be used regardless of the function output type.
Resolves #587
2020-09-16 18:14:40 +02:00
Oleg Zhurakousky
a4763ee879
Inject LOOKUP_DESTINATION_HEADER if definition property is not used
2020-09-15 13:51:49 +02:00
Oleg Zhurakousky
a057fea6b0
Remove dead code from FunctionRSocketMessageHandler
...
Add and clean up tests
2020-09-02 08:27:51 +02:00
Oleg Zhurakousky
f2f1432912
GH-585 Add initial support for passing/parsing Message headers
...
This woudl allow Message headers to be passed as JSON string via rsocket metadata
Resolves #585
2020-09-01 13:21:58 +02:00
Oleg Zhurakousky
f450e4a2eb
Add special handling for JSON Strings
...
Added support to JsonMessageConverter to pass string as is if input type is String
Added guard condition to RSocketListenerFunction to avoid NPE if target function can not be discovered
2020-08-31 16:35:18 +02:00
Oleg Zhurakousky
4215c92936
Annotate FunctionRSocketMessageHandler @Primary
2020-08-31 13:58:23 +02:00
Oleg Zhurakousky
e4e8d22f7f
Code cleanup for rsocket module
2020-08-28 17:47:54 +02:00
Oleg Zhurakousky
123ced3fb6
Fix distributed composition test
...
Added override of handleMessage(..) to FunctionRSocketMessageHandler to be able to register functions on demand instead of pre-registering all of them during the init
2020-08-28 09:14:57 +02:00
Oleg Zhurakousky
afcf85d23c
Cherry-pick type of merge the work from Artem in #580
...
Resolves #580
2020-08-27 14:34:24 +02:00
Oleg Zhurakousky
9922a0ca32
Formatting test code
2020-08-26 15:23:31 +02:00
Oleg Zhurakousky
ddd95cda17
Ad initial support for propagating metadata as Message headers
2020-08-26 15:19:23 +02:00
Oleg Zhurakousky
18b0f436d3
Add RSocketRequester configuration for tests
2020-08-26 14:35:34 +02:00
Oleg Zhurakousky
c1240ebb91
Remove custom server creation logic and rely on boot instead
...
Resolves #579
2020-08-26 10:03:11 +02:00
Oleg Zhurakousky
30572cf0fc
Polish RoutingBrokerTests
2020-08-25 21:20:11 +02:00
spencergibb
cd776902e9
Creates RSocketRoutingAutoConfiguration.
...
Moves rsocket-routing-client-spring to an optional dependency.
2020-08-25 14:10:32 -04:00
spencergibb
f04e355026
Initial rsocket-broker sample
2020-08-24 15:22:52 -04:00
Oleg Zhurakousky
b6c0578352
Clean up RSocketAutoConfiguration
...
Clean up RSocketAutoConfiguration to better allign with Spring's idioms
Upgraded to Kotlin 1.4.0
2020-08-21 16:03:10 +02:00
Oleg Zhurakousky
99a3be029c
Add support for default function lookup to RSocket
2020-08-05 10:15:29 +02:00
Artem Bilan
8d316f906c
Improve RSocketForwardingFunction
...
* Use `Mono<RSocket>` for lazy connection on target subscription
returned from the `RSocketForwardingFunction`
* Propagate `retry` into an `RSocketConnector`
Resolves #566
2020-07-29 15:07:48 +02:00
Oleg Zhurakousky
4547580d9d
Split RSocketFuntion
...
Split RSocketFunction into RSocketForwardingFunction and RSocketListenerFunction to ensure function composition over rsocket works the same way as with simple functions.
2020-07-16 19:26:41 +02:00
Oleg Zhurakousky
638c98cfb7
interim
2020-07-16 17:08:55 +02:00
Oleg Zhurakousky
13aa4700b1
Cleanup 'requestChannel' logic
...
Add RSocketConnectionUtils to deal with connectivity logic
2020-07-16 15:58:22 +02:00
Oleg Zhurakousky
ce6f357117
Add initial support for 'requestChannel' intergration for RSocket
2020-07-16 13:35:21 +02:00