Commit Graph

226 Commits

Author SHA1 Message Date
Chris Bono
fc0dacb893 GH-892 Remove use of reflection from CloudEventMessageUtils
Fixes #892
Resolves #894
2022-07-13 14:18:42 +02:00
Oleg Zhurakousky
b3f564b40f Fix function eligibility filtering 2022-06-16 18:27:23 +02:00
Oleg Zhurakousky
39e4bed412 GH-884 Add initial support for BiFunction
Resolves #884

polish
2022-06-14 09:36:09 +02:00
Oleg Zhurakousky
9f9d5602e7 GH-883 Add support for filtering out ineligible functions
Resolves #883
2022-06-13 15:46:45 +02:00
Oleg Zhurakousky
724ba06c11 Fix FunctionTypeUtils as well as LocalServerPort issue
Resolves #871
2022-06-07 16:01:50 +02:00
Artem Bilan
66b88f2f1e FunctionTypeUtils test for NPE
Related to https://stackoverflow.com/questions/72163534/spring-batch-integration-throwns-org-springframework-messaging-messagehandlingex

The `FunctionTypeUtils.isMessage()` fails with NPE
when target method has non-message argument with generic parameter.
Even if we instantiate the class with specific generic argument,
that info is not available for reflection and `MethodParameter`
end up with a generic parameter name which is essentially a `TypeVariable`

The stacktrace is like this:
```
java.lang.NullPointerException: Cannot invoke "java.lang.Class.getGenericInterfaces()" because "targetType" is null

	at net.jodah.typetools.TypeResolver.getTypeVariableMap(TypeResolver.java:494)
	at net.jodah.typetools.TypeResolver.resolveRawClass(TypeResolver.java:387)
	at net.jodah.typetools.TypeResolver.resolveRawClass(TypeResolver.java:373)
	at org.springframework.cloud.function.context.catalog.FunctionTypeUtils.isMessage(FunctionTypeUtils.java:416)
```
2022-06-07 15:21:09 +02:00
Oleg Zhurakousky
4661ab186b GH-873 Fix JsonNode conversion
Resolves #873
2022-05-30 14:39:03 +02:00
Oleg Zhurakousky
085ae9f620 GH-878 Fix concurrency issue during registration and lookup of functions
Resolves #878
2022-05-30 12:11:36 +02:00
Oleg Zhurakousky
3bfa5faa44 GH-791 Add support for propagating input headers
Resolves #791

polishing merge
2022-05-04 14:48:14 +02:00
Oleg Zhurakousky
536bd3920f Remove observability 2022-05-03 19:48:16 +02:00
spencergibb
470eda85a7 Revert "Remove io.micrometer.observation code"
This reverts commit 830a7e7cc2.
2022-03-31 16:09:58 -04:00
spencergibb
830a7e7cc2 Remove io.micrometer.observation code 2022-03-31 13:05:24 -04:00
Oleg Zhurakousky
97a55a3608 GH-828 Add support for configuring additional routers
Resolves #828
2022-03-24 18:26:41 +01:00
Oleg Zhurakousky
bbf56b0744 GH-830 Fix conversioin exception for custom converters
Resolves #830
2022-03-23 17:17:49 +01:00
Oleg Zhurakousky
bb3f33f1c5 Fix deprecations and breaking changes caused by dependencies 2022-03-17 14:59:04 +01:00
Oleg Zhurakousky
a364aaf86a GH-823 Polishing
Resolves #823
2022-03-04 17:03:07 +01:00
Marcin Grzejszczak
ea3be5ef39 GH-823 Add initial support for Observability 2022-03-04 16:59:43 +01:00
onobc
dc52af8df6 Improve ContextFunctionCatalogAutoConfiguration conditional loading
- Allow custom AvroSchemaServiceManager to be used
- Make AvroSchemaMessageConverter bean method specifically typed
- Make CloudEventsMessageConverter bean method specifically typed
- Add tests focusing on the conditional loading aspects of the auto configuration

Fixes gh-797
Resolves #814
2022-02-23 15:43:15 +01:00
Oleg Zhurakousky
be031cd315 GH-816 Enhance test validating collection output 2022-02-23 15:08:18 +01:00
Oleg Zhurakousky
95f9fbf417 Revert "GH-816 Fix support for function that returns Iterable with target-protocol set"
This reverts commit ed6642e18e.
2022-02-23 12:18:17 +01:00
Oleg Zhurakousky
ed6642e18e GH-816 Fix support for function that returns Iterable with target-protocol set
Resolves #816
2022-02-21 14:50:29 +01:00
Roman S Samarev
18677ca47c SimpleFunctionRegistry: Fixed: compose of supplier...consumer pipeline produces a supplier type. This fix allows testing of composed pipelines without input and output
SimpleFunctionRegistry: added info. No functional changes

Resolves #809
2022-02-15 20:31:55 +01:00
Soby Chacko
609035b918 Revert "* Simplify functionalTracingEnabled variable logic"
This reverts commit 159c82e4a9.
2022-02-11 12:38:40 -05:00
Oleg Zhurakousky
2d59a0d759 GH-804 Add support for case-insensitive Cloud Event determination
Resolves #804
2022-02-09 14:23:21 +01:00
Oleg Zhurakousky
5b4cec0db3 GH-804 Add support for case-insensitive routing 2022-02-09 13:58:01 +01:00
Artem Bilan
159c82e4a9 * Simplify functionalTracingEnabled variable logic
* Add `BeanFactoryAwareFunctionRegistryTests.testWrappedWithAroundAdviseNotMessageReturnConfiguration()`
to verify that non-Message return from the target function is wrapped to the `Message` before return
to the `FunctionAroundWrapper`
2022-02-07 15:09:51 +01:00
Oleg Zhurakousky
536d3d6e80 GH-794 Address regression with input type conversion of Maps
Resolves #794
2022-01-26 12:51:13 +01:00
Oleg Zhurakousky
012a4daa59 Cleanup and additional test 2022-01-24 16:19:26 +01:00
Oleg Zhurakousky
5074b7eee4 Finish migration to java17, boot 3.0, spring 6 2022-01-14 11:05:58 +01:00
Oleg Zhurakousky
4076e88965 GH-768 Modified test to try to force the issue 2021-12-01 08:25:34 +01:00
Oleg Zhurakousky
4f2c24bcf9 GH-768 Add tests to validate proper map values conversion
Resolves #768
2021-11-30 15:27:04 +01:00
Oleg Zhurakousky
34967ec770 GH-726 Enhance MessageRoutingCallback to optionally return enriched Message
Resolves #726
2021-11-11 17:28:40 +01:00
Oleg Zhurakousky
e297a36a06 Remove FunctionType and dependencies on it 2021-11-10 15:21:31 +01:00
Oleg Zhurakousky
53aa60d118 GH-764 Fix output header mapping timing
Resolves #764
2021-11-09 08:20:05 +01:00
Oleg Zhurakousky
0cfb2b413f Initial round of deprecation rmovals 2021-11-08 16:16:39 +01:00
Oleg Zhurakousky
f4171cae16 GH-764 Add support for output header enrichemnt
Resolves #764
2021-11-08 15:27:56 +01:00
Oleg Zhurakousky
1a07eba067 GH-762 Fix condition for parsing JSON collection strings into individual messages
Resolves #762
2021-11-08 11:10:47 +01:00
Oleg Zhurakousky
83a96483e3 Fix FunctionTypeUtils outout type logic for Supplier 2021-10-26 12:01:35 +02:00
Oleg Zhurakousky
e58741b6cb Polishing related to merginng the previous commit as well as upgrade of Kotlin libs 2021-10-25 13:28:31 +02:00
Marcin Grzejszczak
e32482ed39 WIP 2021-10-25 12:06:14 +02:00
Oleg Zhurakousky
41043479f5 GH-750 Add support for pluggable protobufs
This initial support adds plugin extension to support CloudEvent proto as well as the example
Additional plugins could be provided in the same ay as CloudEvent plugin extension

Resolves #750
2021-10-11 14:03:24 +02:00
Oleg Zhurakousky
7c8d32246a GH-752 Add support to stop caching functions in FunctionCatalog
Resolves #752
2021-10-07 15:03:17 +02:00
Oleg Zhurakousky
ab9422907e GH-746 Fix support for Cloud Event properly enriching Function<Mono, Mono>
Resolves #746
2021-09-27 18:03:32 +02:00
Soby Chacko
0e2663bd55 Migrate Avro message converter artifacts
Migrate Avro message converter (non-schema-registry) artifacts
from Spring Cloud Schema Registry to Spring Cloud Function.

Resolves https://github.com/spring-cloud/spring-cloud-function/issues/732
Resolves #733
2021-08-30 14:54:23 +02:00
Oleg Zhurakousky
eca03a49d8 Re-enable FunctionAroundWrapper 2021-07-28 11:26:23 +02:00
Oleg Zhurakousky
166937cdab Temporarily disabled calls to FunctionAroundWrapper 2021-07-26 17:18:31 +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
378f0d33ab GH-707 Fix Concurrent Modification exception on lookup
Rare condition but it appears that in some runtimes there could be multiple threads invoking lookup operation
Added test to validate

Resolves #707
2021-06-08 14:07:32 +02:00
Oleg Zhurakousky
e419b41968 GH-676 Fix mixed (index and not) input-header-mapping-expression 2021-05-26 15:21:12 +02:00
Oleg Zhurakousky
22e945009a GH-676 Relax SpEL evaluation failures for input header enrichment
Add documentation

Resolves #676
2021-05-24 15:18:28 +02:00