Commit Graph

196 Commits

Author SHA1 Message Date
Oleg Zhurakousky
e589852db3 Temporary fixes related to native AOT enablement 2021-09-29 11:24:37 +02:00
Oleg Zhurakousky
ff7741ea74 GH-713 Add support for default function for HTTP
Resolves #713
2021-07-14 14:46:21 +02:00
Oleg Zhurakousky
6ae466b99e Fix checkstyle 2021-07-13 16:54:01 +02:00
Oleg Zhurakousky
fd8fc886df Extract uri into message headers 2021-07-06 07:38:26 +02:00
Oleg Zhurakousky
1e69d6a056 GH-708 Consolidate web request processing for Flux and MVC endpoints" 2021-06-17 20:38:06 +02:00
Oleg Zhurakousky
189c74d5cf GH-708 Removed RequestProcessor from Flux FunctionController
Resolves #708

polish
2021-06-16 17:09:52 +02:00
Oleg Zhurakousky
b71aa90ebd GH-708 Removed RequestProcessor from MVC FunctionController 2021-06-15 19:53:02 +02:00
Oleg Zhurakousky
5a625b4ad0 GH-708 Initial refactoring and consolidation of s-c-function-web MVC part. 2021-06-15 15:15:26 +02:00
Oleg Zhurakousky
b8b04eb377 GH-668 Initial NPE fix in RequestProcessor when no path argument provided 2021-03-25 14:28:18 +01:00
Adrien Poupard
a70564eb82 Add Kotlin suspend function support
Use suspendCoroutineUninterceptedOrReturn to avoid using not fully implemented Function2.reflect()

Mapping of Function, Consumer and Supplier to kotlin suspend flow lambda

Fix MR review

Resolves #655
2021-03-02 08:51:00 +01:00
Oleg Zhurakousky
a24713e53b GH-649 Ignire factory bean names during discovery of a function
Resolves #649
2021-02-15 17:53:12 +01:00
Oleg Zhurakousky
8ece3d3083 Add stream (kafka, Rabbit) and Rsocket examples for Cloud Event 2020-12-18 16:44:29 +01:00
Oleg Zhurakousky
306da4248a Restructure Cloud Events support to optionally support Cloud Events SDK 2020-12-01 22:12:34 +01:00
Dave Syer
1e65ff7132 Refactor some lambdas to enable native image building
Without this change a function with a Tomcat wrapper cannot be compiled
to a native image (or it can but it fails at runtime) because there
are lambda$$$ methods in the byte code that refer to missing types.
2020-11-25 11:00:08 +00:00
Dave Syer
685f1a1b8f Better test of whether webflux is present 2020-11-20 09:17:15 +00:00
Dave Syer
a1e9b6b2c1 Move class present check to static initializer
Helps with native images
2020-11-19 11:44:51 +00:00
Oleg Zhurakousky
0a413331e8 Polishing cleanup and javadoc 2020-11-17 08:01:21 +01:00
Oleg Zhurakousky
ac54a83e09 Clean up and simplifications around CloudEvent processing
This commit effectively a merge of work with #607 and simplifies the following
- CloudEventAttributesProvider now provides CloudEventAttributes initialized with defaults to be set by the user
- In HTTP RequestProcessor the logic of sanitizing headers was improved to ensure that correct prefix is applied

Resolves #607
2020-11-16 13:40:53 +01:00
Oleg Zhurakousky
7ddbbe52cd Fix HTTP header propagation logic
Related to GH-422 and GH-606
2020-11-13 17:47:41 +01:00
Oleg Zhurakousky
311649c312 Fix CloudEvent prefix and fix the name of CloudEventAttributesProvider.java 2020-11-13 16:07:33 +01:00
Oleg Zhurakousky
f7c862ce9b remove commented code 2020-11-09 19:34:14 +01:00
Oleg Zhurakousky
70076c8653 GH-597 Add support for handling MultipartFile(s)
This initial fix ensures that functions can process single MultipartFile as well as multiple.

Resolves #597
2020-11-09 19:27:01 +01:00
Oleg Zhurakousky
dd0f70bc8e Simplify logic around getting item type of a function type 2020-11-04 11:29:01 +01:00
Oleg Zhurakousky
1ed99667bb Disable 'sentencesAcceptSse' test as it started to fail due to some reactor changes 2020-11-03 14:03:39 +01:00
Oleg Zhurakousky
9a715be835 Initial refactoring and simplificatioin of web module 2020-11-03 13:46:52 +01:00
Oleg Zhurakousky
9b1206f6af Fix SmartCompositeMessageConverter to ensure it properly injects contentType
Initial refactoring web - test pass
2020-11-03 13:44:45 +01:00
Oleg Zhurakousky
b8d462678a Deprecate and remove all usages of FunctionInspector 2020-10-19 18:11:11 +02:00
Oleg Zhurakousky
10b1f808ba Consolidate isMessage() operation 2020-10-19 14:57:55 +02:00
Oleg Zhurakousky
72f05fc591 Refactor FunctionCatalog implementation 2020-10-16 17:59:06 +02:00
Oleg Zhurakousky
6863931f30 GH-578 Fix FunctionRegistration lookup
The root of the issue was in implementation of  equals() and hashCode() of FunctionInvocationWrapper

Resolves #578
2020-09-21 15:22:21 +02:00
Oleg Zhurakousky
2f36dbccb3 Various polishing to accomodate boot, reactor and other changes 2020-08-04 19:21:14 +02:00
Oleg Zhurakousky
b4e5315a10 GH-500 Fix NPE in FunctionEndpointInitializer
This ensures that posting to the consumer does not result in NPE given that there is no body

Resolves #500
2020-06-10 19:44:27 +02:00
anshlykov
8bcfad48fa Migrate to JUnit 5
spring-cloud-function-context

spring-cloud-function-context: fix

spring-cloud-function-web

spring-cloud-function-adapters

spring-cloud-function-samples

spring-cloud-function-deployer; spring-cloud-function-kotlin

Resolves #535
2020-06-10 16:43:04 +02:00
Oleg Zhurakousky
8503c39104 Re-enable ignored tests 2020-05-04 21:09:41 +02:00
Oleg Zhurakousky
5f3f0cf965 Polishing
Fix code format
Resolves #489
2020-04-29 15:29:35 +02:00
谭繁华
719f3745f0 GH-489 the received data which Post Flux data to FunctionController is not same as the function apply
fix test case
2020-04-29 15:29:35 +02:00
Oleg Zhurakousky
b5592d8e7a Enhance test to validate HTTP header propagation 2020-04-21 14:13:35 +02:00
Oleg Zhurakousky
27494567a0 Add propagation of HTTP headers
Polish function composition logic
2020-04-20 18:13:45 +02:00
Oleg Zhurakousky
5f37819eae Remove attempt to convert incoming type to target type from Requestprocessor
This fix effectively forces all type conversion happen in function catalog
2020-04-20 09:14:57 +02:00
Oleg Zhurakousky
7bd84c79a2 GH-499,498 Add support for SupplierExporter to control output content-type
- Add 'contentType' property to ExporterProperties to assist SupplierExporter with delegating it to function catalog
- Add additional logging and testing
- Change JsonMapper to abstract class providing special handling of conversion of Json Sting to byte[]
2020-04-20 07:06:18 +02:00
Oleg Zhurakousky
8f7672399f Extract common code from BeanFactoryAwareFunctionRegistry
. . . to ensure that we can have the version of FunctionRegistry that is not dependent on BeanFactory.
2020-04-16 13:42:17 +02:00
Oleg Zhurakousky
949f5fb023 GH-466 Fix SupplierExporter to avoid starting if Supplier is not present
Added condition to the start method of the SupplierExporter to prevent it from starting for cases where there are no Suppliers in catalog

Resolves #466
2020-03-31 16:40:31 +02:00
Oleg Zhurakousky
21d68ff3c8 GH-475 Fix support for Flux<List> type conversion
At the moment support is rudimentary but given that BeanFactoryAwareFunctionRegistry provides all the necessary type conversion functionality the true fix should consider utilizing it.

Resolves #475
2020-03-31 14:46:37 +02:00
Oleg Zhurakousky
1d784c199d GH-467 Added initial support for GET method to FunctionEndpointInitializer
At the moment support is rudimentary as it does not include any type conversion, but neither does POST so it is consistent.
Given that BeanFactoryAwareFunctionRegistry provides all that functionality already perhaps the proper fix with regard to converter would be to use it or part of it in place of InMemoryFunctionCatalog currently used.

Resolves #467
2020-03-31 14:14:33 +02:00
Oleg Zhurakousky
86d12f3a84 GH-473 Fix type discovery for generic parameters
Resolves #473
2020-03-30 10:56:00 +02:00
Oleg Zhurakousky
a3a08919e0 GH-423 Ensure that SupplierExporter assumes generic Publisher
Resolves #423
2019-12-11 13:44:32 +01:00
Oleg Zhurakousky
2aed5abff8 GH-408 Enhance RoutingFunction with SpEL and application properties
- Added initial support for communicating routing instructions via SpEL thru both message headers and application properties
- Added support for communication function definition via application properties
- Added additional tests and updated documentation

Resolves #408
2019-09-10 09:25:40 +02:00
Oleg Zhurakousky
7611cba69e GH-387 Added initial support for flexible function signatures
- Added support for simple POJO functions
- Added additional utility methods
2019-08-22 16:58:18 +02:00
Oleg Zhurakousky
9b1e69f05d Removed auto-fluxing Supplier result when Supplier is not reactive 2019-07-26 15:33:26 +02:00
Oleg Zhurakousky
243cf95eca GH-388 Adding utility to interogate Function types
- refactoring of BeanFactoryAwareFunctionRegistry to eliminate the need for FunctionType as it takes certain assumptions that are no longer valid
- adding support for multiple acceptedOutputTypes to FunctionCatalog

Resolves #388
2019-07-24 12:12:52 +02:00