Commit Graph

10388 Commits

Author SHA1 Message Date
Alexandre Strubel
e2c6e77f2f GH-3272: Add lease renewal for distributed locks
Fixes https://github.com/spring-projects/spring-integration/issues/3272

* Introduce a `RenewableLockRegistry` since not all `LockRegistry` implementations
provide a way to renew the lease for the lock
* Implement `RenewableLockRegistry` in the `JdbcLockRegistry`
* Test and document the feature
2020-07-06 12:46:47 -04:00
Artem Bilan
381a071287 Clean up RedisLockRegistryLeaderInitiatorTests
Related to https://build.spring.io/browse/INT-MASTERSPRING40-1129

When there is no other candidates in the cluster, the current `yield()`
will give a leadership to the current active initiator back
Therefore a `revoke()` might not be called at all

* Fir the `RedisLockRegistryLeaderInitiatorTests` to check revoking
after `stop()` instead of `yield()`
2020-07-06 11:30:43 -04:00
Alexander Shaklein
7424cb215c GH-3324. fix NPE in StdIntFlowContext
Fixes https://github.com/spring-projects/spring-integration/issues/3324

The `StandardIntegrationFlowContext.remove()` has a possible NPE 

**Cherry-pick to 5.3.x & 5.2.x**
2020-07-04 15:58:49 -04:00
Artem Bilan
146b0af1f4 GH-3320: Refine lifecycle control in StdIntFlow (#3322)
* GH-3320: Refine lifecycle control in StdIntFlow

Fixes https://github.com/spring-projects/spring-integration/issues/3320

Turns out that lifecycle control for the whole bunch of components
in one `IntegrationFlow` is useful in fields.

* Change the logic in the `StandardIntegrationFlow` to let to call
`start()` and `stop()` independently how the flow was registered in
the application context.
This way it can be autowired as a `Lifecycle` to let end-user to
avoid the search for proper component in the flow to stop or start
manually - all the components registered with the flow are going
to be stopped or started respectively

* * Add `this.` to class property usage to satisfy Checkstyle

Co-authored-by: Artem Bilan <abilan@vmware.com>
2020-07-02 15:29:43 -04:00
Artem Bilan
412d9f5400 Fix new Sonar smells 2020-07-02 10:30:03 -04:00
Artem Bilan
f62b0916b6 Fix MessagingGatewaySupport for reactive error (#3319)
* Fix MessagingGatewaySupport for reactive error

The `onErrorResume()` was in a wrong place for the
`doSendAndReceiveMessageReactive()`: we have to catch all the exceptions
from the top level `Mono`, not only a reply one as it was before.

Ensure in HTTP and WebFlux test that behavior is fixed

**Cherry-pick to `5.3.x` & `5.2.x`**

* * Remove unused imports

Co-authored-by: Artem Bilan <abilan@vmware.com>
2020-07-01 15:53:35 -04:00
Gary Russell
f3d61ec44a GH-3315: Fix (S)FTP Stream with Fair Rotation
Resolves https://github.com/spring-projects/spring-integration/issues/3315

`maxFetchSize` ignored with filters supporting single file filtering (default).
This breaks "fair" rotation with the `RotatingServerAdvice`.

Honor `maxFetchSize`, even with filters that support single file filtering.

**cherry-pick to 5.3.x, 5.2.x**
2020-07-01 15:47:35 -04:00
Artem Bilan
0ddbfa6e6d Remove Redis service from Travis config
Since Travis uses an old Redis version we can't rely on its service any more
2020-07-01 14:20:37 -04:00
Spring Buildmaster
0dc03ad731 [artifactory-release] Next development version 2020-06-26 17:20:54 +00:00
Spring Buildmaster
696271bf6a [artifactory-release] Release version 5.4.0-M1 2020-06-26 17:20:49 +00:00
Artem Bilan
b5225b9c33 Upgrade dependencies; prepare for release 2020-06-26 12:54:49 -04:00
Attoumane AHAMADI
afa79d868b GH-3226: Redis Stream Outbound Channel Adapter
Fixes https://github.com/spring-projects/spring-integration/issues/3226

* Redis stream message handler support.
* This is the outbound part publishing message to the actual stream using ReactiveStreamOperations

* Addition of more test cases with one using `MessageChannel`.

* Improvements after PR review.

* Removed failed test reading List from a Stream
* Code style clean up
* Remove `rawtypes` usage
* Remove redundant inner classes for test model
* Add `What's New` note
2020-06-26 11:28:41 -04:00
Florian Schmaus
4761800528 Fix XMPP documentation
s/Enhancement Proposal/Extension Protocol/

XMPP XEPs are extension protocols of XMPP "core" (i.e., RFC 6120 and
RFC 6121).

See also https://xmpp.org/extensions/xep-0001.html:
"The focal point of the process is a series of protocol specifications
called XMPP Extension Protocols or XEPs."
2020-06-26 08:56:13 -04:00
fnu, rohan
dfd914254b INT-4566: R2DBC Outbound Channel Adapter
JIRA: https://jira.spring.io/browse/INT-4566

* Fixed review comments
* added `DELETE` and `Criteria` implementation for outbound channel adapter
* Clean up code style
* Add initial docs
2020-06-25 12:45:24 -04:00
Gary Russell
b860a2e818 Merge Spring Integration Kafka into Main Repo
- merge master branch from old repo (`git-filter-repo`) for src branch
- update build.gradle
- copy docs from Spring for Apache Kafka Chapter

Doc polishing.

Fix http: references in tests.

* Add `What's New` note and fix `polling-consumer.adoc`
not linking to external project any more
2020-06-25 11:46:38 -04:00
Gary Russell
3ec74f380f KMSource - fix RebalanceListener (incremental)
Support cooperative rebalancing
 - incremental assignment/revocation
 - re-pause if a rebalance occurs while paused

**cheerry-pick to 3.2.x**
2020-06-25 11:29:09 -04:00
Artem Bilan
a28647259c Upgrade dependencies; prepare for release 2020-06-25 11:29:09 -04:00
Gary Russell
8771f8e18c Fix tests for latest SK snapshot 2020-06-25 11:29:08 -04:00
Artem Bilan
04019dbb96 Fix checkstyle.xml for Windows new line 2020-06-25 11:29:08 -04:00
Artem Bilan
bfef5a49cf Fix Kotlin tests according upstream changes
* Upgrade dependencies
2020-06-25 11:29:08 -04:00
Gary Russell
213772dcaf Fix S-K Deprecations 2020-06-25 11:29:08 -04:00
Gary Russell
1e484d0fad Support flush after send
* Add `flushExpression`.

* Add DSL, XML configuration.
2020-06-25 11:29:08 -04:00
Artem Bilan
e0be544a40 Add more XSD version into spring.schemas
* Fix some deprecation in `build.gradle`
2020-06-25 11:29:07 -04:00
Gary Russell
a58169f4e1 Fix Gradle Deprecations
* Rename schema

* Upgrade to Gradle 6.3-rc-3 for transitive dependency fix.

* Remove version from schema; polish `build.gradle` to remove unneeded features.
2020-06-25 11:29:07 -04:00
Gary Russell
81b9ae4a7a Use core Kotlin DSL 2020-06-25 11:29:07 -04:00
Gary Russell
0b7ea6d3c2 Remove deprecated methods 2020-06-25 11:29:07 -04:00
Gary Russell
bdd236052b Upgrade to SK 2.5.0
- add deliveryAttempt header when retry is not configured
- temporary work around for gradle bug, jar with test classifier missing from CP
2020-06-25 11:29:07 -04:00
Gary Russell
aaaaf86c07 GH-296: DSL: Support inline pub/sub subscriptions
Resolves https://github.com/spring-projects/spring-integration-kafka/issues/296

* * Add generic type to specsto avoid cast to `BroadcastCapableChannel`.

* * Remove unneeded fields in the abstract spec

* Restore log4j config
2020-06-25 11:29:06 -04:00
Gary Russell
2331eee642 GH-296: Add Kafka-backed MessageChannels
Resolves https://github.com/spring-projects/spring-integration-kafka/issues/296

* * Add DSL support

* * Polishing and XML support
2020-06-25 11:29:06 -04:00
Gary Russell
905a5155bc Master to 3.3; support non-Tx if template allows
* SI to 5.3.0.B-S
2020-06-25 11:29:06 -04:00
Artem Bilan
f596e49242 Upgrade to latest releases
* Upgrade to Gradle 6.1.1
* Fix for latest Checkstyle
* Fix for latest SI-Kotlin-DSL
2020-06-25 11:29:06 -04:00
Artem Bilan
27f0775fb8 Apply SI-Kotlin-DSL in tests (#292)
* Apply SI-Kotlin-DSL in tests

* Upgrade dependencies

* Upgrade to latest releases
2020-06-25 11:29:05 -04:00
Gary Russell
386c64c617 Support ProducerRecord outbound payloads 2020-06-25 11:29:05 -04:00
Gary Russell
cf3aa29a23 GH-290: Add ProducerRecordCreator
Resolves https://github.com/spring-projects/spring-integration-kafka/issues/290
2020-06-25 11:29:05 -04:00
Gary Russell
6cddb2c169 Revert "Apply SI-Kotlin-DSL in tests"
This reverts commit b03ddcb953c18469564994921efb84a072a0e358.
2020-06-25 11:29:05 -04:00
Artem Bilan
9b0b87d37e Apply SI-Kotlin-DSL in tests 2020-06-25 11:29:05 -04:00
Artem Bilan
bf0134cb52 Upgrade to latest GAs
* Move all the test to JUnit 5; remove redundant JUnit 4 dependencies
2020-06-25 11:29:04 -04:00
tomvandenberge
0e74cd1cee Add XML attribute for header-mapper
* Added support for header-mapper to outbound-channel-adapter and
outbound-gateway XML

* Follow up on review

* Corrected mistake

* Corrected indentation
2020-06-25 11:29:04 -04:00
Gary Russell
8cc2b2cc00 KMessageSource getter for consumer properties
- allow customization after creation - e.g. SCSt `MessageSourceCustomizer`
- also fix deprecation in `ReplyingKafkaTemplate`
2020-06-25 11:29:04 -04:00
Gary Russell
adf91edf05 KMSource: Consumer Property Overrides
- support property overrides in the message source
2020-06-25 11:29:04 -04:00
Artem Bilan
f6d858c7aa Polishing JavaDocs and possible NPEs
https://build.spring.io/browse/INTEXT-KAFKA-310/
2020-06-25 11:29:04 -04:00
Gary Russell
3831919cbc GH-282: KMSource - support async commits etc
Resolves https://github.com/spring-projects/spring-integration-kafka/issues/282

Use sync-related properties from `ConsumerProperties`.
2020-06-25 11:29:03 -04:00
Anshul Mehra
c20ef85168 GH-280: Add topicPattern support to KafkaMessageSource
Fixes https://github.com/spring-projects/spring-integration-kafka/issues/280

* Refactored to topics/topicPattern to be a property to
prevent constructor telescoping

* Add support for manual partition assignment

- Cleanup after rebasing from #283
- Add additional tests

* Fix checkstyle

* Remove redundant factory methods

* Add better test for static assignment

* Use ConsumerProperties 

Fix typo where ContainerProperties was used 
instead of ConsumerProperties

* Simplify construction

* Remove unused import

* Use ObjectUtils

* Use component name for clientId

* Collapse static assignment for loop

* Fix lint warning
2020-06-25 11:29:03 -04:00
Anshul Mehra
e52c535f7c Use ConsumerProperties in KafkaMessageSource
* Preserve existing constructors

* Add @deprecated in java docs
2020-06-25 11:29:03 -04:00
Gary Russell
e6cdb8818f GH-279: Fix tests for latest SK Snapshots
- add tests for tx.id overrides
2020-06-25 11:29:03 -04:00
Urs Keller
4cd81fda78 Fix NPE for retryTemp!=null but recoveryCall==null
Starting with version `3.0.x`, the `KafkaInboundGateway` and
`KafkaMessageDrivenChannelAdapter` rely on the
`RetryContext.getRetryCount()` for the
`IntegrationMessageHeaderAccessor.DELIVERY_ATTEMPT` message header, but
the `RetryContext` is obtained from the `TheadLocal` `attributesHolder`,
which is populated from the `RetryListener.open()` only if
`recoveryCallback != null`

* Fix `KafkaInboundGateway` and `KafkaMessageDrivenChannelAdapter` to
populate `TheadLocal` `attributesHolder` with the `RetryContext`
from the `RetryListener.open()` when only `retryTemplate != null`

**Cherry-pick to `master` & 3.0.x**

# Conflicts:
#	src/test/java/org/springframework/integration/kafka/inbound/MessageDrivenAdapterTests.java
2020-06-25 11:29:02 -04:00
Artem Bilan
d96a2d930c Add HTTPS entries for XSD into spring.schemas
Related to spring-projects/spring-integration#2987

**Cherry-pick to 3.1.x, 3.0.x & 2.3.x**
2020-06-25 11:29:02 -04:00
Gary Russell
41de7495e6 Resolve deprecations and other compiler warnings 2020-06-25 11:29:02 -04:00
Cameron Mayfield
600e88ec56 GH-272: Add KafkaMDrivenChAdapterSpec.payloadType
Fixes https://github.com/spring-projects/spring-integration-kafka/issues/272

Add `payloadType` option into `KafkaMessageDrivenChannelAdapterSpec`
2020-06-25 11:29:02 -04:00
Gary Russell
a1b51c9f47 Fix tests for SK 2.3.0.M3 2020-06-25 11:29:02 -04:00