Releases: awspring/spring-cloud-aws
3.4.2
Reference documentation
📗 https://docs.awspring.io/spring-cloud-aws/docs/3.4.2/reference/html/index.html
What's Changed
Core
StsWebIdentityTokenFileCredentialsProvideris now not configured if correct properties are not passed by @maciejwalkowiak in #1528
Full Changelog: v3.4.1...3.4.2
4.0.0-M1
Reference documentation
📗 https://docs.awspring.io/spring-cloud-aws/docs/4.0.0-M1/reference/html/index.html
What's Changed
Spring Cloud AWS 4.0.0-M1 introduces compatibility with Spring Boot 4.0.0 and Spring Cloud 5.0.0. This milestone brings extensive improvements across SQS, SNS, S3, DynamoDB, and Kinesis, and marks the major merger of Spring Integration AWS into Spring Cloud AWS, a significant achievement that unifies the ecosystem and brings Spring Integration support directly into the project. It also includes substantial dependency upgrades.
Migration Guide
Since Spring Cloud AWS only supports Jackson 2 for now, you will either have to include the spring-boot-jackson2 dependency or create an ObjectMapper Bean. Auto-configuration will pick up the Jackson 2 ObjectMapper and configure the classes accordingly. In future releases, we will be supporting Jackson 3.
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
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 DefaultDynamoDbTableNameResolver with caching and improved table name resolution by @marcusvoltolim in #1464
- Implement DynamoTemplate update partial using UpdateItemEnhancedRequest by @marcusvoltolim in #1448
- Introduce conditional save, update and delete operation support for DynamoDB entities. Fixes #gh-1147 by @vyomrastogi in #1371
S3
- Introduce listAllObjects method to S3Template by @Tooa in #1443
- S3 vector client autoconfiguration by @MatejNedic in #1425
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
STS
- Configure STS Credentials provider only if either
spring.cloud.aws.stsproperties, system property or environment variable is set. by @maciejwalkowiak in #1444
SES
Aligh sending message with multiple MimeMessagePreparators with default implementation in JavaMailSender by @maciejwalkowiak #1503
Parameter Store
- Custom exceptions are now logged by Spring Cloud AWS instead of Spring Core by @MatejNedic #1309
Core
- Delete deprecated
AwsClientCustomizerand it's usages. by @maciejwalkowiak in #1410
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
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
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
Full Changelog: v3.4.0...v4.0.0-M1
3.4.1
Reference documentation
📗 https://docs.awspring.io/spring-cloud-aws/docs/3.4.1/reference/html/index.html
What's Changed
SQS
- Support class-level
@SqsListenerannotations with@SqsHandleron methods by @joseiedo in #1377 - Future is cleaned when during polling, exception happens(#1455) by @dzmitry-dulko in #1507
- Consolidate ExponentialErrorHandlers (#1474) by @tomazfernandes in #1508
- Remove invalid and stale queue attributes from cache (#1491) by @LeeHyungGeol in #1510
- Introduce SNS notification to SQS module by @chomatdam in #1419
- Add Error Handler Exponential and Linear Strategies by @brun0-4ugusto in #1422
- Fix: Visibility Timeout Extension Interceptor which was ignored when observability was used by @marcotesche in #1432
- Fix
maxMessagesPerPollvalidation message inAbstractContainerOptionsby @richardfearn in #1509
IMDS
Dependency Upgrades
- Update AWS version to 2.31.78 and Spring Cloud parent to 4.3.1 by @MatejNedic in #1504
- Adjust publication to Maven repository to use central-publishing-maven-plugin by @maciejwalkowiak in #1513
New Contributors
- @chomatdam made their first contribution in #1419
- @marcotesche made their first contribution in #1432
Full Changelog: v3.4.0...v3.4.1
3.4.0
Reference documentation
📗 https://docs.awspring.io/spring-cloud-aws/docs/3.4.0/reference/html/index.html
What's Changed
SQS
- Observability Support for SQS by @tomazfernandes in #1369
- Add auto-configuration for
maxDelayBetweenPollsby @krutip7 in #1365 ImmediateRetryAsyncErrorHandlerchanges msg visibility timeout to zero. (#1314) by @rafaelcgpava in #1370- Rename bean producer method to a unique name in
SqsManualAckSampleby @joseiedo in #1384 - Properly handle
Errors in listeners by @isaacvando in #1383 - Add
ExponentialBackoffErrorHandlerto manage message visibility timout by @brun0-4ugusto in #1381
DynamoDB
- Ability to override separator in
DefaultDynamoDbTableNameResolverby @beccagaspard in #1380
Dependency Upgrades
- Upgrade AWS SDK to 2.31.54 and Localstack to 4.4.0 by @MatejNedic in #1402
- Upgrade to Spring Cloud 2025.0.0 and Spring Boot 3.5.0 by @MatejNedic in #1401
- Do not manage WireMock version. by @maciejwalkowiak in #1343
- Do not manage ByteBuddy version by @maciejwalkowiak in #1342
- Upgrade Jakarta mail versions by @MatejNedic in #1323
- Upgrade Wiremock to 3.13.0 by @MatejNedic in #1321
New Contributors
- @krutip7 made their first contribution in #1365
- @rafaelcgpava made their first contribution in #1370
- @shreyas957 made their first contribution in #1382
- @isaacvando made their first contribution in #1383
- @brun0-4ugusto made their first contribution in #1381
Full Changelog: v3.3.1...v3.4.0
v3.3.1
Reference documentation
📗 https://docs.awspring.io/spring-cloud-aws/docs/3.3.1/reference/html/index.html
What's Changed
S3
- Fix setting endpoint from connection details to
S3Presignerby @maciejwalkowiak (#1390) - Do not create S3 CRT client if aws-crt library is not on the classpath by @maciejwalkowiak (#1359)
- Set
S3AsyncClientendpoint from Localstack if available in tests by @ofir-popowski in #1330 - Fix S3 AOT by moving
aot.factoriesto correct path by @MatejNedic in #1335 - Fix the capitalization of property for
S3EncryptionConditional.KmsKeyPropertyby @gbaso in #1337 - Polish S3 encryption docs. by @maciejwalkowiak in #1338
SQS
- Document
SqsTemplate#sendMany()10-messages limitation by @shreyas957 (#1382) - Fix documentation for
sqs:GetQueueUrlaction by @PatrickGotthard (#1372) - Document incompatibility of Spring Boot DevTools with
@SqsListenerby @PatrickGotthard (#1348) - Add
SqsListenerargument resolver to extract the subject of an SNS message by @n-n-nebbl in #1318
Others
- Fix generating aggregated Javadocs. by @maciejwalkowiak in #1351
- Exclude
ImdsAutoConfigurationfrom unrelated tests to speed up startup time by @maciejwalkowiak in #1394 - Fix: Include IMDS starter in parent pom. by @maciejwalkowiak in #1396
New Contributors
- @n-n-nebbl made their first contribution in #1318
- @ofir-popowski made their first contribution in #1330
- @gbaso made their first contribution in #1337
Full Changelog: v3.3.0...v3.3.1
3.3.0
Reference documentation
📗 https://docs.awspring.io/spring-cloud-aws/docs/3.3.0/reference/html/index.html
What's Changed
Spring Cloud AWS 3.3.0 brings compatibility with Spring Boot 3.4 and Spring Cloud 2024.0. Highlights:
- experimental support for GraalVM native image builds contributed by @MatejNedic
- auto-configuration of amazon-s3-encryption-client-java for effortless encryption objects on the client side before they get sent to S3 by @MatejNedic (docs)
- Add support for
spring.config.importwith S3 backend by @kunalvarpe in #849
- auto-configuration of aws-s3-accessgrants-plugin-java-v2 by @MatejNedic (docs)
- populating Spring property source from EC2 instance metadata by @kennyk65 (docs)
- reworked and simplified customizing AWS client beans by @maciejwalkowiak (docs)
Full list of changes:
Core
- Automatically populate
PropertySourcewith instance metadata when running within an EC2-based environment by @kennyk65 in #962 - Add client customizer interface for each supported integration by @maciejwalkowiak in #1229
- Add GraalVM native image support by @MatejNedic in #856 and #1297
- Add
dualstack-enabledproperty toAwsClientProperties. by @maciejwalkowiak in #1294
S3
- Fine grained access control of S3 files via S3 Access Grant is now supported out of the box via S3AccessPlugin by @MatejNedic in #1247
- Add KMS, RSA or AES ClientSide file encryption support through
S3EncrpytionClientby @MatejNedic in #1033 S3OutputStreamcan now be canceled at any time during upload by @zhemaituk in #1221- Remove throws IOException that is never thrown in S3Resource methods by @alexisgra in #1222
- Add
S3Operations#createResource. by @maciejwalkowiak in #1223 - Fix: Do not apply ObjectMetadata#contentLength for UploadPartRequest by @Mobe91 in #1249
- Add a constructor to S3ProtocolResolver allowing its usage outside of Spring context by @klach-ocado in #1276
- Add support for
spring.config.importwith S3 backend by @kunalvarpe in #849 - Specify Content-MD5 when generating presigned URL for uploading object (#1161) by @hardikSinghBehl in #1252
- Align
S3ConfigDataLocationResolverresolving behavior with Spring Boot resolvers by @MatejNedic in #1299
SQS
- Propagate
AWSTraceHeaderby @acomofcg in #1287 - Fix deserializing lists with
@SnsNotificationMessageby @frjonsen in #1282 - Fix setting timeout in seconds in
SqsTemplateby @joey in #1250 - Add more detailed error message for SQS exceptions in
QueueAttributesResolverby @joseiedo in #1200
SNS
SnsTemplateprovides functionality to validate topic existence (#1137) by @hardikSinghBehl in #1142
SecretsManager
- Fix
AutoConfigureAfterforSecretsManagerAutoConfigurationby @marcindabrowski in #1235
Parameter Store
Documentation
- Fix testing documentation header levels by @maciejwalkowiak in #1273
- Update AWS S3 CRT Client dependency in docs by @vchrisb in #1274
- Fix broken link for Spring Docker Compose support by @Tooa in #1281
- Document SecretsManager cross-account access by @mmaeller in #1302
Dependencies
- Remove
s3-transfer-managerfromspring-cloud-aws-dependenciesby @vchrisb in #1275 - Upgrade Spring Cloud to 4.2.0 by @abilng in #1290
- Upgrade AWS S3 Encryption Client to 3.3.0 by @MatejNedic in #1303
- Manage Testcontainers version through Spring Boot dependency management by @maciejwalkowiak in #1218
- Upgrade LocalStack to 3.8.1 by @maciejwalkowiak in #1217
- Upgrade Spring Modulith to 1.3 by @odrotbohm in #1317
- Upgrade AWS versions to 2.29.52 by @MatejNedic in #1320
Github pipeline
- Update labeler action to v5 by @marcindabrowski in #1236
- Update checkout action to v4 by @marcindabrowski in #1237
- Update cache action to v4 by @marcindabrowski in #1238
- Add "type: maintenance" label for GitHub files by @marcindabrowski in #1240
- Update setup-java action to v4 by @marcindabrowski in #1241
- Update github-script action to v7 by @marcindabrowski in #1242
- Enable Dependabot for GitHub Actions by @marcindabrowski in #1243
New Contributors
- @hardikSinghBehl made their first contribution in #1142
- @kennyk65 made their first contribution in #962
- @zhemaituk made their first contribution in #1221
- @Forfend made their first contribution in #1233
- @marcindabrowski made their first contribution in #1236
- @Mobe91 made their first contribution in #1249
- @vchrisb made their first contribution in #1274
- @abilng made their first contribution in #1290
- @klach-ocado made their first contribution in #1276
- @Tooa made their first contribution in #1281
- @acomofcg made their first contribution in #1287
- @frjonsen made their first contribution in #1282
- @joey made their first contribution in #1250
- @joseiedo made their first contribution in #1200
- @mmaeller made their first contribution in #1302
- @odrotbohm made their first contribution in #1317
Full Changelog: v3.2.1...v3.3.0
3.3.0 RC1
Reference documentation
📗 https://docs.awspring.io/spring-cloud-aws/docs/3.3.0-RC1/reference/html/index.html
What has changed
Spring Cloud AWS 3.3.0 brings compatibility with Spring Boot 3.4 and Spring Cloud 2024.0. RC1 is hopefully the only release candidate, if not bugs are found, no code changes are planned before GA.
The highlight of the release is experimental support for GraalVM native image builds contributed by @MatejNedic
RC1 contains all changes listed in M1 plus:
S3
- Add a constructor to S3ProtocolResolver allowing its usage outside of Spring context by @klach-ocado in #1276
- Add support for
spring.config.importwith S3 backend by @kunalvarpe in #849 - Specify Content-MD5 when generating presigned URL for uploading object (#1161) by @hardikSinghBehl in #1252
- Align
S3ConfigDataLocationResolverresolving behavior with Spring Boot resolvers by @MatejNedic in #1299
Core
- Add GraalVM native image support by @MatejNedic in #856 and #1297
- Add
dualstack-enabledproperty toAwsClientProperties. by @maciejwalkowiak in #1294
SQS
- Propagate
AWSTraceHeaderby @acomofcg in #1287 - Fix deserializing lists with
@SnsNotificationMessageby @frjonsen in #1282 - Fix setting timeout in seconds in
SqsTemplateby @joey in #1250 - Add more detailed error message for SQS exceptions in
QueueAttributesResolverby @joseiedo in #1200
Documentation
- Fix testing documentation header levels by @maciejwalkowiak in #1273
- Update AWS S3 CRT Client dependency in docs by @vchrisb in #1274
- Fix broken link for Spring Docker Compose support by @Tooa in #1281
- Document SecretsManager cross-account access by @mmaeller in #1302
Dependencies Upgrades
- Remove
s3-transfer-managerfromspring-cloud-aws-dependenciesby @vchrisb in #1275 - Upgrade Spring Cloud to 4.2.0 by @abilng in #1290
- Upgrade AWS SDK to 2.29.35 and AWS S3 Encryption Client to 3.3.0 by @MatejNedic in #1303
New Contributors
- @vchrisb made their first contribution in #1274
- @abilng made their first contribution in #1290
- @klach-ocado made their first contribution in #1276
- @Tooa made their first contribution in #1281
- @acomofcg made their first contribution in #1287
- @frjonsen made their first contribution in #1282
- @joey made their first contribution in #1250
- @joseiedo made their first contribution in #1200
- @mmaeller made their first contribution in #1302
Full Changelog: v3.3.0-M1...v3.3.0-RC1
3.3.0 M1
Reference documentation
📗 https://docs.awspring.io/spring-cloud-aws/docs/3.3.0-M1/reference/html/index.html
What's Changed
Spring Cloud AWS 3.3.0 brings compatibility with Spring Boot 3.4 and Spring Cloud 2024.0. Highlights of the M1 release:
- auto-configuration of amazon-s3-encryption-client-java for effortless encryption objects on the client side before they get sent to S3 by @MatejNedic (docs)
- auto-configuration of aws-s3-accessgrants-plugin-java-v2 by @MatejNedic (docs)
- populating Spring property source from EC2 instance metadata by @kennyk65 (docs)
- reworked and simplified customizing AWS client beans by @maciejwalkowiak (docs)
Full list of changes:
Core
- Automatically populate
PropertySourcewith instance metadata when running within an EC2-based environment by @kennyk65 in #962 - Add client customizer interface for each supported integration by @maciejwalkowiak in #1229
S3
- Fine grained access control of S3 files via S3 Access Grant is now supported out of the box via S3AccessPlugin by @MatejNedic in #1247
- Add KMS, RSA or AES ClientSide file encryption support through
S3EncrpytionClientby @MatejNedic in #1033 S3OutputStreamcan now be canceled at any time during upload by @zhemaituk in #1221- Remove throws IOException that is never thrown in S3Resource methods by @alexisgra in #1222
- Add
S3Operations#createResource. by @maciejwalkowiak in #1223 - Fix: Do not apply ObjectMetadata#contentLength for UploadPartRequest by @Mobe91 in #1249
SNS
SnsTemplateprovides functionality to validate topic existence (#1137) by @hardikSinghBehl in #1142
SecretsManager
- Fix
AutoConfigureAfterforSecretsManagerAutoConfigurationby @marcindabrowski in #1235
Parameter Store
Dependencies
- Upgrade Spring Cloud to 4.2.0 M2 by @MatejNedic in #1267
- Upgrade Spring Cloud Dependencies to 4.1.3 and Spring Modulith to 1.2.3 by @maciejwalkowiak in #1215
- Upgrade AWS SDKv2 to 2.29.6 by @MatejNedic in #1266
- Manage Testcontainers version through Spring Boot dependency management by @maciejwalkowiak in #1218
- Upgrade LocalStack to 3.8.1 by @maciejwalkowiak in #1217
Github pipeline
- Update labeler action to v5 by @marcindabrowski in #1236
- Update checkout action to v4 by @marcindabrowski in #1237
- Update cache action to v4 by @marcindabrowski in #1238
- Add "type: maintenance" label for GitHub files by @marcindabrowski in #1240
- Update setup-java action to v4 by @marcindabrowski in #1241
- Update github-script action to v7 by @marcindabrowski in #1242
- Enable Dependabot for GitHub Actions by @marcindabrowski in #1243
New Contributors
- @hardikSinghBehl made their first contribution in #1142
- @kennyk65 made their first contribution in #962
- @zhemaituk made their first contribution in #1221
- @Forfend made their first contribution in #1233
- @marcindabrowski made their first contribution in #1236
- @Mobe91 made their first contribution in #1249
Full Changelog: v3.2.0...v3.3.0-M1
3.2.1
Reference documentation
📗 https://docs.awspring.io/spring-cloud-aws/docs/3.2.1/reference/html/index.html
What's Changed
- Fix for
InMemoryBufferingS3OutputStreamwrongly appliescontentLengthtoUploadPartRequestcausing timeout by @Mobe91 in #1249 - Update Spring Modulith by @maciejwalkowiak in #1260
Full Changelog: v3.2.0...v3.2.1
3.0.5
Reference documentation
📗 https://docs.awspring.io/spring-cloud-aws/docs/3.0.5/reference/html/index.html
What's Changed
S3
- Make
getUrlreturn location of bucket if object is empty ornullby @MatejNedic in #1226