Commit Graph

12159 Commits

Author SHA1 Message Date
Artem Bilan
efa8dc50b7 GH-9821: SFTP: Use STAT command to follow symlinks
Fixes: #9821
Issue link: https://github.com/spring-projects/spring-integration/issues/9821

Previously, Spring Integration used JSch library for SFTP protocol,
and that one was able to follow symlinks.
Currently, the `SftpSession` uses `LSTAT` command which does not follow symlinks

* Fix `SftpSession` to call `sftpClient.stat()` instead of `lstat()`
to mitigate migration pain from JSch

**Auto-cherry-pick to `6.4.x` & `6.3.x`**
2025-02-12 13:28:41 -05:00
Artem Bilan
478409e199 Fix SF deprecation in the HttpOutboundGatewayParserTests 2025-02-12 09:44:13 -05:00
Artem Bilan
32e3d18c94 Fix race condition in the PostgresChannelMessageTableSubscriberTests
Adding two messages into a group may end up with wrong insert order.
Or better to say the timestamp of first messages inserted might be behind in the future after the second one.
This leads to a wrong order return for polling operation and, therefore, verification in the test.

* Fix `PostgresChannelMessageTableSubscriberTests` inserting `Thread.sleep(100);`
between `messageStore.addMessageToGroup()` operations
2025-02-11 11:59:54 -05:00
Artem Bilan
8dab7409b5 GH-9792: Remove resource header in the StreamTransformer
Fixes: https://github.com/spring-projects/spring-integration/issues/9792

The `StreamTransformer` closes `IntegrationMessageHeaderAccessor.CLOSEABLE_RESOURCE` header value,
so this becomes unusable afterward.
In addition, it may even cause some problems downstream when the message could be serialized for
subsequent network interaction.

* Add logic to the `StreamTransformer` to build a new message, but remove `IntegrationMessageHeaderAccessor.CLOSEABLE_RESOURCE` header
* Verify that header is removed in the `StreamingInboundTests`.
Addition `StreamingInboundTests` clean up for better code style.
2025-02-11 11:47:33 -05:00
Artem Bilan
370f308fe7 GH-9818: Fix typos in JavaDocs of JDBC components
Fixes: #9818
Issue link: https://github.com/spring-projects/spring-integration/issues/9818

**Auto-cherry-pick to `6.4.x` & `6.3.x`**
2025-02-11 11:13:55 -05:00
dependabot[bot]
8d506d5a88 Bump io.rsocket:rsocket-transport-netty from 1.1.4 to 1.1.5 (#9814)
Bumps [io.rsocket:rsocket-transport-netty](https://github.com/rsocket/rsocket-java) from 1.1.4 to 1.1.5.
- [Release notes](https://github.com/rsocket/rsocket-java/releases)
- [Commits](https://github.com/rsocket/rsocket-java/compare/1.1.4...1.1.5)

---
updated-dependencies:
- dependency-name: io.rsocket:rsocket-transport-netty
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-09 00:26:54 +00:00
dependabot[bot]
8df9b1a601 Bump the development-dependencies group with 2 updates (#9813)
Bumps the development-dependencies group with 2 updates: [org.hibernate.orm:hibernate-core](https://github.com/hibernate/hibernate-orm) and [com.icegreen:greenmail](https://github.com/greenmail-mail-test/greenmail).


Updates `org.hibernate.orm:hibernate-core` from 6.6.5.Final to 6.6.6.Final
- [Release notes](https://github.com/hibernate/hibernate-orm/releases)
- [Changelog](https://github.com/hibernate/hibernate-orm/blob/6.6.6/changelog.txt)
- [Commits](https://github.com/hibernate/hibernate-orm/compare/6.6.5...6.6.6)

Updates `com.icegreen:greenmail` from 2.1.2 to 2.1.3
- [Release notes](https://github.com/greenmail-mail-test/greenmail/releases)
- [Commits](https://github.com/greenmail-mail-test/greenmail/compare/release-2.1.2...release-2.1.3)

---
updated-dependencies:
- dependency-name: org.hibernate.orm:hibernate-core
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: development-dependencies
- dependency-name: com.icegreen:greenmail
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: development-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-09 00:26:33 +00:00
Artem Bilan
23d22f6cbd Remove redundant manual-finalize-release.yml 2025-02-07 10:57:35 -05:00
dependabot[bot]
f76c4d0e01 Bump com.github.spotbugs in the development-dependencies group (#9802)
Bumps the development-dependencies group with 1 update: com.github.spotbugs.


Updates `com.github.spotbugs` from 6.1.2 to 6.1.3

---
updated-dependencies:
- dependency-name: com.github.spotbugs
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: development-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-02 00:08:55 +00:00
dependabot[bot]
30abae6947 Bump org.jruby:jruby-complete from 9.4.10.0 to 9.4.11.0 (#9805)
Bumps org.jruby:jruby-complete from 9.4.10.0 to 9.4.11.0.

---
updated-dependencies:
- dependency-name: org.jruby:jruby-complete
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-02 00:06:36 +00:00
dependabot[bot]
0530e414b6 Bump org.apache.ftpserver:ftpserver-core from 1.2.0 to 1.2.1 (#9804)
Bumps [org.apache.ftpserver:ftpserver-core](https://github.com/apache/mina-ftpserver) from 1.2.0 to 1.2.1.
- [Commits](https://github.com/apache/mina-ftpserver/compare/1.2.0...ftpserver-parent-1.2.1)

---
updated-dependencies:
- dependency-name: org.apache.ftpserver:ftpserver-core
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-02 00:05:54 +00:00
dependabot[bot]
2b5111fcd0 Bump io.lettuce:lettuce-core from 6.5.2.RELEASE to 6.5.3.RELEASE (#9803)
Bumps [io.lettuce:lettuce-core](https://github.com/lettuce-io/lettuce-core) from 6.5.2.RELEASE to 6.5.3.RELEASE.
- [Release notes](https://github.com/lettuce-io/lettuce-core/releases)
- [Changelog](https://github.com/redis/lettuce/blob/6.5.3.RELEASE/RELEASE-NOTES.md)
- [Commits](https://github.com/lettuce-io/lettuce-core/compare/6.5.2.RELEASE...6.5.3.RELEASE)

---
updated-dependencies:
- dependency-name: io.lettuce:lettuce-core
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-02 00:05:43 +00:00
Artem Bilan
054ff57728 GH-9801: Kafka: generate ID & TIMESTAMP headers by default
Fixes: https://github.com/spring-projects/spring-integration/issues/9801

Spring Integration Apache Kafka inbound channel adapters have always produced
messages without `ID` & `TIMESTAMP` headers.
See `MessagingMessageConverter` used over there by default.
However, for consistency with the rest of Spring Integration channel adapters,
it would be better to have Kafka-specific behave same way.

* Configure default `MessagingMessageConverter` in the `KafkaMessageSource` & `KafkaMessageDrivenChannelAdapter`
for generating `ID` & `TIMESTAMP` headers.
2025-01-30 16:53:09 -05:00
Artem Bilan
c44363a69d Use main version of reusable WF in merge-dependabot-pr.yml
The `spring-io/spring-github-workflows/.github/workflows/spring-merge-dependabot-pr.yml` behaviour has been changed.
So, this change is to test it for the next Dependabot updates cycle.
2025-01-29 14:14:17 -05:00
Jelle Smits
36e4012a56 GH-9794: Encode SMB domain, username & password before SmbFile
Fixes: #9794
Issue link: https://github.com/spring-projects/spring-integration/issues/9794

The `SmbConfig.rawUrl()` method doesn't apply any URL encoding,
resulting in parts of the `domainUserPass` that may contain a `@` character to break
the URL logic in regard to determining the hostname.

* Modify `SmbConfig.getDomainUserPass(_includePassword)` to conditionally encode the variables.
Makes sure to encode the individual parts to not undesirably encode the `;` and `:` characters, breaking other logic.
* Modify `SmbConfig.rawUrl(_includePassword)` and `SmbConfig.createUri(_includePassword)`
to call the modified method with the correct `_urlEncode` variable

Signed-off-by: Jelle Smits <110663902+smitsjelle@users.noreply.github.com>

[artem.bilan@broadcom.com: some code cleanup]

* Add author to the affected classes
* Remove redundant explicit exceptions list from the `SmbMessageHistoryTests`

**Auto-cherry-pick to `6.4.x` & `6.3.x`**

Signed-off-by: Artem Bilan <artem.bilan@broadcom.com>
2025-01-28 16:04:33 -05:00
Artem Bilan
91f4fe48b6 GH-9796: Fix SftpSession.write() for concurrency
Fixes: #9796
Issue link: https://github.com/spring-projects/spring-integration/issues/9796

The `org.apache.sshd.sftp.client.impl.SftpOutputStreamAsync` is shared object for the `DefaultSftpClient`
and it cannot be used concurrently.

The guarded `send()` operation in the `ConcurrentSftpClient` is not enough
since `DefaultSftpClient.write()` is called directly from the `SftpOutputStreamAsync.internalFlush()`.
And this in the end is called from the `SftpSession.write()`

* Fix `DefaultSftpSessionFactory.ConcurrentSftpClient` to override the `write()` method instead.
Guard it with a `Lock` and call `sftpMessage.waitUntilSent();` to ensure that no concurrent access
to the underlying `SftpOutputStreamAsync`.

**Auto-cherry-pick to `6.4.x` & `6.3.x`**
2025-01-28 12:16:54 -05:00
dependabot[bot]
69aaa1d451 Bump io.micrometer:micrometer-tracing-bom (#9790)
Bumps [io.micrometer:micrometer-tracing-bom](https://github.com/micrometer-metrics/tracing) from 1.5.0-M1 to 1.5.0-SNAPSHOT.
- [Release notes](https://github.com/micrometer-metrics/tracing/releases)
- [Commits](https://github.com/micrometer-metrics/tracing/commits)

---
updated-dependencies:
- dependency-name: io.micrometer:micrometer-tracing-bom
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-26 01:04:14 +00:00
dependabot[bot]
facfcf0515 Bump org.apache.groovy:groovy-bom from 4.0.24 to 4.0.25 (#9789)
Bumps [org.apache.groovy:groovy-bom](https://github.com/apache/groovy) from 4.0.24 to 4.0.25.
- [Commits](https://github.com/apache/groovy/commits)

---
updated-dependencies:
- dependency-name: org.apache.groovy:groovy-bom
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-26 01:00:29 +00:00
dependabot[bot]
46b8c4c511 Bump org.springframework.security:spring-security-bom (#9788)
Bumps [org.springframework.security:spring-security-bom](https://github.com/spring-projects/spring-security) from 6.5.0-M1 to 6.5.0-SNAPSHOT.
- [Release notes](https://github.com/spring-projects/spring-security/releases)
- [Changelog](https://github.com/spring-projects/spring-security/blob/main/RELEASE.adoc)
- [Commits](https://github.com/spring-projects/spring-security/commits)

---
updated-dependencies:
- dependency-name: org.springframework.security:spring-security-bom
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-26 00:59:58 +00:00
dependabot[bot]
d0ce31c332 Bump mongoDriverVersion from 5.3.0 to 5.3.1 (#9786)
Bumps `mongoDriverVersion` from 5.3.0 to 5.3.1.

Updates `org.mongodb:mongodb-driver-sync` from 5.3.0 to 5.3.1
- [Release notes](https://github.com/mongodb/mongo-java-driver/releases)
- [Commits](https://github.com/mongodb/mongo-java-driver/compare/r5.3.0...r5.3.1)

Updates `org.mongodb:mongodb-driver-reactivestreams` from 5.3.0 to 5.3.1
- [Release notes](https://github.com/mongodb/mongo-java-driver/releases)
- [Commits](https://github.com/mongodb/mongo-java-driver/compare/r5.3.0...r5.3.1)

---
updated-dependencies:
- dependency-name: org.mongodb:mongodb-driver-sync
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.mongodb:mongodb-driver-reactivestreams
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-26 00:59:20 +00:00
dependabot[bot]
8173011eef Bump io.micrometer:micrometer-bom from 1.15.0-M1 to 1.15.0-SNAPSHOT (#9787)
Bumps [io.micrometer:micrometer-bom](https://github.com/micrometer-metrics/micrometer) from 1.15.0-M1 to 1.15.0-SNAPSHOT.
- [Release notes](https://github.com/micrometer-metrics/micrometer/releases)
- [Commits](https://github.com/micrometer-metrics/micrometer/commits)

---
updated-dependencies:
- dependency-name: io.micrometer:micrometer-bom
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-26 00:58:33 +00:00
Artem Bilan
a0a2e76ee2 Fix deprecation in the HttpOutboundChannelAdapterParserTests
The SF `6.2.2` has a `ResponseErrorHandler.handleError(ClientHttpResponse)` deprecated

**Auto-cherry-pick to `6.4.x`**
2025-01-23 10:29:08 -05:00
Spring Builds
24594f6988 [artifactory-release] Next development version 2025-01-21 20:28:49 +00:00
Spring Builds
809b0c828a [artifactory-release] Release version 6.5.0-M1 2025-01-21 20:28:48 +00:00
Artem Bilan
3c31320f89 Downgrade to just release Spring Data 2024.1.2 2025-01-21 14:27:23 -05:00
Artem Bilan
292f413e7d Upgrade dependencies; prepare for release 2025-01-21 14:19:09 -05:00
dependabot[bot]
28733479be Bump org.springframework.kafka:spring-kafka-bom from 3.3.1 to 3.3.2 (#9781)
Bumps [org.springframework.kafka:spring-kafka-bom](https://github.com/spring-projects/spring-kafka) from 3.3.1 to 3.3.2.
- [Release notes](https://github.com/spring-projects/spring-kafka/releases)
- [Commits](https://github.com/spring-projects/spring-kafka/compare/v3.3.1...v3.3.2)

---
updated-dependencies:
- dependency-name: org.springframework.kafka:spring-kafka-bom
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-21 18:46:35 +00:00
dependabot[bot]
1d73a19a9d Bump org.springframework.amqp:spring-amqp-bom from 3.2.1 to 3.2.2 (#9783)
Bumps [org.springframework.amqp:spring-amqp-bom](https://github.com/spring-projects/spring-amqp) from 3.2.1 to 3.2.2.
- [Release notes](https://github.com/spring-projects/spring-amqp/releases)
- [Commits](https://github.com/spring-projects/spring-amqp/compare/v3.2.1...v3.2.2)

---
updated-dependencies:
- dependency-name: org.springframework.amqp:spring-amqp-bom
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-21 18:24:26 +00:00
dependabot[bot]
89dd071fd2 Bump graalvmVersion from 24.1.1 to 24.1.2 (#9775)
Bumps `graalvmVersion` from 24.1.1 to 24.1.2.

Updates `org.graalvm.sdk:graal-sdk` from 24.1.1 to 24.1.2
- [Release notes](https://github.com/oracle/graal/releases)
- [Commits](https://github.com/oracle/graal/compare/vm-24.1.1...vm-24.1.2)

Updates `org.graalvm.polyglot:js` from 24.1.1 to 24.1.2
- [Release notes](https://github.com/oracle/graal/releases)
- [Commits](https://github.com/oracle/graal/compare/vm-24.1.1...vm-24.1.2)

Updates `org.graalvm.polyglot:python` from 24.1.1 to 24.1.2
- [Release notes](https://github.com/oracle/graal/releases)
- [Commits](https://github.com/oracle/graal/compare/vm-24.1.1...vm-24.1.2)

---
updated-dependencies:
- dependency-name: org.graalvm.sdk:graal-sdk
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.graalvm.polyglot:js
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.graalvm.polyglot:python
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-21 18:22:24 +00:00
dependabot[bot]
2263464e32 Bump org.jruby:jruby-complete from 9.4.9.0 to 9.4.10.0 (#9776)
Bumps org.jruby:jruby-complete from 9.4.9.0 to 9.4.10.0.

---
updated-dependencies:
- dependency-name: org.jruby:jruby-complete
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-21 18:21:53 +00:00
dependabot[bot]
af275c86d8 Bump the development-dependencies group with 2 updates (#9763)
Bumps the development-dependencies group with 2 updates: [org.postgresql:postgresql](https://github.com/pgjdbc/pgjdbc) and [org.hibernate.orm:hibernate-core](https://github.com/hibernate/hibernate-orm).


Updates `org.postgresql:postgresql` from 42.7.4 to 42.7.5
- [Release notes](https://github.com/pgjdbc/pgjdbc/releases)
- [Changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md)
- [Commits](https://github.com/pgjdbc/pgjdbc/compare/REL42.7.4...REL42.7.5)

Updates `org.hibernate.orm:hibernate-core` from 6.6.4.Final to 6.6.5.Final
- [Release notes](https://github.com/hibernate/hibernate-orm/releases)
- [Changelog](https://github.com/hibernate/hibernate-orm/blob/6.6.5/changelog.txt)
- [Commits](https://github.com/hibernate/hibernate-orm/compare/6.6.4...6.6.5)

---
updated-dependencies:
- dependency-name: org.postgresql:postgresql
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: development-dependencies
- dependency-name: org.hibernate.orm:hibernate-core
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: development-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-19 03:53:28 +00:00
dependabot[bot]
29d4942c02 Bump io.projectreactor:reactor-bom from 2024.0.1 to 2024.0.2 (#9765)
Bumps [io.projectreactor:reactor-bom](https://github.com/reactor/reactor) from 2024.0.1 to 2024.0.2.
- [Release notes](https://github.com/reactor/reactor/releases)
- [Commits](https://github.com/reactor/reactor/compare/2024.0.1...2024.0.2)

---
updated-dependencies:
- dependency-name: io.projectreactor:reactor-bom
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-19 00:55:25 +00:00
dependabot[bot]
5ab8e5445b Bump org.springframework:spring-framework-bom from 6.2.1 to 6.2.2 (#9766)
Bumps [org.springframework:spring-framework-bom](https://github.com/spring-projects/spring-framework) from 6.2.1 to 6.2.2.
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v6.2.1...v6.2.2)

---
updated-dependencies:
- dependency-name: org.springframework:spring-framework-bom
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-19 00:55:07 +00:00
dependabot[bot]
34be7b3db2 Bump org.assertj:assertj-core from 3.27.2 to 3.27.3 (#9767)
Bumps [org.assertj:assertj-core](https://github.com/assertj/assertj) from 3.27.2 to 3.27.3.
- [Release notes](https://github.com/assertj/assertj/releases)
- [Commits](https://github.com/assertj/assertj/compare/assertj-build-3.27.2...assertj-build-3.27.3)

---
updated-dependencies:
- dependency-name: org.assertj:assertj-core
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-19 00:54:51 +00:00
dependabot[bot]
89f60cb81c Bump debeziumVersion from 3.0.6.Final to 3.0.7.Final (#9764)
Bumps `debeziumVersion` from 3.0.6.Final to 3.0.7.Final.

Updates `io.debezium:debezium-embedded` from 3.0.6.Final to 3.0.7.Final

Updates `io.debezium:debezium-connector-mysql` from 3.0.6.Final to 3.0.7.Final

---
updated-dependencies:
- dependency-name: io.debezium:debezium-embedded
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: io.debezium:debezium-connector-mysql
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-19 00:45:09 +00:00
Artem Bilan
7ac6b2175e Mention in docs that org.eclipse.paho.client.mqttv3 is optional 2025-01-15 11:52:59 -05:00
Artem Bilan
18149108b2 Migrate to DCO from CLA
**Auto-cherry-pick to `6.4.x` & `6.3.x`**
2025-01-14 15:48:26 -05:00
Artem Bilan
ad61cef7fc GH-9754: Add discardIndividuallyOnExpiry to aggregator
Fixes: https://github.com/spring-projects/spring-integration/issues/9754

Right now a correlation handler can discard messages in the expired group one by one.
In some scenarios it would be useful to have single message in discard for the whole group.

* Expose `discardIndividuallyOnExpiry` for the `AbstractCorrelatingMessageHandler`,
and `AggregatorFactoryBean`, and respective `CorrelationHandlerSpec` for DSL.
This new option takes action only if a `discardChannel` is provided,
and `sendPartialResultOnExpiry` is not set to `true`.
When `discardIndividuallyOnExpiry` is false, the messages in the expired group are packed
into a list for payload of a discarding single message.
* Test and document the new feature
2025-01-14 13:03:29 -05:00
dependabot[bot]
85b1418309 Bump protobufVersion from 4.29.2 to 4.29.3 (#9752)
Bumps `protobufVersion` from 4.29.2 to 4.29.3.

Updates `com.google.protobuf:protobuf-java` from 4.29.2 to 4.29.3
- [Release notes](https://github.com/protocolbuffers/protobuf/releases)
- [Changelog](https://github.com/protocolbuffers/protobuf/blob/main/protobuf_release.bzl)
- [Commits](https://github.com/protocolbuffers/protobuf/commits)

Updates `com.google.protobuf:protobuf-java-util` from 4.29.2 to 4.29.3

Updates `com.google.protobuf:protoc` from 4.29.2 to 4.29.3
- [Release notes](https://github.com/protocolbuffers/protobuf/releases)
- [Changelog](https://github.com/protocolbuffers/protobuf/blob/main/protobuf_release.bzl)
- [Commits](https://github.com/protocolbuffers/protobuf/commits)

---
updated-dependencies:
- dependency-name: com.google.protobuf:protobuf-java
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.google.protobuf:protobuf-java-util
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.google.protobuf:protoc
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-12 00:35:16 +00:00
dependabot[bot]
b372948c49 Bump com.github.spotbugs in the development-dependencies group (#9751)
Bumps the development-dependencies group with 1 update: com.github.spotbugs.


Updates `com.github.spotbugs` from 6.0.27 to 6.0.28

---
updated-dependencies:
- dependency-name: com.github.spotbugs
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: development-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-12 00:32:20 +00:00
Artem Bilan
6184c4082a GH-9745: IntEvalCtxFB: Use BeanFactory's ClassLoader
Fixes: #9745
Issue link: https://github.com/spring-projects/spring-integration/issues/9745

The `IntegrationEvaluationContextFactoryBean` does not provide a `TypeLocator` by default.
That may lead to a class-not-found problem from different `ClassLoader` in the parallel Java `Stream` executor.

* Fix `IntegrationEvaluationContextFactoryBean` to use a `StandardTypeLocator` based on the `applicationContext.getClassLoader()`

**Auto-cherry-pick to `6.4.x` & `6.3.x`**
2025-01-09 16:27:38 -05:00
Artem Bilan
8391f07728 Remove @Deprecated classes 2025-01-09 13:34:20 -05:00
Artem Bilan
89c5dfa4d6 GH-9743: Add observation to the SourcePollingChannelAdapter
Fixes: https://github.com/spring-projects/spring-integration/issues/9743

Spring Integration provides observation for the `MessageChannel`, `MessageHandler`
and `MessageProducerSupport`.
The `SourcePollingChannelAdapter` is missing, and it is that only special endpoint which
deals with `MessageSource` implementations via scheduled tasks in the poller.
Essentially, this endpoint is a start of the flow, but it still is a consumer of data from the source system.

* Add an `Observation` logic to the `SourcePollingChannelAdapter`.
* Divide it into two phases: start (and open scope) when message is received; stop (and close scope) when the whole polling task for a message is done.
We need this separation because of transaction scope for the polling task.
At the same time we don't want to emit an observation for a void polling task.
* Change `MessageReceiverContext` to accept a `handlerType`.
The `MessageHandler` contributes a `handler`.
The new support in the `SourcePollingChannelAdapter` - `message-source`.
And change `MessageProducerSupport` to contribute a `message-producer`
* Verify the single trace is supported for the whole flow (including transaction synchronization) starting from a `SourcePollingChannelAdapter` in a new `SourcePollingChannelAdapterObservationTests`
* Document this new feature
2025-01-09 13:31:02 -05:00
Artem Bilan
177bda58c5 GH-9744: Remove deprecated LobHandler references
Fixes: https://github.com/spring-projects/spring-integration/issues/9744
2025-01-08 12:28:56 -05:00
NaccOll
9962ee49a2 GH-5123: Add LockRegistry to AbstractMessageGroupStore
Fixes: https://github.com/spring-projects/spring-integration/issues/5123

When `RedisMessageStore`, for example, adds and removes messages, it operates on two keys separately, which may cause problems in multi-threading due to non-atomic operations.
Although using Redis to delay messages is not a good idea, the abnormal loss of messages in the logs alerted me when the number of requests was not large.
By comparing the logs, the problem that the message group representing the metadata is not consistent with the actual message.

A simple solution is to add lock like in the `SimpleMessageStore`, which is also the approach taken in this pull request.

* Add `LockRegistry` to `AbstractMessageGroupStore`
* Normalize access levels and method name about the lock of `MessageGroupStore`
* Add document about the lock of `AbstractMessageGroupStore`
2025-01-08 12:18:12 -05:00
dependabot[bot]
12a643d494 Bump org.assertj:assertj-core from 3.27.1 to 3.27.2 (#9742)
Bumps [org.assertj:assertj-core](https://github.com/assertj/assertj) from 3.27.1 to 3.27.2.
- [Release notes](https://github.com/assertj/assertj/releases)
- [Commits](https://github.com/assertj/assertj/compare/assertj-build-3.27.1...assertj-build-3.27.2)

---
updated-dependencies:
- dependency-name: org.assertj:assertj-core
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-05 01:28:31 +00:00
Artem Bilan
6e9fd47426 GH-9706: Allow collection of payloads as an aggregator result
Fixes: https://github.com/spring-projects/spring-integration/issues/9706

Previously, if a `MessageGroupProcessor` returns a collection of payloads,
the `AbstractCorrelatingMessageHandler` has failed with the `IllegalArgumentException`
stating that only collection of messages is possible.
From now on such a restriction is eliminated and returned collection of payloads
is emitted as a single reply message from the aggregator.

* Add `AbstractCorrelatingMessageHandler.isResultCollectionOfMessages()`
to return `true` only if result is a collection of messages, treating them as a "partial sequence".
* Deprecate `AbstractCorrelatingMessageHandler.verifyResultCollectionConsistsOfMessages()`
since it is out of use now.
2025-01-02 16:26:37 -05:00
Artem Bilan
54fbce4b98 GH-9683: Remove deprecated Groovy components for Control Bus
Related to: https://github.com/spring-projects/spring-integration/issues/9683

The functionality is now fully covered by the `ControlBusCommandRegistry` API
2025-01-02 14:14:15 -05:00
Artem Bilan
d9f21fef42 GH-9683: Bring back controlBus() API
Fixes: https://github.com/spring-projects/spring-integration/issues/9683

Since we don't support SpEL-based Control Bus functionality anymore,
there is no need to keep separate `controlBusOnRegistry()`

* In all DSLs Deprecate `controlBusOnRegistry()` and restore `controlBus()` which is now fully based
on the `ControlBusCommandRegistry`
* Deprecate now out of use `<control-bus use-registry="">` attribute
* Fix `ControlBusParser` to not deal with `use-registry` attribute anymore
* Remove deprecated before `ExpressionControlBusFactoryBean` and `ExpressionCommandMessageProcessor`
* Remove `use-registry` from test configs
* Fix `ControlBusChainTests` to rely on a new Control Bus functionality
2025-01-02 14:06:31 -05:00
Artem Bilan
37664fb2aa Fix Javadoc tags order in the CheckedCallable 2025-01-02 12:54:58 -05:00