Commit Graph

169 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
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
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
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
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
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
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
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
Oleg Zhurakousky
fbeee8bc37 Renamed new registry implementation to BeanFactoryAwareFunctionRegistry
- added initila javadoc
- polished few tests
2019-07-17 14:48:05 +02:00
Oleg Zhurakousky
93f7a248a5 Added initial support for lazy style FunctionCatalog/Registry which:
-  does not rely on any of the existing wrappers and instead relies on internal wrapper which performs  in-flight/just-in-time wrapping and unwrapping from reactive to imperative types
- performs transparent type conversion relying on MessageConverters and ConversionService
- supports multiple inputs/outputs
2019-07-17 13:54:02 +02:00
Dave Syer
521c6d3397 Add proxyTargetBeans = false 2019-07-12 17:11:26 +02:00
Oleg Zhurakousky
70d46f8b9f GH-386 Fixed NPE for non-existing functions invoked as REST endpoints
Resolves #386
2019-07-12 17:09:46 +02:00
Dave Syer
5e3111bf80 Fix conditions for custom AWS runtime
Conflicts:
	spring-cloud-function-samples/function-sample-aws-custom/pom.xml
2019-07-12 17:08:34 +02:00
Oleg Zhurakousky
4d9cdb9750 GH-238 Added initial support for RoutingFunction
- Added initial implementation of RoutingFunction which is bootstrapped optionally based on setting ‘spring.cloud.function.routing.enabled’ property to true.
- Added initial documentation and tests

Resolves #238
2019-05-07 10:13:42 +02:00
Oleg Zhurakousky
abeb652830 Fixed condition for spring.cloud.function.web.export.enabled property 2019-05-03 13:25:58 +02:00
Oleg Zhurakousky
d9582a9867 GH-358 Fixd NPE in flux FunctionWebUtils
added tests

Resolves #358
2019-04-29 16:07:56 +02:00