286 Commits

Author SHA1 Message Date
Ryan Baxter
6be989b7bd Fixing assert4j failures 2025-04-13 15:27:44 -04:00
Oleg Zhurakousky
c643bd3ae1 Fix formatting 2025-04-13 15:06:07 -04:00
spencergibb
2d47fd97b0 Formatting 2025-02-21 11:47:01 -05:00
Oleg Zhurakousky
7d63b8976b GH-3085 add test configuration file 2025-02-21 15:15:40 +01:00
Oleg Zhurakousky
fb0545c8c8 GH-3085 Add Number and Boolean Spel converter
Refactor SpelConverter into an abstract class

Resolves #3085
2025-02-21 15:07:04 +01:00
Steven Gantz
c25d0823f6 Add additional test and error handling
Handle when functionToInvoke returns null

add link to issue

Signed-off-by: Steven Gantz <steven.p.gantz@gmail.com>
2025-02-11 16:52:33 +01:00
Oleg Zhurakousky
c05e7ac169 GH-3071 Add support for accessing producer/consumer properties 2025-02-10 14:23:46 +01:00
spring-builds
9d9c5aa029 Bumping versions to 4.1.6-SNAPSHOT after release 2025-01-09 23:57:32 +00:00
spring-builds
65d4722b3f Going back to snapshots 2025-01-09 23:57:31 +00:00
spring-builds
f09da3ada6 Update SNAPSHOT to 4.1.5 2025-01-09 23:54:06 +00:00
Oleg Zhurakousky
24c1abea50 GH-3054 Clear channel cache in StreamBridge during the refresh 2024-12-19 12:30:50 +01:00
Oleg Zhurakousky
c8dcbf1871 GH-3053 Fix regression with 'default' properties validation
Resolves #3053
2024-12-09 13:53:20 +01:00
Oleg Zhurakousky
7bbfe5bafd GH-3052 Add to additional-spring-configuration-metadata.json
Resolves #3052
2024-12-04 16:18:39 +01:00
spring-builds
7e78f83433 Bumping versions to 4.1.5-SNAPSHOT after release 2024-11-27 00:49:48 +00:00
spring-builds
14b663209b Going back to snapshots 2024-11-27 00:49:46 +00:00
spring-builds
a2628ff14f Update SNAPSHOT to 4.1.4 2024-11-27 00:46:22 +00:00
spring-builds
a939fc7697 Bumping versions 2024-11-26 09:20:09 +00:00
spring-builds
9616261dc7 Bumping versions to 4.1.5-SNAPSHOT after release 2024-11-26 03:08:09 +00:00
spring-builds
3e71b145a7 Going back to snapshots 2024-11-26 03:08:07 +00:00
spring-builds
a62378202e Update SNAPSHOT to 4.1.4 2024-11-26 03:04:49 +00:00
Fernando Blanch
9fc31b3674 Change order of the registry of sources classes after configuring Environment with all propertySources, so that sources classes can resolve conditions configurations. Fixes GH-3031
Resolves #3032
2024-11-18 11:37:26 +01:00
Oleg Zhurakousky
d84f6a4b1e Add kotlin stdlib 2024-10-28 14:04:30 +01:00
Oleg Zhurakousky
05de9a8222 Fix broken build 2024-10-28 13:53:40 +01:00
Oleg Zhurakousky
9888a08dff Fix checkstyles 2024-10-21 17:58:35 +02:00
Oleg Zhurakousky
fa9a80d803 GH-3020 Make Kotlin dependency optional
Resolves #3020
2024-10-08 14:53:02 +02:00
Oleg Zhurakousky
e642cadadd GH-2974 Fix validation when only 'default' properties are used
Resolves #2974
2024-10-02 12:14:00 +02:00
kurt
8148d55251 BindingServiceProperties.bindings property should be thread-safe.
First, thanks for the excellent StreamBridge feature! I've found it very useful.
However, I occasionally encounter the following exception during race conditions.
```
java.lang.NullPointerException: null
    at java.base/java.util.TreeMap.rotateRight(TreeMap.java:2240)
    at java.base/java.util.TreeMap.fixAfterInsertion(TreeMap.java:2272)
    at java.base/java.util.TreeMap.put(TreeMap.java:580)
    at org.springframework.cloud.stream.config.BindingServiceProperties.bindToDefault(BindingServiceProperties.java:397)
    at org.springframework.cloud.stream.config.BindingServiceProperties.bindIfNecessary(BindingServiceProperties.java:381)
    at org.springframework.cloud.stream.config.BindingServiceProperties.getBindingProperties(BindingServiceProperties.java:301)
    at org.springframework.cloud.stream.function.StreamBridge.send(StreamBridge.java:149)
```
BindingServiceProperties.bindings property should be thread-safe.
2024-09-27 11:02:03 +02:00
Oleg Zhurakousky
0336ffd8ca GH-3009 Add post processing support for Supplier
Resolves #3009
2024-09-26 14:09:24 +02:00
Andy Wilkinson
090ccfad14 Support Spring Boot's KafkaConnectionDetails for Kafka connections
- Integrate KafkaConnectionDetails, a Spring Boot component, in binder
- Update KafkaBinderConfigurationProperties to use KafkaConnectionDetails
- Modify KafkaTopicProvisioner to leverage KafkaConnectionDetails
- Adjust Kafka binder configurations to pass KafkaConnectionDetails
- Update tests to accommodate KafkaConnectionDetails changes
- Add KafkaConnectionDetails to shared.beans for auto-configuration

This change improves flexibility in configuring Kafka connections,
allowing for better support of externalized configuration management
and aligning with Spring Boot's connection abstraction model.
2024-09-24 16:46:54 -04:00
Oleg Zhurakousky
8fc89bc4c0 GH-2997 Fix support for producer's error-handler-definition
Resolves #2997
2024-09-24 17:18:48 +02:00
Théophane Charbonnier
110061b04e Avoid duplicate error logging when multiple destinations per binding 2024-09-06 15:28:21 +02:00
Artem Bilan
f146ce3eac GH-2989 - Make SpEL converter stringify primitive values
Resolves #2989
2024-08-19 12:10:22 +02:00
Artem Bilan
3b5bb2e0d9 Remove redundant delaySubscription from FunctionConfiguration
Related to: https://github.com/spring-projects/spring-integration/issues/9362

After the fix in Spring Integration: bdcb856a90
we ended up in a deadlock situation with a `beginPublishingTrigger` in the `FunctionConfiguration`
used for the `delaySubscription()` on an original `Publisher`.
The `FluxMessageChannel` uses its own `delaySubscription()` until the channel has its subscribers.
Apparently the logic before was with errors, so the `FluxMessageChannel` was marked as active
even if its subscriber is not ready yet, leading to famous `Dispatcher does not have subscribers` error.
So, looks like this `beginPublishingTrigger` was introduced back in days in Spring Cloud Stream
to mitigate that situation until we really emit a `BindingCreatedEvent`.

The deadlock (and the flaw, respectively) is with the `setupBindingTrigger()` method implementation
where `FluxMessageChannel` now "really" delays a subscription to the provided `Publisher`,
therefore not triggering that `Mono.create()` fulfilment immediately.
The `BindingCreatedEvent` arrives earlier, than we have a subscriber on the channel,
but `triggerRef.get()` is `null`, so we don't `success()` it and in the end don't subscribe
to an original `Publisher` since `delaySubscription()` on it is never completed.

Since `FunctionConfiguration` fully relies on `IntegrationFlow.from(Publisher)`,
which ends up with the mentioned  `FluxMessageChannel.subscribeTo()` and its own `delaySubscription()`
(which, in turn, apparently fixed now), we don't need our own `delaySubscription()` any more.
Therefore the fix in this PR is to propose to remove `beginPublishingTrigger` logic altogether.
2024-07-26 15:57:12 -04:00
Oleg Zhurakousky
f356599503 GH-1163-function
Added test for the fix provided in s-c-function
2024-07-17 17:20:32 +02:00
Oleg Zhurakousky
07e7d81e2d GH-2971 Properly handle Kafka tombstone payload conversion
See the corresponding commit in s-c-function
Resolves #2971
2024-07-17 16:19:12 +02:00
buildmaster
b5eccf6232 Bumping versions to 4.1.4-SNAPSHOT after release 2024-07-10 16:21:06 +00:00
buildmaster
2cbcd93232 Going back to snapshots 2024-07-10 16:21:05 +00:00
buildmaster
f459e2bfcd Update SNAPSHOT to 4.1.3 2024-07-10 16:17:09 +00:00
Soby Chacko
df3c467834 Checkstyle fixes 2024-06-18 19:24:09 -04:00
Soby Chacko
604649d083 GH-2961: Concurrent writes and partition header
- When concurrent threads publish to a binding, PartitionAwareFunctionWrapper
  resets to null between invocations. Addressing this issue by guarding this reset
  from occurring if the partiton header on the producer is found.

Fixes https://github.com/spring-cloud/spring-cloud-stream/issues/2961
2024-06-18 19:20:07 -04:00
Soby Chacko
4b2810f49a Fixing checkstyle issues 2024-06-18 19:08:56 -04:00
Théophane Charbonnier
2a5938e0fe GH-2961 : failing test for Header scst_partition randomly ommitted 2024-06-18 19:03:40 -04:00
Chanhyeong Cho
ae32191310 Minor cleanup
* Remove reference to @EnableBinding in DefaultBinding
* Docs cleanup
2024-06-17 15:20:50 -04:00
Oleg Zhurakousky
9e6caef371 GH-2955 Remove dynamicDestination property from BindingServiceProperties
Resolves #2950
2024-06-07 08:28:41 +02:00
Oleg Zhurakousky
d6550ed324 GH-2956 Fix assertion for multiple binders
Resolves #2956
2024-06-04 08:36:53 +02:00
buildmaster
7c206241cc Bumping versions to 4.1.3-SNAPSHOT after release 2024-05-30 10:53:13 +00:00
buildmaster
084242ac9e Going back to snapshots 2024-05-30 10:53:12 +00:00
buildmaster
79d093e984 Update SNAPSHOT to 4.1.2 2024-05-30 10:49:10 +00:00
Oleg Zhurakousky
625f25130d GH-2930 Add configuration metadata
Resolves #2930
2024-05-27 09:10:53 +02:00
Oleg Zhurakousky
7f0021b394 GH-2728 Change the order of the refresh for multicontext 2024-05-27 09:05:50 +02:00