Skip to content

Releases: awspring/spring-cloud-aws

4.0.0

28 Jan 21:55
a77a77b

Choose a tag to compare

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 @SqsListener is now possible by using @SqsHandler annotation 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 SqsListener starting up on context startup with spring.cloud.aws.sqs.listener.auto-startup by @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 maxMessagesPerPoll validation message in AbstractContainerOptions by @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

DynamoDb Integration

SNS Integration

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
  • Enhance DefaultDynamoDbTableSchemaResolver to resolve DynamoDbBean and DynamoDbImmutable by @marcusvoltolim in #1450

S3

  • Introduce listAllObjects method to S3Template by @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

Kinesis Integration

STS

  • Configure STS Credentials provider only if either spring.cloud.aws.sts properties, system property or environment variable is set. by @maciejwalkowiak in #1444

SES

  • Align 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
  • 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

Dependency Upgrades

Documentation

Tests

  • fix: Non-determinism in S3PropertySourceTest by @yonghanlin in #1538
  • fix: Fix three nondeterministic tests caused by shard processing and JSON key ordering by @yonghanlin in #1537
  • Fix: Nondeterminism behavior in SqsListenerAnnotationBeanPostProcessorTests by @yonghanlin in #1536

Big thanks to all contributors! 💚

New Contributors

Read more

4.0.0-RC1

14 Jan 17:31
2c298cc

Choose a tag to compare

4.0.0-RC1 Pre-release
Pre-release

Reference documentation

📗 https://docs.awspring.io/spring-cloud-aws/docs/4.0.0-RC1/reference/html/index.html

What's Changed

Spring Cloud AWS 4.0.0-RC1 introduces support for Jackson 3 and various improvements across AWS Integrations.

What's Changed

Core

SQS

Kinesis

DynamoDb

  • Enhance DefaultDynamoDbTableSchemaResolver to resolve DynamoDbBean and DynamoDbImmutable by @marcusvoltolim in #1450

S3

  • 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

Parameter Store

Docs

Tests

  • fix: Non-determinism in S3PropertySourceTest by @yonghanlin in #1538
  • fix: Fix three nondeterministic tests caused by shard processing and JSON key ordering by @yonghanlin in #1537
  • Fix: Nondeterminism behavior in SqsListenerAnnotationBeanPostProcessorTests by @yonghanlin in #1536

Version upgrades

New Contributors

Full Changelog: v4.0.0-M1...v4.0.0-RC1

3.4.2

01 Dec 07:57
47c9a09

Choose a tag to compare

Reference documentation

📗 https://docs.awspring.io/spring-cloud-aws/docs/3.4.2/reference/html/index.html

What's Changed

Core

  • StsWebIdentityTokenFileCredentialsProvider is 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

25 Nov 08:17

Choose a tag to compare

4.0.0-M1 Pre-release
Pre-release

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 @SqsListener is now possible by using @SqsHandler annotation 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 SqsListener starting up on context startup with spring.cloud.aws.sqs.listener.auto-startup by @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 maxMessagesPerPoll validation message in AbstractContainerOptions by @richardfearn in #1480
  • Fix: remove failed queue attributes from cache by @LeeHyungGeol in #1491

SQS Integration

DynamoDb Integration

SNS Integration

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

S3 Integration

Kinesis Integration

STS

  • Configure STS Credentials provider only if either spring.cloud.aws.sts properties, 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

Dependency Upgrades

Documentation

New Contributors

Full Changelog: v3.4.0...v4.0.0-M1

3.4.1

10 Nov 21:09
7e3c00a

Choose a tag to compare

Reference documentation

📗 https://docs.awspring.io/spring-cloud-aws/docs/3.4.1/reference/html/index.html

What's Changed

SQS

IMDS

  • Update main maven module, so IMDS starter is now updated and released @olbat in #1501

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

Full Changelog: v3.4.0...v3.4.1

3.4.0

10 Jun 16:46

Choose a tag to compare

Reference documentation

📗 https://docs.awspring.io/spring-cloud-aws/docs/3.4.0/reference/html/index.html

What's Changed

SQS

DynamoDB

  • Ability to override separator in DefaultDynamoDbTableNameResolver by @beccagaspard in #1380

Dependency Upgrades

New Contributors

Full Changelog: v3.3.1...v3.4.0

v3.3.1

23 May 09:18
62c0caf

Choose a tag to compare

Reference documentation

📗 https://docs.awspring.io/spring-cloud-aws/docs/3.3.1/reference/html/index.html

What's Changed

S3

SQS

Others

New Contributors

Full Changelog: v3.3.0...v3.3.1

3.3.0

19 Jan 22:28
9afabe7

Choose a tag to compare

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:

  • Add support for spring.config.import with S3 backend by @kunalvarpe in #849

Full list of changes:

Core

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 S3EncrpytionClient by @MatejNedic in #1033
  • S3OutputStream can 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.import with S3 backend by @kunalvarpe in #849
  • Specify Content-MD5 when generating presigned URL for uploading object (#1161) by @hardikSinghBehl in #1252
  • Align S3ConfigDataLocationResolver resolving behavior with Spring Boot resolvers by @MatejNedic in #1299

SQS

  • Propagate AWSTraceHeader by @acomofcg in #1287
  • Fix deserializing lists with @SnsNotificationMessage by @frjonsen in #1282
  • Fix setting timeout in seconds in SqsTemplate by @joey in #1250
  • Add more detailed error message for SQS exceptions in QueueAttributesResolver by @joseiedo in #1200

SNS

SecretsManager

Parameter Store

  • Autoconfigure SsmClient even if config import is not used by @Forfend in #1233

Documentation

Dependencies

Github pipeline

New Contributors

Full Changelog: v3.2.1...v3.3.0

3.3.0 RC1

19 Dec 12:09
bc4335d

Choose a tag to compare

3.3.0 RC1 Pre-release
Pre-release

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.import with S3 backend by @kunalvarpe in #849
  • Specify Content-MD5 when generating presigned URL for uploading object (#1161) by @hardikSinghBehl in #1252
  • Align S3ConfigDataLocationResolver resolving behavior with Spring Boot resolvers by @MatejNedic in #1299

Core

SQS

  • Propagate AWSTraceHeader by @acomofcg in #1287
  • Fix deserializing lists with @SnsNotificationMessage by @frjonsen in #1282
  • Fix setting timeout in seconds in SqsTemplate by @joey in #1250
  • Add more detailed error message for SQS exceptions in QueueAttributesResolver by @joseiedo in #1200

Documentation

Dependencies Upgrades

  • Remove s3-transfer-manager from spring-cloud-aws-dependencies by @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

Full Changelog: v3.3.0-M1...v3.3.0-RC1

3.3.0 M1

07 Nov 21:41
09df91d

Choose a tag to compare

3.3.0 M1 Pre-release
Pre-release

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:

Full list of changes:

Core

  • Automatically populate PropertySource with 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 S3EncrpytionClient by @MatejNedic in #1033
  • S3OutputStream can 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

SecretsManager

Parameter Store

  • Autoconfigure SsmClient even if config import is not used by @Forfend in #1233

Dependencies

Github pipeline

New Contributors

Full Changelog: v3.2.0...v3.3.0-M1