Commit Graph

416 Commits

Author SHA1 Message Date
Oleg Zhurakousky
376aae2d67 GH-677 Add spring.cloud.function.preferred-json-mapper property
Deprecate spring.http.converters.preferred-json-mapper
Resolves #677
2021-04-09 15:50:50 +02:00
Oleg Zhurakousky
4837efdcca Add test for FunctionAroundWrapper 2021-04-08 17:10:17 +02:00
Oleg Zhurakousky
fc42819357 GH-662 Fix support for reactive functions in AWS
This commit also includes other minor fixes around CustomRuntime which was getting in the way of this specific issue
 Added lookup for _HANDLER env variable
 Added few tests (will need more)
 Added support for Iterable for reactive functions

Resolves #662
2021-04-08 15:57:14 +02:00
Oleg Zhurakousky
324a978dab GH-679 Add test to validate output conversion for composed functions
Resolves #679
2021-04-07 11:53:17 +02:00
Oleg Zhurakousky
9c5a937496 Fix NPE possibility for ConversionService not being present in the Bean Factory 2021-04-01 13:56:35 +02:00
Oleg Zhurakousky
cbee6603d0 Simplify FunctionInvocationHelper and its CE implementation 2021-03-24 16:31:41 +01:00
Oleg Zhurakousky
6c2758e2d3 Polishing SDK CloudEvent integration 2021-03-19 15:52:57 +01:00
Oleg Zhurakousky
ecafecaecc Provide initial integration with SDK CloudEvent 2021-03-19 15:00:02 +01:00
Soby Chacko
6401697f18 Array reification error with KStream[] in Kotlin
Exclude Kafka Streams functions with KStream[] return type as this
causes some array reification errors in Kotlin.

See this issue for more details: https://github.com/spring-cloud/spring-cloud-stream-binder-kafka/issues/1044

Resolves https://github.com/spring-cloud/spring-cloud-function/issues/669

Resolves #670
2021-03-18 19:58:07 +01:00
Oleg Zhurakousky
b0ef4522d4 GH-600 Fix logic in Azure adapter to ensure proper handling of sveral functions
This also addresses re-initialization of AC when the second function is invoked
Added second function to the azure examples

Resolves #600
2021-03-11 15:26:06 +01:00
Oleg Zhurakousky
3c5d905eab GH-437 Pass ExecutionContext via MessageHeader
Caching it as part of ApplicationContext was not the right idea so this changes it
2021-03-10 18:53:25 +01:00
Oleg Zhurakousky
863bbdc3eb Polish JsonMapper and upgrade function dependency in azure adapter 2021-03-10 16:31:17 +01:00
Oleg Zhurakousky
5a43e94ebe GH-661 Fix KafkaNull as input type conversion
Basically KafkaNull gets a special treatement where if we see it as Message payload and input type of the function is Message we give it as is and if the input type is POJO then we simply return null

Resolves #661
2021-03-05 12:20:29 +01:00
Oleg Zhurakousky
694d831adf GH-660 Add initial suppport for sending/receiving Messages
Resolves #660
2021-03-03 06:38:33 +01:00
Oleg Zhurakousky
1f43bbce28 GH-654 Remove FunctionProperties injection from MessageRoutingCallbackRSocketTests 2021-02-24 13:31:31 +01:00
Oleg Zhurakousky
410d494467 GH-654 Add more tests, cleanup and initial javadoc 2021-02-24 08:49:53 +01:00
Oleg Zhurakousky
a838f31be6 GH-654 remove route(Publisher) from MessageRoutingCallback 2021-02-23 17:26:08 +01:00
Oleg Zhurakousky
29115aeb64 GH-654 Initial support for non-SpEL based routing mechanism 2021-02-23 06:19:45 +01:00
Oleg Zhurakousky
c01b25f2fa SCST-GH-2115 Ensure that in a case of KafkaNull we just return a payload 2021-02-22 16:10:05 +01:00
Oleg Zhurakousky
73bd787c8d GH-649 Ignire factory bean names during discovery of a function
Resolves #649
2021-02-15 17:53:12 +01:00
Oleg Zhurakousky
c4dfffe0ba GH-640 Fix NPE with non-Message json conversion
Resolves #640

Added test
2021-02-05 16:12:31 +01:00
Oleg Zhurakousky
a6cb0fde3c Fix RSocket CloudEvents sample 2021-01-27 15:29:16 +01:00
Oleg Zhurakousky
2a356812ac GH-632 Fix type discovery on Kotlin function
Fix the way FunctionTypeUtils deals with Kotllin function when it attempts to discover their type.
Basically it checks if function-name + '_registration' nean exists and if so it skip discovery and uses the types available in FunctionRegistration which for Kotlin scenarios will always exist.

Resolves #632
2021-01-26 12:04:05 +01:00
Oleg Zhurakousky
0e6260942b Stream GH-2092 Make log statement on discovery of default function more informative 2021-01-26 08:12:04 +01:00
Oleg Zhurakousky
fbc2ca815a GH-635 Fix support for returning empty Collections
Resolves #635
2021-01-22 16:43:55 +01:00
Oleg Zhurakousky
3d4bd14926 GH-620 Add BeanResolver support for RoutingFunction
Resolves #620

polish
2021-01-22 14:52:04 +01:00
Oleg Zhurakousky
d9a0add8b8 Fix getItemType() in SimpleFunctionRegistry to account for Message<?> 2021-01-11 10:43:44 +01:00
ncheema
9bbb86be2d method already has a condition to retrieve immediateGenericType for a message
This condition was meant to be removed as part of #543

Resolves #624
2021-01-11 10:43:09 +01:00
Oleg Zhurakousky
d0a0da24bc GH-628 Clean up logging levels
Resolves #628
2021-01-11 09:51:39 +01:00
Oleg Zhurakousky
bc4b5b3f80 Add stream (kafka, Rabbit) and Rsocket examples for Cloud Event 2020-12-18 16:44:29 +01:00
Oleg Zhurakousky
eb95e1dd78 Modify logic for header copy from input to output
This is primarily related to Cloud Events. Since we delegate to a separate class for post processing, if outpt message is Cloud Event we will not be doing anything to with regard to header copy in SimpleFunctionRegistry and unstead delegate it to CloudEventFunctionInvocationHelper
2020-12-18 16:44:19 +01:00
Oleg Zhurakousky
285fd66858 Fix payload extraction during output conversion
Also, restructured CloudEventsFunctionInvocationHelper's postProcessig logic
2020-12-12 13:48:47 +01:00
Oleg Zhurakousky
e86d397433 Cleaned up Cloud Event support around reactive functions
Added reactive tests
Restructured CloudEventsFunctionInvocationHelper
2020-12-11 14:34:32 +01:00
Oleg Zhurakousky
7403a51464 SCST-2065 Fix deserialization error when multi IO signature
Fix deserializatioin error when using complex signatures such as Function<Tuple2<Flux<Message<String>>
The issue originated from spring cloud stream https://github.com/spring-cloud/spring-cloud-stream/issues/2065
2020-12-10 15:53:05 +01:00
Oleg Zhurakousky
9edc08d97e interim 2020-12-10 07:56:15 +01:00
Oleg Zhurakousky
90c3c35f68 Polish previous commit
Add FunctionInspector dependency back to SimpleFunctionRegistry since we can't remove it yet to avoid backward comatibility issues

Resolves #617
2020-12-08 18:44:16 +01:00
Mingyuan Wu
271bc22969 Disconnect FunctionInspector from AbstractComposableFunctionRegistry and SimpleFunctionRegistry 2020-12-08 17:31:56 +01:00
Oleg Zhurakousky
bdcb232e42 Minor improvements and clean up Cloud Event package 2020-12-03 20:31:17 +01:00
Oleg Zhurakousky
c8d9a3bfe4 Consolidate Cloud Events attribute prefix swap logic 2020-12-02 18:56:51 +01:00
Oleg Zhurakousky
848866686e Fix Cloud Events support for Message functions
Ensured Cloud Event completness by adding assertion for required attributes as well as generation of default values for attributes such as ID and SPECVERSION
2020-12-02 18:22:17 +01:00
Oleg Zhurakousky
c07722dab3 Tidy up logic around canonicalization of attributes
Added initial test to validate builder and utils
2020-12-02 15:17:17 +01:00
Oleg Zhurakousky
a318b88da7 interim 2020-12-02 13:10:05 +01:00
Oleg Zhurakousky
4c69ca1cd6 interim 2020-12-02 12:45:45 +01:00
Oleg Zhurakousky
98c9d56442 Change canonical format of Cloud Event Message attributes to have 'ce-' prefix 2020-12-02 11:24:03 +01:00
Oleg Zhurakousky
6c506f3ae1 Minor cleanup and javadocs 2020-12-02 09:20:50 +01:00
Oleg Zhurakousky
28184039de Restructure Cloud Events support to optionally support Cloud Events SDK 2020-12-01 22:12:34 +01:00
Oleg Zhurakousky
dd6c09a4cb Revert "Add a new strategy for header enrichment"
This reverts commit 1925b490dc.
2020-11-30 15:23:42 +01:00
Dave Syer
1925b490dc Add a new strategy for header enrichment
There was a TODO in the cloud events section of the function catalog.
This extracts that into a strategy and autoconfigures it:
CloudEventOutputMessageHeaderEnricher.
2020-11-25 16:07:14 +00:00
Oleg Zhurakousky
d893be5533 GH-611 Add test to ensure there is no regression
Resolves #611
2020-11-23 20:25:18 +01:00
Oleg Zhurakousky
9d1d74cc76 GH-609 Fix support for missmatched Publishers
Given that s-c-f-web always sends input as Flux, it creates issues for Function<Mono, Mono>, so this fixes it
Resolves #609
2020-11-20 12:13:52 +01:00