Commit Graph

916 Commits

Author SHA1 Message Date
Artem Bilan
4faa2ea680 Revert Hibernate version to 6.2.6.Final
It looks like in the latest Hibernate there is some fix
in the persistent context where provided entity is updated by the values from
DB.

We are going to address those failing JPA tests post-release
2023-09-19 14:05:21 -04:00
Christian Tzolov
797e294266 Upgrade dependecies; prepare for release 2023-09-19 19:30:46 +02:00
Artem Bilan
80990af0d1 Fix JMS Inbound Endpoints for observation
The `JmsMessageDrivenEndpoint` delegates all the hard work to the
`ChannelPublishingJmsMessageListener`, but missed to propagate an `ObservationRegistry`
and other related options.
The `JmsInboundGateway` is worse: it delegated to the `JmsMessageDrivenEndpoint`

* Add `IntegrationObservation.HANDLER` observation to the `MessagingGatewaySupport.send()`
operation: used by the delegate in the `ChannelPublishingJmsMessageListener`
* Expose and propagate observation-related options from `JmsInboundGateway`
and `JmsMessageDrivenEndpoint`
* Expose `observationConvention()` option on the `MessagingGatewaySpec`
and `MessageProducerSpec`
* Remove unused imports
* Do not start a new `RECEIVER` observation if there is already `SERVER` one
* Fix `MessagingGatewaySupport` for `Observation.NOOP` check.
The parent process may still use `ObservationRegistry.NOOP` which sets
`Observation.NOOP` instance into the current context and thread local.

**Cherry-pick to `6.1.x` & `6.0.x`**
2023-09-19 18:05:26 +02:00
abilan
14fcc69d0c Downgrade to Kotlin 1.8.10
Looks like the JSR223 in `1.8.20` is broken and requires major refactoring
like we have now in `6.2.0`: 8abd72d7c0
2023-07-18 12:39:03 -04:00
abilan
1b18e49132 Upgrade dependencies; prepare fpr release 2023-07-18 11:22:17 -04:00
abilan
9bfbb68247 Revert to Kotlin 1.8.10
The `ScriptsTests.testKotlinScript()` fail with:
```
Caused by: javax.script.ScriptException: error: cannot access 'java.io.Serializable' which is a supertype of 'kotlin.Int'. Check your module classpath for missing or conflicting dependencies
2 + bindings["payload"] as Int
  ^

	at org.jetbrains.kotlin.cli.common.repl.KotlinJsr223JvmScriptEngineBase.asJsr223EvalResult(KotlinJsr223JvmScriptEngineBase.kt:104)
	at org.jetbrains.kotlin.cli.common.repl.KotlinJsr223JvmScriptEngineBase.compileAndEval(KotlinJsr223JvmScriptEngineBase.kt:63)
	at org.jetbrains.kotlin.cli.common.repl.KotlinJsr223JvmScriptEngineBase.eval(KotlinJsr223JvmScriptEngineBase.kt:31)
	at java.scripting/javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:231)
	at org.springframework.integration.scripting.jsr223.AbstractScriptExecutor.executeScript(AbstractScriptExecutor.java:84)
```
2023-06-20 13:12:19 -04:00
abilan
e6eb235db2 Upgrade dependencies; prepare for release 2023-06-20 12:46:09 -04:00
abilan
af4c7d2ad4 Bring back sshd-sftp-2.9.2
Looks like there is some bug in the latest version,
so the directory cannot be created on Linux

We will revise the problem in the next version
2023-05-16 15:38:04 -04:00
abilan
e70d0ef5e2 Upgrade dependencies; prepare for release
* `--add-opens` for `java.lang` and `java.util`
in Groovy and Scripting modules to let `java.util.Date` scoped prototype bean
to work back with new CGLIB classpath limitations
2023-05-16 13:17:22 -04:00
abilan
5e348091f0 Upgrade to Mockito-5.3.0
Fix `ImapMailReceiverTests` and `Pop3MailReceiverTests` to not use mocks for messages
2023-04-20 15:25:51 -04:00
abilan
0391bedaeb Upgrade to json-path-2.8.0
* Fix `IntegrationGraphServerTests` to not use `net.minidev.json.JSONArray` API
since it is not available as transitive from `json-path` in the `testCompileClasspath`
2023-04-19 13:15:55 -04:00
abilan
934e90a110 Revert json-path & Mockito versions
* Remove `mockito-inline` dependency
* Fix deprecations from Spring Security
* Fix `SmbSessionFactoryWithCIFSContextTests` for compatibility with latest `JCIFS`
* Migrate all the SMB tests to Junit Jupiter
2023-04-19 12:11:02 -04:00
abilan
dd53de8bfc Bring back Kotlin version 1.8.10
There is no Dokka plugin `1.8.20` yet
2023-04-19 09:46:03 -04:00
abilan
fe1a3ee096 Upgrade some dependencies 2023-04-19 09:43:16 -04:00
abilan
b326225df7 Fix tests for replyTimeout
Some tests deliberately don't expect a reply, but they still block
on a gateway's `sendAndReceive()`

* Improve `Jsr223ScriptExecutingMessageProcessorTests`
to verify that script variables work
2023-03-29 12:17:00 -04:00
abilan
79870dc78c Upgrade dependencies; prepare for release
* Add `spring-web` test dep for `spring-integration-graphql` module
* Fix `MultipartAsRawByteArrayTests` according to the changes in the
`ByteArrayHttpMessageConverter` where it uses `ReadNBytes()` even for
`0` in `Content-Length` header
* Fix Kafka tests to use `RetryListener` interface with `default`
methods instead of already deprecated `RetryListenerSupport`
2023-03-22 16:41:03 -04:00
abilan
db90e68ca7 Fix Sonar and JaCoCo relationship
* Explicitly enable Jacoco XML report
Must be `xml.required = true`
* Starting with version 3 the Sonarqube Gradle plugin
does not do any automatic dependencies on other tasks:
https://docs.sonarqube.org/latest/analyzing-source-code/scanners/sonarscanner-for-gradle/
* It is also does not apply the task to sub-projects.
So, to make the root `sonarqube` task we need to have config like this:
```
 rootProject.tasks['sonarqube'].dependsOn jacocoTestReport
```
Note: the `sonarqube` task is deprecated in favor of `sonar`,
but that is exactly what our current Bamboo Sonar plugin does.
So, when that is upgraded, we need to revise our config again
* We don't need `xml.outputLocation` since its default is what Sonar expects
2023-03-17 14:45:52 -04:00
abilan
f128a3f2eb Use sonar instead of deprecated sonarqube 2023-03-07 10:01:01 -05:00
abilan
1022d94dec Upgrade to Sonar 4.0.0.2929 2023-03-07 09:47:30 -05:00
abilan
4cbd22b583 Gradle 8.0.2, Dokka 1.8.10, Checkstyle 10.8.0 2023-03-06 09:23:03 -05:00
abilan
38f19348cf Upgrade to rome-2.0.0; fix deprecation
* Fix `FeedInboundChannelAdapterParser` to properly populate a `Resource` ctor arg
2023-02-28 16:48:30 -05:00
abilan
ea4d185da9 Remove redundant build config for Kotlin 2023-02-22 16:39:12 -05:00
Christian Tzolov
451374dd11 GH-3772 Add Protobuf transformation support
Fixes https://github.com/spring-projects/spring-integration/issues/3772

* Add basic To/From Protocol Buffer's com.google.protobuf.Message transformers.
* Allow the proto_type header to specify the type.
* Add tests.
* add Protobuf docs
* Leverage the Spring ProtobufMessageConverter
* move protobuf-java-util to test dependecies as optional
* protobuf docs improvements
* improve the expected type handling
* expected type expression
* fix indentation
* fix indentation for generated test classes
* suppress style check for proto generated classes
* address the transformer doc format
* fix whats new merge conflict
* fix doc sample code
* Some code clean up; fixing typos
2023-02-22 16:23:49 -05:00
abilan
2884bf0135 Various upgrades for version 6.1
* Upgrade to Gradle `8.0.1`
* Upgrade to Kotlin `1.8`
* Some other libs updates
* Resolve some compatible TODOs
2023-02-21 16:50:01 -05:00
abilan
53d1ecd208 Upgrade to the latest Micrometer dependencies 2023-02-21 15:18:05 -05:00
abilan
210a2f9d2c Migrate Zip Extension as a core module 2023-02-21 15:18:05 -05:00
abilan
39c73d404a Start version 6.1
* Upgrade dependencies whenever it is reasonable
* Fix deprecations and some new API paths
* Move docs to a new version with respective branching for the `changes-5.5-6.0.adoc`
2023-02-21 15:18:03 -05:00
abilan
a8dd9188c1 Upgrade dependencies; prepare for release 2023-02-21 13:14:40 -05:00
Artem Bilan
ac577e9ef7 Optional io.micrometer:context-propagation (#8556)
For better performance by default it is better to not pull
a `io.micrometer:context-propagation` a hard dependency.

* Remove `io.micrometer:context-propagation` dependency management
* It is pulled transitively by the `io.micrometer:micrometer-tracing-integration-test` in test scope
* Rework all the `ContextSnapshot` usage in the reactive code to respective recommended `handle()` API in `Flux` and `Mono`
2023-02-21 12:02:15 -05:00
abilan
4cd1085f94 Upgrade some dependencies
* Remove already redundant `parentObservation` population in the `AbstractMessageChannel`:
now it is handled properly by the `SimpleObservation` ctor
2023-02-14 15:01:42 -05:00
Artem Bilan
d9d7c49aac Propagate and Observation from Reactive context (#3999)
To propagate an `Observation` from reactive stream (e.g. WebFlux)
we have to capture its context and set it into the current thread scope.

* Add a `io.micrometer:context-propagation` dependency to support reactive context propagation
* Populate a `parentObservation` in the `IntegrationObservation.PRODUCER.observation()`
since it is not available for tracing on `Observation.onStart()`.
Might be tentative until upcoming fix in Micrometer Observation
* Populate from reactive context in the `WebFluxInboundEndpoint` where we use just `send()` operation downstream
* Populate from reactive context in the `MessagingGatewaySupport` where we use `send()` operation downstream or `FluxMessageChannel.subscribeTo()`
* Use `contextCapture()` in the `FluxMessageChannel` to gather a `ThreadLocal` info into a Reactor context
and then set back to `ThreadLocal` in the `transformDeferredContextual()` which really happens on a different thread
* Verify a trace propagation from WebFlux to an integration flow via Brave instrumentation in the `WebFluxObservationPropagationTests`
2023-02-01 14:13:40 -05:00
abilan
298b2403d9 Exclude org.glassfish.jaxb from spring-ws-core
The `spring-integration-ws` modules relies on the `com.sun.xml.bind:jaxb-impl`
as `provided` dependency
2023-01-18 11:51:40 -05:00
abilan
4be99de1f4 Upgrade dependencies; prepare for release
* Fix mail tests for the latest Greenmail changes
2023-01-18 11:03:10 -05:00
Artem Bilan
d298df8d0f Revise JS support for regular JVM (#3989)
* Revise JS support for regular JVM

Turns out that we just need to have `org.graalvm.sdk:graal-sdk` and `org.graalvm.js:js`
dependencies for regular JVM to enable JavaScript support for Spring Integration Scripting module

* Add respective `providedImplementation` dependencies
* Remove `@EnabledIfSystemProperty` from unit tests
* Mention those dependencies in the doc

* Rework sentence in the doc for better English

Co-authored-by: Gary Russell <grussell@vmware.com>

Co-authored-by: Gary Russell <grussell@vmware.com>
2023-01-11 13:34:28 -05:00
abilan
52d43ea8ed Upgrade dependencies; prepare for release
Fix XML configs for new `Mockito.mock()` factory method
2022-12-20 16:25:06 -05:00
abilan
532f323313 Move Spring dependencies to SNAPSHOTs
* Use a `DefaultParameterNameDiscoverer` instead of deprecated `LocalVariableTableParameterNameDiscoverer`
* Fix assertion error message for `@Header` without `name` and with no `-parameters` compiler flag.
* Remove redundant repos for Gradle plugins

Related to: https://stackoverflow.com/questions/74600681/warning-printed-after-migrating-to-spring-boot-3-0-spring-integration-6-0
2022-11-28 15:49:52 -05:00
Gary Russell
1c94eaaa41 Upgrade Versions; Prepare for Release 2022-11-22 08:31:30 -05:00
abilan
91007e6745 Remove nohttp/allowlist.lines since all fixed 2022-11-18 16:10:09 -05:00
abilan
bfb2ca217f Upgrade dependencies including Gradle 2022-11-18 15:47:56 -05:00
abilan
2895a1eda9 Revert Spring WS BOM 2022-11-15 08:36:17 -05:00
abilan
ece3198ee9 Upgrade to MongoDB driver 4.8.0-rc0 2022-11-14 11:15:07 -05:00
artembilan
7bb330aaa9 Re-order mavenBom imports
It looks like some of Spring project's bom added after `spring-framework-bom`
causes a mess with dependencies: it brings those SF deps which are in the
latest `mavenBom`

* Move `spring-framework-bom` to the end of the list to be sure that
its version comes properly
* Do the same for Spring Data - after Spring AMQP and Spring Kafka
2022-11-09 17:39:16 -05:00
artembilan
0f4c941577 Use spring-ws-bom dependency 2022-11-09 16:38:24 -05:00
artembilan
4c8172d594 Move to SNAPSHOTs; upgrade Tomcat to 10.1.1
* Use `spring-amqp-bom`, `spring-kafka-bom`
2022-11-09 11:48:48 -05:00
artembilan
4d5548c9ed Add BOM file into distZip with other libs 2022-11-09 09:32:14 -05:00
Artem Bilan
f9b5f6cf7c Rearrange build for docs
* Copy docs to the `$buildDir/reference` instead of `docs`
to make `asciidoctor` tasks to calculate their UP-TO-DATE key properly
* Generate `kdoc` outside the `docs` dir to not interfere with `asciidoctor`
2022-11-08 12:13:22 -05:00
Artem Bilan
da56586619 Upgrade to Reactor 2022.0.0; prepare for release 2022-11-08 10:30:23 -05:00
Artem Bilan
90caafb697 Attempt to resolve okhttp-digest from JCenter 2022-11-08 10:14:59 -05:00
Artem Bilan
37f9b32033 Use plugins-release repo, not local one 2022-11-08 09:38:38 -05:00
Artem Bilan
32ec26e253 Upgrade to the latest deps; RCs
* Downgrade Tomcat to `10.0.23` since SF-6.0.0-RC3 is not compatible yet
* Exclude `jakarta.activation` and `com.sun.mail` transitive deps to avoid
classpath conflict with Jakarta EE 10
2022-11-08 09:30:02 -05:00