Commit Graph

303 Commits

Author SHA1 Message Date
Corneil du Plessis
7469320c91 [GitHub Actions] Improve dependencies for main. Provide for building impacted dependencies for a PR. 2022-11-07 15:56:07 +02:00
Chris Bono
4f393ef9dc Polish "Move xmpp testcontainer to function-test-support"
- Removed custom container
- Removed extra whitespace
- Moved static props to SBT.properties
2022-10-28 13:38:32 -05:00
Daniel Frey
d35657a5b7 Move xmpp testcontainer to function-test-support 2022-10-28 13:22:03 -05:00
Chris Bono
bfebe2782c Fix checkstyle from previous commit 2022-10-25 23:44:46 -05:00
Chris Bono
b5111fb99b Fix pgcopy-sink tests
- Update build steps in README.adoc
- Remove junit4 usages across project
- Replace postgres ClassRule w/ Extension
2022-10-25 23:15:47 -05:00
Chris Bono
378ac48e6a Update CDC Debezium to 1.9.6
- The update fixes integration tests
2022-10-25 23:15:47 -05:00
Chris Bono
afd5f82ec4 Update checkstyle plugin to 3.2.0
- Spring Javaformat update to 0.0.35
- Puppycrawl update to 10.3.4
2022-10-24 23:55:49 -05:00
Artem Bilan
a3b7a86617 GH-350: Upgrade SI Cassandra; re-enable tests (#381)
* GH-350: Upgrade SI Cassandra; re-enable tests

Fixes https://github.com/spring-cloud/stream-applications/issues/350

* Use Testcontainers for Cassandra
* Adjust components code style a bit
* Convert `Book` testing entity to the `record`
* Use `@DynamicPropertySource` to expose Docker ENV to Spring Boot configuration properties
* Use switch expression for better code readability
2022-10-24 17:19:33 -05:00
Artem Bilan
09c3c742b9 Fix AmazonS3ConfigurationTests for proper configs
The `CompatibleStorageAmazonS3Configuration` and `AmazonS3Configuration`
 are really auto-configurations, so they have to take an effect already
 after end-user configurations processing

* Fix `AmazonS3ConfigurationTests` to configure an `ApplicationContextRunner`
in a proper way putting auto-configurations to their `AutoConfigurations.of()`
part and leaving only a `TestConfiguration.class` as a `UserConfiguration`
2022-10-21 09:31:38 -04:00
Chris Bono
d1e13e683a [SB3 Update] Fix checkstyle issues from previous AWS S3 commit 2022-10-20 23:23:15 -05:00
Daniel Frey
31bc02d65c Add XMPP consumer function 2022-10-20 19:51:36 -05:00
Artem Bilan
9f4ccd5e7a GH-368: Update AWS code to the latest deps (#378)
Fixes https://github.com/spring-cloud/stream-applications/issues/368

* Upgrade to `spring-cloud-aws-2.4.2`; fix respective package changes
* Remove `AutoConfigurationExclusionEnvironmentPostProcessor` since classes in the SC-AWS
are not considered as auto-configuration anymore.
Instead, add an explicit `@Import` into `AmazonS3Configuration`.
Not sure, though, why it was excluded before at all
* Fix `MetadataStoreAutoConfigurationTests` with the current state of code.
Looks like before it was designed for auto-configuration based on classpath content
* Re-enable other AWS S3 tests

This fix has helped to spot a bug in Spring Integration Testing framework:
e2d8eeb04d

Co-authored-by: Chris Bono <cbono@vmware.com>
2022-10-19 20:09:10 -05:00
Artem Bilan
c4df061599 GH-132: Upgrade to SI-HZ 6.0
Fixes https://github.com/spring-cloud/stream-applications/issues/132

* Also upgrade to `curator-5.3.0`
2022-10-19 17:54:50 -04:00
Artem Bilan
6cdc80c204 GH-373: Re-enable aggregator tests (#377)
Fixes https://github.com/spring-cloud/stream-applications/issues/373

The fix in Spring Integration has made it into the latest SNAPSHOT.
See more info in the linked issue

* Update to the latest Testcontainers: it does not require credential for pull command any more
* Remove obsolete `MessageStoreType.GEMFIRE`
* Add `<doclint>syntax</doclint>` to ignore missed javadocs on public methods
2022-10-19 14:09:32 -05:00
Artem Bilan
0f7488f84c GH-369: Fix HeaderEnricher for no proxyBeanMethod (#376)
Spring Boot `@AutoConfiguration` comes now with a `proxyBeanMethods = false`,
so we cannot call bean methods within the same configuration class.

* Rework `HeaderEnricherFunctionConfiguration` for bean methods autowiring
* Create an `ExpressionEvaluatingHeaderValueMessageProcessor` instances directly
in the `headerEnricher` bean definition and propagate an injected `BeanFactory`
* Re-enable disabled tests

Fixes #369
2022-10-19 12:18:50 -05:00
Corneil du Plessis
d282ba1f70 [SB3 Build] Adding dependencies to functions-dependencies. (#375) 2022-10-18 23:47:22 +02:00
Corneil du Plessis
028df89c29 Ensure module projects skip deploy 2022-10-18 15:18:54 +02:00
Corneil du Plessis
41657e375d Reorganise modules 2022-10-18 13:40:19 +02:00
Chris Bono
a07c04e856 [SB3 Update] remove unused embedded mongodb and activemq dependencies 2022-10-17 22:04:59 -05:00
Chris Bono
62928a8f76 [SB3 Update] jms-supplier use Artemis embedded broker 2022-10-17 00:39:55 -05:00
Chris Bono
b8caa0cf74 [SB3 Update] JDBC source and supplier updates
- Fix jdbc-source tests to use new Spring Integration Test Binder
- Fix jdbc-supplier test to check root cause
2022-10-16 23:52:42 -05:00
Chris Bono
ab83dcf743 [SB3 Update] Adjust jsonpath on TwitterUsersFunctionTests 2022-10-16 23:52:42 -05:00
Chris Bono
e5843418e8 [SB3 Update] Add HttpMethod converter to http-request function
- HttpMethod moved from enum to class in Spring Framework. Needs converter now.
2022-10-16 23:52:42 -05:00
Chris Bono
7098e64d12 [SB3 Update] AWS S3 updates
- aws-s3-common fix package name change
- s3-consumer fix package name change
- s3-supplier disable tests
2022-10-16 23:52:42 -05:00
Chris Bono
2154a8d970 [SB3 Update] Disable mail-supplier tests 2022-10-16 23:52:42 -05:00
Chris Bono
d002bbf7c4 [SB3 Update] Disable HeaderEnricherFunctionApplicationTests 2022-10-16 23:52:42 -05:00
Chris Bono
ea800682b2 [SB3 Update] Agg function use MongoDB testcontainers
- Disable tests
2022-10-16 23:52:42 -05:00
Chris Bono
8800a9c002 [SB3 Update] Move MongoDbTestContainerSupport to functions/common
- use in mongodb-consumer
- use in mongodb-supplier
2022-10-16 23:52:42 -05:00
Artem Bilan
09d23c06a1 GH-348: Resolve knownHostsExpression to Resource (#349)
* GH-348: Resolve knownHostsExpression to Resource

Fixes https://github.com/spring-cloud/stream-applications/issues/348

Currently, SFTP modules use a `FileSystemResource` based on a resolved
location from knownHostsExpression.
This is not always true since the resource could be anywhere, not only in
the target file system.
The typical use-case is classpath or Secrets on the target platform

* Use `ResourceLoader` to resolve a location from the expression
to any possible `Resource`
2022-10-13 16:19:25 -05:00
Chris Bono
e15c98183a [SB3 Update] SftpConsumer + AWS S3 (#347)
* Adjust sftp consumer knownHosts API

* AWS S3 disable tests
2022-10-09 21:09:13 -05:00
Corneil du Plessis
c64b259d91 [SB3 Update] Remove Apache Geode (#345)
- Also update SFTP usage
2022-10-07 08:22:57 -05:00
Corneil du Plessis
b5ed0bdf1e Adding redis-common and disable elasticsearch. 2022-10-06 22:43:17 +02:00
Corneil du Plessis
68f2900aad Add intermediate module poms (#337) 2022-10-03 13:51:55 -05:00
Chris Bono
790daf0d91 Convert to Autoconfiguration.imports 2022-10-02 10:58:48 -05:00
Chris Bono
4b3dc0ead7 Fix mongodb-consumer
Replace embedded MongoDB w/ MongoDB testcontainer
2022-10-02 10:58:48 -05:00
Chris Bono
208a26930c Fix spel converter auto-config 2022-10-02 10:58:48 -05:00
Chris Bono
449f78caea Disable cassandra-consumer tests 2022-10-02 10:58:48 -05:00
Chris Bono
87df01dc00 Remove ${revision} from pom.xml files 2022-10-02 10:58:48 -05:00
Chris Bono
85106dd122 Initial support for SB3/SF6
- Main branch builds successfully (with tests skipped)

See #326
2022-09-22 17:46:11 -05:00
Artem Bilan
2c5d83f926 Disable DB init for JDBC Source and Sink (#325)
* Disable DB init for JDBC Source and Sink

The `IntegrationAutoConfiguration` provides mechanism
to initialize DB with some out-of-the-box scripts.
The default behavior is `EMBEDDED` even if we don't use
any components for those DB objects, e.g. no `JdbcMessageStore` bean.

* Add `spring.integration.jdbc.initialize-schema=NEVER` to the
`jdbc-consumer` and `jdbc-supplier` to not attempt to initialize DB
* Fix Checkstyle violations in other modules
2022-09-21 10:31:18 -05:00
TaeSu Kim
90cb6d7e6a Fix cdc-debezium-supplier README.adoc
* Update README.adoc
* add blank line
2022-07-20 10:57:34 -04:00
Artem Bilan
910f116332 GH-276 Apply ComponentCustomizer in other modules (#284)
* GH-276 Apply ComponentCustomizer in other modules

Fixes https://github.com/spring-cloud/stream-applications/issues/276

Some changes are straightforward as just a `ComponentCustomizer<?>`
injection and its optional usage for the target component customization.
Other changes are more drastic since it is better to use `proxyBeanMethods = false`,
so some direct bean method calls had to be reworked to the bean method argument
injections

* Fix some deprecations from Project Reactor
* Remove `UpdatingMongoDbMessageSource` since `MongoDbMessageSource`
supports now an `update` option in Spring Integration

NOTE: The `ZeroMqSupplierConfiguration` has its own customizer already
like `Consumer<ZMQ.Socket>`, so it can be revised to a more broader solution,
but in the future version.

Some modules just does not make sense to modify for more advance customization
since all their configuration is covered with plain configuration properties.
See `splitter-function` or `wavefront-consumer`

* * Use `ObjectProvider<WebClientCustomizer>` for `HttpRequestFunctionConfiguration`
instead of our own `ComponentCustomizer`.
Although this has to be revised in favor of fully auto-configured `WebClient.Builder`.
Even that `maximumBufferSize` is included into codecs configuration properties.
* The `MongoDbMessageSource` has now an `update` option in Spring Integration
therefore remove redundant already `UpdatingMongoDbMessageSource`
and populate `this.properties.getUpdateExpression()` directly ot the
`MongoDbMessageSource` bean
* Modify supplier configurations to avoid manual starts for endpoints on
reactive `Publisher` subscriptions.
Spring Integration provides now a `toReactivePublisher(true)` operator
to have all the endpoints stopped on start, but started automatically
when subscription happens to the provided `Publisher`
* Update Copyright to the current year for all the affected classes
* Use `@Nullable` instead of `ObjectProvider` in the `AggregatorFunctionConfiguration`
dependency injection for consistency
* Fix `LogConsumerConfiguration` to not have a `log()` in the end - it is not terminal
in Spring Integration anymore.
Use recommended `nullChannel()` terminating operator for use-cases like this.

* * Remove `beanName` from `ComponentCustomizer` contract

Co-authored-by: Chris Bono <cbono@vmware.com>
2022-07-15 19:36:21 -05:00
sunny151091
5b5fb8fd0f Revise HttpRequestFunctionConfiguration configuration (#295)
Fixes #286
2022-07-15 19:01:30 -05:00
Chris Bono
2289afa967 Update main to next version (4.0.0) (#314)
* Next version for 4.0 (core)

* Next version for 4.0 (apps)

* Next version for 4.0 (release train)
2022-07-15 18:59:31 -05:00
Chris Bono
29d10c9c41 Release 2021.1.2 (non-apps back to snapshots) (#304) 2022-06-01 23:32:08 -05:00
Chris Bono
d48e0fb955 2021.1.2 release (functions release version numbers) (#298) 2022-06-01 11:03:36 -05:00
Chris Bono
ce8f4383df Remove all repositories from pom.xml in favor of new project level settings.xml (#293) 2022-05-29 11:36:42 -05:00
Chris Bono
df157960f6 GH-279: Update to Spring Cloud 2021.0.3
Fixes #279

* Updates version numbers as per [2021.0.3 release notes](https://github.com/spring-cloud/spring-cloud-release/wiki/Spring-Cloud-2021.0-Release-Notes#202103)
* Also factors out common version props to stream-applications-build/pom.xml
2022-05-27 11:56:17 -04:00
Chris Bono
50d75ef1e7 GH-271: Remove duplication from pom.xml files
This proposal fixes many build warnings and is a general cleanup of the pom.xml files.

* Remove duplicate `dependency` entries  from pom.xml files
* Remove duplicate `repository` entries from pom.xml files
* Replace deprecated use of `receive(long)` in `HttpSourceTests`
* Reduce logging for Twitter integration tests

Fixes #271
2022-05-26 13:57:44 -04:00
Artem Bilan
78933b5474 Remove auto-config for ComponentCustomizer (#281)
Since we still need to modify every single function, consumer & supplier
for previously introduced `@CustomizationAware`, it does not do too much
difference for us if we add a `ComponentCustomizer` dependency to the
bean for customization and call it manually.

One benefit of this change is to avoid a `static` confusion and performance
overhead with extra `BeanPostProcessor`.

* Remove `ComponentCustomizerBeanPostProcessor` and
 respective `ComponentCustomizationAutoConfiguration`
* Use `@Nullable ComponentCustomizer<FileInboundChannelAdapterSpec>`
as dependency in the `FileSupplierConfiguration.fileMessageSource()` bean
2022-05-25 14:46:33 -05:00