Commit Graph

1658 Commits

Author SHA1 Message Date
Oleg Zhurakousky
32a8b9eec8 Add support for SCF-GH-711 source/target types determination 2021-07-01 17:26:18 +02:00
Oleg Zhurakousky
8cae6f13b2 GH-2101 Fix StreamBridge when sending Message with native encoding
There was an always cast to FunctionInvocationWrapper even though in the case of nativeEncoding the function was not of that instance. This fixes it.

Resolves #2101
2021-06-29 15:07:40 +02:00
Oleg Zhurakousky
b17bcb90f1 GH-2129 Polishing test 2021-06-29 14:44:42 +02:00
Oleg Zhurakousky
15824cfdb0 GH-2129 Ensure exception is propagated from ApplicationJsonMessageMarshallingConverter
This will ensure that any exception that is thrown during the conversion by ApplicationJsonMessageMarshallingConverter are propagated. Basically the idea is that since MessageConverter has accepted the conversion via canConvert() method it is no longer necessary to expect that may be some other converter in the stack may succeed. And on top of that user can still define custom message converter

Resolves #2129
Resolves #2191
2021-06-29 12:48:17 +02:00
Oleg Zhurakousky
89e09afa74 GH-2151 Document ProducerMessageHandlerCustomizer
Resolves #2151
2021-06-29 12:00:24 +02:00
Oleg Zhurakousky
8c88cf14d8 GH-2179 provide mechanism to remove short-lived headers
Headers such as 'spring.cloud.stream.sendto.destination' are no longer valid once the message has been sent, os it will be removed

Resolves #2179
2021-06-28 15:47:06 +02:00
Oleg Zhurakousky
86535d10b9 GH-2189 Ensure SpelExpressionConverterConfiguration class is added
This ensures that SpelExpressionConverterConfiguration is added for cases where multiple binders are used

Resolves #2189
2021-06-28 14:31:08 +02:00
Soby Chacko
76c0a2488b StreamBridge and ChannelInterceptors enhancements
Currently, when `StreamBridge` creates an output binding, the framework
applies all the available channel interceptors on it by default. This
creates unwanted side effects and the application does not have a way
to control this. Change this behavior by only applying channel interceptors
annoatated with `@GlobalChannelInterceptor`. This way, the user can
provide patterns to decide which interceptors need to be applied on
specific `StreamBridge` bindings.

Adding tests to verify.

Adding docs.

Resolves https://github.com/spring-cloud/spring-cloud-stream/issues/2180
2021-06-11 16:44:41 +02:00
LiangYong
71f1af3c51 fix document example code missing semicolon issue 2021-06-08 15:21:08 -04:00
Oleg Zhurakousky
49dc1f9ff9 Disable test 2021-06-02 16:46:59 +02:00
Oleg Zhurakousky
e17339195b Disable test 2021-06-02 16:31:24 +02:00
Oleg Zhurakousky
5fa653c808 Disable test 2021-06-02 16:29:44 +02:00
Oleg Zhurakousky
f6be741dba Fix test 2021-06-02 16:22:10 +02:00
Oleg Zhurakousky
2797463e56 Update s-c-function to 3.1.4-SNAPSHOT 2021-05-27 08:57:32 +02:00
buildmaster
2f90a08f0b Bumping versions to 3.1.4-SNAPSHOT after release 2021-05-26 15:24:55 +00:00
buildmaster
fe163257fa Going back to snapshots 2021-05-26 15:24:54 +00:00
buildmaster
50ba1b08a7 Update SNAPSHOT to 3.1.3 2021-05-26 15:22:18 +00:00
Oleg Zhurakousky
ab5471d509 Update pom.xml 2021-05-26 17:10:37 +02:00
Oleg Zhurakousky
f49bc19820 GH-2114 Change the name of the variable hwen specifying binder name in StreamBridge 2021-05-25 19:35:44 +02:00
Oleg Zhurakousky
70537b924e GH-2164 Update documentation
Remove obsolete docs and add deprecations and update what's new section

Resolves #2164
2021-05-25 14:53:08 +02:00
Oleg Zhurakousky
2677035779 GH-2114 Add support for multiple binders to StreamBridge
Resolves #2114
2021-05-25 14:33:25 +02:00
Oleg Zhurakousky
717a8e4f8b polish docs
Resolves #2150
2021-05-25 12:51:38 +02:00
Ильиных Илья Сергеевич
245e80ab52 Fixed spring-cloud-stream.adoc documentation rendering 2021-05-25 12:50:22 +02:00
Wai Loon
689d64c655 Fixed typo in spring-cloud-stream.adoc 2021-05-25 12:44:46 +02:00
Oleg Zhurakousky
dadb8af280 GH-2143 Add documentation for batch producers
Resolves #2143
2021-05-25 12:42:19 +02:00
Oleg Zhurakousky
b2b95dc7d2 GH-2168 Ensure output binding is not assumed for RoutingFunction
Given that RoutingFunction may actualy route to Consumer, there is no need for output binding.
This fix addresses it where no output binding is created initially and instead the output binding will be created if and when the firt output is produced.

Resolves #2168
2021-05-07 15:21:59 +02:00
Oleg Zhurakousky
f2b9d3ecdc GH-2152 Add support for honoring timeout for cases where destination may not yet exist
Resolves #2152

polishing
2021-05-05 20:40:38 +02:00
Oleg Zhurakousky
1f9cc848c4 GH-2153 Add proxyBeanMethods instruction to configuratioin classes
Resolves #2153
2021-05-05 17:02:34 +02:00
Oleg Zhurakousky
197c3fe907 GH-2167 Fix typo in docs
Resolves #2167
2021-05-05 16:18:59 +02:00
Oleg Zhurakousky
e8539e589a GH-2160 Fix NPE in MessageConverterConfigurer
Resolves #2160
2021-05-05 15:40:25 +02:00
Oleg Zhurakousky
b2bb645cf1 Upgrade reactor version 2021-05-04 17:43:46 +02:00
Oleg Zhurakousky
7c384e7c09 GH-2165 Migrate binder context creating from boot to new AC
Resolves #2165
2021-05-04 17:30:49 +02:00
Soby Chacko
1049a3c6fc Native compilation changes
This commit effectively reverts the changes introduced in
d9f8653e42. Basically, removing
the changes introduced for supporting multi binders when
binders are registered through spring.factories. Binders
are still expected to provide spring.binders to register them.
2021-04-29 19:31:02 -04:00
Oleg Zhurakousky
b006185b99 Remove public usage of spring.cloud.stream.function.definition property 2021-04-29 16:16:37 +02:00
Soby Chacko
d9f8653e42 More Graal native compilation support in core
More native compilation support for Kafka Streams and multi binder environments.
Although these changes directly do not reflect anything native related, these
are mainly to support the usage of spring.factories in Kafka Streams binder
instead of spring.binders. We are only supporting the spring.factories model
for finding the binders in spring-native based Spring Cloud Stream applications.

resolves https://github.com/spring-cloud/spring-cloud-stream/issues/2161
Resolves #2162
2021-04-28 19:09:18 +02:00
Soby Chacko
36b66cf69c GH-2158: Native compilation changes
Avoid accessing fields relfectively in PartitionAwareFunctionWrapper.
This change is a counter part to https://github.com/spring-cloud/spring-cloud-function/issues/689

Resolves https://github.com/spring-cloud/spring-cloud-stream/issues/2158

Resolves #2159
2021-04-26 15:30:41 +02:00
Soby Chacko
ae017e222f Native compilation changes required in SCSt apps
- Instead of injecting `AbstractMappingMessageRouter[]`, inject it as a container
  type using `List<>`. This is because the former uses reflection behind the scenes
  and causes issues with graal native compilation (unless provided as a native hint).

- Instead of autowiring `Map<String, BindingTargetFactory>` in
  `AbstractBindableProxyFactory`, programmatically populate `BindingTargetFactory`
  beans by doing a `BeanFactory` lookup in a new method. Then the subclasses of
  `AbstractBindableProxyFactory` call this method to pouplate the avaialble
  `BindingTargetFactory` beans in their `afterPropertiesSet` method.

- Convert array injection of `BindableProxyFactory[]` in functionInitailzer bean
  in `FunctionConfiguration` to use container based injejction (`List<>`).

- Cleanup unused injection in functionInitializer bean in `FunctionConfiguration`.

Resolves https://github.com/spring-cloud/spring-cloud-stream/issues/2154

Resolves #2155
2021-04-22 15:47:28 +02:00
Oleg Zhurakousky
1cd165df46 Make StreamBridge generate Message if user send just a POJO 2021-04-08 17:16:35 +02:00
Oleg Zhurakousky
f7400150d6 GH-2145 Add support for honoring SpEL on output payload in functions
Typically output type conversion would happen in s-c-function which is a bit too early for cases when user uses SpEL on the output payload (e.g., Rabbit routing-key)
This defers this type conversion

Resolves #2145
2021-04-07 15:36:57 +02:00
Oleg Zhurakousky
73ca65da5d GH-2137 Remove references to EmitterProcessor
Resolves #2137
2021-04-06 15:51:22 +02:00
Oleg Zhurakousky
47125a1557 Change from Exception to Throwable from last commit 2021-04-01 20:09:02 +02:00
Oleg Zhurakousky
4c52eea730 Wrap synthesize EnableBinding in try/catch ignoring the error
Appears to create problem in native images, but since we do not intend to support annotation-based programming model, we can just ignore this exception until we can remove this code all together.
2021-04-01 17:24:28 +02:00
buildmaster
44e6b9656a Bumping versions 2021-03-27 08:38:00 +00:00
Oleg Zhurakousky
d1488259a6 GH-2106 re-enable '.destination' and made destination channel PubSub
Resolves #2106
2021-03-26 08:24:54 +01:00
Oleg Zhurakousky
561ae852c3 Add test 2106 in ScanrioTests that is currently failing 2021-03-25 15:43:39 +01:00
Oleg Zhurakousky
540b6417c3 Revert "GH-2106 Add bridge between destination channels and binding channel in TestChannelBinder"
This reverts commit 82929f9bcf.
2021-03-25 15:31:53 +01:00
Oleg Zhurakousky
0d5b68a4b5 Add documentation and test to demo header enrichment with function composition 2021-03-25 15:31:31 +01:00
Oleg Zhurakousky
6c2dbc4708 GH-2118 Wrap publishing ApplicationEvent in try/catch
. . . to ensure that any exceptions resulting from custom implementation of ApplicationLstener does not harm the application
There will now be a WARN message and the stacj trace under DEBUG, but the application will continue to function.

Resolves #2118
2021-03-22 18:30:02 +01:00
Oleg Zhurakousky
c750083df6 GH-2132 Fix channel creation/registration logic
SubscribableChannelBindingTargetFactory now capable of dealing with channels that may have been created outside of the normal process. In other words if channel exists as bean it will only cofigure it

Resolves #2132
2021-03-22 18:14:16 +01:00
Oleg Zhurakousky
9db08ec6d4 GH-2035 Add autodetect property to give user control over function autodetection
Resolves #2035
2021-03-19 16:07:51 +01:00