Commit Graph

704 Commits

Author SHA1 Message Date
Artem Bilan
9367d7f4de Fix MessagingGateway for reactive reply type
* Upgrade dependencies to be ready for release
2020-06-23 14:26:11 -04:00
Artem Bilan
3bb445e133 Fix deprecations from Reactor 2020-06-22 13:32:06 -04:00
Artem Bilan
498f42d480 Fix deprecations from SF
* Remove `whitelist` words
* Resolve Sonar smells
* Add `await()` for FTP file removal test: looks like this operation may fail under the stress build
2020-06-19 12:07:58 -04:00
Artem Bilan
3f5aba2cb9 Support Java 14 (#3310)
* Support Java 14

* Provide changes to avoid deprecated Java API
and have a compatibility back to Java 8
* Change affected test classes to JUnit 5 whenever it is possible
* Ignore/Disable some TCP/IP tests which don't pass on Java 14

* Fix (some) TCP tests on JRE 14

* Fix SSL Handshake test - client side handshake is successful with java 14

- change the badClient cert to a badServer cert to force an error on the client side

Co-authored-by: artembilan <raven666>
Co-authored-by: Gary Russell <grussell@pivotal.io>
2020-06-17 14:00:06 -04:00
Artem Bilan
2419c03b25 Replace whitelist with allowlist 2020-06-15 14:20:51 -04:00
Gary Russell
55620973d6 Update spring-amqp version 2020-05-26 13:42:48 -04:00
Gary Russell
75021beae4 Use Awaitility in TCP/UDP Tests 2020-05-19 15:01:22 -04:00
Artem Bilan
b8f0fb215a Upgrade dependencies & Gradle 2020-05-19 14:10:19 -04:00
Artem Bilan
8f92bb26d3 Start version 5.4
* Fix compatibility after upgrading to some latest dependencies
2020-05-19 12:47:30 -04:00
Artem Bilan
9e1979f62a Upgrade dependencies; prepare for release 2020-05-13 16:03:18 -04:00
Artem Bilan
f047f0528b Fix Checkstyle to rely on the absolute path
It turns out that relative path in the property
`<property name="file" value="src/checkstyle/checkstyle-suppressions.xml"/>`
in some cases is resolved against a Gradle deamon dir as a root for configs

* Fix Checkstyle plugin config to use an absolute path in the project for
the `configDirectory`.
* Since `configDirectory` is exposed as a Checkstyle config variable,
we can use its `${config_loc}` placeholder to rely on the absolute path
in the project
2020-05-06 15:53:28 -04:00
Artem Bilan
1f47b6b55d Fix typo in build.gradle 2020-04-29 13:41:17 -04:00
Artem Bilan
cde9506ce4 Upgrade dependencies; prepare for release 2020-04-29 13:30:12 -04:00
Artem Bilan
9ec6529992 Upgrade to Rsocket 1.0-RC7; fix deprecations
* Fix RSocket docs according new functionality

**Cherry-pick to 5.2.x**
2020-04-28 17:20:38 -04:00
Jay Bryant
620b9bf52d Upgrade to latest version of Asciidoctor
Upgrade to latest version of Asciidoctor because we were several
versions behind and were steadily incurring more technical debt.

* Replace project-version attribute in Asciidoctor

I had removed the project-version attribute, but the docs use it all
over, so I put it back.

* Removed unneeded repositories

It turns out that those repositories are not needed.

A cross-reference was incorrectly formatted (missing the # character).
2020-04-27 12:37:53 -04:00
Jay Bryant
eedd2b028f Upgrade spring-doc-resources
Upgrade spring-doc-resources from version 0.2.0 to version 0.2.1
to get a bug fix (setting the display width in HTML output).
2020-04-23 11:42:04 -04:00
Artem Bilan
0d9b421cc9 Apply GitHub default community health
* Remove `CODE_OF_CONDUCT.adoc` if favor of the same for a GitHub org
* Move `LICENSE.txt` to the root project dir
* Fix `build.gradle` to copy a `LICENSE.txt` from the actual location
* Fix `README.md` and `CONTRIBUTING.adoc` to point into the actual `CODE_OF_CONDUCT`
& Security policy
* Add `ISSUE_TEMPLATE` directory with files similar to ones in `spring-session`
* Fix wrong section `id` in the `whats-new.adoc`
2020-04-18 16:55:53 -04:00
Artem Bilan
5b03db3f0f Upgrade dependencies; prepare for release
* Fix new Sonar smell
2020-04-01 13:42:14 -04:00
Gary Russell
83f218514c Upgrade to docResources 0.2.0 2020-03-27 16:37:55 -04:00
Artem Bilan
838abe03de Upgrade dependencies
* Fix `ActiveMQMultiContextTests` for `amqFactory.setTrustAllPackages(true)`
2020-03-24 17:05:48 -04:00
Artem Bilan
3058345648 Upgrade to Gradle 6.2.2
* Improve `build.gradle`:
 - Upgrade some plugins
 - Remove unused (or mistaken) dependencies
 - Add transitive `exclude` into Spring Data dependencies
 - Add `inputs.dir(sourceDir)` for docs tasks in attempt to avoid their build because of `up-to-date`
2020-03-13 13:15:38 -04:00
Artem Bilan
46cf5db78a GH-3213: Expose LeaderInitiatorFB.candidate
Fixes https://github.com/spring-projects/spring-integration/issues/3213

* Expose a `LeaderInitiatorFactoryBean.setCandidate()` for better control over candidate options
* Expose a `candidate` attribute for the `<int-zk:leader-listener>` tag
* Fix `dokka` task to obtain `package-list` URL from the local dir
* Migrate ZK tests to JUnit 5
2020-03-11 16:07:17 -04:00
Artem Bilan
e9a3580ef5 Upgrade dependencies; fix new Sonar smells 2020-03-11 10:22:51 -04:00
Artem Bilan
8a38a5e829 Merge spring-integration-kotlin-dsl project
* Migrate all the Kotlin tests to use new Kotlin DSL
* Upgrade to the latest Kotlin
* Generate KDocs
2020-03-05 13:10:32 -05:00
Gary Russell
2d3d37ecba Upgrade to MQTT Paho 1.2.2
- fix mock tests for internal client changes
- reduce stop wait for completion time

**cherry-pick to 5.2.x**

* Remove stack trace from test and convert to assertJ
2020-02-27 16:34:15 -05:00
Artem Bilan
236ded9ea1 Upgrade to Lettuce 5.2.2 2020-02-13 16:10:09 -05:00
Artem Bilan
5273203e33 Upgrade dependencies; prepare for release 2020-02-12 13:06:45 -05:00
Gary Russell
538cfe4868 GH-3172: Support consumer-side batching
Resolves https://github.com/spring-projects/spring-integration/issues/3172

When the listener container supports creating batches of consumed
messages, present the batch as the message payload - either a
`List<Message<?>>` or `List<SomePayload>`.

* Add 'since' to new method.
2020-02-10 11:52:34 -05:00
Artem Bilan
509e8237e8 Upgrade to Spring Security 5.3RC1; RSocket 1.0RC6 2020-02-05 16:15:07 -05:00
Artem Bilan
e5740f253c Upgrade dependencies
* Gradle 6.1.1
* MongoDb 4.0
* Other Spring dependencies to `BUILD-SNAPSHOT`
* Fix MongoDb tests according latest Spring Data
* State in the docs that both MongoDb driver are `optional` now in the dependencies
2020-02-03 13:12:50 -05:00
Artem Bilan
cf01b7c0e5 Fix background color for code snippets in docs
* Change Copyright in docs for current year
2020-01-23 16:05:25 -05:00
Artem Bilan
6aa510be41 Upgrade dependencies before release 2020-01-21 14:38:06 -05:00
Artem Bilan
715e9a2042 Upgrade dependencies including Gradle 6.1
* Add `org.gradle.caching=true` and `org.gradle.parallel=true` into a `gradle.properties`
* Fix `Matcher` tests in the `spring-integration-test-support` for the latest JUnit 4
2020-01-16 16:13:06 -05:00
Artem Bilan
d13752b40b Infrastructure for ReactiveMessageHandler (#3137)
* Infrastructure for ReactiveMessageHandler

We have now a `ReactiveMongoDbStoringMessageHandler` which implements
a `ReactiveMessageHandler`, but not a `MessageHandler` for possible
deferred subscriptions to the returned Reactor type

We don't have a proper application context processing for this
new type of message handlers

* Change a  `ConsumerEndpointFactoryBean` to apply an `MH` and `RMH`
as possible types for handler
* Introduce a `ReactiveMessageHandlerAdapter` to wrap an `RMH`
into a `MH` for synchronous calls in the regular consumer endpoints
* Wrap an `RMH` into a `ReactiveMessageHandlerAdapter` for regular
endpoints and unwrap for `ReactiveStreamsConsumer`
* Add `RMH`-based ctor into `ReactiveStreamsConsumer` for target
reactive streams composition (`flatMap()` on the `RMH`)
* Remove a `DelegatingSubscriber` from the `ReactiveStreamsConsumer`
in favor of direct calls from the `doOnSubscribe()`, `doOnComplete()`
& `doOnNext()`
* Add an `onErrorContinue()` to handle per-message errors, but don't
cancel the whole source `Publisher`
* Use `Disposable` from the `subscribe()` to cancel in the `stop()`
- recommended way in Reactor
* Use `onErrorContinue()` in the `FluxMessageChannel` instead of
`try..catch` in the `doOnNext()` - for possible `onErrorStop()`
in the provided upstream `Publisher`
* Handle `RMH` in the `ServiceActivatorFactoryBean` as a direct handler
as well with wrapping into `ReactiveMessageHandlerAdapter` for return.
The `ConsumerEndpointFactoryBean` extracts an `RMH` from the adapter
for the `ReactiveStreamsConsumer` anyway
* Add XML parsing test for `ReactiveMongoDbStoringMessageHandler`
* Add `log4j-slf4j-impl` for all the test runtime since `slf4j-api`
comes as a transitive dependency from many places

* * Fix conflicts after rebasing to master

* * Fix typo in warn message
* Change `Assert.state()` to `Assert.isTrue()`
for `ConsumerEndpointFactoryBean.setHandler()`

* * Fix `ConsumerEndpointFactoryBean` when reactive and no advice-chain
* Fix race condition in the
`ReactiveMongoDbStoringMessageHandlerTests.testReactiveMongoMessageHandlerFromApplicationContext()`

* * Handle `ReactiveMessageHandler` in Java DSL.
Essentially request a wrapping into `ReactiveMessageHandlerAdapter`.
Describe such a requirements in the `ReactiveMessageHandlerAdapter` JavaDocs
* Some Java DSL test polishing
* Add Java DSL for `ReactiveMongoDbStoringMessageHandler`
* Propagate missed `ApplicationContext` population into an internally
created `ReactiveMongoTemplate` in the `ReactiveMongoDbStoringMessageHandler`
2020-01-13 08:41:41 -05:00
Artem Bilan
370e943428 Remove deprecations from previous versions
* Remove Boon dependency and its usage
* Remove overloaded methods from the `IntegrationFlowDefinition`
- we can simply rely now on the super class
* Remove (or rework) deprecated entities in the docs
* Fix tests for removed deprecated APIs
* Rework affected tests to JUnit 5
2020-01-09 15:54:04 -05:00
Artem Bilan
cfaabe2a8d Revert MongoDb driver 4 changes
* Bring Spring Data MongoDb back to `2.3`;
essentially rely on Spring Data BOM for dependencies
* Change `mongodb-driver-reactivestreams` driver version back to `1.12.0`
* Upgrade to Spring Security 5.3 M1
* Fix MongoDb module to use `MongoDbFactory` class instead of new (not committed yet)
`MongoDatabaseFactory`
* Remove `uuidRepresentation()` configuration from the `MongoClients` factory usage -
that is going to be MongoDb driver 4 feature
2020-01-09 11:31:01 -05:00
Artem Bilan
be9d735c1c Fix Gemfire tests for the latest Spring Data
* Upgrade to SF-5.2.3.BUILD-SNAPSHOT to confirm
that there is no regression in  HTTP module
2020-01-07 11:56:36 -05:00
Artem Bilan
fc4c85a860 Upgrade Artifactory plugin 2019-12-30 14:23:14 -05:00
Artem Bilan
357eae8a7e Migrate to Gradle 6 dependency model & publication
* Use Gradle variants for publishing `optional` and `provided`
* Use some transitive dependencies explicitly from other modules
since all the optional dependencies are not pulled by Gradle any more
2019-12-30 14:12:31 -05:00
Artem Bilan
9c68ae4a7d Upgrade dependencies, including Gradle
* Alongside with existing `springAmqpVersion` & `springVersion`
also expose `springDataVersion` & `springSecurityVersion`
project properties.
These can be used in external CI plans for compatibility builds
* Fix `IntegrationGraphServerTests` for the current state of graph -
The node name is now based on the endpoint id, not a `MH` bean name
* Fix MongoDB tests for compatibility with the latest driver
2019-12-27 10:00:36 -05:00
Gary Russell
13c72f653e Upgrade to data Neumann and S-D-Mongo 3.0
* Fix reactive driver version; reinstate tests.
2019-12-26 15:41:19 -05:00
Artem Bilan
2263827b3f INT-4568: Add reactive MongoDbMH
JIRA: https://jira.spring.io/browse/INT-4568

* Refactor `AbstractMessageHandler` and implement `MongodbReactiveMessageHandler`

* Rename `AbstractBaseMessageHandler` to `MessageHandlerSupport`

* Clean up code style and resolve possible Sonar smells
2019-12-26 15:41:19 -05:00
Artem Bilan
9dc3519f20 Start version 5.3
* Move `What's New` into `changes-5.1-5.2.adoc`
* Remove version from the `XSD` files:
 1. Align with SF
 2. The version for XSD doesn't matter for the current jar version,
 since only the version is available in classpath is from the current
 jar version
 3. Modify `spring.schemas` to map all the possible versions for XSD
 into the current one in a jar.
 This way target applications can upgrade without changing the version
 for XSD location and we don't need to require `versionless` variant
 any more
 4. The jar in classpath can handle only its own XSD, so independently
 of version or no-version variants we still may fail because the current
 jar may not support end-user code any more - need some fix over there
 anyway.
* Remove `checkTestConfigs` Gradle task since we don't worry about XSD
version any more
* Modify `schemaZip` Gradle task to populate XSDs into a distribution
still with a version to avoid overriding on-line XSDs for version `1.0.x`.
We may consider not do that since SF doesn't and just bite a bullet
for always overriding those on-line XSDs to the actual one from the latest
release.
2019-12-26 15:41:19 -05:00
Artem Bilan
54aeaff0f0 Add mavenLocal project property for Gradle
Related to https://github.com/checkstyle/checkstyle/issues/7322

To be able to build the project against `mavenLocal()`, add a
`mavenLocal` project property which can be specified as command line arg
`-PmavenLocal`, so a `mavenLocal()` is added into `repositories`
conditionally
2019-12-06 14:29:44 -05:00
Artem Bilan
71adc5d111 Remove sonar.projectKey & sonar.projectName yet
It turns out that these properties have some reasonable defaults, but
Sonar plugin on Bamboo can't read them anyway.
So, we have to modify CI plan for respective values for the project
2019-12-05 11:39:00 -05:00
Artem Bilan
492aaf91d6 Revert "Remove sonar.projectKey & sonar.projectName"
This reverts commit 66731169c3.
2019-12-05 11:10:00 -05:00
Artem Bilan
66731169c3 Remove sonar.projectKey & sonar.projectName
Remove `sonar.projectKey` & `sonar.projectName` properties from the
`sonarqube` task since they have a reasonable defaults according
plugin docs: https://docs.sonarqube.org/latest/analysis/scan/sonarscanner-for-gradle/

It looks like the feature to override these properties in the Bamboo
plugin doesn't work properly
2019-12-05 10:53:56 -05:00
Artem Bilan
2e10cc8e9c Add checkstyleVersion Gradle CLI property
Related to https://github.com/checkstyle/checkstyle/issues/7306

According to discussion with Checkstyle team, we agreed to give us
project for testing their latest changes for regressions to avoid
situation like in the mentioned issue with `RequireThis`

* We expose a `checkstyleVersion` for Gradle command line to let to
provide a Checkstyle version externally.
This feature is going to be used on Checkstyle CI to run check in our
project against their SNAPSHOT

The command to run checks against external version is like this:
`./gradlew clean check --parallel -x test -PcheckstyleVersion=[CHECKSTYLE_VERSION]`
Where `[CHECKSTYLE_VERSION]` is a placeholder which should be replaced
with environment-specific variable or an explicit version.
2019-12-05 10:26:30 -05:00
Artem Bilan
2d13032847 Add sonar.projectName property for SonarQube 2019-12-04 18:18:40 -05:00
Artem Bilan
9a3f5b1a51 Revert "Attempt to remove Sonar and Jacoco plugins"
This reverts commit 6400f59194.
2019-12-04 17:54:35 -05:00