Reference documentation
📗 https://docs.awspring.io/spring-cloud-aws/docs/4.0.0/reference/html/index.html
What's changed
🚀 Highlights
Spring Cloud AWS 4.0.0 is a major release aligned with the next generation of the Spring ecosystem. It delivers full compatibility with Spring Boot 4.x and Spring Framework 7.x.
A key milestone in this release is the integration of the Spring Integration AWS project directly into Spring Cloud AWS.
New Spring Integration modules include support for:
- SQS
- SNS
- S3
- DynamoDB
- Kinesis (including KCL, Producer Library, and Spring Cloud Stream Binder)
Modernized testing support with ServiceConnection migration to Testcontainers 2.
SQS
- Support of handling multiple different objects by same
@SqsListeneris now possible by using@SqsHandlerannotation by @joseiedo in #1377 - Support for SNS message payload and metadata is now possible with
SnsNotification@chomatdam in #1419 - Add Error Handler Exponential and Linear Strategies by @brun0-4ugusto in #1422
- Support for toggling
SqsListenerstarting up on context startup withspring.cloud.aws.sqs.listener.auto-startupby @techadri in #1435 - Add SemaphoreBackPressureHandler as an optional fallback by @tomazfernandes in #1524
- Dynamically configure SemaphoreBackPressureHandler with BackPressureLimiter (#1251) by @loicrouchon in #1308
- Refine BackPressureHandlerFactories API; clarify backpressure by @tomazfernandes in #1469
- Consolidate ExponentialErrorHandlers by @tomazfernandes in #1474
- Introduce automatic SQS request batching support component: sqs by @khc41 in #1438
- fix: Visibility Timeout Extension for Fifo message Batches by @marcotesche in #1432
- fix: future is cleaned now on exception failure by @dzmitry-dulko in #1455
- Fix
maxMessagesPerPollvalidation message inAbstractContainerOptionsby @richardfearn in #1480 - Fix: remove failed queue attributes from cache by @LeeHyungGeol in #1491
- Resolve listener payload type during container setup by @tomazfernandes in #1548
SQS Integration
- Add Spring Integration channel adapter for SQS by @artembilan in #1467
DynamoDb Integration
- Add Spring Integration support for AWS DynamoDB by @artembilan in #1458
SNS Integration
- Add Spring Integration channel adapters for SNS by @artembilan in #1473
DynamoDb
- Enhance
DefaultDynamoDbTableNameResolverwith caching and improved table name resolution by @marcusvoltolim in #1464 - Implement
DynamoTemplateupdate partial usingUpdateItemEnhancedRequestby @marcusvoltolim in #1448 - Introduce conditional save, update and delete operation support for DynamoDB entities. Fixes #gh-1147 by @vyomrastogi in #1371
- Enhance
DefaultDynamoDbTableSchemaResolverto resolveDynamoDbBeanandDynamoDbImmutableby @marcusvoltolim in #1450
S3
- Introduce
listAllObjectsmethod toS3Templateby @Tooa in #1443 - S3 vector client autoconfiguration by @MatejNedic in #1425
- Custom exceptions are now logged by Spring Cloud AWS instead of Spring Core by @MatejNedic in #1541
Secrets Manager
- Custom exceptions are now logged by Spring Cloud AWS instead of Spring Core by @MatejNedic in #1540
S3 Integration
- Add Spring Integration for S3 support by @artembilan in #1476
Kinesis Integration
- Introduce Spring Integration for Kinesis support by @artembilan in #1479
- Add Kinesis Producer Library with Spring Integration by @artembilan in #1493
- Add Spring Integration support with KCL by @artembilan in #1496
- Add Kinesis Binder for Spring Cloud Stream by @artembilan in #1520
STS
- Configure STS Credentials provider only if either
spring.cloud.aws.stsproperties, system property or environment variable is set. by @maciejwalkowiak in #1444
SES
- Align sending message with multiple
MimeMessagePreparatorswith default implementation inJavaMailSenderby @maciejwalkowiak #1503
Parameter Store
- Custom exceptions are now logged by Spring Cloud AWS instead of Spring Core by @MatejNedic #1309
- Introduce loading parameters as key value store by @MatejNedic in #1495
CloudWatch
- Add cost warning and filtering example to CloudWatch documentation by @hong-kyungsik in #1557
Core
- Delete deprecated
AwsClientCustomizerand it's usages. by @maciejwalkowiak in #1410 - Migrate nullability annotations to JSpecify by @kraluk in #1556
- Introduce Jackson 3 support by @MatejNedic in #1539
Dependency Upgrades
- Upgrade to Spring Boot 4.0.0 and Spring Cloud 5.0.0 by @MatejNedic in #1521
- Upgrade to Spring Boot 4.0.0-M1 and Spring Cloud 5.0.0-M1. by @maciejwalkowiak in #1413
- Upgrade AWS sdk to 2.39.0 and dax to 2.0.6 by @MatejNedic in #1525
- Fix compilation issues and imports after upgrading to Spring Boot 4.0 by @maciejwalkowiak in #1445
- Fix: add missing 'spring-cloud-aws-starter-imds' module in the project's BOM (#1484) by @olbat in #1488
- Delete .DS_Store by @Rattiel in #1437
- Upgrade Spring Modulith to 2.0.0 by @MatejNedic in #1551
- Upgrade AWS dependencies versions by @MatejNedic in #1547
Documentation
- Update SQS DOCs with latest change by @MatejNedic in #1431
- Add docs for Spring Integration DynamoDB support by @artembilan in #1472
- IMDS doc fix by @DennisRippinger #1518
- Clarify message conversion docs and javadocs (#1550) by @tomazfernandes in #1560
- Fix docs generation by @MatejNedic in #1532
Tests
- fix: Non-determinism in
S3PropertySourceTestby @yonghanlin in #1538 - fix: Fix three nondeterministic tests caused by shard processing and JSON key ordering by @yonghanlin in #1537
- Fix: Nondeterminism behavior in
SqsListenerAnnotationBeanPostProcessorTestsby @yonghanlin in #1536
Big thanks to all contributors! 💚
New Contributors
- @chomatdam made their first contribution in #1419
- @marcotesche made their first contribution in #1432
- @Rattiel made their first contribution in #1437
- @marcinfigiel made their first contribution in #1440
- @dependabot[bot] made their first contribution in #1434
- @artembilan made their first contribution in #1458
- @loicrouchon made their first contribution in #1308
- @dzmitry-dulko made their first contribution in #1455
- @marcusvoltolim made their first contribution in #1464
- @vyomrastogi made their first contribution in #1371
- @richardfearn made their first contribution in #1480
- @olbat made their first contribution in #1488
- @LeeHyungGeol made their first contribution in #1491
- @khc41 made their first contribution in #1438
- @hong-kyungsik made their first contribution in #1557
- @kraluk made their first contribution in #1556
- @yonghanlin made their first contribution in #1538
Full Changelog: https://github.com/awspring/spring-cloud-aws/compare/v3.4.2..v4.0.0